gem5-users@gem5.org

The gem5 Users mailing list

View all threads

ARM FS emulation with nic support

W
wasd003
Wed, Jun 29, 2022 11:59 AM

Hi, I'm trying to get nic supported on ARM full system emulation with the
help of gem5-dist.sh. But I've gotten following error during the boot
process:

*build/ARM/mem/xbar.cc:430: fatal: testsys.iobus has two ports
responding within range [0x2f000000:0x2f000004]: *

testsys.realview.cf_ctrl.pio
*testsys.realview.cf_ctrl.pio *

My Gem5 Version: v21.2.1.1
commitID: e4fae58da6c044b6efec62392ff99f343ce67947

Following is the command line I used to boot gem5:
${GEM_PATH}/util/dist/gem5-dist.sh
-n 2
-x ${GEM_PATH}/build/ARM/gem5.opt
-s ${GEM_PATH}/configs/dist/sw.py
-f ${GEM_PATH}/configs/example/fs.py
-r ${LOG_DIR}
--fs-args
--bootloader="${BOOT}"
--kernel="${KERNEL}"
--disk-image="${DISK}"
--cpu-type=AtomicSimpleCPU
--num-cpus=4
--machine-type=VExpress_EMM64
--m5-args
--debug-flags=DistEthernet \

I've searched  email archive and found a similar question to my situation:
https://www.mail-archive.com/gem5-users@gem5.org/msg20033.html.
I tried to follow the instructions and turned --machine-type from
VExpress_EMM64 to VExpress_GEM5_V1, but error message:* "object
'VExpress_GEM5_V1' has no attribute 'ethernet' " *was raised.

If it helps, I've also tried to debug this problem, and found that 2 addr
ranges ([0x2f000000:0x2f000008] and [0x2f000000:0x2f000004]) collided.
These 2 addr ranges come from BARs array of  PioPort.In the constructor of
PciDevice, each element of the BARs array will be assigned the same value:
pciPioBase which value equals 0x2f000000. I suppose that is why the above 2
addr ranges both start with 0x2f000000.

Any ideas to fix the issue?

Thanks.

Hi, I'm trying to get nic supported on ARM full system emulation with the help of gem5-dist.sh. But I've gotten following error during the boot process: *build/ARM/mem/xbar.cc:430: fatal: testsys.iobus has two ports responding within range [0x2f000000:0x2f000004]: * *testsys.realview.cf_ctrl.pio* *testsys.realview.cf_ctrl.pio * My Gem5 Version: v21.2.1.1 commitID: e4fae58da6c044b6efec62392ff99f343ce67947 Following is the command line I used to boot gem5: ${GEM_PATH}/util/dist/gem5-dist.sh \ -n 2 \ -x ${GEM_PATH}/build/ARM/gem5.opt \ -s ${GEM_PATH}/configs/dist/sw.py \ -f ${GEM_PATH}/configs/example/fs.py \ -r ${LOG_DIR} \ --fs-args \ --bootloader="${BOOT}" \ --kernel="${KERNEL}" \ --disk-image="${DISK}" \ --cpu-type=AtomicSimpleCPU \ --num-cpus=4 \ --machine-type=VExpress_EMM64 \ --m5-args \ --debug-flags=DistEthernet \ I've searched email archive and found a similar question to my situation: https://www.mail-archive.com/gem5-users@gem5.org/msg20033.html. I tried to follow the instructions and turned --machine-type from VExpress_EMM64 to VExpress_GEM5_V1, but error message:* "object 'VExpress_GEM5_V1' has no attribute 'ethernet' " *was raised. If it helps, I've also tried to debug this problem, and found that 2 addr ranges ([0x2f000000:0x2f000008] and [0x2f000000:0x2f000004]) collided. These 2 addr ranges come from BARs array of PioPort.In the constructor of PciDevice, each element of the BARs array will be assigned the same value: pciPioBase which value equals 0x2f000000. I suppose that is why the above 2 addr ranges both start with 0x2f000000. Any ideas to fix the issue? Thanks.
GT
Giacomo Travaglini
Thu, Jun 30, 2022 11:14 AM

Hi,

I have never used gem5-dist.sh but could you try to use as a configuration script

configs/example/arm/starter_fs.py

instead of

configs/example/fs.py ?

