| // Copyright lowRISC contributors. |
| // Licensed under the Apache License, Version 2.0, see LICENSE for details. |
| // SPDX-License-Identifier: Apache-2.0 |
| |
| #ifndef _F_BOOTSTRAP_MSGS_H__ |
| #define _F_BOOTSTRAP_MSGS_H__ |
| #include <stdint.h> |
| |
| #define RAW_BUFFER_SIZE 1024 |
| #define FRAME_EOF_MARKER 0x80000000 |
| #define FRAME_NO(k) ((k)&0xffffff) |
| |
| typedef struct { |
| /* SHA2 of the entire frame_t message starting at the |frame_num| offset. */ |
| uint32_t hash[8]; |
| |
| /* Frame number starting at 0. The last frame should be ord with |
| * FRAME_EOF_MARKER. */ |
| uint32_t frame_num; |
| |
| /* 0-based flash offset where the frame should be written to. */ |
| uint32_t flash_offset; |
| } frame_hdr_t; |
| |
| typedef struct { |
| /* Frame header. See frame_hdr_t for details. */ |
| frame_hdr_t hdr; |
| |
| /* Frame data uint32_t aligned. */ |
| uint32_t data[(RAW_BUFFER_SIZE - sizeof(frame_hdr_t)) / sizeof(uint32_t)]; |
| } frame_t; |
| |
| /* Bootstrap error codes */ |
| |
| /* Errors requiring reset */ |
| #define E_BS_ERASE 10 |
| #define E_BS_NOTEMPTY 11 |
| #define E_BS_WRITE 12 |
| |
| #endif // _F_BOOTSTRAP_MSGS_H__ |