Message ID | be3c5f12-9df4-0a52-4858-c44d848e9147@gmail.com |
---|---|
Headers | show |
Series | Fixes for Rockchip NFC driver part 1 | expand |
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 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 >
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? 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 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 >>
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 >>>
Hi Johan, On 2023/4/21 23: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? > > 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 > > Could Kever retest with the patch above replacement? The CI test pass with this replacement. Thanks, - Kever
On 4/23/23 03:51, Kever Yang wrote: > Hi Johan, > > On 2023/4/21 23: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? >> >> 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 >> >> Could Kever retest with the patch above replacement? > > The CI test pass with this replacement. I've sent a new separate patch that handles map_sysmem. [PATCH v9] core: fdtaddr: use map_sysmem() as cast for the return https://lore.kernel.org/u-boot/4990a11d-638f-661d-a7c0-e0c5bf7ff863@gmail.com/T/#u Apply after: [PATCH v8 00/24] Fixes for Rockchip NFC driver part 1 with replacement: [PATCH v9] core: fdtaddr: add devfdt_get_addr_size_index_ptr function Please have a look. Johan > > > Thanks, > > - Kever >
Hi Johan, On Sun, 23 Apr 2023 at 03:24, Johan Jonker <jbx6244@gmail.com> wrote: > > > > On 4/23/23 03:51, Kever Yang wrote: > > Hi Johan, > > > > On 2023/4/21 23: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? > >> > >> 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 > >> > >> Could Kever retest with the patch above replacement? > > > > > The CI test pass with this replacement. > > I've sent a new separate patch that handles map_sysmem. > > [PATCH v9] core: fdtaddr: use map_sysmem() as cast for the return > https://lore.kernel.org/u-boot/4990a11d-638f-661d-a7c0-e0c5bf7ff863@gmail.com/T/#u > > Apply after: > [PATCH v8 00/24] Fixes for Rockchip NFC driver part 1 > with replacement: > [PATCH v9] core: fdtaddr: add devfdt_get_addr_size_index_ptr function > > Please have a look. Yes it looks good, thanks. Basically we try to use addresses (ulong) in U-Boot, rather than pointers. We try to show addresses to the user as well (rather than pointers). Same with tests. Pointers are typically used locally, as needed, e.g. to access a struct at that location. So in general we use map_sysmem() quite a bit (to convert an address to a pointer), but map_to_sysmem() not very often. Regards, Simon