HomeFreeBSD

[versatilepb] Convert VERSATILEPB kernel to INTRNG and switch to upstream DTB

Description

[versatilepb] Convert VERSATILEPB kernel to INTRNG and switch to upstream DTB

Scope of this change is somewhat larger than just converting to INTRNG.
The reason for this is that INTRNG support required switching from custom
to upstream DTS because custom DTS didn't have interrup routing information.
This switch caused rewrite of PCI and CLCD drivers and adding SCM module.
List of changes in this commit:

  • Enable INTRNG and switch to versatile-pb.dts
  • Add SCM driver that controls various peripheral devices like LCD or PCI controller. Previously registers required for power-up and configuring peripherals were part of their respective nodes. Upstream DTS has dedicated node for SCM
  • Convert PL190 driver to INTRNG
  • Convert Versatile SIC (secondary interrupt controller) to INTRNG
  • Refactor CLCD driver to use SCM API to power up and configuration
  • Refactor PCI driver to use SCM API to enable controller
  • Refactor PCI driver to use interrupt map provided in DTS for interrupt routing. As a result it fixes broken IRQ routing and it's no longer required to run QEMU with "-global versatile_pci.broken-irq-mapping=1" command-line arguments

Details

Provenance
gonzoAuthored on
Parents
rS316369: MFC r310146,r311912,r312369,r312617,r312614,r312659,r312974,r312977,r313005…
Branches
Unknown
Tags
Unknown