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 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 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 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

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

  Armada 380/385 Flavors:
	88F6810
	88F6820
	88F6828

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

  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

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

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

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 XScale 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 XScale 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 XScale core
        PXA930, PXA935
             Application processor with Communication processor
             Core: ARMv5 XScale 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 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 (Mohawk)
        PXA910
             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 (Mohawk)
        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 core

   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:
	88DE3005, Armada 1500 Mini
		Design name:	BG2CD
		Core:		ARM Cortex-A9, PL310 L2CC
		Homepage:	http://www.marvell.com/multimedia-solutions/armada-1500-mini/
        88DE3006, Armada 1500 Mini Plus
                Design name:    BG2CDP
                Core:           Dual Core ARM Cortex-A7
                Homepage:       http://www.marvell.com/multimedia-solutions/armada-1500-mini-plus/
	88DE3100, Armada 1500
		Design name:	BG2
		Core:		Marvell PJ4B (ARMv7), Tauros3 L2CC
		Product Brief:	http://www.marvell.com/multimedia-solutions/armada-1500/assets/Marvell-ARMADA-1500-Product-Brief.pdf
	88DE3114, Armada 1500 Pro
		Design name:	BG2Q
		Core:		Quad Core ARM Cortex-A9, PL310 L2CC
	88DE????
		Design name:	BG3
		Core:		ARM Cortex-A15, CA15 integrated L2CC

  Homepage: http://www.marvell.com/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, ...).

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>
