From 1eb0c9626a575dfc9f2e32243610e76614c331d2 Mon Sep 17 00:00:00 2001 From: Ali Saidi Date: Wed, 17 Mar 2004 16:12:13 -0500 Subject: Updated kern/* code so we can have one console code and the simulator changes the HWRPB to the correct system type/variation. kern/linux/linux_system.cc: kern/tru64/tru64_system.cc: Added code to change system type/variation so that we can have one console --HG-- extra : convert_revision : 5f35f7d965419cd3038e2e85e05a20884b2f6068 --- kern/linux/linux_system.cc | 14 ++++++++++++++ kern/tru64/tru64_system.cc | 14 ++++++++++++++ 2 files changed, 28 insertions(+) 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 diff --git a/kern/tru64/tru64_system.cc b/kern/tru64/tru64_system.cc index b03d7bf26..f8dda6f84 100644 --- a/kern/tru64/tru64_system.cc +++ b/kern/tru64/tru64_system.cc @@ -124,6 +124,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); -- cgit v1.2.3