replace hardcode addresses to macro for AddressRanges files
This commit is contained in:
parent
2ead1e0fe0
commit
32001136ae
|
@ -47,26 +47,26 @@ const _XboxAddressRanges XboxAddressRanges[] = {
|
|||
#endif
|
||||
// See http://xboxdevwiki.net/Memory
|
||||
// and http://xboxdevwiki.net/Boot_Process#Paging
|
||||
// Entry : Start , End , Size , Protect , RangeFlags , Comment
|
||||
RANGE_ENTRY(0x00010000, 0x03FFFFFF, MB( 64) - KB(64), PROT_XRW, SYSTEM_ALL | MAY_FAIL, "MemLowVirtual (General Xbox type) lower 64 MB Optional (already reserved via virtual_memory_placeholder)"),
|
||||
RANGE_ENTRY(0x04000000, 0x07FFFFFF, MB( 64) , PROT_XRW, SYSTEM_128MB | MAY_FAIL, "MemLowVirtual (Chihiro / DevKit) ^ + upper 64 MB"),
|
||||
RANGE_ENTRY(0x80000000, 0x83FFFFFF, MB( 64) , PROT_UNH, SYSTEM_ALL , "MemPhysical (General Xbox type) lower 64 MB"),
|
||||
RANGE_ENTRY(0x84000000, 0x87FFFFFF, MB( 64) , PROT_UNH, SYSTEM_128MB , "MemPhysical (Chihiro / DevKit) ^ + upper 64 MB"),
|
||||
RANGE_ENTRY(0xB0000000, 0xBFFFFFFF, MB(256) , PROT_NAC, SYSTEM_DEVKIT , "DevKitMemory"), // TODO : Check reserved range (might behave like MemTiled)
|
||||
RANGE_ENTRY(0xC0000000, 0xC03FFFFF, MB( 4) , PROT_RW, SYSTEM_ALL , "MemPageTable"), // See PAGE_TABLES_SIZE, which contains one 4 byte entry per PAGE_SIZE
|
||||
RANGE_ENTRY(0xD0000000, 0xEFFFFFFF, MB(512) , PROT_RW, SYSTEM_ALL | MAY_FAIL, "SystemMemory Optional"), // TODO : Check reserved range (might behave like MemTiled)
|
||||
RANGE_ENTRY(0xF0000000, 0xF3FFFFFF, MB( 64) , PROT_UNH, SYSTEM_ALL , "MemTiled Optional (even though it can't be reserved, MapViewOfFileEx to this range still works!?)"),
|
||||
RANGE_ENTRY(0xFD000000, 0xFD6FFFFF, MB( 7) , PROT_NAC, SYSTEM_ALL , "DeviceNV2A_a (GPU)"),
|
||||
RANGE_ENTRY(0xFD700000, 0xFD7FFFFF, MB( 1) , PROT_RW, SYSTEM_ALL , "MemNV2APRAMIN"),
|
||||
RANGE_ENTRY(0xFD800000, 0xFDFFFFFF, MB( 8) , PROT_NAC, SYSTEM_ALL , "DeviceNV2A_b (GPU)"),
|
||||
RANGE_ENTRY(0xFE800000, 0xFE87FFFF, KB(512) , PROT_NAC, SYSTEM_ALL , "DeviceAPU"),
|
||||
RANGE_ENTRY(0xFEC00000, 0xFEC00FFF, KB( 4) , PROT_NAC, SYSTEM_ALL , "DeviceAC97 (ACI)"),
|
||||
RANGE_ENTRY(0xFED00000, 0xFED00FFF, KB( 4) , PROT_NAC, SYSTEM_ALL , "DeviceUSB"),
|
||||
RANGE_ENTRY(0xFEF00000, 0xFEF003FF, KB( 1) , PROT_NAC, SYSTEM_ALL , "DeviceNVNet"),
|
||||
RANGE_ENTRY(0xFF000000, 0xFF3FFFFF, MB( 4) , PROT_NAC, SYSTEM_ALL , "DeviceFlash_a (Flash mirror 1)"),
|
||||
RANGE_ENTRY(0xFF400000, 0xFF7FFFFF, MB( 4) , PROT_NAC, SYSTEM_ALL , "DeviceFlash_b (Flash mirror 2)"),
|
||||
RANGE_ENTRY(0xFF800000, 0xFFBFFFFF, MB( 4) , PROT_NAC, SYSTEM_ALL , "DeviceFlash_c (Flash mirror 3)"),
|
||||
RANGE_ENTRY(0xFFC00000, 0xFFFFFFFF, MB( 4) , PROT_NAC, SYSTEM_ALL | MAY_FAIL, "DeviceFlash_d (Flash mirror 4) Optional (will probably fail reservation, which is acceptable - the 3 other mirrors work just fine"),
|
||||
// Entry : Start , End , Size , Protect , RangeFlags , Comment
|
||||
RANGE_ENTRY(USER_ADDRESS1_BASE, USER_ADDRESS1_END, USER_ADDRESS1_SIZE, PROT_XRW, SYSTEM_ALL | MAY_FAIL, "MemLowVirtual (General Xbox type) lower 64 MB Optional (already reserved via virtual_memory_placeholder)"),
|
||||
RANGE_ENTRY(USER_ADDRESS2_BASE, USER_ADDRESS2_END, USER_ADDRESS2_SIZE, PROT_XRW, SYSTEM_128MB | MAY_FAIL, "MemLowVirtual (Chihiro / DevKit) ^ + upper 64 MB"),
|
||||
RANGE_ENTRY(PHYSICAL_MAP1_BASE, PHYSICAL_MAP1_END, PHYSICAL_MAP1_SIZE, PROT_UNH, SYSTEM_ALL , "MemPhysical (General Xbox type) lower 64 MB"),
|
||||
RANGE_ENTRY(PHYSICAL_MAP2_BASE, PHYSICAL_MAP2_END, PHYSICAL_MAP2_SIZE, PROT_UNH, SYSTEM_128MB , "MemPhysical (Chihiro / DevKit) ^ + upper 64 MB"),
|
||||
RANGE_ENTRY(DEVKIT_MEMORY_BASE, DEVKIT_MEMORY_END, DEVKIT_MEMORY_SIZE, PROT_NAC, SYSTEM_DEVKIT , "DevKitMemory"), // TODO : Check reserved range (might behave like MemTiled)
|
||||
RANGE_ENTRY(PAGE_TABLES_BASE , PAGE_TABLES_END , PAGE_TABLES_SIZE , PROT_RW , SYSTEM_ALL , "MemPageTable"), // See PAGE_TABLES_SIZE, which contains one 4 byte entry per PAGE_SIZE
|
||||
RANGE_ENTRY(SYSTEM_MEMORY_BASE, SYSTEM_MEMORY_END, SYSTEM_MEMORY_SIZE, PROT_RW , SYSTEM_ALL | MAY_FAIL, "SystemMemory Optional"), // TODO : Check reserved range (might behave like MemTiled)
|
||||
RANGE_ENTRY(TILED_MEMORY_BASE , TILED_MEMORY_END , TILED_MEMORY_SIZE , PROT_UNH, SYSTEM_ALL , "MemTiled Optional (even though it can't be reserved, MapViewOfFileEx to this range still works!?)"),
|
||||
RANGE_ENTRY(NV2A_DEVICE1_BASE , NV2A_DEVICE1_END , NV2A_DEVICE1_SIZE , PROT_NAC, SYSTEM_ALL , "DeviceNV2A_a (GPU)"),
|
||||
RANGE_ENTRY(NV2A_PRAMIN_BASE , NV2A_PRAMIN_END , NV2A_PRAMIN_SIZE1 , PROT_RW , SYSTEM_ALL , "MemNV2APRAMIN"),
|
||||
RANGE_ENTRY(NV2A_DEVICE2_BASE , NV2A_DEVICE2_END , NV2A_DEVICE2_SIZE , PROT_NAC, SYSTEM_ALL , "DeviceNV2A_b (GPU)"),
|
||||
RANGE_ENTRY(APU_DEVICE_BASE , APU_DEVICE_END , APU_DEVICE_SIZE , PROT_NAC, SYSTEM_ALL , "DeviceAPU"),
|
||||
RANGE_ENTRY(AC97_DEVICE_BASE , AC97_DEVICE_END , AC97_DEVICE_SIZE , PROT_NAC, SYSTEM_ALL , "DeviceAC97 (ACI)"),
|
||||
RANGE_ENTRY(USB_DEVICE_BASE , USB_DEVICE_END , USB_DEVICE_SIZE , PROT_NAC, SYSTEM_ALL , "DeviceUSB"),
|
||||
RANGE_ENTRY(NVNET_DEVICE_BASE , NVNET_DEVICE_END , NVNET_DEVICE_SIZE , PROT_NAC, SYSTEM_ALL , "DeviceNVNet"),
|
||||
RANGE_ENTRY(FLASH_DEVICE1_BASE, FLASH_DEVICE1_END, FLASH_DEVICEN_SIZE, PROT_NAC, SYSTEM_ALL , "DeviceFlash_a (Flash mirror 1)"),
|
||||
RANGE_ENTRY(FLASH_DEVICE2_BASE, FLASH_DEVICE2_END, FLASH_DEVICEN_SIZE, PROT_NAC, SYSTEM_ALL , "DeviceFlash_b (Flash mirror 2)"),
|
||||
RANGE_ENTRY(FLASH_DEVICE3_BASE, FLASH_DEVICE3_END, FLASH_DEVICEN_SIZE, PROT_NAC, SYSTEM_ALL , "DeviceFlash_c (Flash mirror 3)"),
|
||||
RANGE_ENTRY(FLASH_DEVICE4_BASE, FLASH_DEVICE4_END, FLASH_DEVICEN_SIZE, PROT_NAC, SYSTEM_ALL | MAY_FAIL, "DeviceFlash_d (Flash mirror 4) Optional (will probably fail reservation, which is acceptable - the 3 other mirrors work just fine"),
|
||||
#undef RANGE_ENTRY
|
||||
};
|
||||
|
||||
|
|
|
@ -32,6 +32,14 @@
|
|||
#define KB(x) ((x) * 1024 ) // = 0x00000400
|
||||
#define MB(x) ((x) * KB(1024)) // = 0x00100000
|
||||
|
||||
#define USER_ADDRESS1_BASE 0x00010000
|
||||
#define USER_ADDRESS1_SIZE (MB(64) - KB(64)) // = 0x03FF0000
|
||||
#define USER_ADDRESS1_END (USER_ADDRESS1_BASE + USER_ADDRESS1_SIZE - 1) // 0x03FFFFFF
|
||||
|
||||
#define USER_ADDRESS2_BASE 0x04000000
|
||||
#define USER_ADDRESS2_SIZE (MB(64)) // = 0x04000000
|
||||
#define USER_ADDRESS2_END (USER_ADDRESS2_BASE + USER_ADDRESS2_SIZE - 1) // 0x07FFFFFF
|
||||
|
||||
// Base addresses of various components
|
||||
#define KSEG0_BASE 0x80000000
|
||||
|
||||
|
@ -39,6 +47,14 @@
|
|||
#define PHYSICAL_MAP_SIZE (MB(256)) // = 0x10000000
|
||||
#define PHYSICAL_MAP_END (PHYSICAL_MAP_BASE + PHYSICAL_MAP_SIZE - 1) // 0x8FFFFFFF
|
||||
|
||||
#define PHYSICAL_MAP1_BASE 0x80000000
|
||||
#define PHYSICAL_MAP1_SIZE (MB(64)) // = 0x04000000
|
||||
#define PHYSICAL_MAP1_END (PHYSICAL_MAP1_BASE + PHYSICAL_MAP1_SIZE - 1) // 0x83FFFFFF
|
||||
|
||||
#define PHYSICAL_MAP2_BASE 0x84000000
|
||||
#define PHYSICAL_MAP2_SIZE (MB(64)) // = 0x04000000
|
||||
#define PHYSICAL_MAP2_END (PHYSICAL_MAP2_BASE + PHYSICAL_MAP2_SIZE - 1) // 0x8FFFFFFF
|
||||
|
||||
#define CONTIGUOUS_MEMORY_BASE KSEG0_BASE // = 0x80000000
|
||||
#define XBOX_CONTIGUOUS_MEMORY_SIZE (MB(64))
|
||||
#define CHIHIRO_CONTIGUOUS_MEMORY_SIZE (MB(128))
|
||||
|
@ -55,6 +71,10 @@
|
|||
#define SYSTEM_MEMORY_SIZE (MB(512)) // = 0x20000000
|
||||
#define SYSTEM_MEMORY_END (SYSTEM_MEMORY_BASE + SYSTEM_MEMORY_SIZE - 1) // 0xEFFFFFFF
|
||||
|
||||
#define TILED_MEMORY_BASE 0xF0000000
|
||||
#define TILED_MEMORY_SIZE (MB(64)) // = 0x04000000
|
||||
#define TILED_MEMORY_END (TILED_MEMORY_BASE + TILED_MEMORY_SIZE - 1) // 0xF3FFFFFF
|
||||
|
||||
#define XBOX_WRITE_COMBINED_BASE 0xF0000000 // WC (The WC memory is another name of the tiled memory)
|
||||
#define XBOX_WRITE_COMBINED_SIZE (MB(128)) // = 0x08000000
|
||||
#define XBOX_WRITE_COMBINED_END (XBOX_WRITE_COMBINED_BASE + XBOX_WRITE_COMBINED_SIZE - 1) // 0xF7FFFFFF
|
||||
|
@ -63,10 +83,51 @@
|
|||
#define XBOX_UNCACHED_SIZE (MB(128 - 4)) // = 0x07C00000
|
||||
#define XBOX_UNCACHED_END (XBOX_UNCACHED_BASE + XBOX_UNCACHED_SIZE - 1) // - 0xFFBFFFFF
|
||||
|
||||
#define NV2A_DEVICE1_BASE 0xFD000000
|
||||
#define NV2A_DEVICE1_SIZE (MB(7)) // = 0x00700000
|
||||
#define NV2A_DEVICE1_END (NV2A_DEVICE1_BASE + NV2A_DEVICE1_SIZE - 1) // 0xFD6FFFFF
|
||||
|
||||
#define NV2A_PRAMIN_BASE 0xFD700000
|
||||
#define NV2A_PRAMIN_SIZE1 (MB(1)) // = 0x00100000 // TODO: Might be best to merge PCIDevice.h's address ranges into this header file.
|
||||
#define NV2A_PRAMIN_END (NV2A_PRAMIN_BASE + NV2A_PRAMIN_SIZE1 - 1) // 0xFD7FFFFF
|
||||
|
||||
#define NV2A_DEVICE2_BASE 0xFD800000
|
||||
#define NV2A_DEVICE2_SIZE (MB(8)) // = 0x00800000
|
||||
#define NV2A_DEVICE2_END (NV2A_DEVICE2_BASE + NV2A_DEVICE2_SIZE - 1) // 0xFDFFFFFF
|
||||
|
||||
#define APU_DEVICE_BASE 0xFE800000
|
||||
#define APU_DEVICE_SIZE (KB(512)) // = 0x00080000
|
||||
#define APU_DEVICE_END (APU_DEVICE_BASE + APU_DEVICE_SIZE - 1) // 0xFE87FFFF
|
||||
|
||||
#define AC97_DEVICE_BASE 0xFEC00000
|
||||
#define AC97_DEVICE_SIZE (KB(4)) // = 0x0001000
|
||||
#define AC97_DEVICE_END (AC97_DEVICE_BASE + AC97_DEVICE_SIZE - 1) // 0xFEC00FFF
|
||||
|
||||
#define USB_DEVICE_BASE 0xFED00000
|
||||
#define USB_DEVICE_SIZE (KB(4)) // = 0x0001000
|
||||
#define USB_DEVICE_END (USB_DEVICE_BASE + USB_DEVICE_SIZE - 1) // 0xFED00FFF
|
||||
|
||||
#define NVNET_DEVICE_BASE 0xFEF00000
|
||||
#define NVNET_DEVICE_SIZE (KB(1)) // = 0x00000400
|
||||
#define NVNET_DEVICE_END (NVNET_DEVICE_BASE + NVNET_DEVICE_SIZE - 1) // 0xFEF003FF
|
||||
|
||||
#define XBOX_FLASH_ROM_BASE 0xFFF00000
|
||||
#define XBOX_FLASH_ROM_SIZE (MB(1)) // = 0x00100000
|
||||
#define XBOX_FLASH_ROM_END (XBOX_FLASH_ROM_BASE + XBOX_FLASH_ROM_SIZE - 1) // - 0xFFFFFFF
|
||||
|
||||
#define FLASH_DEVICEN_SIZE (MB(4)) // = 0x00400000
|
||||
#define FLASH_DEVICE1_BASE 0xFF000000
|
||||
#define FLASH_DEVICE1_END (FLASH_DEVICE1_BASE + FLASH_DEVICEN_SIZE - 1) // 0xFF3FFFFF
|
||||
|
||||
#define FLASH_DEVICE2_BASE 0xFF400000
|
||||
#define FLASH_DEVICE2_END (FLASH_DEVICE2_BASE + FLASH_DEVICEN_SIZE - 1) // 0xFF7FFFFF
|
||||
|
||||
#define FLASH_DEVICE3_BASE 0xFF800000
|
||||
#define FLASH_DEVICE3_END (FLASH_DEVICE3_BASE + FLASH_DEVICEN_SIZE - 1) // 0xFFBFFFFF
|
||||
|
||||
#define FLASH_DEVICE4_BASE 0xFFC00000
|
||||
#define FLASH_DEVICE4_END (FLASH_DEVICE4_BASE + FLASH_DEVICEN_SIZE - 1) // 0xFFFFFFFF
|
||||
|
||||
// Miscellaneous base addresses
|
||||
#define XBE_IMAGE_BASE 0x00010000
|
||||
#define PAGE_DIRECTORY_BASE 0xC0300000
|
||||
|
|
Loading…
Reference in New Issue