[OpenBIOS] [commit] r673 - trunk/openbios-devel/arch/sparc64
repository service
svn at openbios.org
Sun Jan 31 13:16:47 CET 2010
Author: blueswirl
Date: Sun Jan 31 13:16:46 2010
New Revision: 673
URL: http://tracker.coreboot.org/trac/openbios/changeset/673
Log:
sparc64: implement reset
Signed-off-by: Blue Swirl <blauwirbel at gmail.com>
Modified:
trunk/openbios-devel/arch/sparc64/openbios.c
Modified: trunk/openbios-devel/arch/sparc64/openbios.c
==============================================================================
--- trunk/openbios-devel/arch/sparc64/openbios.c Sat Jan 30 21:58:40 2010 (r672)
+++ trunk/openbios-devel/arch/sparc64/openbios.c Sun Jan 31 13:16:46 2010 (r673)
@@ -92,6 +92,17 @@
: : "r" (addr));
}
+/* Reset control register is defined in 17.2.7.3 of US IIi User Manual */
+static void
+sparc64_reset_all(void)
+{
+ unsigned long addr = 0x1fe0000f020ULL;
+ unsigned long val = 1 << 29;
+
+ asm("stxa %0, [%1] 0x15\n\t"
+ : : "r" (val), "r" (addr) : "memory");
+}
+
static void cpu_generic_init(const struct cpudef *cpu, uint32_t clock_frequency)
{
unsigned long iu_version;
@@ -146,6 +157,11 @@
push_str("/openprom/client-services");
fword("find-device");
bind_func("SUNW,set-trap-table", set_trap_table);
+
+ // Reset
+ bind_func("sparc64-reset-all", sparc64_reset_all);
+ push_str("' sparc64-reset-all to reset-all");
+ fword("eval");
}
static const struct cpudef sparc_defs[] = {
More information about the OpenBIOS
mailing list