aen-*-regcheck — on-silicon driver smoke tests
A suite of minimal register-level bench examples that each bind one E8 peripheral, exercise it through the portable Zephyr class API, and confirm the expected behaviour on real silicon (cross-checked with a J-Link mem32 read). They prove the driver binds + programs registers — the foundation the higher-level examples build on.
Source: examples/aen/.
| Example | Block | Check |
|---|---|---|
aen-crc-regcheck | hardware CRC (alif,crc) | CRC32/IEEE known-value vs host-precomputed reference |
aen-dma-regcheck | ARM PL330 DMA | 1000-byte M2M memcpy verified byte-for-byte (RESULT PASS) |
aen-hwsem-regcheck | HWSEM (alif,hwsem) | take → count nonzero → give → count 0 (AMP mutual-exclusion latch) |
aen-cmp-regcheck | HSCMP (alif,cmp) | high-speed comparator + internal DAC6 reference path alive |
aen-lptimer-regcheck | LPTIMER (alif,lptimer) | always-on DOWN-counter decreases between two reads |
aen-rtc-regcheck | LPRTC (snps,dw-apb-rtc) | always-on UP-counter advances (counter-only — not a calendar RTC) |
The portable calendar surface on top of the LPRTC counter is the separate aen-rtc-calendar shim (alp_rtc_set_time() / alp_rtc_get_time()).
board.yaml
Each regcheck is single-core HE and pulls in its one peripheral, e.g.:
som:
sku: E1M-AEN801
preset: e1m-evk
cores:
m55_he:
app: ./src
peripherals: [counter] # or: crc / dma / hwsem / cmp ...
diagnostics:
log_level: info
Expected output
[aen-dma-regcheck] PL330 M2M copy 1000 bytes
[aen-dma-regcheck] memcmp OK
[aen-dma-regcheck] RESULT PASS
See also
Questions about this page? Discuss in Community Forum