public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
From: Sean Anderson <seanga2@gmail.com>
To: u-boot@lists.denx.de,
	Dario Binacchi <dario.binacchi@amarulasolutions.com>,
	Michael Trimarchi <michael@amarulasolutions.com>
Cc: Tom Rini <trini@konsulko.com>, Sean Anderson <seanga2@gmail.com>,
	Daniel Schwierzeck <daniel.schwierzeck@gmail.com>,
	GSS_MTK_Uboot_upstream <GSS_MTK_Uboot_upstream@mediatek.com>,
	Heiko Schocher <hs@denx.de>, Peng Fan <peng.fan@nxp.com>,
	Simon Glass <sjg@chromium.org>,
	Weijie Gao <weijie.gao@mediatek.com>
Subject: [PATCH 00/15] nand: Add sandbox tests
Date: Sat, 28 Oct 2023 23:48:30 -0400	[thread overview]
Message-ID: <20231029034845.1169614-1-seanga2@gmail.com> (raw)

This series tests raw nand flash in sandbox and fixes various bugs discovered in
the process. I've tried to do things in a contemporary manner, avoiding the
(numerous) variations present on only a few boards. The test is pretty minimal.
Future work could test the rest of the nand API as well as the MTD API.

Bloat at [1] (for boards with SPL_NAND_SUPPORT enabled). Almost
everything grows by a few bytes due to nand_page_size. A few boards grow more,
mostly those using nand_spl_loaders.c.

[1] https://gist.github.com/Forty-Bot/9694f3401893c9e706ccc374922de6c2


Sean Anderson (15):
  spl: nand: Fix NULL-pointer dereference
  nand: Don't dereference NULL manufacturer_desc
  nand: Calculate SYS_NAND_PAGE_COUNT automatically
  nand: spl_loaders: Only read enough pages to load the image
  spl: legacy: Honor bl_len when decompressing
  spl: nand: Set bl_len to page size
  cmd: nand: Map memory before accessing it
  spl: nand: Map memory before accessing it
  mtd: Rename SPL_MTD_SUPPORT to SPL_MTD
  mtd: Add some fallbacks for add/del_mtd_device
  nand: Add function to unregister NAND devices
  nand: Allow reinitialization
  arch: sandbox: Add function to create temporary files
  nand: Add sandbox driver
  test: spl: Add a test for NAND

 README                                        |   9 +-
 arch/sandbox/cpu/os.c                         |  17 +
 arch/sandbox/dts/test.dts                     |  67 ++
 arch/sandbox/include/asm/spl.h                |   1 +
 cmd/nand.c                                    |  26 +-
 common/spl/Kconfig                            |   2 +-
 common/spl/spl_legacy.c                       |  18 +-
 common/spl/spl_nand.c                         |  22 +-
 configs/am335x_baltos_defconfig               |   3 +-
 configs/am335x_evm_defconfig                  |   3 +-
 configs/am335x_evm_spiboot_defconfig          |   2 +-
 configs/am335x_guardian_defconfig             |   1 -
 configs/am335x_hs_evm_defconfig               |   2 +-
 configs/am335x_hs_evm_uart_defconfig          |   2 +-
 configs/am335x_igep003x_defconfig             |   3 +-
 configs/am335x_sl50_defconfig                 |   2 +-
 configs/am3517_evm_defconfig                  |   3 +-
 configs/am43xx_evm_defconfig                  |   3 +-
 configs/am43xx_evm_rtconly_defconfig          |   3 +-
 configs/am43xx_evm_usbhost_boot_defconfig     |   3 +-
 configs/am43xx_hs_evm_defconfig               |   3 +-
 configs/am62ax_evm_r5_defconfig               |   2 +-
 configs/am65x_evm_a53_defconfig               |   2 +-
 configs/axm_defconfig                         |   1 -
 configs/chiliboard_defconfig                  |   1 -
 configs/cm_t43_defconfig                      |   2 +-
 configs/corvus_defconfig                      |   1 -
 configs/da850evm_nand_defconfig               |   1 -
 configs/devkit3250_defconfig                  |   1 -
 configs/devkit8000_defconfig                  |   1 -
 configs/dra7xx_evm_defconfig                  |   1 -
 configs/draco_defconfig                       |   1 -
 configs/etamin_defconfig                      |   1 -
 .../gardena-smart-gateway-at91sam_defconfig   |   1 -
 configs/igep00x0_defconfig                    |   3 +-
 configs/imx6ulz_smm_m2_defconfig              |   2 +-
 configs/imx8mn_bsh_smm_s2_defconfig           |   2 +-
 configs/j7200_evm_a72_defconfig               |   2 +-
 configs/j7200_evm_r5_defconfig                |   2 +-
 configs/j721e_evm_a72_defconfig               |   2 +-
 configs/j721e_evm_r5_defconfig                |   2 +-
 configs/j721s2_evm_a72_defconfig              |   2 +-
 configs/j721s2_evm_r5_defconfig               |   2 +-
 configs/m53menlo_defconfig                    |   1 -
 configs/omap35_logic_defconfig                |   3 +-
 configs/omap35_logic_somlv_defconfig          |   3 +-
 configs/omap3_beagle_defconfig                |   3 +-
 configs/omap3_evm_defconfig                   |   3 +-
 configs/omap3_logic_defconfig                 |   3 +-
 configs/omap3_logic_somlv_defconfig           |   3 +-
 configs/omapl138_lcdk_defconfig               |   1 -
 configs/phycore-am335x-r2-regor_defconfig     |   3 +-
 configs/phycore-am335x-r2-wega_defconfig      |   3 +-
 configs/pxm2_defconfig                        |   1 -
 configs/rastaban_defconfig                    |   1 -
 configs/rut_defconfig                         |   1 -
 configs/sama5d3_xplained_nandflash_defconfig  |   1 -
 configs/sama5d3xek_nandflash_defconfig        |   1 -
 configs/sama5d4_xplained_nandflash_defconfig  |   1 -
 configs/sama5d4ek_nandflash_defconfig         |   1 -
 configs/sandbox64_defconfig                   |  10 +-
 configs/sandbox_defconfig                     |   9 +
 configs/sandbox_noinst_defconfig              |  21 +-
 configs/smartweb_defconfig                    |   1 -
 configs/socfpga_secu1_defconfig               |   2 +-
 configs/stm32746g-eval_spl_defconfig          |   2 +-
 configs/stm32f746-disco_spl_defconfig         |   2 +-
 configs/stm32f769-disco_spl_defconfig         |   2 +-
 configs/stm32mp15_basic_defconfig             |   2 +-
 configs/stm32mp15_dhcom_basic_defconfig       |   2 +-
 configs/stm32mp15_dhcor_basic_defconfig       |   2 +-
 configs/taurus_defconfig                      |   1 -
 configs/thuban_defconfig                      |   1 -
 drivers/mtd/Makefile                          |   2 +-
 drivers/mtd/nand/raw/Kconfig                  |  27 +-
 drivers/mtd/nand/raw/Makefile                 |   1 +
 drivers/mtd/nand/raw/am335x_spl_bch.c         |   8 +-
 drivers/mtd/nand/raw/atmel_nand.c             |  10 +-
 drivers/mtd/nand/raw/denali_spl.c             |   5 +
 drivers/mtd/nand/raw/fsl_ifc_spl.c            |   8 +
 drivers/mtd/nand/raw/lpc32xx_nand_mlc.c       |   5 +
 drivers/mtd/nand/raw/mt7621_nand_spl.c        |   5 +
 drivers/mtd/nand/raw/mxc_nand_spl.c           |  10 +-
 drivers/mtd/nand/raw/mxs_nand_spl.c           |   5 +
 drivers/mtd/nand/raw/nand.c                   |  66 +-
 drivers/mtd/nand/raw/nand_base.c              |   7 +-
 drivers/mtd/nand/raw/nand_spl_loaders.c       |   5 +-
 drivers/mtd/nand/raw/nand_spl_simple.c        |  10 +-
 drivers/mtd/nand/raw/omap_gpmc.c              |   3 +-
 drivers/mtd/nand/raw/sand_nand.c              | 711 ++++++++++++++++++
 drivers/mtd/nand/raw/sunxi_nand_spl.c         |   8 +-
 drivers/mtd/onenand/onenand_uboot.c           |   2 -
 include/linux/mtd/mtd.h                       |  12 +
 include/mtd/cfi_flash.h                       |   2 +-
 include/nand.h                                |   3 +
 include/os.h                                  |  13 +
 include/system-constants.h                    |   3 +
 test/dm/Makefile                              |   1 +
 test/dm/nand.c                                | 106 +++
 test/image/Kconfig                            |   9 +
 test/image/Makefile                           |   1 +
 test/image/spl_load_nand.c                    |  54 ++
 102 files changed, 1269 insertions(+), 153 deletions(-)
 create mode 100644 drivers/mtd/nand/raw/sand_nand.c
 create mode 100644 test/dm/nand.c
 create mode 100644 test/image/spl_load_nand.c

