* [PATCH v2 00/38] ppc: qemu: Convert qemu-ppce500 to driver model and enable additional driver support
@ 2021-02-18 15:57 Bin Meng
2021-02-19 1:29 ` Bin Meng
0 siblings, 1 reply; 2+ 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] 2+ messages in thread
* Re: [PATCH v2 00/38] ppc: qemu: Convert qemu-ppce500 to driver model and enable additional driver support
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-19 1:29 ` Bin Meng
0 siblings, 0 replies; 2+ messages in thread
From: Bin Meng @ 2021-02-19 1:29 UTC (permalink / raw)
To: Simon Glass, Alexander Graf, Priyanka Jain
Cc: Tom Rini, Matthias Brugger, qemu-devel@nongnu.org Developers,
U-Boot Mailing List, qemu-ppc, Heiko Schocher, Marek Szyprowski
On Thu, Feb 18, 2021 at 11:58 PM Bin Meng <bmeng.cn@gmail.com> wrote:
>
> 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
>
Azure results: PASS
https://dev.azure.com/bmeng/GitHub/_build/results?buildId=324&view=results
Regards,
Bin
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2021-02-19 1:31 UTC | newest]
Thread overview: 2+ 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-19 1:29 ` Bin Meng
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).