[OpenBIOS] r46 - openbios-devel/arch/sparc32

svn@openbios.org svn at openbios.org
Mon Jun 5 21:49:54 CEST 2006


Author: stepan
Date: 2006-06-05 21:49:53 +0200 (Mon, 05 Jun 2006)
New Revision: 46

Modified:
   openbios-devel/arch/sparc32/romvec.c
   openbios-devel/arch/sparc32/tree.fs
Log:
we're on the way: solaris fails a lot later now:


Modified: openbios-devel/arch/sparc32/romvec.c
===================================================================
--- openbios-devel/arch/sparc32/romvec.c	2006-06-05 19:41:28 UTC (rev 45)
+++ openbios-devel/arch/sparc32/romvec.c	2006-06-05 19:49:53 UTC (rev 46)
@@ -48,7 +48,7 @@
 static struct linux_arguments_v0 obp_arg;
 static const struct linux_arguments_v0 * const obp_argp = &obp_arg;
 
-static void (*synch_hook)(void);
+static void (*sync_hook)(void);
 
 static struct linux_romvec romvec0;
 
@@ -332,7 +332,7 @@
     fword("$call-method");
     ret = POP();
 
-    DPRINTF("obp_devwrite(fd 0x%x, buf %s, nbytes %d) = %d\n", dev_desc, buf, nbytes, ret);
+    //DPRINTF("obp_devwrite(fd 0x%x, buf %s, nbytes %d) = %d\n", dev_desc, buf, nbytes, ret);
 
     return nbytes;
 }
@@ -413,6 +413,22 @@
     return 0;
 }
 
+void v2_eval(char *str)
+{
+  // for now, move something to the stack so we
+  // don't get a stack underrun.
+  //
+  // FIXME: find out why solaris doesnt put its stuff on the stack
+  // 
+  fword("0");
+  fword("0");
+  DPRINTF("\n---------------\n");
+  DPRINTF("  %s", str);
+  DPRINTF("\n---------------\n");
+  feval(str);
+  DPRINTF("\n---------------\n");
+}
+
 void *
 init_openprom(unsigned long memsize, const char *cmdline, char boot_device)
 {
@@ -438,8 +454,8 @@
     // Linux wants a R/W romvec table
     romvec0.pv_magic_cookie = LINUX_OPPROM_MAGIC;
     romvec0.pv_romvers = 3;
-    romvec0.pv_plugin_revision = 77;
-    romvec0.pv_printrev = 0x10203;
+    romvec0.pv_plugin_revision = 2;
+    romvec0.pv_printrev = 0x20019;
     romvec0.pv_v0mem.v0_totphys = &ptphys;
     romvec0.pv_v0mem.v0_prommap = &ptmap;
     romvec0.pv_v0mem.v0_available = &ptavail;
@@ -458,8 +474,9 @@
     romvec0.pv_printf = (void (*)(const char *fmt, ...))printk;
     romvec0.pv_abort = obp_abort;
     romvec0.pv_halt = obp_halt;
-    romvec0.pv_synchook = &synch_hook;
+    romvec0.pv_synchook = &sync_hook;
     romvec0.pv_v0bootargs = &obp_argp;
+    romvec0.pv_fortheval.v2_eval = v2_eval;
     romvec0.pv_v2devops.v2_inst2pkg = obp_inst2pkg;
     romvec0.pv_v2devops.v2_dumb_mmap = obp_dumb_mmap;
     romvec0.pv_v2devops.v2_dumb_munmap = obp_dumb_munmap;
@@ -482,7 +499,10 @@
         break;
     case 'd':
         obp_arg.boot_dev_unit = 2;
-        obp_arg.argv[0] = "sd(0,2,0):d";
+	// FIXME: hardcoding this looks almost definitely wrong.
+	// With sd(0,2,0):b we get to see the solaris kernel though
+        //obp_arg.argv[0] = "sd(0,2,0):d";
+        obp_arg.argv[0] = "sd(0,2,0):b";
         // Fall through
     case 'c':
         obp_arg.boot_dev[0] = 's';

Modified: openbios-devel/arch/sparc32/tree.fs
===================================================================
--- openbios-devel/arch/sparc32/tree.fs	2006-06-05 19:41:28 UTC (rev 45)
+++ openbios-devel/arch/sparc32/tree.fs	2006-06-05 19:49:53 UTC (rev 46)
@@ -29,12 +29,32 @@
 finish-device
 
 new-device
-  " STP1012PGA" device-name
+  " FMI,MB86904" device-name
   " cpu" device-type
-  d# 256 encode-int " mmu-nctx" property
+
+  \ 0 encode-int 0 encode-int encode+ 0 encode-int encode+ " context-table" property
+  0 encode-int " implementation" property
+  d# 4 encode-int " version" property
+
   d# 32 encode-int " cache-line-size" property
   d# 512 encode-int " cache-nlines" property
-  1 encode-int " mid" property
+
+  d# 4096 encode-int " page-size" property
+
+  d# 16 encode-int " dcache-line-size" property
+  d# 512 encode-int " dcache-nlines" property
+  d# 1 encode-int " dcache-associativity" property
+
+  d# 16 encode-int " icache-line-size" property
+  d# 512 encode-int " icache-nlines" property
+  d# 1 encode-int " icache-associativity" property
+
+  d# 2 encode-int " ncaches" property
+  d# 256 encode-int " mmu-nctx" property
+  d# 8 encode-int " sparc-version" property
+  d# 37 encode-int " mask_rev" property
+
+  \ 1 encode-int " mid" property
 finish-device
 
 new-device




More information about the OpenBIOS mailing list