92typedef enum : uint32_t {
109typedef enum : uint8_t {
129typedef enum : uint8_t {
164typedef enum : uint16_t {
179typedef enum : uint32_t {
ra8_err_t(* ra8_devcfg_write_fn_t)(uint32_t offset, const uint8_t *src, uint32_t len)
Backing-store write (dependency-injection seam).
void ra8_devcfg_reset(void)
Drop the cached record so a later load re-resolves from scratch.
ra8_devcfg_layout_t
Record geometry, magic, schema version and extra-MRAM placement.
@ k_ra8_devcfg_body_bytes
Per-unit payload bytes.
@ k_ra8_devcfg_page_bytes
Extra-MRAM program page.
@ k_ra8_devcfg_slot_bytes
Reserved slot pitch per copy.
@ k_ra8_devcfg_schema_ver
Current schema version.
@ k_ra8_devcfg_magic
"RA8C" record marker.
@ k_ra8_devcfg_record_len
Active record = header + body.
@ k_ra8_devcfg_sig_headroom
slot - record: future signature.
@ k_ra8_devcfg_copy0_off
Copy 0 offset in extra-MRAM.
@ k_ra8_devcfg_copy1_off
Copy 1 offset in extra-MRAM.
@ k_ra8_devcfg_hdr_bytes
Header page (written LAST).
ra8_err_t ra8_devcfg_commit(const ra8_devcfg_store_t *store, const ra8_devcfg_record_t *rec)
Commit a new record to the stale copy slot with header-last ordering.
ra8_err_t ra8_devcfg_load(const ra8_devcfg_store_t *store)
Load and resolve the device configuration record from both copies.
ra8_devcfg_field_len_t
Fixed byte lengths of the variable-width body fields.
@ k_ra8_devcfg_panel_serial_len
Panel identity, NUL-padded.
@ k_ra8_devcfg_touch_cal_len
ra8_touch_cal_save blob.
@ k_ra8_devcfg_body_rsvd_len
Body reserved padding.
@ k_ra8_devcfg_hdr_rsvd_len
Header reserved padding.
@ k_ra8_devcfg_serial_len
Unit serial, NUL-padded.
@ k_ra8_devcfg_panel_lut_len
Panel LUT id, e.g.
ra8_devcfg_flags_t
Per-record status flags stored in the header flags word.
@ k_ra8_devcfg_flag_touch_valid
touch_cal blob is real.
@ k_ra8_devcfg_flag_provisioned
Line self-test passed.
@ k_ra8_devcfg_flag_vcom_valid
panel_vcom_mv is real.
ra8_devcfg_off_t
Byte offset of every field inside a serialised record.
@ k_ra8_devcfg_off_vcom
u16 panel VCOM magnitude (mV).
@ k_ra8_devcfg_off_fixture
u16 provisioning fixture id.
@ k_ra8_devcfg_off_hw_rev
u16 board revision.
@ k_ra8_devcfg_off_magic
u32 magic.
@ k_ra8_devcfg_off_serial
char[16] serial (body start).
@ k_ra8_devcfg_off_crc
u32 CRC-32 of the body.
@ k_ra8_devcfg_off_mfg_date
u32 packed YYYYMMDD.
@ k_ra8_devcfg_off_panel_lut
char[8] panel LUT id.
@ k_ra8_devcfg_off_seq
u32 monotonic sequence.
@ k_ra8_devcfg_off_panel_serial
char[12] panel serial.
@ k_ra8_devcfg_off_schema
u16 schema_version.
@ k_ra8_devcfg_off_flags
u32 ra8_devcfg_flags_t.
@ k_ra8_devcfg_off_key_id
u32 device-key identifier.
@ k_ra8_devcfg_off_hdr_rsvd
12 reserved header bytes.
@ k_ra8_devcfg_off_reclen
u16 record_len.
@ k_ra8_devcfg_off_body_rsvd
10 reserved body bytes.
@ k_ra8_devcfg_off_touch_cal
uint8[36] touch-cal blob.
ra8_err_t(* ra8_devcfg_read_fn_t)(uint32_t offset, uint8_t *dst, uint32_t len)
Backing-store read (dependency-injection seam).
ra8_devcfg_vcom_range_t
Plausible-range guard for the stored VCOM magnitude, millivolts.
@ k_ra8_devcfg_vcom_max_mv
Highest accepted VCOM magnitude, mV.
@ k_ra8_devcfg_vcom_min_mv
Lowest accepted VCOM magnitude, mV.
bool ra8_devcfg_is_blank(void)
Report whether neither record copy is valid (the provisioning gate).
ra8_err_t ra8_devcfg_get_vcom_mv(uint16_t *out_mv)
Fetch the validated panel VCOM magnitude in millivolts.
ra8_err_t ra8_devcfg_get_body(const ra8_devcfg_body_t **out_body)
Expose the decoded body of the loaded record.
const ra8_devcfg_store_t * ra8_devcfg_default_store(void)
Return the production extra-MRAM-backed store binding.
Error Code Definitions for ra8-firmware.
ra8_err_codes_t ra8_err_t
Canonical error-return type used by every ra8-firmware API.
Decoded per-unit payload (the 96-byte record body).
uint16_t hw_rev
Board revision.
uint32_t mfg_date
Packed YYYYMMDD.
char serial[k_ra8_devcfg_serial_len]
Unit serial, NUL-padded.
uint16_t fixture_id
Provisioning-line fixture id.
uint8_t touch_cal[k_ra8_devcfg_touch_cal_len]
ra8_touch_cal_save() blob.
uint16_t panel_vcom_mv
VCOM magnitude, mV (sign -ve).
char panel_serial[k_ra8_devcfg_panel_serial_len]
Panel identity, NUL-padded.
uint32_t device_key_id
Key identifier; NEVER key data.
char panel_lut_id[k_ra8_devcfg_panel_lut_len]
Panel LUT id from GET_DEV_INFO.
Decoded record: the body plus the header discriminators.
uint32_t flags
ra8_devcfg_flags_t bit-set.
uint32_t seq
Monotonic sequence of this record.
uint16_t schema_version
Schema the record was written under.
ra8_devcfg_body_t body
Per-unit payload.
Dependency-injection vtable for the record backing store.
ra8_devcfg_read_fn_t read
Backing read; non-NULL.