diff options
-rw-r--r-- | arch/mips/mach-octeon/cvmx-helper-board.c | 3 | ||||
-rw-r--r-- | arch/mips/mach-octeon/cvmx-helper.c | 2 | ||||
-rw-r--r-- | board/phytec/phycore_am62ax/phycore_am62ax.env | 3 | ||||
-rw-r--r-- | boot/Kconfig | 4 | ||||
-rw-r--r-- | drivers/mtd/spi/spi-nor-core.c | 29 | ||||
-rw-r--r-- | include/env/phytec/k3_net.env | 5 |
6 files changed, 34 insertions, 12 deletions
diff --git a/arch/mips/mach-octeon/cvmx-helper-board.c b/arch/mips/mach-octeon/cvmx-helper-board.c index 6dcc4e557e1..8d9388983b7 100644 --- a/arch/mips/mach-octeon/cvmx-helper-board.c +++ b/arch/mips/mach-octeon/cvmx-helper-board.c @@ -386,8 +386,7 @@ cvmx_helper_link_info_t __cvmx_helper_board_link_get_from_dt(int ipd_port) /* If the link is down or the link is up but we still register * the module as being absent, re-check mod_abs. */ - if (!result.s.link_up || - (result.s.link_up && sfp_info->last_mod_abs)) + if (!result.s.link_up || sfp_info->last_mod_abs) __cvmx_helper_update_sfp(ipd_port, sfp_info, result); sfp_info = sfp_info->next_iface_sfp; } diff --git a/arch/mips/mach-octeon/cvmx-helper.c b/arch/mips/mach-octeon/cvmx-helper.c index ccec57edf84..7dcaa1ac8d9 100644 --- a/arch/mips/mach-octeon/cvmx-helper.c +++ b/arch/mips/mach-octeon/cvmx-helper.c @@ -1729,7 +1729,7 @@ cvmx_helper_link_info_t cvmx_helper_link_get(int xipd_port) sfp_info = cvmx_helper_cfg_get_sfp_info(xiface, index); while (sfp_info) { - if ((!result.s.link_up || (result.s.link_up && sfp_info->last_mod_abs))) + if (!result.s.link_up || sfp_info->last_mod_abs) cvmx_sfp_check_mod_abs(sfp_info, sfp_info->mod_abs_data); sfp_info = sfp_info->next_iface_sfp; } diff --git a/board/phytec/phycore_am62ax/phycore_am62ax.env b/board/phytec/phycore_am62ax/phycore_am62ax.env index a0eacd1dfc3..40787b0cbcb 100644 --- a/board/phytec/phycore_am62ax/phycore_am62ax.env +++ b/board/phytec/phycore_am62ax/phycore_am62ax.env @@ -10,6 +10,7 @@ fdt_addr_r=0x88000000 kernel_addr_r=0x82000000 ramdisk_addr_r=0x88080000 fdtoverlay_addr_r=0x89000000 +fit_addr_r=0x90000000 fdtfile=CONFIG_DEFAULT_FDT_FILE mmcdev=1 @@ -22,4 +23,4 @@ get_cmd=tftp spi_fdt_addr=0x700000 spi_image_addr=0x800000 -spi_ramdisk_addr=0x1e00000 +spi_ramdisk_addr=0x2200000 diff --git a/boot/Kconfig b/boot/Kconfig index 2456856a572..30eb5b328d7 100644 --- a/boot/Kconfig +++ b/boot/Kconfig @@ -427,8 +427,8 @@ config BOOT_DEFAULTS menuconfig BOOTSTD bool "Standard boot" - default y - depends on DM && OF_CONTROL && BLK + default y if BLK + depends on DM && OF_CONTROL help U-Boot supports a standard way of locating something to boot, typically an Operating System such as Linux, provided by a distro such diff --git a/drivers/mtd/spi/spi-nor-core.c b/drivers/mtd/spi/spi-nor-core.c index 87a3099eeaf..655bf3aaf81 100644 --- a/drivers/mtd/spi/spi-nor-core.c +++ b/drivers/mtd/spi/spi-nor-core.c @@ -944,6 +944,7 @@ static int spi_nor_erase_chip_wait_till_ready(struct spi_nor *nor, unsigned long static int clean_bar(struct spi_nor *nor) { u8 cmd, bank_sel = 0; + int ret; if (nor->bank_curr == 0) return 0; @@ -951,7 +952,11 @@ static int clean_bar(struct spi_nor *nor) nor->bank_curr = 0; write_enable(nor); - return nor->write_reg(nor, cmd, &bank_sel, 1); + ret = nor->write_reg(nor, cmd, &bank_sel, 1); + if (ret) + return ret; + + return write_disable(nor); } static int write_bar(struct spi_nor *nor, u32 offset) @@ -1272,6 +1277,10 @@ static int write_sr_and_check(struct spi_nor *nor, u8 status_new, u8 mask) if (ret) return ret; + ret = write_disable(nor); + if (ret) + return ret; + ret = read_sr(nor); if (ret < 0) return ret; @@ -1809,13 +1818,18 @@ static int sst26_lock_ctl(struct spi_nor *nor, loff_t ofs, uint64_t len, enum lo if (ctl == SST26_CTL_CHECK) return 0; + /* Write latch enable before write operation */ + ret = write_enable(nor); + if (ret) + return ret; + ret = nor->write_reg(nor, SPINOR_OP_WRITE_BPR, bpr_buff, bpr_size); if (ret < 0) { dev_err(nor->dev, "fail to write block-protection register\n"); return ret; } - return 0; + return write_disable(nor); } static int sst26_unlock(struct spi_nor *nor, loff_t ofs, uint64_t len) @@ -2217,7 +2231,7 @@ static int write_sr_cr(struct spi_nor *nor, u8 *sr_cr) return ret; } - return 0; + return write_disable(nor); } /** @@ -4136,6 +4150,12 @@ static void mt35xu512aba_post_sfdp_fixup(struct spi_nor *nor, params->rdsr_addr_nbytes = 0; /* + * SCCR Map 22nd DWORD does not indicate DTR Octal Mode Enable + * for MT35XU512ABA but is actually supported by device. + */ + nor->flags |= SNOR_F_IO_MODE_EN_VOLATILE; + + /* * The BFPT quad enable field is set to a reserved value so the quad * enable function is ignored by spi_nor_parse_bfpt(). Make sure we * disable it. @@ -4299,6 +4319,9 @@ static int spi_nor_init(struct spi_nor *nor) write_disable(nor); } } + err = write_disable(nor); + if (err) + return err; } if (nor->quad_enable) { diff --git a/include/env/phytec/k3_net.env b/include/env/phytec/k3_net.env index 8ad1cb7b0c2..4d5c703cae9 100644 --- a/include/env/phytec/k3_net.env +++ b/include/env/phytec/k3_net.env @@ -10,13 +10,12 @@ netargs=setenv bootargs console=${console} root=/dev/nfs ip=dhcp rw nfsroot=${serverip}:${nfsroot},vers=4,tcp ${optargs} -netloadimage=${net_fetch_cmd} ${kernel_addr_r} ${serverip}:/Image -netloadfdt=${net_fetch_cmd} ${fdt_addr_r} ${serverip}:/${fdtfile} +netloadimage=${get_cmd} ${kernel_addr_r} ${serverip}:/Image +netloadfdt=${get_cmd} ${fdt_addr_r} ${serverip}:/${fdtfile} netboot=run netargs; setenv autoload no; dhcp; run netloadimage; run netloadfdt; run net_apply_overlays; - run net_apply_extensions; booti ${kernel_addr_r} - ${fdt_addr_r} |