summaryrefslogtreecommitdiffstats
path: root/bsps/arm/lpc24xx/include/bsp.h
diff options
context:
space:
mode:
Diffstat (limited to 'bsps/arm/lpc24xx/include/bsp.h')
-rw-r--r--bsps/arm/lpc24xx/include/bsp.h128
1 files changed, 128 insertions, 0 deletions
diff --git a/bsps/arm/lpc24xx/include/bsp.h b/bsps/arm/lpc24xx/include/bsp.h
new file mode 100644
index 0000000000..5424808841
--- /dev/null
+++ b/bsps/arm/lpc24xx/include/bsp.h
@@ -0,0 +1,128 @@
+/**
+ * @file
+ *
+ * @ingroup lpc24xx
+ *
+ * @brief Global BSP definitions.
+ */
+
+/*
+ * Copyright (c) 2008-2014 embedded brains GmbH. All rights reserved.
+ *
+ * embedded brains GmbH
+ * Dornierstr. 4
+ * 82178 Puchheim
+ * Germany
+ * <rtems@embedded-brains.de>
+ *
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.org/license/LICENSE.
+ */
+
+#ifndef LIBBSP_ARM_LPC24XX_BSP_H
+#define LIBBSP_ARM_LPC24XX_BSP_H
+
+#include <bspopts.h>
+
+#define BSP_FEATURE_IRQ_EXTENSION
+
+#define LPC24XX_PCLK (LPC24XX_CCLK / LPC24XX_PCLKDIV)
+
+#define LPC24XX_EMCCLK (LPC24XX_CCLK / LPC24XX_EMCCLKDIV)
+
+#define LPC24XX_MPU_REGION_COUNT 8
+
+#define BSP_ARMV7M_IRQ_PRIORITY_DEFAULT (29 << 3)
+
+#define BSP_ARMV7M_SYSTICK_PRIORITY (30 << 3)
+
+#define BSP_ARMV7M_SYSTICK_FREQUENCY LPC24XX_CCLK
+
+#ifndef ASM
+
+#include <rtems.h>
+
+#include <bsp/default-initial-extension.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+struct rtems_bsdnet_ifconfig;
+
+struct rtems_termios_device_context;
+
+/**
+ * @defgroup lpc24xx LPC24XX Support
+ *
+ * @ingroup bsp_arm
+ *
+ * @brief LPC24XX support package.
+ *
+ * @{
+ */
+
+/**
+ * @brief Network driver attach and detach function.
+ */
+int lpc_eth_attach_detach(
+ struct rtems_bsdnet_ifconfig *config,
+ int attaching
+);
+
+/**
+ * @brief Standard network driver attach and detach function.
+ */
+#define RTEMS_BSP_NETWORK_DRIVER_ATTACH lpc_eth_attach_detach
+
+/**
+ * @brief Standard network driver name.
+ */
+#define RTEMS_BSP_NETWORK_DRIVER_NAME "eth0"
+
+/**
+ * @brief Optimized idle task.
+ *
+ * This idle task sets the power mode to idle. This causes the processor clock
+ * to be stopped, while on-chip peripherals remain active. Any enabled
+ * interrupt from a peripheral or an external interrupt source will cause the
+ * processor to resume execution.
+ *
+ * To enable the idle task use the following in the system configuration:
+ *
+ * @code
+ * #include <bsp.h>
+ *
+ * #define CONFIGURE_INIT
+ *
+ * #define CONFIGURE_IDLE_TASK_BODY bsp_idle_thread
+ *
+ * #include <confdefs.h>
+ * @endcode
+ */
+void *bsp_idle_thread(uintptr_t ignored);
+
+#ifdef ARM_MULTILIB_ARCH_V4
+ #define BSP_CONSOLE_UART_BASE 0xe000c000
+#else
+ #define BSP_CONSOLE_UART_BASE 0x4000c000
+#endif
+
+void bsp_restart(void *addr);
+
+bool lpc24xx_uart_probe_1(struct rtems_termios_device_context *context);
+
+bool lpc24xx_uart_probe_2(struct rtems_termios_device_context *context);
+
+bool lpc24xx_uart_probe_3(struct rtems_termios_device_context *context);
+
+/** @} */
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* ASM */
+
+#endif /* LIBBSP_ARM_LPC24XX_BSP_H */