Skip to main content

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/.

ExampleBlockCheck
aen-crc-regcheckhardware CRC (alif,crc)CRC32/IEEE known-value vs host-precomputed reference
aen-dma-regcheckARM PL330 DMA1000-byte M2M memcpy verified byte-for-byte (RESULT PASS)
aen-hwsem-regcheckHWSEM (alif,hwsem)take → count nonzero → give → count 0 (AMP mutual-exclusion latch)
aen-cmp-regcheckHSCMP (alif,cmp)high-speed comparator + internal DAC6 reference path alive
aen-lptimer-regcheckLPTIMER (alif,lptimer)always-on DOWN-counter decreases between two reads
aen-rtc-regcheckLPRTC (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