static void br_summaryscreen_printdtb(char *prefix, char *name, char *suffix) { u32 dtbaddr = getenv_ulong("dtbaddr", 16, ~0UL); char buf[32] = { 0 }; const char *nodep = buf; char *mac = 0; int nodeoffset; int len; if (dtbaddr == ~0UL) { puts("br_summaryscreen: failed to get 'dtbaddr' from env!\n"); return; } if (strcmp(name, "brmac1") == 0) { mac = (char *)dtbmacaddr(0); if (mac) sprintf(buf, "%pM", mac); } else if (strcmp(name, "brmac2") == 0) { mac = (char *)dtbmacaddr(1); if (mac) sprintf(buf, "%pM", mac); } else { nodeoffset = fdt_path_offset((void *)dtbaddr, "/factory-settings"); if (nodeoffset < 0) { puts("no 'factory-settings' in dtb!\n"); return; } nodep = fdt_getprop((void *)dtbaddr, nodeoffset, name, &len); } if (nodep && strlen(nodep) > 1) lcd_printf("%s %s %s", prefix, nodep, suffix); else lcd_printf("\n"); }
static void br_summaryscreen_printdtb(char *prefix, char *name, char *suffix) { char buf[32] = { 0 }; const char *nodep = buf; char *mac = 0; int nodeoffset; int len; if (gd->fdt_blob == NULL) { printf("%s: don't have a valid gd->fdt_blob!\n", __func__); return; } if (strcmp(name, "brmac1") == 0) { mac = (char *)dtbmacaddr(0); if (mac) sprintf(buf, "%pM", mac); } else if (strcmp(name, "brmac2") == 0) { mac = (char *)dtbmacaddr(1); if (mac) sprintf(buf, "%pM", mac); } else { nodeoffset = fdt_path_offset(gd->fdt_blob, "/factory-settings"); if (nodeoffset < 0) { puts("no 'factory-settings' in dtb!\n"); return; } nodep = fdt_getprop(gd->fdt_blob, nodeoffset, name, &len); } if (nodep && strlen(nodep) > 1) lcd_printf("%s %s %s", prefix, nodep, suffix); else lcd_printf("\n"); }
int board_eth_init(bd_t *bis) { int rv = 0; char mac_addr[6]; const char *mac = 0; uint32_t mac_hi, mac_lo; /* try reading mac address from efuse */ mac_lo = readl(&cdev->macid0l); mac_hi = readl(&cdev->macid0h); mac_addr[0] = mac_hi & 0xFF; mac_addr[1] = (mac_hi & 0xFF00) >> 8; mac_addr[2] = (mac_hi & 0xFF0000) >> 16; mac_addr[3] = (mac_hi & 0xFF000000) >> 24; mac_addr[4] = mac_lo & 0xFF; mac_addr[5] = (mac_lo & 0xFF00) >> 8; #if (defined(CONFIG_DRIVER_TI_CPSW) && !defined(CONFIG_SPL_BUILD)) || \ (defined(CONFIG_SPL_ETH_SUPPORT) && defined(CONFIG_SPL_BUILD)) if (!getenv("ethaddr")) { #if !defined(CONFIG_SPL_BUILD) && defined(CONFIG_USE_FDT) printf("<ethaddr> not set. trying DTB ... "); mac = dtbmacaddr(0); #endif if (!mac) { printf("<ethaddr> not set. validating E-fuse MAC ... "); if (is_valid_ether_addr((const u8 *)mac_addr)) mac = (const char *)mac_addr; } if (mac) { printf("using: %pM on ", mac); eth_setenv_enetaddr("ethaddr", (const u8 *)mac); } } writel(MII_MODE_ENABLE, &cdev->miisel); cpsw_slaves[0].phy_if = PHY_INTERFACE_MODE_MII; cpsw_slaves[1].phy_if = PHY_INTERFACE_MODE_MII; rv = cpsw_register(&cpsw_data); if (rv < 0) { printf("Error %d registering CPSW switch\n", rv); return 0; } #endif /* CONFIG_DRIVER_TI_CPSW, ... */ return rv; }