powerpc: Add PACA fields specific to 64-bit Book3E processors
This adds various fields in the PACA that are for use specifically by Book3E processors, such as exception save areas, current pgd pointer, special exceptions kernel stacks etc... Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
This commit is contained in:
@@ -140,6 +140,20 @@ int main(void)
|
||||
context.high_slices_psize));
|
||||
DEFINE(MMUPSIZEDEFSIZE, sizeof(struct mmu_psize_def));
|
||||
#endif /* CONFIG_PPC_MM_SLICES */
|
||||
|
||||
#ifdef CONFIG_PPC_BOOK3E
|
||||
DEFINE(PACAPGD, offsetof(struct paca_struct, pgd));
|
||||
DEFINE(PACA_KERNELPGD, offsetof(struct paca_struct, kernel_pgd));
|
||||
DEFINE(PACA_EXGEN, offsetof(struct paca_struct, exgen));
|
||||
DEFINE(PACA_EXTLB, offsetof(struct paca_struct, extlb));
|
||||
DEFINE(PACA_EXMC, offsetof(struct paca_struct, exmc));
|
||||
DEFINE(PACA_EXCRIT, offsetof(struct paca_struct, excrit));
|
||||
DEFINE(PACA_EXDBG, offsetof(struct paca_struct, exdbg));
|
||||
DEFINE(PACA_MC_STACK, offsetof(struct paca_struct, mc_kstack));
|
||||
DEFINE(PACA_CRIT_STACK, offsetof(struct paca_struct, crit_kstack));
|
||||
DEFINE(PACA_DBG_STACK, offsetof(struct paca_struct, dbg_kstack));
|
||||
#endif /* CONFIG_PPC_BOOK3E */
|
||||
|
||||
#ifdef CONFIG_PPC_STD_MMU_64
|
||||
DEFINE(PACASTABREAL, offsetof(struct paca_struct, stab_real));
|
||||
DEFINE(PACASTABVIRT, offsetof(struct paca_struct, stab_addr));
|
||||
|
@@ -13,6 +13,7 @@
|
||||
#include <asm/lppaca.h>
|
||||
#include <asm/paca.h>
|
||||
#include <asm/sections.h>
|
||||
#include <asm/pgtable.h>
|
||||
|
||||
/* This symbol is provided by the linker - let it fill in the paca
|
||||
* field correctly */
|
||||
@@ -87,6 +88,8 @@ void __init initialise_pacas(void)
|
||||
|
||||
#ifdef CONFIG_PPC_BOOK3S
|
||||
new_paca->lppaca_ptr = &lppaca[cpu];
|
||||
#else
|
||||
new_paca->kernel_pgd = swapper_pg_dir;
|
||||
#endif
|
||||
new_paca->lock_token = 0x8000;
|
||||
new_paca->paca_index = cpu;
|
||||
|
Reference in New Issue
Block a user