t = get_current_target(cmd->ctx);
if (!t) {
- command_print(cmd, "No current target?");
+ command_print_sameline(cmd, "No current target?\n");
return NULL;
}
if (!p) {
/* this should not happen */
/* the command is not registered until the chip is created? */
- command_print(cmd, "No SAM4 chips exist?");
+ command_print_sameline(cmd, "No SAM4 chips exist?\n");
return NULL;
}
return p;
p = p->next;
}
- command_print(cmd, "Cannot find SAM4 chip?");
+ command_print_sameline(cmd, "Cannot find SAM4 chip?\n");
return NULL;
}
}
},
- /* atsamg55g19 */
+ /* atsamg55g19 Rev.A */
{
.chipid_cidr = 0x24470ae0,
.name = "atsamg55g19",
}
},
- /* atsamg55j19 */
+ /* atsamg55g19 Rev.B */
+ {
+ .chipid_cidr = 0x24470ae1,
+ .name = "atsamg55g19b",
+ .total_flash_size = 512 * 1024,
+ .total_sram_size = 160 * 1024,
+ .n_gpnvms = 2,
+ .n_banks = 1,
+
+ {
+/* .bank[0] = */
+ {
+ .probed = false,
+ .pChip = NULL,
+ .pBank = NULL,
+ .bank_number = 0,
+ .base_address = FLASH_BANK_BASE_S,
+ .controller_address = 0x400e0a00,
+ .flash_wait_states = 5,
+ .present = true,
+ .size_bytes = 512 * 1024,
+ .nsectors = 64,
+ .sector_size = 8192,
+ .page_size = 512,
+ },
+/* .bank[1] = */
+ {
+ .present = false,
+ .probed = false,
+ .bank_number = 1,
+ },
+ }
+ },
+
+ /* atsamg55j19 Rev.A */
{
.chipid_cidr = 0x24570ae0,
.name = "atsamg55j19",
}
},
+ /* atsamg55j19 Rev.B */
+ {
+ .chipid_cidr = 0x24570ae1,
+ .name = "atsamg55j19b",
+ .total_flash_size = 512 * 1024,
+ .total_sram_size = 160 * 1024,
+ .n_gpnvms = 2,
+ .n_banks = 1,
+
+ {
+/* .bank[0] = */
+ {
+ .probed = false,
+ .pChip = NULL,
+ .pBank = NULL,
+ .bank_number = 0,
+ .base_address = FLASH_BANK_BASE_S,
+ .controller_address = 0x400e0a00,
+ .flash_wait_states = 5,
+ .present = true,
+ .size_bytes = 512 * 1024,
+ .nsectors = 64,
+ .sector_size = 8192,
+ .page_size = 512,
+ },
+/* .bank[1] = */
+ {
+ .present = false,
+ .probed = false,
+ .bank_number = 1,
+ },
+ }
+ },
+
/* terminate */
{
.chipid_cidr = 0,
/**
* Erases the entire flash.
* @param pPrivate - the info about the bank.
+ * @param firstPage
+ * @param numPages
+ * @param status
*/
static int FLASHD_ErasePages(struct sam4_bank_private *pPrivate,
int firstPage,
}
/* show the basics */
- LOG_USER_N("\t%*s: %*" PRId32 " [0x%0*" PRIx32 "] ",
+ LOG_USER_N("\t%*s: %*" PRIu32 " [0x%0*" PRIx32 "] ",
REG_NAME_WIDTH, regname,
dwidth, v,
hwidth, v);
sam4_explain_chipid_cidr(pPrivate->pChip);
return ERROR_FAIL;
} else {
- LOG_DEBUG("SAM4 Found chip %s, CIDR 0x%08x", pDetails->name, pDetails->chipid_cidr);
+ LOG_DEBUG("SAM4 Found chip %s, CIDR 0x%08" PRIx32, pDetails->name, pDetails->chipid_cidr);
}
/* DANGER: THERE ARE DRAGONS HERE */
return ERROR_OK;
}
-static int sam4_info(struct flash_bank *bank, char *buf, int buf_size)
+static int sam4_info(struct flash_bank *bank, struct command_invocation *cmd)
{
struct sam4_bank_private *pPrivate;
int k = bank->size / 1024;
pPrivate = get_sam4_bank_private(bank);
- if (pPrivate == NULL) {
- buf[0] = '\0';
+ if (pPrivate == NULL)
return ERROR_FAIL;
- }
- snprintf(buf, buf_size,
- "%s bank %d: %d kB at " TARGET_ADDR_FMT,
+ command_print_sameline(cmd, "%s bank %d: %d kB at " TARGET_ADDR_FMT,
pPrivate->pChip->details.name,
pPrivate->bank_number,
k,