[PATCH v2 00/10] dra7: bring up and support IPU load/start

Amjad Ouled-Ameur aouledameur at baylibre.com
Thu Sep 30 18:21:01 CEST 2021


This patchset enables support for loading and starting IPU firmware,
the following have been implemented:
    - Enable fs_loader compilation at SPL Level, that is necessary in order
      to load IPU firmware from /boot partition.
    - Define necessary related IPU dts nodes.
    - Add necessary drivers and helpers to bring up, load and start IPU
      firmware.

The underlying patches are interdependent, therefore should be applied
in the order they are numbered in this patchset.

Tests:
- Please find SPL, u-boot and kernel console logs in here [1]
- At SPL stage, debug logs have been enabled to make sure that
IPU1 and IPU2 are loaded and started properly. In fact, these two log
messages are only displayed when the firmware has been loaded, and if no
errors appear afterwards, it means that firmware started successfully as
well:
  - Starting IPU1...
  - Starting IPU2...

At U-boot stage, "rproc" command-line tool was used for the testing. In
the logs [1], "rproc list" was run before and after IPU1 and IPU2 are
initialized by "rproc init". The before run gave an empty list, while
the after run listed successfully the two IPUs with their correct
addresses:
  - 0 - Name:'ipu at 58820000' type:'internal memory mapped'
  - 1 - Name:'ipu at 55020000' type:'internal memory mapped'

"rproc start" and "rproc stop" were also used for both IPU1 and IPU2,
both were successful as no error logs were displayed.

[0]: https://pastebin.com/QGUYSPRt

These U-boot/SPL flags have been purposely enabled during tests to ensure
IPU load/start work properly:
- CONFIG_DM_RESET=y
- CONFIG_RESET_DRA7=y
- CONFIG_SPL_DM_RESET=y
- CONFIG_FS_LOADER=y
- CONFIG_SPL_FS_LOADER=y
- CONFIG_SPL_DRIVERS_MISC_SUPPORT=y
- CONFIG_REMOTEPROC_TI_IPU=y
- CONFIG_SPL_REMOTEPROC=y
- CONFIG_CMD_REMOTEPROC=y


Changes in v2:
- Add useful checks and remove redundant code.

Keerthy (10):
  reset: dra7: Add a reset driver
  arm: mach-omap2: load/start remoteproc IPU1/IPU2
  drivers: misc: Makefile: Enable fs_loader compilation at SPL Level
  linux: bitmap.h: Add find_next_zero_area function
  remoteproc: uclass: Add remoteproc resource handling helpers
  remoteproc: ipu: Add driver to bring up ipu
  dts: dra7-ipu-common-early-boot.dtsi: Add all the ipu early boot
    related nodes
  arm: dts: dra7: Add ipu and related nodes
  arm: dts: dra7*/am57xx-idk-evm-u-boot: Add ipu early boot DT changes
  dts: am57xx*: Add ipu early boot DT changes

 MAINTAINERS                                   |   4 +
 .../dts/am57xx-beagle-x15-revb1-u-boot.dtsi   |   7 +
 .../dts/am57xx-beagle-x15-revc-u-boot.dtsi    |   7 +
 arch/arm/dts/am57xx-beagle-x15-u-boot.dtsi    |   7 +
 arch/arm/dts/am57xx-cl-som-am57x-u-boot.dtsi  |   7 +
 arch/arm/dts/am57xx-idk-common-u-boot.dtsi    |   1 +
 arch/arm/dts/am57xx-sbc-am57x-u-boot.dtsi     |   7 +
 arch/arm/dts/dra7-evm-u-boot.dtsi             |   1 +
 arch/arm/dts/dra7-ipu-common-early-boot.dtsi  | 113 +++
 arch/arm/dts/dra7.dtsi                        |  45 +-
 arch/arm/dts/dra71-evm-u-boot.dtsi            |   1 +
 arch/arm/dts/dra72-evm-revc-u-boot.dtsi       |   1 +
 arch/arm/dts/dra76-evm-u-boot.dtsi            |   1 +
 arch/arm/include/asm/arch-omap5/clock.h       |   3 +
 arch/arm/include/asm/omap_common.h            |  10 +
 arch/arm/mach-k3/common.c                     |  10 +-
 arch/arm/mach-omap2/boot-common.c             |  95 +++
 arch/arm/mach-omap2/clocks-common.c           |  33 +
 arch/arm/mach-omap2/omap5/hw_data.c           |  92 ++-
 arch/arm/mach-omap2/omap5/prcm-regs.c         |   9 +-
 configs/j721e_evm_r5_defconfig                |   1 +
 configs/j721e_hs_evm_r5_defconfig             |   1 +
 drivers/misc/Kconfig                          |   9 +
 drivers/misc/Makefile                         |   2 +-
 drivers/remoteproc/Kconfig                    |  10 +
 drivers/remoteproc/Makefile                   |   1 +
 drivers/remoteproc/ipu_rproc.c                | 759 ++++++++++++++++++
 drivers/remoteproc/rproc-uclass.c             | 532 ++++++++++++
 drivers/reset/Kconfig                         |   6 +
 drivers/reset/Makefile                        |   1 +
 drivers/reset/reset-dra7.c                    |  97 +++
 include/linux/bitmap.h                        |  26 +
 include/remoteproc.h                          | 384 ++++++++-
 33 files changed, 2266 insertions(+), 17 deletions(-)
 create mode 100644 arch/arm/dts/am57xx-beagle-x15-revb1-u-boot.dtsi
 create mode 100644 arch/arm/dts/am57xx-beagle-x15-revc-u-boot.dtsi
 create mode 100644 arch/arm/dts/am57xx-beagle-x15-u-boot.dtsi
 create mode 100644 arch/arm/dts/am57xx-cl-som-am57x-u-boot.dtsi
 create mode 100644 arch/arm/dts/am57xx-sbc-am57x-u-boot.dtsi
 create mode 100644 arch/arm/dts/dra7-ipu-common-early-boot.dtsi
 create mode 100644 drivers/remoteproc/ipu_rproc.c
 create mode 100644 drivers/reset/reset-dra7.c

-- 
2.25.1



More information about the U-Boot mailing list