From: Kumar Gala <galak@kernel.crashing.org>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH 02/15] powerpc/85xx: Rework MPC8572DS pci_init_board to use common FSL PCIe code
Date: Fri, 17 Dec 2010 17:50:45 -0600 [thread overview]
Message-ID: <1292629858-10233-2-git-send-email-galak@kernel.crashing.org> (raw)
In-Reply-To: <1292629858-10233-1-git-send-email-galak@kernel.crashing.org>
Remove duplicated code in MPC8572DS board and utliize the common
fsl_pcie_init_board(). We also now dynamically setup the LAWs for PCI
controllers based on which PCIe controllers are enabled.
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
---
board/freescale/mpc8572ds/law.c | 8 +--
board/freescale/mpc8572ds/mpc8572ds.c | 100 ++++++--------------------------
2 files changed, 20 insertions(+), 88 deletions(-)
diff --git a/board/freescale/mpc8572ds/law.c b/board/freescale/mpc8572ds/law.c
index e13bb53..7c63f84 100644
--- a/board/freescale/mpc8572ds/law.c
+++ b/board/freescale/mpc8572ds/law.c
@@ -1,5 +1,5 @@
/*
- * Copyright 2008 Freescale Semiconductor, Inc.
+ * Copyright 2008, 2010 Freescale Semiconductor, Inc.
*
* (C) Copyright 2000
* Wolfgang Denk, DENX Software Engineering, wd at denx.de.
@@ -29,12 +29,6 @@
struct law_entry law_table[] = {
SET_LAW(CONFIG_SYS_FLASH_BASE_PHYS, LAW_SIZE_256M, LAW_TRGT_IF_LBC),
- SET_LAW(CONFIG_SYS_PCIE1_MEM_PHYS, LAW_SIZE_512M, LAW_TRGT_IF_PCIE_1),
- SET_LAW(CONFIG_SYS_PCIE1_IO_PHYS, LAW_SIZE_64K, LAW_TRGT_IF_PCIE_1),
- SET_LAW(CONFIG_SYS_PCIE2_MEM_PHYS, LAW_SIZE_512M, LAW_TRGT_IF_PCIE_2),
- SET_LAW(CONFIG_SYS_PCIE2_IO_PHYS, LAW_SIZE_64K, LAW_TRGT_IF_PCIE_2),
- SET_LAW(CONFIG_SYS_PCIE3_MEM_PHYS, LAW_SIZE_512M, LAW_TRGT_IF_PCIE_3),
- SET_LAW(CONFIG_SYS_PCIE3_IO_PHYS, LAW_SIZE_64K, LAW_TRGT_IF_PCIE_3),
SET_LAW(PIXIS_BASE_PHYS, LAW_SIZE_4K, LAW_TRGT_IF_LBC),
SET_LAW(CONFIG_SYS_NAND_BASE_PHYS, LAW_SIZE_1M, LAW_TRGT_IF_LBC),
};
diff --git a/board/freescale/mpc8572ds/mpc8572ds.c b/board/freescale/mpc8572ds/mpc8572ds.c
index c217c27..2b269f2 100644
--- a/board/freescale/mpc8572ds/mpc8572ds.c
+++ b/board/freescale/mpc8572ds/mpc8572ds.c
@@ -148,107 +148,45 @@ phys_size_t fixed_sdram (void)
#endif
-#ifdef CONFIG_PCIE1
-static struct pci_controller pcie1_hose;
-#endif
-
-#ifdef CONFIG_PCIE2
-static struct pci_controller pcie2_hose;
-#endif
+#ifdef CONFIG_PCI
+static const char *slot_names[] = {
+ [PCIE1] = "Slot 2",
+ [PCIE2] = "Slot 1",
+ [PCIE3] = "ULI",
+};
-#ifdef CONFIG_PCIE3
-static struct pci_controller pcie3_hose;
-#endif
+const char *board_serdes_name(enum srds_prtcl device)
+{
+ return slot_names[device];
+}
-#ifdef CONFIG_PCI
void pci_init_board(void)
{
- volatile ccsr_gur_t *gur = (void *)(CONFIG_SYS_MPC85xx_GUTS_ADDR);
- struct fsl_pci_info pci_info[3];
- u32 devdisr, pordevsr, io_sel, temp32;
- int first_free_busno = 0;
- int num = 0;
+ struct pci_controller *hose;
- int pcie_ep, pcie_configured;
+ fsl_pcie_init_board(0);
- devdisr = in_be32(&gur->devdisr);
- pordevsr = in_be32(&gur->pordevsr);
- io_sel = (pordevsr & MPC85xx_PORDEVSR_IO_SEL) >> 19;
+ hose = find_hose_by_cfg_addr((void *)(CONFIG_SYS_PCIE3_ADDR));
- debug (" pci_init_board: devdisr=%x, io_sel=%x\n", devdisr, io_sel);
+ if (hose) {
+ u32 temp32;
+ u8 uli_busno = hose->first_busno + 2;
- puts("\n");
-#ifdef CONFIG_PCIE3
- pcie_configured = is_serdes_configured(PCIE3);
-
- if (pcie_configured && !(devdisr & MPC85xx_DEVDISR_PCIE3)){
- SET_STD_PCIE_INFO(pci_info[num], 3);
- pcie_ep = fsl_setup_hose(&pcie3_hose, pci_info[num].regs);
- printf("PCIE3: connected to ULI as %s (base addr %lx)\n",
- pcie_ep ? "Endpoint" : "Root Complex",
- pci_info[num].regs);
- first_free_busno = fsl_pci_init_port(&pci_info[num++],
- &pcie3_hose, first_free_busno);
/*
* Activate ULI1575 legacy chip by performing a fake
* memory access. Needed to make ULI RTC work.
* Device 1d has the first on-board memory BAR.
*/
- pci_hose_read_config_dword(&pcie3_hose, PCI_BDF(2, 0x1d, 0),
+ pci_hose_read_config_dword(hose, PCI_BDF(uli_busno, 0x1d, 0),
PCI_BASE_ADDRESS_1, &temp32);
+
if (temp32 >= CONFIG_SYS_PCIE3_MEM_BUS) {
- void *p = pci_mem_to_virt(PCI_BDF(2, 0x1d, 0),
+ void *p = pci_mem_to_virt(PCI_BDF(uli_busno, 0x1d, 0),
temp32, 4, 0);
debug(" uli1572 read to %p\n", p);
in_be32(p);
}
- } else {
- printf("PCIE3: disabled\n");
}
- puts("\n");
-#else
- setbits_be32(&gur->devdisr, MPC85xx_DEVDISR_PCIE3); /* disable */
-#endif
-
-#ifdef CONFIG_PCIE2
- pcie_configured = is_serdes_configured(PCIE2);
-
- if (pcie_configured && !(devdisr & MPC85xx_DEVDISR_PCIE2)){
- SET_STD_PCIE_INFO(pci_info[num], 2);
- pcie_ep = fsl_setup_hose(&pcie2_hose, pci_info[num].regs);
- printf("PCIE2: connected to Slot 1 as %s (base addr %lx)\n",
- pcie_ep ? "Endpoint" : "Root Complex",
- pci_info[num].regs);
- first_free_busno = fsl_pci_init_port(&pci_info[num++],
- &pcie2_hose, first_free_busno);
- } else {
- printf("PCIE2: disabled\n");
- }
-
- puts("\n");
-#else
- setbits_be32(&gur->devdisr, MPC85xx_DEVDISR_PCIE2); /* disable */
-#endif
-
-#ifdef CONFIG_PCIE1
- pcie_configured = is_serdes_configured(PCIE1);
-
- if (pcie_configured && !(devdisr & MPC85xx_DEVDISR_PCIE)){
- SET_STD_PCIE_INFO(pci_info[num], 1);
- pcie_ep = fsl_setup_hose(&pcie1_hose, pci_info[num].regs);
- printf("PCIE1: connected to Slot 2 as %s (base addr %lx)\n",
- pcie_ep ? "Endpoint" : "Root Complex",
- pci_info[num].regs);
- first_free_busno = fsl_pci_init_port(&pci_info[num++],
- &pcie1_hose, first_free_busno);
- } else {
- printf("PCIE1: disabled\n");
- }
-
- puts("\n");
-#else
- setbits_be32(&gur->devdisr, MPC85xx_DEVDISR_PCIE); /* disable */
-#endif
}
#endif
--
1.6.0.6
next prev parent reply other threads:[~2010-12-17 23:50 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-12-17 23:50 [U-Boot] [PATCH 01/15] powerpc/fsl-pci: Add generic code to setup PCIe controllers Kumar Gala
2010-12-17 23:50 ` Kumar Gala [this message]
2010-12-17 23:50 ` [U-Boot] [PATCH 03/15] powerpc/85xx: Rework P2020DS pci_init_board to use common FSL PCIe code Kumar Gala
2010-12-17 23:50 ` [U-Boot] [PATCH 04/15] powerpc/85xx: Rework MPC8544DS " Kumar Gala
2010-12-17 23:50 ` [U-Boot] [PATCH 05/15] powerpc/85xx: Rework MPC8536DS " Kumar Gala
2010-12-17 23:50 ` [U-Boot] [PATCH 06/15] powerpc/86xx: Rework MPC8641HPCN " Kumar Gala
2010-12-17 23:50 ` [U-Boot] [PATCH 07/15] powerpc/85xx: Rework MPC8548CDS " Kumar Gala
2010-12-17 23:50 ` [U-Boot] [PATCH 08/15] powerpc/8xxx: Rework XES boards " Kumar Gala
2010-12-17 23:50 ` [U-Boot] [PATCH 09/15] powerpc/85xx: Rework TQM " Kumar Gala
2010-12-17 23:50 ` [U-Boot] [PATCH 10/15] powerpc/85xx: Rework MPC8568MDS " Kumar Gala
2010-12-17 23:50 ` [U-Boot] [PATCH 11/15] powerpc/85xx: Rework MPC8569MDS " Kumar Gala
2010-12-17 23:50 ` [U-Boot] [PATCH 12/15] powerpc/85xx: Rework P1_P2_RDB " Kumar Gala
2010-12-17 23:50 ` [U-Boot] [PATCH 13/15] powerpc/86xx: Rework MPC8610HPCD " Kumar Gala
2010-12-17 23:50 ` [U-Boot] [PATCH 14/15] powerpc/86xx: Rework SBC8641 " Kumar Gala
2010-12-17 23:50 ` [U-Boot] [PATCH 15/15] powerpc/85xx: Rework SBC8548 " Kumar Gala
2011-01-06 21:12 ` Paul Gortmaker
2011-01-09 20:49 ` Kumar Gala
2011-01-09 20:49 ` [U-Boot] [PATCH 14/15] powerpc/86xx: Rework SBC8641 " Kumar Gala
2011-01-09 20:49 ` [U-Boot] [PATCH 13/15] powerpc/86xx: Rework MPC8610HPCD " Kumar Gala
2011-01-09 20:49 ` [U-Boot] [PATCH 12/15] powerpc/85xx: Rework P1_P2_RDB " Kumar Gala
2011-01-09 20:49 ` [U-Boot] [PATCH 11/15] powerpc/85xx: Rework MPC8569MDS " Kumar Gala
2011-01-09 20:49 ` [U-Boot] [PATCH 10/15] powerpc/85xx: Rework MPC8568MDS " Kumar Gala
2011-01-09 20:49 ` [U-Boot] [PATCH 09/15] powerpc/85xx: Rework TQM boards " Kumar Gala
2010-12-20 16:49 ` [U-Boot] [PATCH 08/15] powerpc/8xxx: Rework XES " Peter Tyser
2010-12-21 17:49 ` Kumar Gala
2010-12-21 20:23 ` Peter Tyser
2010-12-23 18:30 ` Kumar Gala
2010-12-28 17:35 ` Peter Tyser
2011-01-09 20:54 ` [U-Boot] [PATCH v2 " Kumar Gala
2011-01-09 20:55 ` Kumar Gala
2010-12-23 18:35 ` [U-Boot] [PATCH " Kumar Gala
2011-01-09 20:48 ` [U-Boot] [PATCH 07/15] powerpc/85xx: Rework MPC8548CDS " Kumar Gala
2011-01-09 20:48 ` [U-Boot] [PATCH 06/15] powerpc/86xx: Rework MPC8641HPCN " Kumar Gala
2011-01-09 20:47 ` [U-Boot] [PATCH 05/15] powerpc/85xx: Rework MPC8536DS " Kumar Gala
2011-01-09 20:47 ` [U-Boot] [PATCH 04/15] powerpc/85xx: Rework MPC8544DS " Kumar Gala
2011-01-09 20:46 ` [U-Boot] [PATCH 03/15] powerpc/85xx: Rework P2020DS " Kumar Gala
2011-01-09 20:46 ` [U-Boot] [PATCH 02/15] powerpc/85xx: Rework MPC8572DS " Kumar Gala
2011-01-09 20:45 ` [U-Boot] [PATCH 01/15] powerpc/fsl-pci: Add generic code to setup PCIe controllers Kumar Gala
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1292629858-10233-2-git-send-email-galak@kernel.crashing.org \
--to=galak@kernel.crashing.org \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.