|
ra8-firmware 0.1.0
Bare-metal firmware for the Renesas RA8 family (RA8D2 / RA8P1)
|
Apps moved out of the HIL-passing set: each is blocked by bench config, an SD reseat, absent external hardware, or is under triage – see the tier README.
| App | Description |
|---|---|
bkup_survival_demo | Exercises the 128-byte VBATT backup-register store (VBTBKRn, via ra8_bkup): it writes a pattern across the backup words and reads it back, and it plants a sentinel plus a boot counter that has to ... |
compress_demo | Drives the ra8_io fabric (#155) with the opt-in DEFLATE compression layer (#161) on a stock EK-RA8D2 with no external hardware: build an in-SRAM RAM block device, bridge it to ra8_fs, format and ... |
cpu1_pingpong_ipc | Dual-core IPC ping-pong across the full TrustZone secure-boot scaffolding (#22). CPU0 (M85) runs Secure only long enough to programme the SAU, unlock PRCR_S.PRC4, write IPCSAR = 0x00050000 and BLXNS ... |
epub_open | Opens a real .epub off a microSD card and runs the epub parse stack on it, on the target (#114). epub_parse proved the parser runs on the M85 from a baked in-memory blob; this closes the storage gap ... |
epub_parse | The first firmware app to run the epub parse stack on the target (#139). It bakes a known-good two-chapter .epub into a C array and parses it entirely in memory – no card, no USB, no display – ... |
epub_toc | Runs the epub table-of-contents path on silicon (#116) against real .epub files staged on a microSD card. #74 added titled TOC parsing – EPUB2 NCX <navMap> and EPUB3 nav.xhtml <nav epub:type="toc"> ... |
ereader_shelf | A full e-reader GUI on the EK-RA8D2 7.0-inch 1024x600 parallel TFT, and the visible front end of the compiled-book (.rabook) pipeline: a bookshelf of cover art, a cover/title page, a table of ... |
gpt_irq_demo | Interrupt-driven GPT0: links the GPT0 counter-overflow event through the ICU IELSR table to an NVIC line with ra8_isr_register, starts GPT0 in saw-wave PWM mode, then sleeps. Every overflow fires an ... |
lpm_deep_standby_1_demo | Deep Software Standby variant 1 (LPSCR.LPMD = 0x8) entry on a bare EK-RA8D2. Variant 1 keeps the LOCO, sub-clock detection and voltage monitors running on top of the always-on wake-up detectors (HUM ... |
lpm_deep_standby_2_demo | Deep Software Standby variant 2 (LPSCR.LPMD = 0x9) entry on a bare EK-RA8D2. Variant 2 stops the voltage-monitor and sub-clock-detection domains that variant 1 (lpm_deep_standby_1_demo) leaves ... |
lpm_deep_standby_3_demo | Deep Software Standby variant 3 (LPSCR.LPMD = 0xA) entry on a bare EK-RA8D2 – the deepest standby state the RA8D2 exposes. On top of the variant 2 cuts it also stops the LOCO oscillator, leaving ... |
lpm_idle_demo | Counts wakes out of plain Sleep mode: enter WFI, let SysTick wake the core a millisecond later, accumulate a hundred or so of those, then bump an in-RAM counter, toggle LED1 and report. |
lpm_periodic_idle | The shape a real periodic application takes (#153): each period the CPU does a small unit of work, then sleeps in Software Standby until the on-chip Ultra-Low-Power Timer (ULPT0) wakes it, for a ... |
lpm_software_standby_demo | Software Standby (LPSCR.LPMD = 0x5) with an RTC alarm as the wake source, on a bare EK-RA8D2. Software Standby is the first of the truly deep LPM states: almost every clock domain is gated including ... |
lpm_ulpt_standby | Software Standby (LPSCR.LPMD = 0x5) woken by the on-chip Ultra-Low-Power Timer (ULPT0) – the deep-idle foundation: an MCU that spends nearly all its time in standby and is woken by an internal ... |
lpm_wake_matrix_demo | Walks every WUPEN0 / WUPEN1 wake-source enable bit the LPM HAL exposes and confirms each reads back as written, then disarms everything and confirms both registers read zero. It is the smoke test for ... |
lvd_monitor_demo | Watches the VCC rail through voltage monitor 1 (PVD1) in the safest possible configuration and reports live status once a second. g_lvd_ok / g_lvd_mon_above / g_lvd_det / g_lvd_cfg_err / ... |
mem_ecc_fault_demo | SRAM ECC fault injection and detection (#130). Where ecc_monitor_demo only brings ECC up and reads a clean status, this deliberately provokes a memory error and proves the hardware error path latches ... |
mem_subsystem | Drives each layer of the ra8_mem hierarchy (#147) in isolation, so the primitives the e-reader leans on are observable without the whole reader stack around them (#263). |
mpu_partition_simple | |
pagecache | On-silicon exercise of the reflow import-time pagination cache (#117, the |
pdg_delay_demo | PWM Delay Generation Circuit (PDG) bring-up: selects the 80-160 MHz FRANGE band, enables the DLL, un-bypasses PDG channel 0, and stages a mid-range delay code on the GTIOC0A rising edge (DLY[6:0], ... |
poeg_safe_shutoff | Demonstrates the POEG (Port Output Enable for GPT) safe-shutoff path: kill a running GPT PWM output on a fault trigger, then clear the fault and re-enable it. This is the mechanism a motor-control ... |
power_profiler | Smoke test for ra8_power_profile, the enter/exit dwell-time accumulator. It walks the four interesting RA8D2 power states in a loop – a busy spin under ACTIVE, then SLEEP, DEEP_SLEEP and ... |
psa_crypto_hil | On-silicon known-answer test for the real software crypto backend (TF-PSA-Crypto) on the M85 – the hardware counterpart of the host test_psa_real_kat.c. |
ra8_cache_store_demo | Runs the whole ra8_cache_store lifecycle end to end on the target – the persistent key-to-blob cache (#201) that backs compiled .rabook containers, which had no direct example until #257. |
ra8_io_cache_demo | Drives the ra8_io caching block device (#160) with no external hardware. |
ra8_io_demo | The reference end-to-end run through the whole ra8_io I/O fabric (#155), with no external hardware: |
ra8_io_fsfmt_demo | Drives the ra8_io filesystem-format registry (#159) with no external hardware. |
ra8_io_sd_demo | Proves the ra8_io fabric's swappable-backend promise (#155, #156): the same VFS API that ra8_io_demo runs over a RAM disk, running over a microSD card by swapping only the block device. Everything ... |
ra8_io_sdram_demo | The ra8_io fabric (#155) over the EK-RA8D2's 64 MiB external SDRAM at 0x68000000. It is ra8_io_demo with exactly one thing changed: the block device is the SDRAM backend (ra8_io_blockdev_sdram_init, ... |
ra8_io_xspi_demo | The ra8_io fabric (#155, #156) over the on-board Octo-SPI NOR flash – a third storage tier alongside the RAM (ra8_io_demo) and SD (ra8_io_sd_demo) cases. |
reflow_content | Headless check of the reflow book-content render path (#115): lay out a baked multi-paragraph chapter into a small RGB565 framebuffer, render every page and fold a hash over the framebuffer output, ... |
reset_cause_demo | Checks that ra8_reset_get_cause() decodes RSTSR1.SWRF correctly (#52). The app boots, triggers a software reset via ra8_reset_software_reset(), and on the post-reset boot enters a loop that advances ... |
rng_demo | Pulls bytes from ra8_psa_crypto_random() once a second and dumps them as hex over the console, toggling LED1 on each emit so the heartbeat is visible without a serial terminal. |
rot_verify_hil | On-silicon proof that a working root of trust can authenticate an image on this hardware. It runs the real ra8_rot verify chain against a signed fixture: |
rsip_sha256_kat | On-silicon FIPS 180-4 known-answer test for ra8_rsip_sha256. ra8_rot re-computes an image digest through this function, so its correctness is security-critical; the app hashes three published NIST ... |
rtc_alarm | Sets the on-chip RTC to a known seed time, schedules an alarm a few seconds out through ra8_rtc_set_alarm, polls RCR1.AIF for the fire, logs over the console, then advances the seed and re-arms. No ... |
rtc_periodic_demo | Extends rtc_alarm to the RTC's periodic interrupt: after programming the same few-seconds-out calendar alarm it enables both the alarm and periodic IRQ flags (RCR1.AIE and RCR1.PIE), then polls ... |
touch_cal | Interactive N-point affine touch calibration (#262), wiring the weighted least-squares solver in libs/ra8_touch_cal end to end over the real GoodIX GT911 driver (ra8_touch on IIC_B) and the real ... |
touch_demo | Standalone GoodIX GT911 capacitive-touch bring-up (#122). The GT911 driver was previously only exercised inside ereader_ui, with no standalone example and no gate of its own. |
tz_nsc_cgc_usb | Runs a full ThreadX + USBX CDC-ACM self-loop entirely inside the Non-Secure image (#60), layered on the Non-Secure-Callable CGC veneer wall. Both USB controllers are delegated to the NS world and the ... |
usb_selftest_wlun | The write-path counterpart to the read-only MSC self-loops: it exercises the host-to-device bulk-OUT data phase (SCSI WRITE(10)). The two USB ports are cabled to each other and one firmware image ... |