mirror of
https://github.com/retroSoC/retroSoC.git
synced 2026-11-04 22:32:36 +00:00
- Introduced to define the development environment and validate runtime/platform contracts. - Enhanced with to ensure change markers adhere to publication rules. - Updated to integrate boot acceptance checks and ensure dependencies are correctly managed. - Added tests for environment validation, publication change scope, and CI stages to prevent regression and ensure compliance with publication standards. - Implemented checks in to validate the presence of development environment dependencies. - Refactored existing tests to improve coverage and ensure accurate validation of publication claims and software configurations.
49 lines
2.9 KiB
Typst
49 lines
2.9 KiB
Typst
#import "../style.typ": *
|
|
#change-start("v05-emphasis-application-diagnostics","Selected body emphasis: application diagnostics")
|
|
|
|
=== Diagnostic application sequences <application-diagnostics>
|
|
The following inventories describe the checks that the reviewed application sources execute.
|
|
They are *not newly observed pass results*. Run selection and reported coverage must name the
|
|
application, profile and stage; an application summary line cannot enlarge the tested scope.
|
|
These routines change hardware state and scratch memory and belong in a controlled diagnostic
|
|
environment with *competing users stopped*.
|
|
|
|
#for app in data.system_reference.software.applications {
|
|
block(breakable:false,sticky:true)[
|
|
#heading(level:4,app.title)
|
|
#par(app.selection)
|
|
#par(app.prerequisites)
|
|
]
|
|
ds-table("application-coverage-"+app.id,[#app.title: ordered checks and coverage boundaries],
|
|
([Step / check],[Actual operation],[Not established / side effects]),
|
|
app.stages.map(s=>([#str(s.order). #s.title],s.coverage,s.boundary)),
|
|
widths:(1.05fr,1.7fr,1.7fr))
|
|
source-note(app.source,title:"Actual application sequence and terminal branches")
|
|
}
|
|
|
|
Bringup prints application and ARCHINFO diagnostics between UART setup and the SDIO check.
|
|
The ARCHINFO diagnostic routine returns void; its error text is not separately propagated into
|
|
bringup's terminal result. The CI smoke application has its own explicit identity check and
|
|
is selected by the regression runner's APP override. *Do not equate the two sequences*.
|
|
|
|
The SDIO self-test observes controller presence/capabilities and uses the CMD_DONE test-IRQ path;
|
|
it does not send a card-initialization or data-transfer command. USB2 self-test requires an idle
|
|
controller, injects the fatal-status test IRQ and clears that bit only if it was not already
|
|
pending. Neither routine proves CPU interrupt delivery, external device enumeration or a
|
|
physical data transfer.
|
|
|
|
Crypto self-test compares an AES-128 ECB encryption result and a SHA-256 digest against known
|
|
answers and requests key zeroization, including on an earlier failure. It does not cover all
|
|
algorithm modes or establish side-channel, entropy or security certification. Other CI smoke
|
|
checks have similarly bounded meanings: APU is discovery-only, RNG uses diagnostic data, CLINT
|
|
and timers are polled, and GPIO31 is exercised without an independent external measurement.
|
|
|
|
Use @firmware-application-results for terminal codes, C returns and repeated code values.
|
|
Record test invocation and logs under @release-verification before publishing a matching pass.
|
|
#source-note("crt/src/hal/sdio.c",title:"SDIO controller self-test implementation")
|
|
#source-note("crt/src/hal/usb2.c",title:"USB2 controller self-test implementation")
|
|
#source-note("crt/src/hal/crypto.c",title:"Crypto known-answer checks and zeroization")
|
|
#source-note("scripts/regress.py",title:"Regression selection of CI smoke firmware")
|
|
|
|
#change-end("v05-emphasis-application-diagnostics")
|