Go to the documentation of this file.
49 #include "params/ArmFsWorkload.hh"
80 for (
const auto &bl :
p->boot_loader) {
81 std::unique_ptr<Loader::ObjectFile> bl_obj;
84 fatal_if(!bl_obj,
"Could not read bootloader: %s", bl);
91 "Can't find a matching boot loader / kernel combination!");
123 fatal_if(!arm_sys->params()->flags_addr,
124 "flags_addr must be set with bootloader");
126 fatal_if(!arm_sys->params()->gic_cpu_addr && is_gic_v2,
127 "gic_cpu_addr must be set with bootloader");
129 for (
auto *tc: arm_sys->threads) {
130 if (!arm_sys->highestELIs64())
133 tc->setIntReg(4, arm_sys->params()->gic_cpu_addr);
134 tc->setIntReg(5, arm_sys->params()->flags_addr);
139 if (!arm_sys->highestELIs64())
149 if (bl->getArch() == obj->
getArch())
162 ArmFsWorkloadParams::create()
bool write(const PortProxy &proxy) const
Loader::ObjectFile * getBootLoader(Loader::ObjectFile *const obj)
Get a boot loader that matches the kernel.
void returnFromFuncIn(ThreadContext *tc) override
PortProxy physProxy
Port to physical memory used for writing object files into ram at boot.
Addr loadAddrOffset() const
ObjectFile * createObjectFile(const std::string &fname, bool raw)
ArmFsWorkloadParams Params
void initState() override
initState() is called on each SimObject when not restoring from a checkpoint.
Loader::ObjectFile * bootldr
Pointer to the bootloader object.
virtual MemoryImage buildImage() const =0
BaseGic * getGIC() const
Get a pointer to the system's GIC.
virtual bool supportsVersion(GicVersion version)=0
Check if version supported.
SymbolTable debugSymbolTable
Global unified debugging symbol table (for target).
void initState() override
initState() is called on each SimObject when not restoring from a checkpoint.
const SymbolTable & symtab() const
ThreadContext is the external interface to all thread state for anything outside of the CPU.
virtual void pcStateNoRecord(const TheISA::PCState &val)=0
Addr kernelEntry
This differs from entry since it takes into account where the kernel is loaded in memory (with loadAd...
std::vector< std::unique_ptr< Loader::ObjectFile > > bootLoaders
Bootloaders.
Loader::ObjectFile * kernelObj
SymbolTablePtr globals() const
virtual TheISA::PCState pcState() const =0
GenericISA::DelaySlotPCState< MachInst > PCState
Addr loadAddrMask() const
virtual CheckerCPU * getCheckerCpuPtr()=0
const int ReturnAddressReg
bool insert(const Symbol &symbol)
bool inAArch64(ThreadContext *tc)
virtual RegVal readIntReg(RegIndex reg_idx) const =0
#define fatal_if(cond,...)
Conditional fatal macro that checks the supplied condition and only causes a fatal error if the condi...
#define ULL(N)
uint64_t constant
Generated on Wed Sep 30 2020 14:01:59 for gem5 by doxygen 1.8.17