void initialize_network_hardware() { initDMA(); EthernetIntRegister(ETH_BASE, EthernetISR); /* Enable/Reset the Ethernet Controller */ ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_ETH); ROM_SysCtlPeripheralReset(SYSCTL_PERIPH_ETH); ROM_EthernetIntDisable(ETH_BASE, (ETH_INT_PHY | ETH_INT_MDIO | ETH_INT_RXER | ETH_INT_RXOF | ETH_INT_TX | ETH_INT_TXER | ETH_INT_RX)); /* Clear any interrupts that were already pending. */ unsigned long temp = ROM_EthernetIntStatus(ETH_BASE, 0); ROM_EthernetIntClear(ETH_BASE, temp); /* Initialise the MAC and connect. */ EthernetInit(ETH_BASE); ROM_EthernetConfigSet(ETH_BASE, (ETH_CFG_TX_DPLXEN | ETH_CFG_TX_CRCEN | ETH_CFG_TX_PADEN | ETH_CFG_RX_AMULEN)); setMACAddress(); ROM_EthernetEnable(ETH_BASE); ROM_IntEnable(INT_ETH); ROM_EthernetIntEnable(ETH_BASE, ETH_INT_RX); }
Error SMSC95xxUSB::initialize() { DEBUG(""); Error r = USBDevice::initialize(); if (r != ESUCCESS) { ERROR("failed to initialize USBDevice"); return r; } DEBUG("setting MAC"); // Set MAC address Ethernet::Address a; a.addr[0] = 0x00; a.addr[1] = 0x11; a.addr[2] = 0x22; a.addr[3] = 0x33; a.addr[4] = 0x44; a.addr[5] = 0x55; setMACAddress(a); #define SMSC9512_HS_USB_PKT_SIZE 512 #define SMSC9512_DEFAULT_HS_BURST_CAP_SIZE (16 * 1024 + 5 * SMSC9512_HS_USB_PKT_SIZE) // Enable RX/TX bits on hardware write(HardwareConfig, read(HardwareConfig) | MultipleEther | BulkIn | BCE); write(BurstCap, SMSC9512_DEFAULT_HS_BURST_CAP_SIZE / SMSC9512_HS_USB_PKT_SIZE); write(MACControl, read(MACControl) | MACTransmit | MACReceive); write(TransmitConfig, TransmitOn); // Begin packet receive transfer readStart(); // Done return ESUCCESS; }