diff options
Diffstat (limited to 'board/mpc8360emds')
-rw-r--r-- | board/mpc8360emds/mpc8360emds.c | 23 | ||||
-rw-r--r-- | board/mpc8360emds/pci.c | 19 |
2 files changed, 42 insertions, 0 deletions
diff --git a/board/mpc8360emds/mpc8360emds.c b/board/mpc8360emds/mpc8360emds.c index 5eadcd3..5bbaa5c 100644 --- a/board/mpc8360emds/mpc8360emds.c +++ b/board/mpc8360emds/mpc8360emds.c @@ -28,6 +28,9 @@ #else #include <asm/mmu.h> #endif +#if defined(CONFIG_OF_FLAT_TREE) +#include <ft_build.h> +#endif const qe_iop_conf_t qe_iop_conf_tab[] = { /* GETH1 */ @@ -628,3 +631,23 @@ U_BOOT_CMD(ecc, 4, 0, do_ecc, " - writes pattern with word access, generates error\n" " - disables injects\n" " - re-inits memory"); #endif /* if defined(CONFIG_DDR_ECC) && defined(CONFIG_DDR_ECC_CMD) */ + +#if defined(CONFIG_OF_FLAT_TREE) && defined(CONFIG_OF_BOARD_SETUP) +void +ft_board_setup(void *blob, bd_t *bd) +{ + u32 *p; + int len; + +#ifdef CONFIG_PCI + ft_pci_setup(blob, bd); +#endif + ft_cpu_setup(blob, bd); + + p = ft_get_prop(blob, "/memory/reg", &len); + if (p != NULL) { + *p++ = cpu_to_be32(bd->bi_memstart); + *p = cpu_to_be32(bd->bi_memsize); + } +} +#endif diff --git a/board/mpc8360emds/pci.c b/board/mpc8360emds/pci.c index 64ea509..c81e7a6 100644 --- a/board/mpc8360emds/pci.c +++ b/board/mpc8360emds/pci.c @@ -234,6 +234,10 @@ void pci_init_board(void) if(orig_i2c_bus != 2) i2c_set_bus_num(orig_i2c_bus); + /* Reset to original I2C bus */ + if(orig_i2c_bus != 2) + i2c_set_bus_num(orig_i2c_bus); + /* * Release PCI RST Output signal */ @@ -298,4 +302,19 @@ void pci_init_board(void) hose->last_busno = pci_hose_scan(hose); } #endif /* CONFIG_PCISLAVE */ + +#ifdef CONFIG_OF_FLAT_TREE +void +ft_pci_setup(void *blob, bd_t *bd) +{ + u32 *p; + int len; + + p = (u32 *)ft_get_prop(blob, "/" OF_SOC "/pci@8500/bus-range", &len); + if (p != NULL) { + p[0] = hose[0].first_busno; + p[1] = hose[0].last_busno; + } +} +#endif /* CONFIG_OF_FLAT_TREE */ #endif /* CONFIG_PCI */ |