[OpenBIOS] [commit] r806 - trunk/openbios-devel/arch/sparc32
repository service
svn at openbios.org
Mon Jun 28 19:43:48 CEST 2010
Author: mcayland
Date: Mon Jun 28 19:43:48 2010
New Revision: 806
URL: http://tracker.coreboot.org/trac/openbios/changeset/806
Log:
Fix up SPARC32 boot from CDROM.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk>
Modified:
trunk/openbios-devel/arch/sparc32/boot.c
trunk/openbios-devel/arch/sparc32/openbios.c
Modified: trunk/openbios-devel/arch/sparc32/boot.c
==============================================================================
--- trunk/openbios-devel/arch/sparc32/boot.c Mon Jun 28 13:58:28 2010 (r805)
+++ trunk/openbios-devel/arch/sparc32/boot.c Mon Jun 28 19:43:48 2010 (r806)
@@ -157,38 +157,30 @@
int result;
if(!path) {
- push_str("boot-device");
- push_str("/options");
- fword("(find-dev)");
- POP();
- fword("get-package-property");
- if (!POP()) {
- path = pop_fstr_copy();
- } else {
- switch (boot_device) {
- case 'a':
- path = strdup("/obio/SUNW,fdtwo");
- oldpath = "fd()";
- break;
- case 'c':
- path = strdup("disk");
- oldpath = "sd(0,0,0):d";
- break;
- default:
- case 'd':
- path = strdup("cdrom");
- // FIXME: hardcoding this looks almost definitely wrong.
- // With sd(0,2,0):b we get to see the solaris kernel though
- //oldpath = "sd(0,2,0):d";
- oldpath = "sd(0,2,0):b";
- unit = 2;
- break;
- case 'n':
- path = strdup("net");
- oldpath = "le()";
- break;
- }
- }
+ /* No path specified, so grab defaults from firmware */
+ switch (boot_device) {
+ case 'a':
+ path = strdup("/obio/SUNW,fdtwo");
+ oldpath = "fd()";
+ break;
+ case 'c':
+ path = strdup("disk");
+ oldpath = "sd(0,0,0):d";
+ break;
+ default:
+ case 'd':
+ path = strdup("cdrom");
+ // FIXME: hardcoding this looks almost definitely wrong.
+ // With sd(0,2,0):b we get to see the solaris kernel though
+ //oldpath = "sd(0,2,0):d";
+ oldpath = "sd(0,2,0):b";
+ unit = 2;
+ break;
+ case 'n':
+ path = strdup("net");
+ oldpath = "le()";
+ break;
+ }
}
obp_arg.boot_dev_ctrl = 0;
Modified: trunk/openbios-devel/arch/sparc32/openbios.c
==============================================================================
--- trunk/openbios-devel/arch/sparc32/openbios.c Mon Jun 28 13:58:28 2010 (r805)
+++ trunk/openbios-devel/arch/sparc32/openbios.c Mon Jun 28 19:43:48 2010 (r806)
@@ -22,7 +22,6 @@
#include "boot.h"
#include "packages/video.h"
#define NO_QEMU_PROTOS
-#define NO_OPENBIOS_PROTOS
#include "arch/common/fw_cfg.h"
#define MEMORY_SIZE (128*1024) /* 16K ram for hosted system */
@@ -166,6 +165,8 @@
push_str("bootargs");
fword("property");
+ boot_device = fw_cfg_read_i16(FW_CFG_BOOT_DEVICE);
+
bind_func("platform-boot", boot );
}
More information about the OpenBIOS
mailing list