mirror of
https://github.com/tillitis/tillitis-key1.git
synced 2025-11-25 10:03:13 -05:00
- Add per app flash storage
- Adds four data areas. An app can allocate an area. Once allocated
the area is tied to the CDI of the app and can only be
read/written/deallocated by the same app.
- Add two pre loaded app slots to flash
- Load an app from the first slot at boot. The app digest must match a
specific digest specified in firmware.
- Optionally load an app from the second slot
- Add a resetinfo area in FW_RAM which is used to signal an app's intent
of resetting the system and, optionally, pass data to firmware or the
next app in a bootchain.
Co-authored-by: Jonas Thörnblad <jonas@tillitis.se>
Co-authored-by: Mikael Ågren <mikael@tillitis.se>
Co-authored-by: Daniel Jobson <jobson@tillitis.se>
22 lines
697 B
C
22 lines
697 B
C
// Copyright (C) 2024 - Tillitis AB
|
|
// SPDX-License-Identifier: GPL-2.0-only
|
|
|
|
#ifndef STORAGE_H
|
|
#define STORAGE_H
|
|
|
|
#include "partition_table.h"
|
|
|
|
#include <stdbool.h>
|
|
#include <stddef.h>
|
|
#include <stdint.h>
|
|
|
|
int storage_deallocate_area(struct partition_table_storage *part_table_storage);
|
|
int storage_allocate_area(struct partition_table_storage *part_table_storage);
|
|
int storage_erase_sector(struct partition_table *part_table, uint32_t offset,
|
|
size_t size);
|
|
int storage_write_data(struct partition_table *part_table, uint32_t offset,
|
|
uint8_t *data, size_t size);
|
|
int storage_read_data(struct partition_table *part_table, uint32_t offset,
|
|
uint8_t *data, size_t size);
|
|
|
|
#endif
|