mbox series

[v4,0/5] ARM: arbitrary virtual-physical mappings for RPi4 XHCI support

Message ID 20200602120423.6285-1-m.szyprowski@samsung.com
Headers show
Series ARM: arbitrary virtual-physical mappings for RPi4 XHCI support | expand

Message

Marek Szyprowski June 2, 2020, 12:04 p.m. UTC
Hi All,

This patchset adds support for creating a mapping for the arbitrary
physical address at the given virtual address. This is needed to enable
support for XHCI USB controller on PCIe bridge on Raspberry Pi 4 board,
on which the USB controller's MMIO area 0x600000000 has to be remapped
somewhere to fit in 4GiB virtual address space when running in ARM 32bit
mode.

This patchset is a continuation of the Raspberry Pi 4 XHCI/PCIe patchset:
https://patchwork.ozlabs.org/project/uboot/list/?series=179078
and the following discussion:
https://lists.denx.de/pipermail/u-boot/2020-May/411086.html

Best regards
Marek Szyprowski
Samsung R&D Institute Poland


Changelog:

v4:
- added a patch, which moves ADDR_MAP config entry to Kconfig system
  as requested by Simon Glass
- rebased onto v4 of the "USB host support for Raspberry Pi 4 board
  (64-bit)" patchset

v3: https://lists.denx.de/pipermail/u-boot/2020-May/412427.html
- fixed broken RPi3 and lack of the identity mapping for map_physmem
  (for example for the itest command was broken)
- added a patch fixing a new build warning

v2: https://lists.denx.de/pipermail/u-boot/2020-May/411765.html
- fixed ARM64 build

v1: https://lists.denx.de/pipermail/u-boot/2020-May/411765.html
- initial RFC


Patch summary:

Marek Szyprowski (4):
  powerpc: move ADDR_MAP to Kconfig
  arm: provide a function for boards init code to modify MMU
    virtual-physical map
  rpi4: add a mapping for the PCIe XHCI controller MMIO registers (ARM
    32bit)
  config: Enable support for the XHCI controller on RPI4 board

Seung-Woo Kim (1):
  mmc: bcm283x: fix int to pointer cast

 arch/arm/include/asm/mmu.h                    |  8 +++++++
 arch/arm/include/asm/system.h                 | 11 +++++++++
 arch/arm/lib/cache-cp15.c                     | 24 ++++++++++++++-----
 arch/arm/mach-bcm283x/Kconfig                 |  1 +
 arch/arm/mach-bcm283x/include/mach/base.h     |  8 +++++++
 arch/arm/mach-bcm283x/init.c                  | 21 ++++++++++++++++
 configs/B4420QDS_NAND_defconfig               |  2 ++
 configs/B4420QDS_SPIFLASH_defconfig           |  2 ++
 configs/B4420QDS_defconfig                    |  2 ++
 configs/B4860QDS_NAND_defconfig               |  2 ++
 configs/B4860QDS_SECURE_BOOT_defconfig        |  2 ++
 configs/B4860QDS_SPIFLASH_defconfig           |  2 ++
 configs/B4860QDS_SRIO_PCIE_BOOT_defconfig     |  2 ++
 configs/B4860QDS_defconfig                    |  2 ++
 configs/C29XPCIE_NAND_defconfig               |  1 +
 configs/C29XPCIE_NOR_SECBOOT_defconfig        |  1 +
 configs/C29XPCIE_SPIFLASH_SECBOOT_defconfig   |  1 +
 configs/C29XPCIE_SPIFLASH_defconfig           |  1 +
 configs/C29XPCIE_defconfig                    |  1 +
 configs/Cyrus_P5020_defconfig                 |  2 ++
 configs/Cyrus_P5040_defconfig                 |  2 ++
 configs/MPC8536DS_36BIT_defconfig             |  1 +
 configs/MPC8548CDS_36BIT_defconfig            |  1 +
 configs/MPC8572DS_36BIT_defconfig             |  1 +
 configs/MPC8641HPCN_36BIT_defconfig           |  2 ++
 configs/MPC8641HPCN_defconfig                 |  2 ++
 .../P1010RDB-PA_36BIT_NAND_SECBOOT_defconfig  |  1 +
 configs/P1010RDB-PA_36BIT_NAND_defconfig      |  1 +
 .../P1010RDB-PA_36BIT_NOR_SECBOOT_defconfig   |  1 +
 configs/P1010RDB-PA_36BIT_NOR_defconfig       |  1 +
 configs/P1010RDB-PA_36BIT_SDCARD_defconfig    |  1 +
 ...010RDB-PA_36BIT_SPIFLASH_SECBOOT_defconfig |  1 +
 configs/P1010RDB-PA_36BIT_SPIFLASH_defconfig  |  1 +
 .../P1010RDB-PB_36BIT_NAND_SECBOOT_defconfig  |  1 +
 configs/P1010RDB-PB_36BIT_NAND_defconfig      |  1 +
 .../P1010RDB-PB_36BIT_NOR_SECBOOT_defconfig   |  1 +
 configs/P1010RDB-PB_36BIT_NOR_defconfig       |  1 +
 configs/P1010RDB-PB_36BIT_SDCARD_defconfig    |  1 +
 ...010RDB-PB_36BIT_SPIFLASH_SECBOOT_defconfig |  1 +
 configs/P1010RDB-PB_36BIT_SPIFLASH_defconfig  |  1 +
 configs/P1020MBG-PC_36BIT_SDCARD_defconfig    |  1 +
 configs/P1020MBG-PC_36BIT_defconfig           |  1 +
 configs/P1020RDB-PC_36BIT_NAND_defconfig      |  1 +
 configs/P1020RDB-PC_36BIT_SDCARD_defconfig    |  1 +
 configs/P1020RDB-PC_36BIT_SPIFLASH_defconfig  |  1 +
 configs/P1020RDB-PC_36BIT_defconfig           |  1 +
 configs/P1020UTM-PC_36BIT_SDCARD_defconfig    |  1 +
 configs/P1020UTM-PC_36BIT_defconfig           |  1 +
 configs/P1021RDB-PC_36BIT_NAND_defconfig      |  1 +
 configs/P1021RDB-PC_36BIT_SDCARD_defconfig    |  1 +
 configs/P1021RDB-PC_36BIT_SPIFLASH_defconfig  |  1 +
 configs/P1021RDB-PC_36BIT_defconfig           |  1 +
 configs/P1022DS_36BIT_NAND_defconfig          |  1 +
 configs/P1022DS_36BIT_SDCARD_defconfig        |  1 +
 configs/P1022DS_36BIT_SPIFLASH_defconfig      |  1 +
 configs/P1022DS_36BIT_defconfig               |  1 +
 configs/P1024RDB_36BIT_defconfig              |  1 +
 configs/P1025RDB_36BIT_defconfig              |  1 +
 configs/P2020RDB-PC_36BIT_NAND_defconfig      |  1 +
 configs/P2020RDB-PC_36BIT_SDCARD_defconfig    |  1 +
 configs/P2020RDB-PC_36BIT_SPIFLASH_defconfig  |  1 +
 configs/P2020RDB-PC_36BIT_defconfig           |  1 +
 configs/P2041RDB_NAND_defconfig               |  2 ++
 configs/P2041RDB_SDCARD_defconfig             |  2 ++
 configs/P2041RDB_SECURE_BOOT_defconfig        |  2 ++
 configs/P2041RDB_SPIFLASH_defconfig           |  2 ++
 configs/P2041RDB_SRIO_PCIE_BOOT_defconfig     |  2 ++
 configs/P2041RDB_defconfig                    |  2 ++
 configs/P3041DS_NAND_SECURE_BOOT_defconfig    |  2 ++
 configs/P3041DS_NAND_defconfig                |  2 ++
 configs/P3041DS_SDCARD_defconfig              |  2 ++
 configs/P3041DS_SECURE_BOOT_defconfig         |  2 ++
 configs/P3041DS_SPIFLASH_defconfig            |  2 ++
 configs/P3041DS_SRIO_PCIE_BOOT_defconfig      |  2 ++
 configs/P3041DS_defconfig                     |  2 ++
 configs/P4080DS_SDCARD_defconfig              |  2 ++
 configs/P4080DS_SECURE_BOOT_defconfig         |  2 ++
 configs/P4080DS_SPIFLASH_defconfig            |  2 ++
 configs/P4080DS_SRIO_PCIE_BOOT_defconfig      |  2 ++
 configs/P4080DS_defconfig                     |  2 ++
 configs/P5020DS_NAND_SECURE_BOOT_defconfig    |  2 ++
 configs/P5020DS_NAND_defconfig                |  2 ++
 configs/P5020DS_SDCARD_defconfig              |  2 ++
 configs/P5020DS_SECURE_BOOT_defconfig         |  2 ++
 configs/P5020DS_SPIFLASH_defconfig            |  2 ++
 configs/P5020DS_SRIO_PCIE_BOOT_defconfig      |  2 ++
 configs/P5020DS_defconfig                     |  2 ++
 configs/P5040DS_NAND_SECURE_BOOT_defconfig    |  2 ++
 configs/P5040DS_NAND_defconfig                |  2 ++
 configs/P5040DS_SDCARD_defconfig              |  2 ++
 configs/P5040DS_SECURE_BOOT_defconfig         |  2 ++
 configs/P5040DS_SPIFLASH_defconfig            |  2 ++
 configs/P5040DS_defconfig                     |  2 ++
 configs/T1023RDB_NAND_defconfig               |  2 ++
 configs/T1023RDB_SDCARD_defconfig             |  2 ++
 configs/T1023RDB_SECURE_BOOT_defconfig        |  2 ++
 configs/T1023RDB_SPIFLASH_defconfig           |  2 ++
 configs/T1023RDB_defconfig                    |  2 ++
 configs/T1024QDS_DDR4_SECURE_BOOT_defconfig   |  2 ++
 configs/T1024QDS_DDR4_defconfig               |  2 ++
 configs/T1024QDS_NAND_defconfig               |  2 ++
 configs/T1024QDS_SDCARD_defconfig             |  2 ++
 configs/T1024QDS_SECURE_BOOT_defconfig        |  2 ++
 configs/T1024QDS_SPIFLASH_defconfig           |  2 ++
 configs/T1024QDS_defconfig                    |  2 ++
 configs/T1024RDB_NAND_defconfig               |  2 ++
 configs/T1024RDB_SDCARD_defconfig             |  2 ++
 configs/T1024RDB_SECURE_BOOT_defconfig        |  2 ++
 configs/T1024RDB_SPIFLASH_defconfig           |  2 ++
 configs/T1024RDB_defconfig                    |  2 ++
 configs/T1040D4RDB_NAND_defconfig             |  2 ++
 configs/T1040D4RDB_SDCARD_defconfig           |  2 ++
 configs/T1040D4RDB_SECURE_BOOT_defconfig      |  2 ++
 configs/T1040D4RDB_SPIFLASH_defconfig         |  2 ++
 configs/T1040D4RDB_defconfig                  |  2 ++
 configs/T1040QDS_DDR4_defconfig               |  2 ++
 configs/T1040QDS_SECURE_BOOT_defconfig        |  2 ++
 configs/T1040QDS_defconfig                    |  2 ++
 configs/T1040RDB_NAND_defconfig               |  2 ++
 configs/T1040RDB_SDCARD_defconfig             |  2 ++
 configs/T1040RDB_SECURE_BOOT_defconfig        |  2 ++
 configs/T1040RDB_SPIFLASH_defconfig           |  2 ++
 configs/T1040RDB_defconfig                    |  2 ++
 configs/T1042D4RDB_NAND_defconfig             |  2 ++
 configs/T1042D4RDB_SDCARD_defconfig           |  2 ++
 configs/T1042D4RDB_SECURE_BOOT_defconfig      |  2 ++
 configs/T1042D4RDB_SPIFLASH_defconfig         |  2 ++
 configs/T1042D4RDB_defconfig                  |  2 ++
 .../T1042RDB_PI_NAND_SECURE_BOOT_defconfig    |  2 ++
 configs/T1042RDB_PI_NAND_defconfig            |  2 ++
 configs/T1042RDB_PI_SDCARD_defconfig          |  2 ++
 configs/T1042RDB_PI_SPIFLASH_defconfig        |  2 ++
 configs/T1042RDB_PI_defconfig                 |  2 ++
 configs/T1042RDB_SECURE_BOOT_defconfig        |  2 ++
 configs/T1042RDB_defconfig                    |  2 ++
 configs/T2080QDS_NAND_defconfig               |  2 ++
 configs/T2080QDS_SDCARD_defconfig             |  2 ++
 configs/T2080QDS_SECURE_BOOT_defconfig        |  2 ++
 configs/T2080QDS_SPIFLASH_defconfig           |  2 ++
 configs/T2080QDS_SRIO_PCIE_BOOT_defconfig     |  2 ++
 configs/T2080QDS_defconfig                    |  2 ++
 configs/T2080RDB_NAND_defconfig               |  2 ++
 configs/T2080RDB_SDCARD_defconfig             |  2 ++
 configs/T2080RDB_SECURE_BOOT_defconfig        |  2 ++
 configs/T2080RDB_SPIFLASH_defconfig           |  2 ++
 configs/T2080RDB_SRIO_PCIE_BOOT_defconfig     |  2 ++
 configs/T2080RDB_defconfig                    |  2 ++
 configs/T2081QDS_NAND_defconfig               |  2 ++
 configs/T2081QDS_SDCARD_defconfig             |  2 ++
 configs/T2081QDS_SPIFLASH_defconfig           |  2 ++
 configs/T2081QDS_SRIO_PCIE_BOOT_defconfig     |  2 ++
 configs/T2081QDS_defconfig                    |  2 ++
 configs/T4160QDS_NAND_defconfig               |  2 ++
 configs/T4160QDS_SDCARD_defconfig             |  2 ++
 configs/T4160QDS_SECURE_BOOT_defconfig        |  2 ++
 configs/T4160QDS_defconfig                    |  2 ++
 configs/T4160RDB_defconfig                    |  2 ++
 configs/T4240QDS_NAND_defconfig               |  2 ++
 configs/T4240QDS_SDCARD_defconfig             |  2 ++
 configs/T4240QDS_SECURE_BOOT_defconfig        |  2 ++
 configs/T4240QDS_SRIO_PCIE_BOOT_defconfig     |  2 ++
 configs/T4240QDS_defconfig                    |  2 ++
 configs/T4240RDB_SDCARD_defconfig             |  2 ++
 configs/T4240RDB_defconfig                    |  2 ++
 ...trolcenterd_36BIT_SDCARD_DEVELOP_defconfig |  1 +
 configs/controlcenterd_36BIT_SDCARD_defconfig |  1 +
 configs/kmcoge4_defconfig                     |  2 ++
 configs/qemu-ppce500_defconfig                |  1 +
 configs/rpi_4_32b_defconfig                   | 11 +++++++++
 drivers/mmc/bcm2835_sdhci.c                   |  2 +-
 include/configs/B4860QDS.h                    |  5 ----
 include/configs/C29XPCIE.h                    |  3 ---
 include/configs/MPC8536DS.h                   |  5 ----
 include/configs/MPC8548CDS.h                  |  5 ----
 include/configs/MPC8572DS.h                   |  5 ----
 include/configs/MPC8641HPCN.h                 |  2 --
 include/configs/P1010RDB.h                    |  5 ----
 include/configs/P1022DS.h                     |  5 ----
 include/configs/P2041RDB.h                    |  5 ----
 include/configs/T102xQDS.h                    |  5 ----
 include/configs/T102xRDB.h                    |  5 ----
 include/configs/T1040QDS.h                    |  3 ---
 include/configs/T104xRDB.h                    |  3 ---
 include/configs/T208xQDS.h                    |  5 ----
 include/configs/T208xRDB.h                    |  5 ----
 include/configs/T4240RDB.h                    |  3 ---
 include/configs/controlcenterd.h              |  5 ----
 include/configs/corenet_ds.h                  |  5 ----
 include/configs/cyrus.h                       |  5 ----
 include/configs/kmp204x.h                     |  3 ---
 include/configs/p1_p2_rdb_pc.h                |  5 ----
 include/configs/qemu-ppce500.h                |  3 ---
 include/configs/t4qds.h                       |  3 ---
 lib/Kconfig                                   | 13 ++++++++++
 scripts/config_whitelist.txt                  |  2 --
 195 files changed, 369 insertions(+), 107 deletions(-)
 create mode 100644 arch/arm/include/asm/mmu.h