[U-Boot] [PATCH v4 0/20] Add Marvell Armada XP MV78460 SoC support

Stefan Roese sr at denx.de
Wed Oct 22 12:13:04 CEST 2014


This patch series adds support for the Marvell Armada XP SoC's. Specifically
the MV78460.

Basic support for the db-78460-bp evaluation board is added. Supporting the
following interfaces:
- UART
- SPI (including SPI NOR flash)
- I2C
- Ethernet (neta)

While doing this port, I tried to consolidate common Marvell code into
the arch/arm/mvebu-common directory. This directory should be used to
collect more common code for the MVEBU SoC's (Dove, Kirkwood, Armada 370,
Armada 380, Armada XP). I started with Kirkwood and some of its
interfaces. Dove is definitely a candidate to move some of its code
into thise directory as well.

Because of the renaming of some functions from kirkwood to mvebu (to make
them better usable on other MVEBU SoCs), this patch series not only
touches the ARM SoC specific files (in arch/arm/...). But also some
device drivers (e.g. SPI, I2C). Separating these driver specific patches
into different patches that are not depending on this ARM patch series
seems hard if not impossible. Thats why I would really like to get this
patch series to get  applied completely be one custodian. Not sure if
this could / should go through Tom directly? Only if all the subsystem
custodians have given their "Acked-by ..." of course.

Testing on Kirkwood based boards would be greatly appreciated. So anyone with
access to some of those board, please give this patch series a try. I really
hope that I didn't break anything while merging some of the code into the
common mvebu directory.

Please note that this Armada XP port still requires the "Binary Header"
(bin_hdr) from the Marvell U-Boot tree to be included as a binary blob
into the resulting image (u-boot.kwb) that can be booted by the MVEBU
BootROM. This binary bin_hdr is usually responsible for the DDR3
controller configuration and the DDR3 training. One way to extract this
bin_hdr binary from an existing Marvell boot image right now is to use
the "kwbimage" tool from Barebox. Please refer to the documentation
thats available there for more details.

v4 status:
Some SPI patches are now in mainline pulled by Jagan. Some others are
still pending. But this is because of their dependancy on other platform
files. As its mostly remaning stuff (kirkwood -> mvebu) to make things
more generic.

Tom, how do you feel about this patch series? Its been abround for quite
some time now. And I would really like to see it applied to mainline.
Prafulla has acked all Kirkwood related patches. Heiko the I2C patch.
Jagan the I2C stuff. If you feel its okay, then please pull the
complete patch-series directly.

Or should I prepare a git branch for you to pull from?

Thanks,
Stefan

Changes in v4:
- Unused SDRAM windows are now disabled in update_sdram_window_sizes()

Changes in v3:
- Added Acked-by from Prafulla to all Kirkwood patches
- Added Tested-by from Luka
- Added Acked-by from Prafulla to all Kirkwood patches
- Added Tested-by from Luka
- Added newly introduced driver drivers/mmc/mvebu_mmc.c
- Added Acked-by from Prafulla to all Kirkwood patches
- Added Tested-by from Luka
- Added Reviewed-by from Jagannadha
- Added Acked-by from Prafulla to all Kirkwood patches
- Added Tested-by from Luka
- Added Tested-by from Luka
- Added Acked-by from Prafulla to all Kirkwood patches
- Added Tested-by from Luka
- Added Reviewed-by from Jagannadha
- Added Acked-by from Prafulla to all Kirkwood patches
- Added Tested-by from Luka
- Added Acked-by from Prafulla to all Kirkwood patches
- Added Tested-by from Luka
- Added Reviewed-by from Jagannadha
- Added Acked-by from Prafulla to all Kirkwood patches
- Added Tested-by from Luka
- Added Tested-by from Luka
- Added Tested-by from Luka
- Added Acked-by from Heiko
- Added Tested-by from Luka
- Added Tested-by from Luka
- Rebased on current top-of-tree (git ID a1263632)
- Rebased on current top-of-tree (git ID a1263632)

Changes in v2:
- Fixed issue in mbus_dt_setup_win() to also assign remappable windows
- Made mbus_dt_setup_win() non-static, so that it can be called from
  other files for board specific mbus window configuration
- Renamed target from db-78460-bp to db-mv784mp-gp as this matches
  the real eval board name
- Added optional '-a' parameter to use the timings for Armada XP, as they
  are incompatibel with the currently used ones for Kirkwood (etc).
- Rebased on latest U-Boot version already including the Kconfig
  support switch.
