[u-boot][PATCH 00/14] rawnand: omap_gpmc: driver model support

Roger Quadros rogerq at kernel.org
Sat Dec 17 14:59:34 CET 2022



On 17/12/2022 15:51, Michael Nazzareno Trimarchi wrote:
> Hi
> 
> Minimal diff
> 
> diff --git a/configs/chiliboard_defconfig b/configs/chiliboard_defconfig
> index 458c4558fd..c7f8fd2e25 100644
> --- a/configs/chiliboard_defconfig
> +++ b/configs/chiliboard_defconfig
> @@ -47,12 +47,14 @@ CONFIG_CMD_MTDPARTS=y
>  CONFIG_MTDIDS_DEFAULT="nand0=8000000.nand"
>  CONFIG_MTDPARTS_DEFAULT="mtdparts=8000000.nand:128k(NAND.SPL),128k(NAND.SPL.backup1),128k(NAND.SPL.backup2),128k(NAND.SPL.backup3),256k(NAND.u-boot-spl-os),1m(NAND.u-boot),128k(NAND.u-boot-env),128k(NAND.u-boot-env.backup1),8m(NAND.kernel),-(NAND.file-system)"
>  CONFIG_OF_CONTROL=y
> +CONFIG_SPL_OF_CONTROL=y
>  CONFIG_ENV_OVERWRITE=y
>  CONFIG_ENV_IS_IN_MMC=y
>  CONFIG_SYS_REDUNDAND_ENVIRONMENT=y
>  CONFIG_SYS_RELOC_GD_ENV_ADDR=y
>  CONFIG_NET_RETRY_COUNT=10
>  CONFIG_BOOTP_SEND_HOSTNAME=y
> +CONFIG_SPL_DM=y
>  CONFIG_BOOTCOUNT_LIMIT=y
>  CONFIG_SYS_BOOTCOUNT_BE=y
>  CONFIG_SYS_I2C_LEGACY=y

This worked perfectly.
But this platform my not yet be utilizing DM for NAND/ELM driver yet
so is this change acceptable?

cheers,
-roger

