summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/i386/pc386/include
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@oarcorp.com>2014-12-14 16:27:06 -0600
committerJoel Sherrill <joel.sherrill@oarcorp.com>2015-01-04 13:44:57 -0600
commit7cdabc49ca3828c9aeeb6beca4a0beeb71bf23f1 (patch)
tree128664532dfebd50115c56f7c94d206c482a6c5e /c/src/lib/libbsp/i386/pc386/include
parentuntar.c: Coverity ID 26151 and reformat (diff)
downloadrtems-7cdabc49ca3828c9aeeb6beca4a0beeb71bf23f1.tar.bz2
pc386: Add Edison base support
The current support for the Edison supports a single polled UART for input and output plus a simulated clock tick. The activities forward for supporting the Edison have been posted on the RTEMS mailing lists and at: http://rtemsramblings.blogspot.com/2014/12/intel-edison-and-rtems-road-forward.html
Diffstat (limited to 'c/src/lib/libbsp/i386/pc386/include')
-rw-r--r--c/src/lib/libbsp/i386/pc386/include/bsp.h27
1 files changed, 25 insertions, 2 deletions
diff --git a/c/src/lib/libbsp/i386/pc386/include/bsp.h b/c/src/lib/libbsp/i386/pc386/include/bsp.h
index db0879920c..f537eb693d 100644
--- a/c/src/lib/libbsp/i386/pc386/include/bsp.h
+++ b/c/src/lib/libbsp/i386/pc386/include/bsp.h
@@ -189,8 +189,31 @@ void rtems_irq_mngt_init(void); /* from 'irq_init.c' */
void bsp_size_memory(void); /* from 'bspstart.c' */
-void Clock_driver_install_handler(void); /* from 'ckinit.c' */
-void Clock_driver_support_initialize_hardware(void); /* from 'ckinit.c' */
+#if (BSP_IS_EDISON == 0)
+ void Clock_driver_install_handler(void); /* from 'ckinit.c' */
+ void Clock_driver_support_initialize_hardware(void); /* from 'ckinit.c' */
+#else
+ /**
+ * @defgroup edison_bsp Clock Tick Support
+ *
+ * @ingroup i386_pc386
+ *
+ * @brief Clock Tick Support Package
+ */
+ Thread clock_driver_sim_idle_body(uintptr_t);
+ #define BSP_IDLE_TASK_BODY clock_driver_sim_idle_body
+ /*
+ * hack to kill some time. Hopefully hitting a hardware register is slower
+ * than an empty loop.
+ */
+ #define BSP_CLOCK_DRIVER_DELAY() \
+ do { \
+ uint64_t _i = 2500000; \
+ while (_i) { \
+ _i--; \
+ } \
+ } while ( 0 )
+#endif /* edison */
void kbd_reset_setup(char *str, int *ints); /* from 'pc_keyb.c' */
size_t read_aux(char * buffer, size_t count); /* from 'ps2_mouse.c' */