From: Darren Stevens <hidden> Date: 2016-06-29 21:16:44
Commit:d6a9996e84ac4beb7713e9485f4563e100a9b03e (powerpc/mm:
vmalloc abstraction in preparation for radix) turned kernel memory
and IO addresses from #defined constants to variables initialised
at runtime.
On PA6T systems the setup_arch machine call initialises the onboard
PCI-e root-ports, and uses pci_io_base to do this, which is now before
its value has been set resulting in a panic right after 'booting
linux via __start()'
Move the pci_io_base initialisation to the same place as vmalloc
ranges are set (hash__early_init_mmu()/radix__early_init_mmu())
Reported-by: Christian Zigotzky [off-list ref]
Signed-off-by: Darren Stevens [off-list ref]
---
Tested on my AmigaOneX1000, I don't have access to a refence board system,
and our developer with one is on honeymoon.
I am hoping to follow this patch with others to reduce the size of the nemo
patch we apply, eventually I'd like to see the patch gone, but that is a
very big job.
Kind regards
Darren
Commit:d6a9996e84ac4beb7713e9485f4563e100a9b03e (powerpc/mm:
vmalloc abstraction in preparation for radix) turned kernel memory
and IO addresses from #defined constants to variables initialised
at runtime.
On PA6T systems the setup_arch machine call initialises the onboard
PCI-e root-ports, and uses pci_io_base to do this, which is now before
its value has been set resulting in a panic right after 'booting
linux via __start()'
Move the pci_io_base initialisation to the same place as vmalloc
ranges are set (hash__early_init_mmu()/radix__early_init_mmu())
Reported-by: Christian Zigotzky [off-list ref]
Signed-off-by: Darren Stevens [off-list ref]
Reviewed-by: Aneesh Kumar K.V <redacted>
quoted hunk
---
Tested on my AmigaOneX1000, I don't have access to a refence board system,
and our developer with one is on honeymoon.
I am hoping to follow this patch with others to reduce the size of the nemo
patch we apply, eventually I'd like to see the patch gone, but that is a
very big job.
Kind regards
Darren
@@ -47,7 +47,6 @@ static int __init pcibios_init(void)printk(KERN_INFO"PCI: Probing PCI hardware\n");-pci_io_base=ISA_IO_BASE;/* For now, override phys_mem_access_prot. If we need it,g*later,wemaymovethatinitializationtoeachppc_md*/
@@ -922,6 +922,8 @@ void __init hash__early_init_mmu(void)vmemmap=(structpage*)H_VMEMMAP_BASE;ioremap_bot=IOREMAP_BASE;+pci_io_base=ISA_IO_BASE;+/* Initialize the MMU Hash table and create the linear mapping*ofmemory.HastobedonebeforeSLBinitializationasthisis*currentlywherethepagesizeencodingisobtained.
From: Olof Johansson <hidden> Date: 2016-06-30 06:59:15
Hi,
On Wed, Jun 29, 2016 at 1:06 PM, Darren Stevens [off-list ref] wrote:
Commit:d6a9996e84ac4beb7713e9485f4563e100a9b03e (powerpc/mm:
vmalloc abstraction in preparation for radix) turned kernel memory
and IO addresses from #defined constants to variables initialised
at runtime.
On PA6T systems the setup_arch machine call initialises the onboard
PCI-e root-ports, and uses pci_io_base to do this, which is now before
its value has been set resulting in a panic right after 'booting
linux via __start()'
I don't see the panic here on a Chitra, at least not on recent -next.
What config are you building with when you see this?
Please cc me on PA Semi related patches if you want my attention. I
still have hardware, in fact I boot every -next release on it through
automation.
-Olof
Hi,
On Wed, Jun 29, 2016 at 1:06 PM, Darren Stevens [off-list ref] wrote:
quoted
Commit:d6a9996e84ac4beb7713e9485f4563e100a9b03e (powerpc/mm:
vmalloc abstraction in preparation for radix) turned kernel memory
and IO addresses from #defined constants to variables initialised
at runtime.
On PA6T systems the setup_arch machine call initialises the onboard
PCI-e root-ports, and uses pci_io_base to do this, which is now before
its value has been set resulting in a panic right after 'booting
linux via __start()'
I don't see the panic here on a Chitra, at least not on recent -next.
What config are you building with when you see this?
Please cc me on PA Semi related patches if you want my attention. I
still have hardware, in fact I boot every -next release on it through
automation.
From: Darren Stevens <hidden> Date: 2016-07-01 16:31:17
Hello Olof
On 29/06/2016, Olof Johansson wrote:
I don't see the panic here on a Chitra, at least not on recent -next.
What config are you building with when you see this?
If you are not seeing this on the Chitra, it means that our Nemo patch
is causing the problem. I don't know where, as we haven't patched the
pas_pci_init function, or any function it directly calls,
although there are patches in pasemi/pci.c to enable support for the
SB600.
The best solution would be for us to add the patch for setup.c I found to
our nemo patch.
Sorry for wasting everyones time.
Please cc me on PA Semi related patches if you want my attention. I
still have hardware, in fact I boot every -next release on it through
automation.
Didn't know that, I will do so in future, just be aware that all of my
patches will be in relation to the X1000 as that is the only PA-Semi machine
I have here.
If you have the time, there is something you can check for us - we've had to
add 'PPC_PASEMI_IOMMU_DMA_FORCE' to our config since 4.4 to get the onboard
gig-e ethernet to work. We need PPC_PASEMI_IOMMU for the SB600, or we are
stuck with a kernel that will only work with 2GRam
Regards
Darren
From: Michael Ellerman <mpe@ellerman.id.au> Date: 2016-07-04 05:51:19
On Wed, 2016-29-06 at 20:06:28 UTC, Darren Stevens wrote:
Commit:d6a9996e84ac4beb7713e9485f4563e100a9b03e (powerpc/mm:
vmalloc abstraction in preparation for radix) turned kernel memory
and IO addresses from #defined constants to variables initialised
at runtime.
On PA6T systems the setup_arch machine call initialises the onboard
PCI-e root-ports, and uses pci_io_base to do this, which is now before
its value has been set resulting in a panic right after 'booting
linux via __start()'
Move the pci_io_base initialisation to the same place as vmalloc
ranges are set (hash__early_init_mmu()/radix__early_init_mmu())
Reported-by: Christian Zigotzky [off-list ref]
Signed-off-by: Darren Stevens [off-list ref]
Reviewed-by: Aneesh Kumar K.V <redacted>
From: Christian Zigotzky <hidden> Date: 2016-07-04 06:58:23
Many thanks!
- Christian
On 04 July 2016 at 07:51 AM, Michael Ellerman wrote:
On Wed, 2016-29-06 at 20:06:28 UTC, Darren Stevens wrote:
quoted
Commit:d6a9996e84ac4beb7713e9485f4563e100a9b03e (powerpc/mm:
vmalloc abstraction in preparation for radix) turned kernel memory
and IO addresses from #defined constants to variables initialised
at runtime.
On PA6T systems the setup_arch machine call initialises the onboard
PCI-e root-ports, and uses pci_io_base to do this, which is now before
its value has been set resulting in a panic right after 'booting
linux via __start()'
Move the pci_io_base initialisation to the same place as vmalloc
ranges are set (hash__early_init_mmu()/radix__early_init_mmu())
Reported-by: Christian Zigotzky [off-list ref]
Signed-off-by: Darren Stevens [off-list ref]
Reviewed-by: Aneesh Kumar K.V <redacted>