Hello All, commit d6a9996e84ac4beb7713e9485f4563e100a9b03e powerpc/mm: vmalloc abstraction in preparation for radix
This commit introduced variables for some linux kernel addresses that had before been constants, unfortunately this stopped PaSemi PA6T systems(*) from booting as they call ioremap to map SoC registers before the mmu is initialised. The attached patch adds a hard-coded init of pci_io_base to the pas_init_early() function which which allows the kernel to boot normally. The value will be harmlessly set again once pci starts up. (*) At the moment this has only been tested on an AmigaOneX1000, but I expect PaSemi reference systems to have been affected in the same way. Kind regards Darren
diff --git a/arch/powerpc/platforms/pasemi/setup.c b/arch/powerpc/platforms/pasemi/setup.c index d71b2c7..6b8d2ab 100644 --- a/arch/powerpc/platforms/pasemi/setup.c +++ b/arch/powerpc/platforms/pasemi/setup.c @@ -61,6 +61,7 @@ static struct mce_regs mce_regs[MAX_MCE_REGS]; static int num_mce_regs; static int nmi_virq = NO_IRQ; +extern unsigned long pci_io_base; static void pas_restart(char *cmd) { @@ -341,6 +342,10 @@ out: static void __init pas_init_early(void) { + /* Initialise the IO pointer so we don't crash on boot */ + + pci_io_base = (H_KERN_VIRT_START + (H_KERN_VIRT_SIZE >> 1)); + iommu_init_early_pasemi(); }
_______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev