summary |
shortlog |
log |
commit | commitdiff |
review |
tree
raw |
patch |
inline | side by side (from parent 1:
c5eb990)
This patch removes use of register write protection in protect() and
protect_check() now that Change 4765 has merged.
Change-Id: I42c429dc283c5b53989a6b98ebfc58214274ff16
Signed-off-by: Steven Stallion <stallion@squareup.com>
Reviewed-on: http://openocd.zylin.com/4791
Tested-by: jenkins
Reviewed-by: Tomas Vanek <vanekt@fbl.cz>
if (!(control & CONTROL_WP))
return ERROR_OK;
if (!(control & CONTROL_WP))
return ERROR_OK;
- esirisc_flash_unlock(bank);
+ (void)esirisc_flash_unlock(bank);
if (control & CONTROL_WP)
return ERROR_OK;
if (control & CONTROL_WP)
return ERROR_OK;
- esirisc_flash_unlock(bank);
+ (void)esirisc_flash_unlock(bank);
if (target->state != TARGET_HALTED)
return ERROR_TARGET_NOT_HALTED;
if (target->state != TARGET_HALTED)
return ERROR_TARGET_NOT_HALTED;
- esirisc_flash_disable_protect(bank);
+ (void)esirisc_flash_disable_protect(bank);
for (int page = first; page < last; ++page) {
uint32_t address = page * PAGE_SIZE;
for (int page = first; page < last; ++page) {
uint32_t address = page * PAGE_SIZE;
- esirisc_flash_enable_protect(bank);
+ (void)esirisc_flash_enable_protect(bank);
if (target->state != TARGET_HALTED)
return ERROR_TARGET_NOT_HALTED;
if (target->state != TARGET_HALTED)
return ERROR_TARGET_NOT_HALTED;
- esirisc_flash_disable_protect(bank);
+ (void)esirisc_flash_disable_protect(bank);
target_write_u32(target, esirisc_info->cfg + ADDRESS, 0);
target_write_u32(target, esirisc_info->cfg + ADDRESS, 0);
if (retval != ERROR_OK)
LOG_ERROR("%s: failed to mass erase", bank->name);
if (retval != ERROR_OK)
LOG_ERROR("%s: failed to mass erase", bank->name);
- esirisc_flash_enable_protect(bank);
+ (void)esirisc_flash_enable_protect(bank);
if (target->state != TARGET_HALTED)
return ERROR_TARGET_NOT_HALTED;
if (target->state != TARGET_HALTED)
return ERROR_TARGET_NOT_HALTED;
- esirisc_flash_disable_protect(bank);
+ (void)esirisc_flash_disable_protect(bank);
retval = esirisc_flash_control(bank, CONTROL_ERC);
if (retval != ERROR_OK)
LOG_ERROR("%s: failed to erase reference cell", bank->name);
retval = esirisc_flash_control(bank, CONTROL_ERC);
if (retval != ERROR_OK)
LOG_ERROR("%s: failed to erase reference cell", bank->name);
- esirisc_flash_enable_protect(bank);
+ (void)esirisc_flash_enable_protect(bank);
-static int esirisc_flash_protect(struct flash_bank *bank, int set, int first, int last)
-{
- struct target *target = bank->target;
-
- if (target->state != TARGET_HALTED)
- return ERROR_TARGET_NOT_HALTED;
-
- if (set)
- esirisc_flash_enable_protect(bank);
- else
- esirisc_flash_disable_protect(bank);
-
- return ERROR_OK;
-}
-
static int esirisc_flash_fill_pb(struct flash_bank *bank,
const uint8_t *buffer, uint32_t count)
{
static int esirisc_flash_fill_pb(struct flash_bank *bank,
const uint8_t *buffer, uint32_t count)
{
if (target->state != TARGET_HALTED)
return ERROR_TARGET_NOT_HALTED;
if (target->state != TARGET_HALTED)
return ERROR_TARGET_NOT_HALTED;
- esirisc_flash_disable_protect(bank);
+ (void)esirisc_flash_disable_protect(bank);
/*
* The address register is auto-incremented based on the contents of
/*
* The address register is auto-incremented based on the contents of
- esirisc_flash_enable_protect(bank);
+ (void)esirisc_flash_enable_protect(bank);
uint32_t value;
int retval;
uint32_t value;
int retval;
- esirisc_flash_disable_protect(bank);
+ (void)esirisc_flash_disable_protect(bank);
/* initialize timing registers */
value = TIMING0_F(esirisc_flash_num_cycles(bank, TNVH))
/* initialize timing registers */
value = TIMING0_F(esirisc_flash_num_cycles(bank, TNVH))
if (retval != ERROR_OK)
LOG_ERROR("%s: failed to recall trim code", bank->name);
if (retval != ERROR_OK)
LOG_ERROR("%s: failed to recall trim code", bank->name);
- esirisc_flash_enable_protect(bank);
+ (void)esirisc_flash_enable_protect(bank);
bank->num_sectors = bank->size / PAGE_SIZE;
bank->sectors = alloc_block_array(0, PAGE_SIZE, bank->num_sectors);
bank->num_sectors = bank->size / PAGE_SIZE;
bank->sectors = alloc_block_array(0, PAGE_SIZE, bank->num_sectors);
- /*
- * Register write protection is enforced using a single protection
- * block for the entire bank. This is as good as it gets.
- */
- bank->num_prot_blocks = 1;
- bank->prot_blocks = alloc_block_array(0, bank->size, bank->num_prot_blocks);
-
retval = esirisc_flash_init(bank);
if (retval != ERROR_OK) {
LOG_ERROR("%s: failed to initialize bank", bank->name);
retval = esirisc_flash_init(bank);
if (retval != ERROR_OK) {
LOG_ERROR("%s: failed to initialize bank", bank->name);
return esirisc_flash_probe(bank);
}
return esirisc_flash_probe(bank);
}
-static int esirisc_flash_protect_check(struct flash_bank *bank)
-{
- struct esirisc_flash_bank *esirisc_info = bank->driver_priv;
- struct target *target = bank->target;
- uint32_t control;
-
- if (target->state != TARGET_HALTED)
- return ERROR_TARGET_NOT_HALTED;
-
- target_read_u32(target, esirisc_info->cfg + CONTROL, &control);
-
- /* single protection block (also see: esirisc_flash_probe()) */
- bank->prot_blocks[0].is_protected = !!(control & CONTROL_WP);
-
- return ERROR_OK;
-}
-
static int esirisc_flash_info(struct flash_bank *bank, char *buf, int buf_size)
{
struct esirisc_flash_bank *esirisc_info = bank->driver_priv;
static int esirisc_flash_info(struct flash_bank *bank, char *buf, int buf_size)
{
struct esirisc_flash_bank *esirisc_info = bank->driver_priv;
"cfg_address clock_hz wait_states",
.flash_bank_command = esirisc_flash_bank_command,
.erase = esirisc_flash_erase,
"cfg_address clock_hz wait_states",
.flash_bank_command = esirisc_flash_bank_command,
.erase = esirisc_flash_erase,
- .protect = esirisc_flash_protect,
.write = esirisc_flash_write,
.read = default_flash_read,
.probe = esirisc_flash_probe,
.auto_probe = esirisc_flash_auto_probe,
.erase_check = default_flash_blank_check,
.write = esirisc_flash_write,
.read = default_flash_read,
.probe = esirisc_flash_probe,
.auto_probe = esirisc_flash_auto_probe,
.erase_check = default_flash_blank_check,
- .protect_check = esirisc_flash_protect_check,
.info = esirisc_flash_info,
.free_driver_priv = default_flash_free_driver_priv,
};
.info = esirisc_flash_info,
.free_driver_priv = default_flash_free_driver_priv,
};
Linking to existing account procedure
If you already have an account and want to add another login method
you
MUST first sign in with your existing account and
then change URL to read
https://review.openocd.org/login/?link
to get to this page again but this time it'll work for linking. Thank you.
SSH host keys fingerprints
1024 SHA256:YKx8b7u5ZWdcbp7/4AeXNaqElP49m6QrwfXaqQGJAOk gerrit-code-review@openocd.zylin.com (DSA)
384 SHA256:jHIbSQa4REvwCFG4cq5LBlBLxmxSqelQPem/EXIrxjk gerrit-code-review@openocd.org (ECDSA)
521 SHA256:UAOPYkU9Fjtcao0Ul/Rrlnj/OsQvt+pgdYSZ4jOYdgs gerrit-code-review@openocd.org (ECDSA)
256 SHA256:A13M5QlnozFOvTllybRZH6vm7iSt0XLxbA48yfc2yfY gerrit-code-review@openocd.org (ECDSA)
256 SHA256:spYMBqEYoAOtK7yZBrcwE8ZpYt6b68Cfh9yEVetvbXg gerrit-code-review@openocd.org (ED25519)
+--[ED25519 256]--+
|=.. |
|+o.. . |
|*.o . . |
|+B . . . |
|Bo. = o S |
|Oo.+ + = |
|oB=.* = . o |
| =+=.+ + E |
|. .=o . o |
+----[SHA256]-----+
2048 SHA256:0Onrb7/PHjpo6iVZ7xQX2riKN83FJ3KGU0TvI0TaFG4 gerrit-code-review@openocd.zylin.com (RSA)