I have great news from Darren.

pa6t-bootfix.patch:Darren wrote: 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
Code: Select all
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();
}