From nobody Fri Oct 2 12:19:59 2026 Received: from mo4-p01-ob.smtp.rzone.de (mo4-p01-ob.smtp.rzone.de [81.169.146.167]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2F674234973 for ; Sat, 1 Aug 2026 04:35:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=pass smtp.client-ip=81.169.146.167 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785558961; cv=pass; b=bNPzZn5OPPgbOn3Y+6fO5/tx7/RmNonG4exfDSVi+PcDs7G1NCQIFrKcktDm4ScJbr3t49Y5zZLcGZFjQ6HE03CmfHHLXhbxjSuOEdklGUMWy7qinDFz3VRqMnP8N4EqZBdH4X/RblAeUS7ckCjBWl4KrKqdTnsX7h88BRZ7GLE= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785558961; c=relaxed/simple; bh=enUwpzoWTYTjueAh/nvGKtK3x2SpGdQBGMpnAmzMwGQ=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:Content-Type; b=s9OeCmtz6MUUqsB/Pkh3jxfLaB9eyhF/clOAu7lP467yLhE7UPlYYo/0jeE9U0kn67+Qd3xan1klfs1WMX2FtQZAmHxUicuWVC2O8Vl4Y+OmrPK/hQ18QVwes3EH0HqVt8Gmg6kRCgZuYyb46MIJN3vpaciJ2UuO7gSkJQALegA= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=xenosoft.de; spf=none smtp.mailfrom=xenosoft.de; dkim=pass (2048-bit key) header.d=xenosoft.de header.i=@xenosoft.de header.b=RWgV5jg+; dkim=permerror (0-bit key) header.d=xenosoft.de header.i=@xenosoft.de header.b=mdsSVkqZ; arc=pass smtp.client-ip=81.169.146.167 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=xenosoft.de Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=xenosoft.de Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=xenosoft.de header.i=@xenosoft.de header.b="RWgV5jg+"; dkim=permerror (0-bit key) header.d=xenosoft.de header.i=@xenosoft.de header.b="mdsSVkqZ" ARC-Seal: i=1; a=rsa-sha256; t=1785558936; cv=none; d=strato.com; s=strato-dkim-0002; b=Q9sQ+EQ25mRuPUrWSHj6Ts9PHyjC9GwQDO6HBsZpib9wfKUUjY5nzbnnF3XOOxR1V6 DR9KKdWGQ6YUseR3YROnB9RvaarerHYCiQABToFXeEZ44lpMNH9dAQybVtquNUO28Efr TWK8Mh57bpXo0iVtMOWs0bDDU+++uHTLdiCiuBNclVDv6/qLM/srTLYaFuzMTZrB9Tb7 Fa4AcGXeKNUYiQwAVigY+pKrwANwaLPli++5EUuCRa1Cj3fECVRzpJr/cadYyvM0U6hr Gnj5WOeb3oNtvwEC5T2Y7PxpU0/vzN+hc954WtpHbpu84eklXrpIUVYt81UZidX3ACfF 4L1w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; t=1785558936; s=strato-dkim-0002; d=strato.com; h=Message-ID:Date:Subject:Cc:To:From:Cc:Date:From:Subject:Sender; bh=CrIZ4lfbVAOfl0bHgkaDGWiuEYn17BG18OIfUXCSans=; b=FjgJYiEpN82rSOygOXWkIX92T0QyqrnfD04o/668lf+DLFipluYn34h5Jzz/xFnPGN LwRV6F3OMiozg1G1P5U8qR6y6wiRj/hZ/wfM9ue/fkoSudP4ymY+NEqZ9Iwyt5ahYvJH Ze8d7ndJuPd/D6K4vTx96nDjVHW9lN/I7mHTVKpRiPDucvoGhUxQjB/r7Rw93xwVo2jP aZPGi2P0+VHPR7zzQKJlBp1mDVkPwA95E5r6DwIgLuMHQJzRnBpxDTFw5h0So/GrW9TC Eex5CTXgqV0TLVz1rjO8BXqI8kVg5Bz+ZJwYKKAu7psG+TFqTrWt0/njZmgkOByb9PJ4 D69w== ARC-Authentication-Results: i=1; strato.com; arc=none; dkim=none X-RZG-CLASS-ID: mo01 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; t=1785558936; s=strato-dkim-0002; d=xenosoft.de; h=Message-ID:Date:Subject:Cc:To:From:Cc:Date:From:Subject:Sender; bh=CrIZ4lfbVAOfl0bHgkaDGWiuEYn17BG18OIfUXCSans=; b=RWgV5jg+lEfpYEt/KhKNXnW5eVyqY9MH6xqc12fnL3RhjjNo0WjJiJsYqEdBi/nOlr Iaf/vXNd0qLYMSbk1Na4JUDoejneiTybLnqYdpyThy3cgvuXcDg4X4kTEotJD36rC/MU bHnzTqGaOrTylRNWnhWA/KjIKri5K9SCiJrnOl4IJ33ahKoyY/2OHRtk3ChN+xI9aCCc ilWCCYlMI82pBJNVqiLNAKs93erD3c0zz/WyisBnmUBnAgTDDyi+7jdRuQuJ8s73yjmN ODfWPs7TPo5Zr3OHxy3GIMjf/7CtNe9g+x4HZxNz1tYj2fSOjpd4gcOXxh2qXKQvwMP5 MrfA== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; t=1785558936; s=strato-dkim-0003; d=xenosoft.de; h=Message-ID:Date:Subject:Cc:To:From:Cc:Date:From:Subject:Sender; bh=CrIZ4lfbVAOfl0bHgkaDGWiuEYn17BG18OIfUXCSans=; b=mdsSVkqZjN8s3A9O8hnd8eh7LOuhRWNjwRaTE6Na02snngXfBPWAXe6MdAo9+SLfa/ CHUrbZgqlzk1L1Ik/pAg== X-RZG-AUTH: ":L2QefEenb+UdBJSdRCXu93KJ1bmSGnhMdmOod1DhGN0rBVhd9dFr6P1rfO5KiO55fErqluWEaK7+IG9ypOCR69ab3jJKg0X4SHBrTHz54Q==" Received: from buildhost.fritz.box by smtp.strato.de (RZmta 55.5.6 AUTH) with ESMTPSA id eed0ee2714ZZmxP (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256 bits)) (Client did not present a certificate); Sat, 1 Aug 2026 06:35:35 +0200 (CEST) From: chzigotzky@xenosoft.de To: chleroy@kernel.org, maddy@linux.ibm.com, mpe@ellerman.id.au, npiggin@gmail.com, linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org Cc: rtd2@xtra.co.nz, madskateman@gmail.com, info@xenosoft.de, hypexed@yahoo.com.au, Darren Stevens , Christian Zigotzky Subject: [PATCH] powerpc/pasemi: Move Nemo i8259 initialization to pci.c Date: Sat, 1 Aug 2026 06:34:58 +0200 Message-ID: <20260801043458.12500-1-chzigotzky@xenosoft.de> X-Mailer: git-send-email 2.43.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Christian Zigotzky A-EON Open Source The Nemo board requires the PCIe ports to be initialized before the SB600 ISA bridge can be accessed. Since pas_pci_init() is now called later during boot, the i8259 initialization in pas_init_IRQ() happens too early and accesses registers that are not yet mapped, preventing the board from booting. Move the Nemo-specific i8259 initialization to pas_add_bridge(), after the ISA bridge has been discovered. Suggested-by: Darren Stevens Tested-by: Christian Zigotzky Signed-off-by: Christian Zigotzky --- arch/powerpc/platforms/pasemi/pasemi.h | 6 ++++++ arch/powerpc/platforms/pasemi/pci.c | 5 +++++ arch/powerpc/platforms/pasemi/setup.c | 12 ++++-------- 3 files changed, 15 insertions(+), 8 deletions(-) diff --git a/arch/powerpc/platforms/pasemi/pasemi.h b/arch/powerpc/platform= s/pasemi/pasemi.h index 6f6743b8e48d..c37e5c684bb9 100644 --- a/arch/powerpc/platforms/pasemi/pasemi.h +++ b/arch/powerpc/platforms/pasemi/pasemi.h @@ -7,6 +7,12 @@ extern void pas_pci_init(void); struct pci_dev; extern void pas_pci_dma_dev_setup(struct pci_dev *dev); =20 +#ifdef CONFIG_PPC_PASEMI_NEMO +extern void __init nemo_init_IRQ(void); +#else +static inline void __init nemo_init_IRQ(void) { } +#endif + void __iomem *__init pasemi_pci_getcfgaddr(struct pci_dev *dev, int offset= ); =20 extern void __init pasemi_map_registers(void); diff --git a/arch/powerpc/platforms/pasemi/pci.c b/arch/powerpc/platforms/p= asemi/pci.c index 2df955274652..fb53782da7ec 100644 --- a/arch/powerpc/platforms/pasemi/pci.c +++ b/arch/powerpc/platforms/pasemi/pci.c @@ -265,6 +265,11 @@ static int __init pas_add_bridge(struct device_node *d= ev) */ isa_bridge_find_early(hose); =20 + /* + * ISA bridge is now active, add the i8259 cascade (if needed) + */ + nemo_init_IRQ(); + return 0; } =20 diff --git a/arch/powerpc/platforms/pasemi/setup.c b/arch/powerpc/platforms= /pasemi/setup.c index d03b41336901..c410e29414ee 100644 --- a/arch/powerpc/platforms/pasemi/setup.c +++ b/arch/powerpc/platforms/pasemi/setup.c @@ -214,10 +214,12 @@ static void sb600_8259_cascade(struct irq_desc *desc) chip->irq_eoi(&desc->irq_data); } =20 -static void __init nemo_init_IRQ(struct mpic *mpic) +void __init nemo_init_IRQ(void) { struct device_node *np; int gpio_virq; + struct mpic *mpic; + /* Connect the SB600's legacy i8259 controller */ np =3D of_find_node_by_path("/pxp@0,e0000000"); i8259_init(np, 0); @@ -228,14 +230,10 @@ static void __init nemo_init_IRQ(struct mpic *mpic) irq_set_chained_handler(gpio_virq, sb600_8259_cascade); mpic_unmask_irq(irq_get_irq_data(gpio_virq)); =20 + mpic =3D irq_get_chip_data(gpio_virq); irq_set_default_domain(mpic->irqhost); } =20 -#else - -static inline void nemo_init_IRQ(struct mpic *mpic) -{ -} #endif =20 static __init void pas_init_IRQ(void) @@ -298,8 +296,6 @@ static __init void pas_init_IRQ(void) mpic_unmask_irq(irq_get_irq_data(nmi_virq)); } =20 - nemo_init_IRQ(mpic); - of_node_put(mpic_node); of_node_put(root); } --=20 2.43.0