mbox series

[v4,00/14] arm64: synquacer: Add SynQuacer/DeveloperBox support

Message ID 162140306116.47256.6799058439792039400.stgit@localhost
Headers show
Series arm64: synquacer: Add SynQuacer/DeveloperBox support | expand

Message

Masami Hiramatsu May 19, 2021, 5:44 a.m. UTC
Hi,

Here is the 4th version of the series (including some fixes for build
errors) to add SynQuacer/DeveloperBox 96board EE suport on U-Boot.

This series includes not only DeveloperBox support but also some fixes
for the issues which I faced while porting U-Boot on the DeveloperBox.
First 3 patches are fixes, next 1 patch is a code cleanup for generic
gpio for arm. The next 7 patches adding DeveloperBox devices
and board support. The last 3 patches are related to the UEFI capsule
update (including bugfixes).

Previous version is here:

 https://lists.denx.de/pipermail/u-boot/2021-May/449305.html


Changes in v4
-------------

I dropped a PCI bugfix because it has been merged. And add I2C driver
and enable RTC and EBBR support on the configuration.

[06/14]:
      - Add Jaehoon's reviewed-by (Thanks!)
[09/14]:
      - Add a new i2c driver.
[10/14]:
      - Add i2c0 and RTC node.
[11/14]:
      - Add I2C and RTC configuration.
      - Enable RTC and Date command.
      - Remove I2C0 node before booting linux to hide it same as EDK2 does.
      - Add some configurations to make it EBBR compliant.
[14/14]:
      - Add some config options for EBBR.


BTW, should I split fixes from this series? (since I didn't expect this took
so long...)


DeveloperBox
============

DeveloperBox is a certified 96boards Enterprise Edition board. The board/SoC has: -
* Socionext SC2A11 24-cores ARM Cortex-A53 on tbe Mini-ATX form factor motherboard
* 4 DIMM slots (4GB DDR4-2400 UDIMM shipped by default)
* 1 4xPCIe Gen2 slot and 2 1xPCIe Gen2 slots
  (1x slots are connected via PCIe bridge chip)
* 4 USB-3.0 ports
* 2 SATA ports
* 1 GbE network port
* 1 USB-UART serial port (micro USB)
* 64MB SPI NOR Flash
* 8GB eMMC Flash Storage
* 96boards LS connector

The DeveloperBox schematic can be found here: -
https://www.96boards.org/documentation/enterprise/developerbox/hardware-docs/mzsc2am_v03_20180115_a.pdf

And the other documents can be found here: -
https://www.96boards.org/documentation/enterprise/developerbox/


Currently, the U-Boot port supports: -
* USB
* eMMC
* SPI-NOR
* SATA
* GbE

The DeveloperBox boots the TF-A and EDK2 as a main bootloader by default.
The DeveloperBox U-Boot port will replace the EDK2 and boot from TF-A as
BL33, but no need to combine with it.


Thank you,

---

Jassi Brar (4):
      mmc: synquacer: Add SynQuacer F_SDH30 SDHCI driver
      spi: synquacer: Add HSSPI SPI controller driver for SynQuacer
      net: synquacer: Add netsec driver
      i2c: synquacer: SNI Synquacer I2C controller

