46#include "params/X86FsLinux.hh"
74 const std::string dmesg_output =
name() +
".dmesg";
76 if (
params().exit_on_kernel_panic) {
83 "panic",
"Kernel panic in simulated system.",
84 dmesg_output,
params().on_panic
92 const std::string dmesg_output =
name() +
".dmesg";
93 if (
params().exit_on_kernel_oops) {
100 "oops_exit",
"Kernel oops in simulated system.",
101 dmesg_output,
params().on_oops
111 auto phys_proxy =
system->physProxy;
114 const Addr realModeData = 0x90200;
121 const Addr commandLineBuff = 0x90000;
123 const Addr commandLinePointer = realModeData + 0x228;
126 "Command line \"%s\" is longer than %d characters.",
128 phys_proxy.writeString(commandLineBuff,
commandLine.c_str());
132 uint32_t guestCommandLineBuff =
htole((uint32_t)commandLineBuff);
133 phys_proxy.writeBlob(commandLinePointer, &guestCommandLineBuff,
134 sizeof(guestCommandLineBuff));
166 const Addr e820MapNrPointer = realModeData + 0x1e8;
169 const Addr e820MapPointer = realModeData + 0x2d0;
171 e820Table->writeTo(phys_proxy, e820MapNrPointer, e820MapPointer);
const std::string commandLine
T * addKernelFuncEvent(const char *lbl, Args... args)
Add a function-based event to a kernel symbol.
virtual std::string name() const
PCEvent * kernelOopsPcEvent
void initState() override
initState() is called on each SimObject when not restoring from a checkpoint.
void addExitOnKernelPanicEvent()
void startup() override
startup() is the final initialization call before simulation.
void addExitOnKernelOopsEvent()
PCEvent * kernelPanicPcEvent
void initState() override
initState() is called on each SimObject when not restoring from a checkpoint.
FsWorkload(const Params &p)
#define panic_if(cond,...)
Conditional panic macro that checks the supplied condition and only panics if the condition is true a...
const Params & params() const
virtual void startup()
startup() is the final initialization call before simulation.
This is exposed globally, independent of the ISA.
Copyright (c) 2024 Arm Limited All rights reserved.
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
PortProxy Object Declaration.