- Added build_hp_rtthread.py for building the RT-Thread kernel with RV64 support. - Updated build_hp_smoke.py to target RV64 architecture and modified output filenames. - Modified generate_vexiiriscv.py to reflect RV64 configuration and memory management. - Created hp_tools.py for shared utilities related to RV64 builds. - Enhanced package_hp_boot.py to package RV64 workloads and updated versioning. - Implemented run_hp_sim.py for executing and validating HP workloads with specific markers. - Developed setup_hp_rtthread.py for installing RT-Thread source and environment setup. - Updated GenerateRetroSocHp.scala to generate RV64 application cores. - Enhanced tests for HP boot bundles, platform specifications, and tool utilities to accommodate RV64 changes. - Adjusted test cases to validate new workload types and ensure compatibility with RV64 architecture.
3.0 KiB
Locked Configuration Inputs
dependencies.lock.json is the source of truth for external repositories,
archives, OCI base images, Nix inputs, checksums, and CI tool bundles. Its digest
contributes to every build variant identity. flake.lock resolves the pinned Nix
inputs and is validated against this lock.
Publication inputs are also locked here: publication_media, the CeTZ, oxifmt,
wavy/jogs, bytefield, rivet, blockcell, circuiteria and tidy archives, and the
locally required Typst version in publication_tools. Package identities include
both name and version; CeTZ 0.3.4/0.5.2 and oxifmt 0.2.1/1.0.0 coexist as
separate cache entries. Library imports are checked as a complete offline closure.
They are prepared manually by publications/build_datasheet.py setup, without
adding a root Makefile target. See Publications.
Do not add direct downloads to setup scripts or workflow YAML. Update the lock with a full Git revision or verified SHA-256 checksum, validate it with:
python3 scripts/dependency_lock.py --lock dependencies/dependencies.lock.json
Then run the affected setup, doctor, test, and regression flow described in Engineering Workflow.
The locked SKY130 OpenRAM SRAM archive is generated and published by the
retroSoC/artifact workflow. physical/pdk/setup.py verifies its SHA-256,
manifest, geometry, source revisions, generated-file hashes, and TT/SS views
before materializing it below .cache/retrosoc/pdk/sky130/openram/. Generated
Verilog, Liberty, LEF, GDS, and SPICE views are never committed here.
The HP profile additionally locks VexiiRiscv, OpenSBI, Linux stable, and
Buildroot source revisions. make setup-hp-linux installs the software sources
below .cache/retrosoc/sources/; VexiiRiscv may be supplied through
VEXIIRISCV_ROOT, but its revision is still checked before generated RTL is
accepted. No generated CPU RTL or Linux build output belongs in Git.
rtthread_hp pins official RT-Thread v5.3.0 at
99428a1e7f7447955aa860f7c969273a12095b8f. make setup-hp-rtthread installs
that source, the checksum-locked riscv_gnu_hp RV64 compiler, and the hashed
SCons requirement in a local virtual environment. The BSP is copied into the
build variant and uses the upstream kernel/CPU port without modifying it.
The LP SDK retains its existing RV32 toolchain.
The libjpeg-turbo source archive is a host-verification input for the JPEG accelerator. It supplies an implementation-independent interoperability oracle; it is not linked into firmware or synthesized RTL. The repository-owned fixed point model remains the bit-accurate source of expected RTL results.
The pinned libFLAC source and official FLAC test corpus are host-only APU-P5
verification inputs. Install them with make setup-apu-reference; neither is
linked into firmware, RTL, or the shipped APUMC bundle. Run
make CONFIG=configs/ci/ihp130.mk apu-p5-corpus to produce the checksum-pinned
per-file profile and independent PCM manifest.