From 600fe46fb3dab7f07604f9009904f31584415114 Mon Sep 17 00:00:00 2001 From: Matthias Fuchs Date: Fri, 2 Jan 2009 12:18:12 +0100 Subject: ppc4xx: Disable pci node in device tree on CPCI405 pci adapters Signed-off-by: Matthias Fuchs Signed-off-by: Stefan Roese --- board/esd/cpci405/cpci405.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'board/esd') diff --git a/board/esd/cpci405/cpci405.c b/board/esd/cpci405/cpci405.c index 9bb5f63..bd569a6 100644 --- a/board/esd/cpci405/cpci405.c +++ b/board/esd/cpci405/cpci405.c @@ -21,6 +21,8 @@ * MA 02111-1307 USA */ #include +#include +#include #include #include #include @@ -523,6 +525,28 @@ int pci_pre_init(struct pci_controller *hose) } #endif /* defined(CONFIG_PCI) */ +#if defined(CONFIG_OF_LIBFDT) && defined(CONFIG_OF_BOARD_SETUP) +void ft_board_setup(void *blob, bd_t *bd) +{ + int rc; + + __ft_board_setup(blob, bd); + + /* + * Disable PCI in adapter mode. + */ + if (!cpci405_host()) { + rc = fdt_find_and_setprop(blob, "/plb/pci@ec000000", "status", + "disabled", sizeof("disabled"), 1); + if (rc) { + printf("Unable to update property status in PCI node, " + "err=%s\n", + fdt_strerror(rc)); + } + } +} +#endif /* defined(CONFIG_OF_LIBFDT) && defined(CONFIG_OF_BOARD_SETUP) */ + #if defined(CONFIG_CPCI405AB) #define ONE_WIRE_CLEAR out_be16((void*)(CONFIG_SYS_FPGA_BASE_ADDR + \ CONFIG_SYS_FPGA_MODE), \ -- cgit v1.1