- Removed patch "[PATCH v1 21/25] arm: kirkwood: Use mvebu new common mbus API"
  as this breaks Kirkwood booting. This needs to be resolved at some time,
  but I don't have access to a Kirkwood based board with JTAG BDI access to
  debug it right now. Till somebody fixes this issue, lets just remove
  it from this series for now.
- Added basic support for the maxBCM MV78460 based board

Stefan Roese (20):
  arm: kirkwood: Move some SoC files into new arch/arm/mvebu-common
  arm: marvell: Move arch/kirkwood.h to arch/soc.h
  arm: marvell: Move arch-kirkwood/spi.h to arch-mvebu/spi.h
  arm: marvell: Rework timer.c to make it usable for other MVEBU
    platforms
  arm: mvebu: Add common mbus functions to use on Marvell SoCs
  spi: kirkwood_spi.c: Compile MPP (pin-mux) only for kirkwood SoC's
  arm: marvell: Extract kirkwood gpio functions into new common file
    gpio.c
  spi: kirkwood_spi.c: Change KW_SPI_BASE to MVEBU_SPI_BASE
  arm: kirkwood: Change naming of dram functions from km_foo() to
    mvebu_foo()
  net: mvneta.c: Add support for the ethernet controller of the Marvell
    Armada XP SoC
  net: phy.h: Make PHY autonegotiation timeout configurable
  i2c: mvtwsi: Add support for Marvell Armada XP
  arm: armada-xp: Add basic support for Marvell Armada XP SoC
  arm: armada-xp: Add basic support for the Marvell DB-MV784MP-GP board
  arm: armada-xp: Add basic support for the maxBCM board
  arm: kirkwood: Remove some dead code from cpu.c
  tools/kwboot: Sync with latest barebox version to support Armada XP
  tools: Compile kwboot for Marvell Armada XP as those SoCs are now
    supported
  tools: kwbimage: Add image version 1 support for Armada XP / 370
  Makefile: Add CONFIG_BUILD_TARGET to automatically build an special
    image

 Makefile                                           |    9 +
 README                                             |    8 +
 arch/arm/Kconfig                                   |    8 +
 arch/arm/cpu/arm926ejs/kirkwood/Makefile           |    4 +-
 arch/arm/cpu/arm926ejs/kirkwood/cpu.c              |   74 +-
 arch/arm/cpu/arm926ejs/kirkwood/mpp.c              |    2 +-
 arch/arm/cpu/armv7/armada-xp/Makefile              |    7 +
 arch/arm/cpu/armv7/armada-xp/cpu.c                 |  193 +++
 arch/arm/include/asm/arch-armada-xp/config.h       |   82 +
 arch/arm/include/asm/arch-armada-xp/cpu.h          |  107 ++
 arch/arm/include/asm/arch-armada-xp/soc.h          |   57 +
 arch/arm/include/asm/arch-kirkwood/config.h        |    2 +-
 arch/arm/include/asm/arch-kirkwood/cpu.h           |    8 +-
 arch/arm/include/asm/arch-kirkwood/gpio.h          |   16 +-
 .../asm/arch-kirkwood/{kirkwood.h => soc.h}        |    9 +-
 .../asm/{arch-kirkwood => arch-mvebu}/spi.h        |    0
 arch/arm/mvebu-common/Makefile                     |   12 +
 .../arm926ejs/kirkwood => mvebu-common}/dram.c     |   63 +-
 arch/arm/mvebu-common/gpio.c                       |   30 +
 arch/arm/mvebu-common/mbus.c                       |  471 ++++++
 .../arm926ejs/kirkwood => mvebu-common}/timer.c    |   92 +-
 board/LaCie/net2big_v2/net2big_v2.c                |    8 +-
 board/LaCie/netspace_v2/netspace_v2.c              |    8 +-
 board/LaCie/wireless_space/wireless_space.c        |    8 +-
 board/Marvell/db-mv784mp-gp/Kconfig                |   23 +
 board/Marvell/db-mv784mp-gp/MAINTAINERS            |    6 +
 board/Marvell/db-mv784mp-gp/Makefile               |    7 +
 board/Marvell/db-mv784mp-gp/db-mv784mp-gp.c        |  120 ++
 board/Marvell/db-mv784mp-gp/kwbimage.cfg           |   12 +
 board/Marvell/dreamplug/dreamplug.c                |   10 +-
 board/Marvell/guruplug/guruplug.c                  |   10 +-
 board/Marvell/mv88f6281gtw_ge/mv88f6281gtw_ge.c    |   10 +-
 board/Marvell/openrd/openrd.c                      |   10 +-
 board/Marvell/rd6281a/rd6281a.c                    |   10 +-
 board/Marvell/sheevaplug/sheevaplug.c              |   10 +-
 board/Seagate/dockstar/dockstar.c                  |   12 +-
 board/Seagate/goflexhome/goflexhome.c              |   12 +-
 board/buffalo/lsxl/lsxl.c                          |   10 +-
 board/cloudengines/pogo_e02/pogo_e02.c             |   10 +-
 board/d-link/dns325/dns325.c                       |    8 +-
 board/iomega/iconnect/iconnect.c                   |   10 +-
 board/karo/tk71/tk71.c                             |   10 +-
 board/keymile/km_arm/km_arm.c                      |   10 +-
 board/maxbcm/Kconfig                               |   19 +
 board/maxbcm/MAINTAINERS                           |    6 +
 board/maxbcm/Makefile                              |    7 +
 board/maxbcm/kwbimage.cfg                          |   12 +
 board/maxbcm/maxbcm.c                              |   77 +
 board/raidsonic/ib62x0/ib62x0.c                    |   10 +-
 configs/db-mv784mp-gp_defconfig                    |    2 +
 configs/maxbcm_defconfig                           |    2 +
 drivers/block/mvsata_ide.c                         |    2 +-
 drivers/gpio/kw_gpio.c                             |    2 +-
 drivers/i2c/mvtwsi.c                               |    4 +-
 drivers/mmc/mvebu_mmc.c                            |    2 +-
 drivers/mtd/nand/kirkwood_nand.c                   |    2 +-
 drivers/net/Makefile                               |    1 +
 drivers/net/mvgbe.c                                |    2 +-
 drivers/net/mvneta.c                               | 1653 ++++++++++++++++++++
 drivers/rtc/mvrtc.h                                |    2 +-
 drivers/spi/kirkwood_spi.c                         |   17 +-
 drivers/usb/host/ehci-marvell.c                    |    2 +-
 include/configs/db-mv784mp-gp.h                    |   68 +
 include/configs/maxbcm.h                           |   68 +
 include/linux/mbus.h                               |   73 +
 include/netdev.h                                   |    1 +
 include/phy.h                                      |    2 +
 tools/Makefile                                     |    1 +
 tools/kwbimage.c                                   | 1050 +++++++++----
 tools/kwboot.c                                     |  111 +-
 70 files changed, 4231 insertions(+), 555 deletions(-)
 create mode 100644 arch/arm/cpu/armv7/armada-xp/Makefile
 create mode 100644 arch/arm/cpu/armv7/armada-xp/cpu.c
 create mode 100644 arch/arm/include/asm/arch-armada-xp/config.h
 create mode 100644 arch/arm/include/asm/arch-armada-xp/cpu.h
 create mode 100644 arch/arm/include/asm/arch-armada-xp/soc.h
 rename arch/arm/include/asm/arch-kirkwood/{kirkwood.h => soc.h} (90%)
 rename arch/arm/include/asm/{arch-kirkwood => arch-mvebu}/spi.h (100%)
 create mode 100644 arch/arm/mvebu-common/Makefile
 rename arch/arm/{cpu/arm926ejs/kirkwood => mvebu-common}/dram.c (57%)
 create mode 100644 arch/arm/mvebu-common/gpio.c
 create mode 100644 arch/arm/mvebu-common/mbus.c
 rename arch/arm/{cpu/arm926ejs/kirkwood => mvebu-common}/timer.c (63%)
 create mode 100644 board/Marvell/db-mv784mp-gp/Kconfig
 create mode 100644 board/Marvell/db-mv784mp-gp/MAINTAINERS
 create mode 100644 board/Marvell/db-mv784mp-gp/Makefile
 create mode 100644 board/Marvell/db-mv784mp-gp/db-mv784mp-gp.c
 create mode 100644 board/Marvell/db-mv784mp-gp/kwbimage.cfg
 create mode 100644 board/maxbcm/Kconfig
 create mode 100644 board/maxbcm/MAINTAINERS
 create mode 100644 board/maxbcm/Makefile
 create mode 100644 board/maxbcm/kwbimage.cfg
 create mode 100644 board/maxbcm/maxbcm.c
 create mode 100644 configs/db-mv784mp-gp_defconfig
 create mode 100644 configs/maxbcm_defconfig
 create mode 100644 drivers/net/mvneta.c
 create mode 100644 include/configs/db-mv784mp-gp.h
 create mode 100644 include/configs/maxbcm.h
 create mode 100644 include/linux/mbus.h

-- 
2.1.2



More information about the U-Boot mailing list