21#include "../../vidfb.h"
26#define MAX_XBOX_COM_PORTS 2
88 TRACE(
"XboxGetExtendedBIOSData(): UNIMPLEMENTED\n");
110 if (PartialResourceList ==
NULL)
112 ERR(
"Failed to allocate resource descriptor\n");
117 PartialResourceList->
Version = 1;
119 PartialResourceList->
Count = 1;
125 sizeof(*DiskGeometry);
138 ERR(
"Reading disk geometry failed\n");
142 TRACE(
"Disk %x: %u Cylinders %u Heads %u Sectors %u Bytes\n",
151 return PartialResourceList;
169 if (PartialResourceList ==
NULL)
171 ERR(
"Failed to allocate resource descriptor\n");
177 PartialResourceList->
Version = 1;
179 PartialResourceList->
Count = 3;
187 PartialDescriptor->
u.
Port.Start.HighPart = 0;
188 PartialDescriptor->
u.
Port.Length = (16 * 1024 * 1024);
202 PartialDescriptor->
Flags = 0;
208 FramebufData->Version = 1;
209 FramebufData->Revision = 3;
210 FramebufData->VideoClock = 0;
240 if (PartialResourceList ==
NULL)
242 ERR(
"Failed to allocate resource descriptor\n");
248 PartialResourceList->
Version = 1;
250 PartialResourceList->
Count = 0;
286 WARN(
"XboxGetFloppyCount() is UNIMPLEMENTED, returning 0\n");
297 TRACE(
"DetectHardware()\n");
313 ULONG PciBusToFind = 1;
316 for (BusKey = SystemKey->
Child; BusKey; BusKey = BusKey->
Sibling)
328 if (NumPciBus == PciBusToFind)
330 ERR(
"** XBOX: PCI bus #%lu found!\n **\n", PciBusToFind);
339 ERR(
"** XBOX: Adding Display Controller on PCI #1 **\n");
344 TRACE(
"DetectHardware() Done\n");
373 PciCfg1.
u.
bits.Enable = 1;
374 PciCfg1.
u.
bits.BusNumber = 0;
375 PciCfg1.
u.
bits.DeviceNumber = 0;
376 PciCfg1.
u.
bits.FunctionNumber = 0;
378 PciCfg1.
u.
bits.RegisterNumber = 0x00;
379 PciCfg1.
u.
bits.Reserved = 0;
383 if (PciId != 0x02A510DE)
385 ERR(
"This is not an original Xbox!\n");
#define ExtendedBIOSDataArea
#define ExtendedBIOSDataSize
VOID FldrCreateSystemKey(_Out_ PCONFIGURATION_COMPONENT_DATA *SystemNode, _In_ PCSTR IdentifierString)
VOID FldrCreateComponentKey(_In_ PCONFIGURATION_COMPONENT_DATA SystemNode, _In_ CONFIGURATION_CLASS Class, _In_ CONFIGURATION_TYPE Type, _In_ IDENTIFIER_FLAG Flags, _In_ ULONG Key, _In_ ULONG Affinity, _In_ PCSTR IdentifierString, _In_ PCM_PARTIAL_RESOURCE_LIST ResourceList, _In_ ULONG Size, _Out_ PCONFIGURATION_COMPONENT_DATA *ComponentKey)
VOID DetectPciBios(PCONFIGURATION_COMPONENT_DATA SystemKey, ULONG *BusNumber)
FIND_PCI_BIOS FindPciBios
#define PCI_TYPE1_DATA_PORT
ULONG(* GET_SERIAL_PORT)(ULONG Index, PULONG Irq)
#define PCI_TYPE1_ADDRESS_PORT
#define DebugDisableScreenPort()
#define DBG_DEFAULT_CHANNEL(ch)
VOID FrLdrHeapFree(PVOID MemoryPointer, ULONG Tag)
PVOID FrLdrHeapAlloc(SIZE_T MemorySize, ULONG Tag)
static const WCHAR CmdLine[]
ULONG NTAPI READ_PORT_ULONG(IN PULONG Port)
VOID NTAPI WRITE_PORT_ULONG(IN PULONG Port, IN ULONG Value)
BOOLEAN PcInitializeBootDevices(VOID)
__INTRIN_INLINE void __halt(void)
static VOID DetectDisplayController(_In_ PCONFIGURATION_COMPONENT_DATA BusKey)
VOID XboxGetExtendedBIOSData(PULONG ExtendedBIOSDataArea, PULONG ExtendedBIOSDataSize)
static PCM_PARTIAL_RESOURCE_LIST XboxGetHarddiskConfigurationData(UCHAR DriveNumber, ULONG *pSize)
static VOID DetectIsaBios(_In_opt_ PCSTR Options, _Inout_ PCONFIGURATION_COMPONENT_DATA SystemKey, _Out_ ULONG *BusNumber)
VOID MachInit(const char *CmdLine)
PCONFIGURATION_COMPONENT_DATA XboxHwDetect(_In_opt_ PCSTR Options)
#define MAX_XBOX_COM_PORTS
static ULONG XboxGetSerialPort(ULONG Index, PULONG Irq)
PCM_FRAMEBUF_DEVICE_DATA FrameBufferData
static UCHAR XboxGetFloppyCount(VOID)
VOID __cdecl ChainLoadBiosBootSectorCode(IN UCHAR BootDrive OPTIONAL, IN ULONG BootPartition OPTIONAL)
VOID DetectSerialPointerPeripheral(PCONFIGURATION_COMPONENT_DATA ControllerKey, PUCHAR Base)
BOOLEAN XboxFindPciBios(PPCI_REGISTRY_INFO BusData)
VOID DetectSerialPorts(_In_opt_ PCSTR Options, _Inout_ PCONFIGURATION_COMPONENT_DATA BusKey, _In_ GET_SERIAL_PORT MachGetSerialPort, _In_ ULONG Count)
VOID XboxPrepareForReactOS(VOID)
#define CM_RESOURCE_PORT_MEMORY
#define CM_RESOURCE_MEMORY_READ_WRITE
VOID HalpCalibrateStallExecution(VOID)
VOID DetectBiosDisks(PCONFIGURATION_COMPONENT_DATA SystemKey, PCONFIGURATION_COMPONENT_DATA BusKey)
GET_HARDDISK_CONFIG_DATA GetHarddiskConfigurationData
#define CmResourceTypeMemory
#define CmResourceTypeDeviceSpecific
#define CmResourceTypePort
struct _CM_FRAMEBUF_DEVICE_DATA * PCM_FRAMEBUF_DEVICE_DATA
void __cdecl _disable(void)
PULONG MinorVersion OPTIONAL
ReactOS Framebuffer-specific video device configuration data.
struct _CM_PARTIAL_RESOURCE_DESCRIPTOR::@382::@391 DeviceSpecificData
union _CM_PARTIAL_RESOURCE_DESCRIPTOR::@382 u
struct _CM_PARTIAL_RESOURCE_DESCRIPTOR::@382::@387 Memory
struct _CM_PARTIAL_RESOURCE_DESCRIPTOR::@382::@384 Port
CM_PARTIAL_RESOURCE_DESCRIPTOR PartialDescriptors[1]
CONFIGURATION_COMPONENT ComponentEntry
struct _CONFIGURATION_COMPONENT_DATA * Sibling
struct _CONFIGURATION_COMPONENT_DATA * Child
CONFIGURATION_CLASS Class
ULONG BytesPerSector
Number of bytes per sector.
ULONG Cylinders
Number of cylinders on the disk.
ULONG SectorsPerTrack
Number of sectors per track.
ULONG Heads
Number of heads on the disk.
union _PCI_TYPE1_CFG_BITS::@145 u
struct _PCI_TYPE1_CFG_BITS::@145::@146 bits
VOID(* VideoGetPaletteColor)(UCHAR Color, UCHAR *Red, UCHAR *Green, UCHAR *Blue)
VIDEODISPLAYMODE(* VideoSetDisplayMode)(PCSTR DisplayMode, BOOLEAN Init)
VOID(* GetExtendedBIOSData)(PULONG ExtendedBIOSDataArea, PULONG ExtendedBIOSDataSize)
VOID(* PrepareForReactOS)(VOID)
VOID(* VideoSetPaletteColor)(UCHAR Color, UCHAR Red, UCHAR Green, UCHAR Blue)
BOOLEAN(* InitializeBootDevices)(VOID)
VOID(* VideoCopyOffScreenBufferToVRAM)(PVOID Buffer)
BOOLEAN(* ConsKbHit)(VOID)
VOID(* VideoHideShowTextCursor)(BOOLEAN Show)
TIMEINFO *(* GetTime)(VOID)
UCHAR(* GetFloppyCount)(VOID)
BOOLEAN(* DiskGetDriveGeometry)(UCHAR DriveNumber, PGEOMETRY DriveGeometry)
BOOLEAN(* DiskReadLogicalSectors)(UCHAR DriveNumber, ULONGLONG SectorNumber, ULONG SectorCount, PVOID Buffer)
PFREELDR_MEMORY_DESCRIPTOR(* GetMemoryMap)(PULONG MaxMemoryMapSize)
VOID(* VideoGetFontsFromFirmware)(PULONG RomFontPointers)
VOID(* VideoSetTextCursorPosition)(UCHAR X, UCHAR Y)
ULONG(* VideoGetBufferSize)(VOID)
VOID(* VideoPutChar)(int Ch, UCHAR Attr, unsigned X, unsigned Y)
ULONG(* DiskGetCacheableBlockCount)(UCHAR DriveNumber)
VOID(* VideoGetDisplaySize)(PULONG Width, PULONG Height, PULONG Depth)
VOID(* VideoClearScreen)(UCHAR Attr)
BOOLEAN(* VideoIsPaletteFixed)(VOID)
PCONFIGURATION_COMPONENT_DATA(* HwDetect)(_In_opt_ PCSTR Options)
VOID(* ConsPutChar)(int Ch)
#define LPC_CONFIG_DEVICE_NUMBER
#define LPC_CONFIG_DEVICE_ACTIVATE
FORCEINLINE ULONG LpcGetIoBase(VOID)
#define LPC_DEVICE_SERIAL_PORT_2
FORCEINLINE ULONG LpcGetIrqPrimary(VOID)
FORCEINLINE UCHAR LpcReadRegister(UCHAR Register)
#define LPC_DEVICE_SERIAL_PORT_1
FORCEINLINE VOID LpcWriteRegister(UCHAR Register, UCHAR Value)
FORCEINLINE VOID LpcExitConfig(VOID)
FORCEINLINE VOID LpcEnterConfig(VOID)
#define FIELD_OFFSET(t, f)
#define RtlCopyMemory(Destination, Source, Length)
#define RtlZeroMemory(Destination, Length)
#define TAG_HW_RESOURCE_LIST
_Must_inspect_result_ _In_ WDFDEVICE Device
_In_ WDFCOLLECTION _In_ ULONG Index
_In_ PWDFDEVICE_INIT _In_ PWDF_REMOVE_LOCK_OPTIONS Options
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG Size
BOOLEAN XboxConsKbHit(VOID)
VOID XboxConsPutChar(int c)
BOOLEAN XboxDiskReadLogicalSectors(IN UCHAR DriveNumber, IN ULONGLONG SectorNumber, IN ULONG SectorCount, OUT PVOID Buffer)
ULONG XboxDiskGetCacheableBlockCount(UCHAR DriveNumber)
BOOLEAN XboxDiskGetDriveGeometry(UCHAR DriveNumber, PGEOMETRY Geometry)
void XboxSetLED(PCSTR pattern)
PFREELDR_MEMORY_DESCRIPTOR XboxMemGetMemoryMap(ULONG *MemoryMapSize)
TIMEINFO * XboxGetTime(VOID)
VOID XboxVideoGetPaletteColor(UCHAR Color, UCHAR *Red, UCHAR *Green, UCHAR *Blue)
VOID XboxVideoPutChar(int Ch, UCHAR Attr, unsigned X, unsigned Y)
VOID XboxVideoPrepareForReactOS(VOID)
VOID XboxVideoSetTextCursorPosition(UCHAR X, UCHAR Y)
VOID XboxVideoSetPaletteColor(UCHAR Color, UCHAR Red, UCHAR Green, UCHAR Blue)
VOID XboxVideoCopyOffScreenBufferToVRAM(PVOID Buffer)
VOID XboxVideoGetDisplaySize(PULONG Width, PULONG Height, PULONG Depth)
ULONG XboxVideoGetBufferSize(VOID)
VOID XboxVideoHideShowTextCursor(BOOLEAN Show)
BOOLEAN XboxVideoIsPaletteFixed(VOID)
VOID XboxVideoClearScreen(UCHAR Attr)
VIDEODISPLAYMODE XboxVideoSetDisplayMode(PCSTR DisplayMode, BOOLEAN Init)
VOID XboxVideoGetFontsFromFirmware(PULONG RomFontPointers)
struct _CM_DISK_GEOMETRY_DEVICE_DATA * PCM_DISK_GEOMETRY_DEVICE_DATA
@ CmResourceShareDeviceExclusive
@ CmResourceShareUndetermined
_In_opt_ PUNICODE_STRING _In_ PDRIVER_OBJECT _In_ PDEVICE_OBJECT _In_ INTERFACE_TYPE _In_ ULONG BusNumber