From 2c18341f00cf6a4d0fcf57b0da5f3b61df15f79d Mon Sep 17 00:00:00 2001 From: Ivan Velickovic Date: Fri, 16 Aug 2024 14:53:03 +1000 Subject: [PATCH 1/2] tool: add loader region to non-overlapping check Signed-off-by: Ivan Velickovic --- tool/microkit/src/loader.rs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tool/microkit/src/loader.rs b/tool/microkit/src/loader.rs index 1ff8fb9b5..ab0315504 100644 --- a/tool/microkit/src/loader.rs +++ b/tool/microkit/src/loader.rs @@ -270,7 +270,9 @@ impl<'a> Loader<'a> { } } - check_non_overlapping(&all_regions); + let mut all_regions_with_loader = all_regions.clone(); + all_regions_with_loader.push((image_vaddr, &image)); + check_non_overlapping(&all_regions_with_loader); let flags = match config.hypervisor { true => 1, From 6af54aa816ee7c1b1e1b0917f8e603c5fb9fbbcc Mon Sep 17 00:00:00 2001 From: Ivan Velickovic Date: Fri, 16 Aug 2024 14:56:37 +1000 Subject: [PATCH 2/2] Increase loader link address for MaaXBoard It was seen on larger Microkit systems that the loader data was overlapping with the code for the loader itself when the loader attempted to copy the data to the appropriate location before jumping to seL4 and starting the system. I believe the root cause of this problem is not gone and will involve changing the tool to be smarter with how it allocates physical memory, my current attempts to do so lead to other issues. I'll have to make a follow up fix to prevent this from happening again, but for now this will allow users of the MaaXBoard to run larger Microkit systems. Signed-off-by: Ivan Velickovic --- build_sdk.py | 2 +- docs/manual.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/build_sdk.py b/build_sdk.py index fafa8d459..c8b8acb57 100644 --- a/build_sdk.py +++ b/build_sdk.py @@ -113,7 +113,7 @@ class ConfigInfo: name="maaxboard", arch=KernelArch.AARCH64, gcc_cpu="cortex-a53", - loader_link_address=0x40480000, + loader_link_address=0x50000000, kernel_options={ "KernelPlatform": "maaxboard", "KernelIsMCS": True, diff --git a/docs/manual.md b/docs/manual.md index 869955f4e..d6610669e 100644 --- a/docs/manual.md +++ b/docs/manual.md @@ -744,7 +744,7 @@ The MaaXBoard is a low-cost ARM SBC based on the NXP i.MX8MQ system-on-chip. Microkit produces a raw binary file, so when using U-Boot you must execute the image using: - => go 0x40480000 + => go 0x50000000 ## Odroid-C2