21#include "../../vidfb.h"
26#define MAX_XBOX_COM_PORTS 2
44 BusData->MajorRevision = 1;
45 BusData->MinorRevision = 0;
47 BusData->HardwareMechanism = 1;
94 TRACE(
"XboxGetExtendedBIOSData(): UNIMPLEMENTED\n");
116 if (PartialResourceList ==
NULL)
118 ERR(
"Failed to allocate resource descriptor\n");
123 PartialResourceList->
Version = 1;
125 PartialResourceList->
Count = 1;
131 sizeof(*DiskGeometry);
144 ERR(
"Reading disk geometry failed\n");
148 TRACE(
"Disk %x: %u Cylinders %u Heads %u Sectors %u Bytes\n",
157 return PartialResourceList;
175 if (PartialResourceList ==
NULL)
177 ERR(
"Failed to allocate resource descriptor\n");
183 PartialResourceList->
Version = 1;
185 PartialResourceList->
Count = 3;
193 PartialDescriptor->
u.
Port.Start.HighPart = 0;
194 PartialDescriptor->
u.
Port.Length = (16 * 1024 * 1024);
208 PartialDescriptor->
Flags = 0;
214 FramebufData->Version = 1;
215 FramebufData->Revision = 3;
216 FramebufData->VideoClock = 0;
246 if (PartialResourceList ==
NULL)
248 ERR(
"Failed to allocate resource descriptor\n");
254 PartialResourceList->
Version = 1;
256 PartialResourceList->
Count = 0;
292 WARN(
"XboxGetFloppyCount() is UNIMPLEMENTED, returning 0\n");
303 TRACE(
"DetectHardware()\n");
318 ULONG PciBusToFind = 1;
321 for (BusKey = SystemKey->
Child; BusKey; BusKey = BusKey->
Sibling)
333 if (NumPciBus == PciBusToFind)
335 ERR(
"** XBOX: PCI bus #%lu found!\n **\n", PciBusToFind);
344 ERR(
"** XBOX: Adding Display Controller on PCI #1 **\n");
349 TRACE(
"DetectHardware() Done\n");
378 PciCfg1.
u.
bits.Enable = 1;
379 PciCfg1.
u.
bits.BusNumber = 0;
380 PciCfg1.
u.
bits.DeviceNumber = 0;
381 PciCfg1.
u.
bits.FunctionNumber = 0;
383 PciCfg1.
u.
bits.RegisterNumber = 0x00;
384 PciCfg1.
u.
bits.Reserved = 0;
388 if (PciId != 0x02A510DE)
390 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 DetectPciBus(_In_ PCONFIGURATION_COMPONENT_DATA SystemKey, _Inout_ PULONG BusNumber, _In_ DETECT_PCI_BUS MachDetectPciBus)
#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)
static BOOLEAN XboxDetectPciBus(_In_ PCONFIGURATION_COMPONENT_DATA SystemKey, _Inout_ PULONG BusNumber, _Out_ PPCI_REGISTRY_INFO BusData)
VOID __cdecl ChainLoadBiosBootSectorCode(IN UCHAR BootDrive OPTIONAL, IN ULONG BootPartition OPTIONAL)
VOID DetectSerialPointerPeripheral(PCONFIGURATION_COMPONENT_DATA ControllerKey, PUCHAR Base)
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
#define UNREFERENCED_PARAMETER(P)
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::@486::@495 DeviceSpecificData
struct _CM_PARTIAL_RESOURCE_DESCRIPTOR::@486::@488 Port
union _CM_PARTIAL_RESOURCE_DESCRIPTOR::@486 u
struct _CM_PARTIAL_RESOURCE_DESCRIPTOR::@486::@491 Memory
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.
struct _PCI_TYPE1_CFG_BITS::@154::@155 bits
union _PCI_TYPE1_CFG_BITS::@154 u
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