summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2017-09-19 14:34:21 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2017-09-19 14:34:21 +0200
commit31540bfb81bb90b2aca8200b607c69f53ebab7b5 (patch)
tree52e8d0b9fb9091ba3a522bf9eed501c1105f5992
parentbsp/qoriq: Avoid IVOR38..42 access as hv guest (diff)
downloadrtems-31540bfb81bb90b2aca8200b607c69f53ebab7b5.tar.bz2
bsp/qoriq: MMU configuration as hypervisor guest
Re-enable MMU configuration as hypervisor guest. Make sure the QORIQ_TLB1_ENTRY_COUNT is set according to the hypervisor configuration. Update #3085.
-rw-r--r--c/src/lib/libbsp/powerpc/qoriq/start/start.S13
-rw-r--r--c/src/lib/libbsp/powerpc/qoriq/startup/mmu-config.c2
2 files changed, 5 insertions, 10 deletions
diff --git a/c/src/lib/libbsp/powerpc/qoriq/start/start.S b/c/src/lib/libbsp/powerpc/qoriq/start/start.S
index 100173c3fa..d5a2ceb474 100644
--- a/c/src/lib/libbsp/powerpc/qoriq/start/start.S
+++ b/c/src/lib/libbsp/powerpc/qoriq/start/start.S
@@ -200,13 +200,6 @@ _start:
.Linitmore:
mflr SAVED_LINK_REGISTER
-#ifdef QORIQ_IS_HYPERVISOR_GUEST
- /* MSR initialization with guest state */
- LWI INITIAL_MSR, QORIQ_INITIAL_MSR
- oris r0, INITIAL_MSR, MSR_GS >> 16
- mtmsr r0
- isync
-#else
/* Invalidate all TS1 MMU entries */
li r3, 1
bl qoriq_tlb1_invalidate_all_by_ts
@@ -226,9 +219,11 @@ _start:
/* MSR initialization and use TS1 for address translation */
LWI INITIAL_MSR, QORIQ_INITIAL_MSR
ori r0, INITIAL_MSR, MSR_IS | MSR_DS
+#ifdef QORIQ_IS_HYPERVISOR_GUEST
+ oris r0, r0, MSR_GS >> 16
+#endif
mtmsr r0
isync
-#endif
/*
* Initialize start stack. Make sure that we do not share a cache line
@@ -248,7 +243,6 @@ _start:
blr
.Linitmmu:
-#ifndef QORIQ_IS_HYPERVISOR_GUEST
mflr SAVED_LINK_REGISTER
/* Configure MMU */
@@ -263,7 +257,6 @@ _start:
PPC64_NOP_FOR_LINKER_TOC_POINTER_RESTORE
mtlr SAVED_LINK_REGISTER
-#endif
blr
#ifdef INITIALIZE_FPU
diff --git a/c/src/lib/libbsp/powerpc/qoriq/startup/mmu-config.c b/c/src/lib/libbsp/powerpc/qoriq/startup/mmu-config.c
index ab0d080ec8..90b0534fa3 100644
--- a/c/src/lib/libbsp/powerpc/qoriq/startup/mmu-config.c
+++ b/c/src/lib/libbsp/powerpc/qoriq/startup/mmu-config.c
@@ -135,6 +135,7 @@ static entry DATA config[] = {
ENTRY_RW(bsp_section_stack_begin, bsp_section_stack_size),
ENTRY_IO(bsp_section_nocache_begin, bsp_section_nocache_size),
ENTRY_IO(bsp_section_nocachenoload_begin, bsp_section_nocachenoload_size),
+#ifndef QORIQ_IS_HYPERVISOR_GUEST
#if QORIQ_CHIP_IS_T_VARIANT(QORIQ_CHIP_VARIANT)
/* BMan Portals */
ENTRY_DEV_CACHED(&qoriq_bman_portal[0][0], sizeof(qoriq_bman_portal[0])),
@@ -144,6 +145,7 @@ static entry DATA config[] = {
ENTRY_DEV(&qoriq_qman_portal[1][0], sizeof(qoriq_qman_portal[1])),
#endif
ENTRY_DEV(&qoriq, sizeof(qoriq))
+#endif
};
static DATA char memory_path[] = "/memory";