-
I am trying to connect an ethernet device to ARM SMMU in a full system simulation. Documentation on SMMU is little to none and I only was able to find the comments given in the attachSmmu function. I tried using attachSmmu as below to connect the ethernet device in ARM dist_bigLITTLE.py example gem5/configs/example/arm/dist_bigLITTLE.py Line 138 in f29bfc0 addEthernet function before change:
addEthernet function after change:
I basically replaced
As far as I understood, the cause for this error is that the |
Beta Was this translation helpful? Give feedback.
Replies: 2 comments 10 replies
-
@andysan : Do you know anything about this? |
Beta Was this translation helpful? Give feedback.
-
The main problem here seems is that you always need to call There are two solutions you could try. The simplest solution would be to just add a call to The solution that should definitely work would be to do something along these lines:
The code above first instantiates the SMMU without connecting it to any devices. This avoids wiring up the PIO port of the Ethernet device twice (there is a call to |
Beta Was this translation helpful? Give feedback.
There should be no need to include the PCI Ethernet device in the device tree since PCI is a discoverable bus. The SMMU in a real system would be connected to the PCI root complex and use stream IDs to distinguish different PCI cards. I.e., the SMMU needs to be associated with the PCI root complex. I don't think we automatically generate the right DT fragments to do that automatically at the moment. The relevant kernel documentation can be found here: