[gem5-users] Re: IGbE_e1000 card not connected
Hi Nikos, This rings a bell: https://www.mail-archive.com/gem5-users@gem5.org/msg19174.html How are you extracting the guest binaries? Make sure the kernel image doesn't get corrupted in the process Kind Regards Giacomo > -Original Message- > From: Νικόλαος Ταμπουρατζής via gem5-users > Sent: 01 April 2021 19:25 > To: gem5 users mailing list > Cc: Νικόλαος Ταμπουρατζής > Subject: [gem5-users] Re: IGbE_e1000 card not connected > > > Dear Giacomo, > > Thank you very much for your very good instructions!! > > Before I add the card, I download the latest v21 gem5 and execute the > following command (the dtb is updated with correct addresses): > > $GEM5/build/ARM/gem5.opt -d $GEM5/node1 > $GEM5/configs/example/arm/starter_fs.py --kernel=vmlinux.arm64 --disk- > image=linaro-minimal-aarch64.img --dtb=armv8_gem5_v1_1cpu.dtb > > but I get kernel panic: > > 0: system.remote_gdb: listening for remote gdb on port 7000 > info: Using bootloader at address 0x10 > info: Using kernel entry physical address at 0x8008 > warn: DTB file specified, but no device tree support in kernel > warn: Existing EnergyCtrl, but no enabled DVFSHandler found. > panic: panic condition !e occurred: Failed to find kernel symbol 'panic' > Memory Usage: 2619356 KBytes > Program aborted at tick 0 > --- BEGIN LIBC BACKTRACE --- > /home/riscv/gem5/build/ARM/gem5.opt(_Z15print_backtracev+0x2c)[0x556 > 4f3e562bc] > /home/riscv/gem5/build/ARM/gem5.opt(_Z12abortHandleri+0x48)[0x5564f3 > eb8828] > /lib/x86_64-linux-gnu/libpthread.so.0(+0x12980)[0x7f1536bc0980] > /lib/x86_64-linux-gnu/libc.so.6(gsignal+0xc7)[0x7f15367fbfb7] > /lib/x86_64-linux-gnu/libc.so.6(abort+0x141)[0x7f15367fd921] > /home/riscv/gem5/build/ARM/gem5.opt(+0xb26b8f)[0x5564f3e4ab8f] > /home/riscv/gem5/build/ARM/gem5.opt(+0xd5a1b2)[0x5564f407e1b2] > /home/riscv/gem5/build/ARM/gem5.opt(_ZN6ArmISA7FsLinux7startupEv+0 > x447)[0x5564f407ea27] > /home/riscv/gem5/build/ARM/gem5.opt(+0x1983956)[0x5564f4ca7956] > /home/riscv/gem5/build/ARM/gem5.opt(+0xb54fdc)[0x5564f3e78fdc] > /usr/lib/x86_64-linux- > gnu/libpython3.6m.so.1.0(_PyCFunction_FastCallDict+0x20a)[0x7f153632558 > a] > /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17bec8)[0x7f153628dec8] > /usr/lib/x86_64-linux- > gnu/libpython3.6m.so.1.0(_PyEval_EvalFrameDefault+0x4ec3)[0x7f15362943 > 03] > /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17ba0f)[0x7f153628da0f] > /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17c0fc)[0x7f153628e0fc] > /usr/lib/x86_64-linux- > gnu/libpython3.6m.so.1.0(_PyEval_EvalFrameDefault+0x4ec3)[0x7f15362943 > 03] > /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17a803)[0x7f153628c803] > /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17c2be)[0x7f153628e2be] > /usr/lib/x86_64-linux- > gnu/libpython3.6m.so.1.0(_PyEval_EvalFrameDefault+0x4ec3)[0x7f15362943 > 03] > /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17a803)[0x7f153628c803] > /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17c2be)[0x7f153628e2be] > /usr/lib/x86_64-linux- > gnu/libpython3.6m.so.1.0(_PyEval_EvalFrameDefault+0x4ec3)[0x7f15362943 > 03] > /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17ba0f)[0x7f153628da0f] > /usr/lib/x86_64-linux- > gnu/libpython3.6m.so.1.0(PyEval_EvalCodeEx+0x3e)[0x7f153628e4ce] > /usr/lib/x86_64-linux- > gnu/libpython3.6m.so.1.0(PyEval_EvalCode+0x1b)[0x7f153628f24b] > /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x18855d)[0x7f153629a55d] > /usr/lib/x86_64-linux- > gnu/libpython3.6m.so.1.0(_PyCFunction_FastCallDict+0x1bb)[0x7f153632553 > b] > /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17c1ec)[0x7f153628e1ec] > /usr/lib/x86_64-linux- > gnu/libpython3.6m.so.1.0(_PyEval_EvalFrameDefault+0x4ec3)[0x7f15362943 > 03] > /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17ba0f)[0x7f153628da0f] > /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17c0fc)[0x7f153628e0fc] > /usr/lib/x86_64-linux- > gnu/libpython3.6m.so.1.0(_PyEval_EvalFrameDefault+0x4ec3)[0x7f15362943 > 03] > --- END LIBC BACKTRACE --- > Aborted (core dumped) > > > Best regards, > Nikolaos Tampouratzis > > Παραθέτοντας από Giacomo Travaglini via gem5-users us...@gem5.org>: > > > Hi Nikos, > > > >> -Original Message- > >> From: Νικόλαος Ταμπουρατζής via gem5-users > >> Sent: 31 March 2021 21:04 > >> To: gem5-users@gem5.org > >> Cc: Νικόλαος Ταμπουρατζής > >> Subject: [gem5-users] IGbE_e1000 card not connected > >> > >> Dear gem5 community, > >> > >> I would like to use the IGbE_e1000 card in the latest gem5 version in > >> ARM FS mode. As I can see the card is connected only in VExpress_EMM > >> and VExpress_EMM64. H
[gem5-users] Re: IGbE_e1000 card not connected
Dear Giacomo, Thank you very much for your very good instructions!! Before I add the card, I download the latest v21 gem5 and execute the following command (the dtb is updated with correct addresses): $GEM5/build/ARM/gem5.opt -d $GEM5/node1 $GEM5/configs/example/arm/starter_fs.py --kernel=vmlinux.arm64 --disk-image=linaro-minimal-aarch64.img --dtb=armv8_gem5_v1_1cpu.dtb but I get kernel panic: 0: system.remote_gdb: listening for remote gdb on port 7000 info: Using bootloader at address 0x10 info: Using kernel entry physical address at 0x8008 warn: DTB file specified, but no device tree support in kernel warn: Existing EnergyCtrl, but no enabled DVFSHandler found. panic: panic condition !e occurred: Failed to find kernel symbol 'panic' Memory Usage: 2619356 KBytes Program aborted at tick 0 --- BEGIN LIBC BACKTRACE --- /home/riscv/gem5/build/ARM/gem5.opt(_Z15print_backtracev+0x2c)[0x5564f3e562bc] /home/riscv/gem5/build/ARM/gem5.opt(_Z12abortHandleri+0x48)[0x5564f3eb8828] /lib/x86_64-linux-gnu/libpthread.so.0(+0x12980)[0x7f1536bc0980] /lib/x86_64-linux-gnu/libc.so.6(gsignal+0xc7)[0x7f15367fbfb7] /lib/x86_64-linux-gnu/libc.so.6(abort+0x141)[0x7f15367fd921] /home/riscv/gem5/build/ARM/gem5.opt(+0xb26b8f)[0x5564f3e4ab8f] /home/riscv/gem5/build/ARM/gem5.opt(+0xd5a1b2)[0x5564f407e1b2] /home/riscv/gem5/build/ARM/gem5.opt(_ZN6ArmISA7FsLinux7startupEv+0x447)[0x5564f407ea27] /home/riscv/gem5/build/ARM/gem5.opt(+0x1983956)[0x5564f4ca7956] /home/riscv/gem5/build/ARM/gem5.opt(+0xb54fdc)[0x5564f3e78fdc] /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyCFunction_FastCallDict+0x20a)[0x7f153632558a] /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17bec8)[0x7f153628dec8] /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyEval_EvalFrameDefault+0x4ec3)[0x7f1536294303] /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17ba0f)[0x7f153628da0f] /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17c0fc)[0x7f153628e0fc] /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyEval_EvalFrameDefault+0x4ec3)[0x7f1536294303] /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17a803)[0x7f153628c803] /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17c2be)[0x7f153628e2be] /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyEval_EvalFrameDefault+0x4ec3)[0x7f1536294303] /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17a803)[0x7f153628c803] /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17c2be)[0x7f153628e2be] /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyEval_EvalFrameDefault+0x4ec3)[0x7f1536294303] /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17ba0f)[0x7f153628da0f] /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(PyEval_EvalCodeEx+0x3e)[0x7f153628e4ce] /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(PyEval_EvalCode+0x1b)[0x7f153628f24b] /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x18855d)[0x7f153629a55d] /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyCFunction_FastCallDict+0x1bb)[0x7f153632553b] /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17c1ec)[0x7f153628e1ec] /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyEval_EvalFrameDefault+0x4ec3)[0x7f1536294303] /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17ba0f)[0x7f153628da0f] /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(+0x17c0fc)[0x7f153628e0fc] /usr/lib/x86_64-linux-gnu/libpython3.6m.so.1.0(_PyEval_EvalFrameDefault+0x4ec3)[0x7f1536294303] --- END LIBC BACKTRACE --- Aborted (core dumped) Best regards, Nikolaos Tampouratzis Παραθέτοντας από Giacomo Travaglini via gem5-users : Hi Nikos, -Original Message- From: Νικόλαος Ταμπουρατζής via gem5-users Sent: 31 March 2021 21:04 To: gem5-users@gem5.org Cc: Νικόλαος Ταμπουρατζής Subject: [gem5-users] IGbE_e1000 card not connected Dear gem5 community, I would like to use the IGbE_e1000 card in the latest gem5 version in ARM FS mode. As I can see the card is connected only in VExpress_EMM and VExpress_EMM64. However, I cannot boot correctly the latest gem5 version either in VExpress_EMM or VExpress_EMM64 using the 20180409.tar.xz kernels and images from the following link: https://www.gem5.org/documentation/general_docs/fullsystem/guest_bin aries. So I achieve to boot the gem5 using the VExpress_GEM5_V1 machine type (specifically through this configuration: $GEM5/build/ARM/gem5.opt -d $GEM5/node0 $GEM5/configs/example/fs.py --kernel=vmlinux.vexpress_gem5_v1_64 --disk-image=linaro-minimal-aarch64.img --machine-type=VExpress_GEM5_V1 --dtb=armv7_gem5_v1_1cpu.dtb). It not related to your problem, but: 1) You are using an armv8 kernel, with an armv7 DTB 2) We tend to discourage using fs.py for Arm simulations; I would recommend you having a look At either configs/example/arm/fs_bigLITTLE.py or configs/example/arm/starter_fs.py depending on what you are trying to model However, the IGbE_e1000 card is not included in the VExpress_GEM5_V1... So I tried to connect it in VExpress_GEM5_Base (which is used from VExpress_GEM5_V1). Specifically, 1) I add the following (below pci_host =
[gem5-users] Re: IGbE_e1000 card not connected
Hi Nikos, > -Original Message- > From: Νικόλαος Ταμπουρατζής via gem5-users > Sent: 31 March 2021 21:04 > To: gem5-users@gem5.org > Cc: Νικόλαος Ταμπουρατζής > Subject: [gem5-users] IGbE_e1000 card not connected > > Dear gem5 community, > > I would like to use the IGbE_e1000 card in the latest gem5 version in ARM FS > mode. As I can see the card is connected only in VExpress_EMM and > VExpress_EMM64. However, I cannot boot correctly the latest gem5 version > either in VExpress_EMM or VExpress_EMM64 using the 20180409.tar.xz > kernels and images from the following link: > https://www.gem5.org/documentation/general_docs/fullsystem/guest_bin > aries. > > So I achieve to boot the gem5 using the VExpress_GEM5_V1 machine type > (specifically through this configuration: $GEM5/build/ARM/gem5.opt -d > $GEM5/node0 $GEM5/configs/example/fs.py > --kernel=vmlinux.vexpress_gem5_v1_64 > --disk-image=linaro-minimal-aarch64.img > --machine-type=VExpress_GEM5_V1 --dtb=armv7_gem5_v1_1cpu.dtb). It not related to your problem, but: 1) You are using an armv8 kernel, with an armv7 DTB 2) We tend to discourage using fs.py for Arm simulations; I would recommend you having a look At either configs/example/arm/fs_bigLITTLE.py or configs/example/arm/starter_fs.py depending on what you are trying to model > > However, the IGbE_e1000 card is not included in the VExpress_GEM5_V1... > So I tried to connect it in VExpress_GEM5_Base (which is used from > VExpress_GEM5_V1). Specifically, > > 1) I add the following (below pci_host = GenericArmPciHost) > > # Attach any PCI devices that are supported def attachPciDevices(self): > self.ethernet = IGbE_e1000(pci_bus=0, pci_dev=0, pci_func=0, > InterruptLine=1, InterruptPin=1) > > 2) I add the self.ethernet in def _off_chip_devices(self). > > Unfortunatelly, I get the following error after 2 minutes of simulation > (during > this message: [0.135098] e1000 :00:00.0: > enabling device ( -> 0002)): > > fatal: system.iobus has two ports responding within range > [0x8000:0x8002]: > system.realview.ethernet.pio > system.iobridge.cpu_side_port > > Looking in previous gem5 versions, in the GenericArmPciHost there is not the > "pci_mem_base=0x4000". So, I remove this and I am able to boot Linux > and see the eth0 but I do not know if is correct to remove the > pci_mem_base. By removing the pci_mem_base you are basically removing the 0x4000 offset And this is why the PIO address range stops overlapping with the iobridge. > > I would appreciate it if anyone would like to explain me please! :) > > Best regards, > Nikos > ___ > 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 Your problem has luckily been solved by the gem5-21 release (I presume you are using 20.1 as 21 has just been released): https://gem5-review.googlesource.com/c/public/gem5/+/39915 So checking out gem5-21 and recompiling the DTB should work. However as I have already mentioned I recommend you to adopt a different config script if possible. For example I am able to boot with the ethernet device by simply adding it to the PCI device list in starter_fs.py (I haven't tested its functionalities though) diff --git a/configs/example/arm/starter_fs.py b/configs/example/arm/starter_fs.py index 11190dbd6..d283e77c2 100644 --- a/configs/example/arm/starter_fs.py +++ b/configs/example/arm/starter_fs.py @@ -115,6 +115,7 @@ def create(args): # functionality to avoid writing changes to the stored copy of # the disk image. PciVirtIO(vio=VirtIOBlock(image=create_cow_image(args.disk_image))), +IGbE_e1000(InterruptLine=1, InterruptPin=1) ] No change to RealView.py and hence no recompilation is needed: PCI devices are instantiated in the top level script (rather than in the platform module) I am also relying on DTB autogeneration, so the command-line is as simple as (note I haven't specified the DTB): $build/ARM/gem5.opt configs/example/arm/starter_fs.py --kernel vmlinux.arm64 --disk-image ubuntu-18.04-arm64-docker.img Kind Regards Giacomo 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 %(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s
[gem5-users] Re: IGbE_e1000 card not connected
Dear Gabe, I use the latest version of gem5 (I download it before 5 days). Please follow my instructions and I think that you can reproduce the error. Best regards, Nikos Παραθέτοντας από Gabe Black via gem5-users : Hi Nikos, how old is your gem5 checkout? The change below fixed some aspects of how PCI devices are managed, including one which could cause failures like you're seeing. commit 9be18aa66ddb8db4da043279819d45bc72b7b086 Author: Gabe Black Date: Fri Oct 2 03:00:04 2020 -0700 On Wed, Mar 31, 2021 at 1:04 PM Νικόλαος Ταμπουρατζής via gem5-users < gem5-users@gem5.org> wrote: Dear gem5 community, I would like to use the IGbE_e1000 card in the latest gem5 version in ARM FS mode. As I can see the card is connected only in VExpress_EMM and VExpress_EMM64. However, I cannot boot correctly the latest gem5 version either in VExpress_EMM or VExpress_EMM64 using the 20180409.tar.xz kernels and images from the following link: https://www.gem5.org/documentation/general_docs/fullsystem/guest_binaries. So I achieve to boot the gem5 using the VExpress_GEM5_V1 machine type (specifically through this configuration: $GEM5/build/ARM/gem5.opt -d $GEM5/node0 $GEM5/configs/example/fs.py --kernel=vmlinux.vexpress_gem5_v1_64 --disk-image=linaro-minimal-aarch64.img --machine-type=VExpress_GEM5_V1 --dtb=armv7_gem5_v1_1cpu.dtb). However, the IGbE_e1000 card is not included in the VExpress_GEM5_V1... So I tried to connect it in VExpress_GEM5_Base (which is used from VExpress_GEM5_V1). Specifically, 1) I add the following (below pci_host = GenericArmPciHost) # Attach any PCI devices that are supported def attachPciDevices(self): self.ethernet = IGbE_e1000(pci_bus=0, pci_dev=0, pci_func=0, InterruptLine=1, InterruptPin=1) 2) I add the self.ethernet in def _off_chip_devices(self). Unfortunatelly, I get the following error after 2 minutes of simulation (during this message: [0.135098] e1000 :00:00.0: enabling device ( -> 0002)): fatal: system.iobus has two ports responding within range [0x8000:0x8002]: system.realview.ethernet.pio system.iobridge.cpu_side_port Looking in previous gem5 versions, in the GenericArmPciHost there is not the "pci_mem_base=0x4000". So, I remove this and I am able to boot Linux and see the eth0 but I do not know if is correct to remove the pci_mem_base. I would appreciate it if anyone would like to explain me please! :) Best regards, Nikos ___ 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 ___ 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
[gem5-users] Re: IGbE_e1000 card not connected
Hi Nikos, how old is your gem5 checkout? The change below fixed some aspects of how PCI devices are managed, including one which could cause failures like you're seeing. commit 9be18aa66ddb8db4da043279819d45bc72b7b086 Author: Gabe Black Date: Fri Oct 2 03:00:04 2020 -0700 On Wed, Mar 31, 2021 at 1:04 PM Νικόλαος Ταμπουρατζής via gem5-users < gem5-users@gem5.org> wrote: > Dear gem5 community, > > I would like to use the IGbE_e1000 card in the latest gem5 version in > ARM FS mode. As I can see the card is connected only in VExpress_EMM > and VExpress_EMM64. However, I cannot boot correctly the latest gem5 > version either in VExpress_EMM or VExpress_EMM64 using the > 20180409.tar.xz kernels and images from the following link: > https://www.gem5.org/documentation/general_docs/fullsystem/guest_binaries. > > So I achieve to boot the gem5 using the VExpress_GEM5_V1 machine type > (specifically through this configuration: $GEM5/build/ARM/gem5.opt -d > $GEM5/node0 $GEM5/configs/example/fs.py > --kernel=vmlinux.vexpress_gem5_v1_64 > --disk-image=linaro-minimal-aarch64.img > --machine-type=VExpress_GEM5_V1 --dtb=armv7_gem5_v1_1cpu.dtb). > > However, the IGbE_e1000 card is not included in the > VExpress_GEM5_V1... So I tried to connect it in VExpress_GEM5_Base > (which is used from VExpress_GEM5_V1). Specifically, > > 1) I add the following (below pci_host = GenericArmPciHost) > > # Attach any PCI devices that are supported > def attachPciDevices(self): > self.ethernet = IGbE_e1000(pci_bus=0, pci_dev=0, pci_func=0, > InterruptLine=1, InterruptPin=1) > > 2) I add the self.ethernet in def _off_chip_devices(self). > > Unfortunatelly, I get the following error after 2 minutes of > simulation (during this message: [0.135098] e1000 :00:00.0: > enabling device ( -> 0002)): > > fatal: system.iobus has two ports responding within range > [0x8000:0x8002]: > system.realview.ethernet.pio > system.iobridge.cpu_side_port > > Looking in previous gem5 versions, in the GenericArmPciHost there is > not the "pci_mem_base=0x4000". So, I remove this and I am able to > boot Linux and see the eth0 but I do not know if is correct to remove > the pci_mem_base. > > I would appreciate it if anyone would like to explain me please! :) > > Best regards, > Nikos > ___ > 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 > ___ 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