FABRIC-3.md: version correction -- LITHOS_VERSION back to 2.0.0, plus a rename-gap fix
LITHOS_VERSION 2.0.1 was premature: per this project's own versioning policy, 2.0.1 claims SER5 hardware-track progress (RDRAND backend + thumbdrive image) that was never actually verified on real hardware -- that verification is FABRIC-3.md's own open topic. Reset to 2.0.0 (still a QEMU-only release, correctly). Verified 3-arch boot shows "LithosAnanke v2.0.0" in each serial log directly, not assumed from the Makefile edit alone. Also closes a real gap found in today's earlier FABRIC-series rename: Makefile.starkernel, Kconfig.kernel, scripts/bleach_zuse_img.sh, four proof/*.thy files, and isr.S were never swept -- the original file list only matched *.md/*.c/*.h/*.4th, silently skipping every other extension. Fixed with the same safe placeholder substitution. .claude/settings.local.json's historical permission-grant log and ClaudeEXPORT/'s frozen export were deliberately left untouched. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019YcT3H2PQeyujrzjqS3Var
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
fcba528273
commit
6ca3fa2f78
+41
@@ -76,3 +76,44 @@ starting new work avoids ever having two divergent lines to reconcile later.
|
|||||||
**Task 1 closed.** `master` genuinely is the production line again, current through today's
|
**Task 1 closed.** `master` genuinely is the production line again, current through today's
|
||||||
FABRIC-series rename and the full `FABRIC-2.md` §I closure. Bare-metal-boot work (this
|
FABRIC-series rename and the full `FABRIC-2.md` §I closure. Bare-metal-boot work (this
|
||||||
document's actual topic) starts from here.
|
document's actual topic) starts from here.
|
||||||
|
|
||||||
|
## I.2 — Task 2: version correction — the `v2.0.1` bump and `v2.0.0` tag were premature
|
||||||
|
|
||||||
|
**Direct instruction, 2026-09-04**: the `LITHOS_VERSION` bump to `2.0.1` (and the branch name
|
||||||
|
that followed it) got ahead of the real state — per `Makefile.starkernel`'s own versioning
|
||||||
|
policy (`v2.0.0` = QEMU release, even major/LTS; `v2.0.1` = the SER5 hardware-track *line*,
|
||||||
|
RDRAND backend + thumbdrive image goal), claiming `2.0.1` implies hardware-track progress that
|
||||||
|
was never actually verified on real hardware — that verification is precisely `FABRIC-3.md`'s
|
||||||
|
whole open topic (§I.6 in the closed `FABRIC-2.md`). The current `master` HEAD is, correctly,
|
||||||
|
still a `v2.0.0`-class QEMU-only release. "Nothing harmful" — a version-label correction, not a
|
||||||
|
functional rollback.
|
||||||
|
|
||||||
|
**Found and fixed while correcting this, not left half-done:**
|
||||||
|
- A real gap in the FABRIC-series rename from earlier today: `Makefile.starkernel`,
|
||||||
|
`Kconfig.kernel`, `scripts/bleach_zuse_img.sh`, four `proof/*.thy` files, and
|
||||||
|
`src/starkernel/arch/amd64/isr.S` all still had stale `FABRIC.md`/`FABRIC-2.md`/`FABRIC-3.md`
|
||||||
|
citations — the original sweep's file-list only matched `--include=*.md/*.c/*.h/*.4th`, which
|
||||||
|
silently skipped every file without one of those four extensions. Found by re-grepping with
|
||||||
|
the extensions excluded instead of included. Fixed with the same safe placeholder-substitution
|
||||||
|
technique the original rename used (each file, one pass, ordered `FABRIC-3→2→1→0` placeholders
|
||||||
|
then resolved) — verified no double-shifted or broken references remained afterward.
|
||||||
|
`.claude/settings.local.json`'s own historical Bash-permission-grant log (literal past command
|
||||||
|
strings naming the file as it was called *at the time*) was deliberately left alone — rewriting
|
||||||
|
it would falsify an audit trail, not fix a stale citation.
|
||||||
|
- `ClaudeEXPORT/memories.json`/`conversations.json` also still reference the old names — left
|
||||||
|
untouched on purpose, same reasoning as the memory note on that archive: it's a frozen export,
|
||||||
|
mining material, not live documentation to keep in sync.
|
||||||
|
|
||||||
|
**Changes:**
|
||||||
|
1. `Makefile.starkernel`: `LITHOS_VERSION ?= 2.0.1` → `2.0.0`.
|
||||||
|
2. The rename-gap fix above (7 files).
|
||||||
|
3. Verified 3-arch boot (`clean qemu`, amd64/aarch64/riscv64, each in the foreground): all three
|
||||||
|
show `LithosAnanke v2.0.0` in the boot banner (confirmed directly in each serial log, not
|
||||||
|
assumed from the Makefile edit alone), zero build errors, zero unexpected warnings, clean
|
||||||
|
shutdown.
|
||||||
|
4. Moved the existing `v2.0.0` git tag (previously at `2efd7fe`, the original QEMU-release
|
||||||
|
milestone commit — that commit and its own message stay fully intact in history, only the
|
||||||
|
tag pointer moves) to the current `master`/`v2.0.1`-branch HEAD, per explicit instruction —
|
||||||
|
the prior tag placement was itself part of the same "got ahead of myself" correction, not a
|
||||||
|
separate decision. No remote tag existed yet (`git ls-remote --tags origin` was empty for
|
||||||
|
`v2.0.0`), so no destructive remote operation was needed, only a local move-and-push.
|
||||||
|
|||||||
+11
-11
@@ -46,7 +46,7 @@ config STADIUM_VM_MEMORY_PERCENT
|
|||||||
(kmalloc_get_stats(), taken AFTER the cell array's own allocation),
|
(kmalloc_get_stats(), taken AFTER the cell array's own allocation),
|
||||||
divided by VM_MEMORY_SIZE (5 MiB, include/vm.h), floored to 1 so Hera
|
divided by VM_MEMORY_SIZE (5 MiB, include/vm.h), floored to 1 so Hera
|
||||||
can always boot. No upper ceiling -- birth is refused once the
|
can always boot. No upper ceiling -- birth is refused once the
|
||||||
computed bound is reached (FABRIC.md item 1.5's refusal behaviour is
|
computed bound is reached (FABRIC-0.md item 1.5's refusal behaviour is
|
||||||
unchanged), it just isn't a compile-time guess anymore. Default of
|
unchanged), it just isn't a compile-time guess anymore. Default of
|
||||||
50% is an untuned placeholder, not a derived optimum, same DoE-later
|
50% is an untuned placeholder, not a derived optimum, same DoE-later
|
||||||
treatment as STADIUM_MEMORY_PERCENT.
|
treatment as STADIUM_MEMORY_PERCENT.
|
||||||
@@ -55,7 +55,7 @@ config STADIUM_CONTAINS_DEPTH_MAX
|
|||||||
int "Patron containment chain depth cap (STADIUM_CONTAINS_DEPTH_MAX)"
|
int "Patron containment chain depth cap (STADIUM_CONTAINS_DEPTH_MAX)"
|
||||||
default 5
|
default 5
|
||||||
help
|
help
|
||||||
Hard bound on how many patrons deep a `contains` chain (FABRIC.md
|
Hard bound on how many patrons deep a `contains` chain (FABRIC-0.md
|
||||||
item 1.1, the ninth cell wire) may nest. A patron with a non-none
|
item 1.1, the ninth cell wire) may nest. A patron with a non-none
|
||||||
`contains` link cannot be reaped -- reap-gating enforcement of
|
`contains` link cannot be reaped -- reap-gating enforcement of
|
||||||
this bound is item 3.5's scope, not yet implemented. Distinct
|
this bound is item 3.5's scope, not yet implemented. Distinct
|
||||||
@@ -71,12 +71,12 @@ config STADIUM_CAPACITY_TICK
|
|||||||
transfer-slope estimate (vm_physics_tick() -- a passive median
|
transfer-slope estimate (vm_physics_tick() -- a passive median
|
||||||
recompute over recent touch samples, not a capacity/transfer
|
recompute over recent touch samples, not a capacity/transfer
|
||||||
decision itself), expressed in virtual ticks -- never wall-clock.
|
decision itself), expressed in virtual ticks -- never wall-clock.
|
||||||
Wired in 2026-08-15 (FABRIC-2.md F.2/§12 Q5): this counter is fed
|
Wired in 2026-08-15 (FABRIC-1.md F.2/§12 Q5): this counter is fed
|
||||||
by EVERY live VM's own vm_tick(), not one VM's, so it previously
|
by EVERY live VM's own vm_tick(), not one VM's, so it previously
|
||||||
shared HEARTBEAT_INFERENCE_FREQUENCY (1000) and fired roughly
|
shared HEARTBEAT_INFERENCE_FREQUENCY (1000) and fired roughly
|
||||||
(live VM count) times faster than a single VM's own heat-inference
|
(live VM count) times faster than a single VM's own heat-inference
|
||||||
gate -- backwards from the "order of magnitude apart" minimum
|
gate -- backwards from the "order of magnitude apart" minimum
|
||||||
(FABRIC.md §22.4). Default of 4000 is a flat, untuned placeholder
|
(FABRIC-0.md §22.4). Default of 4000 is a flat, untuned placeholder
|
||||||
picked to roughly restore that separation at Tripod's known
|
picked to roughly restore that separation at Tripod's known
|
||||||
4-VM topology (Hera + two Hermes + Artemis) -- not computed from
|
4-VM topology (Hera + two Hermes + Artemis) -- not computed from
|
||||||
live VM count at runtime, deliberately: a fixed constant, same
|
live VM count at runtime, deliberately: a fixed constant, same
|
||||||
@@ -90,11 +90,11 @@ config STADIUM_MEMORY_PERCENT
|
|||||||
help
|
help
|
||||||
The Stadium's global cell array is sized at boot from
|
The Stadium's global cell array is sized at boot from
|
||||||
pmm_get_stats().free_bytes, taken at the point of allocation
|
pmm_get_stats().free_bytes, taken at the point of allocation
|
||||||
(FABRIC.md item 3.2, §17.6 position (b): "sized at boot from the
|
(FABRIC-0.md item 3.2, §17.6 position (b): "sized at boot from the
|
||||||
memory budget", not a hardcoded cell count). This is the fraction
|
memory budget", not a hardcoded cell count). This is the fraction
|
||||||
of that free-byte figure the array claims, rounded down to whole
|
of that free-byte figure the array claims, rounded down to whole
|
||||||
64-byte cells. Default of 1% is conservative -- comfortably clears
|
64-byte cells. Default of 1% is conservative -- comfortably clears
|
||||||
the ~4096-cells-per-VM illustrative figure in FABRIC.md §23.3
|
the ~4096-cells-per-VM illustrative figure in FABRIC-0.md §23.3
|
||||||
against a QEMU -m 1024 test config while leaving the kernel heap
|
against a QEMU -m 1024 test config while leaving the kernel heap
|
||||||
and everything else nearly all of physical memory.
|
and everything else nearly all of physical memory.
|
||||||
|
|
||||||
@@ -102,7 +102,7 @@ config STADIUM_WORD_HEAT_QUANTUM
|
|||||||
int "Q48.16 heat quantum moved per word touch/starter-grant (STADIUM_WORD_HEAT_QUANTUM)"
|
int "Q48.16 heat quantum moved per word touch/starter-grant (STADIUM_WORD_HEAT_QUANTUM)"
|
||||||
default 2048
|
default 2048
|
||||||
help
|
help
|
||||||
FABRIC.md §17.7 (item 4.1): the fixed Q48.16 amount transferred between
|
FABRIC-0.md §17.7 (item 4.1): the fixed Q48.16 amount transferred between
|
||||||
a VM's Stadium reservoir and a word patron's cell on every touch
|
a VM's Stadium reservoir and a word patron's cell on every touch
|
||||||
(already-resident) or starter-grant admission attempt (non-resident,
|
(already-resident) or starter-grant admission attempt (non-resident,
|
||||||
Option B). Q48_ONE is 65536; the default of 2048 is Q48_ONE divided by
|
Option B). Q48_ONE is 65536; the default of 2048 is Q48_ONE divided by
|
||||||
@@ -116,7 +116,7 @@ config STADIUM_WORD_COOL_RATE_Q48
|
|||||||
int "Q48.16 fraction of resident heat removed per tick (STADIUM_WORD_COOL_RATE_Q48)"
|
int "Q48.16 fraction of resident heat removed per tick (STADIUM_WORD_COOL_RATE_Q48)"
|
||||||
default 21845
|
default 21845
|
||||||
help
|
help
|
||||||
FABRIC.md §17.7 (item 4.1): redirects Loop #3's decay shape onto
|
FABRIC-0.md §17.7 (item 4.1): redirects Loop #3's decay shape onto
|
||||||
Stadium word-patron heat instead of discarding it -- cooled heat
|
Stadium word-patron heat instead of discarding it -- cooled heat
|
||||||
returns to the VM's reservoir rather than vanishing, so this must be a
|
returns to the VM's reservoir rather than vanishing, so this must be a
|
||||||
fraction of the patron's OWN current heat removed per elapsed tick
|
fraction of the patron's OWN current heat removed per elapsed tick
|
||||||
@@ -132,7 +132,7 @@ config STADIUM_BLOCK_HEAT_QUANTUM
|
|||||||
int "Q48.16 heat quantum moved per block touch/starter-grant (STADIUM_BLOCK_HEAT_QUANTUM)"
|
int "Q48.16 heat quantum moved per block touch/starter-grant (STADIUM_BLOCK_HEAT_QUANTUM)"
|
||||||
default 2048
|
default 2048
|
||||||
help
|
help
|
||||||
FABRIC-3.md §B (MIGRATE punch-list item): same role as
|
FABRIC-2.md §B (MIGRATE punch-list item): same role as
|
||||||
STADIUM_WORD_HEAT_QUANTUM above, for block patrons touched via
|
STADIUM_WORD_HEAT_QUANTUM above, for block patrons touched via
|
||||||
BLOCK/BUFFER/UPDATE (stadium_block_dispatch(), stadium_blocks.c).
|
BLOCK/BUFFER/UPDATE (stadium_block_dispatch(), stadium_blocks.c).
|
||||||
Default matches the word quantum -- no evidence yet that blocks need a
|
Default matches the word quantum -- no evidence yet that blocks need a
|
||||||
@@ -144,7 +144,7 @@ config STADIUM_BLOCK_COOL_RATE_Q48
|
|||||||
int "Q48.16 fraction of resident block heat removed per tick (STADIUM_BLOCK_COOL_RATE_Q48)"
|
int "Q48.16 fraction of resident block heat removed per tick (STADIUM_BLOCK_COOL_RATE_Q48)"
|
||||||
default 21845
|
default 21845
|
||||||
help
|
help
|
||||||
FABRIC-3.md §B (MIGRATE punch-list item): same role as
|
FABRIC-2.md §B (MIGRATE punch-list item): same role as
|
||||||
STADIUM_WORD_COOL_RATE_Q48 above, for block patrons. Default matches
|
STADIUM_WORD_COOL_RATE_Q48 above, for block patrons. Default matches
|
||||||
the word cool rate for the same reason the heat quantum above does --
|
the word cool rate for the same reason the heat quantum above does --
|
||||||
untuned placeholder, not a derived optimum.
|
untuned placeholder, not a derived optimum.
|
||||||
@@ -153,7 +153,7 @@ config STADIUM_BLOCK_TRACK_CAP_MULT
|
|||||||
int "Multiplier on stadium_cell_count() for the block residency table's capacity"
|
int "Multiplier on stadium_cell_count() for the block residency table's capacity"
|
||||||
default 2
|
default 2
|
||||||
help
|
help
|
||||||
FABRIC-3.md §B (MIGRATE punch-list item): stadium_blocks.c's
|
FABRIC-2.md §B (MIGRATE punch-list item): stadium_blocks.c's
|
||||||
(quota_slot, lbn) -> cell_index hash table is a fixed-capacity
|
(quota_slot, lbn) -> cell_index hash table is a fixed-capacity
|
||||||
open-addressing table sized at stadium_blocks_init() as
|
open-addressing table sized at stadium_blocks_init() as
|
||||||
stadium_cell_count() * this value. At most stadium_cell_count() blocks
|
stadium_cell_count() * this value. At most stadium_cell_count() blocks
|
||||||
|
|||||||
+4
-4
@@ -72,7 +72,7 @@ endif
|
|||||||
|
|
||||||
# Version
|
# Version
|
||||||
# Roadmap (per docs/lithosananke/ROADMAP.md "Release Versioning Policy" and
|
# Roadmap (per docs/lithosananke/ROADMAP.md "Release Versioning Policy" and
|
||||||
# FABRIC-3.md §G — X.0.0 = QEMU release, X.5.0 = hardware bare-metal release):
|
# FABRIC-2.md §G — X.0.0 = QEMU release, X.5.0 = hardware bare-metal release):
|
||||||
# v1.0.x — serial-only production (released)
|
# v1.0.x — serial-only production (released)
|
||||||
# v1.5.x — framebuffer VT100 terminal/console milestone (released)
|
# v1.5.x — framebuffer VT100 terminal/console milestone (released)
|
||||||
# v2.0.0 — QEMU release (even major = LTS): three-arch QEMU story complete
|
# v2.0.0 — QEMU release (even major = LTS): three-arch QEMU story complete
|
||||||
@@ -80,7 +80,7 @@ endif
|
|||||||
# v2.2.0 — amd64 bare-metal (Beelink SER5) — see ROADMAP "Board-by-board rollout"
|
# v2.2.0 — amd64 bare-metal (Beelink SER5) — see ROADMAP "Board-by-board rollout"
|
||||||
# v2.5.0 — hardware bare-metal release: real per-arch RNG + real-board boot
|
# v2.5.0 — hardware bare-metal release: real per-arch RNG + real-board boot
|
||||||
VERSION ?= 3.1.0
|
VERSION ?= 3.1.0
|
||||||
LITHOS_VERSION ?= 2.0.1
|
LITHOS_VERSION ?= 2.0.0
|
||||||
|
|
||||||
# ==============================================================================
|
# ==============================================================================
|
||||||
# BUILD PATHS
|
# BUILD PATHS
|
||||||
@@ -133,7 +133,7 @@ MKCAPSULE_SRC = tools/mkcapsule.c tools/pkcs8_ed25519.c \
|
|||||||
src/starkernel/crypto/sha512.c
|
src/starkernel/crypto/sha512.c
|
||||||
MKCAPSULE_BIN = $(BUILD_DIR)/tools/mkcapsule
|
MKCAPSULE_BIN = $(BUILD_DIR)/tools/mkcapsule
|
||||||
# Milestone 6 (Phase 8): the snakeoil intermediate's private key, generated
|
# Milestone 6 (Phase 8): the snakeoil intermediate's private key, generated
|
||||||
# offline outside this repo entirely (see FABRIC-3.md's Phase 8 §Milestone 6
|
# offline outside this repo entirely (see FABRIC-2.md's Phase 8 §Milestone 6
|
||||||
# writeup) -- not present in CI or a fresh checkout, so signing is skipped
|
# writeup) -- not present in CI or a fresh checkout, so signing is skipped
|
||||||
# gracefully ($(wildcard ...) below) rather than failing the build. Override
|
# gracefully ($(wildcard ...) below) rather than failing the build. Override
|
||||||
# with `make SIGN_KEY=/path/to/key.pem ...` on a machine that holds it.
|
# with `make SIGN_KEY=/path/to/key.pem ...` on a machine that holds it.
|
||||||
@@ -227,7 +227,7 @@ LOADER_LD ?= $(LD)
|
|||||||
# has no dynamic linker to populate a GOT, so those reads silently returned
|
# has no dynamic linker to populate a GOT, so those reads silently returned
|
||||||
# NULL. PLATFORM_TIME_NO_INLINE (removed 2026-08-06) was a symbol-specific
|
# NULL. PLATFORM_TIME_NO_INLINE (removed 2026-08-06) was a symbol-specific
|
||||||
# workaround for the same underlying bug, made unnecessary once amd64 got
|
# workaround for the same underlying bug, made unnecessary once amd64 got
|
||||||
# the real fix; see FABRIC.md for the write-up).
|
# the real fix; see FABRIC-0.md for the write-up).
|
||||||
COMMON_CFLAGS := \
|
COMMON_CFLAGS := \
|
||||||
-std=c99 -Wall -Werror -Wextra \
|
-std=c99 -Wall -Werror -Wextra \
|
||||||
-O2 -U_FORTIFY_SOURCE \
|
-O2 -U_FORTIFY_SOURCE \
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
# Capsule Block Manifest — Auto-generated
|
# Capsule Block Manifest — Auto-generated
|
||||||
<!-- Generated by mkcapsule --manifest 2026-09-04T15:35:20Z -->
|
<!-- Generated by mkcapsule --manifest 2026-09-04T15:51:18Z -->
|
||||||
<!-- DO NOT EDIT — re-run mkcapsule --manifest to refresh. -->
|
<!-- DO NOT EDIT — re-run mkcapsule --manifest to refresh. -->
|
||||||
<!-- Hand-written justifications and immutability notes live -->
|
<!-- Hand-written justifications and immutability notes live -->
|
||||||
<!-- in MANIFEST.md alongside this auto-generated index. -->
|
<!-- in MANIFEST.md alongside this auto-generated index. -->
|
||||||
|
|||||||
Binary file not shown.
@@ -87,7 +87,7 @@ inactive.
|
|||||||
|
|
||||||
\section{Context}
|
\section{Context}
|
||||||
|
|
||||||
Item 4.6 (Section H, \texttt{FABRIC-2.md}) migrated Artemis's block-heat
|
Item 4.6 (Section H, \texttt{FABRIC-1.md}) migrated Artemis's block-heat
|
||||||
tracking onto Stadium-resident cells, fixing a quota-grant-ordering bug
|
tracking onto Stadium-resident cells, fixing a quota-grant-ordering bug
|
||||||
that had been causing her boot-time stress self-test to fail 100\% of the
|
that had been causing her boot-time stress self-test to fail 100\% of the
|
||||||
time on all three architectures. With that item closed, the next open
|
time on all three architectures. With that item closed, the next open
|
||||||
@@ -415,7 +415,7 @@ Sum Sq of precisely zero on the one field that does vary.
|
|||||||
|
|
||||||
\texttt{ACL.4th} is not self-activated in this repository's default
|
\texttt{ACL.4th} is not self-activated in this repository's default
|
||||||
\texttt{init.4th} (\verb|\ S" ACL.4th" EXEC|, commented out); every cell in
|
\texttt{init.4th} (\verb|\ S" ACL.4th" EXEC|, commented out); every cell in
|
||||||
this campaign, like every other boot recorded in \texttt{FABRIC-2.md}, ran
|
this campaign, like every other boot recorded in \texttt{FABRIC-1.md}, ran
|
||||||
with ACL inactive. This report validates the campaign mechanism and its
|
with ACL inactive. This report validates the campaign mechanism and its
|
||||||
determinism properties; it does not produce an ACL-RWT overhead number.
|
determinism properties; it does not produce an ACL-RWT overhead number.
|
||||||
Reproducing the original campaign's \texttt{+0.0054\%--+0.0088\%} overhead
|
Reproducing the original campaign's \texttt{+0.0054\%--+0.0088\%} overhead
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -6,7 +6,7 @@ begin
|
|||||||
Mirrors: src/word_source/framebuffer_words.c
|
Mirrors: src/word_source/framebuffer_words.c
|
||||||
Registers: PLOT FB-WIDTH FB-HEIGHT
|
Registers: PLOT FB-WIDTH FB-HEIGHT
|
||||||
|
|
||||||
Part of the Stadium console fabric work (FABRIC.md item 4.3.3). All
|
Part of the Stadium console fabric work (FABRIC-0.md item 4.3.3). All
|
||||||
three words are registered UNCONDITIONALLY in both hosted and kernel
|
three words are registered UNCONDITIONALLY in both hosted and kernel
|
||||||
builds, but their bodies are `#ifdef __STARKERNEL__`-gated: the kernel
|
builds, but their bodies are `#ifdef __STARKERNEL__`-gated: the kernel
|
||||||
branch calls real framebuffer hardware functions (fb_put_pixel/
|
branch calls real framebuffer hardware functions (fb_put_pixel/
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ begin
|
|||||||
Mirrors: src/word_source/keyboard_words.c
|
Mirrors: src/word_source/keyboard_words.c
|
||||||
Registers: KBD-SCAN KBD-DEBUG VKBD-EVENT VKBD-DEBUG KEY-EVENT ALT+TAB
|
Registers: KBD-SCAN KBD-DEBUG VKBD-EVENT VKBD-DEBUG KEY-EVENT ALT+TAB
|
||||||
|
|
||||||
Part of the Stadium console fabric work (FABRIC.md items 4.3.5/4.4v/
|
Part of the Stadium console fabric work (FABRIC-0.md items 4.3.5/4.4v/
|
||||||
4.4y). All six words are registered UNCONDITIONALLY regardless of
|
4.4y). All six words are registered UNCONDITIONALLY regardless of
|
||||||
build/arch, but every body is gated on `__STARKERNEL__` (and, for the
|
build/arch, but every body is gated on `__STARKERNEL__` (and, for the
|
||||||
amd64-specific/riscv64-aarch64-specific pairs, the target architecture
|
amd64-specific/riscv64-aarch64-specific pairs, the target architecture
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ begin
|
|||||||
Mirrors: src/word_source/scroll_words.c
|
Mirrors: src/word_source/scroll_words.c
|
||||||
Registers (kernel-only -- see below): SCROLL-BACK SCROLL-FWD
|
Registers (kernel-only -- see below): SCROLL-BACK SCROLL-FWD
|
||||||
|
|
||||||
Part of the Stadium console fabric work (FABRIC.md item 4.4q). Unlike
|
Part of the Stadium console fabric work (FABRIC-0.md item 4.4q). Unlike
|
||||||
framebuffer_words.c/keyboard_words.c, this file's word BODIES and its
|
framebuffer_words.c/keyboard_words.c, this file's word BODIES and its
|
||||||
`register_word` calls are BOTH inside `#ifdef __STARKERNEL__` --
|
`register_word` calls are BOTH inside `#ifdef __STARKERNEL__` --
|
||||||
`register_scroll_words` registers nothing at all on a hosted build
|
`register_scroll_words` registers nothing at all on a hosted build
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ begin
|
|||||||
Mirrors: src/word_source/ttf_words.c
|
Mirrors: src/word_source/ttf_words.c
|
||||||
Registers (kernel-only -- see below): TTF-TEXT
|
Registers (kernel-only -- see below): TTF-TEXT
|
||||||
|
|
||||||
Part of the Stadium console fabric work (FABRIC.md item 4.3.7e). Same
|
Part of the Stadium console fabric work (FABRIC-0.md item 4.3.7e). Same
|
||||||
shape as scroll_words.c: the word body AND its `register_word` call are
|
shape as scroll_words.c: the word body AND its `register_word` call are
|
||||||
both inside `#ifdef __STARKERNEL__`; TTF-TEXT does not exist as a word
|
both inside `#ifdef __STARKERNEL__`; TTF-TEXT does not exist as a word
|
||||||
at all on a hosted build.
|
at all on a hosted build.
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
# back to pristine/unminted state.
|
# back to pristine/unminted state.
|
||||||
#
|
#
|
||||||
# disk/zuse.img simulates the physical Zuse superuser thumbdrive for QEMU
|
# disk/zuse.img simulates the physical Zuse superuser thumbdrive for QEMU
|
||||||
# testing (FABRIC-3.md, Phase 8 kickoff). "Bleaching" it means restoring the
|
# testing (FABRIC-2.md, Phase 8 kickoff). "Bleaching" it means restoring the
|
||||||
# all-zero blank state homeblocks_sig_check() reads as HOMEBLOCKS_SIG_BLANK
|
# all-zero blank state homeblocks_sig_check() reads as HOMEBLOCKS_SIG_BLANK
|
||||||
# -- i.e. simulating a genuine first boot, so the one-time mint-Zuse flow can
|
# -- i.e. simulating a genuine first boot, so the one-time mint-Zuse flow can
|
||||||
# be exercised repeatedly during development without hand-regenerating the
|
# be exercised repeatedly during development without hand-regenerating the
|
||||||
|
|||||||
@@ -157,7 +157,7 @@ isr_stub32:
|
|||||||
jmp isr_common_entry
|
jmp isr_common_entry
|
||||||
|
|
||||||
/* Stub for i8042 keyboard IRQ1, routed via I/O APIC to vector 0x21 = 33
|
/* Stub for i8042 keyboard IRQ1, routed via I/O APIC to vector 0x21 = 33
|
||||||
* (item 4.3.5, FABRIC.md §27.5). Before this stub existed, vector 33 fell
|
* (item 4.3.5, FABRIC-0.md §27.5). Before this stub existed, vector 33 fell
|
||||||
* through to isr_stub_default below, which unconditionally reports "255"
|
* through to isr_stub_default below, which unconditionally reports "255"
|
||||||
* regardless of which IDT slot actually fired -- the CPU legitimately took
|
* regardless of which IDT slot actually fired -- the CPU legitimately took
|
||||||
* IDT[33] (confirmed via the LAPIC's own ISR register), but isr_common_handler
|
* IDT[33] (confirmed via the LAPIC's own ISR register), but isr_common_handler
|
||||||
|
|||||||
Reference in New Issue
Block a user