u-boot/drivers/mtd
Sean Anderson 38ef64e6ce spl: nand: Set bl_len to page size
Since commit 34793598c8 ("mtd: nand: mxs_nand_spl: Remove the page aligned
access") there are no longer any users of nand_get_mtd. However, it is
still important to know what the page size is so we can allocate a
large-enough buffer. If the image size is not page-aligned, we will go off
the end of the buffer and clobber some memory.

Introduce a new function nand_page_size which returns the page size. For
most drivers it is easy to determine the page size. However, a few need to
be modified since they only keep the page size around temporarily.

It's possible that this patch could cause a regression on some platforms if
the offset is non-aligned and there is invalid address space immediately
before the load address. spl_load_legacy_img does not (except when
compressing) respect bl_len, so only boards with SPL_LOAD_FIT (8 boards) or
SPL_LOAD_IMX_CONTAINER (none in tree) would be affected.

defconfig               CONFIG_TEXT_BASE
======================= ================
am335x_evm              0x80800000
am43xx_evm              0x80800000
am43xx_evm_rtconly      0x80800000
am43xx_evm_usbhost_boot 0x80800000
am43xx_hs_evm           0x80800000
dra7xx_evm              0x80800000
gwventana_nand          0x17800000
imx8mn_bsh_smm_s2       0x40200000

All the sitara boards have DDR mapped at 0x80000000. gwventana is an i.MX6Q
which has DDR at 0x10000000. I don't have the IMX8MNRM handy, but on the
i.MX8M DDR starts at 0x40000000. Therefore all of these boards can handle a
little underflow.

Signed-off-by: Sean Anderson <seanga2@gmail.com>
2023-11-16 12:43:48 -05:00
..
nand spl: nand: Set bl_len to page size 2023-11-16 12:43:48 -05:00
nvmxip drivers/mtd/nvmxip: Move sandbox_set_enable_memio() to test 2023-08-30 17:56:21 -04:00
onenand common: Drop linux/printk.h from common header 2023-09-24 09:54:57 -04:00
spi bootstd: BOOTDEV_SPI_FLASH requires BOOTSTD 2023-11-01 12:26:44 -04:00
ubi common: Drop linux/printk.h from common header 2023-09-24 09:54:57 -04:00
ubispl drivers/mtd/ubispl/ubispl.c: Fix spelling of "mismatched". 2022-01-13 07:57:49 -05:00
altera_qspi.c mtd: Remove mtd_erase_callback() entirely 2021-10-23 15:47:33 +05:30
cfi_flash.c mtd: cfi: respect reg address length 2023-05-15 10:00:30 +02:00
cfi_mtd.c mtd: cfi_mtd: populate mtd->dev with flash_info->dev 2022-02-01 10:56:25 +01:00
hbmc-am654.c dm: treewide: Rename auto_alloc_size members to be shorter 2020-12-13 08:00:25 -07:00
jedec_flash.c common: Drop log.h from common header 2020-05-18 21:19:18 -04:00
Kconfig mtd: Add missing MTD dependency for cfi_mtd 2023-07-21 09:00:38 +02:00
Makefile drivers/mtd/nvmxip: introduce NVM XIP block storage emulation 2023-04-27 17:01:14 -04:00
mtd-uclass.c dm: define LOG_CATEGORY for all uclass 2021-07-06 10:38:03 -06:00
mtd_uboot.c configs: remove support of MTDIDS_DEFAULT/MTDPARTS_DEFAULT 2022-12-12 16:46:07 -05:00
mtdconcat.c common: Drop linux/printk.h from common header 2023-09-24 09:54:57 -04:00
mtdcore.c doc: replace @return by Return: 2022-01-19 18:11:34 +01:00
mtdcore.h mtd: move definitions to enlarge their range 2018-09-20 20:10:49 +05:30
mtdpart.c dm: core: Drop ofnode_is_available() 2022-09-29 16:11:31 -04:00
renesas_rpc_hf.c renesas: Fix RPC-IF compatible values 2022-09-02 13:25:01 +02:00
stm32_flash.c global: Move remaining CONFIG_SYS_* to CFG_SYS_* 2022-12-05 16:06:08 -05:00
stm32_flash.h stm32: stm32f4: move flash driver to mtd driver location 2016-03-26 18:49:28 -04:00