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 <hzh...@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 <chenhuiji2...@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.travagl...@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 <chenhuiji2...@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-le...@gem5.org
>>
> _______________________________________________
> gem5-users mailing list -- gem5-users@gem5.org
> To unsubscribe send an email to gem5-users-le...@gem5.org
>
>
> _______________________________________________
> gem5-users mailing list -- gem5-users@gem5.org
> To unsubscribe send an email to gem5-users-le...@gem5.org
>
_______________________________________________
gem5-users mailing list -- gem5-users@gem5.org
To unsubscribe send an email to gem5-users-le...@gem5.org

Reply via email to