Commit ab544633abdd14f4dd5d92e500b73eb59ef57e67

Authored by Kumar Gala
1 parent dbaf07ce62
Exists in master and in 56 other branches 8qm-imx_v2020.04_5.4.70_2.3.0, emb_lf_v2022.04, emb_lf_v2023.04, emb_lf_v2024.04, imx_v2015.04_4.1.15_1.0.0_ga, pitx_8mp_lf_v2020.04, smarc-8m-android-10.0.0_2.6.0, smarc-8m-android-11.0.0_2.0.0, smarc-8mp-android-11.0.0_2.0.0, smarc-emmc-imx_v2014.04_3.10.53_1.1.0_ga, smarc-emmc-imx_v2014.04_3.14.28_1.0.0_ga, smarc-imx-l5.0.0_1.0.0-ga, smarc-imx6_v2018.03_4.14.98_2.0.0_ga, smarc-imx7_v2017.03_4.9.11_1.0.0_ga, smarc-imx7_v2018.03_4.14.98_2.0.0_ga, smarc-imx_v2014.04_3.14.28_1.0.0_ga, smarc-imx_v2015.04_4.1.15_1.0.0_ga, smarc-imx_v2017.03_4.9.11_1.0.0_ga, smarc-imx_v2017.03_4.9.88_2.0.0_ga, smarc-imx_v2017.03_o8.1.0_1.3.0_8m, smarc-imx_v2018.03_4.14.78_1.0.0_ga, smarc-m6.0.1_2.1.0-ga, smarc-n7.1.2_2.0.0-ga, smarc-rel_imx_4.1.15_2.0.0_ga, smarc_8m-imx_v2018.03_4.14.98_2.0.0_ga, smarc_8m-imx_v2019.04_4.19.35_1.1.0, smarc_8m_00d0-imx_v2018.03_4.14.98_2.0.0_ga, smarc_8mm-imx_v2018.03_4.14.98_2.0.0_ga, smarc_8mm-imx_v2019.04_4.19.35_1.1.0, smarc_8mm-imx_v2020.04_5.4.24_2.1.0, smarc_8mp_lf_v2020.04, smarc_8mq-imx_v2020.04_5.4.24_2.1.0, smarc_8mq_lf_v2020.04, ti-u-boot-2015.07, u-boot-2013.01.y, v2013.10, v2013.10-smarct33, v2013.10-smartmen, v2014.01, v2014.04, v2014.04-smarct33, v2014.04-smarct33-emmc, v2014.04-smartmen, v2014.07, v2014.07-smarct33, v2014.07-smartmen, v2015.07-smarct33, v2015.07-smarct33-emmc, v2015.07-smarct4x, v2016.05-dlt, v2016.05-smarct3x, v2016.05-smarct3x-emmc, v2016.05-smarct4x, v2017.01-smarct3x, v2017.01-smarct3x-emmc, v2017.01-smarct4x

Add fdt_fixup_ethernet helper to set mac addresses

Added a fixup helper that uses aliases to set mac addresses
in the device tree based on the bd_t

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>

Showing 2 changed files with 47 additions and 0 deletions Side-by-side Diff

common/fdt_support.c
... ... @@ -386,5 +386,51 @@
386 386 do_fixup_by_path(fdt, path, prop, &val, sizeof(val), create);
387 387 }
388 388  
  389 +void fdt_fixup_ethernet(void *fdt, bd_t *bd)
  390 +{
  391 + int node;
  392 + const char *path;
  393 +
  394 + node = fdt_path_offset(fdt, "/aliases");
  395 + if (node >= 0) {
  396 +#if defined(CONFIG_HAS_ETH0)
  397 + path = fdt_getprop(fdt, node, "ethernet0", NULL);
  398 + if (path) {
  399 + do_fixup_by_path(fdt, path, "mac-address",
  400 + bd->bi_enetaddr, 6, 0);
  401 + do_fixup_by_path(fdt, path, "local-mac-address",
  402 + bd->bi_enetaddr, 6, 1);
  403 + }
  404 +#endif
  405 +#if defined(CONFIG_HAS_ETH1)
  406 + path = fdt_getprop(fdt, node, "ethernet1", NULL);
  407 + if (path) {
  408 + do_fixup_by_path(fdt, path, "mac-address",
  409 + bd->bi_enet1addr, 6, 0);
  410 + do_fixup_by_path(fdt, path, "local-mac-address",
  411 + bd->bi_enet1addr, 6, 1);
  412 + }
  413 +#endif
  414 +#if defined(CONFIG_HAS_ETH2)
  415 + path = fdt_getprop(fdt, node, "ethernet2", NULL);
  416 + if (path) {
  417 + do_fixup_by_path(fdt, path, "mac-address",
  418 + bd->bi_enet2addr, 6, 0);
  419 + do_fixup_by_path(fdt, path, "local-mac-address",
  420 + bd->bi_enet2addr, 6, 1);
  421 + }
  422 +#endif
  423 +#if defined(CONFIG_HAS_ETH3)
  424 + path = fdt_getprop(fdt, node, "ethernet3", NULL);
  425 + if (path) {
  426 + do_fixup_by_path(fdt, path, "mac-address",
  427 + bd->bi_enet3addr, 6, 0);
  428 + do_fixup_by_path(fdt, path, "local-mac-address",
  429 + bd->bi_enet3addr, 6, 1);
  430 + }
  431 +#endif
  432 + }
  433 +}
  434 +
389 435 #endif /* CONFIG_OF_LIBFDT */
include/fdt_support.h
... ... @@ -33,6 +33,7 @@
33 33 const void *val, int len, int create);
34 34 void do_fixup_by_path_u32(void *fdt, const char *path, const char *prop,
35 35 u32 val, int create);
  36 +void fdt_fixup_ethernet(void *fdt, bd_t *bd);
36 37  
37 38 #ifdef CONFIG_OF_HAS_UBOOT_ENV
38 39 int fdt_env(void *fdt);