"eth0_esa", true,
CONFIG_ESA, 0
);
-RedBoot_config_option("Set FEC network hardware address [MAC]",
- fec_esa,
- ALWAYS_ENABLED, true,
- CONFIG_BOOL, false
- );
-RedBoot_config_option("FEC network hardware address [MAC]",
- fec_esa_data,
- "fec_esa", true,
- CONFIG_ESA, 0
- );
#endif // CYGPKG_REDBOOT && CYGSEM_REDBOOT_FLASH_CONFIG
#ifdef CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT
return ok && set_esa;
}
-void _board_provide_fec_esa(void)
-{
- cyg_bool set_esa;
- cyg_uint8 addr[6];
- int ok;
-
- ok = CYGACC_CALL_IF_FLASH_CFG_OP( CYGNUM_CALL_IF_FLASH_CFG_GET,
- "fec_esa", &set_esa, CONFIG_BOOL);
- diag_printf("Ethernet FEC MAC address: ");
- if (ok && set_esa) {
- CYGACC_CALL_IF_FLASH_CFG_OP( CYGNUM_CALL_IF_FLASH_CFG_GET,
- "fec_esa_data", addr, CONFIG_ESA);
- //diag_printf("%02x:%02x:%02x:%02x:%02x:%02x\n",
- // addr[0], addr[1], addr[2], addr[3], addr[4], addr[5]);
- if(sys_ver == SOC_SILICONID_Rev1_0) {
- writel(addr[5], SOC_FEC_MAC_BASE + 0x0);
- writel(addr[4], SOC_FEC_MAC_BASE + 0x4);
- writel(addr[3], SOC_FEC_MAC_BASE + 0x8);
- writel(addr[2], SOC_FEC_MAC_BASE + 0xC);
- writel(addr[1], SOC_FEC_MAC_BASE + 0x10);
- writel(addr[0], SOC_FEC_MAC_BASE + 0x14);
- addr[5] = readl(SOC_FEC_MAC_BASE + 0x0);
- addr[4] = readl(SOC_FEC_MAC_BASE + 0x4);
- addr[3] = readl(SOC_FEC_MAC_BASE + 0x8);
- addr[2] = readl(SOC_FEC_MAC_BASE + 0xC);
- addr[1] = readl(SOC_FEC_MAC_BASE + 0x10);
- addr[0] = readl(SOC_FEC_MAC_BASE + 0x14);
- } else {
- writel(addr[5], SOC_FEC_MAC_BASE2 + 0x0);
- writel(addr[4], SOC_FEC_MAC_BASE2 + 0x4);
- writel(addr[3], SOC_FEC_MAC_BASE2 + 0x8);
- writel(addr[2], SOC_FEC_MAC_BASE2 + 0xC);
- writel(addr[1], SOC_FEC_MAC_BASE2 + 0x10);
- writel(addr[0], SOC_FEC_MAC_BASE2 + 0x14);
- addr[5] = readl(SOC_FEC_MAC_BASE2 + 0x0);
- addr[4] = readl(SOC_FEC_MAC_BASE2 + 0x4);
- addr[3] = readl(SOC_FEC_MAC_BASE2 + 0x8);
- addr[2] = readl(SOC_FEC_MAC_BASE2 + 0xC);
- addr[1] = readl(SOC_FEC_MAC_BASE2 + 0x10);
- addr[0] = readl(SOC_FEC_MAC_BASE2 + 0x14);
- }
- diag_printf("%02x:%02x:%02x:%02x:%02x:%02x\n",
- addr[0], addr[1], addr[2], addr[3], addr[4], addr[5]);
- } else {
- diag_printf("is not set\n");
- }
-}
-
-RedBoot_init(_board_provide_fec_esa, RedBoot_INIT_LAST);
#endif // CYGSEM_HAL_VIRTUAL_VECTOR_SUPPORT