the adventure digging through flash code continues ... i just ran across this:
$ grep -rw board_flash_wp_on * board/xes/common/fsl_8xxx_misc.c:int board_flash_wp_on(void) common/board_r.c:__weak int board_flash_wp_on(void) common/board_r.c: if (board_flash_wp_on()) $ i can see the general value in a weak routine checking on flash protection: __weak int board_flash_wp_on(void) { /* * Most flashes can't be detected when write protection is enabled, * so provide a way to let U-Boot gracefully ignore write protected * devices. */ return 0; } ... static int initr_flash(void) { ulong flash_size = 0; bd_t *bd = gd->bd; puts("Flash: "); if (board_flash_wp_on()) printf("Uninitialized - Write Protect On\n"); else flash_size = flash_init(); but it does seem odd that, in the entire u-boot code base, only one board takes advantage of that, board/xes/common/fsl_8xxx_misc.c, and in what appears to be a very restricted way: #include <common.h> #include <asm/mmu.h> #ifdef CONFIG_PCA953X #include <pca953x.h> /* * Determine if a board's flashes are write protected */ int board_flash_wp_on(void) { if (pca953x_get_val(CONFIG_SYS_I2C_PCA953X_ADDR0) & CONFIG_SYS_PCA953X_NVM_WP) return 1; return 0; } #endif is there really a need for a feature for which only a single board overrides that routine? or is there something else here i'm overlooking? rday -- ======================================================================== Robert P. J. Day Ottawa, Ontario, CANADA http://crashcourse.ca Twitter: http://twitter.com/rpjday LinkedIn: http://ca.linkedin.com/in/rpjday ======================================================================== _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot