diff options
Diffstat (limited to 'c/src/lib/libbsp/arm/lpc24xx/include')
-rw-r--r-- | c/src/lib/libbsp/arm/lpc24xx/include/bsp.h | 13 | ||||
-rw-r--r-- | c/src/lib/libbsp/arm/lpc24xx/include/lpc24xx.h | 91 | ||||
-rw-r--r-- | c/src/lib/libbsp/arm/lpc24xx/include/system-clocks.h | 2 |
3 files changed, 102 insertions, 4 deletions
diff --git a/c/src/lib/libbsp/arm/lpc24xx/include/bsp.h b/c/src/lib/libbsp/arm/lpc24xx/include/bsp.h index 6a1410ee31..942bfd7ea2 100644 --- a/c/src/lib/libbsp/arm/lpc24xx/include/bsp.h +++ b/c/src/lib/libbsp/arm/lpc24xx/include/bsp.h @@ -35,6 +35,19 @@ extern "C" { #ifndef ASM +/* Network driver configuration */ + +struct rtems_bsdnet_ifconfig; + +int lpc24xx_eth_attach_detach( + struct rtems_bsdnet_ifconfig *config, + int attaching +); + +#define RTEMS_BSP_NETWORK_DRIVER_ATTACH lpc24xx_eth_attach_detach + +#define RTEMS_BSP_NETWORK_DRIVER_NAME "eth0" + #endif /* ASM */ #ifdef __cplusplus diff --git a/c/src/lib/libbsp/arm/lpc24xx/include/lpc24xx.h b/c/src/lib/libbsp/arm/lpc24xx/include/lpc24xx.h index 4719d30c3e..bb538cb487 100644 --- a/c/src/lib/libbsp/arm/lpc24xx/include/lpc24xx.h +++ b/c/src/lib/libbsp/arm/lpc24xx/include/lpc24xx.h @@ -1854,14 +1854,13 @@ typedef struct { typedef struct { uint32_t status; uint32_t hash_crc; -} lpc24xx_eth_transfer_status; +} lpc24xx_eth_receive_info; #define ETH_TRANSFER_DESCRIPTOR_SIZE 8 -#define ETH_TRANSFER_STATUS_SIZE 8 +#define ETH_RECEIVE_INFO_SIZE 8 -#define ETH_TRANSFER_CTRL_SIZE \ - (ETH_TRANSFER_DESCRIPTOR_SIZE + ETH_TRANSFER_STATUS_SIZE) +#define ETH_TRANSMIT_STATUS_SIZE 4 /* ETH_RX_CTRL */ @@ -2023,4 +2022,88 @@ typedef struct { #define ETH_CMD_FULL_DUPLEX 0x00000400U +/* AHBCFG */ + +#define AHBCFG_SCHEDULER_UNIFORM 0x00000001U + +#define AHBCFG_BREAK_BURST_MASK 0x00000006U + +#define GET_AHBCFG_BREAK_BURST( reg) \ + GET_FIELD( reg, AHBCFG_BREAK_BURST_MASK, 1) + +#define SET_AHBCFG_BREAK_BURST( reg, val) \ + SET_FIELD( reg, val, AHBCFG_BREAK_BURST_MASK, 1) + +#define AHBCFG_QUANTUM_BUS_CYCLE 0x00000008U + +#define AHBCFG_QUANTUM_SIZE_MASK 0x000000f0U + +#define GET_AHBCFG_QUANTUM_SIZE( reg) \ + GET_FIELD( reg, AHBCFG_QUANTUM_SIZE_MASK, 4) + +#define SET_AHBCFG_QUANTUM_SIZE( reg, val) \ + SET_FIELD( reg, val, AHBCFG_QUANTUM_SIZE_MASK, 4) + +#define AHBCFG_DEFAULT_MASTER_MASK 0x00000700U + +#define GET_AHBCFG_DEFAULT_MASTER( reg) \ + GET_FIELD( reg, AHBCFG_DEFAULT_MASTER_MASK, 8) + +#define SET_AHBCFG_DEFAULT_MASTER( reg, val) \ + SET_FIELD( reg, val, AHBCFG_DEFAULT_MASTER_MASK, 8) + +#define AHBCFG_EP1_MASK 0x00007000U + +#define GET_AHBCFG_EP1( reg) \ + GET_FIELD( reg, AHBCFG_EP1_MASK, 12) + +#define SET_AHBCFG_EP1( reg, val) \ + SET_FIELD( reg, val, AHBCFG_EP1_MASK, 12) + +#define AHBCFG_EP2_MASK 0x00070000U + +#define GET_AHBCFG_EP2( reg) \ + GET_FIELD( reg, AHBCFG_EP2_MASK, 16) + +#define SET_AHBCFG_EP2( reg, val) \ + SET_FIELD( reg, val, AHBCFG_EP2_MASK, 16) + +#define AHBCFG_EP3_MASK 0x00700000U + +#define GET_AHBCFG_EP3( reg) \ + GET_FIELD( reg, AHBCFG_EP3_MASK, 20) + +#define SET_AHBCFG_EP3( reg, val) \ + SET_FIELD( reg, val, AHBCFG_EP3_MASK, 20) + +#define AHBCFG_EP4_MASK 0x07000000U + +#define GET_AHBCFG_EP4( reg) \ + GET_FIELD( reg, AHBCFG_EP4_MASK, 24) + +#define SET_AHBCFG_EP4( reg, val) \ + SET_FIELD( reg, val, AHBCFG_EP4_MASK, 24) + +#define AHBCFG_EP5_MASK 0x70000000U + +#define GET_AHBCFG_EP5( reg) \ + GET_FIELD( reg, AHBCFG_EP5_MASK, 28) + +#define SET_AHBCFG_EP5( reg, val) \ + SET_FIELD( reg, val, AHBCFG_EP5_MASK, 28) + +/* EMC */ + +#define EMC_DYN_CTRL_CE 0x00000001U + +#define EMC_DYN_CTRL_CS 0x00000002U + +#define EMC_DYN_CTRL_CMD_NORMAL 0x00000000U + +#define EMC_DYN_CTRL_CMD_MODE 0x00000080U + +#define EMC_DYN_CTRL_CMD_PALL 0x00000100U + +#define EMC_DYN_CTRL_CMD_NOP 0x00000180U + #endif /* LIBBSP_ARM_LPC24XX_LPC24XX_H */ diff --git a/c/src/lib/libbsp/arm/lpc24xx/include/system-clocks.h b/c/src/lib/libbsp/arm/lpc24xx/include/system-clocks.h index 6bd8690ad6..ea2fa46699 100644 --- a/c/src/lib/libbsp/arm/lpc24xx/include/system-clocks.h +++ b/c/src/lib/libbsp/arm/lpc24xx/include/system-clocks.h @@ -25,6 +25,8 @@ extern "C" { #endif /* __cplusplus */ +void lpc24xx_micro_seconds_delay( unsigned us); + unsigned lpc24xx_cclk( void); void lpc24xx_set_pll( unsigned clksrc, unsigned nsel, unsigned msel, unsigned cclksel); |