[U-Boot-Users] [PATCH] Fix bugs in cmd_ide.c and cmd_scsi.c
Denis Peter
d.peter at mpl.ch
Tue Mar 27 16:23:57 CEST 2007
Fix bugs in diskboot, scsiboot and ide_read
Fix bug introduced by "Fix get_partition_info() parameter error in all
other calls" from 2005-03-04 in cmd_ide.c and cmd_scsi.c, which prevented
to use diskboot or scsiboot form another device than 0.
Fix bug introduced by "Use "void*" not "unsigned long *" for block dev
read_write pointers" introduced on 2007-02-20, which prevented to read
more than one block form IDE.
Signed-off-by: Denis Peter <d.peter at mpl.ch>
---
commit 4816c887ff56b0cc16b142f6fda921683989300e
tree 10339e77b60290529bd0da693af86eca58cac083
parent 44ba464b99001f8bd1c456a1e9d59726252f707a
author Denis Peter <d.peter at mpl.ch> Tue, 27 Mar 2007 16:09:52 +0000
committer Denis Peter <d.peter at mpl.ch> Tue, 27 Mar 2007 16:09:52 +0000
common/cmd_ide.c | 6 ++++--
common/cmd_scsi.c | 2 +-
2 files changed, 5 insertions(+), 3 deletions(-)
diff --git a/common/cmd_ide.c b/common/cmd_ide.c
index 2e185cc..5a1cb45 100644
--- a/common/cmd_ide.c
+++ b/common/cmd_ide.c
@@ -423,7 +423,8 @@ int do_diskboot (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
}
part = simple_strtoul(++ep, NULL, 16);
}
- if (get_partition_info (ide_dev_desc, part, &info)) {
+ if (get_partition_info (&ide_dev_desc[dev], part, &info)) {
+ printf ("error reading partinfo\n");
SHOW_BOOT_PROGRESS (-1);
return 1;
}
@@ -1233,8 +1234,9 @@ static void ide_ident (block_dev_desc_t *dev_desc)
/* ------------------------------------------------------------------------- */
-ulong ide_read (int device, lbaint_t blknr, ulong blkcnt, void *buffer)
+ulong ide_read (int device, lbaint_t blknr, ulong blkcnt, void *vbuffer)
{
+ ulong *buffer = (ulong *)vbuffer;
ulong n = 0;
unsigned char c;
unsigned char pwrsave=0; /* power save */
diff --git a/common/cmd_scsi.c b/common/cmd_scsi.c
index da36ed9..00b84fa 100644
--- a/common/cmd_scsi.c
+++ b/common/cmd_scsi.c
@@ -248,7 +248,7 @@ int do_scsiboot (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
}
part = simple_strtoul(++ep, NULL, 16);
}
- if (get_partition_info (scsi_dev_desc, part, &info)) {
+ if (get_partition_info (&scsi_dev_desc[dev], part, &info)) {
printf("error reading partinfo\n");
return 1;
}
More information about the U-Boot
mailing list