All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 00/38] ppc: qemu: Convert qemu-ppce500 to driver model and enable additional driver support
@ 2021-02-18 15:57 ` Bin Meng
  0 siblings, 0 replies; 96+ messages in thread
From: Bin Meng @ 2021-02-18 15:57 UTC (permalink / raw)
  To: Simon Glass, Alexander Graf, Priyanka Jain
  Cc: Tom Rini, Matthias Brugger, qemu-devel, U-Boot Mailing List,
	qemu-ppc, Heiko Schocher, Marek Szyprowski

At present when building qemu-ppce500 the following warnings are seen:

===================== WARNING ======================
This board does not use CONFIG_DM. CONFIG_DM will be
compulsory starting with the v2020.01 release.
Failure to update may result in board removal.
  UPD     include/generated/timestamp_autogenerated.h
See doc/driver-model/migration.rst for more info.
====================================================
===================== WARNING ======================
This board does not use CONFIG_DM_PCI Please update
the board to use CONFIG_DM_PCI before the v2019.07 release.
Failure to update by the deadline may result in board removal.
See doc/driver-model/migration.rst for more info.
====================================================
===================== WARNING ======================
This board does not use CONFIG_DM_ETH (Driver Model
for Ethernet drivers). Please update the board to use
CONFIG_DM_ETH before the v2020.07 release. Failure to
update by the deadline may result in board removal.
See doc/driver-model/migration.rst for more info.
====================================================

The conversion of qemu-ppce500 board to driver model is long overdue.

When testing the exisitng qemu-ppce500 support, PCI was found broken.
This is caused by 2 separate issues:

- One issue was caused by U-Boot:
  Commit e002474158d1 ("pci: pci-uclass: Dynamically allocate the PCI regions")
  Patch #1 updated the non-DM fsl_pci_init driver to dynamically allocate the
  PCI regions, to keep in sync with the pci uclass driver
- One issue was caused by QEMU:
  commit e6b4e5f4795b ("PPC: e500: Move CCSR and MMIO space to upper end of address space")
  commit cb3778a0455a ("PPC: e500 pci host: Add support for ATMUs")
  Patch #3-4 fixed this issue to keep in sync with latest QEMU upstream

Patch #5-8, #34-36 are minor fixes and clean-ups.

Starting from patch#9, these are driver model conversion patches.

Patch #11-17 are mainly related to CONFIG_ADDR_MAP, a library to support targets
that have non-identity virtual-physical address mappings. A new command 'addrmap'
is introduced to aid debugging, and a fix to arch/powerpc/asm/include/io.h is
made to correct the usage of CONFIG_ADDR_MAP as it can only be used in the post-
relocation phase. Also the initialization of this library is moved a bit earlier
in the post-relocation phase otherwise device drivers won't work.

Patch #19-21 are 85xx PCI driver fixes. It adds support to controller register
physical address beyond 32-bit, as well as support to 64-bit bus and cpu address
as current upstream QEMU uses 64-bit cpu address.

Starting from patch#24, these are additional driver support patches.

Patch #24, #26 are minor fix to the 'virtio' command and BLK driver dependency.

Patch #25 enables the VirtIO NET support as by default a VirtIO standard PCI
networking device is connected as an ethernet interface at PCI address 0.1.0.

Patch #27 enables the VirtIO BLK driver support.

Patch #28-30 enables the GPIO support.

Patch #31-32 enables poweroff via GPIO.

Patch #33 enables RTC over the I2C bus.

Patch #37 moves the qemu-ppce500 boards codes to board/emulation as that is the
place for other QEMU targets like x86, arm, riscv.

Patch #38 adds a reST document to describe how to build and run U-Boot for the
QEMU ppce500 machine.

I hope we can make this series to U-Boot v2021.04 release.

This series is available at u-boot-x86/qemu-ppc for testing.

This cover letter is cc'ed to QEMU mailing list for a heads-up.
A future patch will be sent to QEMU mailing list to bring its in-tree
U-Boot source codes up-to-date.

Changes in v2:
- drop the revert patch of commit e002474158d1
- new patch: pci: fsl_pci_init: Dynamically allocate the PCI regions
- add more details in the commit message, and put some comments
  in the codes to explain why
- add doc/usage/addrmap.rst
- new patch: test: cmd: Add a basic test for 'addrmap' command
- new patch: virtio: Fix VirtIO BLK driver dependency
- new patch: ppc: qemu: Enable VirtIO BLK support
- new patch: ppc: mpc85xx: Add 'gpibe' register to 'struct ccsr_gpio'
- new patch: gpio: mpc8xxx: Support controller register physical address beyond 32-bit
- new patch: ppc: qemu: Enable GPIO support
- new patch: dm: sysreset: Add a Kconfig option for the 'reset' command
- new patch: ppc: qemu: Enable support for power off via GPIO
- new patch: ppc: qemu: Enable RTC support via I2C
- new patch: ppc: qemu: Delete the temporary FDT virtual-physical mapping after U-Boot is relocated
- new patch: ppc: qemu: Drop a custom env variable 'fdt_addr_r'
- new patch: ppc: qemu: Drop fixed_sdram()
- add descriptions for VirtIO BLK, RTC and power off

Bin Meng (38):
  pci: fsl_pci_init: Dynamically allocate the PCI regions
  ppc: qemu: Update MAINTAINERS for correct email address
  common: fdt_support: Support special case of PCI address in
    fdt_read_prop()
  ppc: qemu: Support non-identity PCI bus address
  ppc: qemu: Fix CONFIG_SYS_PCI_MAP_END
  ppc: mpc85xx: Wrap LAW related codes with CONFIG_FSL_LAW
  ppc: qemu: Drop init_laws() and print_laws()
  ppc: qemu: Drop board_early_init_f()
  ppc: qemu: Enable OF_CONTROL
  ppc: qemu: Enable driver model
  include: Remove extern from addr_map.h
  lib: addr_map: Move address_map[] type to the header file
  cmd: Add a command to display the address map
  test: cmd: Add a basic test for 'addrmap' command
  lib: kconfig: Mention CONFIG_ADDR_MAP limitation in the help
  ppc: io.h: Use addrmap_ translation APIs only in post-relocation phase
  common: Move initr_addr_map() to a bit earlier
  ppc: qemu: Switch over to use DM serial
  pci: mpc85xx: Wrap LAW programming with CONFIG_FSL_LAW
  pci: mpc85xx: Support controller register physical address beyond
    32-bit
  pci: mpc85xx: Support 64-bit bus and cpu address
  ppc: qemu: Switch over to use DM ETH and PCI
  ppc: qemu: Drop CONFIG_OF_BOARD_SETUP
  cmd: Fix virtio command dependency
  ppc: qemu: Enable VirtIO NET support
  virtio: Fix VirtIO BLK driver dependency
  ppc: qemu: Enable VirtIO BLK support
  ppc: mpc85xx: Add 'gpibe' register to 'struct ccsr_gpio'
  gpio: mpc8xxx: Support controller register physical address beyond
    32-bit
  ppc: qemu: Enable GPIO support
  dm: sysreset: Add a Kconfig option for the 'reset' command
  ppc: qemu: Enable support for power off via GPIO
  ppc: qemu: Enable RTC support via I2C
  ppc: qemu: Delete the temporary FDT virtual-physical mapping after
    U-Boot is relocated
  ppc: qemu: Drop a custom env variable 'fdt_addr_r'
  ppc: qemu: Drop fixed_sdram()
  ppc: qemu: Move board directory from board/freescale to
    board/emulation
  doc: Add a reST document for qemu-ppce500

 arch/powerpc/cpu/mpc85xx/Kconfig                   |   2 +-
 arch/powerpc/cpu/mpc85xx/cpu.c                     |   2 +
 arch/powerpc/cpu/mpc85xx/cpu_init_early.c          |   2 +
 arch/powerpc/include/asm/arch-mpc85xx/gpio.h       |   2 +-
 arch/powerpc/include/asm/immap_85xx.h              |   1 +
 arch/powerpc/include/asm/io.h                      |  15 +-
 .../{freescale => emulation}/qemu-ppce500/Kconfig  |   2 +-
 board/emulation/qemu-ppce500/MAINTAINERS           |   7 +
 .../{freescale => emulation}/qemu-ppce500/Makefile |   0
 .../qemu-ppce500/qemu-ppce500.c                    | 178 +++++++--------------
 board/freescale/qemu-ppce500/MAINTAINERS           |   6 -
 cmd/Kconfig                                        |   8 +
 cmd/Makefile                                       |   1 +
 cmd/addrmap.c                                      |  35 ++++
 common/board_r.c                                   |   6 +-
 common/fdt_support.c                               |  20 ++-
 configs/qemu-ppce500_defconfig                     |  27 +++-
 doc/board/emulation/index.rst                      |   1 +
 doc/board/emulation/qemu-ppce500.rst               |  88 ++++++++++
 doc/usage/addrmap.rst                              |  41 +++++
 doc/usage/index.rst                                |   1 +
 drivers/gpio/mpc8xxx_gpio.c                        |   7 +-
 drivers/pci/fsl_pci_init.c                         |   5 +
 drivers/pci/pci_mpc85xx.c                          |  25 +--
 drivers/sysreset/Kconfig                           |   6 +
 drivers/sysreset/sysreset-uclass.c                 |   2 +
 drivers/virtio/Kconfig                             |   1 +
 include/addr_map.h                                 |  16 +-
 include/configs/qemu-ppce500.h                     |  30 +---
 include/test/suites.h                              |   2 +
 lib/Kconfig                                        |   2 +
 lib/addr_map.c                                     |   6 +-
 test/cmd/Makefile                                  |   1 +
 test/cmd/addrmap.c                                 |  38 +++++
 test/cmd_ut.c                                      |   6 +
 35 files changed, 397 insertions(+), 195 deletions(-)
 rename board/{freescale => emulation}/qemu-ppce500/Kconfig (86%)
 create mode 100644 board/emulation/qemu-ppce500/MAINTAINERS
 rename board/{freescale => emulation}/qemu-ppce500/Makefile (100%)
 rename board/{freescale => emulation}/qemu-ppce500/qemu-ppce500.c (65%)
 delete mode 100644 board/freescale/qemu-ppce500/MAINTAINERS
 create mode 100644 cmd/addrmap.c
 create mode 100644 doc/board/emulation/qemu-ppce500.rst
 create mode 100644 doc/usage/addrmap.rst
 create mode 100644 test/cmd/addrmap.c

-- 
2.7.4



^ permalink raw reply	[flat|nested] 96+ messages in thread

end of thread, other threads:[~2021-02-23 10:43 UTC | newest]

Thread overview: 96+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-02-18 15:57 [PATCH v2 00/38] ppc: qemu: Convert qemu-ppce500 to driver model and enable additional driver support Bin Meng
2021-02-18 15:57 ` Bin Meng
2021-02-18 15:57 ` [PATCH v2 01/38] pci: fsl_pci_init: Dynamically allocate the PCI regions Bin Meng
2021-02-20 11:54   ` Simon Glass
2021-02-20 13:57     ` Tom Rini
2021-02-18 15:57 ` [PATCH v2 02/38] ppc: qemu: Update MAINTAINERS for correct email address Bin Meng
2021-02-22  7:39   ` Priyanka Jain
2021-02-18 15:57 ` [PATCH v2 03/38] common: fdt_support: Support special case of PCI address in fdt_read_prop() Bin Meng
2021-02-20 11:54   ` Simon Glass
2021-02-20 13:03     ` Bin Meng
2021-02-22  7:42   ` Priyanka Jain
2021-02-18 15:57 ` [PATCH v2 04/38] ppc: qemu: Support non-identity PCI bus address Bin Meng
2021-02-18 15:57 ` [PATCH v2 05/38] ppc: qemu: Fix CONFIG_SYS_PCI_MAP_END Bin Meng
2021-02-22  7:47   ` Priyanka Jain
2021-02-18 15:57 ` [PATCH v2 06/38] ppc: mpc85xx: Wrap LAW related codes with CONFIG_FSL_LAW Bin Meng
2021-02-22  8:12   ` Priyanka Jain
2021-02-22  8:53     ` Bin Meng
2021-02-23 10:43       ` Priyanka Jain
2021-02-18 15:57 ` [PATCH v2 07/38] ppc: qemu: Drop init_laws() and print_laws() Bin Meng
2021-02-18 15:57 ` [PATCH v2 08/38] ppc: qemu: Drop board_early_init_f() Bin Meng
2021-02-22  8:14   ` Priyanka Jain
2021-02-18 15:57 ` [PATCH v2 09/38] ppc: qemu: Enable OF_CONTROL Bin Meng
2021-02-22  8:14   ` Priyanka Jain
2021-02-18 15:57 ` [PATCH v2 10/38] ppc: qemu: Enable driver model Bin Meng
2021-02-22  8:14   ` Priyanka Jain
2021-02-18 15:57 ` [PATCH v2 11/38] include: Remove extern from addr_map.h Bin Meng
2021-02-22  8:16   ` Priyanka Jain
2021-02-18 15:57 ` [PATCH v2 12/38] lib: addr_map: Move address_map[] type to the header file Bin Meng
2021-02-22  8:17   ` Priyanka Jain
2021-02-18 15:57 ` [PATCH v2 13/38] cmd: Add a command to display the address map Bin Meng
2021-02-20 11:54   ` Simon Glass
2021-02-22  8:18   ` Priyanka Jain
2021-02-18 15:57 ` [PATCH v2 14/38] test: cmd: Add a basic test for 'addrmap' command Bin Meng
2021-02-20 11:54   ` Simon Glass
2021-02-20 13:01     ` Bin Meng
2021-02-21 16:24       ` Simon Glass
2021-02-22  1:55         ` Bin Meng
2021-02-22  9:20           ` Simon Glass
2021-02-22 12:13             ` Bin Meng
2021-02-22 14:00             ` Tom Rini
2021-02-18 15:57 ` [PATCH v2 15/38] lib: kconfig: Mention CONFIG_ADDR_MAP limitation in the help Bin Meng
2021-02-22  8:19   ` Priyanka Jain
2021-02-18 15:57 ` [PATCH v2 16/38] ppc: io.h: Use addrmap_ translation APIs only in post-relocation phase Bin Meng
2021-02-22  8:55   ` Priyanka Jain
2021-02-18 15:57 ` [PATCH v2 17/38] common: Move initr_addr_map() to a bit earlier Bin Meng
2021-02-22  9:05   ` Priyanka Jain
2021-02-18 15:57 ` [PATCH v2 18/38] ppc: qemu: Switch over to use DM serial Bin Meng
2021-02-22  9:05   ` Priyanka Jain
2021-02-18 15:57 ` [PATCH v2 19/38] pci: mpc85xx: Wrap LAW programming with CONFIG_FSL_LAW Bin Meng
2021-02-21  7:06   ` Heiko Schocher
2021-02-22  9:06   ` Priyanka Jain
2021-02-22 12:10     ` Bin Meng
2021-02-23 10:43       ` Priyanka Jain
2021-02-18 15:57 ` [PATCH v2 20/38] pci: mpc85xx: Support controller register physical address beyond 32-bit Bin Meng
2021-02-21  7:06   ` Heiko Schocher
2021-02-22  9:07   ` Priyanka Jain
2021-02-18 15:57 ` [PATCH v2 21/38] pci: mpc85xx: Support 64-bit bus and cpu address Bin Meng
2021-02-21  7:06   ` Heiko Schocher
2021-02-18 15:57 ` [PATCH v2 22/38] ppc: qemu: Switch over to use DM ETH and PCI Bin Meng
2021-02-20 11:54   ` Simon Glass
2021-02-22  9:12   ` Priyanka Jain
2021-02-18 15:57 ` [PATCH v2 23/38] ppc: qemu: Drop CONFIG_OF_BOARD_SETUP Bin Meng
2021-02-18 15:57 ` [PATCH v2 24/38] cmd: Fix virtio command dependency Bin Meng
2021-02-22  9:13   ` Priyanka Jain
2021-02-18 15:57 ` [PATCH v2 25/38] ppc: qemu: Enable VirtIO NET support Bin Meng
2021-02-22  9:13   ` Priyanka Jain
2021-02-18 15:57 ` [PATCH v2 26/38] virtio: Fix VirtIO BLK driver dependency Bin Meng
2021-02-20 11:54   ` Simon Glass
2021-02-22  9:13   ` Priyanka Jain
2021-02-18 15:57 ` [PATCH v2 27/38] ppc: qemu: Enable VirtIO BLK support Bin Meng
2021-02-22  9:13   ` Priyanka Jain
2021-02-18 15:57 ` [PATCH v2 28/38] ppc: mpc85xx: Add 'gpibe' register to 'struct ccsr_gpio' Bin Meng
2021-02-22  9:13   ` Priyanka Jain
2021-02-18 15:57 ` [PATCH v2 29/38] gpio: mpc8xxx: Support controller register physical address beyond 32-bit Bin Meng
2021-02-22  9:13   ` Priyanka Jain
2021-02-18 15:57 ` [PATCH v2 30/38] ppc: qemu: Enable GPIO support Bin Meng
2021-02-22  9:13   ` Priyanka Jain
2021-02-18 15:57 ` [PATCH v2 31/38] dm: sysreset: Add a Kconfig option for the 'reset' command Bin Meng
2021-02-20 11:55   ` Simon Glass
2021-02-22  9:15   ` Priyanka Jain
2021-02-18 15:58 ` [PATCH v2 32/38] ppc: qemu: Enable support for power off via GPIO Bin Meng
2021-02-22  9:15   ` Priyanka Jain
2021-02-18 15:58 ` [PATCH v2 33/38] ppc: qemu: Enable RTC support via I2C Bin Meng
2021-02-22  9:15   ` Priyanka Jain
2021-02-18 15:58 ` [PATCH v2 34/38] ppc: qemu: Delete the temporary FDT virtual-physical mapping after U-Boot is relocated Bin Meng
2021-02-22  9:16   ` Priyanka Jain
2021-02-18 15:58 ` [PATCH v2 35/38] ppc: qemu: Drop a custom env variable 'fdt_addr_r' Bin Meng
2021-02-22  9:16   ` Priyanka Jain
2021-02-18 15:58 ` [PATCH v2 36/38] ppc: qemu: Drop fixed_sdram() Bin Meng
2021-02-22  9:16   ` Priyanka Jain
2021-02-18 15:58 ` [PATCH v2 37/38] ppc: qemu: Move board directory from board/freescale to board/emulation Bin Meng
2021-02-22  9:18   ` Priyanka Jain
2021-02-18 15:58 ` [PATCH v2 38/38] doc: Add a reST document for qemu-ppce500 Bin Meng
2021-02-22  9:18   ` Priyanka Jain
2021-02-19  1:29 ` [PATCH v2 00/38] ppc: qemu: Convert qemu-ppce500 to driver model and enable additional driver support Bin Meng
2021-02-19  1:29   ` Bin Meng

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.