Masami Hiramatsu (10):
      ata: ahci-pci: Use scsi_ops to initialize ops
      dm: pci: Skip setting VGA bridge bits if parent device is the host bus
      efi: Fix to use null handle to create new handle for efi_fmp_raw
      gpio: Introduce CONFIG_GPIO_EXTRA_HEADER to cleanup #ifdefs
      pci: synquacer: Add SynQuacer ECAM based PCIe driver
      ARM: dts: synquacer: Add device trees for DeveloperBox
      board: synquacer: Add DeveloperBox 96boards EE support
      dfu_mtd: Ignore non-implemented lock device failure
      doc: qemu: arm64: Fix the documentation of capsule update
      configs: synquacer: Enable EFI capsule update support


 arch/arm/Kconfig                                   |  108 ++
 arch/arm/dts/Makefile                              |    2 
 arch/arm/dts/synquacer-sc2a11-caches.dtsi          |   73 +
 .../dts/synquacer-sc2a11-developerbox-u-boot.dtsi  |   75 +
 arch/arm/dts/synquacer-sc2a11-developerbox.dts     |   56 +
 arch/arm/dts/synquacer-sc2a11.dtsi                 |  595 ++++++++++
 arch/arm/include/asm/gpio.h                        |    8 
 board/socionext/developerbox/Kconfig               |   36 +
 board/socionext/developerbox/MAINTAINERS           |   14 
 board/socionext/developerbox/Makefile              |    9 
 board/socionext/developerbox/developerbox.c        |  146 +++
 configs/synquacer_developerbox_defconfig           |  131 ++
 doc/board/emulation/qemu_capsule_update.rst        |   11 
 doc/board/index.rst                                |    1 
 doc/board/socionext/developerbox.rst               |   87 ++
 doc/board/socionext/index.rst                      |    9 
 drivers/ata/ahci-pci.c                             |    2 
 drivers/dfu/dfu_mtd.c                              |    2 
 drivers/i2c/Kconfig                                |    7 
 drivers/i2c/Makefile                               |    1 
 drivers/i2c/synquacer_i2c.c                        |  338 ++++++
 drivers/mmc/Kconfig                                |   10 
 drivers/mmc/Makefile                               |    1 
 drivers/mmc/f_sdh30.c                              |   81 +
 drivers/net/Kconfig                                |    8 
 drivers/net/Makefile                               |    1 
 drivers/net/sni_netsec.c                           | 1134 ++++++++++++++++++++
 drivers/pci/Kconfig                                |   12 
 drivers/pci/Makefile                               |    1 
 drivers/pci/pci-uclass.c                           |    3 
 drivers/pci/pcie_ecam_synquacer.c                  |  600 +++++++++++
 drivers/spi/Kconfig                                |    8 
 drivers/spi/Makefile                               |    1 
 drivers/spi/spi-synquacer.c                        |  491 +++++++++
 include/configs/synquacer.h                        |  115 ++
 lib/efi_loader/efi_capsule.c                       |    2 
 36 files changed, 4162 insertions(+), 17 deletions(-)
 create mode 100644 arch/arm/dts/synquacer-sc2a11-caches.dtsi
 create mode 100644 arch/arm/dts/synquacer-sc2a11-developerbox-u-boot.dtsi
 create mode 100644 arch/arm/dts/synquacer-sc2a11-developerbox.dts
 create mode 100644 arch/arm/dts/synquacer-sc2a11.dtsi
 create mode 100644 board/socionext/developerbox/Kconfig
 create mode 100644 board/socionext/developerbox/MAINTAINERS
 create mode 100644 board/socionext/developerbox/Makefile
 create mode 100644 board/socionext/developerbox/developerbox.c
 create mode 100644 configs/synquacer_developerbox_defconfig
 create mode 100644 doc/board/socionext/developerbox.rst
 create mode 100644 doc/board/socionext/index.rst
 create mode 100644 drivers/i2c/synquacer_i2c.c
 create mode 100644 drivers/mmc/f_sdh30.c
 create mode 100644 drivers/net/sni_netsec.c
 create mode 100644 drivers/pci/pcie_ecam_synquacer.c
 create mode 100644 drivers/spi/spi-synquacer.c
 create mode 100644 include/configs/synquacer.h

--
Masami Hiramatsu <masami.hiramatsu@linaro.org>

Comments

Ilias Apalodimas May 23, 2021, 8:07 a.m. UTC | #1
Hi Masami,

On Wed, May 19, 2021 at 02:44:21PM +0900, Masami Hiramatsu wrote:
> Hi,

> 

> Here is the 4th version of the series (including some fixes for build

> errors) to add SynQuacer/DeveloperBox 96board EE suport on U-Boot.

> 

> This series includes not only DeveloperBox support but also some fixes

> for the issues which I faced while porting U-Boot on the DeveloperBox.

> First 3 patches are fixes, next 1 patch is a code cleanup for generic

> gpio for arm. The next 7 patches adding DeveloperBox devices

