On Tue, Mar 29, 2022 at 11:15 PM Idan Horowitz <idan.horow...@gmail.com> wrote: > > On Wed, 30 Mar 2022 at 02:16, Atish Patra <ati...@atishpatra.org> wrote: > > > > This is in for-next on Alistair's tree and fails to boot the kernel > > with the following error (found -d in_asm mode). > > Reverting the patch solves the issue. > > > > ---------------- > > IN: > > Priv: 1; Virt: 0 > > 0x0000000080201040: 18051073 csrrw zero,satp,a0 > > > > ---------------- > > IN: > > Priv: 1; Virt: 0 > > 0x0000000080201044: Address 0x80201044 is out of bounds. > > > > 0x0000000080201049: Address 0x80201049 is out of bounds. > > > > 0x000000008020104e: Address 0x8020104e is out of bounds. > > > > Disassembler disagrees with translator over instruction decoding > > Please report this to qemu-devel@nongnu.org > > > > ---------------- > > IN: > > Priv: 1; Virt: 0 > > 0x0000000080201050: Address 0x80201050 is out of bounds. > > > > 0x0000000080201055: Address 0x80201055 is out of bounds. > > > > 0x000000008020105a: Address 0x8020105a is out of bounds. > > > > Disassembler disagrees with translator over instruction decoding > > Please report this to qemu-devel@nongnu.org > > > > ---------------- > > IN: > > Priv: 1; Virt: 0 > > 0x000000008020105c: Address 0x8020105c is out of bounds. > > > > Disassembler disagrees with translator over instruction decoding > > Please report this to qemu-devel@nongnu.org > > > > -- > > Regards, > > Atish > > Do you have more specific information about which kernel image doesn't boot?
I tested on v5.17 built from defconfig for rv64. > The errors you're seeing simply mean that these addresses are not > translated by the new address translation context set by the write to > the satp. > To be honest I don't immediately see how this could be caused by the > patch, as it modifies the behaviour of the sfence.vma instruction, and > there are none in your trace. > There was a sfence.vma. I just did not share the detailed trace before. Here is the kernel code executing sfence.vma https://elixir.bootlin.com/linux/v5.17/source/arch/riscv/kernel/head.S#L122 Here is the detailed trace that should provide more information. ------------------------------------------------------------------------------------------------------------------------------ ---------------- IN: Priv: 1; Virt: 0 0x0000000080a04664: 70e2 ld ra,56(sp) 0x0000000080a04666: 7442 ld s0,48(sp) 0x0000000080a04668: 74a2 ld s1,40(sp) 0x0000000080a0466a: 7902 ld s2,32(sp) 0x0000000080a0466c: 69e2 ld s3,24(sp) 0x0000000080a0466e: 6a42 ld s4,16(sp) 0x0000000080a04670: 6aa2 ld s5,8(sp) 0x0000000080a04672: 6121 addi sp,sp,64 0x0000000080a04674: 8082 ret ---------------- IN: Priv: 1; Virt: 0 0x0000000080201132: 00a05517 auipc a0,10506240 # 0x80c06132 0x0000000080201136: ece50513 addi a0,a0,-306 0x000000008020113a: ec7ff0ef jal ra,-314 # 0x80201000 ---------------- IN: Priv: 1; Virt: 0 0x0000000080201000: 00d95597 auipc a1,14241792 # 0x80f96000 0x0000000080201004: 38858593 addi a1,a1,904 0x0000000080201008: 658c ld a1,8(a1) 0x000000008020100a: fffff617 auipc a2,-4096 # 0x8020000a 0x000000008020100e: ff660613 addi a2,a2,-10 0x0000000080201012: 8d91 sub a1,a1,a2 0x0000000080201014: 90ae add ra,ra,a1 0x0000000080201016: 00000617 auipc a2,0 # 0x80201016 0x000000008020101a: 02e60613 addi a2,a2,46 0x000000008020101e: 962e add a2,a2,a1 0x0000000080201020: 10561073 csrrw zero,stvec,a2 ---------------- IN: Priv: 1; Virt: 0 0x0000000080201024: 00c55613 srli a2,a0,12 0x0000000080201028: 83018593 addi a1,gp,-2000 0x000000008020102c: 618c ld a1,0(a1) 0x000000008020102e: 8e4d or a2,a2,a1 0x0000000080201030: 010f7517 auipc a0,17788928 # 0x812f8030 0x0000000080201034: fd050513 addi a0,a0,-48 0x0000000080201038: 8131 srli a0,a0,12 0x000000008020103a: 8d4d or a0,a0,a1 0x000000008020103c: 12000073 sfence.vma zero,zero ---------------- IN: Priv: 1; Virt: 0 0x0000000080201040: 18051073 csrrw zero,satp,a0 ---------------- IN: Priv: 1; Virt: 0 0x0000000080201044: Address 0x80201044 is out of bounds. 0x0000000080201049: Address 0x80201049 is out of bounds. 0x000000008020104e: Address 0x8020104e is out of bounds. Disassembler disagrees with translator over instruction decoding Please report this to qemu-devel@nongnu.org ---------------- IN: Priv: 1; Virt: 0 0x0000000080201050: Address 0x80201050 is out of bounds. 0x0000000080201055: Address 0x80201055 is out of bounds. 0x000000008020105a: Address 0x8020105a is out of bounds. Disassembler disagrees with translator over instruction decoding Please report this to qemu-devel@nongnu.org ---------------- IN: Priv: 1; Virt: 0 0x000000008020105c: Address 0x8020105c is out of bounds. Disassembler disagrees with translator over instruction decoding Please report this to qemu-devel@nongnu.org ------------------------------------------------------------------------------------------------------------------------------ > Idan Horowitz -- Regards, Atish