thermosphere: refactor crt0 + watchpoint init

This commit is contained in:
TuxSH
2019-08-06 22:26:28 +02:00
parent bd93b01e57
commit 0435b73f63
13 changed files with 89 additions and 85 deletions

View File

@@ -27,3 +27,4 @@
#endif
void configureMemoryMapEnableMmu(void);
void configureMemoryMapEnableStage2(void);

View File

@@ -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;
}
}

View File

@@ -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;
}
}