Proposed: Patch to fix boot on PA6T
Aneesh Kumar K.V
aneesh.kumar at linux.vnet.ibm.com
Wed Jun 29 00:18:55 AEST 2016
Darren Stevens <darren at 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
More information about the Linuxppc-dev
mailing list