summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--board/freescale/mx6q_arm2/mx6q_arm2.c29
-rw-r--r--board/freescale/mx6q_sabrelite/mx6q_sabrelite.c28
-rw-r--r--cpu/arm_cortexa8/mx6/generic.c23
3 files changed, 21 insertions, 59 deletions
diff --git a/board/freescale/mx6q_arm2/mx6q_arm2.c b/board/freescale/mx6q_arm2/mx6q_arm2.c
index d48601e..bbc5ea8 100644
--- a/board/freescale/mx6q_arm2/mx6q_arm2.c
+++ b/board/freescale/mx6q_arm2/mx6q_arm2.c
@@ -53,10 +53,6 @@
#include <asm/arch/mmu.h>
#endif
-#ifdef CONFIG_GET_FEC_MAC_ADDR_FROM_IIM
-#include <asm/imx_iim.h>
-#endif
-
#ifdef CONFIG_CMD_CLOCK
#include <asm/clock.h>
#endif
@@ -456,31 +452,6 @@ int setup_gpmi_nand(void)
}
#endif
-
-#define HW_OCOTP_MACn(n) (0x00000620 + (n) * 0x10)
-
-#ifdef CONFIG_MXC_FEC
-#ifdef CONFIG_GET_FEC_MAC_ADDR_FROM_IIM
-
-int fec_get_mac_addr(unsigned char *mac)
-{
- unsigned int value;
-
- value = readl(OCOTP_BASE_ADDR + HW_OCOTP_MACn(0));
- mac[0] = value & 0xff;
- mac[1] = (value >> 8) & 0xff;
- mac[2] = (value >> 16) & 0xff;
- mac[3] = (value >> 24) & 0xff;
- value = readl(OCOTP_BASE_ADDR + HW_OCOTP_MACn(1));
- mac[4] = value & 0xff;
- mac[5] = (value >> 8) & 0xff;
-
- return 0;
-}
-
-#endif
-#endif
-
#ifdef CONFIG_NET_MULTI
int board_eth_init(bd_t *bis)
{
diff --git a/board/freescale/mx6q_sabrelite/mx6q_sabrelite.c b/board/freescale/mx6q_sabrelite/mx6q_sabrelite.c
index 9f499e7..dc87502 100644
--- a/board/freescale/mx6q_sabrelite/mx6q_sabrelite.c
+++ b/board/freescale/mx6q_sabrelite/mx6q_sabrelite.c
@@ -41,10 +41,6 @@
#include <asm/arch/mmu.h>
#endif
-#ifdef CONFIG_GET_FEC_MAC_ADDR_FROM_IIM
-#include <asm/imx_iim.h>
-#endif
-
#ifdef CONFIG_CMD_CLOCK
#include <asm/clock.h>
#endif
@@ -295,30 +291,6 @@ void spi_io_init(struct imx_spi_dev_t *dev)
}
#endif
-#define HW_OCOTP_MACn(n) (0x00000620 + (n) * 0x10)
-
-#ifdef CONFIG_MXC_FEC
-#ifdef CONFIG_GET_FEC_MAC_ADDR_FROM_IIM
-
-int fec_get_mac_addr(unsigned char *mac)
-{
- unsigned int value;
-
- value = readl(OCOTP_BASE_ADDR + HW_OCOTP_MACn(0));
- mac[0] = value & 0xff;
- mac[1] = (value >> 8) & 0xff;
- mac[2] = (value >> 16) & 0xff;
- mac[3] = (value >> 24) & 0xff;
- value = readl(OCOTP_BASE_ADDR + HW_OCOTP_MACn(1));
- mac[4] = value & 0xff;
- mac[5] = (value >> 8) & 0xff;
-
- return 0;
-}
-
-#endif
-#endif
-
#ifdef CONFIG_NET_MULTI
int board_eth_init(bd_t *bis)
{
diff --git a/cpu/arm_cortexa8/mx6/generic.c b/cpu/arm_cortexa8/mx6/generic.c
index 3ffc420..019a3f3 100644
--- a/cpu/arm_cortexa8/mx6/generic.c
+++ b/cpu/arm_cortexa8/mx6/generic.c
@@ -33,6 +33,9 @@
#ifdef CONFIG_ARCH_CPU_INIT
#include <asm/cache-cp15.h>
#endif
+#ifdef CONFIG_GET_FEC_MAC_ADDR_FROM_IIM
+#include <asm/arch/regs-ocotp.h>
+#endif
enum pll_clocks {
CPU_PLL1, /* System PLL */
@@ -527,8 +530,6 @@ int clk_info(u32 clk_type)
return 0;
}
-
-
static int config_pll_clk(enum pll_clocks pll, u32 divider)
{
u32 ccsr = readl(CCM_BASE_ADDR + CLKCTL_CCSR);
@@ -737,6 +738,24 @@ int print_cpuinfo(void)
extern int mxc_fec_initialize(bd_t *bis);
extern void mxc_fec_set_mac_from_env(char *mac_addr);
void enet_board_init(void);
+#ifdef CONFIG_GET_FEC_MAC_ADDR_FROM_IIM
+int fec_get_mac_addr(unsigned char *mac)
+{
+ unsigned int value;
+
+ value = readl(OCOTP_BASE_ADDR + HW_OCOTP_MACn(0));
+ mac[5] = value & 0xff;
+ mac[4] = (value >> 8) & 0xff;
+ mac[3] = (value >> 16) & 0xff;
+ mac[2] = (value >> 24) & 0xff;
+ value = readl(OCOTP_BASE_ADDR + HW_OCOTP_MACn(1));
+ mac[1] = value & 0xff;
+ mac[0] = (value >> 8) & 0xff;
+
+ return 0;
+}
+#endif
+
#endif
int cpu_eth_init(bd_t *bis)