diff options
Diffstat (limited to 'projects/hsm/mgmt-bootloader.c')
-rw-r--r-- | projects/hsm/mgmt-bootloader.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/projects/hsm/mgmt-bootloader.c b/projects/hsm/mgmt-bootloader.c index a062fd9..d2d7ffe 100644 --- a/projects/hsm/mgmt-bootloader.c +++ b/projects/hsm/mgmt-bootloader.c @@ -37,6 +37,8 @@ #include "stm-init.h" #include "stm-uart.h" #include "stm-flash.h" +#include "stm-fpgacfg.h" + #include "mgmt-cli.h" #include "mgmt-misc.h" #include "mgmt-bootloader.h" @@ -64,6 +66,18 @@ static int cmd_bootloader_upload(struct cli_def *cli, const char *command, char return CLI_ERROR; } + /* JP7 and JP8 must be installed in order to reprogram the FPGA. + * We extend this to an enabling mechanism for reflashing the firmware. + * Unfortunately, we can't read JP7 and JP8 directly, as that just gives + * us the last things written to them, so we see if we can read the + * FPGA configuration memory. + */ + fpgacfg_access_control(ALLOW_ARM); + if (fpgacfg_check_id() != 1) { + cli_print(cli, "ERROR: Check that jumpers JP7 and JP8 are installed."); + return CLI_ERROR; + } + uint8_t buf[DFU_UPLOAD_CHUNK_SIZE]; dfu_offset = DFU_BOOTLOADER_ADDR; |