gem5-users@gem5.org

The gem5 Users mailing list

View all threads

panic: Tried to read unmapped address 0x1970

AA
Alain Aoun
Fri, Apr 5, 2024 4:45 AM

Hi,

I am simulation an elf_i386 (32-bit x86) assembly code in SE mode. In my assembly code, there is mov al, [esi] where esi is set to 0x1970.
When running my simulation I get the following error: "panic: Tried to read unmapped address 0x1970."

I am initializing the DRAM with a binary disk image which contains my data that the benchmark is expected to use. My GEM5 configuration includes the following:

---=====================
system.mem_mode = "timing"
system.mem_ranges = [AddrRange("8000MB")]
system.mem_ctrl = MemCtrl()
system.mem_ctrl.dram = DDR3_1600_8x8()
system.mem_ctrl[0].dram.image_file = 'binary_disk_image.bin'
system.mem_ctrl.dram.range = system.mem_ranges[0]
system.mem_ctrl.port = system.membus.mem_side_ports

---=====================

Any suggestion on how to resolve this error?

Thanks!
Alain

Hi, I am simulation an elf_i386 (32-bit x86) assembly code in SE mode. In my assembly code, there is mov al, [esi] where esi is set to 0x1970. When running my simulation I get the following error: "panic: Tried to read unmapped address 0x1970." I am initializing the DRAM with a binary disk image which contains my data that the benchmark is expected to use. My GEM5 configuration includes the following: ====================================================== system.mem_mode = "timing" system.mem_ranges = [AddrRange("8000MB")] system.mem_ctrl = MemCtrl() system.mem_ctrl.dram = DDR3_1600_8x8() system.mem_ctrl[0].dram.image_file = 'binary_disk_image.bin' system.mem_ctrl.dram.range = system.mem_ranges[0] system.mem_ctrl.port = system.membus.mem_side_ports ====================================================== Any suggestion on how to resolve this error? Thanks! Alain
AA
Alain Aoun
Sat, Apr 6, 2024 9:26 PM

Hi again,

Debugging seems to show that the TLB (vaddr) is not mapped to the physical address. Below the output of the debugging:

---=================
system.cpu.[tid:0]: Reading integer reg rsi (6) as 0x1970.
global: MOV_R_M : ld: The address is 0x1970
system.cpu.mmu.dtb: Translating vaddr 0x1970.
system.cpu.mmu.dtb: In protected mode.
system.cpu.mmu.dtb: Paging enabled.
system.cpu.mmu.dtb: Handling a TLB miss for address 0x1970 at pc 0x8049014.
system.cpu: A0 T0 : 0x8049014 @multiply1    : mov al, DS:[esi]
system.cpu: A0 T0 : 0x8049014 @multiply1. 0 :  MOV_R_M : ld  al, DS:[esi] : MemRead :  A=0x1970  flags=(IsInteger|IsLoad|IsMicroop|IsLastMicroop|IsFirstMicroop)
system.cpu: Fault occured. Handling the fault
src/arch/x86/faults.cc:166http://faults.cc:166/: panic: Tried to read unmapped address 0x1970.
PC: (0x8049014=>0x8049016).(0=>1), Instr:  MOV_R_M : ld  al, DS:[esi]

---=================

Is this a bug in the current version of GEM5 where vaddr and paddr are not being mapped?

Alain

On Apr 5, 2024, at 12:45 AM, Alain Aoun via gem5-users gem5-users@gem5.org wrote:

Hi,

I am simulation an elf_i386 (32-bit x86) assembly code in SE mode. In my assembly code, there is mov al, [esi] where esi is set to 0x1970.
When running my simulation I get the following error: "panic: Tried to read unmapped address 0x1970."

I am initializing the DRAM with a binary disk image which contains my data that the benchmark is expected to use. My GEM5 configuration includes the following:

---=====================
system.mem_mode = "timing"
system.mem_ranges = [AddrRange("8000MB")]
system.mem_ctrl = MemCtrl()
system.mem_ctrl.dram = DDR3_1600_8x8()
system.mem_ctrl[0].dram.image_file = 'binary_disk_image.bin'
system.mem_ctrl.dram.range = system.mem_ranges[0]
system.mem_ctrl.port = system.membus.mem_side_ports

---=====================

Any suggestion on how to resolve this error?

Thanks!
Alain


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

Hi again, Debugging seems to show that the TLB (vaddr) is not mapped to the physical address. Below the output of the debugging: ================================================== system.cpu.[tid:0]: Reading integer reg rsi (6) as 0x1970. global: MOV_R_M : ld: The address is 0x1970 system.cpu.mmu.dtb: Translating vaddr 0x1970. system.cpu.mmu.dtb: In protected mode. system.cpu.mmu.dtb: Paging enabled. system.cpu.mmu.dtb: Handling a TLB miss for address 0x1970 at pc 0x8049014. system.cpu: A0 T0 : 0x8049014 @multiply1 : mov al, DS:[esi] system.cpu: A0 T0 : 0x8049014 @multiply1. 0 : MOV_R_M : ld al, DS:[esi] : MemRead : A=0x1970 flags=(IsInteger|IsLoad|IsMicroop|IsLastMicroop|IsFirstMicroop) system.cpu: Fault occured. Handling the fault src/arch/x86/faults.cc:166<http://faults.cc:166/>: panic: Tried to read unmapped address 0x1970. PC: (0x8049014=>0x8049016).(0=>1), Instr: MOV_R_M : ld al, DS:[esi] ================================================== Is this a bug in the current version of GEM5 where vaddr and paddr are not being mapped? Alain On Apr 5, 2024, at 12:45 AM, Alain Aoun via gem5-users <gem5-users@gem5.org> wrote: Hi, I am simulation an elf_i386 (32-bit x86) assembly code in SE mode. In my assembly code, there is mov al, [esi] where esi is set to 0x1970. When running my simulation I get the following error: "panic: Tried to read unmapped address 0x1970." I am initializing the DRAM with a binary disk image which contains my data that the benchmark is expected to use. My GEM5 configuration includes the following: ====================================================== system.mem_mode = "timing" system.mem_ranges = [AddrRange("8000MB")] system.mem_ctrl = MemCtrl() system.mem_ctrl.dram = DDR3_1600_8x8() system.mem_ctrl[0].dram.image_file = 'binary_disk_image.bin' system.mem_ctrl.dram.range = system.mem_ranges[0] system.mem_ctrl.port = system.membus.mem_side_ports ====================================================== Any suggestion on how to resolve this error? Thanks! Alain _______________________________________________ gem5-users mailing list -- gem5-users@gem5.org To unsubscribe send an email to gem5-users-leave@gem5.org