system.cc (3125:febd811bccc6) | system.cc (4762:c94e103c83ad) |
---|---|
1/* 2 * Copyright (c) 2004-2005 The Regents of The University of Michigan 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions are 7 * met: redistributions of source code must retain the above copyright 8 * notice, this list of conditions and the following disclaimer; --- 21 unchanged lines hidden (view full) --- 30 31/** 32 * @file 33 * Modifications for the FreeBSD kernel. 34 * Based on kern/linux/linux_system.cc. 35 * 36 */ 37 | 1/* 2 * Copyright (c) 2004-2005 The Regents of The University of Michigan 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions are 7 * met: redistributions of source code must retain the above copyright 8 * notice, this list of conditions and the following disclaimer; --- 21 unchanged lines hidden (view full) --- 30 31/** 32 * @file 33 * Modifications for the FreeBSD kernel. 34 * Based on kern/linux/linux_system.cc. 35 * 36 */ 37 |
38#include "arch/alpha/system.hh" | |
39#include "arch/alpha/freebsd/system.hh" | 38#include "arch/alpha/freebsd/system.hh" |
39#include "arch/alpha/system.hh" 40#include "arch/isa_traits.hh" 41#include "arch/vtophys.hh" |
|
40#include "base/loader/symtab.hh" 41#include "cpu/thread_context.hh" 42#include "mem/physical.hh" 43#include "mem/port.hh" | 42#include "base/loader/symtab.hh" 43#include "cpu/thread_context.hh" 44#include "mem/physical.hh" 45#include "mem/port.hh" |
44#include "arch/isa_traits.hh" 45#include "sim/builder.hh" | |
46#include "sim/byteswap.hh" | 46#include "sim/byteswap.hh" |
47#include "arch/vtophys.hh" | |
48 49#define TIMER_FREQUENCY 1193180 50 51using namespace std; 52using namespace AlphaISA; 53 54FreebsdAlphaSystem::FreebsdAlphaSystem(Params *p) 55 : AlphaSystem(p) --- 31 unchanged lines hidden (view full) --- 87 88void 89FreebsdAlphaSystem::SkipCalibrateClocksEvent::process(ThreadContext *tc) 90{ 91 SkipFuncEvent::process(tc); 92 ((FreebsdAlphaSystem *)tc->getSystemPtr())->doCalibrateClocks(tc); 93} 94 | 47 48#define TIMER_FREQUENCY 1193180 49 50using namespace std; 51using namespace AlphaISA; 52 53FreebsdAlphaSystem::FreebsdAlphaSystem(Params *p) 54 : AlphaSystem(p) --- 31 unchanged lines hidden (view full) --- 86 87void 88FreebsdAlphaSystem::SkipCalibrateClocksEvent::process(ThreadContext *tc) 89{ 90 SkipFuncEvent::process(tc); 91 ((FreebsdAlphaSystem *)tc->getSystemPtr())->doCalibrateClocks(tc); 92} 93 |
95 96BEGIN_DECLARE_SIM_OBJECT_PARAMS(FreebsdAlphaSystem) 97 98 Param<Tick> boot_cpu_frequency; 99 SimObjectParam<PhysicalMemory *> physmem; 100 SimpleEnumParam<System::MemoryMode> mem_mode; 101 102 Param<string> kernel; 103 Param<string> console; 104 Param<string> pal; 105 106 Param<string> boot_osflags; 107 Param<string> readfile; 108 Param<string> symbolfile; 109 Param<unsigned int> init_param; 110 111 Param<uint64_t> system_type; 112 Param<uint64_t> system_rev; 113 114END_DECLARE_SIM_OBJECT_PARAMS(FreebsdAlphaSystem) 115 116BEGIN_INIT_SIM_OBJECT_PARAMS(FreebsdAlphaSystem) 117 118 INIT_PARAM(boot_cpu_frequency, "Frequency of the boot CPU"), 119 INIT_PARAM(physmem, "phsyical memory"), 120 INIT_ENUM_PARAM(mem_mode, "Memory Mode, (1=atomic, 2=timing)", 121 System::MemoryModeStrings), 122 INIT_PARAM(kernel, "file that contains the kernel code"), 123 INIT_PARAM(console, "file that contains the console code"), 124 INIT_PARAM(pal, "file that contains palcode"), 125 INIT_PARAM_DFLT(boot_osflags, "flags to pass to the kernel during boot", 126 "a"), 127 INIT_PARAM_DFLT(readfile, "file to read startup script from", ""), 128 INIT_PARAM_DFLT(symbolfile, "file to read symbols from", ""), 129 INIT_PARAM_DFLT(init_param, "numerical value to pass into simulator", 0), 130 INIT_PARAM_DFLT(system_type, "Type of system we are emulating", 34), 131 INIT_PARAM_DFLT(system_rev, "Revision of system we are emulating", 1<<10) 132 133END_INIT_SIM_OBJECT_PARAMS(FreebsdAlphaSystem) 134 135CREATE_SIM_OBJECT(FreebsdAlphaSystem) | 94FreebsdAlphaSystem * 95FreebsdAlphaSystemParams::create() |
136{ | 96{ |
137 AlphaSystem::Params *p = new AlphaSystem::Params; 138 p->name = getInstanceName(); 139 p->boot_cpu_frequency = boot_cpu_frequency; 140 p->physmem = physmem; 141 p->mem_mode = mem_mode; 142 p->kernel_path = kernel; 143 p->console_path = console; 144 p->palcode = pal; 145 p->boot_osflags = boot_osflags; 146 p->init_param = init_param; 147 p->readfile = readfile; 148 p->symbolfile = symbolfile; 149 p->system_type = system_type; 150 p->system_rev = system_rev; 151 return new FreebsdAlphaSystem(p); | 97 return new FreebsdAlphaSystem(this); |
152} | 98} |
153 154REGISTER_SIM_OBJECT("FreebsdAlphaSystem", FreebsdAlphaSystem) 155 | |