From 56bd0decc91e034b642cc7154711cc2b11f2f700 Mon Sep 17 00:00:00 2001 From: bunnie Date: Sat, 30 Nov 2024 02:18:31 +0800 Subject: [PATCH] add loader-feature flag; simplify cramium-soc target the `cramium-soc` target is now the simulation target (just the bare bones chip in a simulation harness, using the `dabao` board configuration which is basically just a breakout board). baosec continues to be the prototype for the first USB dongle coming out. --- xtask/src/main.rs | 37 +++++++++---------------------------- 1 file changed, 9 insertions(+), 28 deletions(-) diff --git a/xtask/src/main.rs b/xtask/src/main.rs index 113d483d4..e7cedfb3b 100644 --- a/xtask/src/main.rs +++ b/xtask/src/main.rs @@ -172,6 +172,10 @@ fn main() -> Result<(), Box> { for feature in kern_features { builder.add_kernel_feature(&feature); } + let loader_features = get_flag("--loader-feature")?; + for feature in loader_features { + builder.add_loader_feature(&feature); + } if !language_set { // the default language is english @@ -513,7 +517,7 @@ fn main() -> Result<(), Box> { // ------ Cramium hardware image configs ------ Some("cramium-fpga") | Some("cramium-soc") => { - let board = "board-baosec"; + let board = "board-dabao"; // select the board builder.add_feature(board); builder.add_loader_feature(board); @@ -522,35 +526,14 @@ fn main() -> Result<(), Box> { // placement in flash is a tension between dev convenience and RAM usage. Things in flash // are resident, non-swapable, but end up making the slow kernel burn process take longer. let cramium_flash_pkgs = - ["xous-ticktimer", "xous-log", "xous-names" /* , "usb-device-xous" */].to_vec(); - let cramium_swap_pkgs = ["cram-console", "cram-hal-service"].to_vec(); - // minimal config for USB debugging - // let cramium_swap_pkgs = ["usb-device-xous"].to_vec(); // , "cram-console" - if !builder.is_swap_set() { - builder.set_swap(0, 8 * 1024 * 1024); - } - builder.add_loader_feature("board-bringup"); - // builder.add_loader_feature("spim-test"); - // builder.add_loader_feature("spi-alt-channel"); // this flag, when asserted, uses the J_QSPI - // header. By default, we use JPC7_13 (J_QSPI does not work, for some reason; bit 3 is stuck - // high...) - // builder.add_loader_feature("irq-test"); - // builder.add_loader_feature("usb-test"); - // builder.add_loader_feature("trng-test"); - // builder.add_loader_feature("dump-trng"); - // builder.add_loader_feature("usb"); - // builder.add_loader_feature("qr"); - // builder.add_feature("usb"); // needed if usb-device-xous is selected - builder.add_loader_feature("swap"); - builder.add_kernel_feature("swap"); - builder.add_feature("swap"); + ["xous-ticktimer", "xous-log", "xous-names" /* "cram-hal-service" */].to_vec(); + let cramium_swap_pkgs = [].to_vec(); builder.add_loader_feature("debug-print"); - builder.add_kernel_feature("debug-swap"); // builder.add_kernel_feature("debug-print"); // builder.add_kernel_feature("debug-swap-verbose"); - builder.add_feature("quantum-timer"); + // builder.add_feature("quantum-timer"); // builder.add_feature("auto-trng"); // automatically initialize TRNG tester inside USB stack builder.add_kernel_feature("v2p"); // builder.add_feature("mass-storage"); @@ -564,9 +547,6 @@ fn main() -> Result<(), Box> { }; broken_aes_cleanup = true; - // It is important that this is the first service added, because the swapper *must* be in PID 2 - builder.add_service("xous-swapper", LoaderRegion::Flash); - for service in cramium_flash_pkgs { builder.add_service(service, LoaderRegion::Flash); } @@ -615,6 +595,7 @@ fn main() -> Result<(), Box> { builder.add_kernel_feature("v2p"); builder.add_loader_feature("sram-margin"); builder.add_loader_feature("usb"); + builder.add_loader_feature("updates"); match task.as_deref() { Some("baosec") => builder.target_cramium_soc(), _ => panic!("should be unreachable"),