-- 
2.37.1


             reply	other threads:[~2023-10-29  3:48 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-10-29  3:48 Sean Anderson [this message]
2023-10-29  3:48 ` [PATCH 01/15] spl: nand: Fix NULL-pointer dereference Sean Anderson
2023-10-29 14:15   ` Sean Anderson
2023-10-29  3:48 ` [PATCH 02/15] nand: Don't dereference NULL manufacturer_desc Sean Anderson
2023-10-29 13:06   ` Michael Nazzareno Trimarchi
2023-10-29  3:48 ` [PATCH 03/15] nand: Calculate SYS_NAND_PAGE_COUNT automatically Sean Anderson
2023-11-02  9:53   ` Dario Binacchi
2023-11-02 14:17     ` Sean Anderson
2023-11-02 14:19       ` Dario Binacchi
2023-10-29  3:48 ` [PATCH 04/15] nand: spl_loaders: Only read enough pages to load the image Sean Anderson
2023-10-29 13:08   ` Michael Nazzareno Trimarchi
2023-10-29  3:48 ` [PATCH 05/15] spl: legacy: Honor bl_len when decompressing Sean Anderson
2023-10-29  3:48 ` [PATCH 06/15] spl: nand: Set bl_len to page size Sean Anderson
2023-10-29  3:48 ` [PATCH 07/15] cmd: nand: Map memory before accessing it Sean Anderson
2023-10-29  3:48 ` [PATCH 08/15] spl: " Sean Anderson
2023-10-29  3:48 ` [PATCH 09/15] mtd: Rename SPL_MTD_SUPPORT to SPL_MTD Sean Anderson
2023-10-29  3:48 ` [PATCH 10/15] mtd: Add some fallbacks for add/del_mtd_device Sean Anderson
2023-11-02 10:45   ` Dario Binacchi
2023-10-29  3:48 ` [PATCH 11/15] nand: Add function to unregister NAND devices Sean Anderson
2023-11-02 10:58   ` Dario Binacchi
2023-10-29  3:48 ` [PATCH 12/15] nand: Allow reinitialization Sean Anderson
2023-11-02 11:08   ` Dario Binacchi
2023-10-29  3:48 ` [PATCH 13/15] arch: sandbox: Add function to create temporary files Sean Anderson
2023-10-29  3:48 ` [PATCH 14/15] nand: Add sandbox driver Sean Anderson
2023-11-02 11:15   ` Dario Binacchi
2023-11-02 13:54     ` Sean Anderson
2023-10-29  3:48 ` [PATCH 15/15] test: spl: Add a test for NAND Sean Anderson
2023-11-02 14:01 ` [PATCH 00/15] nand: Add sandbox tests Dario Binacchi
2023-11-02 14:05   ` Sean Anderson
2023-11-02 14:08     ` Dario Binacchi
2023-11-02 14:13       ` Sean Anderson
2023-11-02 14:18         ` Dario Binacchi
2023-11-04 19:46           ` Sean Anderson
2023-11-09  8:23             ` Dario Binacchi

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20231029034845.1169614-1-seanga2@gmail.com \
    --to=seanga2@gmail.com \
    --cc=GSS_MTK_Uboot_upstream@mediatek.com \
    --cc=daniel.schwierzeck@gmail.com \
    --cc=dario.binacchi@amarulasolutions.com \
    --cc=hs@denx.de \
    --cc=michael@amarulasolutions.com \
    --cc=peng.fan@nxp.com \
    --cc=sjg@chromium.org \
    --cc=trini@konsulko.com \
    --cc=u-boot@lists.denx.de \
    --cc=weijie.gao@mediatek.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox