thermosphere: refactor crt0 + watchpoint init
This commit is contained in:
@@ -27,3 +27,4 @@
|
||||
#endif
|
||||
|
||||
void configureMemoryMapEnableMmu(void);
|
||||
void configureMemoryMapEnableStage2(void);
|
||||
|
||||
@@ -48,11 +48,9 @@ uintptr_t configureMemoryMap(u32 *addrSpaceSize)
|
||||
{
|
||||
// QEMU virt RAM address space starts at 0x40000000
|
||||
*addrSpaceSize = ADDRSPACESZ;
|
||||
static bool initialized = false;
|
||||
if (currentCoreCtx->isBootCore && !initialized) {
|
||||
if (currentCoreCtx->isBootCore && !currentCoreCtx->warmboot) {
|
||||
identityMapL1(g_ttbl, 0x00000000ull, BITL(30), ATTRIB_MEMTYPE_DEVICE);
|
||||
identityMapL1(g_ttbl, 0x40000000ull, (BITL(ADDRSPACESZ - 30) - 1ull) << 30, ATTRIB_MEMTYPE_NORMAL);
|
||||
initialized = true;
|
||||
}
|
||||
|
||||
return (uintptr_t)g_ttbl;
|
||||
@@ -79,4 +77,4 @@ uintptr_t configureStage2MemoryMap(u32 *addrSpaceSize)
|
||||
}
|
||||
|
||||
return (uintptr_t)g_vttbl;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -48,11 +48,9 @@ static inline void identityMapL3(u64 *tbl, uintptr_t addr, size_t size, u64 attr
|
||||
uintptr_t configureMemoryMap(u32 *addrSpaceSize)
|
||||
{
|
||||
*addrSpaceSize = ADDRSPACESZ;
|
||||
static bool initialized = false;
|
||||
if (currentCoreCtx->isBootCore && !initialized) {
|
||||
if (currentCoreCtx->isBootCore && !currentCoreCtx->warmboot) {
|
||||
identityMapL1(g_ttbl, 0x00000000ull, 2 * BITL(30), ATTRIB_MEMTYPE_DEVICE);
|
||||
identityMapL1(g_ttbl, 0x80000000ull, (BITL(ADDRSPACESZ - 30) - 2ull) << 30, ATTRIB_MEMTYPE_NORMAL);
|
||||
initialized = true;
|
||||
}
|
||||
|
||||
return (uintptr_t)g_ttbl;
|
||||
@@ -78,4 +76,4 @@ uintptr_t configureStage2MemoryMap(u32 *addrSpaceSize)
|
||||
}
|
||||
|
||||
return (uintptr_t)g_vttbl;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user