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.
This commit is contained in:
Sebastian Huber
2017-09-19 14:34:21 +02:00
parent 2720fbf0c2
commit 31540bfb81
2 changed files with 5 additions and 10 deletions

View File

@@ -200,13 +200,6 @@ _start:
.Linitmore: .Linitmore:
mflr SAVED_LINK_REGISTER 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 */ /* Invalidate all TS1 MMU entries */
li r3, 1 li r3, 1
bl qoriq_tlb1_invalidate_all_by_ts bl qoriq_tlb1_invalidate_all_by_ts
@@ -226,9 +219,11 @@ _start:
/* MSR initialization and use TS1 for address translation */ /* MSR initialization and use TS1 for address translation */
LWI INITIAL_MSR, QORIQ_INITIAL_MSR LWI INITIAL_MSR, QORIQ_INITIAL_MSR
ori r0, INITIAL_MSR, MSR_IS | MSR_DS ori r0, INITIAL_MSR, MSR_IS | MSR_DS
#ifdef QORIQ_IS_HYPERVISOR_GUEST
oris r0, r0, MSR_GS >> 16
#endif
mtmsr r0 mtmsr r0
isync isync
#endif
/* /*
* Initialize start stack. Make sure that we do not share a cache line * Initialize start stack. Make sure that we do not share a cache line
@@ -248,7 +243,6 @@ _start:
blr blr
.Linitmmu: .Linitmmu:
#ifndef QORIQ_IS_HYPERVISOR_GUEST
mflr SAVED_LINK_REGISTER mflr SAVED_LINK_REGISTER
/* Configure MMU */ /* Configure MMU */
@@ -263,7 +257,6 @@ _start:
PPC64_NOP_FOR_LINKER_TOC_POINTER_RESTORE PPC64_NOP_FOR_LINKER_TOC_POINTER_RESTORE
mtlr SAVED_LINK_REGISTER mtlr SAVED_LINK_REGISTER
#endif
blr blr
#ifdef INITIALIZE_FPU #ifdef INITIALIZE_FPU

View File

@@ -135,6 +135,7 @@ static entry DATA config[] = {
ENTRY_RW(bsp_section_stack_begin, bsp_section_stack_size), ENTRY_RW(bsp_section_stack_begin, bsp_section_stack_size),
ENTRY_IO(bsp_section_nocache_begin, bsp_section_nocache_size), ENTRY_IO(bsp_section_nocache_begin, bsp_section_nocache_size),
ENTRY_IO(bsp_section_nocachenoload_begin, bsp_section_nocachenoload_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) #if QORIQ_CHIP_IS_T_VARIANT(QORIQ_CHIP_VARIANT)
/* BMan Portals */ /* BMan Portals */
ENTRY_DEV_CACHED(&qoriq_bman_portal[0][0], sizeof(qoriq_bman_portal[0])), 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])), ENTRY_DEV(&qoriq_qman_portal[1][0], sizeof(qoriq_qman_portal[1])),
#endif #endif
ENTRY_DEV(&qoriq, sizeof(qoriq)) ENTRY_DEV(&qoriq, sizeof(qoriq))
#endif
}; };
static DATA char memory_path[] = "/memory"; static DATA char memory_path[] = "/memory";