38#include "ice_fpga_data.h"
43#define ICE_FLASH_PAGE_SIZE 256
44#define ICE_FLASH_SECTOR_SIZE 4096
45#define ICE_FLASH_BLOCK_SIZE 65536
int ice_flash_init(const ice_spibus spibus, int baudrate)
Initialise the SPI1 peripheral, dedicated to flashing the FPGA.
int ice_flash_erase_block(const ice_spibus spibus, uint32_t addr)
Send a command to erase a whole block.
int ice_flash_sleep(const ice_spibus spibus)
Send a command to put the chip to sleep.
int ice_flash_deinit(const ice_spibus spibus)
Free SPI bus.
int ice_flash_program_page(const ice_spibus spibus, uint32_t addr, uint8_t const page[ICE_FLASH_PAGE_SIZE])
Program a page of the flash chip at the given address.
#define ICE_FLASH_PAGE_SIZE
The size of the flash.
Definition ice_flash.h:43
int ice_flash_erase_chip(const ice_spibus spibus)
Send a command to erase the whole chip.
int ice_flash_wakeup(const ice_spibus spibus)
Send a command to wakeup the chip.
int ice_flash_read(const ice_spibus spibus, uint32_t addr, uint8_t *buf, size_t sz)
Communicate to the chip over SPI and read multiple bytes at chosen address onto onto a buffer.
int ice_flash_erase_sector(const ice_spibus spibus, uint32_t addr)
Erase a sector of the flash chip at the given address.
Definition ice_fpga_data.h:30