gem5
|
#include <dtb_object.hh>
Public Member Functions | |
virtual | ~DtbObject () |
bool | addBootCmdLine (const char *_args, size_t len) |
Adds the passed in Command Line options for the kernel to the proper location in the device tree. More... | |
Addr | findReleaseAddr () |
Parse the DTB file enough to find the provided release address and return it. More... | |
bool | loadAllSymbols (SymbolTable *symtab, Addr base=0, Addr offset=0, Addr addrMask=maxAddr) |
bool | loadGlobalSymbols (SymbolTable *symtab, Addr base=0, Addr offset=0, Addr addrMask=maxAddr) |
bool | loadLocalSymbols (SymbolTable *symtab, Addr base=0, Addr offset=0, Addr addrMask=maxAddr) |
Public Member Functions inherited from ObjectFile | |
virtual | ~ObjectFile () |
virtual bool | loadSections (PortProxy &mem_proxy, Addr mask=maxAddr, Addr offset=0) |
virtual bool | loadWeakSymbols (SymbolTable *symtab, Addr base=0, Addr offset=0, Addr mask=maxAddr) |
virtual ObjectFile * | getInterpreter () const |
virtual bool | relocatable () const |
virtual Addr | mapSize () const |
virtual void | updateBias (Addr bias_addr) |
virtual Addr | bias () const |
virtual bool | hasTLS () |
Arch | getArch () const |
OpSys | getOpSys () const |
Addr | entryPoint () const |
Addr | globalPointer () const |
Addr | textBase () const |
Addr | dataBase () const |
Addr | bssBase () const |
size_t | textSize () const |
size_t | dataSize () const |
size_t | bssSize () const |
void | setTextBase (Addr a) |
Static Public Member Functions | |
static ObjectFile * | tryFile (const std::string &fname, size_t len, uint8_t *data) |
Static function that tries to load file as a flattened device tree blob. More... | |
Protected Member Functions | |
DtbObject (const std::string &_filename, size_t _len, uint8_t *_data, Arch _arch, OpSys _opSys) | |
Protected Member Functions inherited from ObjectFile | |
ObjectFile (const std::string &_filename, size_t _len, uint8_t *_data, Arch _arch, OpSys _opSys) | |
bool | loadSection (Section *sec, PortProxy &mem_proxy, Addr mask, Addr offset=0) |
void | setGlobalPointer (Addr global_ptr) |
Protected Attributes | |
bool | fileDataMmapped |
Bool marking if this dtb file has replaced the original read in DTB file with a new modified buffer. More... | |
Protected Attributes inherited from ObjectFile | |
const std::string | filename |
uint8_t * | fileData |
size_t | len |
Arch | arch |
OpSys | opSys |
Addr | entry |
Addr | globalPtr |
Section | text |
Section | data |
Section | bss |
Additional Inherited Members | |
Public Types inherited from ObjectFile | |
enum | Arch { UnknownArch, Alpha, SPARC64, SPARC32, Mips, X86_64, I386, Arm64, Arm, Thumb, Power, Riscv } |
enum | OpSys { UnknownOpSys, Tru64, Linux, Solaris, LinuxArmOABI, FreeBSD } |
Static Public Attributes inherited from ObjectFile | |
static const Addr | maxAddr = std::numeric_limits<Addr>::max() |
Definition at line 41 of file dtb_object.hh.
|
protected |
Definition at line 54 of file dtb_object.cc.
References ObjectFile::Section::baseAddr, ObjectFile::bss, ObjectFile::data, ObjectFile::fileData, fileDataMmapped, ObjectFile::Section::fileImage, ObjectFile::len, ObjectFile::Section::size, and ObjectFile::text.
Referenced by tryFile().
|
virtual |
Definition at line 73 of file dtb_object.cc.
References ObjectFile::fileData, fileDataMmapped, and ObjectFile::len.
bool DtbObject::addBootCmdLine | ( | const char * | _args, |
size_t | len | ||
) |
Adds the passed in Command Line options for the kernel to the proper location in the device tree.
_args | command line to append |
len | length of the command line string |
Definition at line 87 of file dtb_object.cc.
References ObjectFile::fileData, fileDataMmapped, ObjectFile::Section::fileImage, ObjectFile::len, ArmISA::offset, ObjectFile::Section::size, ObjectFile::text, and warn.
Referenced by FreebsdArmSystem::initState(), and LinuxArmSystem::initState().
Addr DtbObject::findReleaseAddr | ( | ) |
Parse the DTB file enough to find the provided release address and return it.
Definition at line 156 of file dtb_object.cc.
References betoh(), ArmISA::fd, ObjectFile::fileData, ObjectFile::len, and ArmISA::offset.
Referenced by FreebsdArmSystem::initState().
|
virtual |
Implements ObjectFile.
Definition at line 175 of file dtb_object.cc.
|
virtual |
Implements ObjectFile.
Definition at line 182 of file dtb_object.cc.
|
virtual |
Implements ObjectFile.
Definition at line 190 of file dtb_object.cc.
|
static |
Static function that tries to load file as a flattened device tree blob.
fname | path to file |
len | length of file |
data | mmap'ed data buffer containing file contents |
Definition at line 43 of file dtb_object.cc.
References DtbObject(), ObjectFile::UnknownArch, and ObjectFile::UnknownOpSys.
Referenced by createObjectFile().
|
protected |
Bool marking if this dtb file has replaced the original read in DTB file with a new modified buffer.
Definition at line 50 of file dtb_object.hh.
Referenced by addBootCmdLine(), DtbObject(), and ~DtbObject().