Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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.

+232
+232
Documentation/arm/Marvell/README
··· 1 + ARM Marvell SoCs 2 + ================ 3 + 4 + This document lists all the ARM Marvell SoCs that are currently 5 + supported in mainline by the Linux kernel. As the Marvell families of 6 + SoCs are large and complex, it is hard to understand where the support 7 + for a particular SoC is available in the Linux kernel. This document 8 + tries to help in understanding where those SoCs are supported, and to 9 + match them with their corresponding public datasheet, when available. 10 + 11 + Orion family 12 + ------------ 13 + 14 + Flavors: 15 + 88F5082 16 + 88F5181 17 + 88F5181L 18 + 88F5182 19 + Datasheet : http://www.embeddedarm.com/documentation/third-party/MV88F5182-datasheet.pdf 20 + Programmer's User Guide : http://www.embeddedarm.com/documentation/third-party/MV88F5182-opensource-manual.pdf 21 + User Manual : http://www.embeddedarm.com/documentation/third-party/MV88F5182-usermanual.pdf 22 + 88F5281 23 + Datasheet : http://www.ocmodshop.com/images/reviews/networking/qnap_ts409u/marvel_88f5281_data_sheet.pdf 24 + 88F6183 25 + Core: Feroceon ARMv5 compatible 26 + Linux kernel mach directory: arch/arm/mach-orion5x 27 + Linux kernel plat directory: arch/arm/plat-orion 28 + 29 + Kirkwood family 30 + --------------- 31 + 32 + Flavors: 33 + 88F6282 a.k.a Armada 300 34 + Product Brief : http://www.marvell.com/embedded-processors/armada-300/assets/armada_310.pdf 35 + 88F6283 a.k.a Armada 310 36 + Product Brief : http://www.marvell.com/embedded-processors/armada-300/assets/armada_310.pdf 37 + 88F6190 38 + Product Brief : http://www.marvell.com/embedded-processors/kirkwood/assets/88F6190-003_WEB.pdf 39 + Hardware Spec : http://www.marvell.com/embedded-processors/kirkwood/assets/HW_88F619x_OpenSource.pdf 40 + Functional Spec: http://www.marvell.com/embedded-processors/kirkwood/assets/FS_88F6180_9x_6281_OpenSource.pdf 41 + 88F6192 42 + Product Brief : http://www.marvell.com/embedded-processors/kirkwood/assets/88F6192-003_ver1.pdf 43 + Hardware Spec : http://www.marvell.com/embedded-processors/kirkwood/assets/HW_88F619x_OpenSource.pdf 44 + Functional Spec: http://www.marvell.com/embedded-processors/kirkwood/assets/FS_88F6180_9x_6281_OpenSource.pdf 45 + 88F6182 46 + 88F6180 47 + Product Brief : http://www.marvell.com/embedded-processors/kirkwood/assets/88F6180-003_ver1.pdf 48 + Hardware Spec : http://www.marvell.com/embedded-processors/kirkwood/assets/HW_88F6180_OpenSource.pdf 49 + Functional Spec: http://www.marvell.com/embedded-processors/kirkwood/assets/FS_88F6180_9x_6281_OpenSource.pdf 50 + 88F6281 51 + Product Brief : http://www.marvell.com/embedded-processors/kirkwood/assets/88F6281-004_ver1.pdf 52 + Hardware Spec : http://www.marvell.com/embedded-processors/kirkwood/assets/HW_88F6281_OpenSource.pdf 53 + Functional Spec: http://www.marvell.com/embedded-processors/kirkwood/assets/FS_88F6180_9x_6281_OpenSource.pdf 54 + Homepage: http://www.marvell.com/embedded-processors/kirkwood/ 55 + Core: Feroceon ARMv5 compatible 56 + Linux kernel mach directory: arch/arm/mach-kirkwood 57 + Linux kernel plat directory: arch/arm/plat-orion 58 + 59 + Discovery family 60 + ---------------- 61 + 62 + Flavors: 63 + MV78100 64 + Product Brief : http://www.marvell.com/embedded-processors/discovery-innovation/assets/MV78100-003_WEB.pdf 65 + Hardware Spec : http://www.marvell.com/embedded-processors/discovery-innovation/assets/HW_MV78100_OpenSource.pdf 66 + Functional Spec: http://www.marvell.com/embedded-processors/discovery-innovation/assets/FS_MV76100_78100_78200_OpenSource.pdf 67 + MV78200 68 + Product Brief : http://www.marvell.com/embedded-processors/discovery-innovation/assets/MV78200-002_WEB.pdf 69 + Hardware Spec : http://www.marvell.com/embedded-processors/discovery-innovation/assets/HW_MV78200_OpenSource.pdf 70 + Functional Spec: http://www.marvell.com/embedded-processors/discovery-innovation/assets/FS_MV76100_78100_78200_OpenSource.pdf 71 + MV76100 72 + Not supported by the Linux kernel. 73 + 74 + Core: Feroceon ARMv5 compatible 75 + 76 + Linux kernel mach directory: arch/arm/mach-mv78xx0 77 + Linux kernel plat directory: arch/arm/plat-orion 78 + 79 + EBU Armada family 80 + ----------------- 81 + 82 + Armada 370 Flavors: 83 + 88F6710 84 + 88F6707 85 + 88F6W11 86 + 87 + Armada XP Flavors: 88 + MV78230 89 + MV78260 90 + MV78460 91 + 92 + Product Brief: http://www.marvell.com/embedded-processors/armada-xp/assets/Marvell-ArmadaXP-SoC-product%20brief.pdf 93 + No public datasheet available. 94 + 95 + Core: Sheeva ARMv7 compatible 96 + 97 + Linux kernel mach directory: arch/arm/mach-mvebu 98 + Linux kernel plat directory: none 99 + 100 + Avanta family 101 + ------------- 102 + 103 + Flavors: 104 + 88F6510 105 + 88F6530P 106 + 88F6550 107 + 88F6560 108 + Homepage : http://www.marvell.com/broadband/ 109 + Product Brief: http://www.marvell.com/broadband/assets/Marvell_Avanta_88F6510_305_060-001_product_brief.pdf 110 + No public datasheet available. 111 + 112 + Core: ARMv5 compatible 113 + 114 + Linux kernel mach directory: no code in mainline yet, planned for the future 115 + Linux kernel plat directory: no code in mainline yet, planned for the future 116 + 117 + Dove family (application processor) 118 + ----------------------------------- 119 + 120 + Flavors: 121 + 88AP510 a.k.a Armada 510 122 + Product Brief : http://www.marvell.com/application-processors/armada-500/assets/Marvell_Armada510_SoC.pdf 123 + Hardware Spec : http://www.marvell.com/application-processors/armada-500/assets/Armada-510-Hardware-Spec.pdf 124 + Functional Spec : http://www.marvell.com/application-processors/armada-500/assets/Armada-510-Functional-Spec.pdf 125 + Homepage: http://www.marvell.com/application-processors/armada-500/ 126 + Core: ARMv7 compatible 127 + Directory: arch/arm/mach-dove 128 + 129 + PXA 2xx/3xx/93x/95x family 130 + -------------------------- 131 + 132 + Flavors: 133 + PXA21x, PXA25x, PXA26x 134 + Application processor only 135 + Core: ARMv5 XScale core 136 + PXA270, PXA271, PXA272 137 + Product Brief : http://www.marvell.com/application-processors/pxa-family/assets/pxa_27x_pb.pdf 138 + Design guide : http://www.marvell.com/application-processors/pxa-family/assets/pxa_27x_design_guide.pdf 139 + Developers manual : http://www.marvell.com/application-processors/pxa-family/assets/pxa_27x_dev_man.pdf 140 + Specification : http://www.marvell.com/application-processors/pxa-family/assets/pxa_27x_emts.pdf 141 + Specification update : http://www.marvell.com/application-processors/pxa-family/assets/pxa_27x_spec_update.pdf 142 + Application processor only 143 + Core: ARMv5 XScale core 144 + PXA300, PXA310, PXA320 145 + PXA 300 Product Brief : http://www.marvell.com/application-processors/pxa-family/assets/PXA300_PB_R4.pdf 146 + PXA 310 Product Brief : http://www.marvell.com/application-processors/pxa-family/assets/PXA310_PB_R4.pdf 147 + PXA 320 Product Brief : http://www.marvell.com/application-processors/pxa-family/assets/PXA320_PB_R4.pdf 148 + Design guide : http://www.marvell.com/application-processors/pxa-family/assets/PXA3xx_Design_Guide.pdf 149 + Developers manual : http://www.marvell.com/application-processors/pxa-family/assets/PXA3xx_Developers_Manual.zip 150 + Specifications : http://www.marvell.com/application-processors/pxa-family/assets/PXA3xx_EMTS.pdf 151 + Specification Update : http://www.marvell.com/application-processors/pxa-family/assets/PXA3xx_Spec_Update.zip 152 + Reference Manual : http://www.marvell.com/application-processors/pxa-family/assets/PXA3xx_TavorP_BootROM_Ref_Manual.pdf 153 + Application processor only 154 + Core: ARMv5 XScale core 155 + PXA930, PXA935 156 + Application processor with Communication processor 157 + Core: ARMv5 XScale core 158 + PXA955 159 + Application processor with Communication processor 160 + Core: ARMv7 compatible Sheeva PJ4 core 161 + 162 + Comments: 163 + 164 + * This line of SoCs originates from the XScale family developed by 165 + Intel and acquired by Marvell in ~2006. The PXA21x, PXA25x, 166 + PXA26x, PXA27x, PXA3xx and PXA93x were developed by Intel, while 167 + the later PXA95x were developed by Marvell. 168 + 169 + * Due to their XScale origin, these SoCs have virtually nothing in 170 + common with the other (Kirkwood, Dove, etc.) families of Marvell 171 + SoCs, except with the MMP/MMP2 family of SoCs. 172 + 173 + Linux kernel mach directory: arch/arm/mach-pxa 174 + Linux kernel plat directory: arch/arm/plat-pxa 175 + 176 + MMP/MMP2 family (communication processor) 177 + ----------------------------------------- 178 + 179 + Flavors: 180 + PXA168, a.k.a Armada 168 181 + Homepage : http://www.marvell.com/application-processors/armada-100/armada-168.jsp 182 + Product brief : http://www.marvell.com/application-processors/armada-100/assets/pxa_168_pb.pdf 183 + Hardware manual : http://www.marvell.com/application-processors/armada-100/assets/armada_16x_datasheet.pdf 184 + Software manual : http://www.marvell.com/application-processors/armada-100/assets/armada_16x_software_manual.pdf 185 + Specification update : http://www.marvell.com/application-processors/armada-100/assets/ARMADA16x_Spec_update.pdf 186 + Boot ROM manual : http://www.marvell.com/application-processors/armada-100/assets/armada_16x_ref_manual.pdf 187 + App node package : http://www.marvell.com/application-processors/armada-100/assets/armada_16x_app_note_package.pdf 188 + Application processor only 189 + Core: ARMv5 compatible Marvell PJ1 (Mohawk) 190 + PXA910 191 + Homepage : http://www.marvell.com/communication-processors/pxa910/ 192 + Product Brief : http://www.marvell.com/communication-processors/pxa910/assets/Marvell_PXA910_Platform-001_PB_final.pdf 193 + Application processor with Communication processor 194 + Core: ARMv5 compatible Marvell PJ1 (Mohawk) 195 + MMP2, a.k.a Armada 610 196 + Product Brief : http://www.marvell.com/application-processors/armada-600/assets/armada610_pb.pdf 197 + Application processor only 198 + Core: ARMv7 compatible Sheeva PJ4 core 199 + 200 + Comments: 201 + 202 + * This line of SoCs originates from the XScale family developed by 203 + Intel and acquired by Marvell in ~2006. All the processors of 204 + this MMP/MMP2 family were developed by Marvell. 205 + 206 + * Due to their XScale origin, these SoCs have virtually nothing in 207 + common with the other (Kirkwood, Dove, etc.) families of Marvell 208 + SoCs, except with the PXA family of SoCs listed above. 209 + 210 + Linux kernel mach directory: arch/arm/mach-mmp 211 + Linux kernel plat directory: arch/arm/plat-pxa 212 + 213 + Long-term plans 214 + --------------- 215 + 216 + * Unify the mach-dove/, mach-mv78xx0/, mach-orion5x/ and 217 + mach-kirkwood/ into the mach-mvebu/ to support all SoCs from the 218 + Marvell EBU (Engineering Business Unit) in a single mach-<foo> 219 + directory. The plat-orion/ would therefore disappear. 220 + 221 + * Unify the mach-mmp/ and mach-pxa/ into the same mach-pxa 222 + directory. The plat-pxa/ would therefore disappear. 223 + 224 + Credits 225 + ------- 226 + 227 + Maen Suleiman <maen@marvell.com> 228 + Lior Amsalem <alior@marvell.com> 229 + Thomas Petazzoni <thomas.petazzoni@free-electrons.com> 230 + Andrew Lunn <andrew@lunn.ch> 231 + Nicolas Pitre <nico@fluxnic.net> 232 + Eric Miao <eric.y.miao@gmail.com>