TT Zephyr Platforms 18.11.99
Tenstorrent Firmware
Loading...
Searching...
No Matches
tt_boot_fs.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2024 Tenstorrent AI ULC
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
7#ifndef _TT_BOOT_FS_H_
8#define _TT_BOOT_FS_H_
9
10#include <stdbool.h>
11#include <stddef.h>
12#include <stdint.h>
13#include <zephyr/device.h>
15#include <zephyr/devicetree.h>
16
17#ifdef __cplusplus
18extern "C" {
19#endif
20
21#define TT_BOOT_FS_FD_HEAD_ADDR (0x0)
22/* These defines must change when BOOT_START or DESC_REGION_SIZE change in python toolchain */
23#define TT_BOOT_FS_SECURITY_BINARY_FD_ADDR (0x3FE0)
24#define TT_BOOT_FS_FAILOVER_HEAD_ADDR (0x4000)
25#define TT_BOOT_FS_IMAGE_TAG_SIZE 8
26
27struct device;
28
35
36typedef union {
40
41typedef struct {
43 uint32_t sb_phase: 8; /* 0 - Phase0A, 1 - Phase0B */
45
50
51/* File descriptor */
61
62typedef int (*tt_boot_fs_read)(uint32_t addr, uint32_t size, uint8_t *dst);
63typedef int (*tt_boot_fs_write)(uint32_t addr, uint32_t size, const uint8_t *src);
64typedef int (*tt_boot_fs_erase)(uint32_t addr, uint32_t size);
65
71
72enum {
75};
76
81
83
85
87 tt_boot_fs_erase hal_erase);
88
90 const uint8_t *image_data_src, bool isFailoverEntry,
91 bool isSecurityBinaryEntry);
92
93uint32_t tt_boot_fs_cksum(uint32_t cksum, const uint8_t *data, size_t size);
94
96 size_t buf_size, size_t *file_size);
97
116int tt_boot_fs_ls(const struct device *dev, tt_boot_fs_fd *fds, size_t nfds, size_t offset);
117
139int tt_boot_fs_find_fd_by_tag(const struct device *flash_dev, const uint8_t *tag,
140 tt_boot_fs_fd *fd);
141
142#ifdef __cplusplus
143}
144#endif
145
146#endif
static uint8_t buf[1]
Definition log_backend_ringbuf.c:24
__UINT32_TYPE__ uint32_t
__UINT8_TYPE__ uint8_t
Definition tt_boot_fs.h:29
uint32_t fd_flags_rsvd
Definition tt_boot_fs.h:33
uint32_t executable
Definition tt_boot_fs.h:32
uint32_t image_size
Definition tt_boot_fs.h:30
uint32_t invalid
Definition tt_boot_fs.h:31
Definition tt_boot_fs.h:41
uint32_t signature_size
Definition tt_boot_fs.h:42
uint32_t sb_phase
Definition tt_boot_fs.h:43
Definition tt_boot_fs.h:52
uint32_t data_crc
Definition tt_boot_fs.h:56
uint8_t image_tag[8]
Definition tt_boot_fs.h:58
fd_flags_u flags
Definition tt_boot_fs.h:55
uint32_t copy_dest
Definition tt_boot_fs.h:54
security_fd_flags_u security_flags
Definition tt_boot_fs.h:57
uint32_t spi_addr
Definition tt_boot_fs.h:53
uint32_t fd_crc
Definition tt_boot_fs.h:59
Definition tt_boot_fs.h:66
tt_boot_fs_write hal_spi_write_f
Definition tt_boot_fs.h:68
tt_boot_fs_erase hal_spi_erase_f
Definition tt_boot_fs.h:69
tt_boot_fs_read hal_spi_read_f
Definition tt_boot_fs.h:67
int(* tt_boot_fs_erase)(uint32_t addr, uint32_t size)
Definition tt_boot_fs.h:64
uint32_t tt_boot_fs_cksum(uint32_t cksum, const uint8_t *data, size_t size)
Definition tt_boot_fs.c:88
int(* tt_boot_fs_write)(uint32_t addr, uint32_t size, const uint8_t *src)
Definition tt_boot_fs.h:63
int tt_boot_fs_add_file(const tt_boot_fs *tt_boot_fs, tt_boot_fs_fd fd_data, const uint8_t *image_data_src, bool isFailoverEntry, bool isSecurityBinaryEntry)
Definition tt_boot_fs.c:47
int tt_boot_fs_get_file(const tt_boot_fs *tt_boot_fs, const uint8_t *tag, uint8_t *buf, size_t buf_size, size_t *file_size)
Definition tt_boot_fs.c:157
@ TT_BOOT_FS_OK
Definition tt_boot_fs.h:73
@ TT_BOOT_FS_ERR
Definition tt_boot_fs.h:74
int tt_boot_fs_find_fd_by_tag(const struct device *flash_dev, const uint8_t *tag, tt_boot_fs_fd *fd)
Find a boot filesystem file descriptor by name on a given flash device.
Definition tt_boot_fs.c:235
tt_boot_fs boot_fs_data
Definition tt_boot_fs.c:19
int tt_boot_fs_mount(tt_boot_fs *tt_boot_fs, tt_boot_fs_read hal_read, tt_boot_fs_write hal_write, tt_boot_fs_erase hal_erase)
Definition tt_boot_fs.c:36
int tt_boot_fs_ls(const struct device *dev, tt_boot_fs_fd *fds, size_t nfds, size_t offset)
List file descriptors in boot filesystem.
Definition tt_boot_fs.c:184
tt_checksum_res_t
Definition tt_boot_fs.h:77
@ TT_BOOT_FS_CHK_OK
Definition tt_boot_fs.h:78
@ TT_BOOT_FS_CHK_FAIL
Definition tt_boot_fs.h:79
int(* tt_boot_fs_read)(uint32_t addr, uint32_t size, uint8_t *dst)
Definition tt_boot_fs.h:62
uint32_t tt_boot_fs_next(uint32_t prev)
Definition tt_boot_fs.c:22
#define TT_BOOT_FS_IMAGE_TAG_SIZE
Definition tt_boot_fs.h:25
Definition tt_boot_fs.h:36
uint32_t val
Definition tt_boot_fs.h:37
fd_flags f
Definition tt_boot_fs.h:38
Definition tt_boot_fs.h:46
security_fd_flags f
Definition tt_boot_fs.h:48
uint32_t val
Definition tt_boot_fs.h:47