diff --git a/.gitignore b/.gitignore index f0d11366..2c573fb6 100644 --- a/.gitignore +++ b/.gitignore @@ -3,12 +3,9 @@ /test-img /hvisor.S /hvisor-elf.txt -/images/aarch64/virtdisk/* -/images/aarch64/kernel/* -/images/aarch64/devicetree/*.dtb -/images/riscv64/virtdisk/* -/images/riscv64/kernel/* -/images/riscv64/devicetree/*.dtb +/images/* +/platform/*/*/image/kernel/* +/platform/*/*/image/virtdisk/* /tools/hvisor /tmp *.mod.[co] diff --git a/platform/aarch64/qemu-gicv2/cargo/config.template.toml b/platform/aarch64/qemu-gicv2/cargo/config.template.toml index 9e6c399d..85e2f56c 100644 --- a/platform/aarch64/qemu-gicv2/cargo/config.template.toml +++ b/platform/aarch64/qemu-gicv2/cargo/config.template.toml @@ -2,6 +2,6 @@ runner = "platform/__ARCH__/__BOARD__/test/runner.sh" rustflags = [ "-Clink-arg=-Tplatform/__ARCH__/__BOARD__/linker.ld", - "-Ctarget-feature=+a53,+v8a,+strict-align,-neon,-fp-armv8", + "-Ctarget-feature=+a72,+v8a,+strict-align,-neon,-fp-armv8", "-Cforce-frame-pointers=yes", ] \ No newline at end of file diff --git a/platform/aarch64/qemu-gicv2/image/dts/zone0.dts b/platform/aarch64/qemu-gicv2/image/dts/zone0.dts index 6aad8f57..f6cc5a69 100644 --- a/platform/aarch64/qemu-gicv2/image/dts/zone0.dts +++ b/platform/aarch64/qemu-gicv2/image/dts/zone0.dts @@ -15,7 +15,7 @@ phandle = <0x8010>; reg = <0x00>; enable-method = "psci"; - compatible = "arm,cortex-a53"; + compatible = "arm,cortex-a72"; device_type = "cpu"; }; @@ -23,7 +23,7 @@ phandle = <0x800f>; reg = <0x01>; enable-method = "psci"; - compatible = "arm,cortex-a53"; + compatible = "arm,cortex-a72"; device_type = "cpu"; }; }; diff --git a/platform/aarch64/qemu-gicv3/cargo/config.template.toml b/platform/aarch64/qemu-gicv3/cargo/config.template.toml index 9e6c399d..85e2f56c 100644 --- a/platform/aarch64/qemu-gicv3/cargo/config.template.toml +++ b/platform/aarch64/qemu-gicv3/cargo/config.template.toml @@ -2,6 +2,6 @@ runner = "platform/__ARCH__/__BOARD__/test/runner.sh" rustflags = [ "-Clink-arg=-Tplatform/__ARCH__/__BOARD__/linker.ld", - "-Ctarget-feature=+a53,+v8a,+strict-align,-neon,-fp-armv8", + "-Ctarget-feature=+a72,+v8a,+strict-align,-neon,-fp-armv8", "-Cforce-frame-pointers=yes", ] \ No newline at end of file diff --git a/platform/aarch64/qemu-gicv3/configs/zone1-linux.json b/platform/aarch64/qemu-gicv3/configs/zone1-linux.json index b5d615db..1d24090d 100644 --- a/platform/aarch64/qemu-gicv3/configs/zone1-linux.json +++ b/platform/aarch64/qemu-gicv3/configs/zone1-linux.json @@ -26,9 +26,12 @@ "dtb_load_paddr": "0x50000000", "entry_point": "0x50400000", "arch_config": { + "gic_version": "v3", "gicd_base": "0x8000000", "gicd_size": "0x10000", "gicr_base": "0x80a0000", - "gicr_size": "0xf60000" + "gicr_size": "0xf60000", + "gits_base": "0x8080000", + "gits_size": "0x20000" } } \ No newline at end of file diff --git a/platform/aarch64/qemu-gicv3/configs/zone1-ruxos.json b/platform/aarch64/qemu-gicv3/configs/zone1-ruxos.json index 7d2855c6..2f0216a7 100644 --- a/platform/aarch64/qemu-gicv3/configs/zone1-ruxos.json +++ b/platform/aarch64/qemu-gicv3/configs/zone1-ruxos.json @@ -25,9 +25,12 @@ "dtb_load_paddr": "0x50000000", "entry_point": "0x40080000", "arch_config": { + "gic_version": "v3", "gicd_base": "0x8000000", "gicd_size": "0x10000", "gicr_base": "0x80a0000", - "gicr_size": "0xf60000" + "gicr_size": "0xf60000", + "gits_base": "0x8080000", + "gits_size": "0x20000" } } \ No newline at end of file diff --git a/platform/aarch64/qemu-gicv3/image/dts/zone1-linux.dts b/platform/aarch64/qemu-gicv3/image/dts/zone1-linux.dts index 083488d0..8c8b0e06 100644 --- a/platform/aarch64/qemu-gicv3/image/dts/zone1-linux.dts +++ b/platform/aarch64/qemu-gicv3/image/dts/zone1-linux.dts @@ -14,14 +14,14 @@ cpu@2 { reg = <0x02>; enable-method = "psci"; - compatible = "arm,cortex-a57"; + compatible = "arm,cortex-a72"; device_type = "cpu"; }; cpu@3 { reg = <0x03>; enable-method = "psci"; - compatible = "arm,cortex-a57"; + compatible = "arm,cortex-a72"; device_type = "cpu"; }; diff --git a/platform/aarch64/qemu-gicv3/image/dts/zone1-ruxos.dts b/platform/aarch64/qemu-gicv3/image/dts/zone1-ruxos.dts index 009ce71b..0bff8963 100644 --- a/platform/aarch64/qemu-gicv3/image/dts/zone1-ruxos.dts +++ b/platform/aarch64/qemu-gicv3/image/dts/zone1-ruxos.dts @@ -22,7 +22,7 @@ cpu@2 { device_type = "cpu"; - compatible = "arm,cortex-a53"; + compatible = "arm,cortex-a72"; reg = <0x02>; clock-latency = <0xee6c>; next-level-cache = <0x02>; @@ -41,7 +41,7 @@ }; pmu { - compatible = "arm,cortex-a53-pmu"; + compatible = "arm,cortex-a72-pmu"; interrupts = <0x01 0x07 0x04>; interrupt-parent = <0x01>; interrupt-affinity = <0x03 0x04>; diff --git a/src/hypercall/mod.rs b/src/hypercall/mod.rs index 524488c8..ab97a746 100644 --- a/src/hypercall/mod.rs +++ b/src/hypercall/mod.rs @@ -212,7 +212,14 @@ impl<'a> HyperCall<'a> { ); } if config_size != core::mem::size_of::() as _ { - return hv_result_err!(EINVAL, "Invalid config!"); + return hv_result_err!( + EINVAL, + format!( + "hv_zone_start: config size should be {} bytes, but got {}", + core::mem::size_of::(), + config_size + ) + ); } let zone = zone_create(config)?; let boot_cpu = zone.read().cpu_set.first_cpu().unwrap();