diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 1d519e9..3936175 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -144,6 +144,24 @@ jobs: git+https://github.com/antmicro/tuttest.git@c44309e0365c54759fb36864fb77bf8b347bd647 repos: https://github.com/antmicro/pyrav4l2.git pyrav4l2 + riscv64-shared-dirs-test: + runs-on: ubuntu-latest + needs: send-to-releases + if: ${{ !failure() && !github.event.act }} + steps: + - uses: actions/checkout@v3 + + - name: test + uses: ./ + with: + shared-dirs: tests + renode-run: | + echo "riscv64-shared-dirs-test" + - name: read + run: + ls ./shared + cat test.txt + arm32-test: runs-on: ubuntu-latest needs: send-to-releases diff --git a/action/device/hifive_unleashed/init.resc b/action/device/hifive_unleashed/init.resc index 94a77cf..d1b7a04 100644 --- a/action/device/hifive_unleashed/init.resc +++ b/action/device/hifive_unleashed/init.resc @@ -8,6 +8,9 @@ machine LoadPlatformDescription @action/device/hifive_unleashed/platform.repl machine LoadPlatformDescriptionFromString 'virtio: Storage.VirtIOBlockDevice @ sysbus 0x100d0000 { IRQ -> plic@50 }' virtio LoadImage @images/rootfs.img +machine LoadPlatformDescriptionFromString 'virtio2: Storage.VirtIOBlockDevice @ sysbus 0x100e0000 { IRQ -> plic@51 }' +virtio2 LoadImage @images/persistent.img true + showAnalyzer uart0 e51 LogFunctionNames true diff --git a/action/images.py b/action/images.py index 85a3faa..c6cab08 100644 --- a/action/images.py +++ b/action/images.py @@ -200,5 +200,9 @@ def burn_rootfs_image( run(["mkfs.ext4", "-d", "images/rootfs", "images/rootfs.img"], check=True, stdout=DEVNULL) + run(["truncate", "images/persistent.img", "-s", "128MB"], check=True) + run(["mkfs.ext4", "images/persistent.img"], + check=True, + stdout=DEVNULL) except CalledProcessError as e: sys.exit(e.returncode) diff --git a/action/run-in-renode.py b/action/run-in-renode.py index b0e0a8d..77e5c3e 100644 --- a/action/run-in-renode.py +++ b/action/run-in-renode.py @@ -18,6 +18,7 @@ from dependencies import add_repos, add_packages from images import prepare_shared_directories, prepare_kernel_and_initramfs, burn_rootfs_image from dispatcher import CommandDispatcher +from subprocess import run from datetime import datetime @@ -146,3 +147,6 @@ def test_task(test_task_str: str): dispatcher.add_task(test_task(args.get("renode-run", ""))) dispatcher.evaluate() + + run(["mkdir", "shared"], check=True) + run(["sudo", "mount", "images/persistent.img", "shared"], check=True) diff --git a/action/tasks/save_shared_dirs.yml b/action/tasks/save_shared_dirs.yml new file mode 100644 index 0000000..6e10de6 --- /dev/null +++ b/action/tasks/save_shared_dirs.yml @@ -0,0 +1,14 @@ +name: save_shared_dirs +shell: target +requires: [action_test] +echo: true +timeout: 5 +fail-fast: false +check-exit-code: false +commands: + - echo "TEST" + - mkdir -p host_dir + - mount /dev/vdb host_dir + - ls host_dir + - echo "file from Renode" > host_dir/test.txt + - umount host_dir diff --git a/kernel/riscv64-hifive_unleashed/patches/linux/0001-linux-dts-patches.patch b/kernel/riscv64-hifive_unleashed/patches/linux/0001-linux-dts-patches.patch index d151de9..f63e979 100644 --- a/kernel/riscv64-hifive_unleashed/patches/linux/0001-linux-dts-patches.patch +++ b/kernel/riscv64-hifive_unleashed/patches/linux/0001-linux-dts-patches.patch @@ -15,7 +15,7 @@ diff --git a/arch/riscv/boot/dts/sifive/hifive-unleashed-a00.dts b/arch/riscv/bo index dddabfbbc7a9..15e528335102 100644 --- a/arch/riscv/boot/dts/sifive/hifive-unleashed-a00.dts +++ b/arch/riscv/boot/dts/sifive/hifive-unleashed-a00.dts -@@ -29,6 +29,12 @@ memory@80000000 { +@@ -29,6 +29,18 @@ memory@80000000 { }; soc { @@ -24,6 +24,12 @@ index dddabfbbc7a9..15e528335102 100644 + reg = <0x00 0x100d0000 0x00 0x150>; + interrupt-parent = <&plic0>; + interrupts = <50>; ++ }; ++ virtio@100e0000 { ++ compatible = "virtio,mmio"; ++ reg = <0x00 0x100e0000 0x00 0x150>; ++ interrupt-parent = <&plic0>; ++ interrupts = <51>; + }; };