Ejemplo n.º 1
0
static int
xemac_set_mac_addr(struct snet *snetp, void *eth_instance, uint8_t mac_addr[])
{
    XEmac   *xemac_instance = (XEmac *) eth_instance;
    XStatus  status;

    status = XEmac_SetMacAddress(xemac_instance, mac_addr);
    if (status != XST_SUCCESS) {
	mbfw_printf("MBFW_ERROR: XEmac_SetMacAddress() failed with status 0x%x \r\n", status);
    }

    return 0;
}
Ejemplo n.º 2
0
int
eth_init(bd_t * bis)
{
	u32 Options;
	XStatus Result;

#ifdef DEBUG
	printf("EMAC Initialization Started\n\r");
#endif

	Result = XEmac_Initialize(&Emac, XPAR_EMAC_0_DEVICE_ID);
	if (Result != XST_SUCCESS) {
		return 0;
	}

	/* make sure the Emac is stopped before it is started */
	(void) XEmac_Stop(&Emac);

#ifdef CFG_ENV_IS_NOWHERE
	memcpy(bis->bi_enetaddr, EMACAddr, 6);
#endif

	Result = XEmac_SetMacAddress(&Emac, bis->bi_enetaddr);
	if (Result != XST_SUCCESS) {
		return 0;
	}

	Options =
	    (XEM_POLLED_OPTION | XEM_UNICAST_OPTION | XEM_BROADCAST_OPTION |
	     XEM_FDUPLEX_OPTION | XEM_INSERT_FCS_OPTION |
	     XEM_INSERT_PAD_OPTION);
	Result = XEmac_SetOptions(&Emac, Options);
	if (Result != XST_SUCCESS) {
		return 0;
	}

	Result = XEmac_Start(&Emac);
	if (Result != XST_SUCCESS) {
		return 0;
	}
#ifdef DEBUG
	printf("EMAC Initialization complete\n\r");
#endif

	initialized = 1;

	return (0);
}