diff options
Diffstat (limited to 'arch/powerpc/boot/cuboot-pq2.c')
-rw-r--r-- | arch/powerpc/boot/cuboot-pq2.c | 29 |
1 files changed, 8 insertions, 21 deletions
diff --git a/arch/powerpc/boot/cuboot-pq2.c b/arch/powerpc/boot/cuboot-pq2.c index 470ffacb837..61574f3272d 100644 --- a/arch/powerpc/boot/cuboot-pq2.c +++ b/arch/powerpc/boot/cuboot-pq2.c | |||
@@ -44,22 +44,21 @@ struct pci_range pci_ranges_buf[MAX_PROP_LEN / sizeof(struct pci_range)]; | |||
44 | * some don't set up the PCI PIC at all, so we assume the device tree is | 44 | * some don't set up the PCI PIC at all, so we assume the device tree is |
45 | * sane and update the BRx registers appropriately. | 45 | * sane and update the BRx registers appropriately. |
46 | * | 46 | * |
47 | * For any node defined as compatible with fsl,pq2-chipselect, | 47 | * For any node defined as compatible with fsl,pq2-localbus, |
48 | * #address/#size must be 2/1 for chipselect bus, 1/1 for parent bus, | 48 | * #address/#size must be 2/1 for the localbus, and 1/1 for the parent bus. |
49 | * and ranges must be for whole chip selects. | 49 | * Ranges must be for whole chip selects. |
50 | */ | 50 | */ |
51 | static void update_cs_ranges(void) | 51 | static void update_cs_ranges(void) |
52 | { | 52 | { |
53 | u32 ctrl_ph; | 53 | void *bus_node, *parent_node; |
54 | void *ctrl_node, *bus_node, *parent_node; | ||
55 | u32 *ctrl_addr; | 54 | u32 *ctrl_addr; |
56 | unsigned long ctrl_size; | 55 | unsigned long ctrl_size; |
57 | u32 naddr, nsize; | 56 | u32 naddr, nsize; |
58 | int len; | 57 | int len; |
59 | int i; | 58 | int i; |
60 | 59 | ||
61 | bus_node = finddevice("/chipselect"); | 60 | bus_node = finddevice("/localbus"); |
62 | if (!bus_node || !dt_is_compatible(bus_node, "fsl,pq2-chipselect")) | 61 | if (!bus_node || !dt_is_compatible(bus_node, "fsl,pq2-localbus")) |
63 | return; | 62 | return; |
64 | 63 | ||
65 | dt_get_reg_format(bus_node, &naddr, &nsize); | 64 | dt_get_reg_format(bus_node, &naddr, &nsize); |
@@ -74,19 +73,7 @@ static void update_cs_ranges(void) | |||
74 | if (naddr != 1 || nsize != 1) | 73 | if (naddr != 1 || nsize != 1) |
75 | goto err; | 74 | goto err; |
76 | 75 | ||
77 | len = getprop(bus_node, "fsl,ctrl", &ctrl_ph, 4); | 76 | if (!dt_xlate_reg(bus_node, 0, (unsigned long *)&ctrl_addr, |
78 | if (len != 4) | ||
79 | goto err; | ||
80 | |||
81 | ctrl_node = find_node_by_prop_value(NULL, "linux,phandle", | ||
82 | (char *)&ctrl_ph, 4); | ||
83 | if (!ctrl_node) | ||
84 | goto err; | ||
85 | |||
86 | if (!dt_is_compatible(ctrl_node, "fsl,pq2-chipselect-ctrl")) | ||
87 | goto err; | ||
88 | |||
89 | if (!dt_xlate_reg(ctrl_node, 0, (unsigned long *)&ctrl_addr, | ||
90 | &ctrl_size)) | 77 | &ctrl_size)) |
91 | goto err; | 78 | goto err; |
92 | 79 | ||
@@ -123,7 +110,7 @@ static void update_cs_ranges(void) | |||
123 | return; | 110 | return; |
124 | 111 | ||
125 | err: | 112 | err: |
126 | printf("Bad /chipselect or fsl,pq2-chipselect-ctrl node\r\n"); | 113 | printf("Bad /localbus node\r\n"); |
127 | } | 114 | } |
128 | 115 | ||
129 | /* Older u-boots don't set PCI up properly. Update the hardware to match | 116 | /* Older u-boots don't set PCI up properly. Update the hardware to match |