summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/arm/lpc24xx/include
diff options
context:
space:
mode:
Diffstat (limited to 'c/src/lib/libbsp/arm/lpc24xx/include')
-rw-r--r--c/src/lib/libbsp/arm/lpc24xx/include/bsp.h13
-rw-r--r--c/src/lib/libbsp/arm/lpc24xx/include/lpc24xx.h91
-rw-r--r--c/src/lib/libbsp/arm/lpc24xx/include/system-clocks.h2
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);