diff options
author | Wolfram Sang <w.sang@pengutronix.de> | 2012-04-05 11:05:40 +0200 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2012-04-05 18:26:18 +0200 |
commit | 8bcf2c465aa52706fc645f5c257a33d7b3493a6b (patch) | |
tree | b9aa925811233ed8249eb0809648bf05e2848e72 /arch/arm/boards/karo-tx28 | |
parent | 4be0faccd722a74e7cf7aa20b446c7057938d6df (diff) | |
download | barebox-8bcf2c465aa52706fc645f5c257a33d7b3493a6b.tar.gz barebox-8bcf2c465aa52706fc645f5c257a33d7b3493a6b.tar.xz |
arm: mxs: tx28: get MAC from OCOTP
Signed-off-by: Wolfram Sang <w.sang@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'arch/arm/boards/karo-tx28')
-rw-r--r-- | arch/arm/boards/karo-tx28/tx28-stk5.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/arch/arm/boards/karo-tx28/tx28-stk5.c b/arch/arm/boards/karo-tx28/tx28-stk5.c index b36d8226e5..04fdbc37b9 100644 --- a/arch/arm/boards/karo-tx28/tx28-stk5.c +++ b/arch/arm/boards/karo-tx28/tx28-stk5.c @@ -21,11 +21,13 @@ #include <fec.h> #include <sizes.h> #include <io.h> +#include <net.h> #include <asm/sections.h> #include <mach/imx-regs.h> #include <mach/clock.h> #include <mach/mci.h> #include <mach/fb.h> +#include <mach/ocotp.h> static struct mxs_mci_platform_data mci_pdata = { .caps = MMC_MODE_4BIT, @@ -345,6 +347,22 @@ static int register_persistent_environment(void) DEVFS_PARTITION_FIXED, "env0"); } +void tx28_get_ethaddr(void) +{ + u32 buf[2]; /* to make use of cpu_to_be32 */ + u32 ethaddr[2]; + int ret; + + ret = mxs_ocotp_read(buf, 8, 0); + if (ret != 8) + return; + + ethaddr[0] = cpu_to_be32(buf[0]); + ethaddr[1] = cpu_to_be32(buf[1]); + + eth_register_ethaddr(0, (char *)ethaddr); +} + void base_board_init(void) { int i, ret; @@ -369,6 +387,11 @@ void base_board_init(void) add_generic_device("stmfb", 0, NULL, IMX_FB_BASE, 4096, IORESOURCE_MEM, &tx28_fb_pdata); + add_generic_device("ocotp", 0, NULL, IMX_OCOTP_BASE, 0, + IORESOURCE_MEM, NULL); + + tx28_get_ethaddr(); + imx_enable_enetclk(); add_generic_device("fec_imx", 0, NULL, IMX_FEC0_BASE, 0, IORESOURCE_MEM, &fec_info); |