static nxt_error_t nxt_flash_alter_lock(nxt_t *nxt, int region_num, enum nxt_flash_commands cmd) { nxt_word_t w = 0x5A000000 | ((64 * region_num) << 8); w += cmd; NXT_ERR(nxt_flash_wait_ready(nxt)); /* Flash mode register: FCMN 0x5, FWS 0x1 * Flash command register: KEY 0x5A, FCMD = clear-lock-bit (0x4) * Flash mode register: FCMN 0x34, FWS 0x1 */ NXT_ERR(nxt_write_word(nxt, 0xFFFFFF60, 0x00050100)); NXT_ERR(nxt_write_word(nxt, 0xFFFFFF64, w)); NXT_ERR(nxt_write_word(nxt, 0xFFFFFF60, 0x00340100)); return NXT_OK; }
static nxt_error_t nxt_flash_finish(nxt_t *nxt) { return nxt_flash_wait_ready(nxt); }