> and board support. The last 3 patches are related to the UEFI capsule

> update (including bugfixes).

> 

> Previous version is here:

> 

>  https://lists.denx.de/pipermail/u-boot/2021-May/449305.html

> 

> 


The default debug level is set to 7.  I think it would be better to set it
to something more reasonable for the final commit.  Unfortunately I don't
have time for a more detailed review, but I did manage to run this on my
Synquacer and managed to run a full linux distro with EFI.

Tested-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>


> Changes in v4

> -------------

> 

> I dropped a PCI bugfix because it has been merged. And add I2C driver

> and enable RTC and EBBR support on the configuration.

> 

> [06/14]:

>       - Add Jaehoon's reviewed-by (Thanks!)

> [09/14]:

>       - Add a new i2c driver.

> [10/14]:

>       - Add i2c0 and RTC node.

> [11/14]:

>       - Add I2C and RTC configuration.

>       - Enable RTC and Date command.

>       - Remove I2C0 node before booting linux to hide it same as EDK2 does.

>       - Add some configurations to make it EBBR compliant.

> [14/14]:

>       - Add some config options for EBBR.

> 

> 

> BTW, should I split fixes from this series? (since I didn't expect this took

> so long...)

> 

> 

> DeveloperBox

> ============

> 

> DeveloperBox is a certified 96boards Enterprise Edition board. The board/SoC has: -

> * Socionext SC2A11 24-cores ARM Cortex-A53 on tbe Mini-ATX form factor motherboard

> * 4 DIMM slots (4GB DDR4-2400 UDIMM shipped by default)

> * 1 4xPCIe Gen2 slot and 2 1xPCIe Gen2 slots

>   (1x slots are connected via PCIe bridge chip)

> * 4 USB-3.0 ports

> * 2 SATA ports

> * 1 GbE network port

> * 1 USB-UART serial port (micro USB)

> * 64MB SPI NOR Flash

> * 8GB eMMC Flash Storage

> * 96boards LS connector

> 

> The DeveloperBox schematic can be found here: -

> https://www.96boards.org/documentation/enterprise/developerbox/hardware-docs/mzsc2am_v03_20180115_a.pdf

> 

> And the other documents can be found here: -

> https://www.96boards.org/documentation/enterprise/developerbox/

> 

> 

> Currently, the U-Boot port supports: -

> * USB

> * eMMC

> * SPI-NOR

> * SATA

> * GbE

> 

> The DeveloperBox boots the TF-A and EDK2 as a main bootloader by default.

> The DeveloperBox U-Boot port will replace the EDK2 and boot from TF-A as

> BL33, but no need to combine with it.

> 

> 

> Thank you,

> 

> ---

> 

> Jassi Brar (4):

>       mmc: synquacer: Add SynQuacer F_SDH30 SDHCI driver

>       spi: synquacer: Add HSSPI SPI controller driver for SynQuacer

>       net: synquacer: Add netsec driver

>       i2c: synquacer: SNI Synquacer I2C controller

> 

> Masami Hiramatsu (10):

>       ata: ahci-pci: Use scsi_ops to initialize ops

>       dm: pci: Skip setting VGA bridge bits if parent device is the host bus

>       efi: Fix to use null handle to create new handle for efi_fmp_raw

>       gpio: Introduce CONFIG_GPIO_EXTRA_HEADER to cleanup #ifdefs

>       pci: synquacer: Add SynQuacer ECAM based PCIe driver

>       ARM: dts: synquacer: Add device trees for DeveloperBox

>       board: synquacer: Add DeveloperBox 96boards EE support

>       dfu_mtd: Ignore non-implemented lock device failure

>       doc: qemu: arm64: Fix the documentation of capsule update

>       configs: synquacer: Enable EFI capsule update support

> 

> 

>  arch/arm/Kconfig                                   |  108 ++

>  arch/arm/dts/Makefile                              |    2 

>  arch/arm/dts/synquacer-sc2a11-caches.dtsi          |   73 +

>  .../dts/synquacer-sc2a11-developerbox-u-boot.dtsi  |   75 +

