From 992b7f097fd252dd3ab38fa39aa9b00400ff15c0 Mon Sep 17 00:00:00 2001 From: schulz Date: Tue, 18 Jun 2013 21:45:17 +0000 Subject: [PATCH] Set "client" domain control rights for domain 0 git-svn-id: https://svn.aros.org/svn/aros/trunk/AROS@47575 fb15a70f-31f2-0310-bbcc-cdcc74a49acc --- arch/arm-efika/boot/boot.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/arch/arm-efika/boot/boot.c b/arch/arm-efika/boot/boot.c index f3290db23e..838e52fac6 100644 --- a/arch/arm-efika/boot/boot.c +++ b/arch/arm-efika/boot/boot.c @@ -106,6 +106,7 @@ void setup_mmu(uintptr_t kernel_phys, uintptr_t kernel_virt, uintptr_t length) /* 1:1 memory mapping */ for (i=(mem_lower >> 20); i < (mem_upper >> 20); i++) { + //page_dir[i].raw = 0; page_dir[i].section.type = PDE_TYPE_SECTION; page_dir[i].section.b = 0; page_dir[i].section.c = 1; /* Cacheable */ @@ -116,6 +117,7 @@ void setup_mmu(uintptr_t kernel_phys, uintptr_t kernel_virt, uintptr_t length) /* 0x70000000 - 0x7fffffff */ for (i = (0x70000000 >> 20); i < (0x80000000 >> 20); i++) { + //page_dir[i].raw = 0; page_dir[i].section.type = PDE_TYPE_SECTION; page_dir[i].section.b = 1; /* Shared device */ page_dir[i].section.c = 0; /* Non-Cacheable */ @@ -364,6 +366,11 @@ void boot(uintptr_t dummy, uintptr_t arch, struct tag * atags) /* Write ttbr control N = 0 (use only ttbr0) */ asm volatile ("mcr p15, 0, %0, c2, c0, 2"::"r"(0)); + /* Set domains - Dom0 is usable, rest is disabled */ + asm volatile ("mrc p15, 0, %0, c3, c0, 0":"=r"(tmp)); + kprintf("[BOOT] Domain access control register: %08x\n", tmp); + asm volatile ("mcr p15, 0, %0, c3, c0, 0"::"r"(0x00000001)); + asm volatile ("mrc p15, 0, %0, c1, c0, 0":"=r"(tmp)); kprintf("[BOOT] control register %08x\n", tmp); tmp |= 1; /* Enable MMU */ -- 2.11.4.GIT