Open seceng-jan opened 1 year ago
Quick update: I was able to fix the overlapping memory regions. The problem was in the keystone.json
file from the firemarshal-keystone git. I deleted the qemu-args
line, then it works. The host-init always checks out the v1.0.0 branch of keystone, I modified that to use the dev branch. This is the modified host-init.c
#!/bin/sh
set -e
if [ $(command -v cmake3) ]; then
echo "Using cmake3"
alias cmake=cmake3
fi
if [ ! -d keystone ]; then
git clone https://github.com/keystone-enclave/keystone keystone
fi
# set qemu -bios argument to bootrom.bin we will build
PWD=$(pwd)
sed -e 's#\-bios .*bootrom.bin#\-bios '$PWD'/keystone/build/bootrom.build/bootrom.bin#g' -i keystone.json
cd keystone
git checkout dev
./fast-setup.sh
. ./source.sh
mkdir -p build
cd build
cmake .. -Dfiresim=y
make patch
make bootrom
make qemu
make examples
The boot sequence in qemu still fails, however, at lest there is an error now. I am assuming that the same happens on the FPGA but without the error message.
[ 0.203991] syscon-poweroff: probe of soc:poweroff failed with error -16
[ 0.206469] debug_vm_pgtable: [debug_vm_pgtable ]: Validating architecture page table helpers
[ 0.223567] /dev/root: Can't open blockdev
[ 0.224347] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
[ 0.224546] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 5.19.0 #2
[ 0.224699] Hardware name: riscv-virtio,qemu (DT)
[ 0.224836] Call Trace:
[ 0.224982] [<ffffffff80005238>] dump_backtrace+0x1c/0x24
[ 0.225075] [<ffffffff803556d0>] show_stack+0x2c/0x38
[ 0.225128] [<ffffffff8035bc90>] dump_stack_lvl+0x3c/0x54
[ 0.225208] [<ffffffff8035bcbc>] dump_stack+0x14/0x1c
[ 0.225287] [<ffffffff80355a6a>] panic+0x102/0x298
[ 0.225372] [<ffffffff804012c0>] mount_block_root+0x15e/0x20a
[ 0.225462] [<ffffffff804014ae>] mount_root+0x142/0x15c
[ 0.225545] [<ffffffff80401600>] prepare_namespace+0x138/0x17a
[ 0.225630] [<ffffffff80400ebe>] kernel_init_freeable+0x1e8/0x202
[ 0.225721] [<ffffffff8035d75c>] kernel_init+0x1e/0x10a
[ 0.225802] [<ffffffff80003310>] ret_from_exception+0x0/0xc
[ 0.226224] ---[ end Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0) ]---
Hi,
i am trying to run keystone on an Alveo 250 FPGA using Chipyard and Firesim. When I execute the workload, the boot hangs after
[ 0.249572] Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
similar to #235. Firesim is in version 1.17.0 and FireMarshal is on the current master. I have tried several versions of FireMarshal, including thedev
branch as suggested in the documentation but it didn't help.I guess that the problem has to do with the memory layout. When I run the workload in qemu (
./marshal -v launch boards/chipyard/firemarshal-2/keystone.json
), it fails with the following messageDo you know where it's going wrong and what I can do to fix it?
This is the entire boot log on the FPGA: