Add shared emulator services, waveform generation and STM32 USB boot ports
This commit is contained in:
26
c/set-protocol/include/set_boot.h
Normal file
26
c/set-protocol/include/set_boot.h
Normal file
@@ -0,0 +1,26 @@
|
||||
#ifndef SET_BOOT_H
|
||||
#define SET_BOOT_H
|
||||
#include "set_firmware.h"
|
||||
|
||||
/* Transport-independent, single-slot updater. invalidate MUST become durable
|
||||
* before erase; commit is called only after read-back verification. */
|
||||
typedef struct {
|
||||
bool (*invalidate)(void *user);
|
||||
bool (*erase)(void *user, uint32_t size);
|
||||
bool (*write)(void *user, uint32_t offset, const uint8_t *data, uint16_t size);
|
||||
bool (*verify)(void *user, uint32_t size, uint32_t crc);
|
||||
bool (*commit)(void *user, uint32_t size, uint32_t crc);
|
||||
void (*activate)(void *user);
|
||||
} setp_boot_ops;
|
||||
typedef struct {
|
||||
setp_boot_ops ops;
|
||||
void *user;
|
||||
uint32_t base, capacity, crc;
|
||||
uint16_t block_size;
|
||||
setp_fw_status_t status;
|
||||
} setp_boot;
|
||||
void setp_boot_init(setp_boot *b, const setp_boot_ops *ops, void *user,
|
||||
uint32_t base, uint32_t capacity);
|
||||
/* Returns SET status; FW_STATUS body is encoded by the caller. */
|
||||
uint16_t setp_boot_command(setp_boot *b, uint16_t type, const uint8_t *p, uint16_t n);
|
||||
#endif
|
||||
Reference in New Issue
Block a user