> 
> On Sat, Dec 17, 2022 at 2:46 PM Michael Nazzareno Trimarchi
> <michael at amarulasolutions.com> wrote:
>>
>> Hi
>>
>> take my config
>>
>> Michael
>>
>> On Sat, Dec 17, 2022 at 2:43 PM Roger Quadros <rogerq at kernel.org> wrote:
>>>
>>> On 17/12/2022 15:38, Michael Nazzareno Trimarchi wrote:
>>>> Hi
>>>>
>>>> On Sat, Dec 17, 2022 at 2:00 PM Roger Quadros <rogerq at kernel.org> wrote:
>>>>>
>>>>> Hi Michael & Dario,
>>>>>
>>>>> On 12/12/2022 11:39, Michael Nazzareno Trimarchi wrote:
>>>>>> Hi Roger
>>>>>>
>>>>>> Most of the building problem can be tested with this configuration
>>>>>>
>>>>>> make ARCH=arm chiliboard_defconfig
>>>>>
>>>>> I resolved the original issue for all boards but now face a new issue
>>>>> only with the chiliboard.
>>>>>
>>>>> arm-none-linux-gnueabihf-ld.bfd: drivers/mtd/nand/raw/omap_elm.o: in function `dev_read_resource':
>>>>> /work/u-boot/include/dm/read.h:1139: undefined reference to `ofnode_read_resource'
>>>>>   AR      common/built-in.o
>>>>> make[2]: *** [/work/u-boot/scripts/Makefile.spl:527: spl/u-boot-spl] Error 1
>>>>> make[1]: *** [/work/u-boot/Makefile:2071: spl/u-boot-spl] Error 2
>>>>> make[1]: *** Waiting for unfinished jobs....
>>>>> make[1]: Leaving directory '/tmp'
>>>>> make: *** [Makefile:177: sub-make] Error 2
>>>>>
>>>>> The following config options are set
>>>>> CONFIG_DM_DEV_READ_INLINE=y
>>>>
>>>> What happen is that is not set?
>>>
>>> I removed "default y" for it in drivers/core/Kconfig
>>>
>>> Now I get
>>>
>>> arm-none-linux-gnueabihf-ld.bfd: drivers/mtd/nand/raw/omap_elm.o: in function `elm_probe':
>>> /work/u-boot/drivers/mtd/nand/raw/omap_elm.c:206: undefined reference to `dev_read_resource'
>>> make[2]: *** [/work/u-boot/scripts/Makefile.spl:527: spl/u-boot-spl] Error 1
>>> make[1]: *** [/work/u-boot/Makefile:2071: spl/u-boot-spl] Error 2
>>> make[1]: *** Waiting for unfinished jobs....
>>>
>>> cheers,
>>> -roger
>>>
>>>>
>>>> Michael
>>>>
>>>>> CONFIG_SUPPORT_OF_CONTROL=y
>>>>>
>>>>> My understanding is that in case of spl build (Makefile.spl), the
>>>>> drivers/core/ofnode.o does not seem to be included
>>>>> thus causing the linking error.
>>>>>
>>>>> Any suggestions how to fix this?
>>>>>
>>>>> I've pushed the patches here
>>>>> https://github.com/rogerq/u-boot/commits/for-v2023.01/am64-nand-base-1.4
>>>>>
>>>>> cheers,
>>>>> -roger
>>>>>
>>>>>>
>>>>>> Michael
>>>>>>
>>>>>> On Mon, Dec 12, 2022 at 10:27 AM Dario Binacchi
>>>>>> <dario.binacchi at amarulasolutions.com> wrote:
>>>>>>>
>>>>>>> Hi Roger,
>>>>>>>
>>>>>>> On Mon, Dec 12, 2022 at 10:12 AM Roger Quadros <rogerq at kernel.org> wrote:
>>>>>>>>
>>>>>>>> Hi Dario,
>>>>>>>>
>>>>>>>> On 11/12/2022 15:56, Dario Binacchi wrote:
>>>>>>>>> Hi Roger,
>>>>>>>>>
>>>>>>>>> On Fri, Nov 25, 2022 at 1:38 PM Roger Quadros <rogerq at kernel.org> wrote:
>>>>>>>>>>
>>>>>>>>>> Hi Michael,
>>>>>>>>>>
>>>>>>>>>> On 08/11/2022 11:26, Michael Nazzareno Trimarchi wrote:
>>>>>>>>>>> Hi Roger
>>>>>>>>>>>
>>>>>>>>>>> On Fri, Nov 4, 2022 at 2:27 PM Roger Quadros <rogerq at kernel.org> wrote:
>>>>>>>>>>>>
>>>>>>>>>>>> Hi,
>>>>>>>>>>>>
>>>>>>>>>>>> On 11/10/2022 14:49, Roger Quadros wrote:
>>>>>>>>>>>>> Hi,
>>>>>>>>>>>>>
>>>>>>>>>>>>> This series adds driver model support for rawnand: omap_gpmc
>>>>>>>>>>>>> and omap_elm drivers.
>>>>>>>>>>>>>
>>>>>>>>>>>>> This will enable the driver to be used on K2/K3 platforms as well.
>>>>>>>>>>>>
>>>>>>>>>>>> Any comments on patches 5 and later? Thanks
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> We will try to close this week.
>>>>>>>>>>
>>>>>>>>>> Could you please give your comments on the last few patches. Thanks!
>>>>>>>>>>
>>>>>>>>>> cheers,
>>>>>>>>>> -roger
>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> Michael
>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> cheers,
>>>>>>>>>>>> -roger
>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> cheers,
>>>>>>>>>>>>> -roger
>>>>>>>>>>>>>
>>>>>>>>>>>>> Roger Quadros (14):
>>>>>>>>>>>>>   mtd: rawnand: omap_gpmc: Deprecate asm/arch/mem.h
>>>>>>>>>>>>>   mtd: rawnand: omap_gpmc: Enable build for K2/K3 platforms
>>>>>>>>>>>>>   mtd: rawnand: omap_gpmc: Fix build warning on 64-bit platforms
>>>>>>>>>>>>>   mtd: rawnand: omap_gpmc: Optimize NAND reads
>>>>>>>>>>>>>   mtd: rawnand: omap_gpmc: Fix BCH6/16 HW based correction
>>>>>>>>>>>>>   mtd: rawnand: nand_base: Allow base driver to be used in SPL without
>>>>>>>>>>>>>     nand_bbt
>>>>>>>>>>>>>   mtd: rawnand: nand_spl_loaders: Fix cast type build warning
>>>>>>>>>>>>>   mtd: rawnand: omap_gpmc: Reduce .bss usage
>>>>>>>>>>>>>   dt-bindings: mtd: Add ti,gpmc-nand DT binding documentation
>>>>>>>>>>>>>   mtd: rawnand: omap_gpmc: support u-boot driver model
>>>>>>>>>>>>>   mtd: rawnand: omap_gpmc: Add SPL NAND support
>>>>>>>>>>>>>   mtd: rawnand: omap_gpmc: Enable SYS_NAND_PAGE_COUNT for OMAP_GPMC
>>>>>>>>>>>>>   dt-bindings: mtd: Add ti,elm DT binding documentation
>>>>>>>>>>>>>   mtd: rawnand: omap_elm: u-boot driver model support
>>>>>>>>>>>>>
>>>>>>>>>>>>>  doc/device-tree-bindings/mtd/ti,elm.yaml      |  72 +++
>>>>>>>>>>>>>  .../mtd/ti,gpmc-nand.yaml                     | 129 +++++
>>>>>>>>>>>>>  drivers/mtd/nand/raw/Kconfig                  |  11 +-
>>>>>>>>>>>>>  drivers/mtd/nand/raw/Makefile                 |   2 +-
>>>>>>>>>>>>>  drivers/mtd/nand/raw/nand_base.c              |  18 +-
>>>>>>>>>>>>>  drivers/mtd/nand/raw/nand_spl_loaders.c       |   2 +-
>>>>>>>>>>>>>  drivers/mtd/nand/raw/omap_elm.c               |  33 +-
>>>>>>>>>>>>>  .../mtd => drivers/mtd/nand/raw}/omap_elm.h   |   6 +
>>>>>>>>>>>>>  drivers/mtd/nand/raw/omap_gpmc.c              | 500 +++++++++++++-----
>>>>>>>>>>>>>  9 files changed, 637 insertions(+), 136 deletions(-)
>>>>>>>>>>>>>  create mode 100644 doc/device-tree-bindings/mtd/ti,elm.yaml
>>>>>>>>>>>>>  create mode 100644 doc/device-tree-bindings/mtd/ti,gpmc-nand.yaml
>>>>>>>>>>>>>  rename {include/linux/mtd => drivers/mtd/nand/raw}/omap_elm.h (97%)
>>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>
>>>>>>>>> I tried to merge your whole series but after the second fix and the
>>>>>>>>> third time the CI/CD pipeline failed
>>>>>>>>
>>>>>>>> Do you have the link to the failure?
>>>>>>>
>>>>>>> These are the CI/CD pipelines links:
>>>>>>> https://source.denx.de/u-boot/custodians/u-boot-nand-flash/-/jobs/540827
>>>>>>> https://source.denx.de/u-boot/custodians/u-boot-nand-flash/-/jobs/540876
>>>>>>> but I think you don't have permission to access them.
>>>>>>>
>>>>>>> Anyway:
>>>>>>>
>>>>>>> for https://source.denx.de/u-boot/custodians/u-boot-nand-flash/-/jobs/540827:
>>>>>>> +====================================================
>>>>>>> 345 arm: + am335x_guardian
>>>>>>> 346+drivers/mtd/nand/raw/omap_gpmc.c:1208:26: error: 'nand_chip'
>>>>>>> defined but not used [-Werror=unused-variable]
>>>>>>> 347+ 1208 | static struct nand_chip *nand_chip; /* First NAND chip for
>>>>>>> SPL use only */
>>>>>>> 348+ | ^~~~~~~~~
>>>>>>> 349+cc1: all warnings being treated as errors
>>>>>>> 350+make[5]: *** [scripts/Makefile.build:258:
>>>>>>> drivers/mtd/nand/raw/omap_gpmc.o] Error 1
>>>>>>> 351+make[4]: *** [scripts/Makefile.build:398: drivers/mtd/nand/raw] Error 2
>>>>>>> 352+make[3]: *** [scripts/Makefile.build:398: drivers/mtd/nand] Error 2
>>>>>>> 353+make[2]: *** [scripts/Makefile.build:398: drivers/mtd] Error 2
>>>>>>> 354+make[1]: *** [Makefile:1871: drivers] Error 2
>>>>>>> 355+make: *** [Makefile:177: sub-make] Error 2
>>>>>>>
>>>>>>> for https://source.denx.de/u-boot/custodians/u-boot-nand-flash/-/jobs/540876:
>>>>>>> +====================================================
>>>>>>> 498 arm: + chiliboard
>>>>>>> 499+arm-linux-gnueabi-ld.bfd: drivers/mtd/nand/raw/nand.o: in function
>>>>>>> `nand_init_chip':
>>>>>>> 500+drivers/mtd/nand/raw/nand.c:92: undefined reference to `board_nand_init'
>>>>>>> 501+make[1]: *** [Makefile:1778: u-boot] Error 1
>>>>>>> 502+make: *** [Makefile:177: sub-make] Error 2
>>>>>>> 503 arm: w+ am335x_shc_netboot
>>>>>>> 504+===================== WARNING ======================
>>>>>>> 505+This board does not use CONFIG_DM_I2C (Driver Model
>>>>>>> 506+for I2C drivers). Please update the board to use
>>>>>>> 507+CONFIG_DM_I2C before the v2022.04 release. Failure to
>>>>>>> 508+update by the deadline may result in board removal.
>>>>>>> 509+See doc/develop/driver-model/migration.rst for more info.
>>>>>>> 510+====================================================
>>>>>>> 511 arm: + cm_t43
>>>>>>> 512+arm-linux-gnueabi-ld.bfd: drivers/mtd/nand/raw/nand.o: in function
>>>>>>> `nand_init_chip':
>>>>>>> 513+drivers/mtd/nand/raw/nand.c:92: undefined reference to `board_nand_init'
>>>>>>> 514+make[1]: *** [Makefile:1778: u-boot] Error 1
>>>>>>> 515+make: *** [Makefile:177: sub-make] Error 2
>>>>>>> 516 arm: w+ am335x_shc_sdboot
>>>>>>>
>>>>>>> In both cases failed the "build all 32bit ARM platforms" test.
>>>>>>>
>>>>>>> I think you have to run the command:
>>>>>>> ./tools/buildman/buildman -o /tmp -PEWM arm -x aarch64
>>>>>>> if you have to run the tests locally.
>>>>>>>
>>>>>>> Thanks and regards,
>>>>>>> Dario
>>>>>>>
>>>>>>>>
>>>>>>>>> I thought it's better you fix the problems. So, I only accepted some
>>>>>>>>> of the first few patches in the series:
>>>>>>>>> 01/14 mtd: rawnand: omap_gpmc: Deprecate asm/arch/mem.h
>>>>>>>>> 02/14 mtd: rawnand: omap_gpmc: Enable build for K2/K3 platforms
>>>>>>>>> 03/14 mtd: rawnand: omap_gpmc: Fix build warning on 64-bit platforms
>>>>>>>>> 04/14 mtd: rawnand: omap_gpmc: Optimize NAND reads
>>>>>>>>> 07/14 mtd: rawnand: nand_spl_loaders: Fix cast type build warning
>>>>>>>>> 08/14 mtd: rawnand: omap_gpmc: Reduce .bss usage
>>>>>>>>>
>>>>>>>>> For the others, please fix them to run the tests successfully.
>>>>>>>>
>>>>>>>> No problem. I will try to fix and run them through the CI testing myself
>>>>>>>> before re-posting.
>>>>>>>>
>>>>>>>> cheers,
>>>>>>>> -roger
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>>
>>>>>>> Dario Binacchi
>>>>>>>
>>>>>>> Embedded Linux Developer
>>>>>>>
>>>>>>> dario.binacchi at amarulasolutions.com
>>>>>>>
>>>>>>> __________________________________
>>>>>>>
>>>>>>>
>>>>>>> Amarula Solutions SRL
>>>>>>>
>>>>>>> Via Le Canevare 30, 31100 Treviso, Veneto, IT
>>>>>>>
>>>>>>> T. +39 042 243 5310
>>>>>>> info at amarulasolutions.com
>>>>>>>
>>>>>>> www.amarulasolutions.com
>>>>>>
>>>>>>
>>>>>>
>>>>
>>>>
>>>>
>>
>>
>>
>> --
>> Michael Nazzareno Trimarchi
>> Co-Founder & Chief Executive Officer
>> M. +39 347 913 2170
>> michael at amarulasolutions.com
>> __________________________________
>>
>> Amarula Solutions BV
>> Joop Geesinkweg 125, 1114 AB, Amsterdam, NL
>> T. +31 (0)85 111 9172
>> info at amarulasolutions.com
>> www.amarulasolutions.com
> 
> 
> 


More information about the U-Boot mailing list