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

svn at openbios.org svn at openbios.org
Wed Jul 16 13:48:43 CEST 2008


Author: blueswirl
Date: 2008-07-16 13:48:43 +0200 (Wed, 16 Jul 2008)
New Revision: 203

Modified:
   openbios-devel/arch/sparc64/openbios.c
Log:
Add trap table setting function to client interface

Modified: openbios-devel/arch/sparc64/openbios.c
===================================================================
--- openbios-devel/arch/sparc64/openbios.c	2008-07-16 11:47:23 UTC (rev 202)
+++ openbios-devel/arch/sparc64/openbios.c	2008-07-16 11:48:43 UTC (rev 203)
@@ -179,6 +179,19 @@
     { "map",                mmu_map               },
 };
 
+/*
+  ( addr -- ? )
+*/
+static void
+set_trap_table(void)
+{
+    unsigned long addr;
+
+    addr = POP();
+    asm("wrpr %0, %%tba\n"
+        : : "r" (addr));
+}
+
 static void cpu_generic_init(const struct cpudef *cpu)
 {
     unsigned long iu_version;
@@ -244,6 +257,11 @@
     fword("encode-int");
     push_str("mmu");
     fword("property");
+
+    // Trap table
+    push_str("/packages/client-iface");
+    fword("find-device");
+    bind_func("SUNW,set-trap-table", set_trap_table);
 }
 
 static const struct cpudef sparc_defs[] = {




More information about the OpenBIOS mailing list