From: Sean Anderson <seanga2@gmail.com>
To: Dario Binacchi <dario.binacchi@amarulasolutions.com>
Cc: u-boot@lists.denx.de,
Michael Trimarchi <michael@amarulasolutions.com>,
Tom Rini <trini@konsulko.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: Re: [PATCH 00/15] nand: Add sandbox tests
Date: Thu, 2 Nov 2023 10:05:54 -0400 [thread overview]
Message-ID: <b0f0c63e-e8b4-ba15-19c0-aca39a8f621b@gmail.com> (raw)
In-Reply-To: <CABGWkvq_Yw2Q7ZX9UeaO6a0Uf6V+-1Uh6BNOga6neq_tUVQNFA@mail.gmail.com>
On 11/2/23 10:01, Dario Binacchi wrote:
> Sean, All,
>
> On Sun, Oct 29, 2023 at 4:48 AM Sean Anderson <seanga2@gmail.com> wrote:
>>
>> 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
>>
>
> The CI pipeline fails:
> https://source.denx.de/u-boot/custodians/u-boot-nand-flash/-/pipelines/18409
>
> It seems like the problem is only for the clang tests (sandbox64 with
> clang test.py and sandbox with clang test.py)
I can't view that link. Can you post the error somewhere else?
I saw a clang error [1] when running CI before sending this out, but I thought I had fixed it.
--Sean
[1] https://source.denx.de/u-boot/custodians/u-boot-clk/-/pipelines/18355
sandbox: + sandbox
+drivers/mtd/nand/raw/sand_nand.c:386:2: error: variable 'src' is used uninitialized whenever switch default is taken [-Werror,-Wsometimes-uninitialized]
+ default:
+ ^~~~~~~
+drivers/mtd/nand/raw/sand_nand.c:395:14: note: uninitialized use occurs here
+ memcpy(buf, src + chip->column, to_copy);
+ ^~~
+drivers/mtd/nand/raw/sand_nand.c:362:6: error: variable 'src' is used uninitialized whenever 'if' condition is true [-Werror,-Wsometimes-uninitialized]
+ if (!chip->selected)
+ ^~~~~~~~~~~~~~~
+drivers/mtd/nand/raw/sand_nand.c:362:2: note: remove the 'if' if its condition is always false
+ ^~~~~~~~~~~~~~~~~~~~
+drivers/mtd/nand/raw/sand_nand.c:360:15: note: initialize the variable 'src' to silence this warning
+ const u8 *src;
+ ^
+ = NULL
+2 errors generated.
+make[5]: *** [scripts/Makefile.build:256: drivers/mtd/nand/raw/sand_nand.o] Error 1
+make[4]: *** [scripts/Makefile.build:397: drivers/mtd/nand/raw] Error 2
+make[3]: *** [scripts/Makefile.build:397: drivers/mtd/nand] Error 2
+make[2]: *** [scripts/Makefile.build:397: drivers/mtd] Error 2
+make[1]: *** [Makefile:1858: drivers] Error 2
+make: *** [Makefile:177: sub-make] Error 2
next prev parent reply other threads:[~2023-11-02 14:06 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-10-29 3:48 [PATCH 00/15] nand: Add sandbox tests Sean Anderson
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 [this message]
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=b0f0c63e-e8b4-ba15-19c0-aca39a8f621b@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