Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .github/workflows/arty-a7-toy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,8 @@ jobs:
working-directory: platforms/arty-a7-toy
run: |
python3 scripts/verify_target.py
python3 scripts/verify_linux_gemmini_archive.py
python3 scripts/verify_linux_gemmini.py --build-record evidence/2026-10-12/linux-gemmini/build/LINUX_GEMMINI_BUILD.json --hardware-result evidence/2026-10-12/linux-gemmini/hardware/RESULT.json
python3 -m compileall -q scripts tests host software
bash -n scripts/elaborate.sh scripts/build_test_programs.sh software/build.sh
- name: Install interface simulator
Expand Down
11 changes: 10 additions & 1 deletion platforms/arty-a7-toy/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ FP16/32/64 support and Gemmini 8×8. Complete board implementation, timing, CDC
checks and Linux RTL tests pass. On 2026-10-12 the connected board was programmed,
the complete image was read back from DDR and five Linux checks passed on hardware.
This remains a **Rev E engineering target**: PCB revision is unconfirmed and
physical Gemmini tests are pending. See [measured results](VALIDATION.md) and
the remaining acceptance scope is recorded in [measured results](VALIDATION.md) and
[the hardware logs](evidence/2026-10-12/README.md).

For stored configuration/software and autonomous power-on startup, see
Expand All @@ -15,6 +15,15 @@ it boots the original Linux image and passes all five system checks without
reloading from the host. See [Flash evidence](evidence/2026-10-12/flash/README.md).
Runtime DDR and changes to the initramfs remain volatile.

## 2026-10-12:Linux/Gemmini 实物回归

按标准 rootfs/bbkernel 流程构建的新镜像已完成全部 DDR 读回和实物启动;
15 个程序返回 0,覆盖五项 Linux 系统检查、原 13 项 Gemmini 测试及新增 16 项
OS/WS 矩阵对照(包含分块和尾块)。最终运行器回归与看门狗清理检查均通过。
多数小矩阵端到端路径暂时比 CPU 参考更慢,原始计时和测试记录见
[中文实物报告](evidence/2026-10-12/linux-gemmini/REPORT.md),复现方法见
[验证指南](software/GEMMINI_LINUX.md)。本轮未写 Flash,整模型仍未验收。

## Architecture and scope

- RV64IMAFDC with Zfh/Zba/Zbb/Zbs, M/S/U, PMP, Sv39, interrupts and 8 KiB I/D
Expand Down
74 changes: 72 additions & 2 deletions platforms/arty-a7-toy/SOURCE_LOCK.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,11 @@
".gitignore": "5eaf4f0d4cbefc5292732eb17cd984839a8fe4cfc65f39352c187fd73c95947a",
".jvmopts": "a66471d84e6e2ed0c3c40d5ebbc237d268ed9b04f3528ef22e967a2bd4e8aa44",
"FLASH_BOOT.md": "471bcd9c9704bd2eedf11880c27c48d0505a56498e62e68ada84d5cd5ed70686",
"README.md": "f2adecb86fb96ce99b88791e05730797a427de51fa01e6f1012e94fec8e3e486",
"README.md": "d1a1326934b5f211f617b0528ca6d85fde5771d8ca32f0c85add7ffcb8310264",
"SOFTWARE_BASELINE.json": "3a5c9f65771e6fd7f8172674baf22263ba7c2d9244993c9162ba526344a7b0aa",
"THIRDPARTY.md": "02ed1d3ddd4fc26a8b1580eb4948ff6cf4f548c0434c89f1c6c2220bed3d4a42",
"UPSTREAM_MANIFEST.json": "c4a96343e318c452420cf86b34d6008140560eeffa91cd85b4b87b229717c9be",
"VALIDATION.md": "99d986881af4c697b0c3313c47296d7c76a95322fda36c67c0ac22b128fad37e",
"VALIDATION.md": "ec3963aee9098723fe7bce0910ac66e7169752e81ae2a687c454154d58f4b610",
"board/README.md": "5a7f01460107df0c5c40d2a2b18c68648ca2d7b20c914c788b880ec1b9f6f95b",
"board/SOURCE_MANIFEST.json": "03d99f1f43bbf68d92df61db52bdee0019723e2e194ee5f9c12a5ac6d4c5a105",
"board/arty_a7.xdc": "f13869ba386038557084adabafeb5255943d0b67f1db4b88fd907e4f095d016f",
Expand Down Expand Up @@ -185,10 +185,72 @@
"evidence/2026-10-12/hardware/program.log": "c754d0f5066dbd34b9035fb77ee6e8ef3fe403b03b56b97f5cdd523aba313511",
"evidence/2026-10-12/hardware/program_arty.tcl": "fbb62bafb6df602b0f5f638fb05ae4ecc90494ac162b9a5f5ac314200f7a241c",
"evidence/2026-10-12/hardware/summarize_hardware.py": "a0f681a64ca0c441fc614bf8c2ccf664e2de86d02d3d2cfe2eb0b99e7f8edefd",
"evidence/2026-10-12/linux-gemmini/MANIFEST.json": "13a488dcc4975e3936b3f4db81768c4c190602b6cda5d931394efe3e252eeea8",
"evidence/2026-10-12/linux-gemmini/README.md": "77ef4fdb7507cf748201bf751109ac30aaa1f8d3af0d3d52bf53bf5da5f07045",
"evidence/2026-10-12/linux-gemmini/REPORT.md": "0b54513128c3e9432964b1082ebcb04af46b41e8034f7ddef35b7876b2e3a7bf",
"evidence/2026-10-12/linux-gemmini/build/BOARD_FIRMWARE_RESULT.json": "a1c458a50c26a7cd05bf17d362771db241d526d909821f7b2ed32a42ecf5a8c0",
"evidence/2026-10-12/linux-gemmini/build/INPUT_MANIFEST.json": "b1bd6eb8c04f88d9ab1080118e6ed4ba4e760ad121ec1d30ed42936bc59226c4",
"evidence/2026-10-12/linux-gemmini/build/LINUX_GEMMINI_BUILD.json": "4d9229135d7f92b711c385628fcd96839ad0e667a6579f87d8f604ce8dd7cda3",
"evidence/2026-10-12/linux-gemmini/build/SESSION.json": "06e0cb8cd341a395a87d514381422da405c3c08c5312c69fd71a72a82b00ceb0",
"evidence/2026-10-12/linux-gemmini/build/build.log": "1c9ba6e82cae3182025567709bd6796910e194ff30a22f6545ec2ca8967037f7",
"evidence/2026-10-12/linux-gemmini/first-pass/LOAD_RESULT.json": "a36ce2b6e39608aa4d1f0df71ae8354b5e446a360623891b3846a77d0388e657",
"evidence/2026-10-12/linux-gemmini/first-pass/PERFORMANCE.json": "fc681a9d01275898476837e413d4edfcd67fbc1c98fcb8be3ac443fabcfb0e0e",
"evidence/2026-10-12/linux-gemmini/first-pass/RESULT.json": "b2422db3c133cab82d69efe300642ca16c546054b091125c1b208f2cbd42e269",
"evidence/2026-10-12/linux-gemmini/first-pass/boot-console.log": "eb98e070415b15b6500d53eaeebc19b32f526cbe34cd3f2b8f9f652187c900c1",
"evidence/2026-10-12/linux-gemmini/first-pass/linux-console.log": "edf9345b7a7757c4149fc993ad203b541047332d49525fe5ed965de7c026a1b1",
"evidence/2026-10-12/linux-gemmini/generated-inputs/CMakeLists.txt": "4ea8d92e23c19d780fff7d6a2c1369ef3363dc1fe87acf1195656ce852684f4f",
"evidence/2026-10-12/linux-gemmini/generated-inputs/PREPARED.json": "890d8a759be94610a16a5ac976f0775e99220a4e4de3e44abd3c3aeeff99819e",
"evidence/2026-10-12/linux-gemmini/generated-inputs/ballISA.h": "8f74e9230c45bc270c99b4b31fde6db6ed61b01c0055c7c62855de11bb571606",
"evidence/2026-10-12/linux-gemmini/generated-inputs/gemmini_linux_check.c": "2fa2f6d73d674d89344ffd058f28712380c2de04d64a88b43fe141e30e9df467",
"evidence/2026-10-12/linux-gemmini/generated-inputs/gemmini_os_cisc_atranspose_test.c": "d4b44df5f004b4e1d4ada02c247e5f66a6596dfa80cf70a09c54d7448b572712",
"evidence/2026-10-12/linux-gemmini/generated-inputs/gemmini_os_cisc_basic_test.c": "481733138780de0ef2ce7d867bc375cd22a64990f33b9eabd8a03a45c2e8861c",
"evidence/2026-10-12/linux-gemmini/generated-inputs/gemmini_os_cisc_btranspose_test.c": "efdf1cefe9277fde1dce1d62eb7c3364ddbb27926e99ddce9800f1fb54be1fec",
"evidence/2026-10-12/linux-gemmini/generated-inputs/gemmini_os_cisc_shift_test.c": "9676b4e45945de9cbe005be695ffd8d0f3a406fa0448875a8372cc1d1c20fb4c",
"evidence/2026-10-12/linux-gemmini/generated-inputs/gemmini_os_risc_abtranspose_test.c": "641982f9adc4b898a27d23967807d9f350c3db717b7c276df42281b7c6ba3558",
"evidence/2026-10-12/linux-gemmini/generated-inputs/gemmini_os_risc_atranspose_test.c": "4583e36cbea777a439e65fb4ca58e51574e2f7686217088922128c36fa8d74f9",
"evidence/2026-10-12/linux-gemmini/generated-inputs/gemmini_os_risc_basic_test.c": "cd8102c88b58a2ea289212779bd2bf50f9e35806e9039f4cc5a6abf73eef131f",
"evidence/2026-10-12/linux-gemmini/generated-inputs/gemmini_os_risc_btranspose_test.c": "01ee05bb7a92de708e1bac4041354d9f0363c70a4f5b898af784f47410f63798",
"evidence/2026-10-12/linux-gemmini/generated-inputs/gemmini_os_risc_shift_test.c": "aae1a632fd3fabc1ae9fea89daf9dc0693880c718f100c86b946257935a4076d",
"evidence/2026-10-12/linux-gemmini/generated-inputs/gemmini_ws_cisc_conv_test.c": "ab75719d036a6b61b4369514c6771ebac94a04e7448f2127b1be60bab2e8f28b",
"evidence/2026-10-12/linux-gemmini/generated-inputs/gemmini_ws_risc_basic_test.c": "f5aab861cf0f764e6179e24c70c75d9f3c7e9a0364a4e3aa818784f7f309c03a",
"evidence/2026-10-12/linux-gemmini/generated-inputs/gemmini_ws_risc_btranspose_test.c": "fff4938ea7c16864e3e1b91a2d30ef2d3eabeb3ed4a1153964f5d351d6980279",
"evidence/2026-10-12/linux-gemmini/generated-inputs/gemmini_ws_risc_shift_test.c": "a22209c0c02cd5d5b258525dd6266bbe3a7447b410a082e8da19a268478b6307",
"evidence/2026-10-12/linux-gemmini/generated-inputs/params.h": "cc6bbe816a15f9a7bd133fbeb45d039733a22a6a6f94dace16eecea5eef61b24",
"evidence/2026-10-12/linux-gemmini/hardware/LOAD_RESULT.json": "a36ce2b6e39608aa4d1f0df71ae8354b5e446a360623891b3846a77d0388e657",
"evidence/2026-10-12/linux-gemmini/hardware/PERFORMANCE.json": "696de0aa9b3129ae10369afe8d71553922b577170554a1b2d9639048d89d5b20",
"evidence/2026-10-12/linux-gemmini/hardware/POST_RESULT.json": "3d2ad49575d52bdf4fdcee730a69c7d79b6c5add809f9b7007607c2b883246ac",
"evidence/2026-10-12/linux-gemmini/hardware/RESULT.json": "184efe4a22b4d1078788d74167c40ae8fd65210650f01458d752be927a6e1206",
"evidence/2026-10-12/linux-gemmini/hardware/boot-console.log": "eb98e070415b15b6500d53eaeebc19b32f526cbe34cd3f2b8f9f652187c900c1",
"evidence/2026-10-12/linux-gemmini/hardware/linux-console.log": "e5c5442fa53496bc2c72bb725678fa424c0a73f43a511fee1e678ca7b6ca6729",
"evidence/2026-10-12/linux-gemmini/hardware/post-console.log": "3b9b17bdc1c03a90b6fcc3b66ae796c721f41a3fe1a690dc753bc71ea84311ee",
"evidence/2026-10-12/linux-gemmini/hardware/program-console.log": "e4ee8fb155e0bb01fd4eef92a4e64c560a2921815eb60ce70c0cd72293c2f697",
"evidence/2026-10-12/linux-gemmini/hardware/program.jou": "0e45a26886ecdfaf1dec01dc4b9b256f5a40db1239e1d09f5aa7d439bcd36fac",
"evidence/2026-10-12/linux-gemmini/hardware/program.log": "7e71edb015aa3f1e9afd6b62c13364d7e2e760e6c6a48734de84e66eadbdb304",
"evidence/2026-10-12/linux-gemmini/load/RESULT.json": "a36ce2b6e39608aa4d1f0df71ae8354b5e446a360623891b3846a77d0388e657",
"evidence/2026-10-12/linux-gemmini/load/linux-boot.log": "eb98e070415b15b6500d53eaeebc19b32f526cbe34cd3f2b8f9f652187c900c1",
"evidence/2026-10-12/linux-gemmini/load/transfer.log": "25799c30f382384cc2facce1320f1b11c86d555a7a6364fa3384079886aa39a4",
"evidence/2026-10-12/linux-gemmini/sources/board/program_arty.tcl": "fbb62bafb6df602b0f5f638fb05ae4ecc90494ac162b9a5f5ac314200f7a241c",
"evidence/2026-10-12/linux-gemmini/sources/diagnostics/check_watchdog.py": "de3dea9d9bdff5760788918ad7493651903e5bb633804796de1dd6d840b3d71c",
"evidence/2026-10-12/linux-gemmini/sources/diagnostics/post_gemmini_live.py": "bfc88015da57b0601793b6253ed3b0659391916becbe81dd248c3a1c5e0f97b3",
"evidence/2026-10-12/linux-gemmini/sources/host/check_linux_gemmini.py": "5554ebb0902b9cca203d48889f59ef160ad958aaac1dbb8d37c0579a1c3e5b2b",
"evidence/2026-10-12/linux-gemmini/sources/host/ftdi_transport.py": "f3a88c170f40121febde7fd283a50e54ab5af5b79f0651cb15db9af743d57de7",
"evidence/2026-10-12/linux-gemmini/sources/host/load.py": "a62e48b779c9ce1d6f8f6669523e427cf48bd19be3bf50a554dc391b09b3e3b2",
"evidence/2026-10-12/linux-gemmini/sources/program.tcl": "0ff928503cf00798dae132117435e34981a176c586d7aa16e587c47877ba031f",
"evidence/2026-10-12/linux-gemmini/sources/scripts/remote_linux_gemmini.py": "b99f6cea4cdbc5765cb9778ee12a6485a778f558e1871d40473cd532889c3e60",
"evidence/2026-10-12/linux-gemmini/sources/scripts/verify_linux_gemmini.py": "ef336dfa911a71ef9b64618444864dc4f8620d2b53674422ea238fb1b11c2c26",
"evidence/2026-10-12/linux-gemmini/sources/software/build_gemmini_image.py": "949a59cbc4bd494cbe793b392aaccc237637c809667b6bd5dd211e2176e6fcbf",
"evidence/2026-10-12/linux-gemmini/sources/software/gemmini_linux_check.c": "2fa2f6d73d674d89344ffd058f28712380c2de04d64a88b43fe141e30e9df467",
"evidence/2026-10-12/linux-gemmini/sources/software/prepare_gemmini_linux.py": "358cee302a2a8ee6672cbf4c830776a6047dc33793a272a89f7343729ca0b3ec",
"evidence/2026-10-12/linux-gemmini/watchdog/RESULT.json": "efc60f10a891ba2e224ee3130d4e776c00fc04eea5cc2e522690f85ddfb0475e",
"evidence/2026-10-12/linux-gemmini/watchdog/check.log": "58de5f54346dfd805737aea528347a5fa9430a7a0962964a08b349ede52b6303",
"evidence/README.md": "058e5d4580d68897450dd08eb114469007f9d931bfcd5423809cd1d12811cde0",
"host/check_linux_gemmini.py": "3b23497e7b5b3516af22abb1fc38da48055c60dd786f75f5ada3faa201ca9268",
"host/check_watchdog.py": "0d35f150a4cff87d99d6c368e9d1ba62312db9b780210bdb33269881421cc573",
"host/flash.py": "47ad35043c9a04e9f6730dd4d53cf84f0d7bb018a03f76754d549f7bebe936dc",
"host/ftdi_transport.py": "f3a88c170f40121febde7fd283a50e54ab5af5b79f0651cb15db9af743d57de7",
"host/load.py": "a62e48b779c9ce1d6f8f6669523e427cf48bd19be3bf50a554dc391b09b3e3b2",
"host/observe_flash_boot.py": "7beecce577edcc6ede47f66eff456abd13430a04919cc0ce03ee03abeb539a12",
"host/requirements-gemmini.txt": "43ab64f971d4d5ffbbc16009743fb980a06a76d381a2c71e54e9d3aab314cb6a",
"patches/buckyball/GemminiBall.scala": "c18ace5c3ae6645c022af809104e4baf35da657a42ab144ce86260327ebab5aa",
"patches/buckyball/GemminiExCtrl.scala": "ac3ecc72fa7deb5d50c0c42496b19de9d596b4ebaebd24496bf3792c87d85eaf",
"patches/buckyball/GemminiExCtrlCmdStates.scala": "6fc95f3f3f22333e5ad5a90d28a40bfa70fa2593b4ea0be05e42fcfb11235f6e",
Expand Down Expand Up @@ -232,15 +294,23 @@
"scripts/prepare_flash_boot.py": "75ff16be3f820dc2e9e167132d0ca4f20e67ca359a95398413e80430eebf2101",
"scripts/prepare_fpga_memories.py": "e9914433d01be3cbc253f237934d674a360dd4b97c2b0799b1e67cab5f5fe294",
"scripts/prepare_sources.py": "eb3637a141d4ef30659eb8086d1d59ec159c710ee81d9f8e64fc38b811632799",
"scripts/remote_linux_gemmini.py": "2221acd85bc1876d7730f15bb01f0b50629c2a9b9645b4d12cb74e566cf1e686",
"scripts/resolve_config.py": "1c4fb7d8533e659c7f8cb9e0ef5eb93f06d29a51d6b3e2449efe648f8f74000d",
"scripts/run_board_regression.py": "7302be4d5517eb315eb37b3ff8972bf17e2fe42990ae1fb6702c43c632515bfd",
"scripts/start_board_build.py": "04c5a521bcd7014774e6b476e8395bde134de9096bb22e6d6b6f200bf4311c83",
"scripts/verify_flash_evidence.py": "6db7b0dcc7323ba07ec6f17d0a09f04b321f8bdd24582ca49184dd654c1ebd45",
"scripts/verify_hardware_evidence.py": "60f3555a6b6ac6a9f567cf1b22caca9755bd4179dcea1f6731a70f8bd26a1202",
"scripts/verify_linux_gemmini.py": "1413703dfa42a6be6ac60e0df6bf3eb95ce8b50671a3a803c7421302eace7b2b",
"scripts/verify_linux_gemmini_archive.py": "cf8ab6737b2ad3525cf91e528aab64d78261146dec7473596d321812f3bad5e0",
"scripts/verify_target.py": "39bdd529e55f2b36bed4ba6b10a4b0a400fcb685f6f3e5886d537e8c549932cd",
"software/GEMMINI_LINUX.md": "31d991de14e315a1cf8ca24f5d3715a25a13d8601c8334687730a5b47959a963",
"software/MODEL_COMPATIBILITY.md": "1e3a78574d019f4a3e1442b899cc654f2c5a3e41cf55a7650610eed75618a1cf",
"software/build.sh": "908b5678edf5a710187480974c0c699ca8833faede20d044b7131060c3161292",
"software/build_gemmini_image.py": "949a59cbc4bd494cbe793b392aaccc237637c809667b6bd5dd211e2176e6fcbf",
"software/gemmini_linux_check.c": "2fa2f6d73d674d89344ffd058f28712380c2de04d64a88b43fe141e30e9df467",
"software/linux_system_check.c": "c1cedf2ce6e2583393c9e7f51fe20558c1402b8d81faf2152e8f6eeaf8058315",
"software/prepare_dependencies.py": "5bf2eca25081e014ff0de67ae0aeb41cb4380a2767a08a109a3bf6c19238b308",
"software/prepare_gemmini_linux.py": "358cee302a2a8ee6672cbf4c830776a6047dc33793a272a89f7343729ca0b3ec",
"software/prepare_platform.py": "f053463897045e1929d65aa9614b7b871c1c6c342f1f15865793883c858f3d61",
"src/main/scala/EmitFmaChecks.scala": "1d6eef40cefb36aaf0ce73838f2954cd89d09ad8c97244a2ac346da7137dccfd",
"src/main/scala/EmitGroupQueryCheck.scala": "ae3a7bb5a7d951109596bc3e481a9a275e14f04a7cf6ec28084d50f354122ee1",
Expand Down
18 changes: 15 additions & 3 deletions platforms/arty-a7-toy/VALIDATION.md
Original file line number Diff line number Diff line change
Expand Up @@ -77,9 +77,9 @@ the connected Arty A7-100T; the October 11 records remain unchanged.
MemTotal is 245,784 KiB. Transport restores the original 16 ms FTDI latency.

PCB revision remains unknown; this exact official E.0 MIG image works on the
connected board. Physical Gemmini operator regression, FP16/FP32 exhaustive
checks, full 256 MiB DDR sweep, long-duration stability and power measurements
are still pending. This first run used volatile SRAM and did not write Flash.
connected board. 该首次启动记录不包含 Gemmini 实物回归,后续覆盖见下方新增章节。
FP16/FP32 全面检查、全 256 MiB DDR 扫描、长期稳定性和功耗仍未验证。
This first run used volatile SRAM and did not write Flash.
Treat the result as successful first bring-up, not full hardware release.

DRC retains 360 warnings; methodology retains 49 warnings and 16 advisories,
Expand Down Expand Up @@ -111,3 +111,15 @@ a bitstream or software. The cold-start observer records one USB disconnect and
five Linux checks with exit status 0. Runtime DDR/initramfs changes still vanish
on reset; the stored startup image persists. Hardware Gemmini qualification and
the other acceptance limits above remain pending.

## Linux/Gemmini 实物回归:2026-10-12

后续的新标准软件镜像完成 25,797,640 字节 DDR 完整读回(806.172 秒)、Linux 启动,
板上 15 个程序摘要与构建记录一致。五项系统检查、原 13 项 Gemmini 测试及新增
16 项 OS/WS 矩阵对照均通过;最终运行器和 watchdog 回收检查也通过。
实际用例未超时;单独构造的 1 秒 watchdog 超时按预期返回 137。

本轮使用相同已验证 UART 位流,没有增加或裁剪 RTL,也未改 Flash。
上述两个历史归档的测试范围保持原样;本轮原始测试日志、精确来源及
毫秒级计算计时见 [中文报告](evidence/2026-10-12/linux-gemmini/REPORT.md)。
多数小矩阵端到端路径比朴素 CPU 参考更慢;完整模型及其他未覆盖项目仍待验证。
Loading
Loading