[OpenBIOS] [commit] r1193 - in trunk/openbios-devel: arch/sparc32 drivers

repository service svn at openbios.org
Sat Jul 27 13:22:02 CEST 2013


Author: mcayland
Date: Sat Jul 27 13:22:02 2013
New Revision: 1193
URL: http://tracker.coreboot.org/trac/openbios/changeset/1193

Log:
SPARC32: switch TCX driver over to FCode

Currently we cannot read the FCode from the card, so for the moment simply
execute the bytecode directly.

Signed-off-by: Mark Cave-Ayland <mark.cave-ayland at ilande.co.uk>

Modified:
   trunk/openbios-devel/arch/sparc32/build.xml
   trunk/openbios-devel/arch/sparc32/init.fs
   trunk/openbios-devel/arch/sparc32/tree.fs
   trunk/openbios-devel/drivers/build.xml
   trunk/openbios-devel/drivers/sbus.c
   trunk/openbios-devel/drivers/tcx.fs

Modified: trunk/openbios-devel/arch/sparc32/build.xml
==============================================================================
--- trunk/openbios-devel/arch/sparc32/build.xml	Sat Jul 27 13:21:59 2013	(r1192)
+++ trunk/openbios-devel/arch/sparc32/build.xml	Sat Jul 27 13:22:02 2013	(r1193)
@@ -3,6 +3,7 @@
  <dictionary name="openbios-sparc32" init="openbios">
   <object source="tree.fs" target="forth"/>
   <object source="init.fs" target="forth"/>
+  <object source="QEMU,tcx.bin" target="fcode" condition="DRIVER_SBUS"/>
  </dictionary>
 
  <library name="sparc32" type="static" target="target">

Modified: trunk/openbios-devel/arch/sparc32/init.fs
==============================================================================
--- trunk/openbios-devel/arch/sparc32/init.fs	Sat Jul 27 13:21:59 2013	(r1192)
+++ trunk/openbios-devel/arch/sparc32/init.fs	Sat Jul 27 13:22:02 2013	(r1193)
@@ -45,3 +45,9 @@
 : obmem ( -- space )
   0
   ;
+
+\ Load TCX FCode driver blob
+[IFDEF] CONFIG_DRIVER_SBUS
+  -1 value tcx-driver-fcode
+  " QEMU,tcx.bin" $encode-file to tcx-driver-fcode
+[THEN]

Modified: trunk/openbios-devel/arch/sparc32/tree.fs
==============================================================================
--- trunk/openbios-devel/arch/sparc32/tree.fs	Sat Jul 27 13:21:59 2013	(r1192)
+++ trunk/openbios-devel/arch/sparc32/tree.fs	Sat Jul 27 13:22:02 2013	(r1193)
@@ -1,3 +1,4 @@
+include config.fs
 
 " /" find-device
   2 encode-int " #address-cells" property

Modified: trunk/openbios-devel/drivers/build.xml
==============================================================================
--- trunk/openbios-devel/drivers/build.xml	Sat Jul 27 13:21:59 2013	(r1192)
+++ trunk/openbios-devel/drivers/build.xml	Sat Jul 27 13:22:02 2013	(r1193)
@@ -29,8 +29,9 @@
   <object source="pci.fs" condition="DRIVER_PCI"/>
   <object source="sbus.fs" condition="DRIVER_SBUS"/>
   <object source="esp.fs" condition="DRIVER_ESP"/>
-  <object source="tcx.fs" condition="DRIVER_SBUS"/>
   <object source="vga.fs" condition="DRIVER_VGA"/>
  </dictionary>
 
+ <fcode source="tcx.fs" name="QEMU,tcx.bin" condition="DRIVER_SBUS" />
+
 </build>

Modified: trunk/openbios-devel/drivers/sbus.c
==============================================================================
--- trunk/openbios-devel/drivers/sbus.c	Sat Jul 27 13:21:59 2013	(r1192)
+++ trunk/openbios-devel/drivers/sbus.c	Sat Jul 27 13:22:02 2013	(r1193)
@@ -342,7 +342,10 @@
     }
 
     bind_func("hw-set-color", tcx_hw_set_color);
-    feval("['] qemu-tcx-driver-init is-install");
+
+    /* Currently we don't have an SBus probe routine, so execute FCode
+       directly */
+    feval("['] tcx-driver-fcode 2 cells + 1 byte-load");
 
     chosen = find_dev("/chosen");
     push_str(path);

Modified: trunk/openbios-devel/drivers/tcx.fs
==============================================================================
--- trunk/openbios-devel/drivers/tcx.fs	Sat Jul 27 13:21:59 2013	(r1192)
+++ trunk/openbios-devel/drivers/tcx.fs	Sat Jul 27 13:22:02 2013	(r1193)
@@ -5,9 +5,42 @@
 \ the QEMU TCX graphics card.
 \
 
-: qemu-tcx-driver-init ( -- )
+fcode-version3
+
+\
+\ Instead of using fixed values for the framebuffer address and the width
+\ and height, grab the ones passed in by QEMU/generated by OpenBIOS
+\
+
+: qemu-video-addr
+  " qemu-video-addr" $find if
+    cell+ @
+  then
+;
+
+: qemu-video-width
+  " qemu-video-width" $find if
+    cell+ @
+  then
+;
+
+: qemu-video-height
+  " qemu-video-height" $find if
+    cell+ @
+  then
+;
+
+: qemu-tcx-driver-install ( -- )
   qemu-video-addr to frame-buffer-adr
   default-font set-font
   qemu-video-width qemu-video-height over char-width / over char-height /
   fb8-install
 ;
+
+: qemu-tcx-driver-init
+  ['] qemu-tcx-driver-install is-install
+;
+
+qemu-tcx-driver-init
+
+end0



More information about the OpenBIOS mailing list