>  arch/arm/dts/synquacer-sc2a11-developerbox.dts     |   56 +

>  arch/arm/dts/synquacer-sc2a11.dtsi                 |  595 ++++++++++

>  arch/arm/include/asm/gpio.h                        |    8 

>  board/socionext/developerbox/Kconfig               |   36 +

>  board/socionext/developerbox/MAINTAINERS           |   14 

>  board/socionext/developerbox/Makefile              |    9 

>  board/socionext/developerbox/developerbox.c        |  146 +++

>  configs/synquacer_developerbox_defconfig           |  131 ++

>  doc/board/emulation/qemu_capsule_update.rst        |   11 

>  doc/board/index.rst                                |    1 

>  doc/board/socionext/developerbox.rst               |   87 ++

>  doc/board/socionext/index.rst                      |    9 

>  drivers/ata/ahci-pci.c                             |    2 

>  drivers/dfu/dfu_mtd.c                              |    2 

>  drivers/i2c/Kconfig                                |    7 

>  drivers/i2c/Makefile                               |    1 

>  drivers/i2c/synquacer_i2c.c                        |  338 ++++++

>  drivers/mmc/Kconfig                                |   10 

>  drivers/mmc/Makefile                               |    1 

>  drivers/mmc/f_sdh30.c                              |   81 +

>  drivers/net/Kconfig                                |    8 

>  drivers/net/Makefile                               |    1 

>  drivers/net/sni_netsec.c                           | 1134 ++++++++++++++++++++

>  drivers/pci/Kconfig                                |   12 

>  drivers/pci/Makefile                               |    1 

>  drivers/pci/pci-uclass.c                           |    3 

>  drivers/pci/pcie_ecam_synquacer.c                  |  600 +++++++++++

>  drivers/spi/Kconfig                                |    8 

>  drivers/spi/Makefile                               |    1 

>  drivers/spi/spi-synquacer.c                        |  491 +++++++++

>  include/configs/synquacer.h                        |  115 ++

>  lib/efi_loader/efi_capsule.c                       |    2 

>  36 files changed, 4162 insertions(+), 17 deletions(-)

>  create mode 100644 arch/arm/dts/synquacer-sc2a11-caches.dtsi

>  create mode 100644 arch/arm/dts/synquacer-sc2a11-developerbox-u-boot.dtsi

>  create mode 100644 arch/arm/dts/synquacer-sc2a11-developerbox.dts

>  create mode 100644 arch/arm/dts/synquacer-sc2a11.dtsi

>  create mode 100644 board/socionext/developerbox/Kconfig

>  create mode 100644 board/socionext/developerbox/MAINTAINERS

>  create mode 100644 board/socionext/developerbox/Makefile

>  create mode 100644 board/socionext/developerbox/developerbox.c

>  create mode 100644 configs/synquacer_developerbox_defconfig

>  create mode 100644 doc/board/socionext/developerbox.rst

>  create mode 100644 doc/board/socionext/index.rst

>  create mode 100644 drivers/i2c/synquacer_i2c.c

>  create mode 100644 drivers/mmc/f_sdh30.c

>  create mode 100644 drivers/net/sni_netsec.c

>  create mode 100644 drivers/pci/pcie_ecam_synquacer.c

>  create mode 100644 drivers/spi/spi-synquacer.c

>  create mode 100644 include/configs/synquacer.h

> 

> --

> Masami Hiramatsu <masami.hiramatsu@linaro.org>
Masami Hiramatsu May 24, 2021, 12:54 a.m. UTC | #2
Hello Ilias,

2021年5月23日(日) 17:07 Ilias Apalodimas <ilias.apalodimas@linaro.org>:

>

> Hi Masami,

>

> On Wed, May 19, 2021 at 02:44:21PM +0900, Masami Hiramatsu wrote:

> > Hi,

> >

> > Here is the 4th version of the series (including some fixes for build

> > errors) to add SynQuacer/DeveloperBox 96board EE suport on U-Boot.

> >

> > This series includes not only DeveloperBox support but also some fixes

