gem5-users@gem5.org

The gem5 Users mailing list

View all threads

Example for connecting Ethernet PCI device through ARM SMMU

CR
Chathura Rajapaksha
Mon, Aug 28, 2023 5:54 PM

Hi All,

I am trying to attach an ethernet device to ARM SMMU and use it in the
dist setup where two ARM systems are connected through the ethernet
link.
I am new to gem5 internals and I appreciate any help with this.

I notice the use of attachSMMU at
https://github.com/ARM-software/ATP-Engine/blob/be1066029d6256626b37be004e2a663fbc29f37e/gem5/baremetal_atp.py#L76
I could not find any other examples on SMMU, please let me know if you
have any examples.

I tried to change the ethernet device connection similarly in ARM
bigLITTLE example configuration as below:

Original function:
https://github.com/gem5/gem5/blob/f29bfc0640c88a79eb7f94454ce31b3237ec0066/configs/example/arm/dist_bigLITTLE.py#L138

Before change:
def addEthernet(system, options):
# create NIC
dev = IGbE_e1000()
system.attach_pci(dev)
system.ethernet = dev
...
...

After change:
def addEthernet(system, options):
# create NIC
dev = IGbE_e1000()
system.realview.attachSmmu([dev],system.iobus)
system.ethernet = dev
...
...

With this change, I am getting the following warning and error:
warn: system.realview.smmu adopting orphan SimObject param 'device_interfaces'
AttributeError: Can't resolve proxy 'any' of type 'PciHost' from
'system.ethernet'
Error in unproxying param 'host' of system.ethernet

Again, I am new to gem5 internals and the above change might be
completely wrong.
I really appreciate any help in resolving this issue.

Thanks,
Chathura

Hi All, I am trying to attach an ethernet device to ARM SMMU and use it in the dist setup where two ARM systems are connected through the ethernet link. I am new to gem5 internals and I appreciate any help with this. I notice the use of attachSMMU at https://github.com/ARM-software/ATP-Engine/blob/be1066029d6256626b37be004e2a663fbc29f37e/gem5/baremetal_atp.py#L76 I could not find any other examples on SMMU, please let me know if you have any examples. I tried to change the ethernet device connection similarly in ARM bigLITTLE example configuration as below: Original function: https://github.com/gem5/gem5/blob/f29bfc0640c88a79eb7f94454ce31b3237ec0066/configs/example/arm/dist_bigLITTLE.py#L138 Before change: def addEthernet(system, options): # create NIC dev = IGbE_e1000() system.attach_pci(dev) system.ethernet = dev ... ... After change: def addEthernet(system, options): # create NIC dev = IGbE_e1000() system.realview.attachSmmu([dev],system.iobus) system.ethernet = dev ... ... With this change, I am getting the following warning and error: warn: system.realview.smmu adopting orphan SimObject param 'device_interfaces' AttributeError: Can't resolve proxy 'any' of type 'PciHost' from 'system.ethernet' Error in unproxying param 'host' of system.ethernet Again, I am new to gem5 internals and the above change might be completely wrong. I really appreciate any help in resolving this issue. Thanks, Chathura
HP
Harshil Patel
Thu, Aug 31, 2023 4:58 AM

Hi,
Thank you for asking the question. This question is already in discussion
on gem5 GitHub: https://github.com/orgs/gem5/discussions/239.I hope you
find the answer to your question there.

Regards,
HarshilPatel

On Mon, Aug 28, 2023 at 10:57 AM Chathura Rajapaksha via gem5-users <
gem5-users@gem5.org> wrote:

Hi All,

I am trying to attach an ethernet device to ARM SMMU and use it in the
dist setup where two ARM systems are connected through the ethernet
link.
I am new to gem5 internals and I appreciate any help with this.

I notice the use of attachSMMU at

https://github.com/ARM-software/ATP-Engine/blob/be1066029d6256626b37be004e2a663fbc29f37e/gem5/baremetal_atp.py#L76
I could not find any other examples on SMMU, please let me know if you
have any examples.

I tried to change the ethernet device connection similarly in ARM
bigLITTLE example configuration as below:

Original function:

https://github.com/gem5/gem5/blob/f29bfc0640c88a79eb7f94454ce31b3237ec0066/configs/example/arm/dist_bigLITTLE.py#L138

Before change:
def addEthernet(system, options):
# create NIC
dev = IGbE_e1000()
system.attach_pci(dev)
system.ethernet = dev
...
...

After change:
def addEthernet(system, options):
# create NIC
dev = IGbE_e1000()
system.realview.attachSmmu([dev],system.iobus)
system.ethernet = dev
...
...

With this change, I am getting the following warning and error:
warn: system.realview.smmu adopting orphan SimObject param
'device_interfaces'
AttributeError: Can't resolve proxy 'any' of type 'PciHost' from
'system.ethernet'
Error in unproxying param 'host' of system.ethernet

Again, I am new to gem5 internals and the above change might be
completely wrong.
I really appreciate any help in resolving this issue.

Thanks,
Chathura


gem5-users mailing list -- gem5-users@gem5.org
To unsubscribe send an email to gem5-users-leave@gem5.org

Hi, Thank you for asking the question. This question is already in discussion on gem5 GitHub: https://github.com/orgs/gem5/discussions/239.I hope you find the answer to your question there. Regards, HarshilPatel On Mon, Aug 28, 2023 at 10:57 AM Chathura Rajapaksha via gem5-users < gem5-users@gem5.org> wrote: > Hi All, > > I am trying to attach an ethernet device to ARM SMMU and use it in the > dist setup where two ARM systems are connected through the ethernet > link. > I am new to gem5 internals and I appreciate any help with this. > > I notice the use of attachSMMU at > > https://github.com/ARM-software/ATP-Engine/blob/be1066029d6256626b37be004e2a663fbc29f37e/gem5/baremetal_atp.py#L76 > I could not find any other examples on SMMU, please let me know if you > have any examples. > > I tried to change the ethernet device connection similarly in ARM > bigLITTLE example configuration as below: > > Original function: > > https://github.com/gem5/gem5/blob/f29bfc0640c88a79eb7f94454ce31b3237ec0066/configs/example/arm/dist_bigLITTLE.py#L138 > > Before change: > def addEthernet(system, options): > # create NIC > dev = IGbE_e1000() > system.attach_pci(dev) > system.ethernet = dev > ... > ... > > After change: > def addEthernet(system, options): > # create NIC > dev = IGbE_e1000() > system.realview.attachSmmu([dev],system.iobus) > system.ethernet = dev > ... > ... > > With this change, I am getting the following warning and error: > warn: system.realview.smmu adopting orphan SimObject param > 'device_interfaces' > AttributeError: Can't resolve proxy 'any' of type 'PciHost' from > 'system.ethernet' > Error in unproxying param 'host' of system.ethernet > > Again, I am new to gem5 internals and the above change might be > completely wrong. > I really appreciate any help in resolving this issue. > > Thanks, > Chathura > _______________________________________________ > gem5-users mailing list -- gem5-users@gem5.org > To unsubscribe send an email to gem5-users-leave@gem5.org >