[U-Boot-Users] [PATCH] ppc4xx: Setup pci interrupt line registers on sequoia boards
Matthias Fuchs
matthias.fuchs at esd-electronics.com
Thu Jun 21 15:36:49 CEST 2007
ppc4xx: Setup pci interrupt line registers on sequoia boards
This patch writes the correct interrupt numbers into
the pci interrupt line register on sequoia boards when
PCI PNP (CONFIG_PCI_PNP) is enabled. Even U-Boot does not use
interrupts some OS rely on this.
Signed-off-by: Matthias Fuchs <matthias.fuchs at esd-electronics.com>
---
commit 99c549cae6cbecd07fe860d2e652653ad23869f1
tree 851ae01b5a35f9c6913473a86006b4c85c969438
parent 3c908811a5e7098d476976eed54a4f8b0e80edc7
author Matthias Fuchs <matthias.fuchs at esd-electronics.com> Thu, 21 Jun 2007 15:32:46 +0200
committer Matthias Fuchs <matthias.fuchs at esd-electronics.com> Thu, 21 Jun 2007 15:32:46 +0200
board/amcc/sequoia/sequoia.c | 17 +++++++++++++++--
1 files changed, 15 insertions(+), 2 deletions(-)
diff --git a/board/amcc/sequoia/sequoia.c b/board/amcc/sequoia/sequoia.c
index ba365ae..ee2fd66 100644
--- a/board/amcc/sequoia/sequoia.c
+++ b/board/amcc/sequoia/sequoia.c
@@ -414,6 +414,18 @@ int testdram(void)
}
#endif
+#if defined(CONFIG_PCI) && defined(CFG_PCI_PRE_INIT)
+#ifdef CONFIG_PCI_PNP
+/*
+ * Assign interrupts to PCI devices. Some OSs rely on this.
+ * All PCI interrupt lines are connected to ext. interrupt 2 (=67)
+ */
+void sequoia_pci_fixup_irq(struct pci_controller *hose, pci_dev_t dev)
+{
+ pci_hose_write_config_byte(hose, dev, PCI_INTERRUPT_LINE, 67);
+}
+#endif
+
/*************************************************************************
* pci_pre_init
*
@@ -426,7 +438,6 @@ int testdram(void)
* certain pre-initialization actions.
*
************************************************************************/
-#if defined(CONFIG_PCI) && defined(CFG_PCI_PRE_INIT)
int pci_pre_init(struct pci_controller *hose)
{
unsigned long addr;
@@ -477,7 +488,9 @@ int pci_pre_init(struct pci_controller *
addr = (addr & ~plb1_acr_rdp_mask) | plb1_acr_rdp_4deep;
addr = (addr & ~plb1_acr_wrp_mask) | plb1_acr_wrp_2deep;
mtdcr(plb1_acr, addr);
-
+#ifdef CONFIG_PCI_PNP
+ hose->fixup_irq = sequoia_pci_fixup_irq;
+#endif
return 1;
}
#endif /* defined(CONFIG_PCI) && defined(CFG_PCI_PRE_INIT) */
More information about the U-Boot
mailing list