You would also need to add the ethernet controller as a PCI device to starter_fs.py (it is a one-liner change, add IGbE_e1000(InterruptLine=1, InterruptPin=1) to the system.pci_devices list.

Let me know if it works,

Giacomo

From: wasd003 chenhuiji2000@gmail.com
Date: Wednesday, 29 June 2022 at 13:01
To: gem5-users@gem5.org gem5-users@gem5.org
Subject: [gem5-users] ARM FS emulation with nic support
Hi, I'm trying to get nic supported on ARM full system emulation with the help of gem5-dist.sh. But I've gotten following error during the boot process:

build/ARM/mem/xbar.cc:430: fatal: testsys.iobus has two ports responding within range [0x2f000000:0x2f000004]:
testsys.realview.cf_ctrl.pio
testsys.realview.cf_ctrl.pio

My Gem5 Version: v21.2.1.1
commitID: e4fae58da6c044b6efec62392ff99f343ce67947

Following is the command line I used to boot gem5:
${GEM_PATH}/util/dist/gem5-dist.sh
-n 2
-x ${GEM_PATH}/build/ARM/gem5.opt
-s ${GEM_PATH}/configs/dist/sw.py
-f ${GEM_PATH}/configs/example/fs.py
-r ${LOG_DIR}
--fs-args
--bootloader="${BOOT}"
--kernel="${KERNEL}"
--disk-image="${DISK}"
--cpu-type=AtomicSimpleCPU
--num-cpus=4
--machine-type=VExpress_EMM64
--m5-args
--debug-flags=DistEthernet \

I've searched  email archive and found a similar question to my situation: https://www.mail-archive.com/gem5-users@gem5.org/msg20033.html.
I tried to follow the instructions and turned --machine-type from VExpress_EMM64 to VExpress_GEM5_V1, but error message: "object 'VExpress_GEM5_V1' has no attribute 'ethernet' " was raised.

If it helps, I've also tried to debug this problem, and found that 2 addr ranges ([0x2f000000:0x2f000008] and [0x2f000000:0x2f000004]) collided. These 2 addr ranges come from BARs array of  PioPort.In the constructor of PciDevice, each element of the BARs array will be assigned the same value: pciPioBase which value equals 0x2f000000. I suppose that is why the above 2 addr ranges both start with 0x2f000000.

Any ideas to fix the issue?

Thanks.
IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.

Hi, I have never used gem5-dist.sh but could you try to use as a configuration script configs/example/arm/starter_fs.py instead of configs/example/fs.py ? You would also need to add the ethernet controller as a PCI device to starter_fs.py (it is a one-liner change, add IGbE_e1000(InterruptLine=1, InterruptPin=1) to the system.pci_devices list. Let me know if it works, Giacomo From: wasd003 <chenhuiji2000@gmail.com> Date: Wednesday, 29 June 2022 at 13:01 To: gem5-users@gem5.org <gem5-users@gem5.org> Subject: [gem5-users] ARM FS emulation with nic support Hi, I'm trying to get nic supported on ARM full system emulation with the help of gem5-dist.sh. But I've gotten following error during the boot process: build/ARM/mem/xbar.cc:430: fatal: testsys.iobus has two ports responding within range [0x2f000000:0x2f000004]: testsys.realview.cf_ctrl.pio testsys.realview.cf_ctrl.pio My Gem5 Version: v21.2.1.1 commitID: e4fae58da6c044b6efec62392ff99f343ce67947 Following is the command line I used to boot gem5: ${GEM_PATH}/util/dist/gem5-dist.sh \ -n 2 \ -x ${GEM_PATH}/build/ARM/gem5.opt \ -s ${GEM_PATH}/configs/dist/sw.py \ -f ${GEM_PATH}/configs/example/fs.py \ -r ${LOG_DIR} \ --fs-args \ --bootloader="${BOOT}" \ --kernel="${KERNEL}" \ --disk-image="${DISK}" \ --cpu-type=AtomicSimpleCPU \ --num-cpus=4 \ --machine-type=VExpress_EMM64 \ --m5-args \ --debug-flags=DistEthernet \ I've searched email archive and found a similar question to my situation: https://www.mail-archive.com/gem5-users@gem5.org/msg20033.html. I tried to follow the instructions and turned --machine-type from VExpress_EMM64 to VExpress_GEM5_V1, but error message: "object 'VExpress_GEM5_V1' has no attribute 'ethernet' " was raised. If it helps, I've also tried to debug this problem, and found that 2 addr ranges ([0x2f000000:0x2f000008] and [0x2f000000:0x2f000004]) collided. These 2 addr ranges come from BARs array of PioPort.In the constructor of PciDevice, each element of the BARs array will be assigned the same value: pciPioBase which value equals 0x2f000000. I suppose that is why the above 2 addr ranges both start with 0x2f000000. Any ideas to fix the issue? Thanks. IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.
W
wasd003
Fri, Jul 1, 2022 4:06 AM

Thanks for your help, with starter_fs.py I can create eth0 successfully.
However, in my scenario, I need to start 2 gem5 instances seperately and
let them communicate with each other. I wonder if it's possible to achieve
this goal with starter_fs.py. Does starter_fs.py only support communication
between gem5 instance and host?

Thanks.

Giacomo Travaglini Giacomo.Travaglini@arm.com 于2022年6月30日周四 19:16写道:

Hi,

I have never used gem5-dist.sh but could you try to use as a
configuration script

configs/example/arm/starter_fs.py

instead of

configs/example/fs.py ?

You would also need to add the ethernet controller as a PCI device to
starter_fs.py (it is a one-liner change, add IGbE_e1000(InterruptLine=1,
InterruptPin=1) to the system.pci_devices list.

Let me know if it works,

Giacomo

*From: *wasd003 chenhuiji2000@gmail.com
*Date: *Wednesday, 29 June 2022 at 13:01
*To: *gem5-users@gem5.org gem5-users@gem5.org
*Subject: *[gem5-users] ARM FS emulation with nic support

Hi, I'm trying to get nic supported on ARM full system emulation with the
help of gem5-dist.sh. But I've gotten following error during the boot
process:

*build/ARM/mem/xbar.cc:430: fatal: testsys.iobus has two ports
responding within range [0x2f000000:0x2f000004]: *

testsys.realview.cf_ctrl.pio

*testsys.realview.cf_ctrl.pio *

My Gem5 Version: v21.2.1.1

             commitID: e4fae58da6c044b6efec62392ff99f343ce67947

Following is the command line I used to boot gem5:

${GEM_PATH}/util/dist/gem5-dist.sh
-n 2
-x ${GEM_PATH}/build/ARM/gem5.opt
-s ${GEM_PATH}/configs/dist/sw.py
-f ${GEM_PATH}/configs/example/fs.py
-r ${LOG_DIR}
--fs-args
--bootloader="${BOOT}"
--kernel="${KERNEL}"
--disk-image="${DISK}"
--cpu-type=AtomicSimpleCPU
--num-cpus=4
--machine-type=VExpress_EMM64
--m5-args
--debug-flags=DistEthernet \

I've searched  email archive and found a similar question to my situation:
https://www.mail-archive.com/gem5-users@gem5.org/msg20033.html.

I tried to follow the instructions and turned --machine-type from
VExpress_EMM64 to VExpress_GEM5_V1, but error message:* "object
'VExpress_GEM5_V1' has no attribute 'ethernet' " *was raised.

If it helps, I've also tried to debug this problem, and found that 2 addr
ranges ([0x2f000000:0x2f000008] and [0x2f000000:0x2f000004]) collided.
These 2 addr ranges come from BARs array of  PioPort.In the constructor of
PciDevice, each element of the BARs array will be assigned the same value:
pciPioBase which value equals 0x2f000000. I suppose that is why the above 2
addr ranges both start with 0x2f000000.

Any ideas to fix the issue?

Thanks.
IMPORTANT NOTICE: The contents of this email and any attachments are
confidential and may also be privileged. If you are not the intended
recipient, please notify the sender immediately and do not disclose the
contents to any other person, use it for any purpose, or store or copy the
information in any medium. Thank you.


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

Thanks for your help, with starter_fs.py I can create eth0 successfully. However, in my scenario, I need to start 2 gem5 instances seperately and let them communicate with each other. I wonder if it's possible to achieve this goal with starter_fs.py. Does starter_fs.py only support communication between gem5 instance and host? Thanks. Giacomo Travaglini <Giacomo.Travaglini@arm.com> 于2022年6月30日周四 19:16写道: > Hi, > > > > I have never used gem5-dist.sh but could you try to use as a > configuration script > > > > configs/example/arm/starter_fs.py > > > > instead of > > > > configs/example/fs.py ? > > > > You would also need to add the ethernet controller as a PCI device to > starter_fs.py (it is a one-liner change, add IGbE_e1000(InterruptLine=1, > InterruptPin=1) to the system.pci_devices list. > > > > Let me know if it works, > > > > Giacomo > > > > *From: *wasd003 <chenhuiji2000@gmail.com> > *Date: *Wednesday, 29 June 2022 at 13:01 > *To: *gem5-users@gem5.org <gem5-users@gem5.org> > *Subject: *[gem5-users] ARM FS emulation with nic support > > Hi, I'm trying to get nic supported on ARM full system emulation with the > help of gem5-dist.sh. But I've gotten following error during the boot > process: > > > > *build/ARM/mem/xbar.cc:430: fatal: testsys.iobus has two ports > responding within range [0x2f000000:0x2f000004]: * > > *testsys.realview.cf_ctrl.pio* > > *testsys.realview.cf_ctrl.pio * > > > > My Gem5 Version: v21.2.1.1 > > commitID: e4fae58da6c044b6efec62392ff99f343ce67947 > > > > Following is the command line I used to boot gem5: > > ${GEM_PATH}/util/dist/gem5-dist.sh \ > -n 2 \ > -x ${GEM_PATH}/build/ARM/gem5.opt \ > -s ${GEM_PATH}/configs/dist/sw.py \ > -f ${GEM_PATH}/configs/example/fs.py \ > -r ${LOG_DIR} \ > --fs-args \ > --bootloader="${BOOT}" \ > --kernel="${KERNEL}" \ > --disk-image="${DISK}" \ > --cpu-type=AtomicSimpleCPU \ > --num-cpus=4 \ > --machine-type=VExpress_EMM64 \ > --m5-args \ > --debug-flags=DistEthernet \ > > > > I've searched email archive and found a similar question to my situation: > https://www.mail-archive.com/gem5-users@gem5.org/msg20033.html. > > I tried to follow the instructions and turned --machine-type from > VExpress_EMM64 to VExpress_GEM5_V1, but error message:* "object > 'VExpress_GEM5_V1' has no attribute 'ethernet' " *was raised. > > > > If it helps, I've also tried to debug this problem, and found that 2 addr > ranges ([0x2f000000:0x2f000008] and [0x2f000000:0x2f000004]) collided. > These 2 addr ranges come from BARs array of PioPort.In the constructor of > PciDevice, each element of the BARs array will be assigned the same value: > pciPioBase which value equals 0x2f000000. I suppose that is why the above 2 > addr ranges both start with 0x2f000000. > > > > Any ideas to fix the issue? > > > > Thanks. > IMPORTANT NOTICE: The contents of this email and any attachments are > confidential and may also be privileged. If you are not the intended > recipient, please notify the sender immediately and do not disclose the > contents to any other person, use it for any purpose, or store or copy the > information in any medium. Thank you. > _______________________________________________ > gem5-users mailing list -- gem5-users@gem5.org > To unsubscribe send an email to gem5-users-leave@gem5.org >
HZ
HENG ZHUO
Fri, Jul 1, 2022 5:41 PM

Hi,

After you have ethernet dev in the node, you need to have two separated nodes (drivesys and testsys) under root. Then in your top level script, here is starter_fs.py, use Etherlink connect them so they can communicate.

Example connection:
root.etherlink = EtherLink()
root.etherlink.int0 = root.testsys.realview.ethernet.interface
root.etherlink.int1 = root.drivesys.realview.ethernet.interface

With that, hardware wise is setup, but after you boot up os(ubuntu), you will also need to set ip/ethernet info so they recognized each other on that level, same as how you setup a real machine network.

Best,
Heng

On Jun 30, 2022, at 23:06, wasd003 <chenhuiji2000@gmail.commailto:chenhuiji2000@gmail.com> wrote:

Thanks for your help, with starter_fs.py I can create eth0 successfully.
However, in my scenario, I need to start 2 gem5 instances seperately and let them communicate with each other. I wonder if it's possible to achieve this goal with starter_fs.py. Does starter_fs.py only support communication between gem5 instance and host?

Thanks.

Giacomo Travaglini <Giacomo.Travaglini@arm.commailto:Giacomo.Travaglini@arm.com> 于2022年6月30日周四 19:16写道:
Hi,

I have never used gem5-dist.sh but could you try to use as a configuration script

configs/example/arm/starter_fs.py

instead of

configs/example/fs.py ?

You would also need to add the ethernet controller as a PCI device to starter_fs.py (it is a one-liner change, add IGbE_e1000(InterruptLine=1, InterruptPin=1) to the system.pci_devices list.

Let me know if it works,

Giacomo

From: wasd003 <chenhuiji2000@gmail.commailto:chenhuiji2000@gmail.com>
Date: Wednesday, 29 June 2022 at 13:01
To: gem5-users@gem5.orgmailto:gem5-users@gem5.org <gem5-users@gem5.orgmailto:gem5-users@gem5.org>
Subject: [gem5-users] ARM FS emulation with nic support
Hi, I'm trying to get nic supported on ARM full system emulation with the help of gem5-dist.sh. But I've gotten following error during the boot process:

build/ARM/mem/xbar.cc:430http://xbar.cc:430: fatal: testsys.iobus has two ports responding within range [0x2f000000:0x2f000004]:
testsys.realview.cf_ctrl.pio
testsys.realview.cf_ctrl.pio

My Gem5 Version: v21.2.1.1
commitID: e4fae58da6c044b6efec62392ff99f343ce67947

Following is the command line I used to boot gem5:
${GEM_PATH}/util/dist/gem5-dist.sh
-n 2
-x ${GEM_PATH}/build/ARM/gem5.opt
-s ${GEM_PATH}/configs/dist/sw.py
-f ${GEM_PATH}/configs/example/fs.py
-r ${LOG_DIR}
--fs-args
--bootloader="${BOOT}"
--kernel="${KERNEL}"
--disk-image="${DISK}"
--cpu-type=AtomicSimpleCPU
--num-cpus=4
--machine-type=VExpress_EMM64
--m5-args
--debug-flags=DistEthernet \

I've searched  email archive and found a similar question to my situation: https://www.mail-archive.com/gem5-users@gem5.org/msg20033.html.
I tried to follow the instructions and turned --machine-type from VExpress_EMM64 to VExpress_GEM5_V1, but error message: "object 'VExpress_GEM5_V1' has no attribute 'ethernet' " was raised.

If it helps, I've also tried to debug this problem, and found that 2 addr ranges ([0x2f000000:0x2f000008] and [0x2f000000:0x2f000004]) collided. These 2 addr ranges come from BARs array of  PioPort.In the constructor of PciDevice, each element of the BARs array will be assigned the same value: pciPioBase which value equals 0x2f000000. I suppose that is why the above 2 addr ranges both start with 0x2f000000.

Any ideas to fix the issue?

Thanks.
IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.


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


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

Hi, After you have ethernet dev in the node, you need to have two separated nodes (drivesys and testsys) under root. Then in your top level script, here is starter_fs.py, use Etherlink connect them so they can communicate. Example connection: root.etherlink = EtherLink() root.etherlink.int0 = root.testsys.realview.ethernet.interface root.etherlink.int1 = root.drivesys.realview.ethernet.interface With that, hardware wise is setup, but after you boot up os(ubuntu), you will also need to set ip/ethernet info so they recognized each other on that level, same as how you setup a real machine network. Best, Heng On Jun 30, 2022, at 23:06, wasd003 <chenhuiji2000@gmail.com<mailto:chenhuiji2000@gmail.com>> wrote: Thanks for your help, with starter_fs.py I can create eth0 successfully. However, in my scenario, I need to start 2 gem5 instances seperately and let them communicate with each other. I wonder if it's possible to achieve this goal with starter_fs.py. Does starter_fs.py only support communication between gem5 instance and host? Thanks. Giacomo Travaglini <Giacomo.Travaglini@arm.com<mailto:Giacomo.Travaglini@arm.com>> 于2022年6月30日周四 19:16写道: Hi, I have never used gem5-dist.sh but could you try to use as a configuration script configs/example/arm/starter_fs.py instead of configs/example/fs.py ? You would also need to add the ethernet controller as a PCI device to starter_fs.py (it is a one-liner change, add IGbE_e1000(InterruptLine=1, InterruptPin=1) to the system.pci_devices list. Let me know if it works, Giacomo From: wasd003 <chenhuiji2000@gmail.com<mailto:chenhuiji2000@gmail.com>> Date: Wednesday, 29 June 2022 at 13:01 To: gem5-users@gem5.org<mailto:gem5-users@gem5.org> <gem5-users@gem5.org<mailto:gem5-users@gem5.org>> Subject: [gem5-users] ARM FS emulation with nic support Hi, I'm trying to get nic supported on ARM full system emulation with the help of gem5-dist.sh. But I've gotten following error during the boot process: build/ARM/mem/xbar.cc:430<http://xbar.cc:430>: fatal: testsys.iobus has two ports responding within range [0x2f000000:0x2f000004]: testsys.realview.cf_ctrl.pio testsys.realview.cf_ctrl.pio My Gem5 Version: v21.2.1.1 commitID: e4fae58da6c044b6efec62392ff99f343ce67947 Following is the command line I used to boot gem5: ${GEM_PATH}/util/dist/gem5-dist.sh \ -n 2 \ -x ${GEM_PATH}/build/ARM/gem5.opt \ -s ${GEM_PATH}/configs/dist/sw.py \ -f ${GEM_PATH}/configs/example/fs.py \ -r ${LOG_DIR} \ --fs-args \ --bootloader="${BOOT}" \ --kernel="${KERNEL}" \ --disk-image="${DISK}" \ --cpu-type=AtomicSimpleCPU \ --num-cpus=4 \ --machine-type=VExpress_EMM64 \ --m5-args \ --debug-flags=DistEthernet \ I've searched email archive and found a similar question to my situation: https://www.mail-archive.com/gem5-users@gem5.org/msg20033.html. I tried to follow the instructions and turned --machine-type from VExpress_EMM64 to VExpress_GEM5_V1, but error message: "object 'VExpress_GEM5_V1' has no attribute 'ethernet' " was raised. If it helps, I've also tried to debug this problem, and found that 2 addr ranges ([0x2f000000:0x2f000008] and [0x2f000000:0x2f000004]) collided. These 2 addr ranges come from BARs array of PioPort.In the constructor of PciDevice, each element of the BARs array will be assigned the same value: pciPioBase which value equals 0x2f000000. I suppose that is why the above 2 addr ranges both start with 0x2f000000. Any ideas to fix the issue? Thanks. IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you. _______________________________________________ gem5-users mailing list -- gem5-users@gem5.org<mailto:gem5-users@gem5.org> To unsubscribe send an email to gem5-users-leave@gem5.org<mailto:gem5-users-leave@gem5.org> _______________________________________________ gem5-users mailing list -- gem5-users@gem5.org<mailto:gem5-users@gem5.org> To unsubscribe send an email to gem5-users-leave@gem5.org<mailto:gem5-users-leave@gem5.org>
W
wasd003
Sat, Jul 2, 2022 11:31 PM

Thanks for your help. Although I didn't use starter_fs.py evently, your
suggestion reminds me of dist_bigLITTLE.py. now I can let two gem5
instances ping each other successfully. In order to help more people who
have identical requirements with me, I wil post my boot script as follow:

${GEM_PATH}/util/dist/gem5-dist.sh
-n 2
-r ${LOG_DIR}
-c ${CHECKPOINT_DIR}
-x ${GEM_PATH}/build/ARM/gem5.opt
-s ${GEM_PATH}/configs/dist/sw.py
-f ${GEM_PATH}/configs/example/arm/dist_bigLITTLE.py
--m5-args
--debug-flags=DistEthernet,Ethernet
--fs-args
--caches
--bootloader=${BOOT_LOADER}
--kernel=${KERNEL}
--disk=${DISK} \

 --bootscript=${BOOT_SCRIPT} \

--cf-args \
            --dist-sync-start=1000000000000t \

HENG ZHUO hzhuo2@wisc.edu 于2022年7月2日周六 01:44写道:

Hi,

After you have ethernet dev in the node, you need to have two separated
nodes (drivesys and testsys) under root. Then in your top level script,
here is starter_fs.py, use Etherlink connect them so they can communicate.

Example connection:
root.etherlink = EtherLink()
root.etherlink.int0 = root.testsys.realview.ethernet.interface
root.etherlink.int1 = root.drivesys.realview.ethernet.interface

With that, hardware wise is setup, but after you boot up os(ubuntu), you
will also need to set ip/ethernet info so they recognized each other on
that level, same as how you setup a real machine network.

Best,
Heng

On Jun 30, 2022, at 23:06, wasd003 chenhuiji2000@gmail.com wrote:

Thanks for your help, with starter_fs.py I can create eth0 successfully.
However, in my scenario, I need to start 2 gem5 instances seperately and
let them communicate with each other. I wonder if it's possible to achieve
this goal with starter_fs.py. Does starter_fs.py only support communication
between gem5 instance and host?

Thanks.

Giacomo Travaglini Giacomo.Travaglini@arm.com 于2022年6月30日周四 19:16写道:

Hi,

I have never used gem5-dist.sh but could you try to use as a
configuration script

configs/example/arm/starter_fs.py

instead of

configs/example/fs.py ?

You would also need to add the ethernet controller as a PCI device to
starter_fs.py (it is a one-liner change, add IGbE_e1000(InterruptLine=1,
InterruptPin=1) to the system.pci_devices list.

Let me know if it works,

Giacomo

*From: *wasd003 chenhuiji2000@gmail.com
*Date: *Wednesday, 29 June 2022 at 13:01
*To: *gem5-users@gem5.org gem5-users@gem5.org
*Subject: *[gem5-users] ARM FS emulation with nic support

Hi, I'm trying to get nic supported on ARM full system emulation with the
help of gem5-dist.sh. But I've gotten following error during the boot
process:

*build/ARM/mem/xbar.cc:430 http://xbar.cc:430: fatal: testsys.iobus has
two ports responding within range [0x2f000000:0x2f000004]: *

testsys.realview.cf_ctrl.pio

*testsys.realview.cf_ctrl.pio *

My Gem5 Version: v21.2.1.1

             commitID: e4fae58da6c044b6efec62392ff99f343ce67947

Following is the command line I used to boot gem5:

${GEM_PATH}/util/dist/gem5-dist.sh
-n 2
-x ${GEM_PATH}/build/ARM/gem5.opt
-s ${GEM_PATH}/configs/dist/sw.py
-f ${GEM_PATH}/configs/example/fs.py
-r ${LOG_DIR}
--fs-args
--bootloader="${BOOT}"
--kernel="${KERNEL}"
--disk-image="${DISK}"
--cpu-type=AtomicSimpleCPU
--num-cpus=4
--machine-type=VExpress_EMM64
--m5-args
--debug-flags=DistEthernet \

I've searched  email archive and found a similar question to my
situation: https://www.mail-archive.com/gem5-users@gem5.org/msg20033.html
.

I tried to follow the instructions and turned --machine-type from
VExpress_EMM64 to VExpress_GEM5_V1, but error message:* "object
'VExpress_GEM5_V1' has no attribute 'ethernet' " *was raised.

If it helps, I've also tried to debug this problem, and found that 2 addr
ranges ([0x2f000000:0x2f000008] and [0x2f000000:0x2f000004]) collided.
These 2 addr ranges come from BARs array of  PioPort.In the constructor of
PciDevice, each element of the BARs array will be assigned the same value:
pciPioBase which value equals 0x2f000000. I suppose that is why the above 2
addr ranges both start with 0x2f000000.

Any ideas to fix the issue?

Thanks.
IMPORTANT NOTICE: The contents of this email and any attachments are
confidential and may also be privileged. If you are not the intended
recipient, please notify the sender immediately and do not disclose the
contents to any other person, use it for any purpose, or store or copy the
information in any medium. Thank you.


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


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


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

Thanks for your help. Although I didn't use starter_fs.py evently, your suggestion reminds me of dist_bigLITTLE.py. now I can let two gem5 instances ping each other successfully. In order to help more people who have identical requirements with me, I wil post my boot script as follow: ${GEM_PATH}/util/dist/gem5-dist.sh \ -n 2 \ -r ${LOG_DIR} \ -c ${CHECKPOINT_DIR} \ -x ${GEM_PATH}/build/ARM/gem5.opt \ -s ${GEM_PATH}/configs/dist/sw.py \ -f ${GEM_PATH}/configs/example/arm/dist_bigLITTLE.py \ --m5-args \ --debug-flags=DistEthernet,Ethernet \ --fs-args \ --caches \ --bootloader=${BOOT_LOADER} \ --kernel=${KERNEL} \ --disk=${DISK} \ --bootscript=${BOOT_SCRIPT} \ --cf-args \ --dist-sync-start=1000000000000t \ HENG ZHUO <hzhuo2@wisc.edu> 于2022年7月2日周六 01:44写道: > Hi, > > After you have ethernet dev in the node, you need to have two separated > nodes (drivesys and testsys) under root. Then in your top level script, > here is starter_fs.py, use Etherlink connect them so they can communicate. > > Example connection: > root.etherlink = EtherLink() > root.etherlink.int0 = root.testsys.realview.ethernet.interface > root.etherlink.int1 = root.drivesys.realview.ethernet.interface > > With that, hardware wise is setup, but after you boot up os(ubuntu), you > will also need to set ip/ethernet info so they recognized each other on > that level, same as how you setup a real machine network. > > Best, > Heng > > On Jun 30, 2022, at 23:06, wasd003 <chenhuiji2000@gmail.com> wrote: > > Thanks for your help, with starter_fs.py I can create eth0 successfully. > However, in my scenario, I need to start 2 gem5 instances seperately and > let them communicate with each other. I wonder if it's possible to achieve > this goal with starter_fs.py. Does starter_fs.py only support communication > between gem5 instance and host? > > Thanks. > > Giacomo Travaglini <Giacomo.Travaglini@arm.com> 于2022年6月30日周四 19:16写道: > >> Hi, >> >> >> >> I have never used gem5-dist.sh but could you try to use as a >> configuration script >> >> >> >> configs/example/arm/starter_fs.py >> >> >> >> instead of >> >> >> >> configs/example/fs.py ? >> >> >> >> You would also need to add the ethernet controller as a PCI device to >> starter_fs.py (it is a one-liner change, add IGbE_e1000(InterruptLine=1, >> InterruptPin=1) to the system.pci_devices list. >> >> >> >> Let me know if it works, >> >> >> >> Giacomo >> >> >> >> *From: *wasd003 <chenhuiji2000@gmail.com> >> *Date: *Wednesday, 29 June 2022 at 13:01 >> *To: *gem5-users@gem5.org <gem5-users@gem5.org> >> *Subject: *[gem5-users] ARM FS emulation with nic support >> >> Hi, I'm trying to get nic supported on ARM full system emulation with the >> help of gem5-dist.sh. But I've gotten following error during the boot >> process: >> >> >> >> *build/ARM/mem/xbar.cc:430 <http://xbar.cc:430>: fatal: testsys.iobus has >> two ports responding within range [0x2f000000:0x2f000004]: * >> >> *testsys.realview.cf_ctrl.pio* >> >> *testsys.realview.cf_ctrl.pio * >> >> >> >> My Gem5 Version: v21.2.1.1 >> >> commitID: e4fae58da6c044b6efec62392ff99f343ce67947 >> >> >> >> Following is the command line I used to boot gem5: >> >> ${GEM_PATH}/util/dist/gem5-dist.sh \ >> -n 2 \ >> -x ${GEM_PATH}/build/ARM/gem5.opt \ >> -s ${GEM_PATH}/configs/dist/sw.py \ >> -f ${GEM_PATH}/configs/example/fs.py \ >> -r ${LOG_DIR} \ >> --fs-args \ >> --bootloader="${BOOT}" \ >> --kernel="${KERNEL}" \ >> --disk-image="${DISK}" \ >> --cpu-type=AtomicSimpleCPU \ >> --num-cpus=4 \ >> --machine-type=VExpress_EMM64 \ >> --m5-args \ >> --debug-flags=DistEthernet \ >> >> >> >> I've searched email archive and found a similar question to my >> situation: https://www.mail-archive.com/gem5-users@gem5.org/msg20033.html >> . >> >> I tried to follow the instructions and turned --machine-type from >> VExpress_EMM64 to VExpress_GEM5_V1, but error message:* "object >> 'VExpress_GEM5_V1' has no attribute 'ethernet' " *was raised. >> >> >> >> If it helps, I've also tried to debug this problem, and found that 2 addr >> ranges ([0x2f000000:0x2f000008] and [0x2f000000:0x2f000004]) collided. >> These 2 addr ranges come from BARs array of PioPort.In the constructor of >> PciDevice, each element of the BARs array will be assigned the same value: >> pciPioBase which value equals 0x2f000000. I suppose that is why the above 2 >> addr ranges both start with 0x2f000000. >> >> >> >> Any ideas to fix the issue? >> >> >> >> Thanks. >> IMPORTANT NOTICE: The contents of this email and any attachments are >> confidential and may also be privileged. If you are not the intended >> recipient, please notify the sender immediately and do not disclose the >> contents to any other person, use it for any purpose, or store or copy the >> information in any medium. Thank you. >> _______________________________________________ >> gem5-users mailing list -- gem5-users@gem5.org >> To unsubscribe send an email to gem5-users-leave@gem5.org >> > _______________________________________________ > gem5-users mailing list -- gem5-users@gem5.org > To unsubscribe send an email to gem5-users-leave@gem5.org > > > _______________________________________________ > gem5-users mailing list -- gem5-users@gem5.org > To unsubscribe send an email to gem5-users-leave@gem5.org >