From 93546b879f173a07f95133a7ebfcf2865dc398b7 Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Thu, 11 Dec 2014 15:16:34 -0600 Subject: [PATCH] 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. --- c/src/lib/libbsp/i386/pc386/Makefile.am | 5 ++++- c/src/lib/libbsp/i386/pc386/configure.ac | 5 +++++ c/src/lib/libbsp/i386/pc386/include/bsp.h | 2 ++ c/src/lib/libbsp/i386/pc386/startup/bspstart.c | 2 ++ 4 files changed, 13 insertions(+), 1 deletion(-) 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 */