[PATCH v8 00/24] Fixes for Rockchip NFC driver part 1

Johan Jonker jbx6244 at gmail.com
Sat Apr 22 22:33:52 CEST 2023



On 4/21/23 17:34, Johan Jonker wrote:
> 
> 
> On 4/21/23 05:15, Kever Yang wrote:
>> Hi Johan,
>>
>>     I got below error report from CI test, I think it should be relate to this patch set.
>>
>> =================================== FAILURES ===================================
>> 1107 <https://source.denx.de/u-boot/custodians/u-boot-rockchip/-/jobs/615291#L1107>_________________ test_ut[ut_dm_dm_test_fdt_get_addr_ptr_flat] _________________
>> 1108 <https://source.denx.de/u-boot/custodians/u-boot-rockchip/-/jobs/615291#L1108>test/py/tests/test_ut.py:346: in test_ut
>> 1109 <https://source.denx.de/u-boot/custodians/u-boot-rockchip/-/jobs/615291#L1109>assert output.endswith('Failures: 0')
>> 1110 <https://source.denx.de/u-boot/custodians/u-boot-rockchip/-/jobs/615291#L1110>E AssertionError: assert False
>> 1111 <https://source.denx.de/u-boot/custodians/u-boot-rockchip/-/jobs/615291#L1111>E + where False = <built-in method endswith of str object at 0x7f7089240c10>('Failures: 0')
>> 1112 <https://source.denx.de/u-boot/custodians/u-boot-rockchip/-/jobs/615291#L1112>E + where <built-in method endswith of str object at 0x7f7089240c10> = 'Test: dm_test_fdt_get_addr_ptr_flat: test-fdt.c (flat tree)\r\r\ntest/dm/test-fdt.c:627, 
> 
> dm_test_fdt_get_addr_ptr_fla...xpected 0000000000008000, got 0000000010009000\r\r\nTest dm_test_fdt_get_addr_ptr_flat failed 1 times\r\r\nFailures: 1'.endswith
> 
> It turns out that the suggestion by Simon to use map_sysmem() doesn't work with devfdt_get_addr_index_ptr() somehow.
> 
> To reproduce with this serie:
> make sandbox_defconfig all
> ./u-boot -T -c "ut dm fdt*"
> 
> Test: dm_test_fdt_get_addr_ptr_flat: test-fdt.c (flat tree)
> test/dm/test-fdt.c:627, dm_test_fdt_get_addr_ptr_flat(): (void *)0x8000 = ptr: Expected 0000000000008000, got 0000000010009000
> Test fdt* failed 1 times
> 
> ===
> 

> Could Simon have a look at the internal map_sysmem() stuff?

Question for Simon:

Comments:
Re: [PATCH v5 12/21] core: read: add dev_read_addr_index_ptr function
Please use map_sysmem() rather than a cast, so it can be used on sandbox.

Re: [PATCH v6 12/22] core: fdtaddr: add devfdt_get_addr_size_index_ptr function
Shouldn't this use map_to_sysmem()? We should not cast addresses to pointers.

> +       return (addr == FDT_ADDR_T_NONE) ? NULL : (void *)(uintptr_t)addr;

Did you mean map_sysmem() instead of map_to_sysmem() as I used in [PATCH v8 14/24]??

===
The test is looking for "(void *)0x8000", while devfdt_get_addr_ptr() points to a map_physmem() pointer now.
Either "(void *)0x8000" needs to be mapped too.

Do you agree?
===

>From /arch/sandbox/include/asm/io.h

/* For sandbox, we want addresses to point into our RAM buffer */
static inline void *map_sysmem(phys_addr_t paddr, unsigned long len)
{
	return map_physmem(paddr, len, MAP_WRBACK);
}
===

>From /test/dm/test-fdt.c:

