[OpenBIOS] r218 - openbios-devel/arch/sparc64

svn at openbios.org svn at openbios.org
Sat Aug 2 12:59:05 CEST 2008


Author: blueswirl
Date: 2008-08-02 12:59:05 +0200 (Sat, 02 Aug 2008)
New Revision: 218

Modified:
   openbios-devel/arch/sparc64/boot.c
   openbios-devel/arch/sparc64/ldscript
   openbios-devel/arch/sparc64/openbios.c
Log:
Finally fix the very obscure problem which prevented normal and especially
FCode boot: too small heap (used for Forth memory)!
Remove forced arch_init and boot hacks



Modified: openbios-devel/arch/sparc64/boot.c
===================================================================
--- openbios-devel/arch/sparc64/boot.c	2008-08-02 10:53:24 UTC (rev 217)
+++ openbios-devel/arch/sparc64/boot.c	2008-08-02 10:59:05 UTC (rev 218)
@@ -39,11 +39,11 @@
                 path = "/obio/SUNW,fdtwo";
                 break;
             case 'c':
-                path = "disk";
+                path = "/pci/isa/ide0/disk at 0,0:a";
                 break;
             default:
             case 'd':
-                path = "cdrom";
+                path = "/pci/isa/ide1/cdrom at 0,0:a";
                 break;
             case 'n':
                 path = "net";

Modified: openbios-devel/arch/sparc64/ldscript
===================================================================
--- openbios-devel/arch/sparc64/ldscript	2008-08-02 10:53:24 UTC (rev 217)
+++ openbios-devel/arch/sparc64/ldscript	2008-08-02 10:59:05 UTC (rev 218)
@@ -10,8 +10,8 @@
  */
 BASE_ADDR = 0x00000000ffd00000;
 
-/* 16KB heap and stack */
-HEAP_SIZE = 16384;
+/* 512KB heap and 16KB stack */
+HEAP_SIZE = 512 * 1024;
 STACK_SIZE = 16384;
 VMEM_SIZE = 128 * 1024;
 IOMEM_SIZE = 256 * 1024 + 768 * 1024;

Modified: openbios-devel/arch/sparc64/openbios.c
===================================================================
--- openbios-devel/arch/sparc64/openbios.c	2008-08-02 10:53:24 UTC (rev 217)
+++ openbios-devel/arch/sparc64/openbios.c	2008-08-02 10:59:05 UTC (rev 218)
@@ -52,8 +52,6 @@
 
 static uint8_t idprom[32];
 
-static const char *bootpath;
-
 struct cpudef {
     unsigned long iu_version;
     const char *name;
@@ -410,6 +408,7 @@
     unsigned char *nvptr = (unsigned char *)&nv_info;
     uint32_t size;
     const struct cpudef *cpu;
+    const char *bootpath;
 
     for (i = 0; i < sizeof(ohwcfg_v3_t); i++) {
         outb(i & 0xff, 0x74);
@@ -674,6 +673,7 @@
         device_end();
 
 	bind_func("platform-boot", boot );
+        printk("\n"); // XXX needed for boot, why?
 }
 
 int openbios(void)
@@ -723,10 +723,6 @@
 #endif
 
 	enterforth((xt_t)PC);
-        arch_init(); // XXX
-        printk("force boot\n");
-        push_str(bootpath);
-        boot(); // XXX
         printk("falling off...\n");
 	return 0;
 }




More information about the OpenBIOS mailing list