[OpenBIOS] [commit] r846 - in trunk/openbios-devel: arch/sparc32 arch/sparc64 packages
repository service
svn at openbios.org
Mon Aug 9 21:21:23 CEST 2010
Author: blueswirl
Date: Mon Aug 9 21:21:22 2010
New Revision: 846
URL: http://tracker.coreboot.org/trac/openbios/changeset/846
Log:
sparc: fix partition probe, try two partitions
If the size of the partition currently being probed is zero,
fail the probe. This lets Forth code try the next candidate from
boot-device list.
Add explicit ':d' (Sparc32, 'f' for Sparc64) partition to
CDROM probe list, so we can remove the ugly forced partition logic.
Signed-off-by: Blue Swirl <blauwirbel at gmail.com>
Modified:
trunk/openbios-devel/arch/sparc32/openbios.c
trunk/openbios-devel/arch/sparc64/openbios.c
trunk/openbios-devel/packages/sun-parts.c
Modified: trunk/openbios-devel/arch/sparc32/openbios.c
==============================================================================
--- trunk/openbios-devel/arch/sparc32/openbios.c Sun Aug 8 23:20:15 2010 (r845)
+++ trunk/openbios-devel/arch/sparc32/openbios.c Mon Aug 9 21:21:22 2010 (r846)
@@ -784,7 +784,7 @@
break;
default:
case 'd':
- push_str("cdrom");
+ push_str("cdrom:d cdrom");
break;
case 'n':
push_str("net");
Modified: trunk/openbios-devel/arch/sparc64/openbios.c
==============================================================================
--- trunk/openbios-devel/arch/sparc64/openbios.c Sun Aug 8 23:20:15 2010 (r845)
+++ trunk/openbios-devel/arch/sparc64/openbios.c Mon Aug 9 21:21:22 2010 (r846)
@@ -480,7 +480,7 @@
break;
default:
case 'd':
- push_str("cdrom");
+ push_str("cdrom:f cdrom");
break;
case 'n':
push_str("net");
Modified: trunk/openbios-devel/packages/sun-parts.c
==============================================================================
--- trunk/openbios-devel/packages/sun-parts.c Sun Aug 8 23:20:15 2010 (r845)
+++ trunk/openbios-devel/packages/sun-parts.c Mon Aug 9 21:21:22 2010 (r846)
@@ -175,10 +175,6 @@
__be32_to_cpu(p->partitions[i].num_sectors),
__be16_to_cpu(p->infos[i].id),
__be16_to_cpu(p->infos[i].flags));
- if (parnum < 0) {
- if (p->partitions[i].num_sectors != 0 && p->infos[i].id != 0)
- parnum = i;
- }
}
if (parnum < 0)
@@ -192,6 +188,10 @@
di->offs_hi = offs >> BITS;
di->offs_lo = offs & (ucell) -1;
size = (long long)__be32_to_cpu(p->partitions[parnum].num_sectors) * bs;
+ if (size == 0) {
+ DPRINTF("Partition size is 0, exiting\n");
+ RET(0);
+ }
di->size_hi = size >> BITS;
di->size_lo = size & (ucell) -1;
di->type = __be16_to_cpu(p->infos[parnum].id);
More information about the OpenBIOS
mailing list