[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