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:
parent
256a1ac478
commit
1eb0c9626a
2 changed files with 28 additions and 0 deletions
|
@ -300,6 +300,20 @@ LinuxSystem::LinuxSystem(const string _name, const uint64_t _init_param,
|
||||||
strcpy(osflags, boot_osflags.c_str());
|
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))
|
if (kernelSymtab->findAddress("panic", addr))
|
||||||
kernelPanicEvent->schedule(addr);
|
kernelPanicEvent->schedule(addr);
|
||||||
else
|
else
|
||||||
|
|
|
@ -124,6 +124,20 @@ Tru64System::Tru64System(const string _name, const uint64_t _init_param,
|
||||||
strcpy(osflags, boot_osflags.c_str());
|
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
|
#ifdef DEBUG
|
||||||
if (kernelSymtab->findAddress("panic", addr))
|
if (kernelSymtab->findAddress("panic", addr))
|
||||||
kernelPanicEvent->schedule(addr);
|
kernelPanicEvent->schedule(addr);
|
||||||
|
|
Loading…
Reference in a new issue