mirror of
https://github.com/reactos/reactos.git
synced 2025-08-03 23:16:14 +00:00
[XBOX] Move NV2A XGPU definitions into header file
TODO: helper functions should be also moved. CORE-16216
This commit is contained in:
parent
f420f2e5df
commit
2a77e359e4
10 changed files with 50 additions and 42 deletions
|
@ -27,6 +27,7 @@ DBG_DEFAULT_CHANNEL(MEMORY);
|
|||
static ULONG InstalledMemoryMb = 0;
|
||||
static ULONG AvailableMemoryMb = 0;
|
||||
extern multiboot_info_t * MultibootInfoPtr;
|
||||
extern ULONG NvBase;
|
||||
extern PVOID FrameBuffer;
|
||||
extern ULONG FrameBufferSize;
|
||||
|
||||
|
@ -60,8 +61,8 @@ XboxMemInit(VOID)
|
|||
PVOID MembaseTop = (PVOID)(64 * 1024 * 1024);
|
||||
PVOID MembaseLow = (PVOID)0;
|
||||
|
||||
WRITE_REGISTER_ULONG((PULONG)NV2A_FB_CFG0, 0x03070103);
|
||||
WRITE_REGISTER_ULONG((PULONG)(NV2A_FB_CFG0 + 4), 0x11448000);
|
||||
WRITE_REGISTER_ULONG((PULONG)(NvBase + NV2A_FB_CFG0), 0x03070103);
|
||||
WRITE_REGISTER_ULONG((PULONG)(NvBase + NV2A_FB_CFG0 + 4), 0x11448000);
|
||||
|
||||
/* Prep hardware for 128 Mb */
|
||||
WRITE_PORT_ULONG((PULONG)0xCF8, CONFIG_CMD(0, 0, 0x84));
|
||||
|
|
|
@ -24,6 +24,7 @@
|
|||
#include <debug.h>
|
||||
DBG_DEFAULT_CHANNEL(UI);
|
||||
|
||||
ULONG NvBase = 0xFD000000;
|
||||
PVOID FrameBuffer;
|
||||
ULONG FrameBufferSize;
|
||||
static ULONG ScreenWidth;
|
||||
|
@ -142,8 +143,8 @@ XboxVideoPutChar(int Ch, UCHAR Attr, unsigned X, unsigned Y)
|
|||
UCHAR
|
||||
NvGetCrtc(UCHAR Index)
|
||||
{
|
||||
WRITE_REGISTER_UCHAR(NV2A_CRTC_REGISTER_INDEX, Index);
|
||||
return READ_REGISTER_UCHAR(NV2A_CRTC_REGISTER_VALUE);
|
||||
WRITE_REGISTER_UCHAR(NvBase + NV2A_CRTC_REGISTER_INDEX, Index);
|
||||
return READ_REGISTER_UCHAR(NvBase + NV2A_CRTC_REGISTER_VALUE);
|
||||
}
|
||||
|
||||
ULONG
|
||||
|
@ -193,7 +194,7 @@ VOID
|
|||
XboxVideoInit(VOID)
|
||||
{
|
||||
/* Reuse framebuffer that was set up by firmware */
|
||||
FrameBuffer = (PVOID)READ_REGISTER_ULONG(NV2A_CRTC_FRAMEBUFFER_START);
|
||||
FrameBuffer = (PVOID)READ_REGISTER_ULONG(NvBase + NV2A_CRTC_FRAMEBUFFER_START);
|
||||
/* Verify that framebuffer address is page-aligned */
|
||||
ASSERT((ULONG_PTR)FrameBuffer % PAGE_SIZE == 0);
|
||||
|
||||
|
@ -205,8 +206,8 @@ XboxVideoInit(VOID)
|
|||
WARN("Could not detect framebuffer memory size, fallback to 4 MB\n");
|
||||
}
|
||||
|
||||
ScreenWidth = READ_REGISTER_ULONG(NV2A_RAMDAC_FP_HVALID_END) + 1;
|
||||
ScreenHeight = READ_REGISTER_ULONG(NV2A_RAMDAC_FP_VVALID_END) + 1;
|
||||
ScreenWidth = READ_REGISTER_ULONG(NvBase + NV2A_RAMDAC_FP_HVALID_END) + 1;
|
||||
ScreenHeight = READ_REGISTER_ULONG(NvBase + NV2A_RAMDAC_FP_VVALID_END) + 1;
|
||||
/* Get BPP directly from NV2A CRTC (magic constants are from Cromwell) */
|
||||
BytesPerPixel = 8 * (((NvGetCrtc(0x19) & 0xE0) << 3) | (NvGetCrtc(0x13) & 0xFF)) / ScreenWidth;
|
||||
if (BytesPerPixel == 4)
|
||||
|
|
|
@ -22,16 +22,7 @@
|
|||
#include "mm.h"
|
||||
#endif
|
||||
|
||||
#define NV2A_CONTROL_OFFSET 0xFD000000
|
||||
#define NV2A_FB_OFFSET (0x100000 + NV2A_CONTROL_OFFSET)
|
||||
#define NV2A_FB_CFG0 (0x200 + NV2A_FB_OFFSET)
|
||||
#define NV2A_CRTC_OFFSET (0x600000 + NV2A_CONTROL_OFFSET)
|
||||
#define NV2A_CRTC_FRAMEBUFFER_START (0x800 + NV2A_CRTC_OFFSET)
|
||||
#define NV2A_CRTC_REGISTER_INDEX (0x13D4 + NV2A_CRTC_OFFSET)
|
||||
#define NV2A_CRTC_REGISTER_VALUE (0x13D5 + NV2A_CRTC_OFFSET)
|
||||
#define NV2A_RAMDAC_OFFSET (0x680000 + NV2A_CONTROL_OFFSET)
|
||||
#define NV2A_RAMDAC_FP_HVALID_END (0x838 + NV2A_RAMDAC_OFFSET)
|
||||
#define NV2A_RAMDAC_FP_VVALID_END (0x818 + NV2A_RAMDAC_OFFSET)
|
||||
#include <drivers/xbox/xgpu.h>
|
||||
|
||||
extern UCHAR BitmapFont8x16[256 * 16];
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue