[OpenBIOS] [commit] r1259 - trunk/openbios-devel/drivers

repository service svn at openbios.org
Fri Feb 7 19:12:35 CET 2014


Author: mcayland
Date: Fri Feb  7 19:12:34 2014
New Revision: 1259
URL: http://tracker.coreboot.org/trac/openbios/changeset/1259

Log:
SPARC32: SparcStation 10/20 mode fix

* SS10/20 use 36bits addresses.
  When mapping peripherals, bits [35:32] are not always tied to 0.

* The probe-set-sbus forth word expects hex numbers for slots.
  SS5 uses slots 0 to 5, whereas SS10/20 uses the slot 0xF,
  and triggers the bug.

Signed-off-by: Olivier Danet <odanet at caramail.com>
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland at ilande.co.uk>

Modified:
   trunk/openbios-devel/drivers/iommu.c
   trunk/openbios-devel/drivers/sbus.c

Modified: trunk/openbios-devel/drivers/iommu.c
==============================================================================
--- trunk/openbios-devel/drivers/iommu.c	Fri Feb  7 19:12:30 2014	(r1258)
+++ trunk/openbios-devel/drivers/iommu.c	Fri Feb  7 19:12:34 2014	(r1259)
@@ -158,8 +158,8 @@
     ucell size, virt;
 
     size = POP();
-    POP();
     phys = POP();
+    phys = (phys << 32) + POP();
 
     virt = ofmem_map_io(phys, size);
 

Modified: trunk/openbios-devel/drivers/sbus.c
==============================================================================
--- trunk/openbios-devel/drivers/sbus.c	Fri Feb  7 19:12:30 2014	(r1258)
+++ trunk/openbios-devel/drivers/sbus.c	Fri Feb  7 19:12:34 2014	(r1259)
@@ -153,7 +153,7 @@
     fword("new-device");
     PUSH(0);
     PUSH(0);
-    snprintf(buf, 6, "%d,0", slot);
+    snprintf(buf, 6, "%x,0", slot);
     push_str(buf);
     fword("set-args");
     feval("['] tcx-driver-fcode 2 cells + 1 byte-load");
@@ -268,7 +268,7 @@
 
     PUSH(0);
     PUSH(0);
-    snprintf(buf, 6, "%d,%ld", slot, offset);
+    snprintf(buf, 6, "%x,%lx", slot, offset);
     push_str(buf);
     fword("2dup");
     fword("probe-self-sbus");



More information about the OpenBIOS mailing list