diff options
Diffstat (limited to 'src/stream/fs/blockdev.c')
-rw-r--r-- | src/stream/fs/blockdev.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/src/stream/fs/blockdev.c b/src/stream/fs/blockdev.c index 336f435a25..aa818dd496 100644 --- a/src/stream/fs/blockdev.c +++ b/src/stream/fs/blockdev.c @@ -2,6 +2,7 @@ #include <fs/fs.h> #include <arch/io.h> #include <string.h> +#include <delay.h> #include <pc80/ide.h> #include <arch/byteorder.h> @@ -229,7 +230,7 @@ static int parse_device_name(const char *name, int *type, int *drive, int devopen(const char *name, int *reopen) { - int type, drive, part; + int type, drive, part, i; uint64_t offset, length; uint32_t disk_size = 0; @@ -258,6 +259,15 @@ int devopen(const char *name, int *reopen) switch (type) { case DISK_IDE: + printk_debug ("Trying polled ide\n"); + printk_debug ("Waiting for ide disks to spin up\n"); + printk_notice ("This is a hard coded delay and longer than necessary.\n"); + for (i = 0; i < 2; i++) { + printk_notice ("."); + delay(1); + } + printk_info ("\n"); + if (ide_probe(drive) != 0) { printk_debug("failed to open ide\n"); return 0; |