diff options
Diffstat (limited to 'kern/tru64')
-rw-r--r-- | kern/tru64/tru64_system.cc | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/kern/tru64/tru64_system.cc b/kern/tru64/tru64_system.cc index 0717bcbbe..ebd78c58b 100644 --- a/kern/tru64/tru64_system.cc +++ b/kern/tru64/tru64_system.cc @@ -125,6 +125,20 @@ Tru64System::Tru64System(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) = 12; // Tlaser + *(uint64_t*)(hwprb+0x58) = (2<<1); + } + 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"); + + #ifdef DEBUG if (kernelSymtab->findAddress("panic", addr)) kernelPanicEvent->schedule(addr); |