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
This commit is contained in:
Ali Saidi 2004-03-17 16:12:13 -05:00
parent 256a1ac478
commit 1eb0c9626a
2 changed files with 28 additions and 0 deletions

View file

@ -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

View file

@ -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);