kernel-ark/Documentation/arm/Marvell
Thomas Petazzoni 9ee99783d7 arm: add documentation describing Marvell families of SoC
As stated in the introduction of the document, the families of ARM
SoCs at Marvell are very complicated, and it is difficult for
newcomers to understand the organization of this SoC family and how it
relates to the Linux kernel support for those hardware platforms.

This document is only at RFC stage for now, it requires reviews and
comments from the Marvell maintainers, the PXA maintainers and the MMP
maintainers. For correctness of course, but also to add any other
information that would be useful. For example, one of the thing that
wasn't clear how to detail in the documentation is how the SoCs relate
to each other in terms of hardware IP blocks. For example, most of the
Kirkwood/Dove/Armada 370-XP/etc. hardware IPs (I2C, SPI, USB, SATA,
etc.) are identical, while the PXA and MMP families are completely
separate.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Cc: Andrew Lunn <andrew@lunn.ch>
Cc: Jason Cooper <jason@lakedaemon.net>
Cc: Gregory Clement <gregory.clement@free-electrons.com>
Cc: Eric Miao <eric.y.miao@gmail.com>
Cc: Russell King <linux@arm.linux.org.uk>
Cc: Haojian Zhuang <haojian.zhuang@gmail.com>
Cc: Nicolas Pitre <nico@fluxnic.net>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Olof Johansson <olof@lixom.net>
Cc: Lior Amsalem <alior@marvell.com>
Cc: Maen Suleiman <maen@marvell.com>
Cc: Tawfik Bayouk <tawfik@marvell.com>
Cc: Shadi Ammouri <shadi@marvell.com>
Cc: Eran Ben-Avi <benavi@marvell.com>
Acked-by: Arnd Bergmann <arnd@arndb.de>

---
Changes from v3:
 * Add Arnd Bergmann Acked-by.

Changes from v2:
 * Mention the plat-<foo> directory that each SoC family is using.
 * Take into account Eric Miao's comments on the PXA/MMP families: add
   PXA21x/PXA25x/PXA26x to the list, mention which processors are
   AP+CP or AP only. Clarify the comments on which SoCs were designed
   by Intel, which ones were designed by Marvell after the acquisition
   of the XScale family.
 * Mention long-term plans regarding the support of those SoC
   families.

Changes from v1:
 * Added publicly available datasheet for the 88F5182 pointed by
   Andrew Lunn.
 * Added publicly available datasheet for the 88F5281 found with
   Google searches
 * Mentionned the Feroceon core name where appropriate, and Sheeva
   where appropriate
 * Fixed the core names for PXA930, PXA935 and PXA955 after comments
   from Arnd Bergmann. Wikipedia is mistakenly suggesting that PXA93x
   are Sheeva-based, and there isn't much information available on the
   web about the 955.
2012-08-11 08:52:32 +02:00
..
README

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-kirkwood
  Linux kernel plat directory: arch/arm/plat-orion

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

  Armada XP Flavors:
        MV78230
        MV78260
        MV78460

  Product Brief: http://www.marvell.com/embedded-processors/armada-xp/assets/Marvell-ArmadaXP-SoC-product%20brief.pdf
  No public datasheet available.

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

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

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

 * Unify the mach-dove/, mach-mv78xx0/, mach-orion5x/ and
   mach-kirkwood/ 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>