static int dm_test_fdt_get_addr_ptr_flat(struct unit_test_state *uts)
{
	struct udevice *gpio, *dev;
	void *ptr;

	/* Test for missing reg property */
	ut_assertok(uclass_first_device_err(UCLASS_GPIO, &gpio));
	ut_assertnull(devfdt_get_addr_ptr(gpio));

	ut_assertok(uclass_find_device_by_seq(UCLASS_TEST_DUMMY, 0, &dev));

===
Change:

	ptr = devfdt_get_addr_ptr(dev);
	ut_asserteq_ptr((void *)0x8000, ptr);

To:
	paddr = map_physmem(0x8000, 0, MAP_NOCACHE); // ??
	ut_asserteq_ptr(paddr, ptr);                 // ??

Please advise what kind of test you like.

===
	return 0;
}
DM_TEST(dm_test_fdt_get_addr_ptr_flat,
	UT_TESTF_SCAN_PDATA | UT_TESTF_SCAN_FDT | UT_TESTF_FLAT_TREE);


> 
> Will send 1 patch to replace:
> [PATCH v8 14/24] core: fdtaddr: add devfdt_get_addr_size_index_ptr function
> 
> for:
> 

> [PATCH v9] core: fdtaddr: add devfdt_get_addr_size_index_ptr function
> 

The use of map_sysmem() in a devfdt_get_addr_size_index_ptr must change the test as well in the same patch.
Is there a need for "[patch v10] core: fdtaddr: add devfdt_get_addr_size_index_ptr function" or is [patch v9] enough for now??

> Could Kever retest with the patch above replacement?


> 
> Johan
> 
>>
>>
>> Thanks,
>> - Kever
>> On 2023/3/13 08:23, Johan Jonker wrote:
>>> This serie contains fixes for the Rockchip NFC driver,
>>> which was ported to U-boot and merged with little review
>>> and testing it seems.
>>> Part 1 aims at passing the probe function without errors.
>>> Extended with tree wide function cleanup needed for 64bit DT parsing.
>>>
>>> Fixed are:
>>>   64bit FDT parsing
>>>   compatible string removal
>>>   add missing layout structure
>>>   add missing flash_node pointer
>>>   add missing chip ID
>>>
>>> Changed V8:
>>>   change comments
>>>   use uintptr_t size instead of phys_addr_t
>>>   add another fdt_addr_t fix
>>>
>>> Changed V7:
>>>   add proof of concept for syscon node with variable reg size handling
>>>   use another map_sysmem() function as cast
>>>   remove cast
>>>
>>> Changed V6:
>>>   use -EINVAL on return
>>>   drop cast
>>>   use map_sysmem() function as cast
>>>   add and rename patch
>>>
>>> Changed V5:
>>>   sort patch order
>>>   add more fixes with pointer functions
>>>   add debug text fixes
>>>   test with binman for ARM only due to limited resources
>>>
>>> Changed V4:
>>>   fix cast and divider in syscon-uclass.c
>>>
>>> Changed V3:
>>>   use dev_read_addr_ptr
>>>   fix oobfree
>>>
>>> Johan Jonker (23):
>>>   mtd: nand: raw: rockchip_nfc: use dev_read_addr_ptr
>>>   mtd: nand: raw: rockchip_nfc: remove the compatible string
>>>     "rockchip,rk3308-nfc"
>>>   mtd: nand: raw: rockchip_nfc: add layout structure
>>>   mtd: nand: raw: rockchip_nfc: add flash_node to chip structure
>>>   mtd: nand: raw: rockchip_nfc: fix oobfree offset and description
>>>   rockchip: adc: rockchip-saradc: use dev_read_addr_ptr
>>>   rockchip: timer: dw-apb-timer: use regs variable with uintptr_t size
>>>   rockchip: pwm: rk_pwm: use base variable with uintptr_t size
>>>   rockchip: spi: rk_spi: use base variable with uintptr_t size
>>>   include: dm: ofnode: fix headers
>>>   core: remap: fix regmap_init_mem_plat() reg size handeling
>>>   rockchip: rk3288: syscon_rk3288: store syscon platdata in regmap
>>>   core: fdtaddr: add devfdt_get_addr_size_index_ptr function
>>>   core: read: add dev_read_addr_index_ptr function
>>>   spi: spi-aspeed-smc: use devfdt_get_addr_index_ptr
>>>   drivers: use dev_read_addr_index_ptr when cast to pointer
>>>   drivers: use dev_read_addr_ptr when cast to pointer
>>>   drivers: use devfdt_get_addr_size_index_ptr when cast to pointer
>>>   drivers: use devfdt_get_addr_index_ptr when cast to pointer
>>>   drivers: use devfdt_get_addr_ptr when cast to pointer
>>>   drivers: fix debug string with fdt_addr_t input
>>>   arm: stm32mp: spl: fix function with fdt_addr_t input
>>>   include: fdtdec: decouple fdt_addr_t and phys_addr_t size
>>>
>>> Paweł Jarosz (1):
>>>   mtd: nand: add support for the Sandisk SDTNQGAMA chip
>>>
>>>  Kconfig                                       |   8 ++
>>>  arch/arm/mach-mvebu/cpu.c                     |   2 +-
>>>  arch/arm/mach-mvebu/system-controller.c       |   4 +-
>>>  arch/arm/mach-rockchip/rk3288/syscon_rk3288.c | 121 ++++++++++++++++++
>>>  arch/arm/mach-stm32mp/spl.c                   |   2 +-
>>>  doc/develop/driver-model/livetree.rst         |   2 +-
>>>  drivers/adc/rockchip-saradc.c                 |   6 +-
>>>  drivers/ata/dwc_ahsata.c                      |   2 +-
>>>  drivers/cache/cache-l2x0.c                    |   2 +-
>>>  drivers/cache/cache-v5l2.c                    |   2 +-
>>>  drivers/clk/at91/sama7g5.c                    |   2 +-
>>>  drivers/clk/at91/sckc.c                       |   2 +-
>>>  drivers/clk/clk-hsdk-cgu.c                    |   4 +-
>>>  drivers/clk/ti/clk-ctrl.c                     |   9 +-
>>>  drivers/core/fdtaddr.c                        |  17 ++-
>>>  drivers/core/read.c                           |  15 ++-
>>>  drivers/core/regmap.c                         |  23 +++-
>>>  drivers/core/syscon-uclass.c                  |  23 +++-
>>>  drivers/ddr/altera/sdram_gen5.c               |   4 +-
>>>  drivers/gpio/mscc_sgpio.c                     |   2 +-
>>>  drivers/gpio/tegra_gpio.c                     |   4 +-
>>>  drivers/gpio/xilinx_gpio.c                    |   2 +-
>>>  drivers/i2c/i2c-cdns.c                        |   4 +-
>>>  drivers/i2c/tegra_i2c.c                       |   4 +-
>>>  drivers/mmc/am654_sdhci.c                     |   2 +-
>>>  drivers/mmc/davinci_mmc.c                     |   2 +-
>>>  drivers/mmc/piton_mmc.c                       |   2 +-
>>>  drivers/mmc/tegra_mmc.c                       |   2 +-
>>>  drivers/mmc/xenon_sdhci.c                     |   2 +-
>>>  drivers/mmc/zynq_sdhci.c                      |   6 +-
>>>  drivers/mtd/nand/raw/arasan_nfc.c             |   2 +-
>>>  drivers/mtd/nand/raw/cortina_nand.c           |   6 +-
>>>  drivers/mtd/nand/raw/mxic_nand.c              |   2 +-
>>>  drivers/mtd/nand/raw/nand_ids.c               |   3 +
>>>  drivers/mtd/nand/raw/rockchip_nfc.c           |  78 ++++-------
>>>  drivers/mtd/nand/raw/tegra_nand.c             |   2 +-
>>>  drivers/mtd/nand/raw/zynq_nand.c              |   2 +-
>>>  drivers/net/dm9000x.c                         |   2 +-
>>>  drivers/net/dwmac_meson8b.c                   |   4 +-
>>>  drivers/net/mvmdio.c                          |   2 +-
>>>  drivers/net/mvpp2.c                           |  24 ++--
>>>  drivers/net/qe/dm_qe_uec_phy.c                |   2 +-
>>>  drivers/pci/pci-aardvark.c                    |   4 +-
>>>  drivers/pci/pcie_dw_meson.c                   |   8 +-
>>>  drivers/pci/pcie_dw_mvebu.c                   |  10 +-
>>>  drivers/pci/pcie_dw_rockchip.c                |   8 +-
>>>  drivers/pci/pcie_imx.c                        |   4 +-
>>>  drivers/pci/pcie_layerscape_ep.c              |   8 +-
>>>  drivers/phy/allwinner/phy-sun50i-usb3.c       |   6 +-
>>>  drivers/phy/marvell/comphy_core.c             |  12 +-
>>>  drivers/phy/phy-stm32-usbphyc.c               |   4 +-
>>>  drivers/phy/qcom/phy-qcom-usb-hs-28nm.c       |   4 +-
>>>  drivers/phy/qcom/phy-qcom-usb-ss.c            |   4 +-
>>>  .../phy/rockchip/phy-rockchip-snps-pcie3.c    |   4 +-
>>>  drivers/phy/rockchip/phy-rockchip-typec.c     |   6 +-
>>>  drivers/pwm/rk_pwm.c                          |   2 +-
>>>  drivers/pwm/tegra_pwm.c                       |   2 +-
>>>  drivers/ram/rockchip/sdram_rk3066.c           |   2 +-
>>>  drivers/ram/rockchip/sdram_rk3188.c           |   2 +-
>>>  drivers/ram/rockchip/sdram_rk322x.c           |   2 +-
>>>  drivers/ram/rockchip/sdram_rk3288.c           |   2 +-
>>>  drivers/ram/rockchip/sdram_rk3328.c           |   2 +-
>>>  drivers/ram/rockchip/sdram_rk3399.c           |   2 +-
>>>  drivers/serial/serial_zynq.c                  |   6 +-
>>>  drivers/spi/cadence_qspi.c                    |   5 +-
>>>  drivers/spi/mpc8xxx_spi.c                     |   2 +-
>>>  drivers/spi/mscc_bb_spi.c                     |   2 +-
>>>  drivers/spi/mtk_snor.c                        |   2 +-
>>>  drivers/spi/mtk_spim.c                        |   2 +-
>>>  drivers/spi/rk_spi.c                          |   2 +-
>>>  drivers/spi/sh_qspi.c                         |   2 +-
>>>  drivers/spi/spi-aspeed-smc.c                  |  17 ++-
>>>  drivers/spi/spi-mxic.c                        |   2 +-
>>>  drivers/spi/xilinx_spi.c                      |   2 +-
>>>  drivers/timer/dw-apb-timer.c                  |   2 +-
>>>  drivers/ufs/ufs.c                             |   2 +-
>>>  drivers/usb/host/ehci-tegra.c                 |   2 +-
>>>  drivers/usb/musb-new/ti-musb.c                |   2 +-
>>>  drivers/video/dw_mipi_dsi.c                   |   4 +-
>>>  drivers/video/rockchip/rk_vop.c               |   2 +-
>>>  drivers/video/stm32/stm32_dsi.c               |   4 +-
>>>  drivers/video/stm32/stm32_ltdc.c              |   4 +-
>>>  drivers/video/tegra124/display.c              |   2 +-
>>>  drivers/video/tegra124/sor.c                  |   6 +-
>>>  drivers/video/ti/tilcdc.c                     |   4 +-
>>>  drivers/watchdog/cdns_wdt.c                   |   6 +-
>>>  drivers/watchdog/sbsa_gwdt.c                  |  12 +-
>>>  drivers/watchdog/sp805_wdt.c                  |   6 +-
>>>  drivers/watchdog/xilinx_tb_wdt.c              |   6 +-
>>>  include/dm/fdtaddr.h                          |  17 ++-
>>>  include/dm/ofnode.h                           |  16 +--
>>>  include/fdtdec.h                              |  13 +-
>>>  include/regmap.h                              |   5 +-
>>>  include/syscon.h                              |  13 --
>>>  94 files changed, 426 insertions(+), 255 deletions(-)
>>>
>>> --
>>> 2.20.1
>>>


More information about the U-Boot mailing list