summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWolfgang Denk <wd@denx.de>2008-05-19 09:42:38 +0200
committerWolfgang Denk <wd@denx.de>2008-05-19 09:42:38 +0200
commita734c06bf7a0a139b1d4bd762a17efa368da2664 (patch)
tree3182a172d2d219f8c3506574a560b50d584649e3
parent3cc27b426aeefe2930f911692e9df3143fb2565f (diff)
parent16bedc661de0dae767b1377d8413373a3fbcfa79 (diff)
Merge branch 'master' of git://www.denx.de/git/u-boot-ppc4xx
-rw-r--r--board/amcc/canyonlands/canyonlands.c31
1 files changed, 30 insertions, 1 deletions
diff --git a/board/amcc/canyonlands/canyonlands.c b/board/amcc/canyonlands/canyonlands.c
index 9986e9a9c6e..0f660612781 100644
--- a/board/amcc/canyonlands/canyonlands.c
+++ b/board/amcc/canyonlands/canyonlands.c
@@ -476,8 +476,37 @@ void ft_board_setup(void *blob, bd_t *bd)
val[3] = gd->bd->bi_flashsize;
rc = fdt_find_and_setprop(blob, "/plb/opb/ebc", "ranges",
val, sizeof(val), 1);
- if (rc)
+ if (rc) {
printf("Unable to update property NOR mapping, err=%s\n",
fdt_strerror(rc));
+ }
+
+ if (gd->board_type == BOARD_CANYONLANDS_SATA) {
+ /*
+ * When SATA is selected we need to disable the first PCIe
+ * node in the device tree, so that Linux doesn't initialize
+ * it.
+ */
+ rc = fdt_find_and_setprop(blob, "/plb/pciex@d00000000", "status",
+ "disabled", sizeof("disabled"), 1);
+ if (rc) {
+ printf("Unable to update property status in PCIe node, err=%s\n",
+ fdt_strerror(rc));
+ }
+ }
+
+ if (gd->board_type == BOARD_CANYONLANDS_PCIE) {
+ /*
+ * When PCIe is selected we need to disable the SATA
+ * node in the device tree, so that Linux doesn't initialize
+ * it.
+ */
+ rc = fdt_find_and_setprop(blob, "/plb/sata@bffd1000", "status",
+ "disabled", sizeof("disabled"), 1);
+ if (rc) {
+ printf("Unable to update property status in PCIe node, err=%s\n",
+ fdt_strerror(rc));
+ }
+ }
}
#endif /* defined(CONFIG_OF_LIBFDT) && defined(CONFIG_OF_BOARD_SETUP) */