feat(boards): both systems on every board image, chosen at boot -- system=v3 or system=v4
boards/BRINGUP.md A6, FABRIC-3 SXLIII (ruled: one image, switch at boot). A STARFORTH_V4 kernel carries v3 too; system= in the boot arguments chooses, else the build's default (V4_DEFAULT: 1 for plain STARFORTH_V4 builds as before, 0 for board images). make boot_image builds both and always writes starforth.cfg / cmdline.txt with system=v3 first, and cleans its ISA's objects first -- that clean was removing build/<arch>/SER5, not the kernel's objects, until fixed here. Each ISA: v3 by default (hash unchanged), v4 with system=v4 (538/538). The SER5 image under OVMF: v3 as built, v4 after a one-word edit on it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
e729c64ba3
commit
1a4b163861
@@ -186,6 +186,7 @@ void cmdline_parse_ascii(const char *cmdline, KernelArgs *args) {
|
||||
args->heap_size = 0;
|
||||
args->run_doe = KARGS_DEFAULT_RUN_DOE;
|
||||
args->log_level = KARGS_DEFAULT_LOG_LEVEL;
|
||||
args->system = KARGS_SYSTEM_DEFAULT;
|
||||
args->raw[0] = '\0';
|
||||
|
||||
if (!cmdline || !*cmdline) return;
|
||||
@@ -207,6 +208,14 @@ void cmdline_parse_ascii(const char *cmdline, KernelArgs *args) {
|
||||
if (tok_len == 5 && sf_strncmp(tok, "--doe", 5) == 0) {
|
||||
args->run_doe = 1;
|
||||
|
||||
/* system=v3 | system=v4, with or without "--": which system runs,
|
||||
* on a kernel that carries both (2026-10-14, A6) */
|
||||
} else if ((tok_len == 9 && sf_strncmp(tok, "system=v", 8) == 0) ||
|
||||
(tok_len == 11 && sf_strncmp(tok, "--system=v", 10) == 0)) {
|
||||
char v = tok[tok_len - 1];
|
||||
if (v == '3') args->system = KARGS_SYSTEM_V3;
|
||||
else if (v == '4') args->system = KARGS_SYSTEM_V4;
|
||||
|
||||
/* --log-level=<level> (prefix = 12 chars) */
|
||||
} else if (tok_len > 12 && sf_strncmp(tok, "--log-level=", 12) == 0) {
|
||||
args->log_level = parse_log_level(tok + 12);
|
||||
|
||||
Reference in New Issue
Block a user