summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@oarcorp.com>2014-12-11 15:16:34 -0600
committerJoel Sherrill <joel.sherrill@oarcorp.com>2015-01-04 13:44:56 -0600
commit93546b879f173a07f95133a7ebfcf2865dc398b7 (patch)
treea87552030a5226cfeb075b56d38ec86dba2e7749
parentpc386: Add BSP_ENABLE_VGA BSP option (diff)
downloadrtems-93546b879f173a07f95133a7ebfcf2865dc398b7.tar.bz2
pc386: Add BSP_ENABLE_IDE BSP option
This allows the IDE support to be completely disabled. It is needed to prevent hangs on some hardware. In particular, the Intel Edison where it is not present.
-rw-r--r--c/src/lib/libbsp/i386/pc386/Makefile.am5
-rw-r--r--c/src/lib/libbsp/i386/pc386/configure.ac5
-rw-r--r--c/src/lib/libbsp/i386/pc386/include/bsp.h2
-rw-r--r--c/src/lib/libbsp/i386/pc386/startup/bspstart.c2
4 files changed, 13 insertions, 1 deletions
diff --git a/c/src/lib/libbsp/i386/pc386/Makefile.am b/c/src/lib/libbsp/i386/pc386/Makefile.am
index 3f3448564f..78d0c69e02 100644
--- a/c/src/lib/libbsp/i386/pc386/Makefile.am
+++ b/c/src/lib/libbsp/i386/pc386/Makefile.am
@@ -164,8 +164,11 @@ libbsp_a_SOURCES += ../../shared/src/irq-server.c
# timer
libbsp_a_SOURCES += timer/timer.c timer/timerisr.S
+if HAS_IDE
# ide
-libbsp_a_SOURCES += ide/idecfg.c ide/ide.c
+libbsp_a_SOURCES += ide/ide.c
+libbsp_a_SOURCES += ide/idecfg.c
+endif
if HAS_SMP
libbsp_a_SOURCES += ../../i386/shared/smp/getcpuid.c
diff --git a/c/src/lib/libbsp/i386/pc386/configure.ac b/c/src/lib/libbsp/i386/pc386/configure.ac
index bdedb0c52f..96812c8b70 100644
--- a/c/src/lib/libbsp/i386/pc386/configure.ac
+++ b/c/src/lib/libbsp/i386/pc386/configure.ac
@@ -22,6 +22,11 @@ RTEMS_BSPOPTS_HELP([BSP_ENABLE_VGA],
[Set if the VGA and keyboard console support is enabled.])
AM_CONDITIONAL(RTEMS_VGA,[test "$BSP_ENABLE_VGA" = "1"])
+RTEMS_BSPOPTS_SET([BSP_ENABLE_IDE],[*],[1])
+RTEMS_BSPOPTS_HELP([BSP_ENABLE_IDE],
+[Set if IDE support is enabled.])
+AM_CONDITIONAL(HAS_IDE,[test "$BSP_ENABLE_IDE" = "1"])
+
RTEMS_BSPOPTS_SET([USE_COM1_AS_CONSOLE],[*],[0])
RTEMS_BSPOPTS_HELP([USE_COM1_AS_CONSOLE],
[Determines, whether the console will be associated with the standard
diff --git a/c/src/lib/libbsp/i386/pc386/include/bsp.h b/c/src/lib/libbsp/i386/pc386/include/bsp.h
index 26d4fa47a1..db0879920c 100644
--- a/c/src/lib/libbsp/i386/pc386/include/bsp.h
+++ b/c/src/lib/libbsp/i386/pc386/include/bsp.h
@@ -218,6 +218,7 @@ void register_leds( /* from 'keyboard.c' */
const char* bsp_cmdline(void);
const char* bsp_cmdline_arg(const char* arg);
+#if BSP_ENABLE_IDE
/*
* IDE command line parsing.
*/
@@ -227,6 +228,7 @@ void bsp_ide_cmdline_init(void);
* indicate, that BSP has IDE driver
*/
#define RTEMS_BSP_HAS_IDE_DRIVER
+#endif
/* GDB stub stuff */
void init_remote_gdb( void );
diff --git a/c/src/lib/libbsp/i386/pc386/startup/bspstart.c b/c/src/lib/libbsp/i386/pc386/startup/bspstart.c
index 4c81473b26..77b05ad281 100644
--- a/c/src/lib/libbsp/i386/pc386/startup/bspstart.c
+++ b/c/src/lib/libbsp/i386/pc386/startup/bspstart.c
@@ -79,7 +79,9 @@ static void bsp_start_default( void )
Clock_driver_install_handler();
+#if BSP_ENABLE_IDE
bsp_ide_cmdline_init();
+#endif
} /* bsp_start_default */