> > for the issues which I faced while porting U-Boot on the DeveloperBox.

> > First 3 patches are fixes, next 1 patch is a code cleanup for generic

> > gpio for arm. The next 7 patches adding DeveloperBox devices

> > and board support. The last 3 patches are related to the UEFI capsule

> > update (including bugfixes).

> >

> > Previous version is here:

> >

> >  https://lists.denx.de/pipermail/u-boot/2021-May/449305.html

> >

> >

>

> The default debug level is set to 7.  I think it would be better to set it

> to something more reasonable for the final commit.


Yes, it was for the development value. It should be removed from
defconfig at last, because it depends on the builder's choice.

>  Unfortunately I don't

> have time for a more detailed review, but I did manage to run this on my

> Synquacer and managed to run a full linux distro with EFI.

>

> Tested-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>


Thanks for testing!

Thank you,

>

> > Changes in v4

> > -------------

> >

> > I dropped a PCI bugfix because it has been merged. And add I2C driver

> > and enable RTC and EBBR support on the configuration.

> >

> > [06/14]:

> >       - Add Jaehoon's reviewed-by (Thanks!)

> > [09/14]:

> >       - Add a new i2c driver.

> > [10/14]:

> >       - Add i2c0 and RTC node.

> > [11/14]:

> >       - Add I2C and RTC configuration.

> >       - Enable RTC and Date command.

> >       - Remove I2C0 node before booting linux to hide it same as EDK2 does.

> >       - Add some configurations to make it EBBR compliant.

> > [14/14]:

> >       - Add some config options for EBBR.

> >

> >

> > BTW, should I split fixes from this series? (since I didn't expect this took

> > so long...)

> >

> >

> > DeveloperBox

> > ============

> >

> > DeveloperBox is a certified 96boards Enterprise Edition board. The board/SoC has: -

> > * Socionext SC2A11 24-cores ARM Cortex-A53 on tbe Mini-ATX form factor motherboard

> > * 4 DIMM slots (4GB DDR4-2400 UDIMM shipped by default)

> > * 1 4xPCIe Gen2 slot and 2 1xPCIe Gen2 slots

> >   (1x slots are connected via PCIe bridge chip)

> > * 4 USB-3.0 ports

> > * 2 SATA ports

> > * 1 GbE network port

> > * 1 USB-UART serial port (micro USB)

> > * 64MB SPI NOR Flash

> > * 8GB eMMC Flash Storage

> > * 96boards LS connector

> >

> > The DeveloperBox schematic can be found here: -

> > https://www.96boards.org/documentation/enterprise/developerbox/hardware-docs/mzsc2am_v03_20180115_a.pdf

> >

> > And the other documents can be found here: -

> > https://www.96boards.org/documentation/enterprise/developerbox/

> >

> >

> > Currently, the U-Boot port supports: -

> > * USB

> > * eMMC

> > * SPI-NOR

> > * SATA

> > * GbE

> >

> > The DeveloperBox boots the TF-A and EDK2 as a main bootloader by default.

> > The DeveloperBox U-Boot port will replace the EDK2 and boot from TF-A as

> > BL33, but no need to combine with it.

> >

> >

> > Thank you,

> >

> > ---

> >

> > Jassi Brar (4):

> >       mmc: synquacer: Add SynQuacer F_SDH30 SDHCI driver

> >       spi: synquacer: Add HSSPI SPI controller driver for SynQuacer

> >       net: synquacer: Add netsec driver

> >       i2c: synquacer: SNI Synquacer I2C controller

> >

> > Masami Hiramatsu (10):

> >       ata: ahci-pci: Use scsi_ops to initialize ops

> >       dm: pci: Skip setting VGA bridge bits if parent device is the host bus

> >       efi: Fix to use null handle to create new handle for efi_fmp_raw

> >       gpio: Introduce CONFIG_GPIO_EXTRA_HEADER to cleanup #ifdefs

> >       pci: synquacer: Add SynQuacer ECAM based PCIe driver

> >       ARM: dts: synquacer: Add device trees for DeveloperBox

> >       board: synquacer: Add DeveloperBox 96boards EE support

