Merge pull request #2577 from openmv/bootloader_recovery
Some checks failed
🔎 Check Code Formatting / formatting-check (push) Has been cancelled
🔥 Firmware Build / build-firmware (ARDUINO_GIGA) (push) Has been cancelled
🔥 Firmware Build / build-firmware (ARDUINO_NANO_33_BLE_SENSE) (push) Has been cancelled
🔥 Firmware Build / build-firmware (ARDUINO_NANO_RP2040_CONNECT) (push) Has been cancelled
🔥 Firmware Build / build-firmware (ARDUINO_NICLA_VISION) (push) Has been cancelled
🔥 Firmware Build / build-firmware (ARDUINO_PORTENTA_H7) (push) Has been cancelled
🔥 Firmware Build / build-firmware (OPENMV2) (push) Has been cancelled
🔥 Firmware Build / build-firmware (OPENMV3) (push) Has been cancelled
🔥 Firmware Build / build-firmware (OPENMV4) (push) Has been cancelled
🔥 Firmware Build / build-firmware (OPENMV4P) (push) Has been cancelled
🔥 Firmware Build / build-firmware (OPENMVPT) (push) Has been cancelled
🔥 Firmware Build / build-firmware (OPENMV_RT1060) (push) Has been cancelled
🔥 Firmware Build / code-size-report (push) Has been cancelled
🔥 Firmware Build / stable-release (push) Has been cancelled
🔥 Firmware Build / development-release (push) Has been cancelled

bootloader: Add special flash recovery partition.
This commit is contained in:
Ibrahim Abdelkader 2025-01-06 11:31:59 +02:00 committed by GitHub
commit 18a28ddc9f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 9 additions and 4 deletions

View File

@ -35,10 +35,11 @@
int axi_flash_read(uint32_t addr, uint8_t *buf, size_t size); int axi_flash_read(uint32_t addr, uint8_t *buf, size_t size);
int axi_flash_write(uint32_t addr, const uint8_t *buf, size_t size); int axi_flash_write(uint32_t addr, const uint8_t *buf, size_t size);
int spi_flash_deinit(); int spi_flash_memory_map(bool dtr);
int spi_flash_read(uint32_t addr, uint8_t *buf, uint32_t size); int spi_flash_read(uint32_t addr, uint8_t *buf, uint32_t size);
int spi_flash_write(uint32_t addr, const uint8_t *buf, uint32_t size); int spi_flash_write(uint32_t addr, const uint8_t *buf, uint32_t size);
int spi_flash_memory_map(bool dtr); int spi_flash_recovery(uint32_t addr, const uint8_t *buf, uint32_t size);
int spi_flash_deinit();
static inline int flash_read(uint32_t ptype, uint32_t addr, uint8_t *buf, uint32_t size) { static inline int flash_read(uint32_t ptype, uint32_t addr, uint8_t *buf, uint32_t size) {
#if OMV_BOOT_AXI_FLASH_ENABLE #if OMV_BOOT_AXI_FLASH_ENABLE
@ -65,6 +66,11 @@ static inline int flash_write(uint32_t ptype, uint32_t addr, const uint8_t *buf,
return spi_flash_write(addr, buf, size); return spi_flash_write(addr, buf, size);
} }
#endif #endif
#if OMV_BOOT_REC_FLASH_ENABLE
if (ptype == PTYPE_REC_FLASH) {
return spi_flash_recovery(addr, buf, size);
}
#endif
return -1; return -1;
} }
#endif //__BOOT_FLASH_H__ #endif //__BOOT_FLASH_H__

View File

@ -74,6 +74,7 @@ typedef enum {
PTYPE_AXI_FLASH, PTYPE_AXI_FLASH,
PTYPE_SPI_FLASH, PTYPE_SPI_FLASH,
PTYPE_XIP_FLASH, PTYPE_XIP_FLASH,
PTYPE_REC_FLASH,
} partition_type_t; } partition_type_t;
// Common MPU memory attributes. // Common MPU memory attributes.
@ -95,8 +96,6 @@ void port_pin_mode(uint32_t pin, uint32_t mode);
uint32_t port_pin_read(uint32_t pin); uint32_t port_pin_read(uint32_t pin);
void port_pin_write(uint32_t pin, uint32_t state); void port_pin_write(uint32_t pin, uint32_t state);
void port_led_blink(uint32_t interval_ms); void port_led_blink(uint32_t interval_ms);
int port_flash_read(uint32_t ptype, uint32_t addr, uint8_t *buf, uint32_t size);
int port_flash_write(uint32_t ptype, uint32_t addr, const uint8_t *buf, uint32_t size);
void port_mpu_init(void); void port_mpu_init(void);
void port_mpu_deinit(void); void port_mpu_deinit(void);
void port_mpu_load_defaults(); void port_mpu_load_defaults();