- hal/renesas-rx.c builds the RX71M flash driver with CC-RX: the
driver runs from RAM through #pragma section FRAM and copyfuncs(),
and FPCKAR follows the BSP clock settings.
- IDE/Renesas/e2studio/RX71M holds the wolfBoot and app_RenesasRX01
CC-RX projects, their headers, make_images.sh and a Readme.
- docs/Renesas.md and docs/Targets.md point to the new projects, and
.gitignore lists their build and generated folders.
- hal_clk_init(): rx71m runs the main crystal (RX_MAIN_XTAL_HZ,
default 24MHz) through the PLL to 240MHz.
- hal_prepare_boot(): under WOLFBOOT_RESTORE_CLOCK, switch to the
LOCO and stop the PLL and main oscillator on rx71m.
- uart_init(): SCI7 on P90/P92 by default; uart_write() waits for
TEND. hal_led_on()/hal_led_off(): LED0 on P03.
- renesas-rx.c: TARGET_rx71m flash driver run from RAM, with #error
unless RAM_CODE and __WOLFBOOT are defined. It copies the FCU
firmware at init, programs 256-byte units at most once per erase,
and masks interrupts with timeouts and FSTATR checks for each
program and erase.
- renesas-rx.h: PSW, FASTAT and FAEINT bits and the new flash
error codes.
- renesas-rx71m.config: commented RX_MAIN_XTAL_HZ line.
- test-app: link .ramcode into RAM and build renesas-rx.o with
RAM_CODE and __WOLFBOOT for rx71m.
- renesas-rx71m.config, rx71m.ld, rx71m.c: RSK+ RX71M layout with
NVM_FLASH_WRITEONCE=1, .romcode at 0xFFFFFF80 and .ofs_rx71m at
0x00120040.
- arch.mk: reject PKA, DELTA_UPDATES and NVM_FLASH_WRITEONCE other
than 1 for rx71m; build with -misa=v2; drop .ofs_rx71m from
wolfboot.bin and fill gaps with 0xFF.
- renesas-rx.h: rx71m clock, flash, FACI and MPC values;
hal_clk_init() sets SYS_MEMWAIT.
- boot_renesas.c: INT_Fault for the rx71m fault vectors,
RomCodeArea[] with ROMCODE 0xFFFFFFFF, and the option-setting
array under WOLFBOOT_RENESAS_OSM.
- Add NVM ECC mode, which introduces a new erase check HAL API to use
flash controller HW to blank check sectors instead of reading them
and comparing to an erased byte (which typically triggers an ECC
fault)
- Add NVM Journal mode as an alternative to NVM_FLASH_WRITE_ONCE that
does not require a sector-size RAM buffer and dramatically reduces
the number of erases and programs required to set individual flags,
while also being much more robust to power-cuts.