common: Move pci_target_init() to PPC header
[oweals/u-boot.git] / common / fdt_support.c
index c9f7019e38e8de1469f506cdd57353fd27d8e134..dfdc04dfbae3bac471651c0233010d404de8f7a7 100644 (file)
@@ -473,7 +473,7 @@ void fdt_fixup_ethernet(void *fdt)
        char *tmp, *end;
        char mac[16];
        const char *path;
-       unsigned char mac_addr[6];
+       unsigned char mac_addr[ARP_HLEN];
        int offset;
 
        if (fdt_path_offset(fdt, "/aliases") < 0)
@@ -482,7 +482,6 @@ void fdt_fixup_ethernet(void *fdt)
        /* Cycle through all aliases */
        for (prop = 0; ; prop++) {
                const char *name;
-               int len = strlen("ethernet");
 
                /* FDT might have been edited, recompute the offset */
                offset = fdt_first_property_offset(fdt,
@@ -495,8 +494,13 @@ void fdt_fixup_ethernet(void *fdt)
                        break;
 
                path = fdt_getprop_by_offset(fdt, offset, &name, NULL);
-               if (!strncmp(name, "ethernet", len)) {
-                       i = trailing_strtol(name);
+               if (!strncmp(name, "ethernet", 8)) {
+                       /* Treat plain "ethernet" same as "ethernet0". */
+                       if (!strcmp(name, "ethernet"))
+                               i = 0;
+                       else
+                               i = trailing_strtol(name);
+
                        if (i != -1) {
                                if (i == 0)
                                        strcpy(mac, "ethaddr");
@@ -903,14 +907,9 @@ void fdt_fixup_mtdparts(void *blob, void *node_info, int node_info_size)
 {
        struct node_info *ni = node_info;
        struct mtd_device *dev;
-       char *parts;
        int i, idx;
        int noff;
 
-       parts = getenv("mtdparts");
-       if (!parts)
-               return;
-
        if (mtdparts_init() != 0)
                return;
 
@@ -1009,7 +1008,7 @@ struct of_bus {
 };
 
 /* Default translator (generic bus) */
-void of_bus_default_count_cells(const void *blob, int parentoffset,
+void fdt_support_default_count_cells(const void *blob, int parentoffset,
                                        int *addrc, int *sizec)
 {
        const fdt32_t *prop;
@@ -1031,9 +1030,9 @@ static u64 of_bus_default_map(fdt32_t *addr, const fdt32_t *range,
 {
        u64 cp, s, da;
 
-       cp = of_read_number(range, na);
-       s  = of_read_number(range + na + pna, ns);
-       da = of_read_number(addr, na);
+       cp = fdt_read_number(range, na);
+       s  = fdt_read_number(range + na + pna, ns);
+       da = fdt_read_number(addr, na);
 
        debug("OF: default map, cp=%" PRIu64 ", s=%" PRIu64
              ", da=%" PRIu64 "\n", cp, s, da);
@@ -1045,7 +1044,7 @@ static u64 of_bus_default_map(fdt32_t *addr, const fdt32_t *range,
 
 static int of_bus_default_translate(fdt32_t *addr, u64 offset, int na)
 {
-       u64 a = of_read_number(addr, na);
+       u64 a = fdt_read_number(addr, na);
        memset(addr, 0, na * 4);
        a += offset;
        if (na > 1)
@@ -1087,9 +1086,9 @@ static u64 of_bus_isa_map(fdt32_t *addr, const fdt32_t *range,
        if ((addr[0] ^ range[0]) & cpu_to_be32(1))
                return OF_BAD_ADDR;
 
-       cp = of_read_number(range + 1, na - 1);
-       s  = of_read_number(range + na + pna, ns);
-       da = of_read_number(addr + 1, na - 1);
+       cp = fdt_read_number(range + 1, na - 1);
+       s  = fdt_read_number(range + na + pna, ns);
+       da = fdt_read_number(addr + 1, na - 1);
 
        debug("OF: ISA map, cp=%" PRIu64 ", s=%" PRIu64
              ", da=%" PRIu64 "\n", cp, s, da);
@@ -1123,7 +1122,7 @@ static struct of_bus of_busses[] = {
        {
                .name = "default",
                .addresses = "reg",
-               .count_cells = of_bus_default_count_cells,
+               .count_cells = fdt_support_default_count_cells,
                .map = of_bus_default_map,
                .translate = of_bus_default_translate,
        },
@@ -1174,7 +1173,7 @@ static int of_translate_one(const void *blob, int parent, struct of_bus *bus,
         */
        ranges = fdt_getprop(blob, parent, rprop, &rlen);
        if (ranges == NULL || rlen == 0) {
-               offset = of_read_number(addr, na);
+               offset = fdt_read_number(addr, na);
                memset(addr, 0, pna * 4);
                debug("OF: no ranges, 1:1 translation\n");
                goto finish;
@@ -1254,7 +1253,7 @@ static u64 __of_translate_address(const void *blob, int node_offset,
                /* If root, we have finished */
                if (parent < 0) {
                        debug("OF: reached root node\n");
-                       result = of_read_number(addr, na);
+                       result = fdt_read_number(addr, na);
                        break;
                }
 
@@ -1540,7 +1539,7 @@ int fdt_verify_alias_address(void *fdt, int anode, const char *alias, u64 addr)
 /*
  * Returns the base address of an SOC or PCI node
  */
-u64 fdt_get_base_address(void *fdt, int node)
+u64 fdt_get_base_address(const void *fdt, int node)
 {
        int size;
        u32 naddr;
@@ -1667,8 +1666,8 @@ int fdt_setup_simplefb_node(void *fdt, int node, u64 base_address, u32 width,
        fdt32_t cells[4];
        int i, addrc, sizec, ret;
 
-       of_bus_default_count_cells(fdt, fdt_parent_offset(fdt, node),
-                                  &addrc, &sizec);
+       fdt_support_default_count_cells(fdt, fdt_parent_offset(fdt, node),
+                                       &addrc, &sizec);
        i = 0;
        if (addrc == 2)
                cells[i++] = cpu_to_fdt32(base_address >> 32);