mbox series

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

Message ID be3c5f12-9df4-0a52-4858-c44d848e9147@gmail.com
Headers show
Series Fixes for Rockchip NFC driver part 1 | expand

Message

Johan Jonker March 13, 2023, 12:23 a.m. UTC
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

Comments

Kever Yang April 21, 2023, 3:15 a.m. UTC | #1
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
>
Johan Jonker April 21, 2023, 3:34 p.m. UTC | #2
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
>>
Johan Jonker April 22, 2023, 8:33 p.m. UTC | #3
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
>>>
Kever Yang April 23, 2023, 1:51 a.m. UTC | #4
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
Johan Jonker April 23, 2023, 9:24 a.m. UTC | #5
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
>
Simon Glass April 24, 2023, 11:33 p.m. UTC | #6
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