Commit 56809151 authored by Scott Wood's avatar Scott Wood Committed by Kumar Gala

[POWERPC] bootwrapper: Support all-in-one PCI nodes in cuboot-pq2.

Consensus was reached to put PCI nodes at the root of the tree (and not
under /soc), but the phandle to a control node was rejected in favor of
simply not worrying about /pci/reg overlapping /soc/ranges.

This updates cuboot-82xx to not look for the phandle.
Signed-off-by: default avatarScott Wood <scottwood@freescale.com>
Acked-by: default avatarDavid Gibson <david@gibson.dropbear.id.au>
Signed-off-by: default avatarKumar Gala <galak@kernel.crashing.org>
parent c374e00e
...@@ -139,11 +139,11 @@ static void fixup_pci(void) ...@@ -139,11 +139,11 @@ static void fixup_pci(void)
u32 *pci_regs[3]; u32 *pci_regs[3];
u8 *soc_regs; u8 *soc_regs;
int i, len; int i, len;
void *ctrl_node, *bus_node, *parent_node, *soc_node; void *node, *parent_node, *soc_node;
u32 naddr, nsize, bus_ph, mem_log2; u32 naddr, nsize, mem_log2;
ctrl_node = finddevice("/soc/pci"); node = finddevice("/pci");
if (!ctrl_node || !dt_is_compatible(ctrl_node, "fsl,pq2-pci")) if (!node || !dt_is_compatible(node, "fsl,pq2-pci"))
return; return;
soc_node = finddevice("/soc"); soc_node = finddevice("/soc");
...@@ -151,27 +151,18 @@ static void fixup_pci(void) ...@@ -151,27 +151,18 @@ static void fixup_pci(void)
goto err; goto err;
for (i = 0; i < 3; i++) for (i = 0; i < 3; i++)
if (!dt_xlate_reg(ctrl_node, i, if (!dt_xlate_reg(node, i,
(unsigned long *)&pci_regs[i], NULL)) (unsigned long *)&pci_regs[i], NULL))
goto err; goto err;
if (!dt_xlate_reg(soc_node, 0, (unsigned long *)&soc_regs, NULL)) if (!dt_xlate_reg(soc_node, 0, (unsigned long *)&soc_regs, NULL))
goto err; goto err;
len = getprop(ctrl_node, "fsl,bus", &bus_ph, 4); dt_get_reg_format(node, &naddr, &nsize);
if (len != 4)
goto err;
bus_node = find_node_by_prop_value(NULL, "linux,phandle",
(char *)&bus_ph, 4);
if (!bus_node)
goto err;
dt_get_reg_format(bus_node, &naddr, &nsize);
if (naddr != 3 || nsize != 2) if (naddr != 3 || nsize != 2)
goto err; goto err;
parent_node = get_parent(bus_node); parent_node = get_parent(node);
if (!parent_node) if (!parent_node)
goto err; goto err;
...@@ -179,7 +170,7 @@ static void fixup_pci(void) ...@@ -179,7 +170,7 @@ static void fixup_pci(void)
if (naddr != 1 || nsize != 1) if (naddr != 1 || nsize != 1)
goto err; goto err;
len = getprop(bus_node, "ranges", pci_ranges_buf, len = getprop(node, "ranges", pci_ranges_buf,
sizeof(pci_ranges_buf)); sizeof(pci_ranges_buf));
for (i = 0; i < len / sizeof(struct pci_range); i++) { for (i = 0; i < len / sizeof(struct pci_range); i++) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment