All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] [RFC 00/22] Add support for Cavium Octeon-TX CN80XX/CN81XX
@ 2019-02-22 18:02 Tim Harvey
  2019-02-22 18:02 ` [U-Boot] [RFC 01/22] arm: introduce ARCH_THUNDERX Tim Harvey
                   ` (21 more replies)
  0 siblings, 22 replies; 28+ messages in thread
From: Tim Harvey @ 2019-02-22 18:02 UTC (permalink / raw)
  To: u-boot

The Cavium Octeon-TX 64-bit ARM based SoCs include the CN80XX and CN81XX.
These SoC's have peripheral drivers based on PCI ECAM.

This series has been tested on the the following Gateworks SBC's:
 - GW6100 - CN8021 dual A53 800MHz
 - GW6104 - CN8031 quad A53 1500MHz
 - GW6300 - CN8020 dual A53 800MHz
 - GW6304 - CN8030 quad A53 1500MHz

These patches all came originally from Cavium's SDK based on a 2017 version
of U-Boot and have been refactored a bit to strip out things that didn't make
sense that I saw in the original code.

These patches apply on top of U-Boot 2018.11 and if needed I can do minor
cleanup and rebase on top of master but I can't be the maintainer.

I'm also looking for comments on the PCI related patches as I am by far not
a PCI expert and am not sure what I've done here is correct for this SoC and
the others some of the changes would affect.

I'm looking for a maintainer for this - I only have boards with the above SoC's
and can't test anything else. I also don't have the resources to be a
maintainer of this arch - I'm looking at you Cavium/Marvell as your SDK's use
old forks of U-Boot with a slew of patches and there is no reason to not
mainline this code. I've added all the cavium/marvell contacts I could find
from previous threads about OcteonTX support in U-Boot.

The way I'm using this on the above boards is to build u-boot-nodtb.bin
and package it into a FIP image that the ATF loads. I can document this process
if needed.

You can find this series on github [1]

Best Regards,

Tim

[1] https://github.com/Gateworks/uboot-newport/tree/v2018.11-newport-rc1

Tim Harvey (22):
  arm: introduce ARCH_THUNDERX
  arm: add thunderx_81xx
  thunderx: add FDT support
  thunderx: add thunderx register definitions and misc functions
  thunderx: move DRAM prints to debug
  dm: pci: add PCI SR-IOV EA support
  fdt: add fdtdec_get_pci_bus_range
  pci: add thunderx pci/ecam driver
  pci: fix pce enumeration on thunderx
  arm: include 64bit io accessors
  gpio: add thunderx gpio driver
  i2c: add thunderx I2C driver
  spi: add thunderx SPI driver
  xhci: add support for cavium thunderx XHCI
  thunderx_81xx: add support for XHCI
  thunderx_81xx: enable usb mass storage and usb ethernet
  ahci: support 64bit systems
  ahci: set n_ports from host caps
  ahci: add support for ThunderX AHCI
  thunderx_81xx: add AHCI support
  net: add thunderx vnic drivers
  pci: auto probe thunderx NIC devices

 arch/arm/Kconfig                              |    6 +-
 arch/arm/Makefile                             |    1 +
 arch/arm/dts/Makefile                         |    3 +-
 arch/arm/dts/thunderx-81xx.dts                |   36 +
 arch/arm/dts/thunderx-81xx.dtsi               |  440 +++++
 .../arm/include/asm/arch-thunderx}/atf.h      |    2 +-
 .../arm/include/asm/arch-thunderx}/atf_part.h |    0
 arch/arm/include/asm/arch-thunderx/fdt.h      |   12 +
 arch/arm/include/asm/arch-thunderx/thunderx.h |  300 ++++
 .../include/asm/arch-thunderx}/thunderx_svc.h |    0
 .../include/asm/arch-thunderx/thunderx_vnic.h |   15 +
 arch/arm/include/asm/gpio.h                   |    2 +-
 arch/arm/include/asm/io.h                     |    8 +
 arch/arm/mach-thunderx/Makefile               |    2 +
 .../thunderx => arch/arm/mach-thunderx}/atf.c |    6 +-
 arch/arm/mach-thunderx/fdt.c                  |  218 +++
 arch/arm/mach-thunderx/lowlevel_init.S        |   31 +
 arch/arm/mach-thunderx/misc.c                 |   33 +
 arch/x86/cpu/baytrail/cpu.c                   |    3 +-
 board/cavium/thunderx/Kconfig                 |   23 +-
 board/cavium/thunderx/Makefile                |    2 +-
 board/cavium/thunderx/thunderx.c              |   60 +-
 configs/thunderx_81xx_defconfig               |   65 +
 configs/thunderx_88xx_defconfig               |    9 +-
 drivers/ata/ahci.c                            |   46 +-
 drivers/gpio/Kconfig                          |    7 +
 drivers/gpio/Makefile                         |    1 +
 drivers/gpio/thunderx_gpio.c                  |  189 ++
 drivers/i2c/Kconfig                           |    7 +
 drivers/i2c/Makefile                          |    1 +
 drivers/i2c/designware_i2c.c                  |    4 +-
 drivers/i2c/intel_i2c.c                       |    3 +-
 drivers/i2c/thunderx_i2c.c                    |  878 ++++++++++
 drivers/mmc/pci_mmc.c                         |    3 +-
 drivers/net/Kconfig                           |   34 +
 drivers/net/Makefile                          |    1 +
 drivers/net/cavium/Makefile                   |    8 +
 drivers/net/cavium/nic.h                      |  569 ++++++
 drivers/net/cavium/nic_main.c                 |  795 +++++++++
 drivers/net/cavium/nic_reg.h                  |  228 +++
 drivers/net/cavium/nicvf_main.c               |  553 ++++++
 drivers/net/cavium/nicvf_queues.c             | 1123 ++++++++++++
 drivers/net/cavium/nicvf_queues.h             |  364 ++++
 drivers/net/cavium/q_struct.h                 |  692 ++++++++
 drivers/net/cavium/thunder_bgx.c              | 1529 +++++++++++++++++
 drivers/net/cavium/thunder_bgx.h              |  259 +++
 drivers/net/cavium/thunder_xcv.c              |  190 ++
 drivers/net/cavium/thunderx_smi.c             |  388 +++++
 drivers/net/e1000.c                           |    5 +-
 drivers/net/pch_gbe.c                         |    3 +-
 drivers/nvme/nvme.c                           |    3 +-
 drivers/pci/Kconfig                           |    9 +
 drivers/pci/Makefile                          |    1 +
 drivers/pci/pci-uclass.c                      |  316 +++-
 drivers/pci/pci_auto.c                        |   18 +
 drivers/pci/pci_thunderx.c                    |  160 ++
 drivers/spi/Kconfig                           |    6 +
 drivers/spi/Makefile                          |    1 +
 drivers/spi/thunderx_spi.c                    |  448 +++++
 drivers/usb/host/ehci-pci.c                   |    3 +-
 drivers/usb/host/xhci-pci.c                   |   10 +-
 include/ahci.h                                |    3 +
 include/configs/thunderx_81xx.h               |   82 +
 include/fdtdec.h                              |   11 +
 include/pci.h                                 |   58 +-
 include/pci_ids.h                             |   15 +
 lib/fdtdec.c                                  |   13 +
 net/eth_legacy.c                              |    3 +
 68 files changed, 10248 insertions(+), 69 deletions(-)
 create mode 100644 arch/arm/dts/thunderx-81xx.dts
 create mode 100644 arch/arm/dts/thunderx-81xx.dtsi
 rename {include/cavium => arch/arm/include/asm/arch-thunderx}/atf.h (96%)
 rename {include/cavium => arch/arm/include/asm/arch-thunderx}/atf_part.h (100%)
 create mode 100644 arch/arm/include/asm/arch-thunderx/fdt.h
 create mode 100644 arch/arm/include/asm/arch-thunderx/thunderx.h
 rename {include/cavium => arch/arm/include/asm/arch-thunderx}/thunderx_svc.h (100%)
 create mode 100644 arch/arm/include/asm/arch-thunderx/thunderx_vnic.h
 create mode 100644 arch/arm/mach-thunderx/Makefile
 rename {board/cavium/thunderx => arch/arm/mach-thunderx}/atf.c (98%)
 create mode 100644 arch/arm/mach-thunderx/fdt.c
 create mode 100644 arch/arm/mach-thunderx/lowlevel_init.S
 create mode 100644 arch/arm/mach-thunderx/misc.c
 create mode 100644 configs/thunderx_81xx_defconfig
 create mode 100644 drivers/gpio/thunderx_gpio.c
 create mode 100644 drivers/i2c/thunderx_i2c.c
 create mode 100644 drivers/net/cavium/Makefile
 create mode 100644 drivers/net/cavium/nic.h
 create mode 100644 drivers/net/cavium/nic_main.c
 create mode 100644 drivers/net/cavium/nic_reg.h
 create mode 100644 drivers/net/cavium/nicvf_main.c
 create mode 100644 drivers/net/cavium/nicvf_queues.c
 create mode 100644 drivers/net/cavium/nicvf_queues.h
 create mode 100644 drivers/net/cavium/q_struct.h
 create mode 100644 drivers/net/cavium/thunder_bgx.c
 create mode 100644 drivers/net/cavium/thunder_bgx.h
 create mode 100644 drivers/net/cavium/thunder_xcv.c
 create mode 100644 drivers/net/cavium/thunderx_smi.c
 create mode 100644 drivers/pci/pci_thunderx.c
 create mode 100755 drivers/spi/thunderx_spi.c
 create mode 100644 include/configs/thunderx_81xx.h

-- 
2.17.1

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

end of thread, other threads:[~2019-02-24 16:42 UTC | newest]

Thread overview: 28+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-02-22 18:02 [U-Boot] [RFC 00/22] Add support for Cavium Octeon-TX CN80XX/CN81XX Tim Harvey
2019-02-22 18:02 ` [U-Boot] [RFC 01/22] arm: introduce ARCH_THUNDERX Tim Harvey
2019-02-24 16:08   ` Alexander Graf
2019-02-24 16:13   ` Alexander Graf
2019-02-22 18:02 ` [U-Boot] [RFC 02/22] arm: add thunderx_81xx Tim Harvey
2019-02-24 16:35   ` Alexander Graf
2019-02-22 18:03 ` [U-Boot] [RFC 03/22] thunderx: add FDT support Tim Harvey
2019-02-24 16:39   ` Alexander Graf
2019-02-22 18:03 ` [U-Boot] [RFC 04/22] thunderx: add thunderx register definitions and misc functions Tim Harvey
2019-02-24 16:42   ` Alexander Graf
2019-02-22 18:03 ` [U-Boot] [RFC 05/22] thunderx: move DRAM prints to debug Tim Harvey
2019-02-22 18:03 ` [U-Boot] [RFC 06/22] dm: pci: add PCI SR-IOV EA support Tim Harvey
2019-02-22 18:03 ` [U-Boot] [RFC 07/22] fdt: add fdtdec_get_pci_bus_range Tim Harvey
2019-02-22 18:03 ` [U-Boot] [RFC 08/22] pci: add thunderx pci/ecam driver Tim Harvey
2019-02-22 18:03 ` [U-Boot] [RFC 09/22] pci: fix pce enumeration on thunderx Tim Harvey
2019-02-22 18:03 ` [U-Boot] [RFC 10/22] arm: include 64bit io accessors Tim Harvey
2019-02-22 18:03 ` [U-Boot] [RFC 11/22] gpio: add thunderx gpio driver Tim Harvey
2019-02-22 18:03 ` [U-Boot] [RFC 12/22] i2c: add thunderx I2C driver Tim Harvey
2019-02-22 18:03 ` [U-Boot] [RFC 13/22] spi: add thunderx SPI driver Tim Harvey
2019-02-22 18:03 ` [U-Boot] [RFC 14/22] xhci: add support for cavium thunderx XHCI Tim Harvey
2019-02-22 18:03 ` [U-Boot] [RFC 15/22] thunderx_81xx: add support for XHCI Tim Harvey
2019-02-22 18:03 ` [U-Boot] [RFC 16/22] thunderx_81xx: enable usb mass storage and usb ethernet Tim Harvey
2019-02-22 18:03 ` [U-Boot] [RFC 17/22] ahci: support 64bit systems Tim Harvey
2019-02-22 18:03 ` [U-Boot] [RFC 18/22] ahci: set n_ports from host caps Tim Harvey
2019-02-22 18:03 ` [U-Boot] [RFC 19/22] ahci: add support for ThunderX AHCI Tim Harvey
2019-02-22 18:03 ` [U-Boot] [RFC 20/22] thunderx_81xx: add AHCI support Tim Harvey
2019-02-22 18:03 ` [U-Boot] [RFC 21/22] net: add thunderx vnic drivers Tim Harvey
2019-02-22 18:03 ` [U-Boot] [RFC 22/22] pci: auto probe thunderx NIC devices Tim Harvey

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.