dev: Use the new ByteOrder param type in VirtIO devices
VirtIO devices currently request their endianness from the System object. Instead of explicitly querying the system for its endianness, expose the device's endianness as a param. This param defaults to the endianness of a parent object using the Parent proxy (in practice the system). Change-Id: If4f84ff61f4d064bdd015a881790f5af03de6535 Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/33296 Tested-by: kokoro <noreply+kokoro@google.com> Reviewed-by: Gabe Black <gabeblack@google.com>
This commit is contained in:
@@ -50,6 +50,7 @@ class VirtIODeviceBase(SimObject):
|
||||
subsystem = Param.UInt8(0x00, "VirtIO subsystem ID")
|
||||
|
||||
system = Param.System(Parent.any, "system object")
|
||||
byte_order = Param.ByteOrder(Parent.byte_order, "Device byte order")
|
||||
|
||||
class VirtIODummyDevice(VirtIODeviceBase):
|
||||
type = 'VirtIODummyDevice'
|
||||
|
||||
@@ -37,10 +37,10 @@
|
||||
|
||||
#include "dev/virtio/base.hh"
|
||||
|
||||
#include "base/trace.hh"
|
||||
#include "debug/VIO.hh"
|
||||
#include "params/VirtIODeviceBase.hh"
|
||||
#include "params/VirtIODummyDevice.hh"
|
||||
#include "sim/system.hh"
|
||||
|
||||
VirtDescriptor::VirtDescriptor(PortProxy &_memProxy, ByteOrder bo,
|
||||
VirtQueue &_queue, Index descIndex)
|
||||
@@ -326,7 +326,7 @@ VirtIODeviceBase::VirtIODeviceBase(Params *params, DeviceId id,
|
||||
size_t config_size, FeatureBits features)
|
||||
: SimObject(params),
|
||||
guestFeatures(0),
|
||||
byteOrder(params->system->getGuestByteOrder()),
|
||||
byteOrder(params->byte_order),
|
||||
deviceId(id), configSize(config_size), deviceFeatures(features),
|
||||
_deviceStatus(0), _queueSelect(0)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user