summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Johns <chrisj@rtems.org>2016-05-07 08:16:49 +1000
committerChris Johns <chrisj@rtems.org>2016-05-11 11:45:02 +1000
commit02ef5d9a05c4c3633722f52a68fa1ece4fa42922 (patch)
tree9f053b4e283b4adc9a23aaaa63f3d1d5fadd201c
parenti386/pc386: Fix interrupt support. (diff)
downloadrtems-02ef5d9a05c4c3633722f52a68fa1ece4fa42922.tar.bz2
i386/pc386: Add --ide-disable boot command line option.
-rw-r--r--c/src/lib/libbsp/i386/pc386/ide/idecfg.c108
1 files changed, 57 insertions, 51 deletions
diff --git a/c/src/lib/libbsp/i386/pc386/ide/idecfg.c b/c/src/lib/libbsp/i386/pc386/ide/idecfg.c
index f0f5bfe7cb..371a6eea53 100644
--- a/c/src/lib/libbsp/i386/pc386/ide/idecfg.c
+++ b/c/src/lib/libbsp/i386/pc386/ide/idecfg.c
@@ -74,66 +74,72 @@ unsigned long IDE_Controller_Count;
void bsp_ide_cmdline_init(void)
{
- bool ide1 = IDE1_DEFAULT;
- bool ide2 = IDE2_DEFAULT;
- const char* ide;
-
- /*
- * Can have:
- * --ide=0,1
- */
- ide = bsp_cmdline_arg ("--ide=");
-
- if (ide)
- {
- int i;
+ const char* ide_disable;
+
+ ide_disable = bsp_cmdline_arg ("--ide-disable");
+
+ if (ide_disable == NULL) {
+ bool ide1 = IDE1_DEFAULT;
+ bool ide2 = IDE2_DEFAULT;
+ const char* ide;
+
/*
- * If a command line option exists remove the defaults.
+ * Can have:
+ * --ide=0,1
*/
- ide1 = ide2 = false;
+ ide = bsp_cmdline_arg ("--ide=");
- ide += sizeof ("--ide=") - 1;
-
- for (i = 0; i < 3; i++)
+ if (ide)
{
- switch (ide[i])
+ int i;
+ /*
+ * If a command line option exists remove the defaults.
+ */
+ ide1 = ide2 = false;
+
+ ide += sizeof ("--ide=") - 1;
+
+ for (i = 0; i < 3; i++)
{
- case '0':
- ide1 = true;
- break;
- case '1':
- ide2 = true;
- break;
- case '2':
- case '3':
- case '4':
- case '5':
- case '6':
- case '7':
- case '8':
- case '9':
- case ',':
- break;
- default:
- break;
+ switch (ide[i])
+ {
+ case '0':
+ ide1 = true;
+ break;
+ case '1':
+ ide2 = true;
+ break;
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9':
+ case ',':
+ break;
+ default:
+ break;
+ }
}
}
- }
- if (ide2 && !ide1)
- IDE_Controller_Table[0] = IDE_Controller_Table[1];
+ if (ide2 && !ide1)
+ IDE_Controller_Table[0] = IDE_Controller_Table[1];
- if (ide1)
- IDE_Controller_Count++;
- if (ide2)
- IDE_Controller_Count++;
+ if (ide1)
+ IDE_Controller_Count++;
+ if (ide2)
+ IDE_Controller_Count++;
- /*
- * Allow the user to get the initialise to print probing
- * type information.
- */
- ide = bsp_cmdline_arg ("--ide-show");
+ /*
+ * Allow the user to get the initialise to print probing
+ * type information.
+ */
+ ide = bsp_cmdline_arg ("--ide-show");
- if (ide)
- pc386_ide_show = true;
+ if (ide)
+ pc386_ide_show = true;
+ }
}