Commit 04025b42dc32b0f6437c24743b1c88b8ec43995a

Authored by Dan Murphy
Committed by Marek Vasut
1 parent 5e5cfaf997
Exists in master and in 56 other branches 8qm-imx_v2020.04_5.4.70_2.3.0, emb_lf-6.6.52-2.2.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, 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

ARM: OMAP5-uevm: Add USB MAC ethernet address

Set the usbethaddr based on the OMAP DIE_ID registers
which should be unique for each processor.

Then set this as the usb ethernet MAC address.

Signed-off-by: Dan Murphy <dmurphy@ti.com>

Showing 1 changed file with 23 additions and 0 deletions Side-by-side Diff

board/ti/omap5_uevm/evm.c
... ... @@ -19,6 +19,10 @@
19 19 #include <asm/arch/clock.h>
20 20 #include <asm/arch/ehci.h>
21 21 #include <asm/ehci-omap.h>
  22 +
  23 +#define DIE_ID_REG_BASE (OMAP54XX_L4_CORE_BASE + 0x2000)
  24 +#define DIE_ID_REG_OFFSET 0x200
  25 +
22 26 #endif
23 27  
24 28 DECLARE_GLOBAL_DATA_PTR;
25 29  
... ... @@ -144,8 +148,27 @@
144 148 {
145 149 int ret;
146 150 int auxclk;
  151 + int reg;
  152 + uint8_t device_mac[6];
147 153  
148 154 enable_host_clocks();
  155 +
  156 + if (!getenv("usbethaddr")) {
  157 + reg = DIE_ID_REG_BASE + DIE_ID_REG_OFFSET;
  158 +
  159 + /*
  160 + * create a fake MAC address from the processor ID code.
  161 + * first byte is 0x02 to signify locally administered.
  162 + */
  163 + device_mac[0] = 0x02;
  164 + device_mac[1] = readl(reg + 0x10) & 0xff;
  165 + device_mac[2] = readl(reg + 0xC) & 0xff;
  166 + device_mac[3] = readl(reg + 0x8) & 0xff;
  167 + device_mac[4] = readl(reg) & 0xff;
  168 + device_mac[5] = (readl(reg) >> 8) & 0xff;
  169 +
  170 + eth_setenv_enetaddr("usbethaddr", device_mac);
  171 + }
149 172  
150 173 auxclk = readl((*prcm)->scrm_auxclk1);
151 174 /* Request auxilary clock */