mirror of
https://github.com/tillitis/tillitis-key1.git
synced 2025-11-22 16:50:50 -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>
28 lines
597 B
C
28 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
|