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