mirror of
https://github.com/tillitis/tillitis-key1.git
synced 2025-04-26 09:59:18 -04: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>
25 lines
827 B
C
25 lines
827 B
C
// Copyright (C) 2024 - Tillitis AB
|
|
// SPDX-License-Identifier: GPL-2.0-only
|
|
|
|
#ifndef PRELOAD_APP_H
|
|
#define PRELOAD_APP_H
|
|
|
|
#include "partition_table.h"
|
|
#include <stdbool.h>
|
|
#include <stddef.h>
|
|
#include <stdint.h>
|
|
|
|
int preload_load(struct partition_table *part_table, uint8_t from_slot);
|
|
int preload_store(struct partition_table *part_table, uint32_t offset,
|
|
uint8_t *data, size_t size, uint8_t to_slot);
|
|
int preload_store_finalize(struct partition_table_storage *part_table_storage,
|
|
size_t app_size, uint8_t app_digest[32],
|
|
uint8_t app_signature[64], uint8_t to_slot);
|
|
int preload_delete(struct partition_table_storage *part_table_storage,
|
|
uint8_t slot);
|
|
int preload_get_digsig(struct partition_table *part_table,
|
|
uint8_t app_digest[32], uint8_t app_signature[64],
|
|
uint8_t slot);
|
|
|
|
#endif
|