int ft_board_setup(void *blob, bd_t *bd) { #ifdef CONFIG_FDT_FIXUP_PARTITIONS static struct node_info nodes[] = { { "ti,omap2-nand", MTD_DEV_TYPE_NAND, }, { "ti,omap2-onenand", MTD_DEV_TYPE_ONENAND, }, }; fdt_fixup_mtdparts(blob, nodes, ARRAY_SIZE(nodes)); #endif return 0; }
void ft_board_setup(void *blob, bd_t *bd) { u32 val[8]; int rc, i = 0; ft_cpu_setup(blob, bd); #ifdef CONFIG_FDT_FIXUP_PARTITIONS fdt_fixup_mtdparts(blob, nodes, ARRAY_SIZE(nodes)); #endif #if defined(CONFIG_VIDEO) fdt_add_edid(blob, "fsl,mpc5121-diu", edid_buf); #endif /* Fixup NOR FLASH mapping */ val[i++] = 0; /* chip select number */ val[i++] = 0; /* always 0 */ val[i++] = gd->bd->bi_flashstart; val[i++] = gd->bd->bi_flashsize; /* Fixup MRAM mapping */ val[i++] = 2; /* chip select number */ val[i++] = 0; /* always 0 */ val[i++] = CONFIG_SYS_MRAM_BASE; val[i++] = CONFIG_SYS_MRAM_SIZE; rc = fdt_find_and_setprop(blob, "/localbus", "ranges", val, i * sizeof(u32), 1); if (rc) printf("Unable to update localbus ranges, err=%s\n", fdt_strerror(rc)); /* Fixup reg property in NOR Flash node */ i = 0; val[i++] = 0; /* always 0 */ val[i++] = 0; /* start at offset 0 */ val[i++] = flash_info[0].size; /* size of Bank 0 */ /* Second Bank available? */ if (flash_info[1].size > 0) { val[i++] = 0; /* always 0 */ val[i++] = flash_info[0].size; /* offset of Bank 1 */ val[i++] = flash_info[1].size; /* size of Bank 1 */ } rc = fdt_find_and_setprop(blob, "/localbus/flash", "reg", val, i * sizeof(u32), 1); if (rc) printf("Unable to update flash reg property, err=%s\n", fdt_strerror(rc)); }
int ft_board_setup(void *blob, bd_t *bd) { #if defined(CONFIG_FDT_FIXUP_PARTITIONS) static struct node_info nodes[] = { { "fsl,imx6ull-gpmi-nand", MTD_DEV_TYPE_NAND, }, { "fsl,imx6q-gpmi-nand", MTD_DEV_TYPE_NAND, }, }; /* Update partition nodes using info from mtdparts env var */ puts(" Updating MTD partitions...\n"); fdt_fixup_mtdparts(blob, nodes, ARRAY_SIZE(nodes)); #endif return ft_common_board_setup(blob, bd); }
/* * called prior to booting kernel or by 'fdt boardsetup' command * */ int ft_board_setup(void *blob, bd_t *bd) { struct node_info nodes[] = { { "physmap-flash.0", MTD_DEV_TYPE_NOR, }, /* NOR flash */ { "mxc_nand", MTD_DEV_TYPE_NAND, }, /* NAND flash */ }; if (env_get("fdt_noauto")) { puts(" Skiping ft_board_setup (fdt_noauto defined)\n"); return 0; } fdt_fixup_mtdparts(blob, nodes, ARRAY_SIZE(nodes)); return 0; }
int ft_board_setup(void *blob, bd_t *bd) { phys_addr_t base; phys_size_t size; ft_cpu_setup(blob, bd); base = env_get_bootm_low(); size = env_get_bootm_size(); fdt_fixup_memory(blob, (u64)base, (u64)size); #ifdef CONFIG_FDT_FIXUP_PARTITIONS fdt_fixup_mtdparts(blob, nodes, ARRAY_SIZE(nodes)); #endif fsl_fdt_fixup_dr_usb(blob, bd); return 0; }
int ft_board_setup(void *blob, bd_t *bd) { u32 baseboard_rev; int nodeoffset; uint8_t enetaddr[6]; char baseboard_name[16]; int err; fdt_shrink_to_minimum(blob, 0); /* Make room for new properties */ /* MAC addr */ if (eth_env_get_enetaddr("ethaddr", enetaddr)) { fdt_find_and_setprop(blob, "/soc/aips-bus@02100000/ethernet@02188000", "local-mac-address", enetaddr, 6, 1); } if (eth_env_get_enetaddr("eth1addr", enetaddr)) { fdt_find_and_setprop(blob, "/eth@pcie", "local-mac-address", enetaddr, 6, 1); } fdt_fixup_mtdparts(blob, nodes, ARRAY_SIZE(nodes)); baseboard_rev = cl_eeprom_get_board_rev(0); err = cl_eeprom_get_product_name((uchar *)baseboard_name, 0); if (err || baseboard_rev == 0) return 0; /* Assume not an early revision SB-FX6m baseboard */ if (!strncmp("SB-FX6m", baseboard_name, 7) && baseboard_rev <= 120) { nodeoffset = fdt_path_offset(blob, USDHC3_PATH); fdt_delprop(blob, nodeoffset, "cd-gpios"); fdt_find_and_setprop(blob, USDHC3_PATH, "broken-cd", NULL, 0, 1); fdt_find_and_setprop(blob, USDHC3_PATH, "keep-power-in-suspend", NULL, 0, 1); } return 0; }
void ft_board_setup(void *blob, bd_t *bd) { const char *baseboard = getenv("baseboard"); #ifdef CONFIG_TX28_S /* TX28-41xx (aka TX28S) has no external RTC * and no I2C GPIO extender */ karo_fdt_remove_node(blob, "ds1339"); karo_fdt_remove_node(blob, "pca9554"); #endif if (baseboard != NULL && strcmp(baseboard, "stk5-v5") == 0) { const char *otg_mode = getenv("otg_mode"); if (otg_mode && strcmp(otg_mode, "host") == 0) { printf("otg_mode=%s incompatible with baseboard %s\n", otg_mode, baseboard); setenv(otg_mode, "none"); } karo_fdt_remove_node(blob, "stk5led"); } else { tx28_fixup_flexcan(blob); tx28_fixup_fec(blob); } if (baseboard != NULL && strcmp(baseboard, "stk5-v3") == 0) { const char *otg_mode = getenv("otg_mode"); if (otg_mode && strcmp(otg_mode, "device") == 0) karo_fdt_remove_node(blob, "can1"); } fdt_fixup_mtdparts(blob, tx28_nand_nodes, ARRAY_SIZE(tx28_nand_nodes)); fdt_fixup_ethernet(blob); karo_fdt_fixup_touchpanel(blob); karo_fdt_fixup_usb_otg(blob, "fsl,imx28-usbphy", 0x8007c000); }