Skip to content

Commit

Permalink
Default to purecap kernels for CheriBSD
Browse files Browse the repository at this point in the history
  • Loading branch information
brooksdavis committed Apr 17, 2024
1 parent 9992f9b commit f85626d
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 27 deletions.
2 changes: 1 addition & 1 deletion pycheribuild/projects/cross/cheribsd.py
Original file line number Diff line number Diff line change
Expand Up @@ -1835,7 +1835,7 @@ def setup_config_options(cls, kernel_only_target=False, install_directory_help=N
_allow_unknown_targets=True,
only_add_for_targets=cls.purecap_kernel_targets,
kind=KernelABI,
default=KernelABI.HYBRID,
default=KernelABI.PURECAP,
enum_choices=[KernelABI.HYBRID, KernelABI.PURECAP],
help="Select default kernel to build",
)
Expand Down
51 changes: 25 additions & 26 deletions tests/test_argument_parsing.py
Original file line number Diff line number Diff line change
Expand Up @@ -528,7 +528,7 @@ def test_kernconf():
freebsd_native = _get_target_instance("freebsd-amd64", config, BuildFreeBSD)
assert config.freebsd_kernconf is None
assert freebsd_riscv.kernel_config == "QEMU"
assert cheribsd_riscv_hybrid.kernel_config == "CHERI-QEMU"
assert cheribsd_riscv_hybrid.kernel_config == "CHERI-PURECAP-QEMU"
assert freebsd_native.kernel_config == "GENERIC"

# Check that --kernconf is used as the fallback
Expand Down Expand Up @@ -816,22 +816,22 @@ def test_disk_image_path(target, expected_name):
pytest.param(
"cheribsd-riscv64-purecap",
["--cheribsd/no-build-alternate-abi-kernels"],
["CHERI-QEMU"],
["CHERI-PURECAP-QEMU"],
),
pytest.param(
"cheribsd-riscv64-purecap",
["--cheribsd/build-fpga-kernels"],
[
"CHERI-QEMU",
"CHERI-PURECAP-QEMU",
"CHERI-QEMU",
],
),
pytest.param(
"cheribsd-riscv64-purecap",
[],
[
"CHERI-PURECAP-QEMU",
"CHERI-QEMU",
"CHERI-PURECAP-QEMU"
],
),
pytest.param(
Expand All @@ -846,35 +846,34 @@ def test_disk_image_path(target, expected_name):
"cheribsd-riscv64-purecap",
["--cheribsd/build-fett-kernels", "--cheribsd/no-build-alternate-abi-kernels"],
[
"CHERI-QEMU",
"CHERI-QEMU-FETT",
"CHERI-PURECAP-QEMU",
],
),
pytest.param(
"cheribsd-riscv64-purecap",
["--cheribsd/build-fett-kernels"],
[
"CHERI-PURECAP-QEMU",
"CHERI-QEMU",
"CHERI-QEMU-FETT",
"CHERI-PURECAP-QEMU",
],
),
pytest.param(
"cheribsd-riscv64-purecap",
["--cheribsd/build-bench-kernels", "--cheribsd/no-build-alternate-abi-kernels"],
[
"CHERI-QEMU",
"CHERI-QEMU-NODEBUG",
"CHERI-PURECAP-QEMU",
"CHERI-PURECAP-QEMU-NODEBUG",
],
),
pytest.param(
"cheribsd-riscv64-purecap",
["--cheribsd/build-bench-kernels"],
[
"CHERI-QEMU",
"CHERI-QEMU-NODEBUG",
"CHERI-PURECAP-QEMU",
"CHERI-PURECAP-QEMU-NODEBUG",
"CHERI-QEMU",
"CHERI-QEMU-NODEBUG",
],
),
pytest.param(
Expand All @@ -885,20 +884,19 @@ def test_disk_image_path(target, expected_name):
"--cheribsd/no-build-alternate-abi-kernels",
],
[
"CHERI-QEMU",
"CHERI-QEMU-FETT",
"CHERI-FETT",
"CHERI-PURECAP-QEMU",
"CHERI-PURECAP-FETT",
],
),
pytest.param(
"cheribsd-riscv64-purecap",
["--cheribsd/build-fett-kernels", "--cheribsd/build-fpga-kernels"],
[
"CHERI-PURECAP-QEMU",
"CHERI-QEMU",
"CHERI-QEMU-FETT",
"CHERI-PURECAP-QEMU",
"CHERI-FETT",
"CHERI-PURECAP-FETT",
"CHERI-FETT",
],
),
pytest.param(
Expand All @@ -910,18 +908,19 @@ def test_disk_image_path(target, expected_name):
pytest.param(
"cheribsd-aarch64",
[],
["GENERIC"]),
["GENERIC"]
),
pytest.param(
"cheribsd-morello-purecap",
["--cheribsd/no-build-alternate-abi-kernels"],
["GENERIC-MORELLO"],
["GENERIC-MORELLO-PURECAP"]
),
pytest.param(
"cheribsd-morello-purecap",
[],
[
"GENERIC-MORELLO",
"GENERIC-MORELLO-PURECAP",
"GENERIC-MORELLO",
],
),
pytest.param(
Expand Down Expand Up @@ -965,18 +964,18 @@ def test_kernel_configs(target, config_options: "list[str]", expected_kernels: "
"--cheribsd-mfs-root-kernel-riscv64-purecap/no-build-alternate-abi-kernels",
],
[
"CHERI-QEMU-MFS-ROOT",
"CHERI-GFE",
"CHERI-PURECAP-QEMU-MFS-ROOT",
"CHERI-PURECAP-GFE"
],
),
pytest.param(
"cheribsd-mfs-root-kernel-riscv64-purecap",
["--cheribsd-mfs-root-kernel-riscv64-purecap/build-fpga-kernels"],
[
"CHERI-QEMU-MFS-ROOT",
"CHERI-PURECAP-QEMU-MFS-ROOT",
"CHERI-GFE",
"CHERI-QEMU-MFS-ROOT",
"CHERI-PURECAP-GFE",
"CHERI-GFE",
],
),
pytest.param(
Expand All @@ -1002,10 +1001,10 @@ def test_kernel_configs(target, config_options: "list[str]", expected_kernels: "
"cheribsd-mfs-root-kernel-riscv64-purecap",
["--cheribsd/build-nocaprevoke-kernel"],
[
"CHERI-QEMU-MFS-ROOT",
"CHERI-NOCAPREVOKE-QEMU-MFS-ROOT",
"CHERI-PURECAP-QEMU-MFS-ROOT",
"CHERI-PURECAP-NOCAPREVOKE-QEMU-MFS-ROOT",
"CHERI-QEMU-MFS-ROOT",
"CHERI-NOCAPREVOKE-QEMU-MFS-ROOT",
],
),
],
Expand Down Expand Up @@ -1337,7 +1336,7 @@ def test_mfs_root_kernel_inherits_defaults_from_cheribsd():
],
)
assert cheribsd_riscv64_purecap.kernel_config == "BASE_CONFIG_RISCV64"
assert cheribsd_riscv64_hybrid.kernel_config == "CHERI-QEMU"
assert cheribsd_riscv64_hybrid.kernel_config == "CHERI-PURECAP-QEMU"
assert mfs_riscv64.kernel_config is None
assert mfs_riscv64_hybrid.kernel_config == "MFS_CONFIG_RISCV64_HYBRID"
_parse_arguments(
Expand Down

0 comments on commit f85626d

Please sign in to comment.