> >       dfu_mtd: Ignore non-implemented lock device failure

> >       doc: qemu: arm64: Fix the documentation of capsule update

> >       configs: synquacer: Enable EFI capsule update support

> >

> >

> >  arch/arm/Kconfig                                   |  108 ++

> >  arch/arm/dts/Makefile                              |    2

> >  arch/arm/dts/synquacer-sc2a11-caches.dtsi          |   73 +

> >  .../dts/synquacer-sc2a11-developerbox-u-boot.dtsi  |   75 +

> >  arch/arm/dts/synquacer-sc2a11-developerbox.dts     |   56 +

> >  arch/arm/dts/synquacer-sc2a11.dtsi                 |  595 ++++++++++

> >  arch/arm/include/asm/gpio.h                        |    8

> >  board/socionext/developerbox/Kconfig               |   36 +

> >  board/socionext/developerbox/MAINTAINERS           |   14

> >  board/socionext/developerbox/Makefile              |    9

> >  board/socionext/developerbox/developerbox.c        |  146 +++

> >  configs/synquacer_developerbox_defconfig           |  131 ++

> >  doc/board/emulation/qemu_capsule_update.rst        |   11

> >  doc/board/index.rst                                |    1

> >  doc/board/socionext/developerbox.rst               |   87 ++

> >  doc/board/socionext/index.rst                      |    9

> >  drivers/ata/ahci-pci.c                             |    2

> >  drivers/dfu/dfu_mtd.c                              |    2

> >  drivers/i2c/Kconfig                                |    7

> >  drivers/i2c/Makefile                               |    1

> >  drivers/i2c/synquacer_i2c.c                        |  338 ++++++

> >  drivers/mmc/Kconfig                                |   10

> >  drivers/mmc/Makefile                               |    1

> >  drivers/mmc/f_sdh30.c                              |   81 +

> >  drivers/net/Kconfig                                |    8

> >  drivers/net/Makefile                               |    1

> >  drivers/net/sni_netsec.c                           | 1134 ++++++++++++++++++++

> >  drivers/pci/Kconfig                                |   12

> >  drivers/pci/Makefile                               |    1

> >  drivers/pci/pci-uclass.c                           |    3

> >  drivers/pci/pcie_ecam_synquacer.c                  |  600 +++++++++++

> >  drivers/spi/Kconfig                                |    8

> >  drivers/spi/Makefile                               |    1

> >  drivers/spi/spi-synquacer.c                        |  491 +++++++++

> >  include/configs/synquacer.h                        |  115 ++

> >  lib/efi_loader/efi_capsule.c                       |    2

> >  36 files changed, 4162 insertions(+), 17 deletions(-)

> >  create mode 100644 arch/arm/dts/synquacer-sc2a11-caches.dtsi

> >  create mode 100644 arch/arm/dts/synquacer-sc2a11-developerbox-u-boot.dtsi

> >  create mode 100644 arch/arm/dts/synquacer-sc2a11-developerbox.dts

> >  create mode 100644 arch/arm/dts/synquacer-sc2a11.dtsi

> >  create mode 100644 board/socionext/developerbox/Kconfig

> >  create mode 100644 board/socionext/developerbox/MAINTAINERS

> >  create mode 100644 board/socionext/developerbox/Makefile

> >  create mode 100644 board/socionext/developerbox/developerbox.c

> >  create mode 100644 configs/synquacer_developerbox_defconfig

> >  create mode 100644 doc/board/socionext/developerbox.rst

> >  create mode 100644 doc/board/socionext/index.rst

> >  create mode 100644 drivers/i2c/synquacer_i2c.c

> >  create mode 100644 drivers/mmc/f_sdh30.c

> >  create mode 100644 drivers/net/sni_netsec.c

> >  create mode 100644 drivers/pci/pcie_ecam_synquacer.c

> >  create mode 100644 drivers/spi/spi-synquacer.c

> >  create mode 100644 include/configs/synquacer.h

> >

> > --

> > Masami Hiramatsu <masami.hiramatsu@linaro.org>




--
Masami Hiramatsu