diff options
author | Paul Selkirk <paul@psgd.org> | 2017-02-22 14:11:12 -0500 |
---|---|---|
committer | Paul Selkirk <paul@psgd.org> | 2017-02-22 17:45:31 -0500 |
commit | 189df371631a2b7bef91803d449e47470ad6a7bf (patch) | |
tree | 1986828d38cdd6507c96640f6370b433be720892 /projects/cli-test/mgmt-fpga.c | |
parent | 56fcfdf3bec384a74eb9deb070f342142bbacff3 (diff) |
Refactor flash code.
Diffstat (limited to 'projects/cli-test/mgmt-fpga.c')
-rw-r--r-- | projects/cli-test/mgmt-fpga.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/projects/cli-test/mgmt-fpga.c b/projects/cli-test/mgmt-fpga.c index 31a6e27..b1b0973 100644 --- a/projects/cli-test/mgmt-fpga.c +++ b/projects/cli-test/mgmt-fpga.c @@ -47,7 +47,13 @@ static volatile uint32_t dfu_offset = 0; -static int _flash_write_callback(uint8_t *buf, size_t len) { +static int _flash_write_callback(uint8_t *buf, size_t len) +{ + if ((dfu_offset % FPGACFG_SECTOR_SIZE) == 0) + /* first page in sector, need to erase sector */ + if (fpgacfg_erase_sector(dfu_offset / FPGACFG_SECTOR_SIZE) != 1) + return CLI_ERROR; + int res = fpgacfg_write_data(dfu_offset, buf, BITSTREAM_UPLOAD_CHUNK_SIZE) == 1; dfu_offset += BITSTREAM_UPLOAD_CHUNK_SIZE; return res; @@ -91,7 +97,7 @@ static int cmd_fpga_bitstream_erase(struct cli_def *cli, const char *command, ch * * This command could be made to accept an argument indicating the whole memory should be erased. */ - if (! fpgacfg_erase_sectors(1)) { + if (fpgacfg_erase_sector(0) != 0) { cli_print(cli, "Erasing first sector in FPGA config memory failed"); return CLI_ERROR; } |