New function to kernel_disk_workload to allow new disk device location
Added a parameter to kernel_disk_workload which allows users to change the disk device location. Maintained the previous way of setting a disk device as the default, however added a function to allow users to override this default
This commit is contained in:
@@ -354,7 +354,7 @@ class ArmBoard(ArmSystem, AbstractBoard, KernelDiskWorkload):
|
||||
)
|
||||
|
||||
@overrides(KernelDiskWorkload)
|
||||
def get_disk_device(self):
|
||||
def _get_default_disk_device(self):
|
||||
return "/dev/vda"
|
||||
|
||||
@overrides(KernelDiskWorkload)
|
||||
|
||||
@@ -539,7 +539,7 @@ class LupvBoard(AbstractSystemBoard, KernelDiskWorkload):
|
||||
return ["console=ttyLIO0", "root={root_value}", "rw"]
|
||||
|
||||
@overrides(KernelDiskWorkload)
|
||||
def get_disk_device(self) -> str:
|
||||
def set_default_disk_device(self) -> str:
|
||||
return "/dev/lda"
|
||||
|
||||
@overrides(KernelDiskWorkload)
|
||||
|
||||
@@ -39,6 +39,7 @@ import os
|
||||
from pathlib import Path
|
||||
|
||||
import m5
|
||||
from m5 import warn
|
||||
|
||||
|
||||
class KernelDiskWorkload:
|
||||
@@ -84,11 +85,25 @@ class KernelDiskWorkload:
|
||||
"""
|
||||
raise NotImplementedError
|
||||
|
||||
@abstractmethod
|
||||
def get_disk_device(self) -> str:
|
||||
"""
|
||||
Get the disk device, e.g., "/dev/sda", where the disk image is placed.
|
||||
|
||||
:returns: The disk device.
|
||||
"""
|
||||
if self._disk_device is None:
|
||||
warn("No disk device set, ie where the disk image is located. Defaulting to board disk device")
|
||||
return _get_default_disk_device()
|
||||
else:
|
||||
return self._disk_device
|
||||
|
||||
|
||||
|
||||
@abstractmethod
|
||||
def _get_default_disk_device(self) -> str:
|
||||
"""
|
||||
Set a default disk device, in case user does not specify a disk device.
|
||||
|
||||
:returns: The disk device.
|
||||
"""
|
||||
raise NotImplementedError
|
||||
@@ -139,6 +154,7 @@ class KernelDiskWorkload:
|
||||
kernel: KernelResource,
|
||||
disk_image: DiskImageResource,
|
||||
bootloader: Optional[BootloaderResource] = None,
|
||||
_disk_device: Optional[str] = None,
|
||||
readfile: Optional[str] = None,
|
||||
readfile_contents: Optional[str] = None,
|
||||
kernel_args: Optional[List[str]] = None,
|
||||
@@ -171,6 +187,9 @@ class KernelDiskWorkload:
|
||||
# Abstract board. This function will not work otherwise.
|
||||
assert isinstance(self, AbstractBoard)
|
||||
|
||||
# Set the disk device
|
||||
self._disk_device = _disk_device
|
||||
|
||||
# If we are setting a workload of this type, we need to run as a
|
||||
# full-system simulation.
|
||||
self._set_fullsystem(True)
|
||||
@@ -192,6 +211,7 @@ class KernelDiskWorkload:
|
||||
if bootloader is not None:
|
||||
self._bootloader = [bootloader.get_local_path()]
|
||||
|
||||
|
||||
# Set the readfile.
|
||||
if readfile:
|
||||
self.readfile = readfile
|
||||
|
||||
@@ -467,7 +467,7 @@ class RiscvBoard(AbstractSystemBoard, KernelDiskWorkload):
|
||||
fdt.writeDtbFile(os.path.join(outdir, "device.dtb"))
|
||||
|
||||
@overrides(KernelDiskWorkload)
|
||||
def get_disk_device(self):
|
||||
def _get_default_disk_device(self):
|
||||
return "/dev/vda"
|
||||
|
||||
@overrides(KernelDiskWorkload)
|
||||
|
||||
@@ -296,7 +296,7 @@ class X86Board(AbstractSystemBoard, KernelDiskWorkload):
|
||||
]
|
||||
|
||||
@overrides(KernelDiskWorkload)
|
||||
def get_disk_device(self):
|
||||
def _get_default_disk_device(self):
|
||||
return "/dev/hda"
|
||||
|
||||
@overrides(KernelDiskWorkload)
|
||||
|
||||
@@ -539,7 +539,7 @@ class RISCVMatchedBoard(
|
||||
fdt.writeDtbFile(os.path.join(outdir, "device.dtb"))
|
||||
|
||||
@overrides(KernelDiskWorkload)
|
||||
def get_disk_device(self):
|
||||
def _get_default_disk_device(self):
|
||||
return "/dev/vda"
|
||||
|
||||
@overrides(KernelDiskWorkload)
|
||||
|
||||
Reference in New Issue
Block a user