Hi all, I am trying to run an ARM full system simulation with a BasicPioDevice added onto the RealView Platform. I am interested in interfacing it via ioremap. The device is set up like so in src/dev/arm/RealView.py (with the necessary C++ header/implementation files):
class CusDevice(BasicPioDevice): type = ‘CusDevice’ cxx_header = "dev/arm/cus_device.hh” pio_addr = Param.Addr(0x10020000, "Address for custom device.”) I then added it to the list of off-chip devices in RealView.py so it would be attached to the iobus, which is confirmed in the config.ini file: [system.realview.cus_device] type=CusDevice … pio_addr=268566528 pio_latency=100000 power_model= system=system pio=system.iobus.master[9] Then to access this device, I am using a kernel module that calls ioremap on the device’s address. Ideally I want to read/write from /dev/cus_device to access it, but this is where I run into the fatal error: root@aarch64-gem5:~/# echo h | /dev/cus_device fatal: Unable to find destination for [0x10020000 : 0x10020000] on system.iobus I have already confirmed that 0x10020000 is within an IO memory region (more specifically, 0x10000000-0x13ffffff are reserved for gem5-specific peripherals but only 0x10000000-0x1001ffff are actually used before adding the custom device). In case it is relevant, I am using the Linux 5.4.0 kernel with an Ubuntu 18.04 LTS image. Accessing the custom device at address 0x10020000 on the iobus is the precise goal, so given that writing to /dev/cus_device tries to write data to the correct address on the iobus, and I know cus_device.pio is attached to the iobus.master with the correct address, I am not sure why gem5 is unable to find the destination. Any ideas on how to approach this issue would be greatly appreciated. Best regards, Joshua Klein
_______________________________________________ gem5-users mailing list -- gem5-users@gem5.org To unsubscribe send an email to gem5-users-le...@gem5.org %(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s