1 --------------------------------------------------------------------------
2 -- Copyright (c) 2015-2016, 2019 ETH Zurich.
3 -- All rights reserved.
5 -- This file is distributed under the terms in the attached LICENSE file.
6 -- If you do not find this file, copies can be found by writing to:
7 -- ETH Zurich D-INFK, Universitaetstrasse 6, CH-8092 Zurich. Attn: Systems Group.
9 -- Hakefile for /platforms/
11 --------------------------------------------------------------------------
13 let bin_rcce_lu = [ "/sbin/" ++ f | f <- [
22 bin_rcce_bt = [ "/sbin/" ++ f | f <- [
30 tests_common = [ "/sbin/" ++ f | f <- [
37 "nkmtest_modify_flags",
39 "nkmtest_vnode_inherit",
40 "nkmtest_vnode_inherit_no_delete",
44 "test_create_l1l2_cnodes",
53 tests_x86 = [ "/sbin/" ++ f | f <- [
55 "tests/numatest" ] ] ++ tests_common
57 tests_x86_64 = [ "/sbin/" ++ f | f <- [
61 "bomp_cpu_bound_progress",
70 "mdbtest_range_query",
73 "memtest_pmap_array_mcn",
75 "memtest_pmap_list_mcn",
79 "nkmtest_invalid_mappings",
92 "tests/xphi_nameservice_test",
100 "xcorecapserv" ] ] ++ tests_x86
103 tests_k1om = [ "/sbin/" ++ f | f <- [
105 "tests/xeon_phi_inter",
106 "tests/xeon_phi_test",
107 "tests/xphi_nameservice_test" ] ] ++ tests_x86
109 bench_common = [ "/sbin/" ++ f | f <- [
110 "channel_cost_bench",
111 "flounder_stubs_buffer_bench",
112 "flounder_stubs_empty_bench",
113 "flounder_stubs_payload_bench",
116 bench_x86 = [ "/sbin/" ++ f | f <- [
117 "multihop_latency_bench",
120 "thc_v_flounder_empty",
130 bench_x86_64 = bench_x86 ++ bin_rcce_bt ++ bin_rcce_lu ++
131 [ "/sbin/" ++ f | f <- [
134 "benchmarks/bomp_mm",
135 "benchmarks/dma_bench",
136 "benchmarks/vspace_map",
137 "benchmarks/xomp_share",
138 "benchmarks/xomp_spawn",
139 "benchmarks/xomp_work",
140 "benchmarks/xphi_ump_bench",
144 "bulk_transfer_passthrough",
146 "bulkbench_micro_echo",
147 "bulkbench_micro_rtt",
148 "bulkbench_micro_throughput",
150 "distops_standalone_runner",
151 "bench_delete_foreign_copy",
152 "bench_delete_last_copy",
153 "bench_delete_last_copy_remote",
154 "bench_delete_cnode_last_copy",
155 "bench_delete_cnode_last_copy_2",
156 "bench_delete_local_copy",
157 "bench_revoke_no_remote",
158 "bench_revoke_no_remote_standalone",
159 "bench_revoke_remote_copy",
160 "bench_revoke_with_remote_copies",
161 "bench_retype_no_remote",
162 "bench_retype_w_local_descendants",
163 "bench_retype_with_remote_copies",
165 "bench_noop_invocation",
169 "mdb_bench_noparent",
170 "mdb_bench_linkedlist",
173 "phases_scale_bench",
176 "shared_mem_clock_bench",
179 bench_k1om = [ "/sbin/" ++ f | f <- [
180 "benchmarks/bomp_mm",
181 "benchmarks/dma_bench",
182 "benchmarks/xomp_share",
183 "benchmarks/xomp_spawn",
184 "benchmarks/xomp_work",
185 "benchmarks/xphi_ump_bench",
186 "benchmarks/xphi_xump_bench" ] ] ++ bench_x86
188 -- Example program modules
189 modules_xmpl = [ "/sbin/" ++ f | f <- [
190 --"examples/xmpl-call-response",
192 "examples/xmpl-hello",
193 --"examples/xmpl-msg",
194 --"examples/xmpl-rpc_msg",
195 --"examples/xmpl-rpc_rpc",
196 "examples/xmpl-span",
197 "examples/xmpl-spawn",
198 "examples/xmpl-thc-binding",
199 --"examples/xmpl-thc-lang",
200 "examples/xmpl-thread",
201 "examples/xmpl-thread-min",
202 "examples/xmpl-trace" ] ]
204 -- Default list of modules to build/install for all enabled architectures
205 modules_common = [ "/sbin/" ++ f | f <- [
215 -- List of modules that are arch-independent and always built
217 "/eclipseclp_ramfs.cpio.gz",
218 "/skb_ramfs.cpio.gz" ]
220 -- x86_64-specific modules to build by default
221 -- this should shrink as targets are ported and move into the generic list above
222 modules_x86_64 = [ "/sbin/" ++ f | f <- [
234 "block_server_client",
277 -- the following are broken in the newidc system
278 modules_x86_64_broken = [ "/sbin/" ++ f | f <- [
286 modules_k1om = [ "/sbin/" ++ f | f <- [
291 "corectrl" ] ] ++ modules_common
293 -- ARMv7-a Pandaboard modules
294 pandaModules = [ "/sbin/" ++ f | f <- [
317 "driverdomain_pl390",
321 -- ARMv7-A modules for Versatile Express EMM board (GEM5, qemu)
322 vExpressEMMModules_A15 = [ "/sbin/" ++ f | f <- [
340 "driverdomain_pl390",
344 -- ARMv7-A modules for Versatile Express EMM board (FVP)
345 vExpressEMMModules_A9 = [ "/sbin/" ++ f | f <- [
364 -- ARMv7-A modules for the Xilinx Zynq7000
365 zynq7Modules = [ "/sbin/" ++ f | f <- [
383 -- ARMv8 modules for running under QEMU
384 armv8_modules= [ "/sbin/" ++ f | f <- [
406 -- ARMv8 modules for running on the colibri imx8x boards
407 imx8x_modules = [ "/sbin/" ++ f | f <- [
416 -- Rules to build assorted platforms
419 platform "X86_64_Basic" [ "x86_64" ]
420 ([ ("x86_64", f) | f <- modules_x86_64 ]
422 [ ("", f) | f <- modules_generic])
423 "Basic 64-bit x86 PC build",
425 platform "X86_64_Benchmarks" [ "x86_64" ]
426 ([ ("x86_64", f) | f <- modules_x86_64 ++ bench_x86_64]
428 [ ("", f) | f <- modules_generic])
429 "64-bit x86 PC build with benchmarks",
431 platform "X86_64_Full" [ "x86_64" ]
432 ([ ("x86_64", f) | f <- modules_x86_64 ++ bench_x86_64 ++ tests_x86_64 ++ modules_xmpl ]
434 [ ("", f) | f <- modules_generic])
435 "64-bit x86 PC build with benchmarks and test suites",
437 platform "K1OM_Basic" [ "k1om" ]
438 ([ ("k1om", f) | f <- modules_k1om ]
440 [ ("", f) | f <- modules_generic])
441 "Basic Xeon Phi build",
443 platform "K1OM_Benchmarks" [ "k1om" ]
444 ([ ("k1om", f) | f <- modules_k1om ++ bench_k1om]
446 [ ("", f) | f <- modules_generic])
447 "Xeon Phi build with benchmarks",
449 platform "K1OM_Full" [ "k1om" ]
450 ([ ("k1om", f) | f <- modules_k1om ++ bench_k1om ++ tests_k1om ]
452 [ ("", f) | f <- modules_generic])
453 "Xeon Phi build with benchmarks and test suites",
455 platform "ARMV7_Basic" [ "armv7" ]
456 ([ ("armv7", f) | f <- pandaModules ]
458 [ ("", f) | f <- modules_generic])
461 platform "ARMV8_Basic" [ "armv8" ]
462 ([ ("armv8", f) | f <- armv8_modules ]
464 [ ("", f) | f <- modules_generic])
467 platform "FVP" [ "armv8" ]
468 ([ ("armv8", "/sbin/cpu_a57_fvp"), ("armv8", "/sbin/boot_armv8_generic") ]
470 [ ("armv8", f) | f <- armv8_modules ]
472 [ ("", f) | f <- modules_generic])
473 "ARM Virtual Machine Board with ARM Cortex A57 processors in Fixed Virtual Platform.",
475 platform "ARM_FastModels_Base_A57" [ "armv8" ]
476 [ ("root", "/armv8_a57_fvp_base_image") ]
477 "ARM FastModels Base Board with A57 processors.",
479 platform "QEMU" [ "armv8" ]
480 ([ ("armv8", "/sbin/cpu_a57_qemu"), ("armv8", "/sbin/boot_armv8_generic") ]
482 [ ("armv8", f) | f <- armv8_modules ]
484 [ ("", f) | f <- modules_generic])
485 "ARM Virtual Machine Board with ARM Cortex A57 processors in QEMU",
487 platform "QEMU_U-Boot" [ "armv8" ]
488 ([ ("armv8", "/sbin/cpu_a57_qemu"), ("armv8", "/sbin/boot_armv8_generic") ]
490 [ ("armv8", f) | f <- armv8_modules ]
492 [ ("", f) | f <- modules_generic]
494 [ ("root", "/armv8_a57_qemu_image.efi") ])
495 "ARM Virtual Machine Board with ARM Cortex A57 processors in QEMU",
497 platform "APM88xxxx" [ "armv8" ]
498 ([ ("armv8", "/sbin/cpu_apm88xxxx"), ("armv8", "/sbin/boot_armv8_generic")]
500 [ ("armv8", f) | f <- armv8_modules ]
502 [ ("", f) | f <- modules_generic]
504 "The APM XGene development board (Mustang)",
506 platform "ThunderX" [ "armv8" ]
507 ([ ("armv8", "/sbin/cpu_cn88xx"), ("armv8", "/sbin/boot_armv8_generic") ]
509 [ ("armv8", f) | f <- armv8_modules ]
511 [ ("", f) | f <- modules_generic]
513 "Cavium ThunderX-1 (CN88xx) boards",
515 platform "RaspberryPi3" [ "armv8" ]
516 ([ ("armv8", "/sbin/cpu_a53_rpi3"), ("armv8", "/sbin/boot_armv8_generic") ]
518 [ ("armv8", f) | f <- armv8_modules ]
520 [ ("", f) | f <- modules_generic]
522 [ ("root", "/armv8_rpi3_image.efi") ])
523 "Raspberry Pi 3 quad ARM Cortex A53",
525 platform "imx8x" [ "armv8" ]
526 ([ ("armv8", "/sbin/cpu_imx8x"), ("armv8", "/sbin/boot_armv8_generic") ]
528 [ ("root", "/armv8_imx8x_image.efi") ])
531 platform "PandaboardES" [ "armv7" ]
532 ([ ("armv7", f) | f <- pandaModules ] ++
533 [ ("root", "/armv7_omap44xx_image"),
534 ("root", "/armv7_omap44xx_image-gdb.gdb") ])
535 "Standard Pandaboard ES build image and modules",
537 platform "VExpressEMM-A15" [ "armv7" ]
538 ([ ("armv7", f) | f <- vExpressEMMModules_A15 ] ++
539 [ ("root", "/armv7_a15ve_1_image"),
540 ("root", "/armv7_a15ve_1_image-gdb.gdb"),
541 ("root", "/armv7_a15ve_fvp_1_image"),
542 ("root", "/armv7_a15ve_fvp_1_image-gdb.gdb"),
543 ("root", "/armv7_a15ve_2_image"),
544 ("root", "/armv7_a15ve_2_image-gdb.gdb"),
545 ("root", "/armv7_a15ve_4_image"),
546 ("root", "/armv7_a15ve_4_image-gdb.gdb"),
547 ("root", "/armv7_a15ve_fvp_4_image"),
548 ("root", "/armv7_a15ve_fvp_4_image-gdb.gdb"),
549 ("root", "/armv7_a15ve_gem5_image"),
550 ("root", "/armv7_a15ve_gem5_image-gdb.gdb") ])
551 "VersatileExpress EMM board with ARM Cortex-A15s",
553 platform "VExpressEMM-A15-A7" [ "armv7" ]
554 ([ ("armv7", f) | f <- vExpressEMMModules_A15 ] ++
555 [ ("root", "/armv7_a15a7ve_image"),
556 ("root", "/armv7_a15a7ve_image-gdb.gdb") ])
557 "VersatileExpress EMM board with ARM Cortex-A15s and A7s",
559 platform "VExpressEMM-A9" [ "armv7" ]
560 ([ ("armv7", f) | f <- vExpressEMMModules_A9 ] ++
561 [ ("root", "/armv7_a9ve_1_image"),
562 ("root", "/armv7_a9ve_1_image-gdb.gdb"),
563 ("root", "/armv7_a9ve_4_image"),
564 ("root", "/armv7_a9ve_4_image-gdb.gdb") ])
565 "VersatileExpress EMM board for ARMv7-A Fixed Virtual Platforms",
567 platform "Zynq7000" [ "armv7" ]
568 ([ ("armv7", f) | f <- zynq7Modules ] ++
569 [ ("root", "/armv7_zynq7_image"),
570 ("root", "/armv7_zynq7_image-gdb.gdb") ])
574 -- Rules to build assorted boot images
577 -- Build the default PandaBoard boot image
578 armv7Image "armv7_omap44xx" "omap44xx" "omap44xx" "0x80000000" modules_generic pandaModules,
580 -- Build the A15 simulation image (VersatileExpress EMM board, 1 core)
581 armv7Image "armv7_a15ve_1" "ve" "a15ve" "0x80000000" modules_generic vExpressEMMModules_A15,
583 -- Build the A15 simulation image (VersatileExpress EMM board, 1 core, FVP
585 armv7Image "armv7_a15ve_fvp_1" "ve" "a15ve" "0x80000000" modules_generic vExpressEMMModules_A15,
587 -- Build the A15 simulation image (VersatileExpress EMM board, 2 cores)
588 armv7Image "armv7_a15ve_2" "ve" "a15ve" "0x80000000" modules_generic vExpressEMMModules_A15,
590 -- Build the A15 simulation image (VersatileExpress EMM board, 4 cores)
591 armv7Image "armv7_a15ve_4" "ve" "a15ve" "0x80000000" modules_generic vExpressEMMModules_A15,
593 -- Build the A15 simulation image (VersatileExpress EMM board, 4 cores,
595 armv7Image "armv7_a15ve_fvp_4" "ve" "a15ve" "0x80000000" modules_generic vExpressEMMModules_A15,
597 -- Build the A15 simulation image (VersatileExpress EMM board, with GEM5
599 armv7Image "armv7_a15ve_gem5" "ve" "a15ve" "0x80000000" modules_generic vExpressEMMModules_A15,
601 -- Build the big.LITTLE A15/A7 simulation image (VersatileExpress EMM
603 armv7Image "armv7_a15a7ve" "ve" "a15ve" "0x80000000" modules_generic vExpressEMMModules_A15,
605 -- Build the A9 simulation image (VersatileExpress EMM board, 1 core)
606 armv7Image "armv7_a9ve_1" "ve" "a9ve" "0x80000000" modules_generic vExpressEMMModules_A9,
608 -- Build the A9 simulation image (VersatileExpress EMM board, 4 cores)
609 armv7Image "armv7_a9ve_4" "ve" "a9ve" "0x80000000" modules_generic vExpressEMMModules_A9,
611 -- Build the Zynq7000 image
612 armv7Image "armv7_zynq7" "zynq7" "zynq7" "0x00000000" modules_generic zynq7Modules,
614 armv8Image "armv8_a57_qemu" "armv8_a57_qemu" "armv8_generic" "a57_qemu" modules_generic armv8_modules,
616 armv8Image "armv8_rpi3" "armv8_rpi3" "armv8_generic" "a53_rpi3" modules_generic armv8_modules,
618 armv8Image "armv8_imx8x" "armv8_imx8x" "armv8_generic" "imx8x" modules_generic (armv8_modules ++ imx8x_modules),
620 armv8EFIImage "armv8_a57_fvp_base" "armv8_a57_fvp_base" "armv8_generic" "a57_fvp" modules_generic armv8_modules,
622 armv8EFIImage "armv8_a57_qemu" "armv8_a57_qemu" "armv8_generic" "a57_qemu" modules_generic armv8_modules,
625 -- Booting: various targets for booting Barrelfish under different circumstances
628 -- Copy menu.list files across
629 Rules [ copyFile SrcTree "root" ("/hake/menu.lst." ++ p)
630 "root" ("/platforms/arm/menu.lst." ++ p)
631 | p <- [ "armv8_a57v",
633 "armv8_a57_fvp_base",
651 Rules [ copyFile SrcTree "root" ("/hake/menu.lst." ++ p)
652 "root" ("/platforms/x86/menu.lst." ++ p)
653 | p <- [ "x86_64", "k1om" ] ],
656 boot "gem5_armv7_vexpressemm" [ "armv7" ] [
657 In SrcTree "tools" "/tools/arm_gem5/boot_gem5.sh",
659 In BuildTree "root" "/armv7_a15ve_gem5_image" ]
660 "Boot an ARMv7a multicore image on a VersatileExpress EMM board in GEM5",
662 boot "FVP_VE_A5x1" [ "armv7" ] [
663 Str "FVP_VE_Cortex-A5x1",
664 In BuildTree "root" "/armv7_a9ve_1_image" ]
665 "Boot on a single-core Cortex-A5 FVP model",
667 boot "FVP_VE_A7x1" [ "armv7" ] [
668 Str "FVP_VE_Cortex-A7x1",
669 In BuildTree "root" "/armv7_a15ve_fvp_1_image" ]
670 "Boot on a single-core Cortex-A7 FVP model",
672 boot "FVP_VE_A9x1" [ "armv7" ] [
673 Str "FVP_VE_Cortex-A9x1",
674 In BuildTree "root" "/armv7_a9ve_1_image" ]
675 "Boot on a single-core Cortex-A9 FVP model",
677 boot "FVP_VE_A9x4" [ "armv7" ] [
678 Str "FVP_VE_Cortex-A9x4",
679 In BuildTree "root" "/armv7_a9ve_4_image" ]
680 "Boot on a four-core Cortex-A9 FVP model",
682 boot "FVP_VE_A15x1" [ "armv7" ] [
683 Str "FVP_VE_Cortex-A15x1",
684 In BuildTree "root" "/armv7_a15ve_fvp_1_image" ]
685 "Boot on a single-core Cortex-A15 FVP model",
687 boot "FVP_VE_A15x4" [ "armv7" ] [
688 Str "FVP_VE_Cortex-A15x4-A7x4",
689 In BuildTree "root" "/armv7_a15ve_fvp_4_image" ]
690 "Boot on a four-core Cortex-A15 FVP model",
692 boot "FVP_VE_A15x4_A7x4" [ "armv7" ] [
693 Str "FVP_VE_Cortex-A15x4-A7x4",
694 NStr "-a coretile.cluster0.*=",
695 In BuildTree "root" "/armv7_a15a7ve_image",
696 NStr "-a coretile.cluster1.*=",
697 In BuildTree "root" "/armv7_a15a7ve_image",
699 Str "coretile.dualclustersystemconfigurationblock.CFG_ACTIVECLUSTER=0x3"
701 "Boot on a 4+4-core Cortex-A15/A7 FVP model",
703 boot "FVP_VE_A17x1" [ "armv7" ] [
704 Str "FVP_VE_Cortex-A17x1",
705 In BuildTree "root" "/armv7_a15ve_fvp_1_image" ]
706 "Boot on a single-core Cortex-A17 FVP model",
708 boot "qemu_a15ve_1" [ "armv7" ] [
709 In SrcTree "tools" "/tools/qemu-wrapper.sh",
710 Str "--image", In BuildTree "root" "/armv7_a15ve_1_image",
711 Str "--arch", Str "a15ve",
712 Str "--smp", Str "1" ]
713 "Boot QEMU in 32-bit ARM mode emulating a Versatile Express board (1 core)",
715 boot "qemu_a15ve_2" [ "armv7" ] [
716 In SrcTree "tools" "/tools/qemu-wrapper.sh",
717 Str "--image", In BuildTree "root" "/armv7_a15ve_2_image",
718 Str "--arch", Str "a15ve",
719 Str "--smp", Str "2" ]
720 "Boot QEMU in 32-bit ARM mode emulating a Versatile Express board (2 core)",
722 boot "qemu_a15ve_4" [ "armv7" ] [
723 In SrcTree "tools" "/tools/qemu-wrapper.sh",
724 Str "--image", In BuildTree "root" "/armv7_a15ve_4_image",
725 Str "--arch", Str "a15ve",
726 Str "--smp", Str "4" ]
727 "Boot QEMU in 32-bit ARM mode emulating a Versatile Express board (4 cores)",
729 boot "qemu_zynq7" [ "armv7" ] [
730 In SrcTree "tools" "/tools/qemu-wrapper.sh",
731 Str "--image", In BuildTree "root" "/armv7_zynq7_image",
732 Str "--arch", Str "zynq7" ]
733 "Boot QEMU in 32-bit ARM mode emulating a Zynq 7000",
735 boot "qemu_a57" [ "armv8" ] ([
736 In SrcTree "tools" "/tools/qemu-wrapper.sh",
737 Str "--image", In BuildTree "root" "/armv8_a57_qemu_image",
738 Str "--arch", Str "armv8",
739 Str "--bios", In SrcTree "tools" "/tools/hagfish/QEMU_EFI.fd"
742 "Boot QEMU in 64-bit ARM mode emulating a ARM Virtual Machine using UEFI",
744 boot "qemu_a57_debug" [ "armv8" ] ([
745 In SrcTree "tools" "/tools/qemu-wrapper.sh",
746 Str "--image", In BuildTree "root" "/armv8_a57_qemu_image",
747 Str "--arch", Str "armv8",
748 Str "--bios", In SrcTree "tools" "/tools/hagfish/QEMU_EFI.fd",
749 Str "--debug", In SrcTree "tools" "/tools/debug.armv8.gdb" ]
751 "Boot QEMU in 64-bit ARM mode emulating a ARM Virtual Machine using UEFI with debugging enabled",
753 boot "qemu_a57_uboot" [ "armv8" ] ([
755 In SrcTree "tools" "/tools/qemu-wrapper.sh",
756 Str "--image", In BuildTree "root" "/armv8_a57_qemu_image.efi",
757 Str "--arch", Str "armv8",
758 Str "--uboot-img", In SrcTree "tools" "/tools/qemu-armv8-uboot.bin" ]
760 "Boot QEMU in 64-bit ARM mode emulating a ARM Virtual Machine using U-Boot",
762 boot_fastmodels "ARM_FastModels_Base_A57x1" [ "armv8" ]
763 "armv8_a57_fvp_base_image"
764 "ARM_FastModels/ARMv8_Base_A57x1/ARMv8_Base_A57x1"
766 "Boot on a ARM FastModels Base A57x1 Platform",
768 boot_fastmodels_lisa "ARM_FastModels_Barebones" [ "armv8" ]
769 "armv8_a57_fvp_base_image"
772 "Boot on a ARM FastModels based on Sven's Barebones",
774 boot_fastmodels "ARM_FastModels_Base_A57x4" [ "armv8" ]
775 "armv8_a57_fvp_base_image"
776 "ARM_FastModels/ARMv8_Base_A57x4"
778 "Boot on a ARM FastModels Base A57x4 Platform",
780 boot "qemu_x86_64" [ "x86_64" ] ([
781 In SrcTree "tools" "/tools/qemu-wrapper.sh",
782 Str "--menu", In BuildTree "root" "/platforms/x86/menu.lst.x86_64",
783 Str "--arch", Str "x86_64" ] ++ [
784 (Dep BuildTree "x86_64" f) | f <- modules_x86_64 ] ++ [
785 (Dep BuildTree "" f) | f <- modules_generic ])
786 "Boot QEMU in 64-bit x86 mode emulating a PC",
788 boot "qemu_x86_64_debug" [ "x86_64" ] ([
789 In SrcTree "tools" "/tools/qemu-wrapper.sh",
790 Str "--menu", In BuildTree "root" "/platforms/x86/menu.lst.x86_64",
791 Str "--arch", Str "x86_64",
792 Str "--debug", In SrcTree "tools" "/tools/debug.gdb" ] ++ [
793 (Dep BuildTree "x86_64" f) | f <- modules_x86_64 ] ++ [
794 (Dep BuildTree "" f) | f <- modules_generic ])
795 "Boot QEMU under GDB in 64-bit x86 mode emulating a PC",
797 boot "usbboot_panda" [ "armv7" ] [
798 In BuildTree "tools" "/bin/usbboot",
799 In BuildTree "root" "/armv7_omap44xx_image"
801 "Boot Barrelfish on a Pandaboard, over a local USB cable",
803 boot "usbboot_imx8x" [ "armv8" ] [
804 In SrcTree "tools" "/tools/imx8x/bf-boot.sh",
806 In BuildTree "root" "/armv8_imx8x_image.efi"
808 "Boot Barrelfish on a Colibri board, over a local USB cable"