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>
29 lines
597 B
C
29 lines
597 B
C
// Copyright (C) 2025 - Tillitis AB
|
|
// SPDX-License-Identifier: GPL-2.0-only
|
|
|
|
#ifndef TKEY_RESETINFO_H
|
|
#define TKEY_RESETINFO_H
|
|
|
|
#include <stdint.h>
|
|
|
|
#define TK1_MMIO_RESETINFO_BASE 0xd0000f00
|
|
#define TK1_MMIO_RESETINFO_SIZE 0x100
|
|
|
|
enum reset_start {
|
|
START_DEFAULT = 0, // Probably cold boot
|
|
START_FLASH0 = 1,
|
|
START_FLASH1 = 2,
|
|
START_FLASH0_VER = 3,
|
|
START_FLASH1_VER = 4,
|
|
START_CLIENT = 5,
|
|
START_CLIENT_VER = 6,
|
|
};
|
|
|
|
struct reset {
|
|
uint32_t type; // Reset type
|
|
uint8_t app_digest[32]; // Program digest
|
|
uint8_t next_app_data[220]; // Data to leave around for next app
|
|
};
|
|
|
|
#endif
|