fix(amd64): the image runs wherever the firmware loads it -- -fpie, every symbol hidden; qemu-stick-high in acceptance
The SER5 stopped at the loader's "Loading kernel from ESP...": built -fno-pic -fno-pie with
ImageBase 0, the image carried ~9,000 32-bit absolute addresses, and the firmware loaded it above
2 GiB, where the sign-extended ones (R_X86_64_32S) point into unmapped memory -- a page fault in
debug_checkpoint() before [CKPT 001]. Reproduced on QEMU's pc machine at 3 GiB (#PF, CR2 =
FFFFFFFFBD316542, the right address sign-extended); q35 always loads it below 2 GiB, so no QEMU
boot ever showed it.
amd64 now builds -fpie with kernel/include/starkernel/pie_hidden.h force-included (#pragma GCC
visibility push(hidden)), so globals are RIP-relative and none is reached through a GOT -- the
2026-08-06 bug that put -fno-pic there. The link refuses any object carrying a 32-bit absolute or
GOT relocation (4,531 on the old objects, none now). test_runner.c's visibility("default") on
global_test_stats is kept for the -fPIC ISAs only. make -f kernel/Makefile ARCH=amd64
qemu-stick-high boots the PC stick on pc with 3 GiB and is part of acceptance (.claude/CLAUDE.md).
Captain Bob, 2026-10-29; FABRIC-3.md XLIV.
Verified: qemu-stick-high with Zuse's pair, ok> and 7 ok, RIP sampled inside .text at base
0xBD297000 (logs/20261029-070253); acceptance amd64 -070508, aarch64 -070715, riscv64 -071138,
PARITY:V4_POST tests=538 pass=538 fail=0, POST: PASSED, dict_hash=0xfec8c47cfc6f437f on all;
make -C v4 test-32, 39 suites, 0 failures. Not yet booted on the SER5.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
0a31e558be
commit
d6ea592c08
@@ -309,6 +309,9 @@ The vendored hosted `make` build (above) is NEVER used to validate kernel change
|
||||
make -f kernel/Makefile ARCH=amd64 clean qemu
|
||||
make -f kernel/Makefile ARCH=aarch64 clean qemu
|
||||
make -f kernel/Makefile ARCH=riscv64 clean qemu
|
||||
# ...the PC stick loaded above 2 GiB, as a PC's firmware loads it (pc machine, 3 GiB; with
|
||||
# Zuse's pair in the stick: scripts/qemu_session.py stick_zuse amd64 --target qemu-stick-high):
|
||||
make -f kernel/Makefile ARCH=amd64 clean qemu-stick-high
|
||||
# ...and the 32-bit build -- v4 with 32-bit cells, the F18/Zynq (FPGA) case: its nucleus
|
||||
# image and every v4 test at that width (no QEMU; not a substitute for the boots above):
|
||||
make -C v4 test-32
|
||||
@@ -356,6 +359,11 @@ present in `logs/`:
|
||||
- **as built (v4)** to `[zuse@Hera] ok> `, with `PARITY:V4_POST tests=538 pass=538 fail=0` (the count
|
||||
grows with v4's POST) and `POST: PASSED`, and `PARITY:V4_SYSTEM ... dict_hash=` equal across
|
||||
the three;
|
||||
- **the PC stick loaded high** (Captain Bob, 2026-10-29, after the SER5 page-faulted in the
|
||||
loader -- q35 always loads the image below 2 GiB, a PC's firmware does not; `FABRIC-3.md`
|
||||
§XLIV): `qemu-stick-high` to `[zuse@Hera] ok> ` with the same `PARITY:V4_POST ... fail=0` and
|
||||
`POST: PASSED`. The amd64 link also refuses any 32-bit absolute or GOT relocation in the image;
|
||||
don't work around that check, fix the code it names;
|
||||
- **the 32-bit build** (Captain Bob, 2026-10-14: "the 32 bit build needs to go into the
|
||||
acceptance test too"): `make -C v4 test-32` passes -- every test, `0 failures`.
|
||||
|
||||
|
||||
@@ -5897,3 +5897,48 @@ acceptance rule (`.claude/CLAUDE.md`) became: the three ISAs as built (v4), and
|
||||
of it ("i don't care about v3"); it stays in the tree, `system=v3` still boots it. Verified: the three images rebuilt with `system=v4` in their boot files; the
|
||||
SER5 image under OVMF as built boots v4, and after changing the word, v3 (`logs/20261014-ser5-image/`).
|
||||
|
||||
|
||||
## XLIV. The amd64 image runs wherever the firmware loads it -- a PC loads it above 2 GiB (the SER5, 2026-10-29)
|
||||
|
||||
**Found.** The first SER5 boot of the PC stick (`make write_stick`, 2026-10-29) stopped at the
|
||||
loader's second line, "Loading kernel from ESP...", with no `[CKPT 001]`. The amd64 image was
|
||||
built `-fno-pic -fno-pie`, ImageBase 0: about 9,000 of its addresses were 32-bit absolutes
|
||||
(8,168 `R_X86_64_32`, 839 `R_X86_64_32S`), of which the firmware's base relocations patch only the
|
||||
low 32 bits. `R_X86_64_32S` is sign-extended, so at a load address of 2 GiB or more it points into
|
||||
unmapped memory. The first such access is `debug_checkpoint()` reading its `L"[CKPT "` prefix --
|
||||
the zero-extended `mov $imm32` string pointers of the two lines before it still worked, which is
|
||||
why exactly those printed. QEMU never showed it: OVMF on q35 with the RAM we give it loads the
|
||||
image below 2 GiB. Reproduced with the stick image unchanged on QEMU's `pc` machine at 3 GiB
|
||||
(OVMF loads it at `0xBD297000`): `#PF` at ImageBase + `0x104C`, `CR2=FFFFFFFFBD316542` -- the
|
||||
right address, `0xBD316542`, sign-extended. At 1 GiB the same image boots to `[zuse@Hera] ok> `.
|
||||
|
||||
**Ruled** (Captain Bob, 2026-10-29), from a written trade-off: `-fpie` with every symbol hidden
|
||||
(not `-mcmodel=large`, which costs code size and speed in the VM's inner loop, nor keeping the image low),
|
||||
and a 3 GiB boot added to acceptance.
|
||||
|
||||
**Built.**
|
||||
- `kernel/Makefile`, amd64 `ARCH_CFLAGS`: `-fpie -include kernel/include/starkernel/pie_hidden.h`
|
||||
in place of `-fno-pic -fno-pie`. `pie_hidden.h` is `#pragma GCC visibility push(hidden)`:
|
||||
`-fvisibility=hidden` marks definitions only, and an extern declaration of default visibility
|
||||
is reached through the GOT -- which `ld -m i386pep` never builds: the 2026-08-06 bug (FABRIC-0.md)
|
||||
that put `-fno-pic` there. With the pragma GCC uses no GOT. (EDK2's GCC X64 `ProcessorBind.h`
|
||||
does the same.)
|
||||
- The amd64 link refuses any object carrying `R_X86_64_32`, `_32S`, a GOT or `PLTOFF64`
|
||||
relocation (`AMD64_RELOC_FORBIDDEN`), listing them -- on the old objects it lists 4,531.
|
||||
Now none: `PC32`, `PLT32` and `64` only. `.text` grew 2.9%.
|
||||
- `v3/src/test_runner/test_runner.c`: `global_test_stats`' `visibility("default")` (a workaround
|
||||
for the old `-fPIC` GOT) is kept for aarch64/riscv64 and dropped under `pie_hidden.h`, where it
|
||||
contradicted the hidden declaration.
|
||||
- `make -f kernel/Makefile ARCH=amd64 qemu-stick-high`: `qemu-stick` on the `pc` machine with
|
||||
3 GiB (`STICK_MACHINE`, `STICK_MEM`), so OVMF loads the image above 2 GiB as a PC does.
|
||||
|
||||
**Verified.** `qemu-stick-high`, the stick with Zuse's pair (`qemu_session.py stick_zuse`):
|
||||
`POST: PASSED`, `PARITY:V4_POST tests=538 pass=538 fail=0`, `[zuse@Hera] ok> `, `7 ok`
|
||||
(`logs/20261029-070253`); the same image's RIP sampled during a 3 GiB boot ran at
|
||||
`0xBD29CE70`..`0xBD2F40FF`, inside its `.text` at base `0xBD297000`. Acceptance: amd64
|
||||
`-070508`, aarch64 `-070715`, riscv64 `-071138`, each `PARITY:V4_POST tests=538 pass=538 fail=0`,
|
||||
`POST: PASSED`, `[zuse@Hera] ok> `, `dict_hash=0xfec8c47cfc6f437f` on all four boots;
|
||||
`make -C v4 test-32`, 39 suites, 0 failures. The SER5 itself: a new stick, not yet booted.
|
||||
|
||||
Not covered by QEMU: a load above 4 GiB (OVMF keeps images below it). The relocation check
|
||||
covers that case statically -- no 32-bit absolute is left to break there.
|
||||
|
||||
+46
-17
@@ -271,23 +271,28 @@ ifeq ($(ARCH),amd64)
|
||||
CC := x86_64-elf-gcc
|
||||
LD := x86_64-elf-ld
|
||||
OBJCOPY := x86_64-elf-objcopy
|
||||
READELF := x86_64-elf-readelf
|
||||
else
|
||||
CC := gcc
|
||||
LD := ld
|
||||
OBJCOPY := objcopy
|
||||
READELF := readelf
|
||||
endif
|
||||
# -fno-pic -fno-pie: this is a fixed-base, statically-linked freestanding
|
||||
# image with no dynamic linker to populate a GOT at load time. -fPIC (set
|
||||
# in COMMON_CFLAGS, needed by riscv64's -shared link pipeline) makes GCC
|
||||
# emit R_X86_64_REX_GOTPCRELX (GOT-indirect) addressing for some cross-TU
|
||||
# extern globals depending on per-call-site codegen heuristics; the "GOT
|
||||
# slot" is just an unpopulated .bss cell here, so those reads silently
|
||||
# return NULL instead of the real address. Root-caused 2026-08-06 via
|
||||
# dict_find_word_heat_aware() reading sf_fc_count as NULL while
|
||||
# vm_find_word() (same globals, same TU as the definition) read it
|
||||
# correctly. These flags come after COMMON_CFLAGS on the command line so
|
||||
# they win for amd64 only; riscv64/aarch64 keep -fPIC.
|
||||
ARCH_CFLAGS := -m64 -march=x86-64 -mno-red-zone -DARCH_AMD64 -fno-pic -fno-pie
|
||||
# -fpie + pie_hidden.h: the firmware loads this one PE image wherever it
|
||||
# chooses, and a PC's puts it above 2 GiB (the SER5 did). The -fno-pic
|
||||
# -fno-pie this replaced emitted 32-bit absolute addresses, sign-extended
|
||||
# into unmapped memory up there: a page fault before the loader's first
|
||||
# checkpoint (FABRIC-3.md XLIV). -fpie addresses globals RIP-relative.
|
||||
# pie_hidden.h makes every declaration hidden, so GCC never reaches one
|
||||
# through a GOT: this image has no dynamic linker and ld -m i386pep builds
|
||||
# no GOT, so such a read returns NULL -- the 2026-08-06 bug that -fPIC
|
||||
# caused (dict_find_word_heat_aware() reading sf_fc_count as NULL,
|
||||
# FABRIC-0.md). AMD64_RELOC_FORBIDDEN, checked before the link below,
|
||||
# makes either one fail the build. These flags come after COMMON_CFLAGS'
|
||||
# -fPIC on the command line so they win for amd64 only; riscv64/aarch64
|
||||
# keep -fPIC.
|
||||
ARCH_CFLAGS := -m64 -march=x86-64 -mno-red-zone -DARCH_AMD64 -fpie \
|
||||
-include kernel/include/starkernel/pie_hidden.h
|
||||
LOADER_LINKER_SCRIPT := kernel/linker/starkernel-loader-amd64.ld
|
||||
KERNEL_LINKER_SCRIPT := kernel/linker/starkernel-kernel-amd64.ld
|
||||
|
||||
@@ -342,7 +347,7 @@ LOADER_LD ?= $(LD)
|
||||
|
||||
# Common flags for all arches / both loader and kernel.
|
||||
# -fPIC + -fvisibility=hidden: needed by riscv64's -shared loader link
|
||||
# pipeline (amd64 overrides back to -fno-pic/-fno-pie in its ARCH_CFLAGS
|
||||
# pipeline (amd64 overrides it with -fpie and pie_hidden.h in its ARCH_CFLAGS
|
||||
# above -- see that comment for why: -fPIC made GCC emit GOT-indirect
|
||||
# addressing for some cross-TU extern globals, and this freestanding image
|
||||
# has no dynamic linker to populate a GOT, so those reads silently returned
|
||||
@@ -943,6 +948,13 @@ $(KERNEL_OBJ_DIR)/%.o: $(KERNEL_SRC)/%.S | $(KERNEL_OBJ_DIR)
|
||||
# LINK RULES
|
||||
# ==============================================================================
|
||||
|
||||
# amd64: relocations the image may not carry. The firmware loads the PE anywhere
|
||||
# and patches only the low 32 bits of a 32-bit absolute (R_X86_64_32, _32S), so
|
||||
# above 2 GiB (_32S) or 4 GiB (_32) the address is wrong; and a GOT relocation
|
||||
# reads a slot nothing fills (no dynamic linker, no GOT from ld -m i386pep).
|
||||
# -fpie and pie_hidden.h (ARCH_CFLAGS) leave none; this keeps it so.
|
||||
AMD64_RELOC_FORBIDDEN := ^R_X86_64_(32|32S|GOT[A-Z0-9_]*|REX_GOTPCRELX|PLTOFF64)$$
|
||||
|
||||
# Link loader to PE32+
|
||||
# amd64: ld -m i386pep → PE directly
|
||||
# aarch64: lld-link links COFF objects → PE (auto-generates .reloc)
|
||||
@@ -977,6 +989,15 @@ else ifeq ($(ARCH),riscv64)
|
||||
$(BUILD_DIR)/starkernel_loader_stripped.elf $@
|
||||
@echo "Loader built: $@"
|
||||
else
|
||||
@bad=$$(for o in $(LOADER_OBJS); do \
|
||||
$(READELF) -rW $$o | awk -v o=$$o '$$3 ~ /$(AMD64_RELOC_FORBIDDEN)/ { print " " o ": " $$3 " " $$5 }'; \
|
||||
done); \
|
||||
if [ -n "$$bad" ]; then \
|
||||
echo "$$bad" | head -20; \
|
||||
echo "FATAL: $$(echo "$$bad" | wc -l) GOT or 32-bit absolute relocation(s) in the amd64 image --"; \
|
||||
echo " wrong at a load address above 2 GiB (FABRIC-3.md XLIV)"; \
|
||||
exit 1; \
|
||||
fi
|
||||
@echo "LD (loader PE) $@"
|
||||
@$(LD) $(LOADER_LDFLAGS_PE) $(LOADER_OBJS) -o $@
|
||||
@echo "Loader built: $@"
|
||||
@@ -1273,8 +1294,16 @@ else ifeq ($(ARCH),riscv64)
|
||||
# on the xHCI controller, booted by OVMF from its ESP. No -cdrom, no virtio disk, no ZUSEDISK:
|
||||
# the kernel finds the stick through the USB storage driver and GPT code a PC uses. amd64 only
|
||||
# (ARM and RISC-V sticks are later, STICK.md 10). Serial, QMP and logs/<TS>/amd64/ as `qemu`.
|
||||
#
|
||||
# qemu-stick-high -- the same boot on the pc machine with 3 GiB, where OVMF loads the image above
|
||||
# 2 GiB, as a PC's firmware does (the SER5 put it there; q35 keeps RAM below 2 GiB and the image
|
||||
# with it). Part of acceptance: an image that works only loaded low fails here (FABRIC-3.md XLIV).
|
||||
STICK_PC_IMG := build/boards/pc/lithos-pc.img
|
||||
.PHONY: qemu-stick
|
||||
STICK_MACHINE ?= q35
|
||||
STICK_MEM ?= 1024
|
||||
.PHONY: qemu-stick qemu-stick-high
|
||||
qemu-stick-high:
|
||||
@$(MAKE) -f kernel/Makefile ARCH=$(ARCH) STICK_MACHINE=pc STICK_MEM=3G qemu-stick
|
||||
qemu-stick:
|
||||
ifneq ($(ARCH),amd64)
|
||||
@echo "qemu-stick: the stick is the PC's -- ARCH=amd64 (ARM and RISC-V sticks are later, STICK.md 10)"; exit 1
|
||||
@@ -1292,15 +1321,15 @@ else
|
||||
CSV=$(DOE_RUNS_DIR)/doe-amd64-$$TS.csv; \
|
||||
SERIAL_SOCK=$(BUILD_DIR)/qemu-serial-amd64-$$TS.sock; \
|
||||
QMP_SOCK=$(BUILD_DIR)/qemu-qmp-amd64-$$TS.sock; \
|
||||
echo "=== Launching QEMU (amd64): the PC stick over USB ==="; \
|
||||
echo "=== Launching QEMU (amd64): the PC stick over USB ($(STICK_MACHINE), $(STICK_MEM)) ==="; \
|
||||
echo " Serial log: $$LOG"; \
|
||||
echo " QMP socket: $$QMP_SOCK"; \
|
||||
touch $$LOG; \
|
||||
tail -n +1 -f $$LOG & TAILPID=$$!; \
|
||||
qemu-system-x86_64 \
|
||||
-machine q35,accel=tcg \
|
||||
-machine $(STICK_MACHINE),accel=tcg \
|
||||
-cpu qemu64,+rdrand \
|
||||
-m 1024 \
|
||||
-m $(STICK_MEM) \
|
||||
-vga std \
|
||||
-drive if=pflash,format=raw,readonly=on,file=$(OVMF_CODE) \
|
||||
-drive if=pflash,format=raw,file=$(BUILD_DIR)/OVMF_VARS-stick.fd \
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
/*
|
||||
* pie_hidden.h -- every symbol in the amd64 image is the image's own.
|
||||
*
|
||||
* Force-included (-include) ahead of every amd64 kernel and loader source by
|
||||
* kernel/Makefile's ARCH_CFLAGS, together with -fpie. The image is one PE file,
|
||||
* linked by ld -m i386pep, loaded by the firmware wherever it chooses: a PC's
|
||||
* firmware puts it above 2 GiB (the Beelink SER5 did), where the 32-bit absolute
|
||||
* addresses of -fno-pic code are sign-extended into unmapped memory and the
|
||||
* loader page-faults before its first checkpoint (FABRIC-3.md XLIV). -fpie
|
||||
* addresses every global relative to RIP, which is right at any load address.
|
||||
*
|
||||
* -fpie alone is not enough: GCC treats an extern declaration of default
|
||||
* visibility as possibly defined in another module and reaches it through the
|
||||
* GOT. This image has no dynamic linker and ld -m i386pep builds no GOT, so
|
||||
* such a read returns zero -- the 2026-08-06 bug (FABRIC-0.md). -fvisibility=
|
||||
* hidden covers definitions only; this pragma covers declarations too, so GCC
|
||||
* never uses the GOT. (EDK2's GCC X64 ProcessorBind.h does the same.)
|
||||
*
|
||||
* The Makefile checks the result: the link fails if any object still carries
|
||||
* a GOT or 32-bit absolute relocation.
|
||||
*/
|
||||
#ifndef STARKERNEL_PIE_HIDDEN_H
|
||||
#define STARKERNEL_PIE_HIDDEN_H
|
||||
|
||||
#pragma GCC visibility push(hidden)
|
||||
|
||||
#endif /* STARKERNEL_PIE_HIDDEN_H */
|
||||
@@ -0,0 +1,162 @@
|
||||
[2J[001;001H[=3h[2J[001;001H[2J[001;001H[8;056;240t[2J[001;001H[2J[001;001H[=3h[2J[001;001H[2J[001;001H[8;042;160t[2J[001;001HBdsDxe: loading Boot0002 "UEFI QEMU QEMU USB HARDDRIVE 1-0000:00:04.0-1" from PciRoot(0x0)/Pci(0x4,0x0)/USB(0x0,0x0)
|
||||
BdsDxe: starting Boot0002 "UEFI QEMU QEMU USB HARDDRIVE 1-0000:00:04.0-1" from PciRoot(0x0)/Pci(0x4,0x0)/USB(0x0,0x0)
|
||||
[2J[001;001H[=3h[2J[001;001HStarKernel UEFI Loader
|
||||
Loading kernel from ESP...
|
||||
[CKPT 001] Entered efi_main - ConOut live
|
||||
RAW SERIAL UP
|
||||
[CKPT 002] Serial (COM1) initialized
|
||||
Monolithic build - kernel linked directly
|
||||
Collecting boot information...
|
||||
CmdLine: from starforth.cfg
|
||||
CmdLine: parsed OK
|
||||
[CKPT 004] Command line parsed
|
||||
[CKPT 005] Kernel stack allocation decided
|
||||
[CKPT 006] Boot info collected (ACPI table located)
|
||||
GOP: linear framebuffer found
|
||||
[CKPT 007] GOP: linear framebuffer found
|
||||
[CKPT 008] About to enter ExitBootServices retry loop
|
||||
EBS...
|
||||
EBS OK
|
||||
Calling kernel_main (monolithic)...
|
||||
|
||||
|
||||
_____ _ _ __ _
|
||||
/ ____| | | |/ / | |
|
||||
| (___ | |_ __ _ _ __| ' / ___ _ __ _ __ ___| |
|
||||
\___ \| __/ _` | '__| < / _ \ '__| '_ \ / _ \ |
|
||||
____) | || (_| | | | . \ __/ | | | | | __/ |
|
||||
|_____/ \__\__,_|_| |_|\_\___|_| |_| |_|\___|_|
|
||||
|
||||
LithosAnanke v2.1.0 amd64
|
||||
Architecture: amd64
|
||||
Build: Oct 29 2026 07:02:46
|
||||
|
||||
UEFI BootServices: EXITED
|
||||
Console: serial line is a 16550 at port 0x00000000000003f8 (COM1, probed)
|
||||
|
||||
=== StarKernel Boot Information ===
|
||||
Memory map entries: 131
|
||||
Total memory: 3071 MB
|
||||
Usable memory: 3012 MB
|
||||
===================================
|
||||
|
||||
PMM initialized.
|
||||
PMM statistics:
|
||||
Total pages: 772611
|
||||
Free pages : 771088
|
||||
Used pages : 1523
|
||||
Total MB : 3018
|
||||
Free MB : 3012
|
||||
Used MB : 5
|
||||
|
||||
VMM initialized (mapped RAM, CR3 switched)
|
||||
VMM initialized (mapped RAM, CR3 switched)
|
||||
VMM self-test: mapped OK at 0xffff800000000000
|
||||
VMM self-test complete.
|
||||
|
||||
IDT installed.
|
||||
|
||||
APIC: init...
|
||||
APIC: IA32_APIC_BASE MSR=0x00000000fee00900
|
||||
APIC: stale-ISR drain: 0 EOI(s) issued
|
||||
APIC: initialized (xAPIC MMIO, TPR=0, SIVR=0x1FF, EOI-clear)
|
||||
APIC: init done
|
||||
|
||||
I/O APIC: init...
|
||||
I/O APIC: base=0xfec00000, gsi_base=0, overrides=5
|
||||
override: source=00 gsi=2 flags=0x0000
|
||||
override: source=05 gsi=5 flags=0x000d
|
||||
override: source=09 gsi=9 flags=0x000d
|
||||
override: source=0a gsi=10 flags=0x000d
|
||||
override: source=0b gsi=11 flags=0x000d
|
||||
i8042: keyboard ACKed enable-scanning
|
||||
i8042: IRQ1 enabled in controller config byte
|
||||
I/O APIC: keyboard IRQ1 routed (masked)
|
||||
|
||||
Timer: init...
|
||||
Timer: init start
|
||||
Timer: PM_TMR_BLK discovered from FADT at port 45064
|
||||
Timer: VM mode detected (hypervisor present).
|
||||
Timer: HPET calibration disabled (VM-exit MMIO would poison timing).
|
||||
Timer: WARNING: invariant TSC not present under hypervisor.
|
||||
Timer: continuing in RELATIVE mode (no determinism guarantees).
|
||||
Timer: RDTSCP not present; using RDTSC (less serialized).
|
||||
Timer: CPUID frequency unavailable; trying PM Timer...
|
||||
Timer: trust=1 (0=NONE,1=REL,2=ABS), TSC=2086206217 Hz
|
||||
Timer: init done
|
||||
|
||||
Kernel heap initialized.
|
||||
Heap statistics:
|
||||
Total bytes: 2147483608
|
||||
Free bytes: 2147483608
|
||||
Used bytes: 0
|
||||
Peak bytes: 0
|
||||
Heap base addr: 24641536
|
||||
Heap end addr: 2172125184
|
||||
|
||||
Heartbeat: init...
|
||||
APIC Timer: calibrating...
|
||||
APIC Timer: apic_hz=1007825508, tick_hz=100, initial_count=10078255
|
||||
APIC Timer: configured (masked, ready to start)
|
||||
Heartbeat: init done
|
||||
Kernel initialization complete.
|
||||
Boot successful!
|
||||
|
||||
Boot disk: a StarshipOS stick
|
||||
System: StarForth v4 (system=v4)
|
||||
StarForth v4: one host node, the F18-derived engine
|
||||
V4: capsule v4:sys:map-64.f18 signature: missing (unsigned)
|
||||
PARITY:V4_F18 name=v4:sys:map-64.f18 capsule_hash=0x949eb6a1e9260e49
|
||||
V4: capsule v4:sys:core.f18 signature: missing (unsigned)
|
||||
PARITY:V4_F18 name=v4:sys:core.f18 capsule_hash=0xb8f167892ec18c28
|
||||
V4: capsule v4:sys:input.f18 signature: missing (unsigned)
|
||||
PARITY:V4_F18 name=v4:sys:input.f18 capsule_hash=0x85d3ec486d929a79
|
||||
V4: capsule v4:sys:dict.f18 signature: missing (unsigned)
|
||||
PARITY:V4_F18 name=v4:sys:dict.f18 capsule_hash=0x1379bd3b5de811dc
|
||||
V4: capsule v4:sys:codegen.f18 signature: missing (unsigned)
|
||||
PARITY:V4_F18 name=v4:sys:codegen.f18 capsule_hash=0x36d2ae84d2911b90
|
||||
V4: capsule v4:sys:compile.f18 signature: missing (unsigned)
|
||||
PARITY:V4_F18 name=v4:sys:compile.f18 capsule_hash=0x11145c4c2ab819d8
|
||||
V4: capsule v4:sys:quit.f18 signature: missing (unsigned)
|
||||
PARITY:V4_F18 name=v4:sys:quit.f18 capsule_hash=0x43cadf3b21ddbf3e
|
||||
V4: capsule v4:sys:forth.f18 signature: missing (unsigned)
|
||||
PARITY:V4_F18 name=v4:sys:forth.f18 capsule_hash=0x16cab4a1268b85da
|
||||
V4: capsule v4:sys:numout.f18 signature: missing (unsigned)
|
||||
PARITY:V4_F18 name=v4:sys:numout.f18 capsule_hash=0x85a240ad3fb2b299
|
||||
V4: capsule v4:sys:words.f18 signature: missing (unsigned)
|
||||
PARITY:V4_F18 name=v4:sys:words.f18 capsule_hash=0xb1d381f927d9f14e
|
||||
V4: capsule v4:sys:system.f18 signature: missing (unsigned)
|
||||
PARITY:V4_F18 name=v4:sys:system.f18 capsule_hash=0xd92203664c2915bd
|
||||
V4: capsule v4:sys:qmath.f18 signature: missing (unsigned)
|
||||
PARITY:V4_F18 name=v4:sys:qmath.f18 capsule_hash=0xdb4140713dd857f3
|
||||
V4: capsule v4:sys:blocks.f18 signature: missing (unsigned)
|
||||
PARITY:V4_F18 name=v4:sys:blocks.f18 capsule_hash=0x76307ef48678dc2a
|
||||
V4: capsule v4:sys:log.f18 signature: missing (unsigned)
|
||||
PARITY:V4_F18 name=v4:sys:log.f18 capsule_hash=0xfc6540e6b824a52b
|
||||
V4: capsule v4:sys:acl.f18 signature: missing (unsigned)
|
||||
PARITY:V4_F18 name=v4:sys:acl.f18 capsule_hash=0x6845aa048db7eb22
|
||||
V4: capsule v4:sys:end.f18 signature: missing (unsigned)
|
||||
PARITY:V4_F18 name=v4:sys:end.f18 capsule_hash=0x5ef01312c07b79cc
|
||||
PARITY:V4_ROM words=2372 rom_hash=0x87b23d3ae2643c8d instructions=59145258
|
||||
V4: capsule v4:forth79.4th signature: missing (unsigned)
|
||||
PARITY:V4_CAPSULE name=v4:forth79.4th capsule_id=0x4055641ee17d176b capsule_hash=0x4055641ee17d176b dict_hash=0x033e1c05c09a1df8
|
||||
PARITY:V4_POST tests=538 pass=538 fail=0
|
||||
PARITY:V4_SYSTEM word_count=317 dict_hash=0xfec8c47cfc6f437f
|
||||
PARITY:OK
|
||||
POST: PASSED
|
||||
PCI: init...
|
||||
PCI: MCFG parse failed; using port I/O (amd64 default)
|
||||
virtio-rng: no device on PCI bus 0
|
||||
rng: backend = rdrand
|
||||
entropy: ready
|
||||
virtio-input: no device on PCI bus 0
|
||||
Starting heartbeat...
|
||||
APIC Timer: started (LVT=0x00020020 ICR=10078255)
|
||||
I/O APIC: keyboard IRQ1 unmasked
|
||||
Heartbeat running.
|
||||
blkio_usb: MSC device ready
|
||||
Artemis: the stick's partition attached
|
||||
[38;2;255;165;0m[Hera][39m Zuse: identity confirmed from attached thumbdrive
|
||||
[38;2;255;165;0m[zuse@Hera][39m [38;2;85;255;255mok> [39m3 4 + .
|
||||
[38;2;255;165;0m[zuse@Hera][39m 7 ok
|
||||
[38;2;255;165;0m[zuse@Hera][39m [38;2;85;255;255mok> [39m
|
||||
@@ -0,0 +1,161 @@
|
||||
[2J[001;001H[=3h[2J[001;001H[2J[001;001H[8;042;160t[2J[001;001H[2J[001;001H[8;056;240t[2J[001;001HBdsDxe: loading Boot0002 "UEFI QEMU DVD-ROM QM00005 " from PciRoot(0x0)/Pci(0x1F,0x2)/Sata(0x2,0xFFFF,0x0)
|
||||
BdsDxe: starting Boot0002 "UEFI QEMU DVD-ROM QM00005 " from PciRoot(0x0)/Pci(0x1F,0x2)/Sata(0x2,0xFFFF,0x0)
|
||||
[2J[001;001H[=3h[2J[001;001HStarKernel UEFI Loader
|
||||
Loading kernel from ESP...
|
||||
[CKPT 001] Entered efi_main - ConOut live
|
||||
RAW SERIAL UP
|
||||
[CKPT 002] Serial (COM1) initialized
|
||||
Monolithic build - kernel linked directly
|
||||
Collecting boot information...
|
||||
CmdLine: parsed OK
|
||||
[CKPT 004] Command line parsed
|
||||
[CKPT 005] Kernel stack allocation decided
|
||||
[CKPT 006] Boot info collected (ACPI table located)
|
||||
GOP: linear framebuffer found
|
||||
[CKPT 007] GOP: linear framebuffer found
|
||||
[CKPT 008] About to enter ExitBootServices retry loop
|
||||
EBS...
|
||||
EBS OK
|
||||
Calling kernel_main (monolithic)...
|
||||
|
||||
|
||||
_____ _ _ __ _
|
||||
/ ____| | | |/ / | |
|
||||
| (___ | |_ __ _ _ __| ' / ___ _ __ _ __ ___| |
|
||||
\___ \| __/ _` | '__| < / _ \ '__| '_ \ / _ \ |
|
||||
____) | || (_| | | | . \ __/ | | | | | __/ |
|
||||
|_____/ \__\__,_|_| |_|\_\___|_| |_| |_|\___|_|
|
||||
|
||||
LithosAnanke v2.1.0 amd64
|
||||
Architecture: amd64
|
||||
Build: Oct 29 2026 07:04:40
|
||||
|
||||
UEFI BootServices: EXITED
|
||||
Console: serial line is a 16550 at port 0x00000000000003f8 (COM1, probed)
|
||||
|
||||
=== StarKernel Boot Information ===
|
||||
Memory map entries: 122
|
||||
Total memory: 1023 MB
|
||||
Usable memory: 965 MB
|
||||
===================================
|
||||
|
||||
PMM initialized.
|
||||
PMM statistics:
|
||||
Total pages: 248648
|
||||
Free pages : 247125
|
||||
Used pages : 1523
|
||||
Total MB : 971
|
||||
Free MB : 965
|
||||
Used MB : 5
|
||||
|
||||
VMM initialized (mapped RAM, CR3 switched)
|
||||
VMM initialized (mapped RAM, CR3 switched)
|
||||
VMM self-test: mapped OK at 0xffff800000000000
|
||||
VMM self-test complete.
|
||||
|
||||
IDT installed.
|
||||
|
||||
APIC: init...
|
||||
APIC: IA32_APIC_BASE MSR=0x00000000fee00900
|
||||
APIC: stale-ISR drain: 0 EOI(s) issued
|
||||
APIC: initialized (xAPIC MMIO, TPR=0, SIVR=0x1FF, EOI-clear)
|
||||
APIC: init done
|
||||
|
||||
I/O APIC: init...
|
||||
I/O APIC: base=0xfec00000, gsi_base=0, overrides=5
|
||||
override: source=00 gsi=2 flags=0x0000
|
||||
override: source=05 gsi=5 flags=0x000d
|
||||
override: source=09 gsi=9 flags=0x000d
|
||||
override: source=0a gsi=10 flags=0x000d
|
||||
override: source=0b gsi=11 flags=0x000d
|
||||
i8042: keyboard ACKed enable-scanning
|
||||
i8042: IRQ1 enabled in controller config byte
|
||||
I/O APIC: keyboard IRQ1 routed (masked)
|
||||
|
||||
Timer: init...
|
||||
Timer: init start
|
||||
Timer: PM_TMR_BLK discovered from FADT at port 1544
|
||||
Timer: VM mode detected (hypervisor present).
|
||||
Timer: HPET calibration disabled (VM-exit MMIO would poison timing).
|
||||
Timer: WARNING: invariant TSC not present under hypervisor.
|
||||
Timer: continuing in RELATIVE mode (no determinism guarantees).
|
||||
Timer: RDTSCP not present; using RDTSC (less serialized).
|
||||
Timer: CPUID frequency unavailable; trying PM Timer...
|
||||
Timer: trust=1 (0=NONE,1=REL,2=ABS), TSC=2100714119 Hz
|
||||
Timer: init done
|
||||
|
||||
Kernel heap initialized.
|
||||
Heap statistics:
|
||||
Total bytes: 536870872
|
||||
Free bytes: 536870872
|
||||
Used bytes: 0
|
||||
Peak bytes: 0
|
||||
Heap base addr: 24641536
|
||||
Heap end addr: 561512448
|
||||
|
||||
Heartbeat: init...
|
||||
APIC Timer: calibrating...
|
||||
APIC Timer: apic_hz=1008140309, tick_hz=100, initial_count=10081403
|
||||
APIC Timer: configured (masked, ready to start)
|
||||
Heartbeat: init done
|
||||
Kernel initialization complete.
|
||||
Boot successful!
|
||||
|
||||
Boot disk: not a StarshipOS stick
|
||||
System: StarForth v4 (this build's default)
|
||||
StarForth v4: one host node, the F18-derived engine
|
||||
V4: capsule v4:sys:map-64.f18 signature: missing (unsigned)
|
||||
PARITY:V4_F18 name=v4:sys:map-64.f18 capsule_hash=0x949eb6a1e9260e49
|
||||
V4: capsule v4:sys:core.f18 signature: missing (unsigned)
|
||||
PARITY:V4_F18 name=v4:sys:core.f18 capsule_hash=0xb8f167892ec18c28
|
||||
V4: capsule v4:sys:input.f18 signature: missing (unsigned)
|
||||
PARITY:V4_F18 name=v4:sys:input.f18 capsule_hash=0x85d3ec486d929a79
|
||||
V4: capsule v4:sys:dict.f18 signature: missing (unsigned)
|
||||
PARITY:V4_F18 name=v4:sys:dict.f18 capsule_hash=0x1379bd3b5de811dc
|
||||
V4: capsule v4:sys:codegen.f18 signature: missing (unsigned)
|
||||
PARITY:V4_F18 name=v4:sys:codegen.f18 capsule_hash=0x36d2ae84d2911b90
|
||||
V4: capsule v4:sys:compile.f18 signature: missing (unsigned)
|
||||
PARITY:V4_F18 name=v4:sys:compile.f18 capsule_hash=0x11145c4c2ab819d8
|
||||
V4: capsule v4:sys:quit.f18 signature: missing (unsigned)
|
||||
PARITY:V4_F18 name=v4:sys:quit.f18 capsule_hash=0x43cadf3b21ddbf3e
|
||||
V4: capsule v4:sys:forth.f18 signature: missing (unsigned)
|
||||
PARITY:V4_F18 name=v4:sys:forth.f18 capsule_hash=0x16cab4a1268b85da
|
||||
V4: capsule v4:sys:numout.f18 signature: missing (unsigned)
|
||||
PARITY:V4_F18 name=v4:sys:numout.f18 capsule_hash=0x85a240ad3fb2b299
|
||||
V4: capsule v4:sys:words.f18 signature: missing (unsigned)
|
||||
PARITY:V4_F18 name=v4:sys:words.f18 capsule_hash=0xb1d381f927d9f14e
|
||||
V4: capsule v4:sys:system.f18 signature: missing (unsigned)
|
||||
PARITY:V4_F18 name=v4:sys:system.f18 capsule_hash=0xd92203664c2915bd
|
||||
V4: capsule v4:sys:qmath.f18 signature: missing (unsigned)
|
||||
PARITY:V4_F18 name=v4:sys:qmath.f18 capsule_hash=0xdb4140713dd857f3
|
||||
V4: capsule v4:sys:blocks.f18 signature: missing (unsigned)
|
||||
PARITY:V4_F18 name=v4:sys:blocks.f18 capsule_hash=0x76307ef48678dc2a
|
||||
V4: capsule v4:sys:log.f18 signature: missing (unsigned)
|
||||
PARITY:V4_F18 name=v4:sys:log.f18 capsule_hash=0xfc6540e6b824a52b
|
||||
V4: capsule v4:sys:acl.f18 signature: missing (unsigned)
|
||||
PARITY:V4_F18 name=v4:sys:acl.f18 capsule_hash=0x6845aa048db7eb22
|
||||
V4: capsule v4:sys:end.f18 signature: missing (unsigned)
|
||||
PARITY:V4_F18 name=v4:sys:end.f18 capsule_hash=0x5ef01312c07b79cc
|
||||
PARITY:V4_ROM words=2372 rom_hash=0x87b23d3ae2643c8d instructions=59145258
|
||||
V4: capsule v4:forth79.4th signature: missing (unsigned)
|
||||
PARITY:V4_CAPSULE name=v4:forth79.4th capsule_id=0x4055641ee17d176b capsule_hash=0x4055641ee17d176b dict_hash=0x033e1c05c09a1df8
|
||||
PARITY:V4_POST tests=538 pass=538 fail=0
|
||||
PARITY:V4_SYSTEM word_count=317 dict_hash=0xfec8c47cfc6f437f
|
||||
PARITY:OK
|
||||
POST: PASSED
|
||||
PCI: init...
|
||||
PCI: ECAM mapped (amd64)
|
||||
virtio-rng: no device on PCI bus 0
|
||||
rng: backend = rdrand
|
||||
entropy: ready
|
||||
virtio-input: no device on PCI bus 0
|
||||
Starting heartbeat...
|
||||
APIC Timer: started (LVT=0x00020020 ICR=10081403)
|
||||
I/O APIC: keyboard IRQ1 unmasked
|
||||
Heartbeat running.
|
||||
blkio_usb: MSC device ready
|
||||
Artemis: the stick's partition attached
|
||||
[38;2;255;165;0m[Hera][39m Zuse: identity confirmed from attached thumbdrive
|
||||
[38;2;255;165;0m[zuse@Hera][39m [38;2;85;255;255mok> [39m3 4 + .
|
||||
[38;2;255;165;0m[zuse@Hera][39m 7 ok
|
||||
[38;2;255;165;0m[zuse@Hera][39m [38;2;85;255;255mok> [39m
|
||||
@@ -0,0 +1,133 @@
|
||||
UEFI firmware (version 2025.11-3ubuntu7.3 built at 15:40:26 on Sep 23 2026)
|
||||
[2J[001;001H[=3h[2J[001;001H[2J[001;001H[8;031;100t[2J[001;001HBdsDxe: failed to load Boot0002 "UEFI Misc Device" from PciRoot(0x0)/Pci(0x2,0x0): Not Found
|
||||
BdsDxe: failed to load Boot0003 "UEFI QEMU QEMU USB HARDDRIVE 1-0000:00:04.0-1" from PciRoot(0x0)/Pci(0x4,0x0)/USB(0x0,0x0): Not Found
|
||||
BdsDxe: loading Boot0004 "UEFI Misc Device 2" from PciRoot(0x0)/Pci(0x6,0x0)
|
||||
BdsDxe: starting Boot0004 "UEFI Misc Device 2" from PciRoot(0x0)/Pci(0x6,0x0)
|
||||
[2J[001;001H[=3h[2J[001;001HStarKernel UEFI Loader
|
||||
Loading kernel from ESP...
|
||||
[CKPT 001] Entered efi_main - ConOut live
|
||||
Collecting boot information...
|
||||
[CKPT 004] Command line parsed
|
||||
[CKPT 005] Kernel stack allocation decided
|
||||
[CKPT 006] Boot info collected (ACPI table located)
|
||||
[CKPT 007] GOP: linear framebuffer found
|
||||
[CKPT 008] About to enter ExitBootServices retry loop
|
||||
|
||||
|
||||
_____ _ _ __ _
|
||||
/ ____| | | |/ / | |
|
||||
| (___ | |_ __ _ _ __| ' / ___ _ __ _ __ ___| |
|
||||
\___ \| __/ _` | '__| < / _ \ '__| '_ \ / _ \ |
|
||||
____) | || (_| | | | . \ __/ | | | | | __/ |
|
||||
|_____/ \__\__,_|_| |_|\_\___|_| |_| |_|\___|_|
|
||||
|
||||
LithosAnanke v2.1.0 aarch64
|
||||
Architecture: aarch64
|
||||
Build: Oct 29 2026 07:06:48
|
||||
|
||||
UEFI BootServices: EXITED
|
||||
Console: serial line is a PL011 at 0x0000000009000000 (no devicetree: QEMU's)
|
||||
|
||||
=== StarKernel Boot Information ===
|
||||
Memory map entries: 110
|
||||
Total memory: 4093 MB
|
||||
Usable memory: 4054 MB
|
||||
===================================
|
||||
|
||||
PMM initialized.
|
||||
PMM statistics:
|
||||
Total pages: 1039257
|
||||
Free pages : 1037846
|
||||
Used pages : 1411
|
||||
Total MB : 4059
|
||||
Free MB : 4054
|
||||
Used MB : 5
|
||||
|
||||
VMM initialized (mapped RAM, CR3 switched)
|
||||
VMM initialized (mapped RAM, CR3 switched)
|
||||
VMM self-test: mapped OK at 0xffff800000000000
|
||||
VMM self-test complete.
|
||||
|
||||
AArch64: running at EL1
|
||||
IDT installed.
|
||||
|
||||
APIC: init...
|
||||
PSCI: no DTB -- using HVC (QEMU virt-machine default)
|
||||
GICv2: no DTB GIC node -- using QEMU virt-machine defaults
|
||||
GICv2: distributor+CPU interface enabled, PPI 30
|
||||
APIC: init done
|
||||
|
||||
Timer: init...
|
||||
Timer: AArch64 generic timer initialised.
|
||||
Timer: init done
|
||||
|
||||
Kernel heap initialized.
|
||||
Heap statistics:
|
||||
Total bytes: 2147483608
|
||||
Free bytes: 2147483608
|
||||
Used bytes: 0
|
||||
Peak bytes: 0
|
||||
Heap base addr: 1207959552
|
||||
Heap end addr: 3355443200
|
||||
|
||||
Heartbeat: init...
|
||||
Heartbeat: init done
|
||||
Kernel initialization complete.
|
||||
Boot successful!
|
||||
|
||||
Boot disk: not a StarshipOS stick
|
||||
System: StarForth v4 (this build's default)
|
||||
StarForth v4: one host node, the F18-derived engine
|
||||
V4: capsule v4:sys:map-64.f18 signature: missing (unsigned)
|
||||
PARITY:V4_F18 name=v4:sys:map-64.f18 capsule_hash=0x949eb6a1e9260e49
|
||||
V4: capsule v4:sys:core.f18 signature: missing (unsigned)
|
||||
PARITY:V4_F18 name=v4:sys:core.f18 capsule_hash=0xb8f167892ec18c28
|
||||
V4: capsule v4:sys:input.f18 signature: missing (unsigned)
|
||||
PARITY:V4_F18 name=v4:sys:input.f18 capsule_hash=0x85d3ec486d929a79
|
||||
V4: capsule v4:sys:dict.f18 signature: missing (unsigned)
|
||||
PARITY:V4_F18 name=v4:sys:dict.f18 capsule_hash=0x1379bd3b5de811dc
|
||||
V4: capsule v4:sys:codegen.f18 signature: missing (unsigned)
|
||||
PARITY:V4_F18 name=v4:sys:codegen.f18 capsule_hash=0x36d2ae84d2911b90
|
||||
V4: capsule v4:sys:compile.f18 signature: missing (unsigned)
|
||||
PARITY:V4_F18 name=v4:sys:compile.f18 capsule_hash=0x11145c4c2ab819d8
|
||||
V4: capsule v4:sys:quit.f18 signature: missing (unsigned)
|
||||
PARITY:V4_F18 name=v4:sys:quit.f18 capsule_hash=0x43cadf3b21ddbf3e
|
||||
V4: capsule v4:sys:forth.f18 signature: missing (unsigned)
|
||||
PARITY:V4_F18 name=v4:sys:forth.f18 capsule_hash=0x16cab4a1268b85da
|
||||
V4: capsule v4:sys:numout.f18 signature: missing (unsigned)
|
||||
PARITY:V4_F18 name=v4:sys:numout.f18 capsule_hash=0x85a240ad3fb2b299
|
||||
V4: capsule v4:sys:words.f18 signature: missing (unsigned)
|
||||
PARITY:V4_F18 name=v4:sys:words.f18 capsule_hash=0xb1d381f927d9f14e
|
||||
V4: capsule v4:sys:system.f18 signature: missing (unsigned)
|
||||
PARITY:V4_F18 name=v4:sys:system.f18 capsule_hash=0xd92203664c2915bd
|
||||
V4: capsule v4:sys:qmath.f18 signature: missing (unsigned)
|
||||
PARITY:V4_F18 name=v4:sys:qmath.f18 capsule_hash=0xdb4140713dd857f3
|
||||
V4: capsule v4:sys:blocks.f18 signature: missing (unsigned)
|
||||
PARITY:V4_F18 name=v4:sys:blocks.f18 capsule_hash=0x76307ef48678dc2a
|
||||
V4: capsule v4:sys:log.f18 signature: missing (unsigned)
|
||||
PARITY:V4_F18 name=v4:sys:log.f18 capsule_hash=0xfc6540e6b824a52b
|
||||
V4: capsule v4:sys:acl.f18 signature: missing (unsigned)
|
||||
PARITY:V4_F18 name=v4:sys:acl.f18 capsule_hash=0x6845aa048db7eb22
|
||||
V4: capsule v4:sys:end.f18 signature: missing (unsigned)
|
||||
PARITY:V4_F18 name=v4:sys:end.f18 capsule_hash=0x5ef01312c07b79cc
|
||||
PARITY:V4_ROM words=2372 rom_hash=0x87b23d3ae2643c8d instructions=59145258
|
||||
V4: capsule v4:forth79.4th signature: missing (unsigned)
|
||||
PARITY:V4_CAPSULE name=v4:forth79.4th capsule_id=0x4055641ee17d176b capsule_hash=0x4055641ee17d176b dict_hash=0x033e1c05c09a1df8
|
||||
PARITY:V4_POST tests=538 pass=538 fail=0
|
||||
PARITY:V4_SYSTEM word_count=317 dict_hash=0xfec8c47cfc6f437f
|
||||
PARITY:OK
|
||||
POST: PASSED
|
||||
PCI: init...
|
||||
virtio-rng: found device
|
||||
rng: backend = virtio-rng
|
||||
entropy: ready
|
||||
virtio-input: found device
|
||||
virtio-input: driver ready
|
||||
Starting heartbeat...
|
||||
Heartbeat running.
|
||||
blkio_usb: MSC device ready
|
||||
Artemis: the stick's partition attached
|
||||
[38;2;255;165;0m[Hera][39m Zuse: identity confirmed from attached thumbdrive
|
||||
[38;2;255;165;0m[zuse@Hera][39m [38;2;85;255;255mok> [39m3 4 + .
|
||||
[38;2;255;165;0m[zuse@Hera][39m 7 ok
|
||||
[38;2;255;165;0m[zuse@Hera][39m [38;2;85;255;255mok> [39m
|
||||
@@ -0,0 +1,204 @@
|
||||
|
||||
OpenSBI v1.8
|
||||
____ _____ ____ _____
|
||||
/ __ \ / ____| _ \_ _|
|
||||
| | | |_ __ ___ _ __ | (___ | |_) || |
|
||||
| | | | '_ \ / _ \ '_ \ \___ \| _ < | |
|
||||
| |__| | |_) | __/ | | |____) | |_) || |_
|
||||
\____/| .__/ \___|_| |_|_____/|____/_____|
|
||||
| |
|
||||
|_|
|
||||
|
||||
Platform Name : riscv-virtio,qemu
|
||||
Platform Features : medeleg
|
||||
Platform HART Count : 1
|
||||
Platform HART Protection : pmp
|
||||
Platform IPI Device : aclint-mswi
|
||||
Platform Timer Device : aclint-mtimer @ 10000000Hz
|
||||
Platform Console Device : uart8250
|
||||
Platform HSM Device : ---
|
||||
Platform PMU Device : ---
|
||||
Platform Reboot Device : syscon-reboot
|
||||
Platform Shutdown Device : syscon-poweroff
|
||||
Platform Suspend Device : ---
|
||||
Platform CPPC Device : ---
|
||||
Firmware Base : 0x80000000
|
||||
Firmware Size : 321 KB
|
||||
Firmware RW Offset : 0x40000
|
||||
Firmware RW Size : 65 KB
|
||||
Firmware Heap Offset : 0x47000
|
||||
Firmware Heap Size : 37 KB (total), 0 KB (reserved), 12 KB (used), 23 KB (free)
|
||||
Firmware Scratch Size : 4096 B (total), 1464 B (used), 2632 B (free)
|
||||
Runtime SBI Version : 3.0
|
||||
Standard SBI Extensions : ipi,pmu,srst,sse,hsm,rfnc,fwft,time,base,legacy,dbcn,dbtr
|
||||
Experimental SBI Extensions : none
|
||||
|
||||
Domain0 Name : root
|
||||
Domain0 Boot HART : 0
|
||||
Domain0 HARTs : 0*
|
||||
Domain0 Region00 : 0x0000000080040000-0x000000008005ffff M: (F,R,W) S/U: ()
|
||||
Domain0 Region01 : 0x0000000080000000-0x000000008003ffff M: (F,R,X) S/U: ()
|
||||
Domain0 Region02 : 0x0000000000100000-0x0000000000100fff M: (I,R,W) S/U: (R,W)
|
||||
Domain0 Region03 : 0x0000000010000000-0x0000000010000fff M: (I,R,W) S/U: (R,W)
|
||||
Domain0 Region04 : 0x0000000002000000-0x000000000200ffff M: (I,R,W) S/U: ()
|
||||
Domain0 Region05 : 0x000000000c400000-0x000000000c5fffff M: (I,R,W) S/U: (R,W)
|
||||
Domain0 Region06 : 0x000000000c000000-0x000000000c3fffff M: (I,R,W) S/U: (R,W)
|
||||
Domain0 Region07 : 0x0000000000000000-0xffffffffffffffff M: () S/U: (R,W,X)
|
||||
Domain0 Next Address : 0x0000000020000000
|
||||
Domain0 Next Arg1 : 0x00000000bfe00000
|
||||
Domain0 Next Mode : S-mode
|
||||
Domain0 SysReset : yes
|
||||
Domain0 SysSuspend : yes
|
||||
|
||||
Boot HART ID : 0
|
||||
Boot HART Domain : root
|
||||
Boot HART Priv Version : v1.12
|
||||
Boot HART Base ISA : rv64imafdch
|
||||
Boot HART ISA Extensions : sstc,zicntr,zihpm,zicboz,zicbom,sdtrig,svadu
|
||||
Boot HART PMP Count : 16
|
||||
Boot HART PMP Granularity : 2 bits
|
||||
Boot HART PMP Address Bits : 54
|
||||
Boot HART MHPM Info : 16 (0x0007fff8)
|
||||
Boot HART Debug Triggers : 2 triggers
|
||||
Boot HART MIDELEG : 0x0000000000001666
|
||||
Boot HART MEDELEG : 0x0000000000f4b509
|
||||
[2J[004D[=3h[2J[009D[2J[004D[8;031;100t[2J[016DRISC-V EDK2 firmware version 2025.11-3ubuntu7.3
|
||||
Press ESCAPE within 5 seconds for boot options ERROR: C40000002:V03051002 I0 6D33944A-EC75-4855-A54D-809C75241F6C 83FFF850
|
||||
BdsDxe: failed to load Boot0001 "UEFI Misc Device" fr
|
||||
om PciRoot(0x0)/Pci(0x1,0x0): Not Found
|
||||
[2J[001;001H[=3h[2J[009DStarKernel UEFI Loader
|
||||
Loading kernel from ESP...
|
||||
[CKPT 001] Entered efi_main - ConOut live
|
||||
Monolithic build - kernel linked directly
|
||||
Collecting boot information...
|
||||
CmdLine: parsed OK
|
||||
[CKPT 004] Command line parsed
|
||||
[CKPT 005] Kernel stack allocation decided
|
||||
[CKPT 006] Boot info collected (ACPI table located)
|
||||
GOP: linear framebuffer found
|
||||
[CKPT 007] GOP: linear framebuffer found
|
||||
[CKPT 008] About to enter ExitBootServices retry loop
|
||||
Calling kernel_main (monolithic)...
|
||||
riscv64 item 4.3.5a: satp state at kernel entry (before switch)
|
||||
satp.MODE = 0x000000000000000a
|
||||
satp.PPN = 0x00000000000bf868
|
||||
__kernel_start = 0x00000000bdc1239c
|
||||
riscv64: satp cleared -- Bare mode, explicit (item 4.3.5a)
|
||||
|
||||
|
||||
_____ _ _ __ _
|
||||
/ ____| | | |/ / | |
|
||||
| (___ | |_ __ _ _ __| ' / ___ _ __ _ __ ___| |
|
||||
\___ \| __/ _` | '__| < / _ \ '__| '_ \ / _ \ |
|
||||
____) | || (_| | | | . \ __/ | | | | | __/ |
|
||||
|_____/ \__\__,_|_| |_|\_\___|_| |_| |_|\___|_|
|
||||
|
||||
LithosAnanke v2.1.0 riscv64
|
||||
Architecture: riscv64
|
||||
Build: Oct 29 2026 07:10:57
|
||||
|
||||
UEFI BootServices: EXITED
|
||||
Console: serial line is a 16550 at 0x0000000010000000 (no devicetree: QEMU's)
|
||||
|
||||
=== StarKernel Boot Information ===
|
||||
Memory map entries: 91
|
||||
Total memory: 1020 MB
|
||||
Usable memory: 974 MB
|
||||
===================================
|
||||
|
||||
PMM initialized.
|
||||
PMM statistics:
|
||||
Total pages: 250175
|
||||
Free pages : 249523
|
||||
Used pages : 652
|
||||
Total MB : 977
|
||||
Free MB : 974
|
||||
Used MB : 2
|
||||
|
||||
VMM initialized (mapped RAM, CR3 switched)
|
||||
VMM initialized (mapped RAM, CR3 switched)
|
||||
VMM self-test: mapped OK at 0xffff800000000000
|
||||
VMM self-test complete.
|
||||
|
||||
IDT installed.
|
||||
|
||||
APIC: init...
|
||||
PLIC: no DTB PLIC node -- using QEMU virt-machine default (base=0x0c000000)
|
||||
PLIC: init (S-mode context 1, threshold=0)
|
||||
APIC: init done
|
||||
|
||||
Timer: init...
|
||||
Timer: RISC-V time CSR @ 10000000 Hz (FALLBACK, no devicetree)
|
||||
Timer: init done
|
||||
|
||||
Kernel heap initialized.
|
||||
Heap statistics:
|
||||
Total bytes: 536870872
|
||||
Free bytes: 536870872
|
||||
Used bytes: 0
|
||||
Peak bytes: 0
|
||||
Heap base addr: 2214588416
|
||||
Heap end addr: 2751459328
|
||||
|
||||
Heartbeat: init...
|
||||
Heartbeat: init done
|
||||
Kernel initialization complete.
|
||||
Boot successful!
|
||||
|
||||
Boot disk: not a StarshipOS stick
|
||||
System: StarForth v4 (this build's default)
|
||||
StarForth v4: one host node, the F18-derived engine
|
||||
V4: capsule v4:sys:map-64.f18 signature: missing (unsigned)
|
||||
PARITY:V4_F18 name=v4:sys:map-64.f18 capsule_hash=0x949eb6a1e9260e49
|
||||
V4: capsule v4:sys:core.f18 signature: missing (unsigned)
|
||||
PARITY:V4_F18 name=v4:sys:core.f18 capsule_hash=0xb8f167892ec18c28
|
||||
V4: capsule v4:sys:input.f18 signature: missing (unsigned)
|
||||
PARITY:V4_F18 name=v4:sys:input.f18 capsule_hash=0x85d3ec486d929a79
|
||||
V4: capsule v4:sys:dict.f18 signature: missing (unsigned)
|
||||
PARITY:V4_F18 name=v4:sys:dict.f18 capsule_hash=0x1379bd3b5de811dc
|
||||
V4: capsule v4:sys:codegen.f18 signature: missing (unsigned)
|
||||
PARITY:V4_F18 name=v4:sys:codegen.f18 capsule_hash=0x36d2ae84d2911b90
|
||||
V4: capsule v4:sys:compile.f18 signature: missing (unsigned)
|
||||
PARITY:V4_F18 name=v4:sys:compile.f18 capsule_hash=0x11145c4c2ab819d8
|
||||
V4: capsule v4:sys:quit.f18 signature: missing (unsigned)
|
||||
PARITY:V4_F18 name=v4:sys:quit.f18 capsule_hash=0x43cadf3b21ddbf3e
|
||||
V4: capsule v4:sys:forth.f18 signature: missing (unsigned)
|
||||
PARITY:V4_F18 name=v4:sys:forth.f18 capsule_hash=0x16cab4a1268b85da
|
||||
V4: capsule v4:sys:numout.f18 signature: missing (unsigned)
|
||||
PARITY:V4_F18 name=v4:sys:numout.f18 capsule_hash=0x85a240ad3fb2b299
|
||||
V4: capsule v4:sys:words.f18 signature: missing (unsigned)
|
||||
PARITY:V4_F18 name=v4:sys:words.f18 capsule_hash=0xb1d381f927d9f14e
|
||||
V4: capsule v4:sys:system.f18 signature: missing (unsigned)
|
||||
PARITY:V4_F18 name=v4:sys:system.f18 capsule_hash=0xd92203664c2915bd
|
||||
V4: capsule v4:sys:qmath.f18 signature: missing (unsigned)
|
||||
PARITY:V4_F18 name=v4:sys:qmath.f18 capsule_hash=0xdb4140713dd857f3
|
||||
V4: capsule v4:sys:blocks.f18 signature: missing (unsigned)
|
||||
PARITY:V4_F18 name=v4:sys:blocks.f18 capsule_hash=0x76307ef48678dc2a
|
||||
V4: capsule v4:sys:log.f18 signature: missing (unsigned)
|
||||
PARITY:V4_F18 name=v4:sys:log.f18 capsule_hash=0xfc6540e6b824a52b
|
||||
V4: capsule v4:sys:acl.f18 signature: missing (unsigned)
|
||||
PARITY:V4_F18 name=v4:sys:acl.f18 capsule_hash=0x6845aa048db7eb22
|
||||
V4: capsule v4:sys:end.f18 signature: missing (unsigned)
|
||||
PARITY:V4_F18 name=v4:sys:end.f18 capsule_hash=0x5ef01312c07b79cc
|
||||
PARITY:V4_ROM words=2372 rom_hash=0x87b23d3ae2643c8d instructions=59145258
|
||||
V4: capsule v4:forth79.4th signature: missing (unsigned)
|
||||
PARITY:V4_CAPSULE name=v4:forth79.4th capsule_id=0x4055641ee17d176b capsule_hash=0x4055641ee17d176b dict_hash=0x033e1c05c09a1df8
|
||||
PARITY:V4_POST tests=538 pass=538 fail=0
|
||||
PARITY:V4_SYSTEM word_count=317 dict_hash=0xfec8c47cfc6f437f
|
||||
PARITY:OK
|
||||
POST: PASSED
|
||||
PCI: init...
|
||||
virtio-rng: found device
|
||||
rng: backend = virtio-rng
|
||||
entropy: ready
|
||||
virtio-input: found device
|
||||
virtio-input: driver ready
|
||||
Starting heartbeat...
|
||||
SBI: timer armed (TIME extension)
|
||||
Heartbeat running.
|
||||
blkio_usb: MSC device ready
|
||||
Artemis: the stick's partition attached
|
||||
[38;2;255;165;0m[Hera][39m Zuse: identity confirmed from attached thumbdrive
|
||||
[38;2;255;165;0m[zuse@Hera][39m [38;2;85;255;255mok> [39m3 4 + .
|
||||
[38;2;255;165;0m[zuse@Hera][39m 7 ok
|
||||
[38;2;255;165;0m[zuse@Hera][39m [38;2;85;255;255mok> [39m
|
||||
@@ -58,8 +58,9 @@ extern int strcmp(const char *a, const char *b);
|
||||
#endif
|
||||
|
||||
/** @brief Global statistics for test execution */
|
||||
#ifdef __STARKERNEL__
|
||||
/* Ensure visibility for GOT-based access with -fPIC -fvisibility=hidden */
|
||||
#if defined(__STARKERNEL__) && !defined(STARKERNEL_PIE_HIDDEN_H)
|
||||
/* Ensure visibility for GOT-based access with -fPIC -fvisibility=hidden
|
||||
* (not amd64: -fpie and pie_hidden.h make every symbol hidden there) */
|
||||
__attribute__((visibility("default")))
|
||||
#endif
|
||||
TestStats global_test_stats = {0, 0, 0, 0, 0};
|
||||
|
||||
Reference in New Issue
Block a user