mbed library sources. Supersedes mbed-src.
Fork of mbed-dev by
Diff: targets/hal/TARGET_RENESAS/TARGET_RZ_A1H/ethernet_api.c
- Revision:
- 66:fdb3f9f9a72f
- Parent:
- 0:9b334a45a8ff
- Child:
- 144:ef7eb2e8f9f7
diff -r 60c7569a3925 -r fdb3f9f9a72f targets/hal/TARGET_RENESAS/TARGET_RZ_A1H/ethernet_api.c --- a/targets/hal/TARGET_RENESAS/TARGET_RZ_A1H/ethernet_api.c Tue Feb 16 16:00:10 2016 +0000 +++ b/targets/hal/TARGET_RENESAS/TARGET_RZ_A1H/ethernet_api.c Thu Feb 18 09:45:10 2016 +0000 @@ -60,7 +60,7 @@ #define PHY_READ (2) #define MDC_WAIT (6) /* 400ns/4 */ #define BASIC_STS_MSK_LINK (0x0004) /* Link Status */ -#define BASIC_STS_MSK_AUTO_CMP (0x0010) /* Auto-Negotiate Complete */ +#define BASIC_STS_MSK_AUTO_CMP (0x0020) /* Auto-Negotiate Complete */ #define M_PHY_ID (0xFFFFFFF0) #define PHY_ID_LAN8710A (0x0007C0F0) /* ETHERPIR0 */ @@ -106,11 +106,20 @@ /* memory */ /* The whole transmit/receive descriptors (must be allocated in 16-byte boundaries) */ /* Transmit/receive buffers (must be allocated in 16-byte boundaries) */ -static uint8_t ehernet_nc_memory[(sizeof(edmac_send_desc_t) * NUM_OF_TX_DESCRIPTOR) + +#if defined(__ICCARM__) +#pragma data_alignment=16 +static uint8_t ethernet_nc_memory[(sizeof(edmac_send_desc_t) * NUM_OF_TX_DESCRIPTOR) + + (sizeof(edmac_recv_desc_t) * NUM_OF_RX_DESCRIPTOR) + + (NUM_OF_TX_DESCRIPTOR * SIZE_OF_BUFFER) + + (NUM_OF_RX_DESCRIPTOR * SIZE_OF_BUFFER)] //16 bytes aligned! + @ ".mirrorram"; +#else +static uint8_t ethernet_nc_memory[(sizeof(edmac_send_desc_t) * NUM_OF_TX_DESCRIPTOR) + (sizeof(edmac_recv_desc_t) * NUM_OF_RX_DESCRIPTOR) + (NUM_OF_TX_DESCRIPTOR * SIZE_OF_BUFFER) + (NUM_OF_RX_DESCRIPTOR * SIZE_OF_BUFFER)] __attribute((section("NC_BSS"),aligned(16))); //16 bytes aligned! +#endif static int32_t rx_read_offset; /* read offset */ static int32_t tx_wite_offset; /* write offset */ static uint32_t send_top_index; @@ -208,7 +217,7 @@ if (p_ethcfg->ether_mac != NULL) { (void)memcpy(mac_addr, p_ethcfg->ether_mac, sizeof(mac_addr)); } else { - ethernet_address(mac_addr); /* Get MAC Address */ + ethernet_address(mac_addr); /* Get MAC Address */ } return 0; @@ -401,7 +410,7 @@ void ethernet_address(char *mac) { if (mac != NULL) { - mbed_mac_address(mac); /* Get MAC Address */ + mbed_mac_address(mac); /* Get MAC Address */ } } @@ -427,8 +436,8 @@ if ((speed < 0) || (speed > 1)) { data = 0x1000; /* Auto-Negotiation Enable */ phy_reg_write(BASIC_MODE_CONTROL_REG, data); - data = phy_reg_read(BASIC_MODE_STATUS_REG); for (i = 0; i < 1000; i++) { + data = phy_reg_read(BASIC_MODE_STATUS_REG); if (((uint32_t)data & BASIC_STS_MSK_AUTO_CMP) != 0) { break; } @@ -486,8 +495,8 @@ int32_t i; uint8_t *p_memory_top; - (void)memset((void *)ehernet_nc_memory, 0, sizeof(ehernet_nc_memory)); - p_memory_top = ehernet_nc_memory; + (void)memset((void *)ethernet_nc_memory, 0, sizeof(ethernet_nc_memory)); + p_memory_top = ethernet_nc_memory; /* Descriptor area configuration */ p_eth_desc_dsend = (edmac_send_desc_t *)p_memory_top;