Darren Stevens <dar...@stevens-zone.net> writes: > 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(); > } >
Another option is to init it along with rest of the variables as done in hash__early_init_mmu(void)/radix__early_init_mmu(void) -aneesh _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev