int misc_init_r(void)
{
    uint8_t tmp[20], addr[10];


    if (getenv("ethaddr") == NULL) {
        /* Read Ethernet MAC address from EEPROM */
        if (dvevm_read_mac_address(addr)) {
            /* Set Ethernet MAC address from EEPROM */
            davinci_sync_env_enetaddr(addr);
        } else {
            get_mac_addr(addr);
        }

        if (is_multicast_ether_addr(addr) || is_zero_ether_addr(addr)) {
            printf("Invalid MAC address read.\n");
            return -EINVAL;
        }
        sprintf((char *)tmp, "%02x:%02x:%02x:%02x:%02x:%02x", addr[0],
                addr[1], addr[2], addr[3], addr[4], addr[5]);

        setenv("ethaddr", (char *)tmp);
    }
#ifdef CONFIG_DRIVER_TI_EMAC_USE_RMII
    /* Select RMII fucntion through the expander */
    if (rmii_hw_init())
        printf("RMII hardware init failed!!!\n");
#endif

    dspwake();

    return 0;
}
Beispiel #2
0
int misc_init_r(void)
{
	uint8_t tmp[20], addr[10];

	printf ("ARM Clock : %d Hz\n", clk_get(DAVINCI_ARM_CLKID));
	printf ("DDR Clock : %d Hz\n", clk_get(DAVINCI_DDR_CLKID)/2);

	if (getenv("ethaddr") == NULL) {
		/* Set Ethernet MAC address from EEPROM */
		get_mac_addr(addr);

		if(is_multicast_ether_addr(addr) || is_zero_ether_addr(addr)) {
			printf("Invalid MAC address read.\n");
			return -EINVAL;
		}
		sprintf((char *)tmp, "%02x:%02x:%02x:%02x:%02x:%02x", addr[0],
				addr[1], addr[2], addr[3], addr[4], addr[5]);

		setenv("ethaddr", (char *)tmp);
	}

#ifdef CONFIG_DRIVER_TI_EMAC_USE_RMII
	/* Select RMII fucntion through the expander */
	if (rmii_hw_init())
		printf("RMII hardware init failed!!!\n");
#endif

	dspwake();	

	return (0);
}
Beispiel #3
0
/*
 * Initializes on-board ethernet controllers.
 */
int board_eth_init(bd_t *bis)
{
#ifdef CONFIG_DRIVER_TI_EMAC_USE_RMII
	/* Select RMII fucntion through the expander */
	if (rmii_hw_init())
		printf("RMII hardware init failed!!!\n");
#endif
	if (!davinci_emac_initialize()) {
		printf("Error: Ethernet init failed!\n");
		return -1;
	}

	return 0;
}