mirror of
https://github.com/reactos/reactos.git
synced 2025-08-05 16:12:58 +00:00
[XBOX] Move SuperIO definitions and helpers into header file
CORE-16216
This commit is contained in:
parent
2edcb58e65
commit
f420f2e5df
3 changed files with 156 additions and 32 deletions
|
@ -17,10 +17,13 @@
|
|||
*/
|
||||
|
||||
#include <freeldr.h>
|
||||
#include <drivers/xbox/superio.h>
|
||||
|
||||
#include <debug.h>
|
||||
DBG_DEFAULT_CHANNEL(HWDETECT);
|
||||
|
||||
#define MAX_XBOX_COM_PORTS 2
|
||||
|
||||
extern PVOID FrameBuffer;
|
||||
extern ULONG FrameBufferSize;
|
||||
|
||||
|
@ -51,30 +54,19 @@ XboxGetSerialPort(ULONG Index, PULONG Irq)
|
|||
static const UCHAR Device[MAX_XBOX_COM_PORTS] = {LPC_DEVICE_SERIAL_PORT_1, LPC_DEVICE_SERIAL_PORT_2};
|
||||
ULONG ComBase = 0;
|
||||
|
||||
// Enter Configuration
|
||||
WRITE_PORT_UCHAR((PUCHAR)LPC_IO_BASE, LPC_ENTER_CONFIG_KEY);
|
||||
LpcEnterConfig();
|
||||
|
||||
// Select serial device
|
||||
WRITE_PORT_UCHAR((PUCHAR)LPC_IO_BASE, LPC_CONFIG_DEVICE_NUMBER);
|
||||
WRITE_PORT_UCHAR((PUCHAR)(LPC_IO_BASE + 1), Device[Index]);
|
||||
LpcWriteRegister(LPC_CONFIG_DEVICE_NUMBER, Device[Index]);
|
||||
|
||||
// Check if selected device is active
|
||||
WRITE_PORT_UCHAR((PUCHAR)LPC_IO_BASE, LPC_CONFIG_DEVICE_ACTIVATE);
|
||||
if (READ_PORT_UCHAR((PUCHAR)(LPC_IO_BASE + 1)) == 1)
|
||||
if (LpcReadRegister(LPC_CONFIG_DEVICE_ACTIVATE) == 1)
|
||||
{
|
||||
// Read LSB
|
||||
WRITE_PORT_UCHAR((PUCHAR)LPC_IO_BASE, LPC_CONFIG_DEVICE_BASE_ADDRESS_LOW);
|
||||
ComBase = READ_PORT_UCHAR((PUCHAR)(LPC_IO_BASE + 1));
|
||||
// Read MSB
|
||||
WRITE_PORT_UCHAR((PUCHAR)LPC_IO_BASE, LPC_CONFIG_DEVICE_BASE_ADDRESS_HIGH);
|
||||
ComBase |= (READ_PORT_UCHAR((PUCHAR)(LPC_IO_BASE + 1)) << 8);
|
||||
// Read IRQ
|
||||
WRITE_PORT_UCHAR((PUCHAR)LPC_IO_BASE, LPC_CONFIG_DEVICE_INTERRUPT);
|
||||
*Irq = READ_PORT_UCHAR((PUCHAR)(LPC_IO_BASE + 1));
|
||||
ComBase = LpcGetIoBase();
|
||||
*Irq = LpcGetIrqPrimary();
|
||||
}
|
||||
|
||||
// Exit Configuration
|
||||
WRITE_PORT_UCHAR((PUCHAR)LPC_IO_BASE, LPC_EXIT_CONFIG_KEY);
|
||||
LpcExitConfig();
|
||||
|
||||
return ComBase;
|
||||
}
|
||||
|
|
|
@ -22,21 +22,6 @@
|
|||
#include "mm.h"
|
||||
#endif
|
||||
|
||||
#define MAX_XBOX_COM_PORTS 2
|
||||
|
||||
#define LPC_IO_BASE 0x2E
|
||||
#define LPC_ENTER_CONFIG_KEY 0x55
|
||||
#define LPC_EXIT_CONFIG_KEY 0xAA
|
||||
|
||||
#define LPC_DEVICE_SERIAL_PORT_1 0x4
|
||||
#define LPC_DEVICE_SERIAL_PORT_2 0x5
|
||||
|
||||
#define LPC_CONFIG_DEVICE_NUMBER 0x07
|
||||
#define LPC_CONFIG_DEVICE_ACTIVATE 0x30
|
||||
#define LPC_CONFIG_DEVICE_BASE_ADDRESS_HIGH 0x60
|
||||
#define LPC_CONFIG_DEVICE_BASE_ADDRESS_LOW 0x61
|
||||
#define LPC_CONFIG_DEVICE_INTERRUPT 0x70
|
||||
|
||||
#define NV2A_CONTROL_OFFSET 0xFD000000
|
||||
#define NV2A_FB_OFFSET (0x100000 + NV2A_CONTROL_OFFSET)
|
||||
#define NV2A_FB_CFG0 (0x200 + NV2A_FB_OFFSET)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue