[U-Boot] [PATCH v1 0/25] Add Marvell Armada XP MV78460 SoC support

Stefan Roese
2014-06-27T09:54:46Z

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.

Thanks,
Stefan

Stefan Roese (25):
sf: Add M25PX64 SPI NOR flash ID
arm: kirkwood: spi.h: Add some missing parenthesis
spi: kirkwood_spi.c: Some fixes and cleanup
spi: kirkwood_spi.c: Make global variable static
spi: kirkwood_spi.c: cosmetic: Fix minor coding style issues
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-78460-BP board
arm: kirkwood: Remove some dead code from cpu.c
arm: kirkwood: Use mvebu new common mbus API
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/cpu/arm926ejs/kirkwood/Makefile | 4 +-
arch/arm/cpu/arm926ejs/kirkwood/cpu.c | 174 +--
arch/arm/cpu/arm926ejs/kirkwood/mpp.c | 2 +-
arch/arm/cpu/armv7/armada-xp/Makefile | 7 +
arch/arm/cpu/armv7/armada-xp/cpu.c | 186 +++
arch/arm/include/asm/arch-armada-xp/config.h | 80 +
arch/arm/include/asm/arch-armada-xp/cpu.h | 103 ++
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 | 71 +-
arch/arm/include/asm/arch-kirkwood/gpio.h | 16 +-
.../asm/arch-kirkwood/{kirkwood.h => soc.h} | 25 +-
.../asm/{arch-kirkwood => arch-mvebu}/spi.h | 8 +-
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 | 477 ++++++
.../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-78460-bp/Makefile | 7 +
board/Marvell/db-78460-bp/db-78460-bp.c | 120 ++
board/Marvell/db-78460-bp/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/raidsonic/ib62x0/ib62x0.c | 10 +-
boards.cfg | 1 +
drivers/block/mvsata_ide.c | 2 +-
drivers/gpio/kw_gpio.c | 2 +-
drivers/i2c/mvtwsi.c | 4 +-
drivers/mtd/nand/kirkwood_nand.c | 2 +-
drivers/mtd/spi/sf_params.c | 1 +
drivers/net/Makefile | 1 +
drivers/net/mvgbe.c | 2 +-
drivers/net/mvneta.c | 1653 ++++++++++++++++++++
drivers/rtc/mvrtc.h | 2 +-
drivers/spi/kirkwood_spi.c | 44 +-
drivers/usb/host/ehci-marvell.c | 45 +-
include/configs/db-78460-bp.h | 67 +
include/linux/mbus.h | 61 +
include/netdev.h | 1 +
include/phy.h | 2 +
tools/Makefile | 1 +
tools/kwbimage.c | 1050 +++++++++----
tools/kwboot.c | 97 +-
60 files changed, 4056 insertions(+), 723 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} (74%)
rename arch/arm/include/asm/{arch-kirkwood => arch-mvebu}/spi.h (90%)
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-78460-bp/Makefile
create mode 100644 board/Marvell/db-78460-bp/db-78460-bp.c
create mode 100644 board/Marvell/db-78460-bp/kwbimage.cfg
create mode 100644 drivers/net/mvneta.c
create mode 100644 include/configs/db-78460-bp.h
create mode 100644 include/linux/mbus.h

--
2.0.1