diff mbox

[U-Boot] ARM: omap4-panda: Add MAC address creation for panda

Message ID 1381344826-27039-1-git-send-email-dmurphy@ti.com
State Superseded
Delegated to: Tom Rini
Headers show

Commit Message

Dan Murphy Oct. 9, 2013, 6:53 p.m. UTC
Add a MAC address create based on the OMAP die ID registers.
Then poplulate the ethaddr enviroment variable so that the device
tree alias can be updated prior to boot.

Signed-off-by: Dan Murphy <dmurphy@ti.com>
---
 arch/arm/include/asm/arch-omap4/omap.h |    4 ++++
 board/ti/panda/panda.c                 |   16 ++++++++++++++++
 2 files changed, 20 insertions(+)

Comments

Tom Rini Oct. 9, 2013, 7:27 p.m. UTC | #1
On Wed, Oct 09, 2013 at 01:53:46PM -0500, Dan Murphy wrote:

> Add a MAC address create based on the OMAP die ID registers.
> Then poplulate the ethaddr enviroment variable so that the device
> tree alias can be updated prior to boot.
> 
> Signed-off-by: Dan Murphy <dmurphy@ti.com>

What are we creating a MAC address for here?  The 10/100 port that's
hooked up via USB is covered already, and we just need your other patch
to make usbethaddr be updated in the aliases node applied to fix that.
We shouldn't be dealing with other ethernet devices that we don't use in
U-Boot.
Dan Murphy Oct. 9, 2013, 7:42 p.m. UTC | #2
Tom

On 10/09/2013 02:27 PM, Tom Rini wrote:
> On Wed, Oct 09, 2013 at 01:53:46PM -0500, Dan Murphy wrote:
>
>> Add a MAC address create based on the OMAP die ID registers.
>> Then poplulate the ethaddr enviroment variable so that the device
>> tree alias can be updated prior to boot.
>>
>> Signed-off-by: Dan Murphy <dmurphy@ti.com>
> What are we creating a MAC address for here?  The 10/100 port that's
> hooked up via USB is covered already, and we just need your other patch
> to make usbethaddr be updated in the aliases node applied to fix that.
> We shouldn't be dealing with other ethernet devices that we don't use in
> U-Boot.
>

We need to create the MAC for the panda as no MAC address is being set at all for the
USB->Ethernet LAN.

I will change this to set the usbethaddr instead since the lan device is connected via usb on the panda boards

Dan
diff mbox

Patch

diff --git a/arch/arm/include/asm/arch-omap4/omap.h b/arch/arm/include/asm/arch-omap4/omap.h
index 9129c0d..e35f51c 100644
--- a/arch/arm/include/asm/arch-omap4/omap.h
+++ b/arch/arm/include/asm/arch-omap4/omap.h
@@ -33,6 +33,10 @@ 
 
 /* CONTROL_ID_CODE */
 #define CONTROL_ID_CODE		0x4A002204
+#define STD_FUSE_DIE_ID_0	0x4A002200
+#define STD_FUSE_DIE_ID_1	0x4A002208
+#define STD_FUSE_DIE_ID_2	0x4A00220c
+#define STD_FUSE_DIE_ID_3	0x4A002210
 
 #define OMAP4_CONTROL_ID_CODE_ES1_0	0x0B85202F
 #define OMAP4_CONTROL_ID_CODE_ES2_0	0x1B85202F
diff --git a/board/ti/panda/panda.c b/board/ti/panda/panda.c
index e838ffd..53f4c24 100644
--- a/board/ti/panda/panda.c
+++ b/board/ti/panda/panda.c
@@ -133,6 +133,7 @@  int misc_init_r(void)
 {
 	int phy_type;
 	u32 auxclk, altclksrc;
+	uint8_t device_mac[6];
 
 	/* EHCI is not supported on ES1.0 */
 	if (omap_revision() == OMAP4430_ES1_0)
@@ -186,6 +187,21 @@  int misc_init_r(void)
 
 	writel(altclksrc, &scrm->altclksrc);
 
+	if (!getenv("ethaddr")) {
+		/*
+		 * create a fake MAC address from the processor ID code.
+		 * first byte is 0x02 to signify locally administered.
+		 */
+		device_mac[0] = 0x02;
+		device_mac[1] = readl(STD_FUSE_DIE_ID_3) & 0xff;
+		device_mac[2] = readl(STD_FUSE_DIE_ID_2) & 0xff;
+		device_mac[3] = readl(STD_FUSE_DIE_ID_1) & 0xff;
+		device_mac[4] = readl(STD_FUSE_DIE_ID_0) & 0xff;
+		device_mac[5] = (readl(STD_FUSE_DIE_ID_0) >> 8) & 0xff;
+
+		eth_setenv_enetaddr("ethaddr", device_mac);
+	}
+
 	return 0;
 }