ARM Marvell SoCs
================

This document lists all the ARM Marvell SoCs that are currently
supported in mainline by the Linux kernel. As the Marvell families of
SoCs are large and complex, it is hard to understand where the support
for a particular SoC is available in the Linux kernel. This document
tries to help in understanding where those SoCs are supported, and to
match them with their corresponding public datasheet, when available.

Orion family
------------

  Flavors:
        88F5082
        88F5181
        88F5181L
        88F5182
               Datasheet               : http://www.embeddedarm.com/documentation/third-party/MV88F5182-datasheet.pdf
               Programmer's User Guide : http://www.embeddedarm.com/documentation/third-party/MV88F5182-opensource-manual.pdf
               User Manual             : http://www.embeddedarm.com/documentation/third-party/MV88F5182-usermanual.pdf
        88F5281
               Datasheet               : http://www.ocmodshop.com/images/reviews/networking/qnap_ts409u/marvel_88f5281_data_sheet.pdf
        88F6183
  Core: Feroceon 88fr331 (88f51xx) or 88fr531-vd (88f52xx) ARMv5 compatible
  Linux kernel mach directory: arch/arm/mach-orion5x
  Linux kernel plat directory: arch/arm/plat-orion

Kirkwood family
---------------

  Flavors:
        88F6282 a.k.a Armada 300
                Product Brief  : http://www.marvell.com/embedded-processors/armada-300/assets/armada_310.pdf
        88F6283 a.k.a Armada 310
                Product Brief  : http://www.marvell.com/embedded-processors/armada-300/assets/armada_310.pdf
        88F6190
                Product Brief  : http://www.marvell.com/embedded-processors/kirkwood/assets/88F6190-003_WEB.pdf
                Hardware Spec  : http://www.marvell.com/embedded-processors/kirkwood/assets/HW_88F619x_OpenSource.pdf
                Functional Spec: http://www.marvell.com/embedded-processors/kirkwood/assets/FS_88F6180_9x_6281_OpenSource.pdf
        88F6192
                Product Brief  : http://www.marvell.com/embedded-processors/kirkwood/assets/88F6192-003_ver1.pdf
                Hardware Spec  : http://www.marvell.com/embedded-processors/kirkwood/assets/HW_88F619x_OpenSource.pdf
                Functional Spec: http://www.marvell.com/embedded-processors/kirkwood/assets/FS_88F6180_9x_6281_OpenSource.pdf
        88F6182
        88F6180
                Product Brief  : http://www.marvell.com/embedded-processors/kirkwood/assets/88F6180-003_ver1.pdf
                Hardware Spec  : http://www.marvell.com/embedded-processors/kirkwood/assets/HW_88F6180_OpenSource.pdf
                Functional Spec: http://www.marvell.com/embedded-processors/kirkwood/assets/FS_88F6180_9x_6281_OpenSource.pdf
        88F6281
                Product Brief  : http://www.marvell.com/embedded-processors/kirkwood/assets/88F6281-004_ver1.pdf
                Hardware Spec  : http://www.marvell.com/embedded-processors/kirkwood/assets/HW_88F6281_OpenSource.pdf
                Functional Spec: http://www.marvell.com/embedded-processors/kirkwood/assets/FS_88F6180_9x_6281_OpenSource.pdf
  Homepage: http://www.marvell.com/embedded-processors/kirkwood/
  Core: Feroceon 88fr131 ARMv5 compatible
  Linux kernel mach directory: arch/arm/mach-mvebu
  Linux kernel plat directory: none

Discovery family
----------------

  Flavors:
        MV78100
                Product Brief  : http://www.marvell.com/embedded-processors/discovery-innovation/assets/MV78100-003_WEB.pdf
                Hardware Spec  : http://www.marvell.com/embedded-processors/discovery-innovation/assets/HW_MV78100_OpenSource.pdf
                Functional Spec: http://www.marvell.com/embedded-processors/discovery-innovation/assets/FS_MV76100_78100_78200_OpenSource.pdf
        MV78200
                Product Brief  : http://www.marvell.com/embedded-processors/discovery-innovation/assets/MV78200-002_WEB.pdf
                Hardware Spec  : http://www.marvell.com/embedded-processors/discovery-innovation/assets/HW_MV78200_OpenSource.pdf
                Functional Spec: http://www.marvell.com/embedded-processors/discovery-innovation/assets/FS_MV76100_78100_78200_OpenSource.pdf
        MV76100
                Not supported by the Linux kernel.

  Core: Feroceon 88fr571-vd ARMv5 compatible

  Linux kernel mach directory: arch/arm/mach-mv78xx0
  Linux kernel plat directory: arch/arm/plat-orion

EBU Armada family
-----------------

  Armada 370 Flavors:
        88F6710
        88F6707
        88F6W11
    Product Brief:   http://www.marvell.com/embedded-processors/armada-300/assets/Marvell_ARMADA_370_SoC.pdf
    Hardware Spec:   http://www.marvell.com/embedded-processors/armada-300/assets/ARMADA370-datasheet.pdf
    Functional Spec: http://www.marvell.com/embedded-processors/armada-300/assets/ARMADA370-FunctionalSpec-datasheet.pdf
    Core: Sheeva ARMv7 compatible PJ4B

  Armada 375 Flavors:
	88F6720
    Product Brief: http://www.marvell.com/embedded-processors/armada-300/assets/ARMADA_375_SoC-01_product_brief.pdf
    Core: ARM Cortex-A9

  Armada 38x Flavors:
	88F6810	Armada 380
	88F6820 Armada 385
	88F6828 Armada 388
    Product infos:   http://www.marvell.com/embedded-processors/armada-38x/
    Functional Spec: https://marvellcorp.wufoo.com/forms/marvell-armada-38x-functional-specifications/
    Core: ARM Cortex-A9

  Armada 39x Flavors:
	88F6920 Armada 390
	88F6928 Armada 398
    Product infos: http://www.marvell.com/embedded-processors/armada-39x/
    Core: ARM Cortex-A9

  Armada XP Flavors:
        MV78230
        MV78260
        MV78460
    NOTE: not to be confused with the non-SMP 78xx0 SoCs
    Product Brief: http://www.marvell.com/embedded-processors/armada-xp/assets/Marvell-ArmadaXP-SoC-product%20brief.pdf
    Functional Spec: http://www.marvell.com/embedded-processors/armada-xp/assets/ARMADA-XP-Functional-SpecDatasheet.pdf
    Hardware Specs:
      http://www.marvell.com/embedded-processors/armada-xp/assets/HW_MV78230_OS.PDF
      http://www.marvell.com/embedded-processors/armada-xp/assets/HW_MV78260_OS.PDF
      http://www.marvell.com/embedded-processors/armada-xp/assets/HW_MV78460_OS.PDF
    Core: Sheeva ARMv7 compatible Dual-core or Quad-core PJ4B-MP

  Linux kernel mach directory: arch/arm/mach-mvebu
  Linux kernel plat directory: none

EBU Armada family ARMv8
-----------------------

  Armada 3710/3720 Flavors:
	88F3710
	88F3720
	Core: ARM Cortex A53 (ARMv8)

	Homepage: http://www.marvell.com/embedded-processors/armada-3700/
	Product Brief: http://www.marvell.com/embedded-processors/assets/PB-88F3700-FNL.pdf
	Device tree files: arch/arm64/boot/dts/marvell/armada-37*

  Armada 7K Flavors:
	88F7020 (AP806 Dual + one CP110)
	88F7040 (AP806 Quad + one CP110)
	Core: ARM Cortex A72

	Homepage: http://www.marvell.com/embedded-processors/armada-70xx/
	Product Brief: http://www.marvell.com/embedded-processors/assets/Armada7020PB-Jan2016.pdf
		       http://www.marvell.com/embedded-processors/assets/Armada7040PB-Jan2016.pdf
	Device tree files: arch/arm64/boot/dts/marvell/armada-70*

  Armada 8K Flavors:
	88F8020 (AP806 Dual + two CP110)
	88F8040 (AP806 Quad + two CP110)
	Core: ARM Cortex A72

	Homepage: http://www.marvell.com/embedded-processors/armada-80xx/
	Product Brief: http://www.marvell.com/embedded-processors/assets/Armada8020PB-Jan2016.pdf
		       http://www.marvell.com/embedded-processors/assets/Armada8040PB-Jan2016.pdf
	Device tree files: arch/arm64/boot/dts/marvell/armada-80*

Avanta family
-------------

  Flavors:
       88F6510
       88F6530P
       88F6550
       88F6560
  Homepage     : http://www.marvell.com/broadband/
  Product Brief: http://www.marvell.com/broadband/assets/Marvell_Avanta_88F6510_305_060-001_product_brief.pdf
  No public datasheet available.

  Core: ARMv5 compatible

  Linux kernel mach directory: no code in mainline yet, planned for the future
  Linux kernel plat directory: no code in mainline yet, planned for the future

Storage family
--------------

  Armada SP:
	88RC1580
    Product infos: http://www.marvell.com/storage/armada-sp/
    Core: Sheeva ARMv7 comatible Quad-core PJ4C
    (not supported in upstream Linux kernel)

Dove family (application processor)
-----------------------------------

  Flavors:
        88AP510 a.k.a Armada 510
                Product Brief   : http://www.marvell.com/application-processors/armada-500/assets/Marvell_Armada510_SoC.pdf
                Hardware Spec   : http://www.marvell.com/application-processors/armada-500/assets/Armada-510-Hardware-Spec.pdf
                Functional Spec : http://www.marvell.com/application-processors/armada-500/assets/Armada-510-Functional-Spec.pdf
  Homepage: http://www.marvell.com/application-processors/armada-500/
  Core: ARMv7 compatible

  Directory: arch/arm/mach-mvebu (DT enabled platforms)
             arch/arm/mach-dove (non-DT enabled platforms)

PXA 2xx/3xx/93x/95x family
--------------------------

  Flavors:
        PXA21x, PXA25x, PXA26x
             Application processor only
             Core: ARMv5 XScale1 core
        PXA270, PXA271, PXA272
             Product Brief         : http://www.marvell.com/application-processors/pxa-family/assets/pxa_27x_pb.pdf
             Design guide          : http://www.marvell.com/application-processors/pxa-family/assets/pxa_27x_design_guide.pdf
             Developers manual     : http://www.marvell.com/application-processors/pxa-family/assets/pxa_27x_dev_man.pdf
             Specification         : http://www.marvell.com/application-processors/pxa-family/assets/pxa_27x_emts.pdf
             Specification update  : http://www.marvell.com/application-processors/pxa-family/assets/pxa_27x_spec_update.pdf
             Application processor only
             Core: ARMv5 XScale2 core
        PXA300, PXA310, PXA320
             PXA 300 Product Brief : http://www.marvell.com/application-processors/pxa-family/assets/PXA300_PB_R4.pdf
             PXA 310 Product Brief : http://www.marvell.com/application-processors/pxa-family/assets/PXA310_PB_R4.pdf
             PXA 320 Product Brief : http://www.marvell.com/application-processors/pxa-family/assets/PXA320_PB_R4.pdf
             Design guide          : http://www.marvell.com/application-processors/pxa-family/assets/PXA3xx_Design_Guide.pdf
             Developers manual     : http://www.marvell.com/application-processors/pxa-family/assets/PXA3xx_Developers_Manual.zip
             Specifications        : http://www.marvell.com/application-processors/pxa-family/assets/PXA3xx_EMTS.pdf
             Specification Update  : http://www.marvell.com/application-processors/pxa-family/assets/PXA3xx_Spec_Update.zip
             Reference Manual      : http://www.marvell.com/application-processors/pxa-family/assets/PXA3xx_TavorP_BootROM_Ref_Manual.pdf
             Application processor only
             Core: ARMv5 XScale3 core
        PXA930, PXA935
             Application processor with Communication processor
             Core: ARMv5 XScale3 core
        PXA955
             Application processor with Communication processor
             Core: ARMv7 compatible Sheeva PJ4 core

   Comments:

    * This line of SoCs originates from the XScale family developed by
      Intel and acquired by Marvell in ~2006. The PXA21x, PXA25x,
      PXA26x, PXA27x, PXA3xx and PXA93x were developed by Intel, while
      the later PXA95x were developed by Marvell.

    * Due to their XScale origin, these SoCs have virtually nothing in
      common with the other (Kirkwood, Dove, etc.) families of Marvell
      SoCs, except with the MMP/MMP2 family of SoCs.

   Linux kernel mach directory: arch/arm/mach-pxa
   Linux kernel plat directory: arch/arm/plat-pxa

MMP/MMP2/MMP3 family (communication processor)
-----------------------------------------

   Flavors:
        PXA168, a.k.a Armada 168
             Homepage             : http://www.marvell.com/application-processors/armada-100/armada-168.jsp
             Product brief        : http://www.marvell.com/application-processors/armada-100/assets/pxa_168_pb.pdf
             Hardware manual      : http://www.marvell.com/application-processors/armada-100/assets/armada_16x_datasheet.pdf
             Software manual      : http://www.marvell.com/application-processors/armada-100/assets/armada_16x_software_manual.pdf
             Specification update : http://www.marvell.com/application-processors/armada-100/assets/ARMADA16x_Spec_update.pdf
             Boot ROM manual      : http://www.marvell.com/application-processors/armada-100/assets/armada_16x_ref_manual.pdf
             App node package     : http://www.marvell.com/application-processors/armada-100/assets/armada_16x_app_note_package.pdf
             Application processor only
             Core: ARMv5 compatible Marvell PJ1 88sv331 (Mohawk)
        PXA910/PXA920
             Homepage             : http://www.marvell.com/communication-processors/pxa910/
             Product Brief        : http://www.marvell.com/communication-processors/pxa910/assets/Marvell_PXA910_Platform-001_PB_final.pdf
             Application processor with Communication processor
             Core: ARMv5 compatible Marvell PJ1 88sv331 (Mohawk)
        PXA688, a.k.a. MMP2, a.k.a Armada 610
             Product Brief        : http://www.marvell.com/application-processors/armada-600/assets/armada610_pb.pdf
             Application processor only
             Core: ARMv7 compatible Sheeva PJ4 88sv581x core
	PXA2128, a.k.a. MMP3 (OLPC XO4, Linux support not upstream)
	     Product Brief	  : http://www.marvell.com/application-processors/armada/pxa2128/assets/Marvell-ARMADA-PXA2128-SoC-PB.pdf
	     Application processor only
	     Core: Dual-core ARMv7 compatible Sheeva PJ4C core
	PXA960/PXA968/PXA978 (Linux support not upstream)
	     Application processor with Communication Processor
	     Core: ARMv7 compatible Sheeva PJ4 core
	PXA986/PXA988 (Linux support not upstream)
	     Application processor with Communication Processor
	     Core: Dual-core ARMv7 compatible Sheeva PJ4B-MP core
	PXA1088/PXA1920 (Linux support not upstream)
	     Application processor with Communication Processor
	     Core: quad-core ARMv7 Cortex-A7
	PXA1908/PXA1928/PXA1936
	     Application processor with Communication Processor
	     Core: multi-core ARMv8 Cortex-A53

   Comments:

    * This line of SoCs originates from the XScale family developed by
      Intel and acquired by Marvell in ~2006. All the processors of
      this MMP/MMP2 family were developed by Marvell.

    * Due to their XScale origin, these SoCs have virtually nothing in
      common with the other (Kirkwood, Dove, etc.) families of Marvell
      SoCs, except with the PXA family of SoCs listed above.

   Linux kernel mach directory: arch/arm/mach-mmp
   Linux kernel plat directory: arch/arm/plat-pxa

Berlin family (Multimedia Solutions)
-------------------------------------

  Flavors:
	88DE3010, Armada 1000 (no Linux support)
		Core:		Marvell PJ1 (ARMv5TE), Dual-core
		Product Brief:	http://www.marvell.com.cn/digital-entertainment/assets/armada_1000_pb.pdf
	88DE3005, Armada 1500 Mini
		Design name:	BG2CD
		Core:		ARM Cortex-A9, PL310 L2CC
	88DE3006, Armada 1500 Mini Plus
		Design name:	BG2CDP
		Core:		Dual Core ARM Cortex-A7
	88DE3100, Armada 1500
		Design name:	BG2
		Core:		Marvell PJ4B-MP (ARMv7), Tauros3 L2CC
	88DE3114, Armada 1500 Pro
		Design name:	BG2Q
		Core:		Quad Core ARM Cortex-A9, PL310 L2CC
	88DE3214, Armada 1500 Pro 4K
		Design name:	BG3
		Core:		ARM Cortex-A15, CA15 integrated L2CC
	88DE3218, ARMADA 1500 Ultra
		Core:		ARM Cortex-A53

  Homepage: https://www.synaptics.com/products/multimedia-solutions
  Directory: arch/arm/mach-berlin

  Comments:

   * This line of SoCs is based on Marvell Sheeva or ARM Cortex CPUs
     with Synopsys DesignWare (IRQ, GPIO, Timers, ...) and PXA IP (SDHCI, USB, ETH, ...).

   * The Berlin family was acquired by Synaptics from Marvell in 2017.

CPU Cores
---------

The XScale cores were designed by Intel, and shipped by Marvell in the older
PXA processors. Feroceon is a Marvell designed core that developed in-house,
and that evolved into Sheeva. The XScale and Feroceon cores were phased out
over time and replaced with Sheeva cores in later products, which subsequently
got replaced with licensed ARM Cortex-A cores.

  XScale 1
	CPUID 0x69052xxx
	ARMv5, iWMMXt
  XScale 2
	CPUID 0x69054xxx
	ARMv5, iWMMXt
  XScale 3
	CPUID 0x69056xxx or 0x69056xxx
	ARMv5, iWMMXt
  Feroceon-1850 88fr331 "Mohawk"
	CPUID 0x5615331x or 0x41xx926x
	ARMv5TE, single issue
  Feroceon-2850 88fr531-vd "Jolteon"
	CPUID 0x5605531x or 0x41xx926x
	ARMv5TE, VFP, dual-issue
  Feroceon 88fr571-vd "Jolteon"
	CPUID 0x5615571x
	ARMv5TE, VFP, dual-issue
  Feroceon 88fr131 "Mohawk-D"
	CPUID 0x5625131x
	ARMv5TE, single-issue in-order
  Sheeva PJ1 88sv331 "Mohawk"
	CPUID 0x561584xx
	ARMv5, single-issue iWMMXt v2
  Sheeva PJ4 88sv581x "Flareon"
	CPUID 0x560f581x
	ARMv7, idivt, optional iWMMXt v2
  Sheeva PJ4B 88sv581x
	CPUID 0x561f581x
	ARMv7, idivt, optional iWMMXt v2
  Sheeva PJ4B-MP / PJ4C
	CPUID 0x562f584x
	ARMv7, idivt/idiva, LPAE, optional iWMMXt v2 and/or NEON

Long-term plans
---------------

 * Unify the mach-dove/, mach-mv78xx0/, mach-orion5x/ into the
   mach-mvebu/ to support all SoCs from the Marvell EBU (Engineering
   Business Unit) in a single mach-<foo> directory. The plat-orion/
   would therefore disappear.

 * Unify the mach-mmp/ and mach-pxa/ into the same mach-pxa
   directory. The plat-pxa/ would therefore disappear.

Credits
-------

 Maen Suleiman <maen@marvell.com>
 Lior Amsalem <alior@marvell.com>
 Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
 Andrew Lunn <andrew@lunn.ch>
 Nicolas Pitre <nico@fluxnic.net>
 Eric Miao <eric.y.miao@gmail.com>
