summaryrefslogtreecommitdiff
path: root/kern/linux/linux_system.cc
diff options
context:
space:
mode:
authorLisa Hsu <hsul@eecs.umich.edu>2004-03-22 13:21:18 -0500
committerLisa Hsu <hsul@eecs.umich.edu>2004-03-22 13:21:18 -0500
commitddeaa4d5e158522f6106fa0afd1dcd52c1da1f21 (patch)
tree8c695a46ce8077f43e3d8d6631a75caea7036d70 /kern/linux/linux_system.cc
parent25a07e746759b04223c71ea32530a2cc90be4bc3 (diff)
parent3bc851b7dbe529dc1e45c9ab9082b941fad9465c (diff)
downloadgem5-ddeaa4d5e158522f6106fa0afd1dcd52c1da1f21.tar.xz
Merge zizzer:/bk/linux into zower.eecs.umich.edu:/z/hsul/work/bk/linux
--HG-- extra : convert_revision : b4e2fc55ec9cd0caa7cdf02de8a61c66e8b35c67
Diffstat (limited to 'kern/linux/linux_system.cc')
-rw-r--r--kern/linux/linux_system.cc14
1 files changed, 14 insertions, 0 deletions
diff --git a/kern/linux/linux_system.cc b/kern/linux/linux_system.cc
index d863ffd0a..12c1f5c32 100644
--- a/kern/linux/linux_system.cc
+++ b/kern/linux/linux_system.cc
@@ -300,6 +300,20 @@ LinuxSystem::LinuxSystem(const string _name, const uint64_t _init_param,
strcpy(osflags, boot_osflags.c_str());
}
+ if (consoleSymtab->findAddress("xxm_rpb", addr)) {
+ Addr paddr = vtophys(physmem, addr);
+ char *hwprb = (char *)physmem->dma_addr(paddr, sizeof(uint64_t));
+
+ if (hwprb) {
+ *(uint64_t*)(hwprb+0x50) = 34; // Tsunami
+ *(uint64_t*)(hwprb+0x58) = (1<<10);
+ }
+ else
+ panic("could not translate hwprb addr to set system type/variation\n");
+
+ } else
+ panic("could not find hwprb to set system type/variation\n");
+
if (kernelSymtab->findAddress("panic", addr))
kernelPanicEvent->schedule(addr);
else