Lines Matching +full:total +full:- +full:timeout
1 // SPDX-License-Identifier: GPL-2.0+
52 writel(nvmop, &nvm_regs_p->ctrl.raw); in flash_initiate_operation()
55 writel(NVM_WREN, &nvm_regs_p->ctrl.set); in flash_initiate_operation()
58 writel(LOCK_KEY, &nvm_regs_p->key.raw); in flash_initiate_operation()
59 writel(UNLOCK_KEY1, &nvm_regs_p->key.raw); in flash_initiate_operation()
60 writel(UNLOCK_KEY2, &nvm_regs_p->key.raw); in flash_initiate_operation()
63 writel(NVM_WR, &nvm_regs_p->ctrl.set); in flash_initiate_operation()
66 static int flash_wait_till_busy(const char *func, ulong timeout) in flash_wait_till_busy() argument
68 int ret = wait_for_bit_le32(&nvm_regs_p->ctrl.raw, in flash_wait_till_busy()
69 NVM_WR, false, timeout, false); in flash_wait_till_busy()
78 tmp = readl(&nvm_regs_p->ctrl.raw); in flash_complete_operation()
80 printf("Error in Block Erase - Lock Bit may be set!\n"); in flash_complete_operation()
86 printf("Error in Block Erase - low-vol detected!\n"); in flash_complete_operation()
92 writel(NVM_WREN, &nvm_regs_p->ctrl.clr); in flash_complete_operation()
99 * ERR_OK - OK
100 * ERR_INVAL - invalid sector arguments
101 * ERR_TIMEOUT - write timeout
102 * ERR_NOT_ERASED - Flash not erased
103 * ERR_UNKNOWN_FLASH_VENDOR - incorrect flash
111 if ((info->flash_id & FLASH_VENDMASK) != FLASH_MAN_MCHP) { in flash_erase()
112 printf("Can't erase unknown flash type %08lx - aborted\n", in flash_erase()
113 info->flash_id); in flash_erase()
118 printf("- no sectors to erase\n"); in flash_erase()
124 if (info->protect[sect]) in flash_erase()
129 printf("- Warning: %d protected sectors will not be erased!\n", in flash_erase()
136 if (info->protect[sect]) in flash_erase()
143 sect_start = CPHYSADDR(info->start[sect]); in flash_erase()
144 writel(sect_start, &nvm_regs_p->addr.raw); in flash_erase()
153 /* re-enable interrupts if necessary */ in flash_erase()
168 sect_end = info->start[sect] + info->size / info->sector_count; in flash_erase()
169 invalidate_dcache_range(info->start[sect], sect_end); in flash_erase()
197 writel(CPHYSADDR(dest), &nvm_regs_p->addr.raw); in write_word()
198 writel(word, &nvm_regs_p->data.raw); in write_word()
206 /* re-enable interrupts if necessary */ in write_word()
218 * ERR_OK - OK
219 * ERR_TIMEOUT - write timeout
220 * ERR_NOT_ERASED - Flash not erased
232 l = addr - dst; in write_buff()
238 for (; (i < 4) && (cnt > 0); ++i, ++src, --cnt, ++cp) in write_buff()
259 cnt -= 4; in write_buff()
271 --cnt; in write_buff()
293 if (info->flash_id == FLASH_UNKNOWN) { in flash_print_info()
298 switch (info->flash_id & FLASH_VENDMASK) { in flash_print_info()
307 switch (info->flash_id & FLASH_TYPEMASK) { in flash_print_info()
317 info->size >> 20, info->sector_count); in flash_print_info()
320 for (i = 0; i < info->sector_count; ++i) { in flash_print_info()
324 printf(" %08lX%s", info->start[i], in flash_print_info()
325 info->protect[i] ? " (RO)" : " "); in flash_print_info()
342 /* calc total flash size */ in flash_init()
356 info->flash_id = FLASH_MAN_MCHP | FLASH_MCHP100T; in pic32_flash_bank_init()
357 info->sector_count = CONFIG_SYS_MAX_FLASH_SECT; in pic32_flash_bank_init()
358 info->size = size; in pic32_flash_bank_init()
361 sect_size = info->size / info->sector_count; in pic32_flash_bank_init()
362 for (sect = 0; sect < info->sector_count; sect++) { in pic32_flash_bank_init()
363 info->start[sect] = base; in pic32_flash_bank_init()
365 info->protect[sect] = 1; in pic32_flash_bank_init()
372 void *blob = (void *)gd->fdt_blob; in pic32_flash_probe()
383 * match with reg-names. in pic32_flash_probe()
387 list = fdt_getprop(blob, node, "reg-names", &len); in pic32_flash_probe()
389 return -ENOENT; in pic32_flash_probe()
394 return -ENOENT; in pic32_flash_probe()
413 writel(NVM_WREN, &nvm_regs_p->ctrl.clr); in pic32_flash_probe()
419 CONFIG_SYS_MONITOR_BASE + monitor_flash_len - 1, in pic32_flash_probe()
427 CONFIG_ENV_ADDR + CONFIG_ENV_SECT_SIZE - 1, in pic32_flash_probe()
434 { .compatible = "microchip,pic32mzda-flash" },