diff options
| author | 2014-12-29 19:47:41 -0800 | |
|---|---|---|
| committer | 2014-12-29 19:47:41 -0800 | |
| commit | 8ba9ac0f74abb0408a26207a76a0c1808bad8de0 (patch) | |
| tree | f1c7c3393fa726435b5b90bf335567c93e528ef1 /src/core/mem_map.h | |
| parent | Add comment regarding __WIN32__ in SkyEye code (diff) | |
| parent | Merge pull request #367 from bunnei/usat_ssat (diff) | |
| download | yuzu-8ba9ac0f74abb0408a26207a76a0c1808bad8de0.tar.gz yuzu-8ba9ac0f74abb0408a26207a76a0c1808bad8de0.tar.xz yuzu-8ba9ac0f74abb0408a26207a76a0c1808bad8de0.zip | |
Fix merge conflicts
Diffstat (limited to 'src/core/mem_map.h')
| -rw-r--r-- | src/core/mem_map.h | 151 |
1 files changed, 80 insertions, 71 deletions
diff --git a/src/core/mem_map.h b/src/core/mem_map.h index a58c59244..a2ef9d3af 100644 --- a/src/core/mem_map.h +++ b/src/core/mem_map.h | |||
| @@ -1,5 +1,5 @@ | |||
| 1 | // Copyright 2014 Citra Emulator Project | 1 | // Copyright 2014 Citra Emulator Project |
| 2 | // Licensed under GPLv2 | 2 | // Licensed under GPLv2 or any later version |
| 3 | // Refer to the license.txt file included. | 3 | // Refer to the license.txt file included. |
| 4 | 4 | ||
| 5 | #pragma once | 5 | #pragma once |
| @@ -16,76 +16,85 @@ typedef u32 PAddr; ///< Represents a pointer in the physical address space. | |||
| 16 | 16 | ||
| 17 | //////////////////////////////////////////////////////////////////////////////////////////////////// | 17 | //////////////////////////////////////////////////////////////////////////////////////////////////// |
| 18 | 18 | ||
| 19 | enum { | 19 | enum : u32 { |
| 20 | BOOTROM_SIZE = 0x00010000, ///< Bootrom (super secret code/data @ 0x8000) size | 20 | BOOTROM_SIZE = 0x00010000, ///< Bootrom (super secret code/data @ 0x8000) size |
| 21 | MPCORE_PRIV_SIZE = 0x00002000, ///< MPCore private memory region size | 21 | BOOTROM_PADDR = 0x00000000, ///< Bootrom physical address |
| 22 | DSP_SIZE = 0x00080000, ///< DSP memory size | 22 | BOOTROM_PADDR_END = (BOOTROM_PADDR + BOOTROM_SIZE), |
| 23 | AXI_WRAM_SIZE = 0x00080000, ///< AXI WRAM size | 23 | |
| 24 | 24 | BOOTROM_MIRROR_SIZE = 0x00010000, ///< Bootrom Mirror size | |
| 25 | FCRAM_SIZE = 0x08000000, ///< FCRAM size | 25 | BOOTROM_MIRROR_PADDR = 0x00010000, ///< Bootrom Mirror physical address |
| 26 | FCRAM_PADDR = 0x20000000, ///< FCRAM physical address | 26 | BOOTROM_MIRROR_PADDR_END = (BOOTROM_MIRROR_PADDR + BOOTROM_MIRROR_SIZE), |
| 27 | FCRAM_PADDR_END = (FCRAM_PADDR + FCRAM_SIZE), ///< FCRAM end of physical space | 27 | |
| 28 | FCRAM_VADDR = 0x08000000, ///< FCRAM virtual address | 28 | MPCORE_PRIV_SIZE = 0x00002000, ///< MPCore private memory region size |
| 29 | FCRAM_VADDR_END = (FCRAM_VADDR + FCRAM_SIZE), ///< FCRAM end of virtual space | 29 | MPCORE_PRIV_PADDR = 0x17E00000, ///< MPCore private memory region physical address |
| 30 | FCRAM_MASK = (FCRAM_SIZE - 1), ///< FCRAM mask | 30 | MPCORE_PRIV_PADDR_END = (MPCORE_PRIV_PADDR + MPCORE_PRIV_SIZE), |
| 31 | 31 | ||
| 32 | SHARED_MEMORY_SIZE = 0x04000000, ///< Shared memory size | 32 | FCRAM_SIZE = 0x08000000, ///< FCRAM size |
| 33 | SHARED_MEMORY_VADDR = 0x10000000, ///< Shared memory | 33 | FCRAM_PADDR = 0x20000000, ///< FCRAM physical address |
| 34 | SHARED_MEMORY_VADDR_END = (SHARED_MEMORY_VADDR + SHARED_MEMORY_SIZE), | 34 | FCRAM_PADDR_END = (FCRAM_PADDR + FCRAM_SIZE), ///< FCRAM end of physical space |
| 35 | SHARED_MEMORY_MASK = (SHARED_MEMORY_SIZE - 1), | 35 | FCRAM_VADDR = 0x08000000, ///< FCRAM virtual address |
| 36 | 36 | FCRAM_VADDR_END = (FCRAM_VADDR + FCRAM_SIZE), ///< FCRAM end of virtual space | |
| 37 | CONFIG_MEMORY_SIZE = 0x00001000, ///< Configuration memory size | 37 | |
| 38 | CONFIG_MEMORY_VADDR = 0x1FF80000, ///< Configuration memory virtual address | 38 | AXI_WRAM_SIZE = 0x00080000, ///< AXI WRAM size |
| 39 | CONFIG_MEMORY_VADDR_END = (CONFIG_MEMORY_VADDR + CONFIG_MEMORY_SIZE), | 39 | AXI_WRAM_PADDR = 0x1FF80000, ///< AXI WRAM physical address |
| 40 | CONFIG_MEMORY_MASK = (CONFIG_MEMORY_SIZE - 1), | 40 | AXI_WRAM_PADDR_END = (AXI_WRAM_PADDR + AXI_WRAM_SIZE), |
| 41 | 41 | ||
| 42 | KERNEL_MEMORY_SIZE = 0x00001000, ///< Kernel memory size | 42 | SHARED_MEMORY_SIZE = 0x04000000, ///< Shared memory size |
| 43 | KERNEL_MEMORY_VADDR = 0xFFFF0000, ///< Kernel memory where the kthread objects etc are | 43 | SHARED_MEMORY_VADDR = 0x10000000, ///< Shared memory |
| 44 | KERNEL_MEMORY_VADDR_END = (KERNEL_MEMORY_VADDR + KERNEL_MEMORY_SIZE), | 44 | SHARED_MEMORY_VADDR_END = (SHARED_MEMORY_VADDR + SHARED_MEMORY_SIZE), |
| 45 | KERNEL_MEMORY_MASK = (KERNEL_MEMORY_SIZE - 1), | 45 | |
| 46 | 46 | DSP_MEMORY_SIZE = 0x00080000, ///< DSP memory size | |
| 47 | EXEFS_CODE_SIZE = 0x03F00000, | 47 | DSP_MEMORY_VADDR = 0x1FF00000, ///< DSP memory virtual address |
| 48 | EXEFS_CODE_VADDR = 0x00100000, ///< ExeFS:/.code is loaded here | 48 | DSP_MEMORY_VADDR_END = (DSP_MEMORY_VADDR + DSP_MEMORY_SIZE), |
| 49 | EXEFS_CODE_VADDR_END = (EXEFS_CODE_VADDR + EXEFS_CODE_SIZE), | 49 | |
| 50 | EXEFS_CODE_MASK = 0x03FFFFFF, | 50 | CONFIG_MEMORY_SIZE = 0x00001000, ///< Configuration memory size |
| 51 | CONFIG_MEMORY_VADDR = 0x1FF80000, ///< Configuration memory virtual address | ||
| 52 | CONFIG_MEMORY_VADDR_END = (CONFIG_MEMORY_VADDR + CONFIG_MEMORY_SIZE), | ||
| 53 | |||
| 54 | SHARED_PAGE_SIZE = 0x00001000, ///< Shared page size | ||
| 55 | SHARED_PAGE_VADDR = 0x1FF81000, ///< Shared page virtual address | ||
| 56 | SHARED_PAGE_VADDR_END = (SHARED_PAGE_VADDR + SHARED_PAGE_SIZE), | ||
| 57 | |||
| 58 | KERNEL_MEMORY_SIZE = 0x00001000, ///< Kernel memory size | ||
| 59 | KERNEL_MEMORY_VADDR = 0xFFFF0000, ///< Kernel memory where the kthread objects etc are | ||
| 60 | KERNEL_MEMORY_VADDR_END = (KERNEL_MEMORY_VADDR + KERNEL_MEMORY_SIZE), | ||
| 61 | |||
| 62 | EXEFS_CODE_SIZE = 0x03F00000, | ||
| 63 | EXEFS_CODE_VADDR = 0x00100000, ///< ExeFS:/.code is loaded here | ||
| 64 | EXEFS_CODE_VADDR_END = (EXEFS_CODE_VADDR + EXEFS_CODE_SIZE), | ||
| 51 | 65 | ||
| 52 | // Region of FCRAM used by system | 66 | // Region of FCRAM used by system |
| 53 | SYSTEM_MEMORY_SIZE = 0x02C00000, ///< 44MB | 67 | SYSTEM_MEMORY_SIZE = 0x02C00000, ///< 44MB |
| 54 | SYSTEM_MEMORY_VADDR = 0x04000000, | 68 | SYSTEM_MEMORY_VADDR = 0x04000000, |
| 55 | SYSTEM_MEMORY_VADDR_END = (SYSTEM_MEMORY_VADDR + SYSTEM_MEMORY_SIZE), | 69 | SYSTEM_MEMORY_VADDR_END = (SYSTEM_MEMORY_VADDR + SYSTEM_MEMORY_SIZE), |
| 56 | SYSTEM_MEMORY_MASK = 0x03FFFFFF, | 70 | |
| 57 | 71 | HEAP_SIZE = FCRAM_SIZE, ///< Application heap size | |
| 58 | HEAP_SIZE = FCRAM_SIZE, ///< Application heap size | 72 | //HEAP_PADDR = HEAP_GSP_SIZE, |
| 59 | //HEAP_PADDR = HEAP_GSP_SIZE, | 73 | //HEAP_PADDR_END = (HEAP_PADDR + HEAP_SIZE), |
| 60 | //HEAP_PADDR_END = (HEAP_PADDR + HEAP_SIZE), | 74 | HEAP_VADDR = 0x08000000, |
| 61 | HEAP_VADDR = 0x08000000, | 75 | HEAP_VADDR_END = (HEAP_VADDR + HEAP_SIZE), |
| 62 | HEAP_VADDR_END = (HEAP_VADDR + HEAP_SIZE), | 76 | |
| 63 | HEAP_MASK = (HEAP_SIZE - 1), | 77 | HEAP_LINEAR_SIZE = 0x08000000, ///< Linear heap size... TODO: Define correctly? |
| 64 | 78 | HEAP_LINEAR_VADDR = 0x14000000, | |
| 65 | HEAP_GSP_SIZE = 0x02000000, ///< GSP heap size... TODO: Define correctly? | 79 | HEAP_LINEAR_VADDR_END = (HEAP_LINEAR_VADDR + HEAP_LINEAR_SIZE), |
| 66 | HEAP_GSP_VADDR = 0x14000000, | 80 | HEAP_LINEAR_PADDR = 0x00000000, |
| 67 | HEAP_GSP_VADDR_END = (HEAP_GSP_VADDR + HEAP_GSP_SIZE), | 81 | HEAP_LINEAR_PADDR_END = (HEAP_LINEAR_PADDR + HEAP_LINEAR_SIZE), |
| 68 | HEAP_GSP_PADDR = 0x00000000, | 82 | |
| 69 | HEAP_GSP_PADDR_END = (HEAP_GSP_PADDR + HEAP_GSP_SIZE), | 83 | HARDWARE_IO_SIZE = 0x01000000, |
| 70 | HEAP_GSP_MASK = (HEAP_GSP_SIZE - 1), | 84 | HARDWARE_IO_PADDR = 0x10000000, ///< IO physical address start |
| 71 | 85 | HARDWARE_IO_VADDR = 0x1EC00000, ///< IO virtual address start | |
| 72 | HARDWARE_IO_SIZE = 0x01000000, | 86 | HARDWARE_IO_PADDR_END = (HARDWARE_IO_PADDR + HARDWARE_IO_SIZE), |
| 73 | HARDWARE_IO_PADDR = 0x10000000, ///< IO physical address start | 87 | HARDWARE_IO_VADDR_END = (HARDWARE_IO_VADDR + HARDWARE_IO_SIZE), |
| 74 | HARDWARE_IO_VADDR = 0x1EC00000, ///< IO virtual address start | 88 | |
| 75 | HARDWARE_IO_PADDR_END = (HARDWARE_IO_PADDR + HARDWARE_IO_SIZE), | 89 | VRAM_SIZE = 0x00600000, |
| 76 | HARDWARE_IO_VADDR_END = (HARDWARE_IO_VADDR + HARDWARE_IO_SIZE), | 90 | VRAM_PADDR = 0x18000000, |
| 77 | 91 | VRAM_VADDR = 0x1F000000, | |
| 78 | VRAM_SIZE = 0x00600000, | 92 | VRAM_PADDR_END = (VRAM_PADDR + VRAM_SIZE), |
| 79 | VRAM_PADDR = 0x18000000, | 93 | VRAM_VADDR_END = (VRAM_VADDR + VRAM_SIZE), |
| 80 | VRAM_VADDR = 0x1F000000, | 94 | |
| 81 | VRAM_PADDR_END = (VRAM_PADDR + VRAM_SIZE), | 95 | SCRATCHPAD_SIZE = 0x00004000, ///< Typical stack size - TODO: Read from exheader |
| 82 | VRAM_VADDR_END = (VRAM_VADDR + VRAM_SIZE), | 96 | SCRATCHPAD_VADDR_END = 0x10000000, |
| 83 | VRAM_MASK = 0x007FFFFF, | 97 | SCRATCHPAD_VADDR = (SCRATCHPAD_VADDR_END - SCRATCHPAD_SIZE), ///< Stack space |
| 84 | |||
| 85 | SCRATCHPAD_SIZE = 0x00004000, ///< Typical stack size - TODO: Read from exheader | ||
| 86 | SCRATCHPAD_VADDR_END = 0x10000000, | ||
| 87 | SCRATCHPAD_VADDR = (SCRATCHPAD_VADDR_END - SCRATCHPAD_SIZE), ///< Stack space | ||
| 88 | SCRATCHPAD_MASK = (SCRATCHPAD_SIZE - 1), ///< Scratchpad memory mask | ||
| 89 | }; | 98 | }; |
| 90 | 99 | ||
| 91 | //////////////////////////////////////////////////////////////////////////////////////////////////// | 100 | //////////////////////////////////////////////////////////////////////////////////////////////////// |
| @@ -120,7 +129,7 @@ extern u8 *g_base; | |||
| 120 | // These are guaranteed to point to "low memory" addresses (sub-32-bit). | 129 | // These are guaranteed to point to "low memory" addresses (sub-32-bit). |
| 121 | // 64-bit: Pointers to low-mem (sub-0x10000000) mirror | 130 | // 64-bit: Pointers to low-mem (sub-0x10000000) mirror |
| 122 | // 32-bit: Same as the corresponding physical/virtual pointers. | 131 | // 32-bit: Same as the corresponding physical/virtual pointers. |
| 123 | extern u8* g_heap_gsp; ///< GSP heap (main memory) | 132 | extern u8* g_heap_linear; ///< Linear heap (main memory) |
| 124 | extern u8* g_heap; ///< Application heap (main memory) | 133 | extern u8* g_heap; ///< Application heap (main memory) |
| 125 | extern u8* g_vram; ///< Video memory (VRAM) | 134 | extern u8* g_vram; ///< Video memory (VRAM) |
| 126 | extern u8* g_shared_mem; ///< Shared memory | 135 | extern u8* g_shared_mem; ///< Shared memory |
| @@ -167,7 +176,7 @@ u32 MapBlock_Heap(u32 size, u32 operation, u32 permissions); | |||
| 167 | * @param operation Memory map operation type | 176 | * @param operation Memory map operation type |
| 168 | * @param permissions Control memory permissions | 177 | * @param permissions Control memory permissions |
| 169 | */ | 178 | */ |
| 170 | u32 MapBlock_HeapGSP(u32 size, u32 operation, u32 permissions); | 179 | u32 MapBlock_HeapLinear(u32 size, u32 operation, u32 permissions); |
| 171 | 180 | ||
| 172 | inline const char* GetCharPointer(const VAddr address) { | 181 | inline const char* GetCharPointer(const VAddr address) { |
| 173 | return (const char *)GetPointer(address); | 182 | return (const char *)GetPointer(address); |