summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Documentation/arm/Marvell/README395
-rw-r--r--Documentation/arm/Netwinder78
-rw-r--r--Documentation/arm/SA1100/FreeBird21
-rw-r--r--Documentation/arm/SA1100/empeg2
-rw-r--r--Documentation/arm/SA1100/serial_UART47
-rw-r--r--Documentation/arm/arm.rst (renamed from Documentation/arm/README)50
-rw-r--r--Documentation/arm/booting.rst (renamed from Documentation/arm/Booting)71
-rw-r--r--Documentation/arm/cluster-pm-race-avoidance.rst (renamed from Documentation/arm/cluster-pm-race-avoidance.txt)177
-rw-r--r--Documentation/arm/firmware.rst (renamed from Documentation/arm/firmware.txt)14
-rw-r--r--Documentation/arm/index.rst80
-rw-r--r--Documentation/arm/interrupts.rst (renamed from Documentation/arm/Interrupts)90
-rw-r--r--Documentation/arm/ixp4xx.rst (renamed from Documentation/arm/IXP4xx)61
-rw-r--r--Documentation/arm/kernel_mode_neon.rst (renamed from Documentation/arm/kernel_mode_neon.txt)3
-rw-r--r--Documentation/arm/kernel_user_helpers.rst (renamed from Documentation/arm/kernel_user_helpers.txt)79
-rw-r--r--Documentation/arm/keystone/knav-qmss.rst (renamed from Documentation/arm/keystone/knav-qmss.txt)6
-rw-r--r--Documentation/arm/keystone/overview.rst (renamed from Documentation/arm/keystone/Overview.txt)47
-rw-r--r--Documentation/arm/marvel.rst488
-rw-r--r--Documentation/arm/mem_alignment.rst (renamed from Documentation/arm/mem_alignment)11
-rw-r--r--Documentation/arm/memory.rst (renamed from Documentation/arm/memory.txt)9
-rw-r--r--Documentation/arm/microchip.rst (renamed from Documentation/arm/Microchip/README)63
-rw-r--r--Documentation/arm/netwinder.rst85
-rw-r--r--Documentation/arm/nwfpe/index.rst11
-rw-r--r--Documentation/arm/nwfpe/netwinder-fpe.rst (renamed from Documentation/arm/nwfpe/README.FPE)24
-rw-r--r--Documentation/arm/nwfpe/notes.rst (renamed from Documentation/arm/nwfpe/NOTES)3
-rw-r--r--Documentation/arm/nwfpe/nwfpe.rst (renamed from Documentation/arm/nwfpe/README)10
-rw-r--r--Documentation/arm/nwfpe/todo.rst (renamed from Documentation/arm/nwfpe/TODO)47
-rw-r--r--Documentation/arm/omap/dss.rst (renamed from Documentation/arm/OMAP/DSS)102
-rw-r--r--Documentation/arm/omap/index.rst10
-rw-r--r--Documentation/arm/omap/omap.rst (renamed from Documentation/arm/OMAP/README)7
-rw-r--r--Documentation/arm/omap/omap_pm.rst (renamed from Documentation/arm/OMAP/omap_pm)55
-rw-r--r--Documentation/arm/porting.rst (renamed from Documentation/arm/Porting)14
-rw-r--r--Documentation/arm/pxa/mfp.rst (renamed from Documentation/arm/pxa/mfp.txt)110
-rw-r--r--Documentation/arm/sa1100/adsbitsy.rst (renamed from Documentation/arm/SA1100/ADSBitsy)14
-rw-r--r--Documentation/arm/sa1100/assabet.rst (renamed from Documentation/arm/SA1100/Assabet)193
-rw-r--r--Documentation/arm/sa1100/brutus.rst (renamed from Documentation/arm/SA1100/Brutus)49
-rw-r--r--Documentation/arm/sa1100/cerf.rst (renamed from Documentation/arm/SA1100/CERF)10
-rw-r--r--Documentation/arm/sa1100/freebird.rst25
-rw-r--r--Documentation/arm/sa1100/graphicsclient.rst (renamed from Documentation/arm/SA1100/GraphicsClient)48
-rw-r--r--Documentation/arm/sa1100/graphicsmaster.rst (renamed from Documentation/arm/SA1100/GraphicsMaster)13
-rw-r--r--Documentation/arm/sa1100/huw_webpanel.rst (renamed from Documentation/arm/SA1100/HUW_WEBPANEL)8
-rw-r--r--Documentation/arm/sa1100/index.rst23
-rw-r--r--Documentation/arm/sa1100/itsy.rst (renamed from Documentation/arm/SA1100/Itsy)14
-rw-r--r--Documentation/arm/sa1100/lart.rst (renamed from Documentation/arm/SA1100/LART)3
-rw-r--r--Documentation/arm/sa1100/nanoengine.rst (renamed from Documentation/arm/SA1100/nanoEngine)6
-rw-r--r--Documentation/arm/sa1100/pangolin.rst (renamed from Documentation/arm/SA1100/Pangolin)10
-rw-r--r--Documentation/arm/sa1100/pleb.rst (renamed from Documentation/arm/SA1100/PLEB)6
-rw-r--r--Documentation/arm/sa1100/serial_uart.rst51
-rw-r--r--Documentation/arm/sa1100/tifon.rst (renamed from Documentation/arm/SA1100/Tifon)4
-rw-r--r--Documentation/arm/sa1100/yopy.rst (renamed from Documentation/arm/SA1100/Yopy)5
-rw-r--r--Documentation/arm/samsung-s3c24xx/cpufreq.rst (renamed from Documentation/arm/Samsung-S3C24XX/CPUfreq.txt)5
-rw-r--r--Documentation/arm/samsung-s3c24xx/eb2410itx.rst (renamed from Documentation/arm/Samsung-S3C24XX/EB2410ITX.txt)5
-rw-r--r--Documentation/arm/samsung-s3c24xx/gpio.rst (renamed from Documentation/arm/Samsung-S3C24XX/GPIO.txt)23
-rw-r--r--Documentation/arm/samsung-s3c24xx/h1940.rst (renamed from Documentation/arm/Samsung-S3C24XX/H1940.txt)5
-rw-r--r--Documentation/arm/samsung-s3c24xx/index.rst18
-rw-r--r--Documentation/arm/samsung-s3c24xx/nand.rst (renamed from Documentation/arm/Samsung-S3C24XX/NAND.txt)6
-rw-r--r--Documentation/arm/samsung-s3c24xx/overview.rst (renamed from Documentation/arm/Samsung-S3C24XX/Overview.txt)21
-rw-r--r--Documentation/arm/samsung-s3c24xx/s3c2412.rst (renamed from Documentation/arm/Samsung-S3C24XX/S3C2412.txt)5
-rw-r--r--Documentation/arm/samsung-s3c24xx/s3c2413.rst (renamed from Documentation/arm/Samsung-S3C24XX/S3C2413.txt)7
-rw-r--r--Documentation/arm/samsung-s3c24xx/smdk2440.rst (renamed from Documentation/arm/Samsung-S3C24XX/SMDK2440.txt)5
-rw-r--r--Documentation/arm/samsung-s3c24xx/suspend.rst (renamed from Documentation/arm/Samsung-S3C24XX/Suspend.txt)20
-rw-r--r--Documentation/arm/samsung-s3c24xx/usb-host.rst (renamed from Documentation/arm/Samsung-S3C24XX/USB-Host.txt)16
-rw-r--r--Documentation/arm/samsung/bootloader-interface.rst (renamed from Documentation/arm/Samsung/Bootloader-interface.txt)27
-rwxr-xr-xDocumentation/arm/samsung/clksrc-change-registers.awk (renamed from Documentation/arm/Samsung/clksrc-change-registers.awk)0
-rw-r--r--Documentation/arm/samsung/gpio.rst (renamed from Documentation/arm/Samsung/GPIO.txt)7
-rw-r--r--Documentation/arm/samsung/index.rst10
-rw-r--r--Documentation/arm/samsung/overview.rst (renamed from Documentation/arm/Samsung/Overview.txt)15
-rw-r--r--Documentation/arm/setup.rst (renamed from Documentation/arm/Setup)49
-rw-r--r--Documentation/arm/sh-mobile/.gitignore (renamed from Documentation/arm/SH-Mobile/.gitignore)0
-rw-r--r--Documentation/arm/spear/overview.rst (renamed from Documentation/arm/SPEAr/overview.txt)20
-rw-r--r--Documentation/arm/sti/overview.rst (renamed from Documentation/arm/sti/overview.txt)21
-rw-r--r--Documentation/arm/sti/stih407-overview.rst (renamed from Documentation/arm/sti/stih407-overview.txt)9
-rw-r--r--Documentation/arm/sti/stih415-overview.rst (renamed from Documentation/arm/sti/stih415-overview.txt)8
-rw-r--r--Documentation/arm/sti/stih416-overview.rst (renamed from Documentation/arm/sti/stih416-overview.txt)5
-rw-r--r--Documentation/arm/sti/stih418-overview.rst (renamed from Documentation/arm/sti/stih418-overview.txt)9
-rw-r--r--Documentation/arm/stm32/overview.rst2
-rw-r--r--Documentation/arm/stm32/stm32f429-overview.rst7
-rw-r--r--Documentation/arm/stm32/stm32f746-overview.rst7
-rw-r--r--Documentation/arm/stm32/stm32f769-overview.rst7
-rw-r--r--Documentation/arm/stm32/stm32h743-overview.rst7
-rw-r--r--Documentation/arm/stm32/stm32mp157-overview.rst3
-rw-r--r--Documentation/arm/sunxi.rst (renamed from Documentation/arm/sunxi/README)98
-rw-r--r--Documentation/arm/sunxi/clocks.rst (renamed from Documentation/arm/sunxi/clocks.txt)7
-rw-r--r--Documentation/arm/swp_emulation.rst (renamed from Documentation/arm/swp_emulation)24
-rw-r--r--Documentation/arm/tcm.rst (renamed from Documentation/arm/tcm.txt)54
-rw-r--r--Documentation/arm/uefi.rst (renamed from Documentation/arm/uefi.txt)39
-rw-r--r--Documentation/arm/vfp/release-notes.rst (renamed from Documentation/arm/VFP/release-notes.txt)4
-rw-r--r--Documentation/arm/vlocks.rst (renamed from Documentation/arm/vlocks.txt)9
-rw-r--r--Documentation/devicetree/bindings/arm/xen.txt2
-rw-r--r--Documentation/devicetree/booting-without-of.txt4
-rw-r--r--Documentation/index.rst1
-rw-r--r--Documentation/translations/zh_CN/arm/Booting4
-rw-r--r--Documentation/translations/zh_CN/arm/kernel_user_helpers.txt4
-rw-r--r--MAINTAINERS4
-rw-r--r--arch/arm/Kconfig2
-rw-r--r--arch/arm/common/mcpm_entry.c2
-rw-r--r--arch/arm/common/mcpm_head.S2
-rw-r--r--arch/arm/common/vlock.S2
-rw-r--r--arch/arm/include/asm/setup.h2
-rw-r--r--arch/arm/include/uapi/asm/setup.h2
-rw-r--r--arch/arm/kernel/entry-armv.S2
-rw-r--r--arch/arm/mach-exynos/common.h2
-rw-r--r--arch/arm/mach-ixp4xx/Kconfig14
-rw-r--r--arch/arm/mach-s3c24xx/pm.c2
-rw-r--r--arch/arm/mm/Kconfig4
-rw-r--r--arch/arm/plat-samsung/Kconfig6
-rw-r--r--arch/arm/tools/mach-types2
-rw-r--r--arch/arm64/Kconfig2
-rw-r--r--arch/arm64/kernel/kuser32.S2
-rw-r--r--arch/mips/bmips/setup.c2
-rw-r--r--drivers/crypto/sunxi-ss/sun4i-ss-cipher.c2
-rw-r--r--drivers/crypto/sunxi-ss/sun4i-ss-core.c2
-rw-r--r--drivers/crypto/sunxi-ss/sun4i-ss-hash.c2
-rw-r--r--drivers/crypto/sunxi-ss/sun4i-ss.h2
-rw-r--r--drivers/input/touchscreen/sun4i-ts.c2
-rw-r--r--drivers/tty/serial/Kconfig2
115 files changed, 1991 insertions, 1426 deletions
diff --git a/Documentation/arm/Marvell/README b/Documentation/arm/Marvell/README
deleted file mode 100644
index 56ada27c53be..000000000000
--- a/Documentation/arm/Marvell/README
+++ /dev/null
@@ -1,395 +0,0 @@
1ARM Marvell SoCs
2================
3
4This document lists all the ARM Marvell SoCs that are currently
5supported in mainline by the Linux kernel. As the Marvell families of
6SoCs are large and complex, it is hard to understand where the support
7for a particular SoC is available in the Linux kernel. This document
8tries to help in understanding where those SoCs are supported, and to
9match them with their corresponding public datasheet, when available.
10
11Orion 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 88fr331 (88f51xx) or 88fr531-vd (88f52xx) ARMv5 compatible
26 Linux kernel mach directory: arch/arm/mach-orion5x
27 Linux kernel plat directory: arch/arm/plat-orion
28
29Kirkwood 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 88fr131 ARMv5 compatible
56 Linux kernel mach directory: arch/arm/mach-mvebu
57 Linux kernel plat directory: none
58
59Discovery 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 88fr571-vd ARMv5 compatible
75
76 Linux kernel mach directory: arch/arm/mach-mv78xx0
77 Linux kernel plat directory: arch/arm/plat-orion
78
79EBU Armada family
80-----------------
81
82 Armada 370 Flavors:
83 88F6710
84 88F6707
85 88F6W11
86 Product Brief: http://www.marvell.com/embedded-processors/armada-300/assets/Marvell_ARMADA_370_SoC.pdf
87 Hardware Spec: http://www.marvell.com/embedded-processors/armada-300/assets/ARMADA370-datasheet.pdf
88 Functional Spec: http://www.marvell.com/embedded-processors/armada-300/assets/ARMADA370-FunctionalSpec-datasheet.pdf
89 Core: Sheeva ARMv7 compatible PJ4B
90
91 Armada 375 Flavors:
92 88F6720
93 Product Brief: http://www.marvell.com/embedded-processors/armada-300/assets/ARMADA_375_SoC-01_product_brief.pdf
94 Core: ARM Cortex-A9
95
96 Armada 38x Flavors:
97 88F6810 Armada 380
98 88F6820 Armada 385
99 88F6828 Armada 388
100 Product infos: http://www.marvell.com/embedded-processors/armada-38x/
101 Functional Spec: https://marvellcorp.wufoo.com/forms/marvell-armada-38x-functional-specifications/
102 Core: ARM Cortex-A9
103
104 Armada 39x Flavors:
105 88F6920 Armada 390
106 88F6928 Armada 398
107 Product infos: http://www.marvell.com/embedded-processors/armada-39x/
108 Core: ARM Cortex-A9
109
110 Armada XP Flavors:
111 MV78230
112 MV78260
113 MV78460
114 NOTE: not to be confused with the non-SMP 78xx0 SoCs
115 Product Brief: http://www.marvell.com/embedded-processors/armada-xp/assets/Marvell-ArmadaXP-SoC-product%20brief.pdf
116 Functional Spec: http://www.marvell.com/embedded-processors/armada-xp/assets/ARMADA-XP-Functional-SpecDatasheet.pdf
117 Hardware Specs:
118 http://www.marvell.com/embedded-processors/armada-xp/assets/HW_MV78230_OS.PDF
119 http://www.marvell.com/embedded-processors/armada-xp/assets/HW_MV78260_OS.PDF
120 http://www.marvell.com/embedded-processors/armada-xp/assets/HW_MV78460_OS.PDF
121 Core: Sheeva ARMv7 compatible Dual-core or Quad-core PJ4B-MP
122
123 Linux kernel mach directory: arch/arm/mach-mvebu
124 Linux kernel plat directory: none
125
126EBU Armada family ARMv8
127-----------------------
128
129 Armada 3710/3720 Flavors:
130 88F3710
131 88F3720
132 Core: ARM Cortex A53 (ARMv8)
133
134 Homepage: http://www.marvell.com/embedded-processors/armada-3700/
135 Product Brief: http://www.marvell.com/embedded-processors/assets/PB-88F3700-FNL.pdf
136 Device tree files: arch/arm64/boot/dts/marvell/armada-37*
137
138 Armada 7K Flavors:
139 88F7020 (AP806 Dual + one CP110)
140 88F7040 (AP806 Quad + one CP110)
141 Core: ARM Cortex A72
142
143 Homepage: http://www.marvell.com/embedded-processors/armada-70xx/
144 Product Brief: http://www.marvell.com/embedded-processors/assets/Armada7020PB-Jan2016.pdf
145 http://www.marvell.com/embedded-processors/assets/Armada7040PB-Jan2016.pdf
146 Device tree files: arch/arm64/boot/dts/marvell/armada-70*
147
148 Armada 8K Flavors:
149 88F8020 (AP806 Dual + two CP110)
150 88F8040 (AP806 Quad + two CP110)
151 Core: ARM Cortex A72
152
153 Homepage: http://www.marvell.com/embedded-processors/armada-80xx/
154 Product Brief: http://www.marvell.com/embedded-processors/assets/Armada8020PB-Jan2016.pdf
155 http://www.marvell.com/embedded-processors/assets/Armada8040PB-Jan2016.pdf
156 Device tree files: arch/arm64/boot/dts/marvell/armada-80*
157
158Avanta family
159-------------
160
161 Flavors:
162 88F6510
163 88F6530P
164 88F6550
165 88F6560
166 Homepage : http://www.marvell.com/broadband/
167 Product Brief: http://www.marvell.com/broadband/assets/Marvell_Avanta_88F6510_305_060-001_product_brief.pdf
168 No public datasheet available.
169
170 Core: ARMv5 compatible
171
172 Linux kernel mach directory: no code in mainline yet, planned for the future
173 Linux kernel plat directory: no code in mainline yet, planned for the future
174
175Storage family
176--------------
177
178 Armada SP:
179 88RC1580
180 Product infos: http://www.marvell.com/storage/armada-sp/
181 Core: Sheeva ARMv7 comatible Quad-core PJ4C
182 (not supported in upstream Linux kernel)
183
184Dove family (application processor)
185-----------------------------------
186
187 Flavors:
188 88AP510 a.k.a Armada 510
189 Product Brief : http://www.marvell.com/application-processors/armada-500/assets/Marvell_Armada510_SoC.pdf
190 Hardware Spec : http://www.marvell.com/application-processors/armada-500/assets/Armada-510-Hardware-Spec.pdf
191 Functional Spec : http://www.marvell.com/application-processors/armada-500/assets/Armada-510-Functional-Spec.pdf
192 Homepage: http://www.marvell.com/application-processors/armada-500/
193 Core: ARMv7 compatible
194
195 Directory: arch/arm/mach-mvebu (DT enabled platforms)
196 arch/arm/mach-dove (non-DT enabled platforms)
197
198PXA 2xx/3xx/93x/95x family
199--------------------------
200
201 Flavors:
202 PXA21x, PXA25x, PXA26x
203 Application processor only
204 Core: ARMv5 XScale1 core
205 PXA270, PXA271, PXA272
206 Product Brief : http://www.marvell.com/application-processors/pxa-family/assets/pxa_27x_pb.pdf
207 Design guide : http://www.marvell.com/application-processors/pxa-family/assets/pxa_27x_design_guide.pdf
208 Developers manual : http://www.marvell.com/application-processors/pxa-family/assets/pxa_27x_dev_man.pdf
209 Specification : http://www.marvell.com/application-processors/pxa-family/assets/pxa_27x_emts.pdf
210 Specification update : http://www.marvell.com/application-processors/pxa-family/assets/pxa_27x_spec_update.pdf
211 Application processor only
212 Core: ARMv5 XScale2 core
213 PXA300, PXA310, PXA320
214 PXA 300 Product Brief : http://www.marvell.com/application-processors/pxa-family/assets/PXA300_PB_R4.pdf
215 PXA 310 Product Brief : http://www.marvell.com/application-processors/pxa-family/assets/PXA310_PB_R4.pdf
216 PXA 320 Product Brief : http://www.marvell.com/application-processors/pxa-family/assets/PXA320_PB_R4.pdf
217 Design guide : http://www.marvell.com/application-processors/pxa-family/assets/PXA3xx_Design_Guide.pdf
218 Developers manual : http://www.marvell.com/application-processors/pxa-family/assets/PXA3xx_Developers_Manual.zip
219 Specifications : http://www.marvell.com/application-processors/pxa-family/assets/PXA3xx_EMTS.pdf
220 Specification Update : http://www.marvell.com/application-processors/pxa-family/assets/PXA3xx_Spec_Update.zip
221 Reference Manual : http://www.marvell.com/application-processors/pxa-family/assets/PXA3xx_TavorP_BootROM_Ref_Manual.pdf
222 Application processor only
223 Core: ARMv5 XScale3 core
224 PXA930, PXA935
225 Application processor with Communication processor
226 Core: ARMv5 XScale3 core
227 PXA955
228 Application processor with Communication processor
229 Core: ARMv7 compatible Sheeva PJ4 core
230
231 Comments:
232
233 * This line of SoCs originates from the XScale family developed by
234 Intel and acquired by Marvell in ~2006. The PXA21x, PXA25x,
235 PXA26x, PXA27x, PXA3xx and PXA93x were developed by Intel, while
236 the later PXA95x were developed by Marvell.
237
238 * Due to their XScale origin, these SoCs have virtually nothing in
239 common with the other (Kirkwood, Dove, etc.) families of Marvell
240 SoCs, except with the MMP/MMP2 family of SoCs.
241
242 Linux kernel mach directory: arch/arm/mach-pxa
243 Linux kernel plat directory: arch/arm/plat-pxa
244
245MMP/MMP2/MMP3 family (communication processor)
246-----------------------------------------
247
248 Flavors:
249 PXA168, a.k.a Armada 168
250 Homepage : http://www.marvell.com/application-processors/armada-100/armada-168.jsp
251 Product brief : http://www.marvell.com/application-processors/armada-100/assets/pxa_168_pb.pdf
252 Hardware manual : http://www.marvell.com/application-processors/armada-100/assets/armada_16x_datasheet.pdf
253 Software manual : http://www.marvell.com/application-processors/armada-100/assets/armada_16x_software_manual.pdf
254 Specification update : http://www.marvell.com/application-processors/armada-100/assets/ARMADA16x_Spec_update.pdf
255 Boot ROM manual : http://www.marvell.com/application-processors/armada-100/assets/armada_16x_ref_manual.pdf
256 App node package : http://www.marvell.com/application-processors/armada-100/assets/armada_16x_app_note_package.pdf
257 Application processor only
258 Core: ARMv5 compatible Marvell PJ1 88sv331 (Mohawk)
259 PXA910/PXA920
260 Homepage : http://www.marvell.com/communication-processors/pxa910/
261 Product Brief : http://www.marvell.com/communication-processors/pxa910/assets/Marvell_PXA910_Platform-001_PB_final.pdf
262 Application processor with Communication processor
263 Core: ARMv5 compatible Marvell PJ1 88sv331 (Mohawk)
264 PXA688, a.k.a. MMP2, a.k.a Armada 610
265 Product Brief : http://www.marvell.com/application-processors/armada-600/assets/armada610_pb.pdf
266 Application processor only
267 Core: ARMv7 compatible Sheeva PJ4 88sv581x core
268 PXA2128, a.k.a. MMP3 (OLPC XO4, Linux support not upstream)
269 Product Brief : http://www.marvell.com/application-processors/armada/pxa2128/assets/Marvell-ARMADA-PXA2128-SoC-PB.pdf
270 Application processor only
271 Core: Dual-core ARMv7 compatible Sheeva PJ4C core
272 PXA960/PXA968/PXA978 (Linux support not upstream)
273 Application processor with Communication Processor
274 Core: ARMv7 compatible Sheeva PJ4 core
275 PXA986/PXA988 (Linux support not upstream)
276 Application processor with Communication Processor
277 Core: Dual-core ARMv7 compatible Sheeva PJ4B-MP core
278 PXA1088/PXA1920 (Linux support not upstream)
279 Application processor with Communication Processor
280 Core: quad-core ARMv7 Cortex-A7
281 PXA1908/PXA1928/PXA1936
282 Application processor with Communication Processor
283 Core: multi-core ARMv8 Cortex-A53
284
285 Comments:
286
287 * This line of SoCs originates from the XScale family developed by
288 Intel and acquired by Marvell in ~2006. All the processors of
289 this MMP/MMP2 family were developed by Marvell.
290
291 * Due to their XScale origin, these SoCs have virtually nothing in
292 common with the other (Kirkwood, Dove, etc.) families of Marvell
293 SoCs, except with the PXA family of SoCs listed above.
294
295 Linux kernel mach directory: arch/arm/mach-mmp
296 Linux kernel plat directory: arch/arm/plat-pxa
297
298Berlin family (Multimedia Solutions)
299-------------------------------------
300
301 Flavors:
302 88DE3010, Armada 1000 (no Linux support)
303 Core: Marvell PJ1 (ARMv5TE), Dual-core
304 Product Brief: http://www.marvell.com.cn/digital-entertainment/assets/armada_1000_pb.pdf
305 88DE3005, Armada 1500 Mini
306 Design name: BG2CD
307 Core: ARM Cortex-A9, PL310 L2CC
308 88DE3006, Armada 1500 Mini Plus
309 Design name: BG2CDP
310 Core: Dual Core ARM Cortex-A7
311 88DE3100, Armada 1500
312 Design name: BG2
313 Core: Marvell PJ4B-MP (ARMv7), Tauros3 L2CC
314 88DE3114, Armada 1500 Pro
315 Design name: BG2Q
316 Core: Quad Core ARM Cortex-A9, PL310 L2CC
317 88DE3214, Armada 1500 Pro 4K
318 Design name: BG3
319 Core: ARM Cortex-A15, CA15 integrated L2CC
320 88DE3218, ARMADA 1500 Ultra
321 Core: ARM Cortex-A53
322
323 Homepage: https://www.synaptics.com/products/multimedia-solutions
324 Directory: arch/arm/mach-berlin
325
326 Comments:
327
328 * This line of SoCs is based on Marvell Sheeva or ARM Cortex CPUs
329 with Synopsys DesignWare (IRQ, GPIO, Timers, ...) and PXA IP (SDHCI, USB, ETH, ...).
330
331 * The Berlin family was acquired by Synaptics from Marvell in 2017.
332
333CPU Cores
334---------
335
336The XScale cores were designed by Intel, and shipped by Marvell in the older
337PXA processors. Feroceon is a Marvell designed core that developed in-house,
338and that evolved into Sheeva. The XScale and Feroceon cores were phased out
339over time and replaced with Sheeva cores in later products, which subsequently
340got replaced with licensed ARM Cortex-A cores.
341
342 XScale 1
343 CPUID 0x69052xxx
344 ARMv5, iWMMXt
345 XScale 2
346 CPUID 0x69054xxx
347 ARMv5, iWMMXt
348 XScale 3
349 CPUID 0x69056xxx or 0x69056xxx
350 ARMv5, iWMMXt
351 Feroceon-1850 88fr331 "Mohawk"
352 CPUID 0x5615331x or 0x41xx926x
353 ARMv5TE, single issue
354 Feroceon-2850 88fr531-vd "Jolteon"
355 CPUID 0x5605531x or 0x41xx926x
356 ARMv5TE, VFP, dual-issue
357 Feroceon 88fr571-vd "Jolteon"
358 CPUID 0x5615571x
359 ARMv5TE, VFP, dual-issue
360 Feroceon 88fr131 "Mohawk-D"
361 CPUID 0x5625131x
362 ARMv5TE, single-issue in-order
363 Sheeva PJ1 88sv331 "Mohawk"
364 CPUID 0x561584xx
365 ARMv5, single-issue iWMMXt v2
366 Sheeva PJ4 88sv581x "Flareon"
367 CPUID 0x560f581x
368 ARMv7, idivt, optional iWMMXt v2
369 Sheeva PJ4B 88sv581x
370 CPUID 0x561f581x
371 ARMv7, idivt, optional iWMMXt v2
372 Sheeva PJ4B-MP / PJ4C
373 CPUID 0x562f584x
374 ARMv7, idivt/idiva, LPAE, optional iWMMXt v2 and/or NEON
375
376Long-term plans
377---------------
378
379 * Unify the mach-dove/, mach-mv78xx0/, mach-orion5x/ into the
380 mach-mvebu/ to support all SoCs from the Marvell EBU (Engineering
381 Business Unit) in a single mach-<foo> directory. The plat-orion/
382 would therefore disappear.
383
384 * Unify the mach-mmp/ and mach-pxa/ into the same mach-pxa
385 directory. The plat-pxa/ would therefore disappear.
386
387Credits
388-------
389
390 Maen Suleiman <maen@marvell.com>
391 Lior Amsalem <alior@marvell.com>
392 Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
393 Andrew Lunn <andrew@lunn.ch>
394 Nicolas Pitre <nico@fluxnic.net>
395 Eric Miao <eric.y.miao@gmail.com>
diff --git a/Documentation/arm/Netwinder b/Documentation/arm/Netwinder
deleted file mode 100644
index f1b457fbd3de..000000000000
--- a/Documentation/arm/Netwinder
+++ /dev/null
@@ -1,78 +0,0 @@
1NetWinder specific documentation
2================================
3
4The NetWinder is a small low-power computer, primarily designed
5to run Linux. It is based around the StrongARM RISC processor,
6DC21285 PCI bridge, with PC-type hardware glued around it.
7
8Port usage
9==========
10
11Min - Max Description
12---------------------------
130x0000 - 0x000f DMA1
140x0020 - 0x0021 PIC1
150x0060 - 0x006f Keyboard
160x0070 - 0x007f RTC
170x0080 - 0x0087 DMA1
180x0088 - 0x008f DMA2
190x00a0 - 0x00a3 PIC2
200x00c0 - 0x00df DMA2
210x0180 - 0x0187 IRDA
220x01f0 - 0x01f6 ide0
230x0201 Game port
240x0203 RWA010 configuration read
250x0220 - ? SoundBlaster
260x0250 - ? WaveArtist
270x0279 RWA010 configuration index
280x02f8 - 0x02ff Serial ttyS1
290x0300 - 0x031f Ether10
300x0338 GPIO1
310x033a GPIO2
320x0370 - 0x0371 W83977F configuration registers
330x0388 - ? AdLib
340x03c0 - 0x03df VGA
350x03f6 ide0
360x03f8 - 0x03ff Serial ttyS0
370x0400 - 0x0408 DC21143
380x0480 - 0x0487 DMA1
390x0488 - 0x048f DMA2
400x0a79 RWA010 configuration write
410xe800 - 0xe80f ide0/ide1 BM DMA
42
43
44Interrupt usage
45===============
46
47IRQ type Description
48---------------------------
49 0 ISA 100Hz timer
50 1 ISA Keyboard
51 2 ISA cascade
52 3 ISA Serial ttyS1
53 4 ISA Serial ttyS0
54 5 ISA PS/2 mouse
55 6 ISA IRDA
56 7 ISA Printer
57 8 ISA RTC alarm
58 9 ISA
5910 ISA GP10 (Orange reset button)
6011 ISA
6112 ISA WaveArtist
6213 ISA
6314 ISA hda1
6415 ISA
65
66DMA usage
67=========
68
69DMA type Description
70---------------------------
71 0 ISA IRDA
72 1 ISA
73 2 ISA cascade
74 3 ISA WaveArtist
75 4 ISA
76 5 ISA
77 6 ISA
78 7 ISA WaveArtist
diff --git a/Documentation/arm/SA1100/FreeBird b/Documentation/arm/SA1100/FreeBird
deleted file mode 100644
index ab9193663b2b..000000000000
--- a/Documentation/arm/SA1100/FreeBird
+++ /dev/null
@@ -1,21 +0,0 @@
1Freebird-1.1 is produced by Legend(C), Inc.
2http://web.archive.org/web/*/http://www.legend.com.cn
3and software/linux maintained by Coventive(C), Inc.
4(http://www.coventive.com)
5
6Based on the Nicolas's strongarm kernel tree.
7
8===============================================================
9Maintainer:
10
11Chester Kuo <chester@coventive.com>
12 <chester@linux.org.tw>
13
14Author :
15Tim wu <timwu@coventive.com>
16CIH <cih@coventive.com>
17Eric Peng <ericpeng@coventive.com>
18Jeff Lee <jeff_lee@coventive.com>
19Allen Cheng
20Tony Liu <tonyliu@coventive.com>
21
diff --git a/Documentation/arm/SA1100/empeg b/Documentation/arm/SA1100/empeg
deleted file mode 100644
index 4ece4849a42c..000000000000
--- a/Documentation/arm/SA1100/empeg
+++ /dev/null
@@ -1,2 +0,0 @@
1See ../empeg/README
2
diff --git a/Documentation/arm/SA1100/serial_UART b/Documentation/arm/SA1100/serial_UART
deleted file mode 100644
index a63966f1d083..000000000000
--- a/Documentation/arm/SA1100/serial_UART
+++ /dev/null
@@ -1,47 +0,0 @@
1The SA1100 serial port had its major/minor numbers officially assigned:
2
3> Date: Sun, 24 Sep 2000 21:40:27 -0700
4> From: H. Peter Anvin <hpa@transmeta.com>
5> To: Nicolas Pitre <nico@CAM.ORG>
6> Cc: Device List Maintainer <device@lanana.org>
7> Subject: Re: device
8>
9> Okay. Note that device numbers 204 and 205 are used for "low density
10> serial devices", so you will have a range of minors on those majors (the
11> tty device layer handles this just fine, so you don't have to worry about
12> doing anything special.)
13>
14> So your assignments are:
15>
16> 204 char Low-density serial ports
17> 5 = /dev/ttySA0 SA1100 builtin serial port 0
18> 6 = /dev/ttySA1 SA1100 builtin serial port 1
19> 7 = /dev/ttySA2 SA1100 builtin serial port 2
20>
21> 205 char Low-density serial ports (alternate device)
22> 5 = /dev/cusa0 Callout device for ttySA0
23> 6 = /dev/cusa1 Callout device for ttySA1
24> 7 = /dev/cusa2 Callout device for ttySA2
25>
26
27You must create those inodes in /dev on the root filesystem used
28by your SA1100-based device:
29
30 mknod ttySA0 c 204 5
31 mknod ttySA1 c 204 6
32 mknod ttySA2 c 204 7
33 mknod cusa0 c 205 5
34 mknod cusa1 c 205 6
35 mknod cusa2 c 205 7
36
37In addition to the creation of the appropriate device nodes above, you
38must ensure your user space applications make use of the correct device
39name. The classic example is the content of the /etc/inittab file where
40you might have a getty process started on ttyS0. In this case:
41
42- replace occurrences of ttyS0 with ttySA0, ttyS1 with ttySA1, etc.
43
44- don't forget to add 'ttySA0', 'console', or the appropriate tty name
45 in /etc/securetty for root to be allowed to login as well.
46
47
diff --git a/Documentation/arm/README b/Documentation/arm/arm.rst
index 9d1e5b2c92e6..2edc509df92a 100644
--- a/Documentation/arm/README
+++ b/Documentation/arm/arm.rst
@@ -1,5 +1,6 @@
1 ARM Linux 2.6 1=======================
2 ============= 2ARM Linux 2.6 and upper
3=======================
3 4
4 Please check <ftp://ftp.arm.linux.org.uk/pub/armlinux> for 5 Please check <ftp://ftp.arm.linux.org.uk/pub/armlinux> for
5 updates. 6 updates.
@@ -18,22 +19,28 @@ Compilation of kernel
18 line as detailed below. 19 line as detailed below.
19 20
20 If you wish to cross-compile, then alter the following lines in the top 21 If you wish to cross-compile, then alter the following lines in the top
21 level make file: 22 level make file::
22 23
23 ARCH = <whatever> 24 ARCH = <whatever>
24 with 25
26 with::
27
25 ARCH = arm 28 ARCH = arm
26 29
27 and 30 and::
28 31
29 CROSS_COMPILE= 32 CROSS_COMPILE=
30 to 33
34 to::
35
31 CROSS_COMPILE=<your-path-to-your-compiler-without-gcc> 36 CROSS_COMPILE=<your-path-to-your-compiler-without-gcc>
32 eg. 37
38 eg.::
39
33 CROSS_COMPILE=arm-linux- 40 CROSS_COMPILE=arm-linux-
34 41
35 Do a 'make config', followed by 'make Image' to build the kernel 42 Do a 'make config', followed by 'make Image' to build the kernel
36 (arch/arm/boot/Image). A compressed image can be built by doing a 43 (arch/arm/boot/Image). A compressed image can be built by doing a
37 'make zImage' instead of 'make Image'. 44 'make zImage' instead of 'make Image'.
38 45
39 46
@@ -46,7 +53,7 @@ Bug reports etc
46 53
47 Bug reports should be sent to linux-arm-kernel@lists.arm.linux.org.uk, 54 Bug reports should be sent to linux-arm-kernel@lists.arm.linux.org.uk,
48 or submitted through the web form at 55 or submitted through the web form at
49 http://www.arm.linux.org.uk/developer/ 56 http://www.arm.linux.org.uk/developer/
50 57
51 When sending bug reports, please ensure that they contain all relevant 58 When sending bug reports, please ensure that they contain all relevant
52 information, eg. the kernel messages that were printed before/during 59 information, eg. the kernel messages that were printed before/during
@@ -60,11 +67,13 @@ Include files
60 which are there to reduce the clutter in the top-level directory. These 67 which are there to reduce the clutter in the top-level directory. These
61 directories, and their purpose is listed below: 68 directories, and their purpose is listed below:
62 69
63 arch-* machine/platform specific header files 70 ============= ==========================================================
64 hardware driver-internal ARM specific data structures/definitions 71 `arch-*` machine/platform specific header files
65 mach descriptions of generic ARM to specific machine interfaces 72 `hardware` driver-internal ARM specific data structures/definitions
66 proc-* processor dependent header files (currently only two 73 `mach` descriptions of generic ARM to specific machine interfaces
74 `proc-*` processor dependent header files (currently only two
67 categories) 75 categories)
76 ============= ==========================================================
68 77
69 78
70Machine/Platform support 79Machine/Platform support
@@ -129,7 +138,7 @@ ST506 hard drives
129 HDC base to the source. 138 HDC base to the source.
130 139
131 As of 31/3/96 it works with two drives (you should get the ADFS 140 As of 31/3/96 it works with two drives (you should get the ADFS
132 *configure harddrive set to 2). I've got an internal 20MB and a great 141 `*configure` harddrive set to 2). I've got an internal 20MB and a great
133 big external 5.25" FH 64MB drive (who could ever want more :-) ). 142 big external 5.25" FH 64MB drive (who could ever want more :-) ).
134 143
135 I've just got 240K/s off it (a dd with bs=128k); thats about half of what 144 I've just got 240K/s off it (a dd with bs=128k); thats about half of what
@@ -149,13 +158,13 @@ ST506 hard drives
149 are welcome. 158 are welcome.
150 159
151 160
152CONFIG_MACH_ and CONFIG_ARCH_ 161`CONFIG_MACH_` and `CONFIG_ARCH_`
153----------------------------- 162---------------------------------
154 A change was made in 2003 to the macro names for new machines. 163 A change was made in 2003 to the macro names for new machines.
155 Historically, CONFIG_ARCH_ was used for the bonafide architecture, 164 Historically, `CONFIG_ARCH_` was used for the bonafide architecture,
156 e.g. SA1100, as well as implementations of the architecture, 165 e.g. SA1100, as well as implementations of the architecture,
157 e.g. Assabet. It was decided to change the implementation macros 166 e.g. Assabet. It was decided to change the implementation macros
158 to read CONFIG_MACH_ for clarity. Moreover, a retroactive fixup has 167 to read `CONFIG_MACH_` for clarity. Moreover, a retroactive fixup has
159 not been made because it would complicate patching. 168 not been made because it would complicate patching.
160 169
161 Previous registrations may be found online. 170 Previous registrations may be found online.
@@ -163,7 +172,7 @@ CONFIG_MACH_ and CONFIG_ARCH_
163 <http://www.arm.linux.org.uk/developer/machines/> 172 <http://www.arm.linux.org.uk/developer/machines/>
164 173
165Kernel entry (head.S) 174Kernel entry (head.S)
166-------------------------- 175---------------------
167 The initial entry into the kernel is via head.S, which uses machine 176 The initial entry into the kernel is via head.S, which uses machine
168 independent code. The machine is selected by the value of 'r1' on 177 independent code. The machine is selected by the value of 'r1' on
169 entry, which must be kept unique. 178 entry, which must be kept unique.
@@ -201,4 +210,5 @@ Kernel entry (head.S)
201 platform is DT-only, you do not need a registered machine type. 210 platform is DT-only, you do not need a registered machine type.
202 211
203--- 212---
213
204Russell King (15/03/2004) 214Russell King (15/03/2004)
diff --git a/Documentation/arm/Booting b/Documentation/arm/booting.rst
index f1f965ce93d6..4babb6c6ae1e 100644
--- a/Documentation/arm/Booting
+++ b/Documentation/arm/booting.rst
@@ -1,7 +1,9 @@
1 Booting ARM Linux 1=================
2 ================= 2Booting ARM Linux
3=================
3 4
4Author: Russell King 5Author: Russell King
6
5Date : 18 May 2002 7Date : 18 May 2002
6 8
7The following documentation is relevant to 2.4.18-rmk6 and beyond. 9The following documentation is relevant to 2.4.18-rmk6 and beyond.
@@ -25,8 +27,10 @@ following:
251. Setup and initialise RAM 271. Setup and initialise RAM
26--------------------------- 28---------------------------
27 29
28Existing boot loaders: MANDATORY 30Existing boot loaders:
29New boot loaders: MANDATORY 31 MANDATORY
32New boot loaders:
33 MANDATORY
30 34
31The boot loader is expected to find and initialise all RAM that the 35The boot loader is expected to find and initialise all RAM that the
32kernel will use for volatile data storage in the system. It performs 36kernel will use for volatile data storage in the system. It performs
@@ -39,8 +43,10 @@ sees fit.)
392. Initialise one serial port 432. Initialise one serial port
40----------------------------- 44-----------------------------
41 45
42Existing boot loaders: OPTIONAL, RECOMMENDED 46Existing boot loaders:
43New boot loaders: OPTIONAL, RECOMMENDED 47 OPTIONAL, RECOMMENDED
48New boot loaders:
49 OPTIONAL, RECOMMENDED
44 50
45The boot loader should initialise and enable one serial port on the 51The boot loader should initialise and enable one serial port on the
46target. This allows the kernel serial driver to automatically detect 52target. This allows the kernel serial driver to automatically detect
@@ -57,8 +63,10 @@ serial format options as described in
573. Detect the machine type 633. Detect the machine type
58-------------------------- 64--------------------------
59 65
60Existing boot loaders: OPTIONAL 66Existing boot loaders:
61New boot loaders: MANDATORY except for DT-only platforms 67 OPTIONAL
68New boot loaders:
69 MANDATORY except for DT-only platforms
62 70
63The boot loader should detect the machine type its running on by some 71The boot loader should detect the machine type its running on by some
64method. Whether this is a hard coded value or some algorithm that 72method. Whether this is a hard coded value or some algorithm that
@@ -74,8 +82,10 @@ necessary, but assures that it will not match any existing types.
744. Setup boot data 824. Setup boot data
75------------------ 83------------------
76 84
77Existing boot loaders: OPTIONAL, HIGHLY RECOMMENDED 85Existing boot loaders:
78New boot loaders: MANDATORY 86 OPTIONAL, HIGHLY RECOMMENDED
87New boot loaders:
88 MANDATORY
79 89
80The boot loader must provide either a tagged list or a dtb image for 90The boot loader must provide either a tagged list or a dtb image for
81passing configuration data to the kernel. The physical address of the 91passing configuration data to the kernel. The physical address of the
@@ -97,15 +107,15 @@ entirety; some tags behave as the former, others the latter.
97 107
98The boot loader must pass at a minimum the size and location of 108The boot loader must pass at a minimum the size and location of
99the system memory, and root filesystem location. Therefore, the 109the system memory, and root filesystem location. Therefore, the
100minimum tagged list should look: 110minimum tagged list should look::
101 111
102 +-----------+ 112 +-----------+
103base -> | ATAG_CORE | | 113 base -> | ATAG_CORE | |
104 +-----------+ | 114 +-----------+ |
105 | ATAG_MEM | | increasing address 115 | ATAG_MEM | | increasing address
106 +-----------+ | 116 +-----------+ |
107 | ATAG_NONE | | 117 | ATAG_NONE | |
108 +-----------+ v 118 +-----------+ v
109 119
110The tagged list should be stored in system RAM. 120The tagged list should be stored in system RAM.
111 121
@@ -134,8 +144,10 @@ A safe location is just above the 128MiB boundary from start of RAM.
1345. Load initramfs. 1445. Load initramfs.
135------------------ 145------------------
136 146
137Existing boot loaders: OPTIONAL 147Existing boot loaders:
138New boot loaders: OPTIONAL 148 OPTIONAL
149New boot loaders:
150 OPTIONAL
139 151
140If an initramfs is in use then, as with the dtb, it must be placed in 152If an initramfs is in use then, as with the dtb, it must be placed in
141a region of memory where the kernel decompressor will not overwrite it 153a region of memory where the kernel decompressor will not overwrite it
@@ -149,8 +161,10 @@ recommended above.
1496. Calling the kernel image 1616. Calling the kernel image
150--------------------------- 162---------------------------
151 163
152Existing boot loaders: MANDATORY 164Existing boot loaders:
153New boot loaders: MANDATORY 165 MANDATORY
166New boot loaders:
167 MANDATORY
154 168
155There are two options for calling the kernel zImage. If the zImage 169There are two options for calling the kernel zImage. If the zImage
156is stored in flash, and is linked correctly to be run from flash, 170is stored in flash, and is linked correctly to be run from flash,
@@ -174,12 +188,14 @@ In any case, the following conditions must be met:
174 you many hours of debug. 188 you many hours of debug.
175 189
176- CPU register settings 190- CPU register settings
177 r0 = 0, 191
178 r1 = machine type number discovered in (3) above. 192 - r0 = 0,
179 r2 = physical address of tagged list in system RAM, or 193 - r1 = machine type number discovered in (3) above.
180 physical address of device tree block (dtb) in system RAM 194 - r2 = physical address of tagged list in system RAM, or
195 physical address of device tree block (dtb) in system RAM
181 196
182- CPU mode 197- CPU mode
198
183 All forms of interrupts must be disabled (IRQs and FIQs) 199 All forms of interrupts must be disabled (IRQs and FIQs)
184 200
185 For CPUs which do not include the ARM virtualization extensions, the 201 For CPUs which do not include the ARM virtualization extensions, the
@@ -195,8 +211,11 @@ In any case, the following conditions must be met:
195 entered in SVC mode. 211 entered in SVC mode.
196 212
197- Caches, MMUs 213- Caches, MMUs
214
198 The MMU must be off. 215 The MMU must be off.
216
199 Instruction cache may be on or off. 217 Instruction cache may be on or off.
218
200 Data cache must be off. 219 Data cache must be off.
201 220
202 If the kernel is entered in HYP mode, the above requirements apply to 221 If the kernel is entered in HYP mode, the above requirements apply to
diff --git a/Documentation/arm/cluster-pm-race-avoidance.txt b/Documentation/arm/cluster-pm-race-avoidance.rst
index 750b6fc24af9..aa58603d3f28 100644
--- a/Documentation/arm/cluster-pm-race-avoidance.txt
+++ b/Documentation/arm/cluster-pm-race-avoidance.rst
@@ -1,3 +1,4 @@
1=========================================================
1Cluster-wide Power-up/power-down race avoidance algorithm 2Cluster-wide Power-up/power-down race avoidance algorithm
2========================================================= 3=========================================================
3 4
@@ -46,10 +47,12 @@ Basic model
46 47
47Each cluster and CPU is assigned a state, as follows: 48Each cluster and CPU is assigned a state, as follows:
48 49
49 DOWN 50 - DOWN
50 COMING_UP 51 - COMING_UP
51 UP 52 - UP
52 GOING_DOWN 53 - GOING_DOWN
54
55::
53 56
54 +---------> UP ----------+ 57 +---------> UP ----------+
55 | v 58 | v
@@ -60,18 +63,22 @@ Each cluster and CPU is assigned a state, as follows:
60 +--------- DOWN <--------+ 63 +--------- DOWN <--------+
61 64
62 65
63DOWN: The CPU or cluster is not coherent, and is either powered off or 66DOWN:
67 The CPU or cluster is not coherent, and is either powered off or
64 suspended, or is ready to be powered off or suspended. 68 suspended, or is ready to be powered off or suspended.
65 69
66COMING_UP: The CPU or cluster has committed to moving to the UP state. 70COMING_UP:
71 The CPU or cluster has committed to moving to the UP state.
67 It may be part way through the process of initialisation and 72 It may be part way through the process of initialisation and
68 enabling coherency. 73 enabling coherency.
69 74
70UP: The CPU or cluster is active and coherent at the hardware 75UP:
76 The CPU or cluster is active and coherent at the hardware
71 level. A CPU in this state is not necessarily being used 77 level. A CPU in this state is not necessarily being used
72 actively by the kernel. 78 actively by the kernel.
73 79
74GOING_DOWN: The CPU or cluster has committed to moving to the DOWN 80GOING_DOWN:
81 The CPU or cluster has committed to moving to the DOWN
75 state. It may be part way through the process of teardown and 82 state. It may be part way through the process of teardown and
76 coherency exit. 83 coherency exit.
77 84
@@ -86,8 +93,8 @@ CPUs in the cluster simultaneously modifying the state. The cluster-
86level states are described in the "Cluster state" section. 93level states are described in the "Cluster state" section.
87 94
88To help distinguish the CPU states from cluster states in this 95To help distinguish the CPU states from cluster states in this
89discussion, the state names are given a CPU_ prefix for the CPU states, 96discussion, the state names are given a `CPU_` prefix for the CPU states,
90and a CLUSTER_ or INBOUND_ prefix for the cluster states. 97and a `CLUSTER_` or `INBOUND_` prefix for the cluster states.
91 98
92 99
93CPU state 100CPU state
@@ -101,10 +108,12 @@ This means that CPUs fit the basic model closely.
101 108
102The algorithm defines the following states for each CPU in the system: 109The algorithm defines the following states for each CPU in the system:
103 110
104 CPU_DOWN 111 - CPU_DOWN
105 CPU_COMING_UP 112 - CPU_COMING_UP
106 CPU_UP 113 - CPU_UP
107 CPU_GOING_DOWN 114 - CPU_GOING_DOWN
115
116::
108 117
109 cluster setup and 118 cluster setup and
110 CPU setup complete policy decision 119 CPU setup complete policy decision
@@ -130,17 +139,17 @@ requirement for any external event to happen.
130 139
131 140
132CPU_DOWN: 141CPU_DOWN:
133
134 A CPU reaches the CPU_DOWN state when it is ready for 142 A CPU reaches the CPU_DOWN state when it is ready for
135 power-down. On reaching this state, the CPU will typically 143 power-down. On reaching this state, the CPU will typically
136 power itself down or suspend itself, via a WFI instruction or a 144 power itself down or suspend itself, via a WFI instruction or a
137 firmware call. 145 firmware call.
138 146
139 Next state: CPU_COMING_UP 147 Next state:
140 Conditions: none 148 CPU_COMING_UP
149 Conditions:
150 none
141 151
142 Trigger events: 152 Trigger events:
143
144 a) an explicit hardware power-up operation, resulting 153 a) an explicit hardware power-up operation, resulting
145 from a policy decision on another CPU; 154 from a policy decision on another CPU;
146 155
@@ -148,15 +157,17 @@ CPU_DOWN:
148 157
149 158
150CPU_COMING_UP: 159CPU_COMING_UP:
151
152 A CPU cannot start participating in hardware coherency until the 160 A CPU cannot start participating in hardware coherency until the
153 cluster is set up and coherent. If the cluster is not ready, 161 cluster is set up and coherent. If the cluster is not ready,
154 then the CPU will wait in the CPU_COMING_UP state until the 162 then the CPU will wait in the CPU_COMING_UP state until the
155 cluster has been set up. 163 cluster has been set up.
156 164
157 Next state: CPU_UP 165 Next state:
158 Conditions: The CPU's parent cluster must be in CLUSTER_UP. 166 CPU_UP
159 Trigger events: Transition of the parent cluster to CLUSTER_UP. 167 Conditions:
168 The CPU's parent cluster must be in CLUSTER_UP.
169 Trigger events:
170 Transition of the parent cluster to CLUSTER_UP.
160 171
161 Refer to the "Cluster state" section for a description of the 172 Refer to the "Cluster state" section for a description of the
162 CLUSTER_UP state. 173 CLUSTER_UP state.
@@ -178,20 +189,25 @@ CPU_UP:
178 The CPU remains in this state until an explicit policy decision 189 The CPU remains in this state until an explicit policy decision
179 is made to shut down or suspend the CPU. 190 is made to shut down or suspend the CPU.
180 191
181 Next state: CPU_GOING_DOWN 192 Next state:
182 Conditions: none 193 CPU_GOING_DOWN
183 Trigger events: explicit policy decision 194 Conditions:
195 none
196 Trigger events:
197 explicit policy decision
184 198
185 199
186CPU_GOING_DOWN: 200CPU_GOING_DOWN:
187
188 While in this state, the CPU exits coherency, including any 201 While in this state, the CPU exits coherency, including any
189 operations required to achieve this (such as cleaning data 202 operations required to achieve this (such as cleaning data
190 caches). 203 caches).
191 204
192 Next state: CPU_DOWN 205 Next state:
193 Conditions: local CPU teardown complete 206 CPU_DOWN
194 Trigger events: (spontaneous) 207 Conditions:
208 local CPU teardown complete
209 Trigger events:
210 (spontaneous)
195 211
196 212
197Cluster state 213Cluster state
@@ -212,20 +228,20 @@ independently of the CPU which is tearing down the cluster. For this
212reason, the cluster state is split into two parts: 228reason, the cluster state is split into two parts:
213 229
214 "cluster" state: The global state of the cluster; or the state 230 "cluster" state: The global state of the cluster; or the state
215 on the outbound side: 231 on the outbound side:
216 232
217 CLUSTER_DOWN 233 - CLUSTER_DOWN
218 CLUSTER_UP 234 - CLUSTER_UP
219 CLUSTER_GOING_DOWN 235 - CLUSTER_GOING_DOWN
220 236
221 "inbound" state: The state of the cluster on the inbound side. 237 "inbound" state: The state of the cluster on the inbound side.
222 238
223 INBOUND_NOT_COMING_UP 239 - INBOUND_NOT_COMING_UP
224 INBOUND_COMING_UP 240 - INBOUND_COMING_UP
225 241
226 242
227 The different pairings of these states results in six possible 243 The different pairings of these states results in six possible
228 states for the cluster as a whole: 244 states for the cluster as a whole::
229 245
230 CLUSTER_UP 246 CLUSTER_UP
231 +==========> INBOUND_NOT_COMING_UP -------------+ 247 +==========> INBOUND_NOT_COMING_UP -------------+
@@ -284,11 +300,12 @@ reason, the cluster state is split into two parts:
284 300
285 301
286CLUSTER_DOWN/INBOUND_NOT_COMING_UP: 302CLUSTER_DOWN/INBOUND_NOT_COMING_UP:
303 Next state:
304 CLUSTER_DOWN/INBOUND_COMING_UP (inbound)
305 Conditions:
306 none
287 307
288 Next state: CLUSTER_DOWN/INBOUND_COMING_UP (inbound)
289 Conditions: none
290 Trigger events: 308 Trigger events:
291
292 a) an explicit hardware power-up operation, resulting 309 a) an explicit hardware power-up operation, resulting
293 from a policy decision on another CPU; 310 from a policy decision on another CPU;
294 311
@@ -306,9 +323,12 @@ CLUSTER_DOWN/INBOUND_COMING_UP:
306 setup to enable other CPUs in the cluster to enter coherency 323 setup to enable other CPUs in the cluster to enter coherency
307 safely. 324 safely.
308 325
309 Next state: CLUSTER_UP/INBOUND_COMING_UP (inbound) 326 Next state:
310 Conditions: cluster-level setup and hardware coherency complete 327 CLUSTER_UP/INBOUND_COMING_UP (inbound)
311 Trigger events: (spontaneous) 328 Conditions:
329 cluster-level setup and hardware coherency complete
330 Trigger events:
331 (spontaneous)
312 332
313 333
314CLUSTER_UP/INBOUND_COMING_UP: 334CLUSTER_UP/INBOUND_COMING_UP:
@@ -321,9 +341,12 @@ CLUSTER_UP/INBOUND_COMING_UP:
321 CLUSTER_UP/INBOUND_NOT_COMING_UP. All other CPUs on the cluster 341 CLUSTER_UP/INBOUND_NOT_COMING_UP. All other CPUs on the cluster
322 should consider treat these two states as equivalent. 342 should consider treat these two states as equivalent.
323 343
324 Next state: CLUSTER_UP/INBOUND_NOT_COMING_UP (inbound) 344 Next state:
325 Conditions: none 345 CLUSTER_UP/INBOUND_NOT_COMING_UP (inbound)
326 Trigger events: (spontaneous) 346 Conditions:
347 none
348 Trigger events:
349 (spontaneous)
327 350
328 351
329CLUSTER_UP/INBOUND_NOT_COMING_UP: 352CLUSTER_UP/INBOUND_NOT_COMING_UP:
@@ -335,9 +358,12 @@ CLUSTER_UP/INBOUND_NOT_COMING_UP:
335 The cluster will remain in this state until a policy decision is 358 The cluster will remain in this state until a policy decision is
336 made to power the cluster down. 359 made to power the cluster down.
337 360
338 Next state: CLUSTER_GOING_DOWN/INBOUND_NOT_COMING_UP (outbound) 361 Next state:
339 Conditions: none 362 CLUSTER_GOING_DOWN/INBOUND_NOT_COMING_UP (outbound)
340 Trigger events: policy decision to power down the cluster 363 Conditions:
364 none
365 Trigger events:
366 policy decision to power down the cluster
341 367
342 368
343CLUSTER_GOING_DOWN/INBOUND_NOT_COMING_UP: 369CLUSTER_GOING_DOWN/INBOUND_NOT_COMING_UP:
@@ -359,13 +385,16 @@ CLUSTER_GOING_DOWN/INBOUND_NOT_COMING_UP:
359 Next states: 385 Next states:
360 386
361 CLUSTER_DOWN/INBOUND_NOT_COMING_UP (outbound) 387 CLUSTER_DOWN/INBOUND_NOT_COMING_UP (outbound)
362 Conditions: cluster torn down and ready to power off 388 Conditions:
363 Trigger events: (spontaneous) 389 cluster torn down and ready to power off
390 Trigger events:
391 (spontaneous)
364 392
365 CLUSTER_GOING_DOWN/INBOUND_COMING_UP (inbound) 393 CLUSTER_GOING_DOWN/INBOUND_COMING_UP (inbound)
366 Conditions: none 394 Conditions:
367 Trigger events: 395 none
368 396
397 Trigger events:
369 a) an explicit hardware power-up operation, 398 a) an explicit hardware power-up operation,
370 resulting from a policy decision on another 399 resulting from a policy decision on another
371 CPU; 400 CPU;
@@ -396,13 +425,19 @@ CLUSTER_GOING_DOWN/INBOUND_COMING_UP:
396 Next states: 425 Next states:
397 426
398 CLUSTER_UP/INBOUND_COMING_UP (outbound) 427 CLUSTER_UP/INBOUND_COMING_UP (outbound)
399 Conditions: cluster-level setup and hardware 428 Conditions:
429 cluster-level setup and hardware
400 coherency complete 430 coherency complete
401 Trigger events: (spontaneous) 431
432 Trigger events:
433 (spontaneous)
402 434
403 CLUSTER_DOWN/INBOUND_COMING_UP (outbound) 435 CLUSTER_DOWN/INBOUND_COMING_UP (outbound)
404 Conditions: cluster torn down and ready to power off 436 Conditions:
405 Trigger events: (spontaneous) 437 cluster torn down and ready to power off
438
439 Trigger events:
440 (spontaneous)
406 441
407 442
408Last man and First man selection 443Last man and First man selection
@@ -452,30 +487,30 @@ Implementation:
452 arch/arm/common/mcpm_entry.c (everything else): 487 arch/arm/common/mcpm_entry.c (everything else):
453 488
454 __mcpm_cpu_going_down() signals the transition of a CPU to the 489 __mcpm_cpu_going_down() signals the transition of a CPU to the
455 CPU_GOING_DOWN state. 490 CPU_GOING_DOWN state.
456 491
457 __mcpm_cpu_down() signals the transition of a CPU to the CPU_DOWN 492 __mcpm_cpu_down() signals the transition of a CPU to the CPU_DOWN
458 state. 493 state.
459 494
460 A CPU transitions to CPU_COMING_UP and then to CPU_UP via the 495 A CPU transitions to CPU_COMING_UP and then to CPU_UP via the
461 low-level power-up code in mcpm_head.S. This could 496 low-level power-up code in mcpm_head.S. This could
462 involve CPU-specific setup code, but in the current 497 involve CPU-specific setup code, but in the current
463 implementation it does not. 498 implementation it does not.
464 499
465 __mcpm_outbound_enter_critical() and __mcpm_outbound_leave_critical() 500 __mcpm_outbound_enter_critical() and __mcpm_outbound_leave_critical()
466 handle transitions from CLUSTER_UP to CLUSTER_GOING_DOWN 501 handle transitions from CLUSTER_UP to CLUSTER_GOING_DOWN
467 and from there to CLUSTER_DOWN or back to CLUSTER_UP (in 502 and from there to CLUSTER_DOWN or back to CLUSTER_UP (in
468 the case of an aborted cluster power-down). 503 the case of an aborted cluster power-down).
469 504
470 These functions are more complex than the __mcpm_cpu_*() 505 These functions are more complex than the __mcpm_cpu_*()
471 functions due to the extra inter-CPU coordination which 506 functions due to the extra inter-CPU coordination which
472 is needed for safe transitions at the cluster level. 507 is needed for safe transitions at the cluster level.
473 508
474 A cluster transitions from CLUSTER_DOWN back to CLUSTER_UP via 509 A cluster transitions from CLUSTER_DOWN back to CLUSTER_UP via
475 the low-level power-up code in mcpm_head.S. This 510 the low-level power-up code in mcpm_head.S. This
476 typically involves platform-specific setup code, 511 typically involves platform-specific setup code,
477 provided by the platform-specific power_up_setup 512 provided by the platform-specific power_up_setup
478 function registered via mcpm_sync_init. 513 function registered via mcpm_sync_init.
479 514
480Deep topologies: 515Deep topologies:
481 516
diff --git a/Documentation/arm/firmware.txt b/Documentation/arm/firmware.rst
index 7f175dbb427e..efd844baec1d 100644
--- a/Documentation/arm/firmware.txt
+++ b/Documentation/arm/firmware.rst
@@ -1,5 +1,7 @@
1Interface for registering and calling firmware-specific operations for ARM. 1==========================================================================
2---- 2Interface for registering and calling firmware-specific operations for ARM
3==========================================================================
4
3Written by Tomasz Figa <t.figa@samsung.com> 5Written by Tomasz Figa <t.figa@samsung.com>
4 6
5Some boards are running with secure firmware running in TrustZone secure 7Some boards are running with secure firmware running in TrustZone secure
@@ -9,7 +11,7 @@ operations and call them when needed.
9 11
10Firmware operations can be specified by filling in a struct firmware_ops 12Firmware operations can be specified by filling in a struct firmware_ops
11with appropriate callbacks and then registering it with register_firmware_ops() 13with appropriate callbacks and then registering it with register_firmware_ops()
12function. 14function::
13 15
14 void register_firmware_ops(const struct firmware_ops *ops) 16 void register_firmware_ops(const struct firmware_ops *ops)
15 17
@@ -19,7 +21,7 @@ and its members can be found in arch/arm/include/asm/firmware.h header.
19There is a default, empty set of operations provided, so there is no need to 21There is a default, empty set of operations provided, so there is no need to
20set anything if platform does not require firmware operations. 22set anything if platform does not require firmware operations.
21 23
22To call a firmware operation, a helper macro is provided 24To call a firmware operation, a helper macro is provided::
23 25
24 #define call_firmware_op(op, ...) \ 26 #define call_firmware_op(op, ...) \
25 ((firmware_ops->op) ? firmware_ops->op(__VA_ARGS__) : (-ENOSYS)) 27 ((firmware_ops->op) ? firmware_ops->op(__VA_ARGS__) : (-ENOSYS))
@@ -28,7 +30,7 @@ the macro checks if the operation is provided and calls it or otherwise returns
28-ENOSYS to signal that given operation is not available (for example, to allow 30-ENOSYS to signal that given operation is not available (for example, to allow
29fallback to legacy operation). 31fallback to legacy operation).
30 32
31Example of registering firmware operations: 33Example of registering firmware operations::
32 34
33 /* board file */ 35 /* board file */
34 36
@@ -56,7 +58,7 @@ Example of registering firmware operations:
56 register_firmware_ops(&platformX_firmware_ops); 58 register_firmware_ops(&platformX_firmware_ops);
57 } 59 }
58 60
59Example of using a firmware operation: 61Example of using a firmware operation::
60 62
61 /* some platform code, e.g. SMP initialization */ 63 /* some platform code, e.g. SMP initialization */
62 64
diff --git a/Documentation/arm/index.rst b/Documentation/arm/index.rst
new file mode 100644
index 000000000000..bd316d1a1802
--- /dev/null
+++ b/Documentation/arm/index.rst
@@ -0,0 +1,80 @@
1:orphan:
2
3================
4ARM Architecture
5================
6
7.. toctree::
8 :maxdepth: 1
9
10 arm
11 booting
12 cluster-pm-race-avoidance
13 firmware
14 interrupts
15 kernel_mode_neon
16 kernel_user_helpers
17 memory
18 mem_alignment
19 tcm
20 setup
21 swp_emulation
22 uefi
23 vlocks
24 porting
25
26SoC-specific documents
27======================
28
29.. toctree::
30 :maxdepth: 1
31
32 ixp4xx
33
34 marvel
35 microchip
36
37 netwinder
38 nwfpe/index
39
40 keystone/overview
41 keystone/knav-qmss
42
43 omap/index
44
45 pxa/mfp
46
47
48 sa1100/index
49
50 stm32/stm32f746-overview
51 stm32/overview
52 stm32/stm32h743-overview
53 stm32/stm32f769-overview
54 stm32/stm32f429-overview
55 stm32/stm32mp157-overview
56
57 sunxi
58
59 samsung/index
60 samsung-s3c24xx/index
61
62 sunxi/clocks
63
64 spear/overview
65
66 sti/stih416-overview
67 sti/stih407-overview
68 sti/stih418-overview
69 sti/overview
70 sti/stih415-overview
71
72 vfp/release-notes
73
74
75.. only:: subproject and html
76
77 Indices
78 =======
79
80 * :ref:`genindex`
diff --git a/Documentation/arm/Interrupts b/Documentation/arm/interrupts.rst
index f09ab1b90ef1..2ae70e0e9732 100644
--- a/Documentation/arm/Interrupts
+++ b/Documentation/arm/interrupts.rst
@@ -1,8 +1,10 @@
12.5.2-rmk5 1==========
2---------- 2Interrupts
3==========
3 4
4This is the first kernel that contains a major shake up of some of the 52.5.2-rmk5:
5major architecture-specific subsystems. 6 This is the first kernel that contains a major shake up of some of the
7 major architecture-specific subsystems.
6 8
7Firstly, it contains some pretty major changes to the way we handle the 9Firstly, it contains some pretty major changes to the way we handle the
8MMU TLB. Each MMU TLB variant is now handled completely separately - 10MMU TLB. Each MMU TLB variant is now handled completely separately -
@@ -18,7 +20,7 @@ Unfortunately, this means that machine types that touch the irq_desc[]
18array (basically all machine types) will break, and this means every 20array (basically all machine types) will break, and this means every
19machine type that we currently have. 21machine type that we currently have.
20 22
21Lets take an example. On the Assabet with Neponset, we have: 23Lets take an example. On the Assabet with Neponset, we have::
22 24
23 GPIO25 IRR:2 25 GPIO25 IRR:2
24 SA1100 ------------> Neponset -----------> SA1111 26 SA1100 ------------> Neponset -----------> SA1111
@@ -48,42 +50,47 @@ the irqdesc array). This doesn't have to be a real "IC"; indeed the
48SA11x0 IRQs are handled by two separate "chip" structures, one for 50SA11x0 IRQs are handled by two separate "chip" structures, one for
49GPIO0-10, and another for all the rest. It is just a container for 51GPIO0-10, and another for all the rest. It is just a container for
50the various operations (maybe this'll change to a better name). 52the various operations (maybe this'll change to a better name).
51This structure has the following operations: 53This structure has the following operations::
52 54
53struct irqchip { 55 struct irqchip {
54 /* 56 /*
55 * Acknowledge the IRQ. 57 * Acknowledge the IRQ.
56 * If this is a level-based IRQ, then it is expected to mask the IRQ 58 * If this is a level-based IRQ, then it is expected to mask the IRQ
57 * as well. 59 * as well.
58 */ 60 */
59 void (*ack)(unsigned int irq); 61 void (*ack)(unsigned int irq);
60 /* 62 /*
61 * Mask the IRQ in hardware. 63 * Mask the IRQ in hardware.
62 */ 64 */
63 void (*mask)(unsigned int irq); 65 void (*mask)(unsigned int irq);
64 /* 66 /*
65 * Unmask the IRQ in hardware. 67 * Unmask the IRQ in hardware.
66 */ 68 */
67 void (*unmask)(unsigned int irq); 69 void (*unmask)(unsigned int irq);
68 /* 70 /*
69 * Re-run the IRQ 71 * Re-run the IRQ
70 */ 72 */
71 void (*rerun)(unsigned int irq); 73 void (*rerun)(unsigned int irq);
72 /* 74 /*
73 * Set the type of the IRQ. 75 * Set the type of the IRQ.
74 */ 76 */
75 int (*type)(unsigned int irq, unsigned int, type); 77 int (*type)(unsigned int irq, unsigned int, type);
76}; 78 };
77 79
78ack - required. May be the same function as mask for IRQs 80ack
81 - required. May be the same function as mask for IRQs
79 handled by do_level_IRQ. 82 handled by do_level_IRQ.
80mask - required. 83mask
81unmask - required. 84 - required.
82rerun - optional. Not required if you're using do_level_IRQ for all 85unmask
86 - required.
87rerun
88 - optional. Not required if you're using do_level_IRQ for all
83 IRQs that use this 'irqchip'. Generally expected to re-trigger 89 IRQs that use this 'irqchip'. Generally expected to re-trigger
84 the hardware IRQ if possible. If not, may call the handler 90 the hardware IRQ if possible. If not, may call the handler
85 directly. 91 directly.
86type - optional. If you don't support changing the type of an IRQ, 92type
93 - optional. If you don't support changing the type of an IRQ,
87 it should be null so people can detect if they are unable to 94 it should be null so people can detect if they are unable to
88 set the IRQ type. 95 set the IRQ type.
89 96
@@ -109,6 +116,7 @@ manipulation, nor state tracking. This is useful for things like the
109SMC9196 and USAR above. 116SMC9196 and USAR above.
110 117
111So, what's changed? 118So, what's changed?
119===================
112 120
1131. Machine implementations must not write to the irqdesc array. 1211. Machine implementations must not write to the irqdesc array.
114 122
@@ -118,24 +126,19 @@ So, what's changed?
118 absolutely necessary. 126 absolutely necessary.
119 127
120 set_irq_chip(irq,chip) 128 set_irq_chip(irq,chip)
121
122 Set the mask/unmask methods for handling this IRQ 129 Set the mask/unmask methods for handling this IRQ
123 130
124 set_irq_handler(irq,handler) 131 set_irq_handler(irq,handler)
125
126 Set the handler for this IRQ (level, edge, simple) 132 Set the handler for this IRQ (level, edge, simple)
127 133
128 set_irq_chained_handler(irq,handler) 134 set_irq_chained_handler(irq,handler)
129
130 Set a "chained" handler for this IRQ - automatically 135 Set a "chained" handler for this IRQ - automatically
131 enables this IRQ (eg, Neponset and SA1111 handlers). 136 enables this IRQ (eg, Neponset and SA1111 handlers).
132 137
133 set_irq_flags(irq,flags) 138 set_irq_flags(irq,flags)
134
135 Set the valid/probe/noautoenable flags. 139 Set the valid/probe/noautoenable flags.
136 140
137 set_irq_type(irq,type) 141 set_irq_type(irq,type)
138
139 Set active the IRQ edge(s)/level. This replaces the 142 Set active the IRQ edge(s)/level. This replaces the
140 SA1111 INTPOL manipulation, and the set_GPIO_IRQ_edge() 143 SA1111 INTPOL manipulation, and the set_GPIO_IRQ_edge()
141 function. Type should be one of IRQ_TYPE_xxx defined in 144 function. Type should be one of IRQ_TYPE_xxx defined in
@@ -158,10 +161,9 @@ So, what's changed?
158 be re-checked for pending events. (see the Neponset IRQ handler for 161 be re-checked for pending events. (see the Neponset IRQ handler for
159 details). 162 details).
160 163
1617. fixup_irq() is gone, as is arch/arm/mach-*/include/mach/irq.h 1647. fixup_irq() is gone, as is `arch/arm/mach-*/include/mach/irq.h`
162 165
163Please note that this will not solve all problems - some of them are 166Please note that this will not solve all problems - some of them are
164hardware based. Mixing level-based and edge-based IRQs on the same 167hardware based. Mixing level-based and edge-based IRQs on the same
165parent signal (eg neponset) is one such area where a software based 168parent signal (eg neponset) is one such area where a software based
166solution can't provide the full answer to low IRQ latency. 169solution can't provide the full answer to low IRQ latency.
167
diff --git a/Documentation/arm/IXP4xx b/Documentation/arm/ixp4xx.rst
index e48b74de6ac0..a57235616294 100644
--- a/Documentation/arm/IXP4xx
+++ b/Documentation/arm/ixp4xx.rst
@@ -1,6 +1,6 @@
1 1===========================================================
2-------------------------------------------------------------------------
3Release Notes for Linux on Intel's IXP4xx Network Processor 2Release Notes for Linux on Intel's IXP4xx Network Processor
3===========================================================
4 4
5Maintained by Deepak Saxena <dsaxena@plexity.net> 5Maintained by Deepak Saxena <dsaxena@plexity.net>
6------------------------------------------------------------------------- 6-------------------------------------------------------------------------
@@ -8,7 +8,7 @@ Maintained by Deepak Saxena <dsaxena@plexity.net>
81. Overview 81. Overview
9 9
10Intel's IXP4xx network processor is a highly integrated SOC that 10Intel's IXP4xx network processor is a highly integrated SOC that
11is targeted for network applications, though it has become popular 11is targeted for network applications, though it has become popular
12in industrial control and other areas due to low cost and power 12in industrial control and other areas due to low cost and power
13consumption. The IXP4xx family currently consists of several processors 13consumption. The IXP4xx family currently consists of several processors
14that support different network offload functions such as encryption, 14that support different network offload functions such as encryption,
@@ -20,7 +20,7 @@ For more information on the various versions of the CPU, see:
20 20
21 http://developer.intel.com/design/network/products/npfamily/ixp4xx.htm 21 http://developer.intel.com/design/network/products/npfamily/ixp4xx.htm
22 22
23Intel also made the IXCP1100 CPU for sometime which is an IXP4xx 23Intel also made the IXCP1100 CPU for sometime which is an IXP4xx
24stripped of much of the network intelligence. 24stripped of much of the network intelligence.
25 25
262. Linux Support 262. Linux Support
@@ -31,7 +31,7 @@ Linux currently supports the following features on the IXP4xx chips:
31- PCI interface 31- PCI interface
32- Flash access (MTD/JFFS) 32- Flash access (MTD/JFFS)
33- I2C through GPIO on IXP42x 33- I2C through GPIO on IXP42x
34- GPIO for input/output/interrupts 34- GPIO for input/output/interrupts
35 See arch/arm/mach-ixp4xx/include/mach/platform.h for access functions. 35 See arch/arm/mach-ixp4xx/include/mach/platform.h for access functions.
36- Timers (watchdog, OS) 36- Timers (watchdog, OS)
37 37
@@ -45,7 +45,7 @@ require the use of Intel's proprietary CSR software:
45If you need to use any of the above, you need to download Intel's 45If you need to use any of the above, you need to download Intel's
46software from: 46software from:
47 47
48 http://developer.intel.com/design/network/products/npfamily/ixp425.htm 48 http://developer.intel.com/design/network/products/npfamily/ixp425.htm
49 49
50DO NOT POST QUESTIONS TO THE LINUX MAILING LISTS REGARDING THE PROPRIETARY 50DO NOT POST QUESTIONS TO THE LINUX MAILING LISTS REGARDING THE PROPRIETARY
51SOFTWARE. 51SOFTWARE.
@@ -53,14 +53,14 @@ SOFTWARE.
53There are several websites that provide directions/pointers on using 53There are several websites that provide directions/pointers on using
54Intel's software: 54Intel's software:
55 55
56 http://sourceforge.net/projects/ixp4xx-osdg/ 56 - http://sourceforge.net/projects/ixp4xx-osdg/
57 Open Source Developer's Guide for using uClinux and the Intel libraries 57 Open Source Developer's Guide for using uClinux and the Intel libraries
58 58
59http://gatewaymaker.sourceforge.net/ 59 - http://gatewaymaker.sourceforge.net/
60 Simple one page summary of building a gateway using an IXP425 and Linux 60 Simple one page summary of building a gateway using an IXP425 and Linux
61 61
62http://ixp425.sourceforge.net/ 62 - http://ixp425.sourceforge.net/
63 ATM device driver for IXP425 that relies on Intel's libraries 63 ATM device driver for IXP425 that relies on Intel's libraries
64 64
653. Known Issues/Limitations 653. Known Issues/Limitations
66 66
@@ -70,7 +70,7 @@ The IXP4xx family allows for up to 256MB of memory but the PCI interface
70can only expose 64MB of that memory to the PCI bus. This means that if 70can only expose 64MB of that memory to the PCI bus. This means that if
71you are running with > 64MB, all PCI buffers outside of the accessible 71you are running with > 64MB, all PCI buffers outside of the accessible
72range will be bounced using the routines in arch/arm/common/dmabounce.c. 72range will be bounced using the routines in arch/arm/common/dmabounce.c.
73 73
743b. Limited outbound PCI window 743b. Limited outbound PCI window
75 75
76IXP4xx provides two methods of accessing PCI memory space: 76IXP4xx provides two methods of accessing PCI memory space:
@@ -79,15 +79,15 @@ IXP4xx provides two methods of accessing PCI memory space:
79 To access PCI via this space, we simply ioremap() the BAR 79 To access PCI via this space, we simply ioremap() the BAR
80 into the kernel and we can use the standard read[bwl]/write[bwl] 80 into the kernel and we can use the standard read[bwl]/write[bwl]
81 macros. This is the preffered method due to speed but it 81 macros. This is the preffered method due to speed but it
82 limits the system to just 64MB of PCI memory. This can be 82 limits the system to just 64MB of PCI memory. This can be
83 problamatic if using video cards and other memory-heavy devices. 83 problamatic if using video cards and other memory-heavy devices.
84 84
852) If > 64MB of memory space is required, the IXP4xx can be 852) If > 64MB of memory space is required, the IXP4xx can be
86 configured to use indirect registers to access PCI This allows 86 configured to use indirect registers to access PCI This allows
87 for up to 128MB (0x48000000 to 0x4fffffff) of memory on the bus. 87 for up to 128MB (0x48000000 to 0x4fffffff) of memory on the bus.
88 The disadvantage of this is that every PCI access requires 88 The disadvantage of this is that every PCI access requires
89 three local register accesses plus a spinlock, but in some 89 three local register accesses plus a spinlock, but in some
90 cases the performance hit is acceptable. In addition, you cannot 90 cases the performance hit is acceptable. In addition, you cannot
91 mmap() PCI devices in this case due to the indirect nature 91 mmap() PCI devices in this case due to the indirect nature
92 of the PCI window. 92 of the PCI window.
93 93
@@ -96,14 +96,14 @@ you need more PCI memory, enable the IXP4XX_INDIRECT_PCI config option.
96 96
973c. GPIO as Interrupts 973c. GPIO as Interrupts
98 98
99Currently the code only handles level-sensitive GPIO interrupts 99Currently the code only handles level-sensitive GPIO interrupts
100 100
1014. Supported platforms 1014. Supported platforms
102 102
103ADI Engineering Coyote Gateway Reference Platform 103ADI Engineering Coyote Gateway Reference Platform
104http://www.adiengineering.com/productsCoyote.html 104http://www.adiengineering.com/productsCoyote.html
105 105
106 The ADI Coyote platform is reference design for those building 106 The ADI Coyote platform is reference design for those building
107 small residential/office gateways. One NPE is connected to a 10/100 107 small residential/office gateways. One NPE is connected to a 10/100
108 interface, one to 4-port 10/100 switch, and the third to and ADSL 108 interface, one to 4-port 10/100 switch, and the third to and ADSL
109 interface. In addition, it also supports to POTs interfaces connected 109 interface. In addition, it also supports to POTs interfaces connected
@@ -119,9 +119,9 @@ http://www.gateworks.com/support/overview.php
119 the expansion bus. 119 the expansion bus.
120 120
121Intel IXDP425 Development Platform 121Intel IXDP425 Development Platform
122http://www.intel.com/design/network/products/npfamily/ixdpg425.htm 122http://www.intel.com/design/network/products/npfamily/ixdpg425.htm
123 123
124 This is Intel's standard reference platform for the IXDP425 and is 124 This is Intel's standard reference platform for the IXDP425 and is
125 also known as the Richfield board. It contains 4 PCI slots, 16MB 125 also known as the Richfield board. It contains 4 PCI slots, 16MB
126 of flash, two 10/100 ports and one ADSL port. 126 of flash, two 10/100 ports and one ADSL port.
127 127
@@ -161,11 +161,12 @@ The IXP4xx work has been funded by Intel Corp. and MontaVista Software, Inc.
161 161
162The following people have contributed patches/comments/etc: 162The following people have contributed patches/comments/etc:
163 163
164Lennerty Buytenhek 164- Lennerty Buytenhek
165Lutz Jaenicke 165- Lutz Jaenicke
166Justin Mayfield 166- Justin Mayfield
167Robert E. Ranslam 167- Robert E. Ranslam
168[I know I've forgotten others, please email me to be added] 168
169[I know I've forgotten others, please email me to be added]
169 170
170------------------------------------------------------------------------- 171-------------------------------------------------------------------------
171 172
diff --git a/Documentation/arm/kernel_mode_neon.txt b/Documentation/arm/kernel_mode_neon.rst
index b9e060c5b61e..9bfb71a2a9b9 100644
--- a/Documentation/arm/kernel_mode_neon.txt
+++ b/Documentation/arm/kernel_mode_neon.rst
@@ -1,3 +1,4 @@
1================
1Kernel mode NEON 2Kernel mode NEON
2================ 3================
3 4
@@ -86,6 +87,7 @@ instructions appearing in unexpected places if no special care is taken.
86 87
87Therefore, the recommended and only supported way of using NEON/VFP in the 88Therefore, the recommended and only supported way of using NEON/VFP in the
88kernel is by adhering to the following rules: 89kernel is by adhering to the following rules:
90
89* isolate the NEON code in a separate compilation unit and compile it with 91* isolate the NEON code in a separate compilation unit and compile it with
90 '-march=armv7-a -mfpu=neon -mfloat-abi=softfp'; 92 '-march=armv7-a -mfpu=neon -mfloat-abi=softfp';
91* issue the calls to kernel_neon_begin(), kernel_neon_end() as well as the calls 93* issue the calls to kernel_neon_begin(), kernel_neon_end() as well as the calls
@@ -115,6 +117,7 @@ NEON intrinsics
115NEON intrinsics are also supported. However, as code using NEON intrinsics 117NEON intrinsics are also supported. However, as code using NEON intrinsics
116relies on the GCC header <arm_neon.h>, (which #includes <stdint.h>), you should 118relies on the GCC header <arm_neon.h>, (which #includes <stdint.h>), you should
117observe the following in addition to the rules above: 119observe the following in addition to the rules above:
120
118* Compile the unit containing the NEON intrinsics with '-ffreestanding' so GCC 121* Compile the unit containing the NEON intrinsics with '-ffreestanding' so GCC
119 uses its builtin version of <stdint.h> (this is a C99 header which the kernel 122 uses its builtin version of <stdint.h> (this is a C99 header which the kernel
120 does not supply); 123 does not supply);
diff --git a/Documentation/arm/kernel_user_helpers.txt b/Documentation/arm/kernel_user_helpers.rst
index 5673594717cf..eb6f3d916622 100644
--- a/Documentation/arm/kernel_user_helpers.txt
+++ b/Documentation/arm/kernel_user_helpers.rst
@@ -1,3 +1,4 @@
1============================
1Kernel-provided User Helpers 2Kernel-provided User Helpers
2============================ 3============================
3 4
@@ -43,7 +44,7 @@ kuser_helper_version
43 44
44Location: 0xffff0ffc 45Location: 0xffff0ffc
45 46
46Reference declaration: 47Reference declaration::
47 48
48 extern int32_t __kuser_helper_version; 49 extern int32_t __kuser_helper_version;
49 50
@@ -53,17 +54,17 @@ Definition:
53 running kernel. User space may read this to determine the availability 54 running kernel. User space may read this to determine the availability
54 of a particular helper. 55 of a particular helper.
55 56
56Usage example: 57Usage example::
57 58
58#define __kuser_helper_version (*(int32_t *)0xffff0ffc) 59 #define __kuser_helper_version (*(int32_t *)0xffff0ffc)
59 60
60void check_kuser_version(void) 61 void check_kuser_version(void)
61{ 62 {
62 if (__kuser_helper_version < 2) { 63 if (__kuser_helper_version < 2) {
63 fprintf(stderr, "can't do atomic operations, kernel too old\n"); 64 fprintf(stderr, "can't do atomic operations, kernel too old\n");
64 abort(); 65 abort();
65 } 66 }
66} 67 }
67 68
68Notes: 69Notes:
69 70
@@ -77,7 +78,7 @@ kuser_get_tls
77 78
78Location: 0xffff0fe0 79Location: 0xffff0fe0
79 80
80Reference prototype: 81Reference prototype::
81 82
82 void * __kuser_get_tls(void); 83 void * __kuser_get_tls(void);
83 84
@@ -97,16 +98,16 @@ Definition:
97 98
98 Get the TLS value as previously set via the __ARM_NR_set_tls syscall. 99 Get the TLS value as previously set via the __ARM_NR_set_tls syscall.
99 100
100Usage example: 101Usage example::
101 102
102typedef void * (__kuser_get_tls_t)(void); 103 typedef void * (__kuser_get_tls_t)(void);
103#define __kuser_get_tls (*(__kuser_get_tls_t *)0xffff0fe0) 104 #define __kuser_get_tls (*(__kuser_get_tls_t *)0xffff0fe0)
104 105
105void foo() 106 void foo()
106{ 107 {
107 void *tls = __kuser_get_tls(); 108 void *tls = __kuser_get_tls();
108 printf("TLS = %p\n", tls); 109 printf("TLS = %p\n", tls);
109} 110 }
110 111
111Notes: 112Notes:
112 113
@@ -117,7 +118,7 @@ kuser_cmpxchg
117 118
118Location: 0xffff0fc0 119Location: 0xffff0fc0
119 120
120Reference prototype: 121Reference prototype::
121 122
122 int __kuser_cmpxchg(int32_t oldval, int32_t newval, volatile int32_t *ptr); 123 int __kuser_cmpxchg(int32_t oldval, int32_t newval, volatile int32_t *ptr);
123 124
@@ -139,18 +140,18 @@ Clobbered registers:
139 140
140Definition: 141Definition:
141 142
142 Atomically store newval in *ptr only if *ptr is equal to oldval. 143 Atomically store newval in `*ptr` only if `*ptr` is equal to oldval.
143 Return zero if *ptr was changed or non-zero if no exchange happened. 144 Return zero if `*ptr` was changed or non-zero if no exchange happened.
144 The C flag is also set if *ptr was changed to allow for assembly 145 The C flag is also set if `*ptr` was changed to allow for assembly
145 optimization in the calling code. 146 optimization in the calling code.
146 147
147Usage example: 148Usage example::
148 149
149typedef int (__kuser_cmpxchg_t)(int oldval, int newval, volatile int *ptr); 150 typedef int (__kuser_cmpxchg_t)(int oldval, int newval, volatile int *ptr);
150#define __kuser_cmpxchg (*(__kuser_cmpxchg_t *)0xffff0fc0) 151 #define __kuser_cmpxchg (*(__kuser_cmpxchg_t *)0xffff0fc0)
151 152
152int atomic_add(volatile int *ptr, int val) 153 int atomic_add(volatile int *ptr, int val)
153{ 154 {
154 int old, new; 155 int old, new;
155 156
156 do { 157 do {
@@ -159,7 +160,7 @@ int atomic_add(volatile int *ptr, int val)
159 } while(__kuser_cmpxchg(old, new, ptr)); 160 } while(__kuser_cmpxchg(old, new, ptr));
160 161
161 return new; 162 return new;
162} 163 }
163 164
164Notes: 165Notes:
165 166
@@ -172,7 +173,7 @@ kuser_memory_barrier
172 173
173Location: 0xffff0fa0 174Location: 0xffff0fa0
174 175
175Reference prototype: 176Reference prototype::
176 177
177 void __kuser_memory_barrier(void); 178 void __kuser_memory_barrier(void);
178 179
@@ -193,10 +194,10 @@ Definition:
193 Apply any needed memory barrier to preserve consistency with data modified 194 Apply any needed memory barrier to preserve consistency with data modified
194 manually and __kuser_cmpxchg usage. 195 manually and __kuser_cmpxchg usage.
195 196
196Usage example: 197Usage example::
197 198
198typedef void (__kuser_dmb_t)(void); 199 typedef void (__kuser_dmb_t)(void);
199#define __kuser_dmb (*(__kuser_dmb_t *)0xffff0fa0) 200 #define __kuser_dmb (*(__kuser_dmb_t *)0xffff0fa0)
200 201
201Notes: 202Notes:
202 203
@@ -207,7 +208,7 @@ kuser_cmpxchg64
207 208
208Location: 0xffff0f60 209Location: 0xffff0f60
209 210
210Reference prototype: 211Reference prototype::
211 212
212 int __kuser_cmpxchg64(const int64_t *oldval, 213 int __kuser_cmpxchg64(const int64_t *oldval,
213 const int64_t *newval, 214 const int64_t *newval,
@@ -231,22 +232,22 @@ Clobbered registers:
231 232
232Definition: 233Definition:
233 234
234 Atomically store the 64-bit value pointed by *newval in *ptr only if *ptr 235 Atomically store the 64-bit value pointed by `*newval` in `*ptr` only if `*ptr`
235 is equal to the 64-bit value pointed by *oldval. Return zero if *ptr was 236 is equal to the 64-bit value pointed by `*oldval`. Return zero if `*ptr` was
236 changed or non-zero if no exchange happened. 237 changed or non-zero if no exchange happened.
237 238
238 The C flag is also set if *ptr was changed to allow for assembly 239 The C flag is also set if `*ptr` was changed to allow for assembly
239 optimization in the calling code. 240 optimization in the calling code.
240 241
241Usage example: 242Usage example::
242 243
243typedef int (__kuser_cmpxchg64_t)(const int64_t *oldval, 244 typedef int (__kuser_cmpxchg64_t)(const int64_t *oldval,
244 const int64_t *newval, 245 const int64_t *newval,
245 volatile int64_t *ptr); 246 volatile int64_t *ptr);
246#define __kuser_cmpxchg64 (*(__kuser_cmpxchg64_t *)0xffff0f60) 247 #define __kuser_cmpxchg64 (*(__kuser_cmpxchg64_t *)0xffff0f60)
247 248
248int64_t atomic_add64(volatile int64_t *ptr, int64_t val) 249 int64_t atomic_add64(volatile int64_t *ptr, int64_t val)
249{ 250 {
250 int64_t old, new; 251 int64_t old, new;
251 252
252 do { 253 do {
@@ -255,7 +256,7 @@ int64_t atomic_add64(volatile int64_t *ptr, int64_t val)
255 } while(__kuser_cmpxchg64(&old, &new, ptr)); 256 } while(__kuser_cmpxchg64(&old, &new, ptr));
256 257
257 return new; 258 return new;
258} 259 }
259 260
260Notes: 261Notes:
261 262
diff --git a/Documentation/arm/keystone/knav-qmss.txt b/Documentation/arm/keystone/knav-qmss.rst
index fcdb9fd5f53a..7f7638d80b42 100644
--- a/Documentation/arm/keystone/knav-qmss.txt
+++ b/Documentation/arm/keystone/knav-qmss.rst
@@ -1,4 +1,6 @@
1* Texas Instruments Keystone Navigator Queue Management SubSystem driver 1======================================================================
2Texas Instruments Keystone Navigator Queue Management SubSystem driver
3======================================================================
2 4
3Driver source code path 5Driver source code path
4 drivers/soc/ti/knav_qmss.c 6 drivers/soc/ti/knav_qmss.c
@@ -34,11 +36,13 @@ driver that interface with the accumulator PDSP. This configures
34accumulator channels defined in DTS (example in DT documentation) to monitor 36accumulator channels defined in DTS (example in DT documentation) to monitor
351 or 32 queues per channel. More description on the firmware is available in 371 or 32 queues per channel. More description on the firmware is available in
36CPPI/QMSS Low Level Driver document (docs/CPPI_QMSS_LLD_SDS.pdf) at 38CPPI/QMSS Low Level Driver document (docs/CPPI_QMSS_LLD_SDS.pdf) at
39
37 git://git.ti.com/keystone-rtos/qmss-lld.git 40 git://git.ti.com/keystone-rtos/qmss-lld.git
38 41
39k2_qmss_pdsp_acc48_k2_le_1_0_0_9.bin firmware supports upto 48 accumulator 42k2_qmss_pdsp_acc48_k2_le_1_0_0_9.bin firmware supports upto 48 accumulator
40channels. This firmware is available under ti-keystone folder of 43channels. This firmware is available under ti-keystone folder of
41firmware.git at 44firmware.git at
45
42 git://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git 46 git://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git
43 47
44To use copy the firmware image to lib/firmware folder of the initramfs or 48To use copy the firmware image to lib/firmware folder of the initramfs or
diff --git a/Documentation/arm/keystone/Overview.txt b/Documentation/arm/keystone/overview.rst
index 400c0c270d2e..cd90298c493c 100644
--- a/Documentation/arm/keystone/Overview.txt
+++ b/Documentation/arm/keystone/overview.rst
@@ -1,5 +1,6 @@
1 TI Keystone Linux Overview 1==========================
2 -------------------------- 2TI Keystone Linux Overview
3==========================
3 4
4Introduction 5Introduction
5------------ 6------------
@@ -9,47 +10,65 @@ for users to run Linux on Keystone based EVMs from Texas Instruments.
9 10
10Following SoCs & EVMs are currently supported:- 11Following SoCs & EVMs are currently supported:-
11 12
12------------ K2HK SoC and EVM -------------------------------------------------- 13K2HK SoC and EVM
14=================
13 15
14a.k.a Keystone 2 Hawking/Kepler SoC 16a.k.a Keystone 2 Hawking/Kepler SoC
15TCI6636K2H & TCI6636K2K: See documentation at 17TCI6636K2H & TCI6636K2K: See documentation at
18
16 http://www.ti.com/product/tci6638k2k 19 http://www.ti.com/product/tci6638k2k
17 http://www.ti.com/product/tci6638k2h 20 http://www.ti.com/product/tci6638k2h
18 21
19EVM: 22EVM:
20http://www.advantech.com/Support/TI-EVM/EVMK2HX_sd.aspx 23 http://www.advantech.com/Support/TI-EVM/EVMK2HX_sd.aspx
21 24
22------------ K2E SoC and EVM --------------------------------------------------- 25K2E SoC and EVM
26===============
23 27
24a.k.a Keystone 2 Edison SoC 28a.k.a Keystone 2 Edison SoC
25K2E - 66AK2E05: See documentation at 29
30K2E - 66AK2E05:
31
32See documentation at
33
26 http://www.ti.com/product/66AK2E05/technicaldocuments 34 http://www.ti.com/product/66AK2E05/technicaldocuments
27 35
28EVM: 36EVM:
29https://www.einfochips.com/index.php/partnerships/texas-instruments/k2e-evm.html 37 https://www.einfochips.com/index.php/partnerships/texas-instruments/k2e-evm.html
30 38
31------------ K2L SoC and EVM --------------------------------------------------- 39K2L SoC and EVM
40===============
32 41
33a.k.a Keystone 2 Lamarr SoC 42a.k.a Keystone 2 Lamarr SoC
34K2L - TCI6630K2L: See documentation at 43
44K2L - TCI6630K2L:
45
46See documentation at
35 http://www.ti.com/product/TCI6630K2L/technicaldocuments 47 http://www.ti.com/product/TCI6630K2L/technicaldocuments
48
36EVM: 49EVM:
37https://www.einfochips.com/index.php/partnerships/texas-instruments/k2l-evm.html 50 https://www.einfochips.com/index.php/partnerships/texas-instruments/k2l-evm.html
38 51
39Configuration 52Configuration
40------------- 53-------------
41 54
42All of the K2 SoCs/EVMs share a common defconfig, keystone_defconfig and same 55All of the K2 SoCs/EVMs share a common defconfig, keystone_defconfig and same
43image is used to boot on individual EVMs. The platform configuration is 56image is used to boot on individual EVMs. The platform configuration is
44specified through DTS. Following are the DTS used:- 57specified through DTS. Following are the DTS used:
45 K2HK EVM : k2hk-evm.dts 58
46 K2E EVM : k2e-evm.dts 59 K2HK EVM:
47 K2L EVM : k2l-evm.dts 60 k2hk-evm.dts
61 K2E EVM:
62 k2e-evm.dts
63 K2L EVM:
64 k2l-evm.dts
48 65
49The device tree documentation for the keystone machines are located at 66The device tree documentation for the keystone machines are located at
67
50 Documentation/devicetree/bindings/arm/keystone/keystone.txt 68 Documentation/devicetree/bindings/arm/keystone/keystone.txt
51 69
52Document Author 70Document Author
53--------------- 71---------------
54Murali Karicheri <m-karicheri2@ti.com> 72Murali Karicheri <m-karicheri2@ti.com>
73
55Copyright 2015 Texas Instruments 74Copyright 2015 Texas Instruments
diff --git a/Documentation/arm/marvel.rst b/Documentation/arm/marvel.rst
new file mode 100644
index 000000000000..16ab2eb085b8
--- /dev/null
+++ b/Documentation/arm/marvel.rst
@@ -0,0 +1,488 @@
1================
2ARM Marvell SoCs
3================
4
5This document lists all the ARM Marvell SoCs that are currently
6supported in mainline by the Linux kernel. As the Marvell families of
7SoCs are large and complex, it is hard to understand where the support
8for a particular SoC is available in the Linux kernel. This document
9tries to help in understanding where those SoCs are supported, and to
10match them with their corresponding public datasheet, when available.
11
12Orion family
13------------
14
15 Flavors:
16 - 88F5082
17 - 88F5181
18 - 88F5181L
19 - 88F5182
20
21 - Datasheet: http://www.embeddedarm.com/documentation/third-party/MV88F5182-datasheet.pdf
22 - Programmer's User Guide: http://www.embeddedarm.com/documentation/third-party/MV88F5182-opensource-manual.pdf
23 - User Manual: http://www.embeddedarm.com/documentation/third-party/MV88F5182-usermanual.pdf
24 - 88F5281
25
26 - Datasheet: http://www.ocmodshop.com/images/reviews/networking/qnap_ts409u/marvel_88f5281_data_sheet.pdf
27 - 88F6183
28 Core:
29 Feroceon 88fr331 (88f51xx) or 88fr531-vd (88f52xx) ARMv5 compatible
30 Linux kernel mach directory:
31 arch/arm/mach-orion5x
32 Linux kernel plat directory:
33 arch/arm/plat-orion
34
35Kirkwood family
36---------------
37
38 Flavors:
39 - 88F6282 a.k.a Armada 300
40
41 - Product Brief : http://www.marvell.com/embedded-processors/armada-300/assets/armada_310.pdf
42 - 88F6283 a.k.a Armada 310
43
44 - Product Brief : http://www.marvell.com/embedded-processors/armada-300/assets/armada_310.pdf
45 - 88F6190
46
47 - Product Brief : http://www.marvell.com/embedded-processors/kirkwood/assets/88F6190-003_WEB.pdf
48 - Hardware Spec : http://www.marvell.com/embedded-processors/kirkwood/assets/HW_88F619x_OpenSource.pdf
49 - Functional Spec: http://www.marvell.com/embedded-processors/kirkwood/assets/FS_88F6180_9x_6281_OpenSource.pdf
50 - 88F6192
51
52 - Product Brief : http://www.marvell.com/embedded-processors/kirkwood/assets/88F6192-003_ver1.pdf
53 - Hardware Spec : http://www.marvell.com/embedded-processors/kirkwood/assets/HW_88F619x_OpenSource.pdf
54 - Functional Spec: http://www.marvell.com/embedded-processors/kirkwood/assets/FS_88F6180_9x_6281_OpenSource.pdf
55 - 88F6182
56 - 88F6180
57
58 - Product Brief : http://www.marvell.com/embedded-processors/kirkwood/assets/88F6180-003_ver1.pdf
59 - Hardware Spec : http://www.marvell.com/embedded-processors/kirkwood/assets/HW_88F6180_OpenSource.pdf
60 - Functional Spec: http://www.marvell.com/embedded-processors/kirkwood/assets/FS_88F6180_9x_6281_OpenSource.pdf
61 - 88F6281
62
63 - Product Brief : http://www.marvell.com/embedded-processors/kirkwood/assets/88F6281-004_ver1.pdf
64 - Hardware Spec : http://www.marvell.com/embedded-processors/kirkwood/assets/HW_88F6281_OpenSource.pdf
65 - Functional Spec: http://www.marvell.com/embedded-processors/kirkwood/assets/FS_88F6180_9x_6281_OpenSource.pdf
66 Homepage:
67 http://www.marvell.com/embedded-processors/kirkwood/
68 Core:
69 Feroceon 88fr131 ARMv5 compatible
70 Linux kernel mach directory:
71 arch/arm/mach-mvebu
72 Linux kernel plat directory:
73 none
74
75Discovery family
76----------------
77
78 Flavors:
79 - MV78100
80
81 - Product Brief : http://www.marvell.com/embedded-processors/discovery-innovation/assets/MV78100-003_WEB.pdf
82 - Hardware Spec : http://www.marvell.com/embedded-processors/discovery-innovation/assets/HW_MV78100_OpenSource.pdf
83 - Functional Spec: http://www.marvell.com/embedded-processors/discovery-innovation/assets/FS_MV76100_78100_78200_OpenSource.pdf
84 - MV78200
85
86 - Product Brief : http://www.marvell.com/embedded-processors/discovery-innovation/assets/MV78200-002_WEB.pdf
87 - Hardware Spec : http://www.marvell.com/embedded-processors/discovery-innovation/assets/HW_MV78200_OpenSource.pdf
88 - Functional Spec: http://www.marvell.com/embedded-processors/discovery-innovation/assets/FS_MV76100_78100_78200_OpenSource.pdf
89 - MV76100
90
91 Not supported by the Linux kernel.
92
93 Core:
94 Feroceon 88fr571-vd ARMv5 compatible
95
96 Linux kernel mach directory:
97 arch/arm/mach-mv78xx0
98 Linux kernel plat directory:
99 arch/arm/plat-orion
100
101EBU Armada family
102-----------------
103
104 Armada 370 Flavors:
105 - 88F6710
106 - 88F6707
107 - 88F6W11
108
109 - Product Brief: http://www.marvell.com/embedded-processors/armada-300/assets/Marvell_ARMADA_370_SoC.pdf
110 - Hardware Spec: http://www.marvell.com/embedded-processors/armada-300/assets/ARMADA370-datasheet.pdf
111 - Functional Spec: http://www.marvell.com/embedded-processors/armada-300/assets/ARMADA370-FunctionalSpec-datasheet.pdf
112
113 Core:
114 Sheeva ARMv7 compatible PJ4B
115
116 Armada 375 Flavors:
117 - 88F6720
118
119 - Product Brief: http://www.marvell.com/embedded-processors/armada-300/assets/ARMADA_375_SoC-01_product_brief.pdf
120
121 Core:
122 ARM Cortex-A9
123
124 Armada 38x Flavors:
125 - 88F6810 Armada 380
126 - 88F6820 Armada 385
127 - 88F6828 Armada 388
128
129 - Product infos: http://www.marvell.com/embedded-processors/armada-38x/
130 - Functional Spec: https://marvellcorp.wufoo.com/forms/marvell-armada-38x-functional-specifications/
131
132 Core:
133 ARM Cortex-A9
134
135 Armada 39x Flavors:
136 - 88F6920 Armada 390
137 - 88F6928 Armada 398
138
139 - Product infos: http://www.marvell.com/embedded-processors/armada-39x/
140
141 Core:
142 ARM Cortex-A9
143
144 Armada XP Flavors:
145 - MV78230
146 - MV78260
147 - MV78460
148
149 NOTE:
150 not to be confused with the non-SMP 78xx0 SoCs
151
152 Product Brief:
153 http://www.marvell.com/embedded-processors/armada-xp/assets/Marvell-ArmadaXP-SoC-product%20brief.pdf
154
155 Functional Spec:
156 http://www.marvell.com/embedded-processors/armada-xp/assets/ARMADA-XP-Functional-SpecDatasheet.pdf
157
158 - Hardware Specs:
159
160 - http://www.marvell.com/embedded-processors/armada-xp/assets/HW_MV78230_OS.PDF
161 - http://www.marvell.com/embedded-processors/armada-xp/assets/HW_MV78260_OS.PDF
162 - http://www.marvell.com/embedded-processors/armada-xp/assets/HW_MV78460_OS.PDF
163
164 Core:
165 Sheeva ARMv7 compatible Dual-core or Quad-core PJ4B-MP
166
167 Linux kernel mach directory:
168 arch/arm/mach-mvebu
169 Linux kernel plat directory:
170 none
171
172EBU Armada family ARMv8
173-----------------------
174
175 Armada 3710/3720 Flavors:
176 - 88F3710
177 - 88F3720
178
179 Core:
180 ARM Cortex A53 (ARMv8)
181
182 Homepage:
183 http://www.marvell.com/embedded-processors/armada-3700/
184
185 Product Brief:
186 http://www.marvell.com/embedded-processors/assets/PB-88F3700-FNL.pdf
187
188 Device tree files:
189 arch/arm64/boot/dts/marvell/armada-37*
190
191 Armada 7K Flavors:
192 - 88F7020 (AP806 Dual + one CP110)
193 - 88F7040 (AP806 Quad + one CP110)
194
195 Core: ARM Cortex A72
196
197 Homepage:
198 http://www.marvell.com/embedded-processors/armada-70xx/
199
200 Product Brief:
201 - http://www.marvell.com/embedded-processors/assets/Armada7020PB-Jan2016.pdf
202 - http://www.marvell.com/embedded-processors/assets/Armada7040PB-Jan2016.pdf
203
204 Device tree files:
205 arch/arm64/boot/dts/marvell/armada-70*
206
207 Armada 8K Flavors:
208 - 88F8020 (AP806 Dual + two CP110)
209 - 88F8040 (AP806 Quad + two CP110)
210 Core:
211 ARM Cortex A72
212
213 Homepage:
214 http://www.marvell.com/embedded-processors/armada-80xx/
215
216 Product Brief:
217 - http://www.marvell.com/embedded-processors/assets/Armada8020PB-Jan2016.pdf
218 - http://www.marvell.com/embedded-processors/assets/Armada8040PB-Jan2016.pdf
219
220 Device tree files:
221 arch/arm64/boot/dts/marvell/armada-80*
222
223Avanta family
224-------------
225
226 Flavors:
227 - 88F6510
228 - 88F6530P
229 - 88F6550
230 - 88F6560
231
232 Homepage:
233 http://www.marvell.com/broadband/
234
235 Product Brief:
236 http://www.marvell.com/broadband/assets/Marvell_Avanta_88F6510_305_060-001_product_brief.pdf
237
238 No public datasheet available.
239
240 Core:
241 ARMv5 compatible
242
243 Linux kernel mach directory:
244 no code in mainline yet, planned for the future
245 Linux kernel plat directory:
246 no code in mainline yet, planned for the future
247
248Storage family
249--------------
250
251 Armada SP:
252 - 88RC1580
253
254 Product infos:
255 http://www.marvell.com/storage/armada-sp/
256
257 Core:
258 Sheeva ARMv7 comatible Quad-core PJ4C
259
260 (not supported in upstream Linux kernel)
261
262Dove family (application processor)
263-----------------------------------
264
265 Flavors:
266 - 88AP510 a.k.a Armada 510
267
268 Product Brief:
269 http://www.marvell.com/application-processors/armada-500/assets/Marvell_Armada510_SoC.pdf
270
271 Hardware Spec:
272 http://www.marvell.com/application-processors/armada-500/assets/Armada-510-Hardware-Spec.pdf
273
274 Functional Spec:
275 http://www.marvell.com/application-processors/armada-500/assets/Armada-510-Functional-Spec.pdf
276
277 Homepage:
278 http://www.marvell.com/application-processors/armada-500/
279
280 Core:
281 ARMv7 compatible
282
283 Directory:
284 - arch/arm/mach-mvebu (DT enabled platforms)
285 - arch/arm/mach-dove (non-DT enabled platforms)
286
287PXA 2xx/3xx/93x/95x family
288--------------------------
289
290 Flavors:
291 - PXA21x, PXA25x, PXA26x
292 - Application processor only
293 - Core: ARMv5 XScale1 core
294 - PXA270, PXA271, PXA272
295 - Product Brief : http://www.marvell.com/application-processors/pxa-family/assets/pxa_27x_pb.pdf
296 - Design guide : http://www.marvell.com/application-processors/pxa-family/assets/pxa_27x_design_guide.pdf
297 - Developers manual : http://www.marvell.com/application-processors/pxa-family/assets/pxa_27x_dev_man.pdf
298 - Specification : http://www.marvell.com/application-processors/pxa-family/assets/pxa_27x_emts.pdf
299 - Specification update : http://www.marvell.com/application-processors/pxa-family/assets/pxa_27x_spec_update.pdf
300 - Application processor only
301 - Core: ARMv5 XScale2 core
302 - PXA300, PXA310, PXA320
303 - PXA 300 Product Brief : http://www.marvell.com/application-processors/pxa-family/assets/PXA300_PB_R4.pdf
304 - PXA 310 Product Brief : http://www.marvell.com/application-processors/pxa-family/assets/PXA310_PB_R4.pdf
305 - PXA 320 Product Brief : http://www.marvell.com/application-processors/pxa-family/assets/PXA320_PB_R4.pdf
306 - Design guide : http://www.marvell.com/application-processors/pxa-family/assets/PXA3xx_Design_Guide.pdf
307 - Developers manual : http://www.marvell.com/application-processors/pxa-family/assets/PXA3xx_Developers_Manual.zip
308 - Specifications : http://www.marvell.com/application-processors/pxa-family/assets/PXA3xx_EMTS.pdf
309 - Specification Update : http://www.marvell.com/application-processors/pxa-family/assets/PXA3xx_Spec_Update.zip
310 - Reference Manual : http://www.marvell.com/application-processors/pxa-family/assets/PXA3xx_TavorP_BootROM_Ref_Manual.pdf
311 - Application processor only
312 - Core: ARMv5 XScale3 core
313 - PXA930, PXA935
314 - Application processor with Communication processor
315 - Core: ARMv5 XScale3 core
316 - PXA955
317 - Application processor with Communication processor
318 - Core: ARMv7 compatible Sheeva PJ4 core
319
320 Comments:
321
322 * This line of SoCs originates from the XScale family developed by
323 Intel and acquired by Marvell in ~2006. The PXA21x, PXA25x,
324 PXA26x, PXA27x, PXA3xx and PXA93x were developed by Intel, while
325 the later PXA95x were developed by Marvell.
326
327 * Due to their XScale origin, these SoCs have virtually nothing in
328 common with the other (Kirkwood, Dove, etc.) families of Marvell
329 SoCs, except with the MMP/MMP2 family of SoCs.
330
331 Linux kernel mach directory:
332 arch/arm/mach-pxa
333 Linux kernel plat directory:
334 arch/arm/plat-pxa
335
336MMP/MMP2/MMP3 family (communication processor)
337----------------------------------------------
338
339 Flavors:
340 - PXA168, a.k.a Armada 168
341 - Homepage : http://www.marvell.com/application-processors/armada-100/armada-168.jsp
342 - Product brief : http://www.marvell.com/application-processors/armada-100/assets/pxa_168_pb.pdf
343 - Hardware manual : http://www.marvell.com/application-processors/armada-100/assets/armada_16x_datasheet.pdf
344 - Software manual : http://www.marvell.com/application-processors/armada-100/assets/armada_16x_software_manual.pdf
345 - Specification update : http://www.marvell.com/application-processors/armada-100/assets/ARMADA16x_Spec_update.pdf
346 - Boot ROM manual : http://www.marvell.com/application-processors/armada-100/assets/armada_16x_ref_manual.pdf
347 - App node package : http://www.marvell.com/application-processors/armada-100/assets/armada_16x_app_note_package.pdf
348 - Application processor only
349 - Core: ARMv5 compatible Marvell PJ1 88sv331 (Mohawk)
350 - PXA910/PXA920
351 - Homepage : http://www.marvell.com/communication-processors/pxa910/
352 - Product Brief : http://www.marvell.com/communication-processors/pxa910/assets/Marvell_PXA910_Platform-001_PB_final.pdf
353 - Application processor with Communication processor
354 - Core: ARMv5 compatible Marvell PJ1 88sv331 (Mohawk)
355 - PXA688, a.k.a. MMP2, a.k.a Armada 610
356 - Product Brief : http://www.marvell.com/application-processors/armada-600/assets/armada610_pb.pdf
357 - Application processor only
358 - Core: ARMv7 compatible Sheeva PJ4 88sv581x core
359 - PXA2128, a.k.a. MMP3 (OLPC XO4, Linux support not upstream)
360 - Product Brief : http://www.marvell.com/application-processors/armada/pxa2128/assets/Marvell-ARMADA-PXA2128-SoC-PB.pdf
361 - Application processor only
362 - Core: Dual-core ARMv7 compatible Sheeva PJ4C core
363 - PXA960/PXA968/PXA978 (Linux support not upstream)
364 - Application processor with Communication Processor
365 - Core: ARMv7 compatible Sheeva PJ4 core
366 - PXA986/PXA988 (Linux support not upstream)
367 - Application processor with Communication Processor
368 - Core: Dual-core ARMv7 compatible Sheeva PJ4B-MP core
369 - PXA1088/PXA1920 (Linux support not upstream)
370 - Application processor with Communication Processor
371 - Core: quad-core ARMv7 Cortex-A7
372 - PXA1908/PXA1928/PXA1936
373 - Application processor with Communication Processor
374 - Core: multi-core ARMv8 Cortex-A53
375
376 Comments:
377
378 * This line of SoCs originates from the XScale family developed by
379 Intel and acquired by Marvell in ~2006. All the processors of
380 this MMP/MMP2 family were developed by Marvell.
381
382 * Due to their XScale origin, these SoCs have virtually nothing in
383 common with the other (Kirkwood, Dove, etc.) families of Marvell
384 SoCs, except with the PXA family of SoCs listed above.
385
386 Linux kernel mach directory:
387 arch/arm/mach-mmp
388 Linux kernel plat directory:
389 arch/arm/plat-pxa
390
391Berlin family (Multimedia Solutions)
392-------------------------------------
393
394 - Flavors:
395 - 88DE3010, Armada 1000 (no Linux support)
396 - Core: Marvell PJ1 (ARMv5TE), Dual-core
397 - Product Brief: http://www.marvell.com.cn/digital-entertainment/assets/armada_1000_pb.pdf
398 - 88DE3005, Armada 1500 Mini
399 - Design name: BG2CD
400 - Core: ARM Cortex-A9, PL310 L2CC
401 - 88DE3006, Armada 1500 Mini Plus
402 - Design name: BG2CDP
403 - Core: Dual Core ARM Cortex-A7
404 - 88DE3100, Armada 1500
405 - Design name: BG2
406 - Core: Marvell PJ4B-MP (ARMv7), Tauros3 L2CC
407 - 88DE3114, Armada 1500 Pro
408 - Design name: BG2Q
409 - Core: Quad Core ARM Cortex-A9, PL310 L2CC
410 - 88DE3214, Armada 1500 Pro 4K
411 - Design name: BG3
412 - Core: ARM Cortex-A15, CA15 integrated L2CC
413 - 88DE3218, ARMADA 1500 Ultra
414 - Core: ARM Cortex-A53
415
416 Homepage: https://www.synaptics.com/products/multimedia-solutions
417 Directory: arch/arm/mach-berlin
418
419 Comments:
420
421 * This line of SoCs is based on Marvell Sheeva or ARM Cortex CPUs
422 with Synopsys DesignWare (IRQ, GPIO, Timers, ...) and PXA IP (SDHCI, USB, ETH, ...).
423
424 * The Berlin family was acquired by Synaptics from Marvell in 2017.
425
426CPU Cores
427---------
428
429The XScale cores were designed by Intel, and shipped by Marvell in the older
430PXA processors. Feroceon is a Marvell designed core that developed in-house,
431and that evolved into Sheeva. The XScale and Feroceon cores were phased out
432over time and replaced with Sheeva cores in later products, which subsequently
433got replaced with licensed ARM Cortex-A cores.
434
435 XScale 1
436 CPUID 0x69052xxx
437 ARMv5, iWMMXt
438 XScale 2
439 CPUID 0x69054xxx
440 ARMv5, iWMMXt
441 XScale 3
442 CPUID 0x69056xxx or 0x69056xxx
443 ARMv5, iWMMXt
444 Feroceon-1850 88fr331 "Mohawk"
445 CPUID 0x5615331x or 0x41xx926x
446 ARMv5TE, single issue
447 Feroceon-2850 88fr531-vd "Jolteon"
448 CPUID 0x5605531x or 0x41xx926x
449 ARMv5TE, VFP, dual-issue
450 Feroceon 88fr571-vd "Jolteon"
451 CPUID 0x5615571x
452 ARMv5TE, VFP, dual-issue
453 Feroceon 88fr131 "Mohawk-D"
454 CPUID 0x5625131x
455 ARMv5TE, single-issue in-order
456 Sheeva PJ1 88sv331 "Mohawk"
457 CPUID 0x561584xx
458 ARMv5, single-issue iWMMXt v2
459 Sheeva PJ4 88sv581x "Flareon"
460 CPUID 0x560f581x
461 ARMv7, idivt, optional iWMMXt v2
462 Sheeva PJ4B 88sv581x
463 CPUID 0x561f581x
464 ARMv7, idivt, optional iWMMXt v2
465 Sheeva PJ4B-MP / PJ4C
466 CPUID 0x562f584x
467 ARMv7, idivt/idiva, LPAE, optional iWMMXt v2 and/or NEON
468
469Long-term plans
470---------------
471
472 * Unify the mach-dove/, mach-mv78xx0/, mach-orion5x/ into the
473 mach-mvebu/ to support all SoCs from the Marvell EBU (Engineering
474 Business Unit) in a single mach-<foo> directory. The plat-orion/
475 would therefore disappear.
476
477 * Unify the mach-mmp/ and mach-pxa/ into the same mach-pxa
478 directory. The plat-pxa/ would therefore disappear.
479
480Credits
481-------
482
483- Maen Suleiman <maen@marvell.com>
484- Lior Amsalem <alior@marvell.com>
485- Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
486- Andrew Lunn <andrew@lunn.ch>
487- Nicolas Pitre <nico@fluxnic.net>
488- Eric Miao <eric.y.miao@gmail.com>
diff --git a/Documentation/arm/mem_alignment b/Documentation/arm/mem_alignment.rst
index e110e2781039..aa22893b62bc 100644
--- a/Documentation/arm/mem_alignment
+++ b/Documentation/arm/mem_alignment.rst
@@ -1,3 +1,7 @@
1================
2Memory alignment
3================
4
1Too many problems popped up because of unnoticed misaligned memory access in 5Too many problems popped up because of unnoticed misaligned memory access in
2kernel code lately. Therefore the alignment fixup is now unconditionally 6kernel code lately. Therefore the alignment fixup is now unconditionally
3configured in for SA11x0 based targets. According to Alan Cox, this is a 7configured in for SA11x0 based targets. According to Alan Cox, this is a
@@ -26,9 +30,9 @@ space, and might cause programs to fail unexpectedly.
26To change the alignment trap behavior, simply echo a number into 30To change the alignment trap behavior, simply echo a number into
27/proc/cpu/alignment. The number is made up from various bits: 31/proc/cpu/alignment. The number is made up from various bits:
28 32
33=== ========================================================
29bit behavior when set 34bit behavior when set
30--- ----------------- 35=== ========================================================
31
320 A user process performing an unaligned memory access 360 A user process performing an unaligned memory access
33 will cause the kernel to print a message indicating 37 will cause the kernel to print a message indicating
34 process name, pid, pc, instruction, address, and the 38 process name, pid, pc, instruction, address, and the
@@ -41,12 +45,13 @@ bit behavior when set
41 45
422 The kernel will send a SIGBUS signal to the user process 462 The kernel will send a SIGBUS signal to the user process
43 performing the unaligned access. 47 performing the unaligned access.
48=== ========================================================
44 49
45Note that not all combinations are supported - only values 0 through 5. 50Note that not all combinations are supported - only values 0 through 5.
46(6 and 7 don't make sense). 51(6 and 7 don't make sense).
47 52
48For example, the following will turn on the warnings, but without 53For example, the following will turn on the warnings, but without
49fixing up or sending SIGBUS signals: 54fixing up or sending SIGBUS signals::
50 55
51 echo 1 > /proc/cpu/alignment 56 echo 1 > /proc/cpu/alignment
52 57
diff --git a/Documentation/arm/memory.txt b/Documentation/arm/memory.rst
index 546a39048eb0..0521b4ce5c96 100644
--- a/Documentation/arm/memory.txt
+++ b/Documentation/arm/memory.rst
@@ -1,6 +1,9 @@
1 Kernel Memory Layout on ARM Linux 1=================================
2Kernel Memory Layout on ARM Linux
3=================================
2 4
3 Russell King <rmk@arm.linux.org.uk> 5 Russell King <rmk@arm.linux.org.uk>
6
4 November 17, 2005 (2.6.15) 7 November 17, 2005 (2.6.15)
5 8
6This document describes the virtual memory layout which the Linux 9This document describes the virtual memory layout which the Linux
@@ -15,8 +18,9 @@ As the ARM architecture matures, it becomes necessary to reserve
15certain regions of VM space for use for new facilities; therefore 18certain regions of VM space for use for new facilities; therefore
16this document may reserve more VM space over time. 19this document may reserve more VM space over time.
17 20
21=============== =============== ===============================================
18Start End Use 22Start End Use
19-------------------------------------------------------------------------- 23=============== =============== ===============================================
20ffff8000 ffffffff copy_user_page / clear_user_page use. 24ffff8000 ffffffff copy_user_page / clear_user_page use.
21 For SA11xx and Xscale, this is used to 25 For SA11xx and Xscale, this is used to
22 setup a minicache mapping. 26 setup a minicache mapping.
@@ -77,6 +81,7 @@ MODULES_VADDR MODULES_END-1 Kernel module space
77 place their vector page here. NULL pointer 81 place their vector page here. NULL pointer
78 dereferences by both the kernel and user 82 dereferences by both the kernel and user
79 space are also caught via this mapping. 83 space are also caught via this mapping.
84=============== =============== ===============================================
80 85
81Please note that mappings which collide with the above areas may result 86Please note that mappings which collide with the above areas may result
82in a non-bootable kernel, or may cause the kernel to (eventually) panic 87in a non-bootable kernel, or may cause the kernel to (eventually) panic
diff --git a/Documentation/arm/Microchip/README b/Documentation/arm/microchip.rst
index a366f37d38f1..c9a44c98e868 100644
--- a/Documentation/arm/Microchip/README
+++ b/Documentation/arm/microchip.rst
@@ -1,3 +1,4 @@
1=============================
1ARM Microchip SoCs (aka AT91) 2ARM Microchip SoCs (aka AT91)
2============================= 3=============================
3 4
@@ -22,32 +23,46 @@ the Microchip website: http://www.microchip.com.
22 Flavors: 23 Flavors:
23 * ARM 920 based SoC 24 * ARM 920 based SoC
24 - at91rm9200 25 - at91rm9200
25 + Datasheet 26
27 * Datasheet
28
26 http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-1768-32-bit-ARM920T-Embedded-Microprocessor-AT91RM9200_Datasheet.pdf 29 http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-1768-32-bit-ARM920T-Embedded-Microprocessor-AT91RM9200_Datasheet.pdf
27 30
28 * ARM 926 based SoCs 31 * ARM 926 based SoCs
29 - at91sam9260 32 - at91sam9260
30 + Datasheet 33
34 * Datasheet
35
31 http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-6221-32-bit-ARM926EJ-S-Embedded-Microprocessor-SAM9260_Datasheet.pdf 36 http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-6221-32-bit-ARM926EJ-S-Embedded-Microprocessor-SAM9260_Datasheet.pdf
32 37
33 - at91sam9xe 38 - at91sam9xe
34 + Datasheet 39
40 * Datasheet
41
35 http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-6254-32-bit-ARM926EJ-S-Embedded-Microprocessor-SAM9XE_Datasheet.pdf 42 http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-6254-32-bit-ARM926EJ-S-Embedded-Microprocessor-SAM9XE_Datasheet.pdf
36 43
37 - at91sam9261 44 - at91sam9261
38 + Datasheet 45
46 * Datasheet
47
39 http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-6062-ARM926EJ-S-Microprocessor-SAM9261_Datasheet.pdf 48 http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-6062-ARM926EJ-S-Microprocessor-SAM9261_Datasheet.pdf
40 49
41 - at91sam9263 50 - at91sam9263
42 + Datasheet 51
52 * Datasheet
53
43 http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-6249-32-bit-ARM926EJ-S-Embedded-Microprocessor-SAM9263_Datasheet.pdf 54 http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-6249-32-bit-ARM926EJ-S-Embedded-Microprocessor-SAM9263_Datasheet.pdf
44 55
45 - at91sam9rl 56 - at91sam9rl
46 + Datasheet 57
58 * Datasheet
59
47 http://ww1.microchip.com/downloads/en/DeviceDoc/doc6289.pdf 60 http://ww1.microchip.com/downloads/en/DeviceDoc/doc6289.pdf
48 61
49 - at91sam9g20 62 - at91sam9g20
50 + Datasheet 63
64 * Datasheet
65
51 http://ww1.microchip.com/downloads/en/DeviceDoc/DS60001516A.pdf 66 http://ww1.microchip.com/downloads/en/DeviceDoc/DS60001516A.pdf
52 67
53 - at91sam9g45 family 68 - at91sam9g45 family
@@ -55,7 +70,9 @@ the Microchip website: http://www.microchip.com.
55 - at91sam9g46 70 - at91sam9g46
56 - at91sam9m10 71 - at91sam9m10
57 - at91sam9m11 (device superset) 72 - at91sam9m11 (device superset)
58 + Datasheet 73
74 * Datasheet
75
59 http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-6437-32-bit-ARM926-Embedded-Microprocessor-SAM9M11_Datasheet.pdf 76 http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-6437-32-bit-ARM926-Embedded-Microprocessor-SAM9M11_Datasheet.pdf
60 77
61 - at91sam9x5 family (aka "The 5 series") 78 - at91sam9x5 family (aka "The 5 series")
@@ -64,33 +81,44 @@ the Microchip website: http://www.microchip.com.
64 - at91sam9g35 81 - at91sam9g35
65 - at91sam9x25 82 - at91sam9x25
66 - at91sam9x35 83 - at91sam9x35
67 + Datasheet (can be considered as covering the whole family) 84
85 * Datasheet (can be considered as covering the whole family)
86
68 http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-11055-32-bit-ARM926EJ-S-Microcontroller-SAM9X35_Datasheet.pdf 87 http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-11055-32-bit-ARM926EJ-S-Microcontroller-SAM9X35_Datasheet.pdf
69 88
70 - at91sam9n12 89 - at91sam9n12
71 + Datasheet 90
91 * Datasheet
92
72 http://ww1.microchip.com/downloads/en/DeviceDoc/DS60001517A.pdf 93 http://ww1.microchip.com/downloads/en/DeviceDoc/DS60001517A.pdf
73 94
74 * ARM Cortex-A5 based SoCs 95 * ARM Cortex-A5 based SoCs
75 - sama5d3 family 96 - sama5d3 family
97
76 - sama5d31 98 - sama5d31
77 - sama5d33 99 - sama5d33
78 - sama5d34 100 - sama5d34
79 - sama5d35 101 - sama5d35
80 - sama5d36 (device superset) 102 - sama5d36 (device superset)
81 + Datasheet 103
104 * Datasheet
105
82 http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-11121-32-bit-Cortex-A5-Microcontroller-SAMA5D3_Datasheet.pdf 106 http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-11121-32-bit-Cortex-A5-Microcontroller-SAMA5D3_Datasheet.pdf
83 107
84 * ARM Cortex-A5 + NEON based SoCs 108 * ARM Cortex-A5 + NEON based SoCs
85 - sama5d4 family 109 - sama5d4 family
110
86 - sama5d41 111 - sama5d41
87 - sama5d42 112 - sama5d42
88 - sama5d43 113 - sama5d43
89 - sama5d44 (device superset) 114 - sama5d44 (device superset)
90 + Datasheet 115
116 * Datasheet
117
91 http://ww1.microchip.com/downloads/en/DeviceDoc/60001525A.pdf 118 http://ww1.microchip.com/downloads/en/DeviceDoc/60001525A.pdf
92 119
93 - sama5d2 family 120 - sama5d2 family
121
94 - sama5d21 122 - sama5d21
95 - sama5d22 123 - sama5d22
96 - sama5d23 124 - sama5d23
@@ -98,11 +126,14 @@ the Microchip website: http://www.microchip.com.
98 - sama5d26 126 - sama5d26
99 - sama5d27 (device superset) 127 - sama5d27 (device superset)
100 - sama5d28 (device superset + environmental monitors) 128 - sama5d28 (device superset + environmental monitors)
101 + Datasheet 129
130 * Datasheet
131
102 http://ww1.microchip.com/downloads/en/DeviceDoc/DS60001476B.pdf 132 http://ww1.microchip.com/downloads/en/DeviceDoc/DS60001476B.pdf
103 133
104 * ARM Cortex-M7 MCUs 134 * ARM Cortex-M7 MCUs
105 - sams70 family 135 - sams70 family
136
106 - sams70j19 137 - sams70j19
107 - sams70j20 138 - sams70j20
108 - sams70j21 139 - sams70j21
@@ -114,6 +145,7 @@ the Microchip website: http://www.microchip.com.
114 - sams70q21 145 - sams70q21
115 146
116 - samv70 family 147 - samv70 family
148
117 - samv70j19 149 - samv70j19
118 - samv70j20 150 - samv70j20
119 - samv70n19 151 - samv70n19
@@ -122,6 +154,7 @@ the Microchip website: http://www.microchip.com.
122 - samv70q20 154 - samv70q20
123 155
124 - samv71 family 156 - samv71 family
157
125 - samv71j19 158 - samv71j19
126 - samv71j20 159 - samv71j20
127 - samv71j21 160 - samv71j21
@@ -132,7 +165,8 @@ the Microchip website: http://www.microchip.com.
132 - samv71q20 165 - samv71q20
133 - samv71q21 166 - samv71q21
134 167
135 + Datasheet 168 * Datasheet
169
136 http://ww1.microchip.com/downloads/en/DeviceDoc/60001527A.pdf 170 http://ww1.microchip.com/downloads/en/DeviceDoc/60001527A.pdf
137 171
138 172
@@ -157,6 +191,7 @@ definition of a "Stable" binding/ABI.
157This statement will be removed by AT91 MAINTAINERS when appropriate. 191This statement will be removed by AT91 MAINTAINERS when appropriate.
158 192
159Naming conventions and best practice: 193Naming conventions and best practice:
194
160- SoCs Device Tree Source Include files are named after the official name of 195- SoCs Device Tree Source Include files are named after the official name of
161 the product (at91sam9g20.dtsi or sama5d33.dtsi for instance). 196 the product (at91sam9g20.dtsi or sama5d33.dtsi for instance).
162- Device Tree Source Include files (.dtsi) are used to collect common nodes that can be 197- Device Tree Source Include files (.dtsi) are used to collect common nodes that can be
diff --git a/Documentation/arm/netwinder.rst b/Documentation/arm/netwinder.rst
new file mode 100644
index 000000000000..8eab66caa2ac
--- /dev/null
+++ b/Documentation/arm/netwinder.rst
@@ -0,0 +1,85 @@
1================================
2NetWinder specific documentation
3================================
4
5The NetWinder is a small low-power computer, primarily designed
6to run Linux. It is based around the StrongARM RISC processor,
7DC21285 PCI bridge, with PC-type hardware glued around it.
8
9Port usage
10==========
11
12======= ====== ===============================
13Min Max Description
14======= ====== ===============================
150x0000 0x000f DMA1
160x0020 0x0021 PIC1
170x0060 0x006f Keyboard
180x0070 0x007f RTC
190x0080 0x0087 DMA1
200x0088 0x008f DMA2
210x00a0 0x00a3 PIC2
220x00c0 0x00df DMA2
230x0180 0x0187 IRDA
240x01f0 0x01f6 ide0
250x0201 Game port
260x0203 RWA010 configuration read
270x0220 ? SoundBlaster
280x0250 ? WaveArtist
290x0279 RWA010 configuration index
300x02f8 0x02ff Serial ttyS1
310x0300 0x031f Ether10
320x0338 GPIO1
330x033a GPIO2
340x0370 0x0371 W83977F configuration registers
350x0388 ? AdLib
360x03c0 0x03df VGA
370x03f6 ide0
380x03f8 0x03ff Serial ttyS0
390x0400 0x0408 DC21143
400x0480 0x0487 DMA1
410x0488 0x048f DMA2
420x0a79 RWA010 configuration write
430xe800 0xe80f ide0/ide1 BM DMA
44======= ====== ===============================
45
46
47Interrupt usage
48===============
49
50======= ======= ========================
51IRQ type Description
52======= ======= ========================
53 0 ISA 100Hz timer
54 1 ISA Keyboard
55 2 ISA cascade
56 3 ISA Serial ttyS1
57 4 ISA Serial ttyS0
58 5 ISA PS/2 mouse
59 6 ISA IRDA
60 7 ISA Printer
61 8 ISA RTC alarm
62 9 ISA
6310 ISA GP10 (Orange reset button)
6411 ISA
6512 ISA WaveArtist
6613 ISA
6714 ISA hda1
6815 ISA
69======= ======= ========================
70
71DMA usage
72=========
73
74======= ======= ===========
75DMA type Description
76======= ======= ===========
77 0 ISA IRDA
78 1 ISA
79 2 ISA cascade
80 3 ISA WaveArtist
81 4 ISA
82 5 ISA
83 6 ISA
84 7 ISA WaveArtist
85======= ======= ===========
diff --git a/Documentation/arm/nwfpe/index.rst b/Documentation/arm/nwfpe/index.rst
new file mode 100644
index 000000000000..21fa8ce192ae
--- /dev/null
+++ b/Documentation/arm/nwfpe/index.rst
@@ -0,0 +1,11 @@
1===================================
2NetWinder's floating point emulator
3===================================
4
5.. toctree::
6 :maxdepth: 1
7
8 nwfpe
9 netwinder-fpe
10 notes
11 todo
diff --git a/Documentation/arm/nwfpe/README.FPE b/Documentation/arm/nwfpe/netwinder-fpe.rst
index 26f5d7bb9a41..cbb320960fc4 100644
--- a/Documentation/arm/nwfpe/README.FPE
+++ b/Documentation/arm/nwfpe/netwinder-fpe.rst
@@ -1,12 +1,18 @@
1=============
2Current State
3=============
4
1The following describes the current state of the NetWinder's floating point 5The following describes the current state of the NetWinder's floating point
2emulator. 6emulator.
3 7
4In the following nomenclature is used to describe the floating point 8In the following nomenclature is used to describe the floating point
5instructions. It follows the conventions in the ARM manual. 9instructions. It follows the conventions in the ARM manual.
6 10
7<S|D|E> = <single|double|extended>, no default 11::
8{P|M|Z} = {round to +infinity,round to -infinity,round to zero}, 12
9 default = round to nearest 13 <S|D|E> = <single|double|extended>, no default
14 {P|M|Z} = {round to +infinity,round to -infinity,round to zero},
15 default = round to nearest
10 16
11Note: items enclosed in {} are optional. 17Note: items enclosed in {} are optional.
12 18
@@ -32,10 +38,10 @@ Form 2 syntax:
32<LFM|SFM>{cond}<FD,EA> Fd, <count>, [Rn]{!} 38<LFM|SFM>{cond}<FD,EA> Fd, <count>, [Rn]{!}
33 39
34These instructions are fully implemented. They store/load three words 40These instructions are fully implemented. They store/load three words
35for each floating point register into the memory location given in the 41for each floating point register into the memory location given in the
36instruction. The format in memory is unlikely to be compatible with 42instruction. The format in memory is unlikely to be compatible with
37other implementations, in particular the actual hardware. Specific 43other implementations, in particular the actual hardware. Specific
38mention of this is made in the ARM manuals. 44mention of this is made in the ARM manuals.
39 45
40Floating Point Coprocessor Register Transfer Instructions (CPRT) 46Floating Point Coprocessor Register Transfer Instructions (CPRT)
41---------------------------------------------------------------- 47----------------------------------------------------------------
@@ -123,7 +129,7 @@ RPW{cond}<S|D|E>{P,M,Z} Fd, Fn, <Fm,#value> - reverse power
123POL{cond}<S|D|E>{P,M,Z} Fd, Fn, <Fm,#value> - polar angle (arctan2) 129POL{cond}<S|D|E>{P,M,Z} Fd, Fn, <Fm,#value> - polar angle (arctan2)
124 130
125LOG{cond}<S|D|E>{P,M,Z} Fd, <Fm,#value> - logarithm to base 10 131LOG{cond}<S|D|E>{P,M,Z} Fd, <Fm,#value> - logarithm to base 10
126LGN{cond}<S|D|E>{P,M,Z} Fd, <Fm,#value> - logarithm to base e 132LGN{cond}<S|D|E>{P,M,Z} Fd, <Fm,#value> - logarithm to base e
127EXP{cond}<S|D|E>{P,M,Z} Fd, <Fm,#value> - exponent 133EXP{cond}<S|D|E>{P,M,Z} Fd, <Fm,#value> - exponent
128SIN{cond}<S|D|E>{P,M,Z} Fd, <Fm,#value> - sine 134SIN{cond}<S|D|E>{P,M,Z} Fd, <Fm,#value> - sine
129COS{cond}<S|D|E>{P,M,Z} Fd, <Fm,#value> - cosine 135COS{cond}<S|D|E>{P,M,Z} Fd, <Fm,#value> - cosine
@@ -134,7 +140,7 @@ ATN{cond}<S|D|E>{P,M,Z} Fd, <Fm,#value> - arctangent
134 140
135These are not implemented. They are not currently issued by the compiler, 141These are not implemented. They are not currently issued by the compiler,
136and are handled by routines in libc. These are not implemented by the FPA11 142and are handled by routines in libc. These are not implemented by the FPA11
137hardware, but are handled by the floating point support code. They should 143hardware, but are handled by the floating point support code. They should
138be implemented in future versions. 144be implemented in future versions.
139 145
140Signalling: 146Signalling:
@@ -147,10 +153,10 @@ current_set[0] correctly.
147The kernel provided with this distribution (vmlinux-nwfpe-0.93) contains 153The kernel provided with this distribution (vmlinux-nwfpe-0.93) contains
148a fix for this problem and also incorporates the current version of the 154a fix for this problem and also incorporates the current version of the
149emulator directly. It is possible to run with no floating point module 155emulator directly. It is possible to run with no floating point module
150loaded with this kernel. It is provided as a demonstration of the 156loaded with this kernel. It is provided as a demonstration of the
151technology and for those who want to do floating point work that depends 157technology and for those who want to do floating point work that depends
152on signals. It is not strictly necessary to use the module. 158on signals. It is not strictly necessary to use the module.
153 159
154A module (either the one provided by Russell King, or the one in this 160A module (either the one provided by Russell King, or the one in this
155distribution) can be loaded to replace the functionality of the emulator 161distribution) can be loaded to replace the functionality of the emulator
156built into the kernel. 162built into the kernel.
diff --git a/Documentation/arm/nwfpe/NOTES b/Documentation/arm/nwfpe/notes.rst
index 40577b5a49d3..102e55af8439 100644
--- a/Documentation/arm/nwfpe/NOTES
+++ b/Documentation/arm/nwfpe/notes.rst
@@ -1,3 +1,6 @@
1Notes
2=====
3
1There seems to be a problem with exp(double) and our emulator. I haven't 4There seems to be a problem with exp(double) and our emulator. I haven't
2been able to track it down yet. This does not occur with the emulator 5been able to track it down yet. This does not occur with the emulator
3supplied by Russell King. 6supplied by Russell King.
diff --git a/Documentation/arm/nwfpe/README b/Documentation/arm/nwfpe/nwfpe.rst
index 771871de0c8b..35cd90dacbff 100644
--- a/Documentation/arm/nwfpe/README
+++ b/Documentation/arm/nwfpe/nwfpe.rst
@@ -1,4 +1,7 @@
1This directory contains the version 0.92 test release of the NetWinder 1Introduction
2============
3
4This directory contains the version 0.92 test release of the NetWinder
2Floating Point Emulator. 5Floating Point Emulator.
3 6
4The majority of the code was written by me, Scott Bambrough It is 7The majority of the code was written by me, Scott Bambrough It is
@@ -31,7 +34,7 @@ SoftFloat to the ARM was done by Phil Blundell, based on an earlier
31port of SoftFloat version 1 by Neil Carson for NetBSD/arm32. 34port of SoftFloat version 1 by Neil Carson for NetBSD/arm32.
32 35
33The file README.FPE contains a description of what has been implemented 36The file README.FPE contains a description of what has been implemented
34so far in the emulator. The file TODO contains a information on what 37so far in the emulator. The file TODO contains a information on what
35remains to be done, and other ideas for the emulator. 38remains to be done, and other ideas for the emulator.
36 39
37Bug reports, comments, suggestions should be directed to me at 40Bug reports, comments, suggestions should be directed to me at
@@ -48,10 +51,11 @@ Legal Notices
48 51
49The NetWinder Floating Point Emulator is free software. Everything Rebel.com 52The NetWinder Floating Point Emulator is free software. Everything Rebel.com
50has written is provided under the GNU GPL. See the file COPYING for copying 53has written is provided under the GNU GPL. See the file COPYING for copying
51conditions. Excluded from the above is the SoftFloat code. John Hauser's 54conditions. Excluded from the above is the SoftFloat code. John Hauser's
52legal notice for SoftFloat is included below. 55legal notice for SoftFloat is included below.
53 56
54------------------------------------------------------------------------------- 57-------------------------------------------------------------------------------
58
55SoftFloat Legal Notice 59SoftFloat Legal Notice
56 60
57SoftFloat was written by John R. Hauser. This work was made possible in 61SoftFloat was written by John R. Hauser. This work was made possible in
diff --git a/Documentation/arm/nwfpe/TODO b/Documentation/arm/nwfpe/todo.rst
index 8027061b60eb..393f11b14540 100644
--- a/Documentation/arm/nwfpe/TODO
+++ b/Documentation/arm/nwfpe/todo.rst
@@ -1,39 +1,42 @@
1TODO LIST 1TODO LIST
2--------- 2=========
3 3
4POW{cond}<S|D|E>{P,M,Z} Fd, Fn, <Fm,#value> - power 4::
5RPW{cond}<S|D|E>{P,M,Z} Fd, Fn, <Fm,#value> - reverse power
6POL{cond}<S|D|E>{P,M,Z} Fd, Fn, <Fm,#value> - polar angle (arctan2)
7 5
8LOG{cond}<S|D|E>{P,M,Z} Fd, <Fm,#value> - logarithm to base 10 6 POW{cond}<S|D|E>{P,M,Z} Fd, Fn, <Fm,#value> - power
9LGN{cond}<S|D|E>{P,M,Z} Fd, <Fm,#value> - logarithm to base e 7 RPW{cond}<S|D|E>{P,M,Z} Fd, Fn, <Fm,#value> - reverse power
10EXP{cond}<S|D|E>{P,M,Z} Fd, <Fm,#value> - exponent 8 POL{cond}<S|D|E>{P,M,Z} Fd, Fn, <Fm,#value> - polar angle (arctan2)
11SIN{cond}<S|D|E>{P,M,Z} Fd, <Fm,#value> - sine 9
12COS{cond}<S|D|E>{P,M,Z} Fd, <Fm,#value> - cosine 10 LOG{cond}<S|D|E>{P,M,Z} Fd, <Fm,#value> - logarithm to base 10
13TAN{cond}<S|D|E>{P,M,Z} Fd, <Fm,#value> - tangent 11 LGN{cond}<S|D|E>{P,M,Z} Fd, <Fm,#value> - logarithm to base e
14ASN{cond}<S|D|E>{P,M,Z} Fd, <Fm,#value> - arcsine 12 EXP{cond}<S|D|E>{P,M,Z} Fd, <Fm,#value> - exponent
15ACS{cond}<S|D|E>{P,M,Z} Fd, <Fm,#value> - arccosine 13 SIN{cond}<S|D|E>{P,M,Z} Fd, <Fm,#value> - sine
16ATN{cond}<S|D|E>{P,M,Z} Fd, <Fm,#value> - arctangent 14 COS{cond}<S|D|E>{P,M,Z} Fd, <Fm,#value> - cosine
15 TAN{cond}<S|D|E>{P,M,Z} Fd, <Fm,#value> - tangent
16 ASN{cond}<S|D|E>{P,M,Z} Fd, <Fm,#value> - arcsine
17 ACS{cond}<S|D|E>{P,M,Z} Fd, <Fm,#value> - arccosine
18 ATN{cond}<S|D|E>{P,M,Z} Fd, <Fm,#value> - arctangent
17 19
18These are not implemented. They are not currently issued by the compiler, 20These are not implemented. They are not currently issued by the compiler,
19and are handled by routines in libc. These are not implemented by the FPA11 21and are handled by routines in libc. These are not implemented by the FPA11
20hardware, but are handled by the floating point support code. They should 22hardware, but are handled by the floating point support code. They should
21be implemented in future versions. 23be implemented in future versions.
22 24
23There are a couple of ways to approach the implementation of these. One 25There are a couple of ways to approach the implementation of these. One
24method would be to use accurate table methods for these routines. I have 26method would be to use accurate table methods for these routines. I have
25a couple of papers by S. Gal from IBM's research labs in Haifa, Israel that 27a couple of papers by S. Gal from IBM's research labs in Haifa, Israel that
26seem to promise extreme accuracy (in the order of 99.8%) and reasonable speed. 28seem to promise extreme accuracy (in the order of 99.8%) and reasonable speed.
27These methods are used in GLIBC for some of the transcendental functions. 29These methods are used in GLIBC for some of the transcendental functions.
28 30
29Another approach, which I know little about is CORDIC. This stands for 31Another approach, which I know little about is CORDIC. This stands for
30Coordinate Rotation Digital Computer, and is a method of computing 32Coordinate Rotation Digital Computer, and is a method of computing
31transcendental functions using mostly shifts and adds and a few 33transcendental functions using mostly shifts and adds and a few
32multiplications and divisions. The ARM excels at shifts and adds, 34multiplications and divisions. The ARM excels at shifts and adds,
33so such a method could be promising, but requires more research to 35so such a method could be promising, but requires more research to
34determine if it is feasible. 36determine if it is feasible.
35 37
36Rounding Methods 38Rounding Methods
39----------------
37 40
38The IEEE standard defines 4 rounding modes. Round to nearest is the 41The IEEE standard defines 4 rounding modes. Round to nearest is the
39default, but rounding to + or - infinity or round to zero are also allowed. 42default, but rounding to + or - infinity or round to zero are also allowed.
@@ -42,8 +45,8 @@ in a control register. Not so with the ARM FPA11 architecture. To change
42the rounding mode one must specify it with each instruction. 45the rounding mode one must specify it with each instruction.
43 46
44This has made porting some benchmarks difficult. It is possible to 47This has made porting some benchmarks difficult. It is possible to
45introduce such a capability into the emulator. The FPCR contains 48introduce such a capability into the emulator. The FPCR contains
46bits describing the rounding mode. The emulator could be altered to 49bits describing the rounding mode. The emulator could be altered to
47examine a flag, which if set forced it to ignore the rounding mode in 50examine a flag, which if set forced it to ignore the rounding mode in
48the instruction, and use the mode specified in the bits in the FPCR. 51the instruction, and use the mode specified in the bits in the FPCR.
49 52
@@ -52,7 +55,8 @@ in the FPCR. This requires a kernel call in ArmLinux, as WFC/RFC are
52supervisor only instructions. If anyone has any ideas or comments I 55supervisor only instructions. If anyone has any ideas or comments I
53would like to hear them. 56would like to hear them.
54 57
55[NOTE: pulled out from some docs on ARM floating point, specifically 58NOTE:
59 pulled out from some docs on ARM floating point, specifically
56 for the Acorn FPE, but not limited to it: 60 for the Acorn FPE, but not limited to it:
57 61
58 The floating point control register (FPCR) may only be present in some 62 The floating point control register (FPCR) may only be present in some
@@ -64,4 +68,5 @@ would like to hear them.
64 68
65 Hence, the answer is yes, you could do this, but then you will run a high 69 Hence, the answer is yes, you could do this, but then you will run a high
66 risk of becoming isolated if and when hardware FP emulation comes out 70 risk of becoming isolated if and when hardware FP emulation comes out
67 -- Russell]. 71
72 -- Russell.
diff --git a/Documentation/arm/OMAP/DSS b/Documentation/arm/omap/dss.rst
index 4484e021290e..a40c4d9c717a 100644
--- a/Documentation/arm/OMAP/DSS
+++ b/Documentation/arm/omap/dss.rst
@@ -1,5 +1,6 @@
1=========================
1OMAP2/3 Display Subsystem 2OMAP2/3 Display Subsystem
2------------------------- 3=========================
3 4
4This is an almost total rewrite of the OMAP FB driver in drivers/video/omap 5This is an almost total rewrite of the OMAP FB driver in drivers/video/omap
5(let's call it DSS1). The main differences between DSS1 and DSS2 are DSI, 6(let's call it DSS1). The main differences between DSS1 and DSS2 are DSI,
@@ -190,6 +191,8 @@ trans_key_value transparency color key (RGB24)
190default_color default background color (RGB24) 191default_color default background color (RGB24)
191 192
192/sys/devices/platform/omapdss/display? directory: 193/sys/devices/platform/omapdss/display? directory:
194
195=============== =============================================================
193ctrl_name Controller name 196ctrl_name Controller name
194mirror 0=off, 1=on 197mirror 0=off, 1=on
195update_mode 0=off, 1=auto, 2=manual 198update_mode 0=off, 1=auto, 2=manual
@@ -202,6 +205,7 @@ timings Display timings (pixclock,xres/hfp/hbp/hsw,yres/vfp/vbp/vsw)
202panel_name 205panel_name
203tear_elim Tearing elimination 0=off, 1=on 206tear_elim Tearing elimination 0=off, 1=on
204output_type Output type (video encoder only): "composite" or "svideo" 207output_type Output type (video encoder only): "composite" or "svideo"
208=============== =============================================================
205 209
206There are also some debugfs files at <debugfs>/omapdss/ which show information 210There are also some debugfs files at <debugfs>/omapdss/ which show information
207about clocks and registers. 211about clocks and registers.
@@ -209,22 +213,22 @@ about clocks and registers.
209Examples 213Examples
210-------- 214--------
211 215
212The following definitions have been made for the examples below: 216The following definitions have been made for the examples below::
213 217
214ovl0=/sys/devices/platform/omapdss/overlay0 218 ovl0=/sys/devices/platform/omapdss/overlay0
215ovl1=/sys/devices/platform/omapdss/overlay1 219 ovl1=/sys/devices/platform/omapdss/overlay1
216ovl2=/sys/devices/platform/omapdss/overlay2 220 ovl2=/sys/devices/platform/omapdss/overlay2
217 221
218mgr0=/sys/devices/platform/omapdss/manager0 222 mgr0=/sys/devices/platform/omapdss/manager0
219mgr1=/sys/devices/platform/omapdss/manager1 223 mgr1=/sys/devices/platform/omapdss/manager1
220 224
221lcd=/sys/devices/platform/omapdss/display0 225 lcd=/sys/devices/platform/omapdss/display0
222dvi=/sys/devices/platform/omapdss/display1 226 dvi=/sys/devices/platform/omapdss/display1
223tv=/sys/devices/platform/omapdss/display2 227 tv=/sys/devices/platform/omapdss/display2
224 228
225fb0=/sys/class/graphics/fb0 229 fb0=/sys/class/graphics/fb0
226fb1=/sys/class/graphics/fb1 230 fb1=/sys/class/graphics/fb1
227fb2=/sys/class/graphics/fb2 231 fb2=/sys/class/graphics/fb2
228 232
229Default setup on OMAP3 SDP 233Default setup on OMAP3 SDP
230-------------------------- 234--------------------------
@@ -232,55 +236,59 @@ Default setup on OMAP3 SDP
232Here's the default setup on OMAP3 SDP board. All planes go to LCD. DVI 236Here's the default setup on OMAP3 SDP board. All planes go to LCD. DVI
233and TV-out are not in use. The columns from left to right are: 237and TV-out are not in use. The columns from left to right are:
234framebuffers, overlays, overlay managers, displays. Framebuffers are 238framebuffers, overlays, overlay managers, displays. Framebuffers are
235handled by omapfb, and the rest by the DSS. 239handled by omapfb, and the rest by the DSS::
236 240
237FB0 --- GFX -\ DVI 241 FB0 --- GFX -\ DVI
238FB1 --- VID1 --+- LCD ---- LCD 242 FB1 --- VID1 --+- LCD ---- LCD
239FB2 --- VID2 -/ TV ----- TV 243 FB2 --- VID2 -/ TV ----- TV
240 244
241Example: Switch from LCD to DVI 245Example: Switch from LCD to DVI
242---------------------- 246-------------------------------
247
248::
243 249
244w=`cat $dvi/timings | cut -d "," -f 2 | cut -d "/" -f 1` 250 w=`cat $dvi/timings | cut -d "," -f 2 | cut -d "/" -f 1`
245h=`cat $dvi/timings | cut -d "," -f 3 | cut -d "/" -f 1` 251 h=`cat $dvi/timings | cut -d "," -f 3 | cut -d "/" -f 1`
246 252
247echo "0" > $lcd/enabled 253 echo "0" > $lcd/enabled
248echo "" > $mgr0/display 254 echo "" > $mgr0/display
249fbset -fb /dev/fb0 -xres $w -yres $h -vxres $w -vyres $h 255 fbset -fb /dev/fb0 -xres $w -yres $h -vxres $w -vyres $h
250# at this point you have to switch the dvi/lcd dip-switch from the omap board 256 # at this point you have to switch the dvi/lcd dip-switch from the omap board
251echo "dvi" > $mgr0/display 257 echo "dvi" > $mgr0/display
252echo "1" > $dvi/enabled 258 echo "1" > $dvi/enabled
253 259
254After this the configuration looks like: 260After this the configuration looks like:::
255 261
256FB0 --- GFX -\ -- DVI 262 FB0 --- GFX -\ -- DVI
257FB1 --- VID1 --+- LCD -/ LCD 263 FB1 --- VID1 --+- LCD -/ LCD
258FB2 --- VID2 -/ TV ----- TV 264 FB2 --- VID2 -/ TV ----- TV
259 265
260Example: Clone GFX overlay to LCD and TV 266Example: Clone GFX overlay to LCD and TV
261------------------------------- 267----------------------------------------
268
269::
262 270
263w=`cat $tv/timings | cut -d "," -f 2 | cut -d "/" -f 1` 271 w=`cat $tv/timings | cut -d "," -f 2 | cut -d "/" -f 1`
264h=`cat $tv/timings | cut -d "," -f 3 | cut -d "/" -f 1` 272 h=`cat $tv/timings | cut -d "," -f 3 | cut -d "/" -f 1`
265 273
266echo "0" > $ovl0/enabled 274 echo "0" > $ovl0/enabled
267echo "0" > $ovl1/enabled 275 echo "0" > $ovl1/enabled
268 276
269echo "" > $fb1/overlays 277 echo "" > $fb1/overlays
270echo "0,1" > $fb0/overlays 278 echo "0,1" > $fb0/overlays
271 279
272echo "$w,$h" > $ovl1/output_size 280 echo "$w,$h" > $ovl1/output_size
273echo "tv" > $ovl1/manager 281 echo "tv" > $ovl1/manager
274 282
275echo "1" > $ovl0/enabled 283 echo "1" > $ovl0/enabled
276echo "1" > $ovl1/enabled 284 echo "1" > $ovl1/enabled
277 285
278echo "1" > $tv/enabled 286 echo "1" > $tv/enabled
279 287
280After this the configuration looks like (only relevant parts shown): 288After this the configuration looks like (only relevant parts shown)::
281 289
282FB0 +-- GFX ---- LCD ---- LCD 290 FB0 +-- GFX ---- LCD ---- LCD
283 \- VID1 ---- TV ---- TV 291 \- VID1 ---- TV ---- TV
284 292
285Misc notes 293Misc notes
286---------- 294----------
@@ -351,12 +359,14 @@ TODO
351DSS locking 359DSS locking
352 360
353Error checking 361Error checking
362
354- Lots of checks are missing or implemented just as BUG() 363- Lots of checks are missing or implemented just as BUG()
355 364
356System DMA update for DSI 365System DMA update for DSI
366
357- Can be used for RGB16 and RGB24P modes. Probably not for RGB24U (how 367- Can be used for RGB16 and RGB24P modes. Probably not for RGB24U (how
358 to skip the empty byte?) 368 to skip the empty byte?)
359 369
360OMAP1 support 370OMAP1 support
361- Not sure if needed
362 371
372- Not sure if needed
diff --git a/Documentation/arm/omap/index.rst b/Documentation/arm/omap/index.rst
new file mode 100644
index 000000000000..f1e9c11d9f9b
--- /dev/null
+++ b/Documentation/arm/omap/index.rst
@@ -0,0 +1,10 @@
1=======
2TI OMAP
3=======
4
5.. toctree::
6 :maxdepth: 1
7
8 omap
9 omap_pm
10 dss
diff --git a/Documentation/arm/OMAP/README b/Documentation/arm/omap/omap.rst
index 90c6c57d61e8..f440c0f4613f 100644
--- a/Documentation/arm/OMAP/README
+++ b/Documentation/arm/omap/omap.rst
@@ -1,7 +1,13 @@
1============
2OMAP history
3============
4
1This file contains documentation for running mainline 5This file contains documentation for running mainline
2kernel on omaps. 6kernel on omaps.
3 7
8====== ======================================================
4KERNEL NEW DEPENDENCIES 9KERNEL NEW DEPENDENCIES
10====== ======================================================
5v4.3+ Update is needed for custom .config files to make sure 11v4.3+ Update is needed for custom .config files to make sure
6 CONFIG_REGULATOR_PBIAS is enabled for MMC1 to work 12 CONFIG_REGULATOR_PBIAS is enabled for MMC1 to work
7 properly. 13 properly.
@@ -9,3 +15,4 @@ v4.3+ Update is needed for custom .config files to make sure
9v4.18+ Update is needed for custom .config files to make sure 15v4.18+ Update is needed for custom .config files to make sure
10 CONFIG_MMC_SDHCI_OMAP is enabled for all MMC instances 16 CONFIG_MMC_SDHCI_OMAP is enabled for all MMC instances
11 to work in DRA7 and K2G based boards. 17 to work in DRA7 and K2G based boards.
18====== ======================================================
diff --git a/Documentation/arm/OMAP/omap_pm b/Documentation/arm/omap/omap_pm.rst
index 4ae915a9f899..a335e4c8ce2c 100644
--- a/Documentation/arm/OMAP/omap_pm
+++ b/Documentation/arm/omap/omap_pm.rst
@@ -1,4 +1,4 @@
1 1=====================
2The OMAP PM interface 2The OMAP PM interface
3===================== 3=====================
4 4
@@ -31,19 +31,24 @@ Drivers need to express PM parameters which:
31This document proposes the OMAP PM interface, including the following 31This document proposes the OMAP PM interface, including the following
32five power management functions for driver code: 32five power management functions for driver code:
33 33
341. Set the maximum MPU wakeup latency: 341. Set the maximum MPU wakeup latency::
35
35 (*pdata->set_max_mpu_wakeup_lat)(struct device *dev, unsigned long t) 36 (*pdata->set_max_mpu_wakeup_lat)(struct device *dev, unsigned long t)
36 37
372. Set the maximum device wakeup latency: 382. Set the maximum device wakeup latency::
39
38 (*pdata->set_max_dev_wakeup_lat)(struct device *dev, unsigned long t) 40 (*pdata->set_max_dev_wakeup_lat)(struct device *dev, unsigned long t)
39 41
403. Set the maximum system DMA transfer start latency (CORE pwrdm): 423. Set the maximum system DMA transfer start latency (CORE pwrdm)::
43
41 (*pdata->set_max_sdma_lat)(struct device *dev, long t) 44 (*pdata->set_max_sdma_lat)(struct device *dev, long t)
42 45
434. Set the minimum bus throughput needed by a device: 464. Set the minimum bus throughput needed by a device::
47
44 (*pdata->set_min_bus_tput)(struct device *dev, u8 agent_id, unsigned long r) 48 (*pdata->set_min_bus_tput)(struct device *dev, u8 agent_id, unsigned long r)
45 49
465. Return the number of times the device has lost context 505. Return the number of times the device has lost context::
51
47 (*pdata->get_dev_context_loss_count)(struct device *dev) 52 (*pdata->get_dev_context_loss_count)(struct device *dev)
48 53
49 54
@@ -65,12 +70,13 @@ Driver usage of the OMAP PM functions
65 70
66As the 'pdata' in the above examples indicates, these functions are 71As the 'pdata' in the above examples indicates, these functions are
67exposed to drivers through function pointers in driver .platform_data 72exposed to drivers through function pointers in driver .platform_data
68structures. The function pointers are initialized by the board-*.c 73structures. The function pointers are initialized by the `board-*.c`
69files to point to the corresponding OMAP PM functions: 74files to point to the corresponding OMAP PM functions:
70.set_max_dev_wakeup_lat will point to 75
71omap_pm_set_max_dev_wakeup_lat(), etc. Other architectures which do 76- set_max_dev_wakeup_lat will point to
72not support these functions should leave these function pointers set 77 omap_pm_set_max_dev_wakeup_lat(), etc. Other architectures which do
73to NULL. Drivers should use the following idiom: 78 not support these functions should leave these function pointers set
79 to NULL. Drivers should use the following idiom::
74 80
75 if (pdata->set_max_dev_wakeup_lat) 81 if (pdata->set_max_dev_wakeup_lat)
76 (*pdata->set_max_dev_wakeup_lat)(dev, t); 82 (*pdata->set_max_dev_wakeup_lat)(dev, t);
@@ -81,7 +87,7 @@ becomes accessible. To accomplish this, driver writers should use the
81set_max_mpu_wakeup_lat() function to constrain the MPU wakeup 87set_max_mpu_wakeup_lat() function to constrain the MPU wakeup
82latency, and the set_max_dev_wakeup_lat() function to constrain the 88latency, and the set_max_dev_wakeup_lat() function to constrain the
83device wakeup latency (from clk_enable() to accessibility). For 89device wakeup latency (from clk_enable() to accessibility). For
84example, 90example::
85 91
86 /* Limit MPU wakeup latency */ 92 /* Limit MPU wakeup latency */
87 if (pdata->set_max_mpu_wakeup_lat) 93 if (pdata->set_max_mpu_wakeup_lat)
@@ -116,17 +122,17 @@ specialized cases to convert that input information (OPPs/MPU
116frequency) into the form that the underlying power management 122frequency) into the form that the underlying power management
117implementation needs: 123implementation needs:
118 124
1196. (*pdata->dsp_get_opp_table)(void) 1256. `(*pdata->dsp_get_opp_table)(void)`
120 126
1217. (*pdata->dsp_set_min_opp)(u8 opp_id) 1277. `(*pdata->dsp_set_min_opp)(u8 opp_id)`
122 128
1238. (*pdata->dsp_get_opp)(void) 1298. `(*pdata->dsp_get_opp)(void)`
124 130
1259. (*pdata->cpu_get_freq_table)(void) 1319. `(*pdata->cpu_get_freq_table)(void)`
126 132
12710. (*pdata->cpu_set_freq)(unsigned long f) 13310. `(*pdata->cpu_set_freq)(unsigned long f)`
128 134
12911. (*pdata->cpu_get_freq)(void) 13511. `(*pdata->cpu_get_freq)(void)`
130 136
131Customizing OPP for platform 137Customizing OPP for platform
132============================ 138============================
@@ -134,12 +140,15 @@ Defining CONFIG_PM should enable OPP layer for the silicon
134and the registration of OPP table should take place automatically. 140and the registration of OPP table should take place automatically.
135However, in special cases, the default OPP table may need to be 141However, in special cases, the default OPP table may need to be
136tweaked, for e.g.: 142tweaked, for e.g.:
143
137 * enable default OPPs which are disabled by default, but which 144 * enable default OPPs which are disabled by default, but which
138 could be enabled on a platform 145 could be enabled on a platform
139 * Disable an unsupported OPP on the platform 146 * Disable an unsupported OPP on the platform
140 * Define and add a custom opp table entry 147 * Define and add a custom opp table entry
141in these cases, the board file needs to do additional steps as follows: 148 in these cases, the board file needs to do additional steps as follows:
142arch/arm/mach-omapx/board-xyz.c 149
150arch/arm/mach-omapx/board-xyz.c::
151
143 #include "pm.h" 152 #include "pm.h"
144 .... 153 ....
145 static void __init omap_xyz_init_irq(void) 154 static void __init omap_xyz_init_irq(void)
@@ -150,5 +159,7 @@ arch/arm/mach-omapx/board-xyz.c
150 /* Do customization to the defaults */ 159 /* Do customization to the defaults */
151 .... 160 ....
152 } 161 }
153NOTE: omapx_opp_init will be omap3_opp_init or as required 162
154based on the omap family. 163NOTE:
164 omapx_opp_init will be omap3_opp_init or as required
165 based on the omap family.
diff --git a/Documentation/arm/Porting b/Documentation/arm/porting.rst
index a492233931b9..bd21958bdb2d 100644
--- a/Documentation/arm/Porting
+++ b/Documentation/arm/porting.rst
@@ -1,3 +1,7 @@
1=======
2Porting
3=======
4
1Taken from list archive at http://lists.arm.linux.org.uk/pipermail/linux-arm-kernel/2001-July/004064.html 5Taken from list archive at http://lists.arm.linux.org.uk/pipermail/linux-arm-kernel/2001-July/004064.html
2 6
3Initial definitions 7Initial definitions
@@ -89,8 +93,7 @@ DATAADDR
89 Virtual address for the kernel data segment. Must not be defined 93 Virtual address for the kernel data segment. Must not be defined
90 when using the decompressor. 94 when using the decompressor.
91 95
92VMALLOC_START 96VMALLOC_START / VMALLOC_END
93VMALLOC_END
94 Virtual addresses bounding the vmalloc() area. There must not be 97 Virtual addresses bounding the vmalloc() area. There must not be
95 any static mappings in this area; vmalloc will overwrite them. 98 any static mappings in this area; vmalloc will overwrite them.
96 The addresses must also be in the kernel segment (see above). 99 The addresses must also be in the kernel segment (see above).
@@ -107,13 +110,13 @@ Architecture Specific Macros
107---------------------------- 110----------------------------
108 111
109BOOT_MEM(pram,pio,vio) 112BOOT_MEM(pram,pio,vio)
110 `pram' specifies the physical start address of RAM. Must always 113 `pram` specifies the physical start address of RAM. Must always
111 be present, and should be the same as PHYS_OFFSET. 114 be present, and should be the same as PHYS_OFFSET.
112 115
113 `pio' is the physical address of an 8MB region containing IO for 116 `pio` is the physical address of an 8MB region containing IO for
114 use with the debugging macros in arch/arm/kernel/debug-armv.S. 117 use with the debugging macros in arch/arm/kernel/debug-armv.S.
115 118
116 `vio' is the virtual address of the 8MB debugging region. 119 `vio` is the virtual address of the 8MB debugging region.
117 120
118 It is expected that the debugging region will be re-initialised 121 It is expected that the debugging region will be re-initialised
119 by the architecture specific code later in the code (via the 122 by the architecture specific code later in the code (via the
@@ -132,4 +135,3 @@ MAPIO(func)
132 135
133INITIRQ(func) 136INITIRQ(func)
134 Machine specific function to initialise interrupts. 137 Machine specific function to initialise interrupts.
135
diff --git a/Documentation/arm/pxa/mfp.txt b/Documentation/arm/pxa/mfp.rst
index 0b7cab978c02..ac34e5d7ee44 100644
--- a/Documentation/arm/pxa/mfp.txt
+++ b/Documentation/arm/pxa/mfp.rst
@@ -1,4 +1,6 @@
1 MFP Configuration for PXA2xx/PXA3xx Processors 1==============================================
2MFP Configuration for PXA2xx/PXA3xx Processors
3==============================================
2 4
3 Eric Miao <eric.miao@marvell.com> 5 Eric Miao <eric.miao@marvell.com>
4 6
@@ -6,15 +8,15 @@ MFP stands for Multi-Function Pin, which is the pin-mux logic on PXA3xx and
6later PXA series processors. This document describes the existing MFP API, 8later PXA series processors. This document describes the existing MFP API,
7and how board/platform driver authors could make use of it. 9and how board/platform driver authors could make use of it.
8 10
9 Basic Concept 11Basic Concept
10=============== 12=============
11 13
12Unlike the GPIO alternate function settings on PXA25x and PXA27x, a new MFP 14Unlike the GPIO alternate function settings on PXA25x and PXA27x, a new MFP
13mechanism is introduced from PXA3xx to completely move the pin-mux functions 15mechanism is introduced from PXA3xx to completely move the pin-mux functions
14out of the GPIO controller. In addition to pin-mux configurations, the MFP 16out of the GPIO controller. In addition to pin-mux configurations, the MFP
15also controls the low power state, driving strength, pull-up/down and event 17also controls the low power state, driving strength, pull-up/down and event
16detection of each pin. Below is a diagram of internal connections between 18detection of each pin. Below is a diagram of internal connections between
17the MFP logic and the remaining SoC peripherals: 19the MFP logic and the remaining SoC peripherals::
18 20
19 +--------+ 21 +--------+
20 | |--(GPIO19)--+ 22 | |--(GPIO19)--+
@@ -69,8 +71,8 @@ NOTE: with such a clear separation of MFP and GPIO, by GPIO<xx> we normally
69mean it is a GPIO signal, and by MFP<xxx> or pin xxx, we mean a physical 71mean it is a GPIO signal, and by MFP<xxx> or pin xxx, we mean a physical
70pad (or ball). 72pad (or ball).
71 73
72 MFP API Usage 74MFP API Usage
73=============== 75=============
74 76
75For board code writers, here are some guidelines: 77For board code writers, here are some guidelines:
76 78
@@ -94,9 +96,9 @@ For board code writers, here are some guidelines:
94 PXA310 supporting some additional ones), thus the difference is actually 96 PXA310 supporting some additional ones), thus the difference is actually
95 covered in a single mfp-pxa300.h. 97 covered in a single mfp-pxa300.h.
96 98
972. prepare an array for the initial pin configurations, e.g.: 992. prepare an array for the initial pin configurations, e.g.::
98 100
99 static unsigned long mainstone_pin_config[] __initdata = { 101 static unsigned long mainstone_pin_config[] __initdata = {
100 /* Chip Select */ 102 /* Chip Select */
101 GPIO15_nCS_1, 103 GPIO15_nCS_1,
102 104
@@ -116,7 +118,7 @@ For board code writers, here are some guidelines:
116 118
117 /* GPIO */ 119 /* GPIO */
118 GPIO1_GPIO | WAKEUP_ON_EDGE_BOTH, 120 GPIO1_GPIO | WAKEUP_ON_EDGE_BOTH,
119 }; 121 };
120 122
121 a) once the pin configurations are passed to pxa{2xx,3xx}_mfp_config(), 123 a) once the pin configurations are passed to pxa{2xx,3xx}_mfp_config(),
122 and written to the actual registers, they are useless and may discard, 124 and written to the actual registers, they are useless and may discard,
@@ -143,17 +145,17 @@ For board code writers, here are some guidelines:
143 d) although PXA3xx MFP supports edge detection on each pin, the 145 d) although PXA3xx MFP supports edge detection on each pin, the
144 internal logic will only wakeup the system when those specific bits 146 internal logic will only wakeup the system when those specific bits
145 in ADxER registers are set, which can be well mapped to the 147 in ADxER registers are set, which can be well mapped to the
146 corresponding peripheral, thus set_irq_wake() can be called with 148 corresponding peripheral, thus set_irq_wake() can be called with
147 the peripheral IRQ to enable the wakeup. 149 the peripheral IRQ to enable the wakeup.
148 150
149 151
150 MFP on PXA3xx 152MFP on PXA3xx
151=============== 153=============
152 154
153Every external I/O pad on PXA3xx (excluding those for special purpose) has 155Every external I/O pad on PXA3xx (excluding those for special purpose) has
154one MFP logic associated, and is controlled by one MFP register (MFPR). 156one MFP logic associated, and is controlled by one MFP register (MFPR).
155 157
156The MFPR has the following bit definitions (for PXA300/PXA310/PXA320): 158The MFPR has the following bit definitions (for PXA300/PXA310/PXA320)::
157 159
158 31 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 160 31 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
159 +-------------------------+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 161 +-------------------------+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
@@ -183,8 +185,8 @@ The MFPR has the following bit definitions (for PXA300/PXA310/PXA320):
183 0b006 - slow 10mA 185 0b006 - slow 10mA
184 0b007 - fast 10mA 186 0b007 - fast 10mA
185 187
186 MFP Design for PXA2xx/PXA3xx 188MFP Design for PXA2xx/PXA3xx
187============================== 189============================
188 190
189Due to the difference of pin-mux handling between PXA2xx and PXA3xx, a unified 191Due to the difference of pin-mux handling between PXA2xx and PXA3xx, a unified
190MFP API is introduced to cover both series of processors. 192MFP API is introduced to cover both series of processors.
@@ -194,11 +196,11 @@ configurations, these definitions are processor and platform independent, and
194the actual API invoked to convert these definitions into register settings and 196the actual API invoked to convert these definitions into register settings and
195make them effective there-after. 197make them effective there-after.
196 198
197 Files Involved 199Files Involved
198 -------------- 200--------------
199 201
200 - arch/arm/mach-pxa/include/mach/mfp.h 202 - arch/arm/mach-pxa/include/mach/mfp.h
201 203
202 for 204 for
203 1. Unified pin definitions - enum constants for all configurable pins 205 1. Unified pin definitions - enum constants for all configurable pins
204 2. processor-neutral bit definitions for a possible MFP configuration 206 2. processor-neutral bit definitions for a possible MFP configuration
@@ -226,42 +228,42 @@ make them effective there-after.
226 for implementation of the pin configuration to take effect for the actual 228 for implementation of the pin configuration to take effect for the actual
227 processor. 229 processor.
228 230
229 Pin Configuration 231Pin Configuration
230 ----------------- 232-----------------
231 233
232 The following comments are copied from mfp.h (see the actual source code 234 The following comments are copied from mfp.h (see the actual source code
233 for most updated info) 235 for most updated info)::
234 236
235 /* 237 /*
236 * a possible MFP configuration is represented by a 32-bit integer 238 * a possible MFP configuration is represented by a 32-bit integer
237 * 239 *
238 * bit 0.. 9 - MFP Pin Number (1024 Pins Maximum) 240 * bit 0.. 9 - MFP Pin Number (1024 Pins Maximum)
239 * bit 10..12 - Alternate Function Selection 241 * bit 10..12 - Alternate Function Selection
240 * bit 13..15 - Drive Strength 242 * bit 13..15 - Drive Strength
241 * bit 16..18 - Low Power Mode State 243 * bit 16..18 - Low Power Mode State
242 * bit 19..20 - Low Power Mode Edge Detection 244 * bit 19..20 - Low Power Mode Edge Detection
243 * bit 21..22 - Run Mode Pull State 245 * bit 21..22 - Run Mode Pull State
244 * 246 *
245 * to facilitate the definition, the following macros are provided 247 * to facilitate the definition, the following macros are provided
246 * 248 *
247 * MFP_CFG_DEFAULT - default MFP configuration value, with 249 * MFP_CFG_DEFAULT - default MFP configuration value, with
248 * alternate function = 0, 250 * alternate function = 0,
249 * drive strength = fast 3mA (MFP_DS03X) 251 * drive strength = fast 3mA (MFP_DS03X)
250 * low power mode = default 252 * low power mode = default
251 * edge detection = none 253 * edge detection = none
252 * 254 *
253 * MFP_CFG - default MFPR value with alternate function 255 * MFP_CFG - default MFPR value with alternate function
254 * MFP_CFG_DRV - default MFPR value with alternate function and 256 * MFP_CFG_DRV - default MFPR value with alternate function and
255 * pin drive strength 257 * pin drive strength
256 * MFP_CFG_LPM - default MFPR value with alternate function and 258 * MFP_CFG_LPM - default MFPR value with alternate function and
257 * low power mode 259 * low power mode
258 * MFP_CFG_X - default MFPR value with alternate function, 260 * MFP_CFG_X - default MFPR value with alternate function,
259 * pin drive strength and low power mode 261 * pin drive strength and low power mode
260 */ 262 */
261 263
262 Examples of pin configurations are: 264 Examples of pin configurations are::
263 265
264 #define GPIO94_SSP3_RXD MFP_CFG_X(GPIO94, AF1, DS08X, FLOAT) 266 #define GPIO94_SSP3_RXD MFP_CFG_X(GPIO94, AF1, DS08X, FLOAT)
265 267
266 which reads GPIO94 can be configured as SSP3_RXD, with alternate function 268 which reads GPIO94 can be configured as SSP3_RXD, with alternate function
267 selection of 1, driving strength of 0b101, and a float state in low power 269 selection of 1, driving strength of 0b101, and a float state in low power
@@ -272,8 +274,8 @@ make them effective there-after.
272 do so, simply because this default setting is usually carefully encoded, 274 do so, simply because this default setting is usually carefully encoded,
273 and is supposed to work in most cases. 275 and is supposed to work in most cases.
274 276
275 Register Settings 277Register Settings
276 ----------------- 278-----------------
277 279
278 Register settings on PXA3xx for a pin configuration is actually very 280 Register settings on PXA3xx for a pin configuration is actually very
279 straight-forward, most bits can be converted directly into MFPR value 281 straight-forward, most bits can be converted directly into MFPR value
diff --git a/Documentation/arm/SA1100/ADSBitsy b/Documentation/arm/sa1100/adsbitsy.rst
index f9f62e8c0719..c179cb26b682 100644
--- a/Documentation/arm/SA1100/ADSBitsy
+++ b/Documentation/arm/sa1100/adsbitsy.rst
@@ -1,4 +1,7 @@
1===============================
1ADS Bitsy Single Board Computer 2ADS Bitsy Single Board Computer
3===============================
4
2(It is different from Bitsy(iPAQ) of Compaq) 5(It is different from Bitsy(iPAQ) of Compaq)
3 6
4For more details, contact Applied Data Systems or see 7For more details, contact Applied Data Systems or see
@@ -15,7 +18,9 @@ The kernel zImage is linked to be loaded and executed at 0xc0400000.
15Linux can be used with the ADS BootLoader that ships with the 18Linux can be used with the ADS BootLoader that ships with the
16newer rev boards. See their documentation on how to load Linux. 19newer rev boards. See their documentation on how to load Linux.
17 20
18Supported peripherals: 21Supported peripherals
22=====================
23
19- SA1100 LCD frame buffer (8/16bpp...sort of) 24- SA1100 LCD frame buffer (8/16bpp...sort of)
20- SA1111 USB Master 25- SA1111 USB Master
21- SA1100 serial port 26- SA1100 serial port
@@ -25,10 +30,13 @@ Supported peripherals:
25- serial ports (ttyS[0-2]) 30- serial ports (ttyS[0-2])
26 - ttyS0 is default for serial console 31 - ttyS0 is default for serial console
27 32
28To do: 33To do
34=====
35
29- everything else! :-) 36- everything else! :-)
30 37
31Notes: 38Notes
39=====
32 40
33- The flash on board is divided into 3 partitions. 41- The flash on board is divided into 3 partitions.
34 You should be careful to use flash on board. 42 You should be careful to use flash on board.
diff --git a/Documentation/arm/SA1100/Assabet b/Documentation/arm/sa1100/assabet.rst
index e08a6739e72c..3e704831c311 100644
--- a/Documentation/arm/SA1100/Assabet
+++ b/Documentation/arm/sa1100/assabet.rst
@@ -1,3 +1,4 @@
1============================================
1The Intel Assabet (SA-1110 evaluation) board 2The Intel Assabet (SA-1110 evaluation) board
2============================================ 3============================================
3 4
@@ -11,7 +12,7 @@ http://www.cs.cmu.edu/~wearable/software/assabet.html
11Building the kernel 12Building the kernel
12------------------- 13-------------------
13 14
14To build the kernel with current defaults: 15To build the kernel with current defaults::
15 16
16 make assabet_config 17 make assabet_config
17 make oldconfig 18 make oldconfig
@@ -51,9 +52,9 @@ Brief examples on how to boot Linux with RedBoot are shown below. But first
51you need to have RedBoot installed in your flash memory. A known to work 52you need to have RedBoot installed in your flash memory. A known to work
52precompiled RedBoot binary is available from the following location: 53precompiled RedBoot binary is available from the following location:
53 54
54ftp://ftp.netwinder.org/users/n/nico/ 55- ftp://ftp.netwinder.org/users/n/nico/
55ftp://ftp.arm.linux.org.uk/pub/linux/arm/people/nico/ 56- ftp://ftp.arm.linux.org.uk/pub/linux/arm/people/nico/
56ftp://ftp.handhelds.org/pub/linux/arm/sa-1100-patches/ 57- ftp://ftp.handhelds.org/pub/linux/arm/sa-1100-patches/
57 58
58Look for redboot-assabet*.tgz. Some installation infos are provided in 59Look for redboot-assabet*.tgz. Some installation infos are provided in
59redboot-assabet*.txt. 60redboot-assabet*.txt.
@@ -71,12 +72,12 @@ Socket Communications Inc.), you should strongly consider using it for TFTP
71file transfers. You must insert it before RedBoot runs since it can't detect 72file transfers. You must insert it before RedBoot runs since it can't detect
72it dynamically. 73it dynamically.
73 74
74To initialize the flash directory: 75To initialize the flash directory::
75 76
76 fis init -f 77 fis init -f
77 78
78To initialize the non-volatile settings, like whether you want to use BOOTP or 79To initialize the non-volatile settings, like whether you want to use BOOTP or
79a static IP address, etc, use this command: 80a static IP address, etc, use this command::
80 81
81 fconfig -i 82 fconfig -i
82 83
@@ -85,15 +86,15 @@ Writing a kernel image into flash
85--------------------------------- 86---------------------------------
86 87
87First, the kernel image must be loaded into RAM. If you have the zImage file 88First, the kernel image must be loaded into RAM. If you have the zImage file
88available on a TFTP server: 89available on a TFTP server::
89 90
90 load zImage -r -b 0x100000 91 load zImage -r -b 0x100000
91 92
92If you rather want to use Y-Modem upload over the serial port: 93If you rather want to use Y-Modem upload over the serial port::
93 94
94 load -m ymodem -r -b 0x100000 95 load -m ymodem -r -b 0x100000
95 96
96To write it to flash: 97To write it to flash::
97 98
98 fis create "Linux kernel" -b 0x100000 -l 0xc0000 99 fis create "Linux kernel" -b 0x100000 -l 0xc0000
99 100
@@ -102,18 +103,18 @@ Booting the kernel
102------------------ 103------------------
103 104
104The kernel still requires a filesystem to boot. A ramdisk image can be loaded 105The kernel still requires a filesystem to boot. A ramdisk image can be loaded
105as follows: 106as follows::
106 107
107 load ramdisk_image.gz -r -b 0x800000 108 load ramdisk_image.gz -r -b 0x800000
108 109
109Again, Y-Modem upload can be used instead of TFTP by replacing the file name 110Again, Y-Modem upload can be used instead of TFTP by replacing the file name
110by '-y ymodem'. 111by '-y ymodem'.
111 112
112Now the kernel can be retrieved from flash like this: 113Now the kernel can be retrieved from flash like this::
113 114
114 fis load "Linux kernel" 115 fis load "Linux kernel"
115 116
116or loaded as described previously. To boot the kernel: 117or loaded as described previously. To boot the kernel::
117 118
118 exec -b 0x100000 -l 0xc0000 119 exec -b 0x100000 -l 0xc0000
119 120
@@ -134,35 +135,35 @@ creating JFFS/JFFS2 images is available from the same site.
134For instance, a sample JFFS2 image can be retrieved from the same FTP sites 135For instance, a sample JFFS2 image can be retrieved from the same FTP sites
135mentioned below for the precompiled RedBoot image. 136mentioned below for the precompiled RedBoot image.
136 137
137To load this file: 138To load this file::
138 139
139 load sample_img.jffs2 -r -b 0x100000 140 load sample_img.jffs2 -r -b 0x100000
140 141
141The result should look like: 142The result should look like::
142 143
143RedBoot> load sample_img.jffs2 -r -b 0x100000 144 RedBoot> load sample_img.jffs2 -r -b 0x100000
144Raw file loaded 0x00100000-0x00377424 145 Raw file loaded 0x00100000-0x00377424
145 146
146Now we must know the size of the unallocated flash: 147Now we must know the size of the unallocated flash::
147 148
148 fis free 149 fis free
149 150
150Result: 151Result::
151 152
152RedBoot> fis free 153 RedBoot> fis free
153 0x500E0000 .. 0x503C0000 154 0x500E0000 .. 0x503C0000
154 155
155The values above may be different depending on the size of the filesystem and 156The values above may be different depending on the size of the filesystem and
156the type of flash. See their usage below as an example and take care of 157the type of flash. See their usage below as an example and take care of
157substituting yours appropriately. 158substituting yours appropriately.
158 159
159We must determine some values: 160We must determine some values::
160 161
161size of unallocated flash: 0x503c0000 - 0x500e0000 = 0x2e0000 162 size of unallocated flash: 0x503c0000 - 0x500e0000 = 0x2e0000
162size of the filesystem image: 0x00377424 - 0x00100000 = 0x277424 163 size of the filesystem image: 0x00377424 - 0x00100000 = 0x277424
163 164
164We want to fit the filesystem image of course, but we also want to give it all 165We want to fit the filesystem image of course, but we also want to give it all
165the remaining flash space as well. To write it: 166the remaining flash space as well. To write it::
166 167
167 fis unlock -f 0x500E0000 -l 0x2e0000 168 fis unlock -f 0x500E0000 -l 0x2e0000
168 fis erase -f 0x500E0000 -l 0x2e0000 169 fis erase -f 0x500E0000 -l 0x2e0000
@@ -171,32 +172,32 @@ the remaining flash space as well. To write it:
171 172
172Now the filesystem is associated to a MTD "partition" once Linux has discovered 173Now the filesystem is associated to a MTD "partition" once Linux has discovered
173what they are in the boot process. From Redboot, the 'fis list' command 174what they are in the boot process. From Redboot, the 'fis list' command
174displays them: 175displays them::
175 176
176RedBoot> fis list 177 RedBoot> fis list
177Name FLASH addr Mem addr Length Entry point 178 Name FLASH addr Mem addr Length Entry point
178RedBoot 0x50000000 0x50000000 0x00020000 0x00000000 179 RedBoot 0x50000000 0x50000000 0x00020000 0x00000000
179RedBoot config 0x503C0000 0x503C0000 0x00020000 0x00000000 180 RedBoot config 0x503C0000 0x503C0000 0x00020000 0x00000000
180FIS directory 0x503E0000 0x503E0000 0x00020000 0x00000000 181 FIS directory 0x503E0000 0x503E0000 0x00020000 0x00000000
181Linux kernel 0x50020000 0x00100000 0x000C0000 0x00000000 182 Linux kernel 0x50020000 0x00100000 0x000C0000 0x00000000
182JFFS2 0x500E0000 0x500E0000 0x002E0000 0x00000000 183 JFFS2 0x500E0000 0x500E0000 0x002E0000 0x00000000
183 184
184However Linux should display something like: 185However Linux should display something like::
185 186
186SA1100 flash: probing 32-bit flash bus 187 SA1100 flash: probing 32-bit flash bus
187SA1100 flash: Found 2 x16 devices at 0x0 in 32-bit mode 188 SA1100 flash: Found 2 x16 devices at 0x0 in 32-bit mode
188Using RedBoot partition definition 189 Using RedBoot partition definition
189Creating 5 MTD partitions on "SA1100 flash": 190 Creating 5 MTD partitions on "SA1100 flash":
1900x00000000-0x00020000 : "RedBoot" 191 0x00000000-0x00020000 : "RedBoot"
1910x00020000-0x000e0000 : "Linux kernel" 192 0x00020000-0x000e0000 : "Linux kernel"
1920x000e0000-0x003c0000 : "JFFS2" 193 0x000e0000-0x003c0000 : "JFFS2"
1930x003c0000-0x003e0000 : "RedBoot config" 194 0x003c0000-0x003e0000 : "RedBoot config"
1940x003e0000-0x00400000 : "FIS directory" 195 0x003e0000-0x00400000 : "FIS directory"
195 196
196What's important here is the position of the partition we are interested in, 197What's important here is the position of the partition we are interested in,
197which is the third one. Within Linux, this correspond to /dev/mtdblock2. 198which is the third one. Within Linux, this correspond to /dev/mtdblock2.
198Therefore to boot Linux with the kernel and its root filesystem in flash, we 199Therefore to boot Linux with the kernel and its root filesystem in flash, we
199need this RedBoot command: 200need this RedBoot command::
200 201
201 fis load "Linux kernel" 202 fis load "Linux kernel"
202 exec -b 0x100000 -l 0xc0000 -c "root=/dev/mtdblock2" 203 exec -b 0x100000 -l 0xc0000 -c "root=/dev/mtdblock2"
@@ -218,21 +219,21 @@ time the Assabet is rebooted. Therefore it's possible to automate the boot
218process using RedBoot's scripting capability. 219process using RedBoot's scripting capability.
219 220
220For example, I use this to boot Linux with both the kernel and the ramdisk 221For example, I use this to boot Linux with both the kernel and the ramdisk
221images retrieved from a TFTP server on the network: 222images retrieved from a TFTP server on the network::
222 223
223RedBoot> fconfig 224 RedBoot> fconfig
224Run script at boot: false true 225 Run script at boot: false true
225Boot script: 226 Boot script:
226Enter script, terminate with empty line 227 Enter script, terminate with empty line
227>> load zImage -r -b 0x100000 228 >> load zImage -r -b 0x100000
228>> load ramdisk_ks.gz -r -b 0x800000 229 >> load ramdisk_ks.gz -r -b 0x800000
229>> exec -b 0x100000 -l 0xc0000 230 >> exec -b 0x100000 -l 0xc0000
230>> 231 >>
231Boot script timeout (1000ms resolution): 3 232 Boot script timeout (1000ms resolution): 3
232Use BOOTP for network configuration: true 233 Use BOOTP for network configuration: true
233GDB connection port: 9000 234 GDB connection port: 9000
234Network debug at boot time: false 235 Network debug at boot time: false
235Update RedBoot non-volatile configuration - are you sure (y/n)? y 236 Update RedBoot non-volatile configuration - are you sure (y/n)? y
236 237
237Then, rebooting the Assabet is just a matter of waiting for the login prompt. 238Then, rebooting the Assabet is just a matter of waiting for the login prompt.
238 239
@@ -240,6 +241,7 @@ Then, rebooting the Assabet is just a matter of waiting for the login prompt.
240 241
241Nicolas Pitre 242Nicolas Pitre
242nico@fluxnic.net 243nico@fluxnic.net
244
243June 12, 2001 245June 12, 2001
244 246
245 247
@@ -249,52 +251,51 @@ Status of peripherals in -rmk tree (updated 14/10/2001)
249Assabet: 251Assabet:
250 Serial ports: 252 Serial ports:
251 Radio: TX, RX, CTS, DSR, DCD, RI 253 Radio: TX, RX, CTS, DSR, DCD, RI
252 PM: Not tested. 254 - PM: Not tested.
253 COM: TX, RX, CTS, DSR, DCD, RTS, DTR, PM 255 - COM: TX, RX, CTS, DSR, DCD, RTS, DTR, PM
254 PM: Not tested. 256 - PM: Not tested.
255 I2C: Implemented, not fully tested. 257 - I2C: Implemented, not fully tested.
256 L3: Fully tested, pass. 258 - L3: Fully tested, pass.
257 PM: Not tested. 259 - PM: Not tested.
258 260
259 Video: 261 Video:
260 LCD: Fully tested. PM 262 - LCD: Fully tested. PM
261 (LCD doesn't like being blanked with 263
262 neponset connected) 264 (LCD doesn't like being blanked with neponset connected)
263 Video out: Not fully 265
266 - Video out: Not fully
264 267
265 Audio: 268 Audio:
266 UDA1341: 269 UDA1341:
267 Playback: Fully tested, pass. 270 - Playback: Fully tested, pass.
268 Record: Implemented, not tested. 271 - Record: Implemented, not tested.
269 PM: Not tested. 272 - PM: Not tested.
270 273
271 UCB1200: 274 UCB1200:
272 Audio play: Implemented, not heavily tested. 275 - Audio play: Implemented, not heavily tested.
273 Audio rec: Implemented, not heavily tested. 276 - Audio rec: Implemented, not heavily tested.
274 Telco audio play: Implemented, not heavily tested. 277 - Telco audio play: Implemented, not heavily tested.
275 Telco audio rec: Implemented, not heavily tested. 278 - Telco audio rec: Implemented, not heavily tested.
276 POTS control: No 279 - POTS control: No
277 Touchscreen: Yes 280 - Touchscreen: Yes
278 PM: Not tested. 281 - PM: Not tested.
279 282
280 Other: 283 Other:
281 PCMCIA: 284 - PCMCIA:
282 LPE: Fully tested, pass. 285 - LPE: Fully tested, pass.
283 USB: No 286 - USB: No
284 IRDA: 287 - IRDA:
285 SIR: Fully tested, pass. 288 - SIR: Fully tested, pass.
286 FIR: Fully tested, pass. 289 - FIR: Fully tested, pass.
287 PM: Not tested. 290 - PM: Not tested.
288 291
289Neponset: 292Neponset:
290 Serial ports: 293 Serial ports:
291 COM1,2: TX, RX, CTS, DSR, DCD, RTS, DTR 294 - COM1,2: TX, RX, CTS, DSR, DCD, RTS, DTR
292 PM: Not tested. 295 - PM: Not tested.
293 USB: Implemented, not heavily tested. 296 - USB: Implemented, not heavily tested.
294 PCMCIA: Implemented, not heavily tested. 297 - PCMCIA: Implemented, not heavily tested.
295 PM: Not tested. 298 - CF: Implemented, not heavily tested.
296 CF: Implemented, not heavily tested. 299 - PM: Not tested.
297 PM: Not tested.
298 300
299More stuff can be found in the -np (Nicolas Pitre's) tree. 301More stuff can be found in the -np (Nicolas Pitre's) tree.
300
diff --git a/Documentation/arm/SA1100/Brutus b/Documentation/arm/sa1100/brutus.rst
index 6a3aa95e9bfd..e1a23bee6d44 100644
--- a/Documentation/arm/SA1100/Brutus
+++ b/Documentation/arm/sa1100/brutus.rst
@@ -1,9 +1,13 @@
1Brutus is an evaluation platform for the SA1100 manufactured by Intel. 1======
2Brutus
3======
4
5Brutus is an evaluation platform for the SA1100 manufactured by Intel.
2For more details, see: 6For more details, see:
3 7
4http://developer.intel.com 8http://developer.intel.com
5 9
6To compile for Brutus, you must issue the following commands: 10To compile for Brutus, you must issue the following commands::
7 11
8 make brutus_config 12 make brutus_config
9 make config 13 make config
@@ -16,25 +20,23 @@ must be loaded at 0xc0008000 in Brutus's memory and execution started at
16entry. 20entry.
17 21
18But prior to execute the kernel, a ramdisk image must also be loaded in 22But prior to execute the kernel, a ramdisk image must also be loaded in
19memory. Use memory address 0xd8000000 for this. Note that the file 23memory. Use memory address 0xd8000000 for this. Note that the file
20containing the (compressed) ramdisk image must not exceed 4 MB. 24containing the (compressed) ramdisk image must not exceed 4 MB.
21 25
22Typically, you'll need angelboot to load the kernel. 26Typically, you'll need angelboot to load the kernel.
23The following angelboot.opt file should be used: 27The following angelboot.opt file should be used::
24 28
25----- begin angelboot.opt ----- 29 base 0xc0008000
26base 0xc0008000 30 entry 0xc0008000
27entry 0xc0008000 31 r0 0x00000000
28r0 0x00000000 32 r1 0x00000010
29r1 0x00000010 33 device /dev/ttyS0
30device /dev/ttyS0 34 options "9600 8N1"
31options "9600 8N1" 35 baud 115200
32baud 115200 36 otherfile ramdisk_img.gz
33otherfile ramdisk_img.gz 37 otherbase 0xd8000000
34otherbase 0xd8000000 38
35----- end angelboot.opt ----- 39Then load the kernel and ramdisk with::
36
37Then load the kernel and ramdisk with:
38 40
39 angelboot -f angelboot.opt zImage 41 angelboot -f angelboot.opt zImage
40 42
@@ -44,14 +46,16 @@ console is provided through the second Brutus serial port. To access it,
44you may use minicom configured with /dev/ttyS1, 9600 baud, 8N1, no flow 46you may use minicom configured with /dev/ttyS1, 9600 baud, 8N1, no flow
45control. 47control.
46 48
47Currently supported: 49Currently supported
50===================
51
48 - RS232 serial ports 52 - RS232 serial ports
49 - audio output 53 - audio output
50 - LCD screen 54 - LCD screen
51 - keyboard 55 - keyboard
52 56
53The actual Brutus support may not be complete without extra patches. 57The actual Brutus support may not be complete without extra patches.
54If such patches exist, they should be found from 58If such patches exist, they should be found from
55ftp.netwinder.org/users/n/nico. 59ftp.netwinder.org/users/n/nico.
56 60
57A full PCMCIA support is still missing, although it's possible to hack 61A full PCMCIA support is still missing, although it's possible to hack
@@ -63,4 +67,3 @@ Any contribution is welcome.
63Please send patches to nico@fluxnic.net 67Please send patches to nico@fluxnic.net
64 68
65Have Fun ! 69Have Fun !
66
diff --git a/Documentation/arm/SA1100/CERF b/Documentation/arm/sa1100/cerf.rst
index b3d845301ef1..7fa71b609bf9 100644
--- a/Documentation/arm/SA1100/CERF
+++ b/Documentation/arm/sa1100/cerf.rst
@@ -1,3 +1,7 @@
1==============
2CerfBoard/Cube
3==============
4
1*** The StrongARM version of the CerfBoard/Cube has been discontinued *** 5*** The StrongARM version of the CerfBoard/Cube has been discontinued ***
2 6
3The Intrinsyc CerfBoard is a StrongARM 1110-based computer on a board 7The Intrinsyc CerfBoard is a StrongARM 1110-based computer on a board
@@ -9,7 +13,9 @@ Intrinsyc website, http://www.intrinsyc.com.
9This document describes the support in the Linux kernel for the 13This document describes the support in the Linux kernel for the
10Intrinsyc CerfBoard. 14Intrinsyc CerfBoard.
11 15
12Supported in this version: 16Supported in this version
17=========================
18
13 - CompactFlash+ slot (select PCMCIA in General Setup and any options 19 - CompactFlash+ slot (select PCMCIA in General Setup and any options
14 that may be required) 20 that may be required)
15 - Onboard Crystal CS8900 Ethernet controller (Cerf CS8900A support in 21 - Onboard Crystal CS8900 Ethernet controller (Cerf CS8900A support in
@@ -19,7 +25,7 @@ Supported in this version:
19In order to get this kernel onto your Cerf, you need a server that runs 25In order to get this kernel onto your Cerf, you need a server that runs
20both BOOTP and TFTP. Detailed instructions should have come with your 26both BOOTP and TFTP. Detailed instructions should have come with your
21evaluation kit on how to use the bootloader. This series of commands 27evaluation kit on how to use the bootloader. This series of commands
22will suffice: 28will suffice::
23 29
24 make ARCH=arm CROSS_COMPILE=arm-linux- cerfcube_defconfig 30 make ARCH=arm CROSS_COMPILE=arm-linux- cerfcube_defconfig
25 make ARCH=arm CROSS_COMPILE=arm-linux- zImage 31 make ARCH=arm CROSS_COMPILE=arm-linux- zImage
diff --git a/Documentation/arm/sa1100/freebird.rst b/Documentation/arm/sa1100/freebird.rst
new file mode 100644
index 000000000000..81043d0c6d64
--- /dev/null
+++ b/Documentation/arm/sa1100/freebird.rst
@@ -0,0 +1,25 @@
1========
2Freebird
3========
4
5Freebird-1.1 is produced by Legend(C), Inc.
6`http://web.archive.org/web/*/http://www.legend.com.cn`
7and software/linux maintained by Coventive(C), Inc.
8(http://www.coventive.com)
9
10Based on the Nicolas's strongarm kernel tree.
11
12Maintainer:
13
14Chester Kuo
15 - <chester@coventive.com>
16 - <chester@linux.org.tw>
17
18Author:
19
20- Tim wu <timwu@coventive.com>
21- CIH <cih@coventive.com>
22- Eric Peng <ericpeng@coventive.com>
23- Jeff Lee <jeff_lee@coventive.com>
24- Allen Cheng
25- Tony Liu <tonyliu@coventive.com>
diff --git a/Documentation/arm/SA1100/GraphicsClient b/Documentation/arm/sa1100/graphicsclient.rst
index 867bb35943af..a73d61c3ce91 100644
--- a/Documentation/arm/SA1100/GraphicsClient
+++ b/Documentation/arm/sa1100/graphicsclient.rst
@@ -1,9 +1,11 @@
1=============================================
1ADS GraphicsClient Plus Single Board Computer 2ADS GraphicsClient Plus Single Board Computer
3=============================================
2 4
3For more details, contact Applied Data Systems or see 5For more details, contact Applied Data Systems or see
4http://www.applieddata.net/products.html 6http://www.applieddata.net/products.html
5 7
6The original Linux support for this product has been provided by 8The original Linux support for this product has been provided by
7Nicolas Pitre <nico@fluxnic.net>. Continued development work by 9Nicolas Pitre <nico@fluxnic.net>. Continued development work by
8Woojung Huh <whuh@applieddata.net> 10Woojung Huh <whuh@applieddata.net>
9 11
@@ -14,8 +16,8 @@ board supports MTD/JFFS, so you could also mount something on there.
14Use 'make graphicsclient_config' before any 'make config'. This will set up 16Use 'make graphicsclient_config' before any 'make config'. This will set up
15defaults for GraphicsClient Plus support. 17defaults for GraphicsClient Plus support.
16 18
17The kernel zImage is linked to be loaded and executed at 0xc0200000. 19The kernel zImage is linked to be loaded and executed at 0xc0200000.
18Also the following registers should have the specified values upon entry: 20Also the following registers should have the specified values upon entry::
19 21
20 r0 = 0 22 r0 = 0
21 r1 = 29 (this is the GraphicsClient architecture number) 23 r1 = 29 (this is the GraphicsClient architecture number)
@@ -31,23 +33,21 @@ as outlined below. In any case, if you're planning on deploying
31something en masse, you should probably get the newer board. 33something en masse, you should probably get the newer board.
32 34
33If using Angel on the older boards, here is a typical angel.opt option file 35If using Angel on the older boards, here is a typical angel.opt option file
34if the kernel is loaded through the Angel Debug Monitor: 36if the kernel is loaded through the Angel Debug Monitor::
35 37
36----- begin angelboot.opt ----- 38 base 0xc0200000
37base 0xc0200000 39 entry 0xc0200000
38entry 0xc0200000 40 r0 0x00000000
39r0 0x00000000 41 r1 0x0000001d
40r1 0x0000001d 42 device /dev/ttyS1
41device /dev/ttyS1 43 options "38400 8N1"
42options "38400 8N1" 44 baud 115200
43baud 115200 45 #otherfile ramdisk.gz
44#otherfile ramdisk.gz 46 #otherbase 0xc0800000
45#otherbase 0xc0800000 47 exec minicom
46exec minicom
47----- end angelboot.opt -----
48 48
49Then the kernel (and ramdisk if otherfile/otherbase lines above are 49Then the kernel (and ramdisk if otherfile/otherbase lines above are
50uncommented) would be loaded with: 50uncommented) would be loaded with::
51 51
52 angelboot -f angelboot.opt zImage 52 angelboot -f angelboot.opt zImage
53 53
@@ -59,7 +59,9 @@ If any other bootloader is used, ensure it accomplish the same, especially
59for r0/r1 register values before jumping into the kernel. 59for r0/r1 register values before jumping into the kernel.
60 60
61 61
62Supported peripherals: 62Supported peripherals
63=====================
64
63- SA1100 LCD frame buffer (8/16bpp...sort of) 65- SA1100 LCD frame buffer (8/16bpp...sort of)
64- on-board SMC 92C96 ethernet NIC 66- on-board SMC 92C96 ethernet NIC
65- SA1100 serial port 67- SA1100 serial port
@@ -74,11 +76,14 @@ Supported peripherals:
74 See http://www.eurotech-inc.com/linux-sbc.asp for IOCTL documentation 76 See http://www.eurotech-inc.com/linux-sbc.asp for IOCTL documentation
75 and example user space code. ps/2 keybd is multiplexed through this driver 77 and example user space code. ps/2 keybd is multiplexed through this driver
76 78
77To do: 79To do
80=====
81
78- UCB1200 audio with new ucb_generic layer 82- UCB1200 audio with new ucb_generic layer
79- everything else! :-) 83- everything else! :-)
80 84
81Notes: 85Notes
86=====
82 87
83- The flash on board is divided into 3 partitions. mtd0 is where 88- The flash on board is divided into 3 partitions. mtd0 is where
84 the ADS boot ROM and zImage is stored. It's been marked as 89 the ADS boot ROM and zImage is stored. It's been marked as
@@ -95,4 +100,3 @@ Notes:
95 fixed soon. 100 fixed soon.
96 101
97Any contribution can be sent to nico@fluxnic.net and will be greatly welcome! 102Any contribution can be sent to nico@fluxnic.net and will be greatly welcome!
98
diff --git a/Documentation/arm/SA1100/GraphicsMaster b/Documentation/arm/sa1100/graphicsmaster.rst
index 9145088a0ba2..e39892514f0c 100644
--- a/Documentation/arm/SA1100/GraphicsMaster
+++ b/Documentation/arm/sa1100/graphicsmaster.rst
@@ -1,4 +1,6 @@
1========================================
1ADS GraphicsMaster Single Board Computer 2ADS GraphicsMaster Single Board Computer
3========================================
2 4
3For more details, contact Applied Data Systems or see 5For more details, contact Applied Data Systems or see
4http://www.applieddata.net/products.html 6http://www.applieddata.net/products.html
@@ -15,7 +17,9 @@ The kernel zImage is linked to be loaded and executed at 0xc0400000.
15Linux can be used with the ADS BootLoader that ships with the 17Linux can be used with the ADS BootLoader that ships with the
16newer rev boards. See their documentation on how to load Linux. 18newer rev boards. See their documentation on how to load Linux.
17 19
18Supported peripherals: 20Supported peripherals
21=====================
22
19- SA1100 LCD frame buffer (8/16bpp...sort of) 23- SA1100 LCD frame buffer (8/16bpp...sort of)
20- SA1111 USB Master 24- SA1111 USB Master
21- on-board SMC 92C96 ethernet NIC 25- on-board SMC 92C96 ethernet NIC
@@ -31,10 +35,13 @@ Supported peripherals:
31 See http://www.eurotech-inc.com/linux-sbc.asp for IOCTL documentation 35 See http://www.eurotech-inc.com/linux-sbc.asp for IOCTL documentation
32 and example user space code. ps/2 keybd is multiplexed through this driver 36 and example user space code. ps/2 keybd is multiplexed through this driver
33 37
34To do: 38To do
39=====
40
35- everything else! :-) 41- everything else! :-)
36 42
37Notes: 43Notes
44=====
38 45
39- The flash on board is divided into 3 partitions. mtd0 is where 46- The flash on board is divided into 3 partitions. mtd0 is where
40 the zImage is stored. It's been marked as read-only to keep you 47 the zImage is stored. It's been marked as read-only to keep you
diff --git a/Documentation/arm/SA1100/HUW_WEBPANEL b/Documentation/arm/sa1100/huw_webpanel.rst
index fd56b48d4833..1dc7ccb165f0 100644
--- a/Documentation/arm/SA1100/HUW_WEBPANEL
+++ b/Documentation/arm/sa1100/huw_webpanel.rst
@@ -1,9 +1,14 @@
1=======================
2Hoeft & Wessel Webpanel
3=======================
4
1The HUW_WEBPANEL is a product of the german company Hoeft & Wessel AG 5The HUW_WEBPANEL is a product of the german company Hoeft & Wessel AG
2 6
3If you want more information, please visit 7If you want more information, please visit
4http://www.hoeft-wessel.de 8http://www.hoeft-wessel.de
5 9
6To build the kernel: 10To build the kernel::
11
7 make huw_webpanel_config 12 make huw_webpanel_config
8 make oldconfig 13 make oldconfig
9 [accept all defaults] 14 [accept all defaults]
@@ -14,4 +19,3 @@ Roman Jordan jor@hoeft-wessel.de
14Christoph Schulz schu@hoeft-wessel.de 19Christoph Schulz schu@hoeft-wessel.de
15 20
162000/12/18/ 212000/12/18/
17
diff --git a/Documentation/arm/sa1100/index.rst b/Documentation/arm/sa1100/index.rst
new file mode 100644
index 000000000000..fb2385b3accf
--- /dev/null
+++ b/Documentation/arm/sa1100/index.rst
@@ -0,0 +1,23 @@
1====================
2Intel StrongARM 1100
3====================
4
5.. toctree::
6 :maxdepth: 1
7
8 adsbitsy
9 assabet
10 brutus
11 cerf
12 freebird
13 graphicsclient
14 graphicsmaster
15 huw_webpanel
16 itsy
17 lart
18 nanoengine
19 pangolin
20 pleb
21 serial_uart
22 tifon
23 yopy
diff --git a/Documentation/arm/SA1100/Itsy b/Documentation/arm/sa1100/itsy.rst
index 44b94997fa0d..f49896ba3ef1 100644
--- a/Documentation/arm/SA1100/Itsy
+++ b/Documentation/arm/sa1100/itsy.rst
@@ -1,3 +1,7 @@
1====
2Itsy
3====
4
1Itsy is a research project done by the Western Research Lab, and Systems 5Itsy is a research project done by the Western Research Lab, and Systems
2Research Center in Palo Alto, CA. The Itsy project is one of several 6Research Center in Palo Alto, CA. The Itsy project is one of several
3research projects at Compaq that are related to pocket computing. 7research projects at Compaq that are related to pocket computing.
@@ -7,6 +11,7 @@ For more information, see:
7 http://www.hpl.hp.com/downloads/crl/itsy/ 11 http://www.hpl.hp.com/downloads/crl/itsy/
8 12
9Notes on initial 2.4 Itsy support (8/27/2000) : 13Notes on initial 2.4 Itsy support (8/27/2000) :
14
10The port was done on an Itsy version 1.5 machine with a daughtercard with 15The port was done on an Itsy version 1.5 machine with a daughtercard with
1164 Meg of DRAM and 32 Meg of Flash. The initial work includes support for 1664 Meg of DRAM and 32 Meg of Flash. The initial work includes support for
12serial console (to see what you're doing). No other devices have been 17serial console (to see what you're doing). No other devices have been
@@ -18,8 +23,10 @@ Finally, you will need to cd to arch/arm/boot/tools and execute a make there
18to build the params-itsy program used to boot the kernel. 23to build the params-itsy program used to boot the kernel.
19 24
20In order to install the port of 2.4 to the itsy, You will need to set the 25In order to install the port of 2.4 to the itsy, You will need to set the
21configuration parameters in the monitor as follows: 26configuration parameters in the monitor as follows::
22Arg 1:0x08340000, Arg2: 0xC0000000, Arg3:18 (0x12), Arg4:0 27
28 Arg 1:0x08340000, Arg2: 0xC0000000, Arg3:18 (0x12), Arg4:0
29
23Make sure the start-routine address is set to 0x00060000. 30Make sure the start-routine address is set to 0x00060000.
24 31
25Next, flash the params-itsy program to 0x00060000 ("p 1 0x00060000" in the 32Next, flash the params-itsy program to 0x00060000 ("p 1 0x00060000" in the
@@ -29,7 +36,8 @@ flash menu) Flash the kernel in arch/arm/boot/zImage into 0x08340000
29handhelds.org. 36handhelds.org.
30 37
31The serial connection we established was at: 38The serial connection we established was at:
32 8-bit data, no parity, 1 stop bit(s), 115200.00 b/s. in the monitor, in the 39
408-bit data, no parity, 1 stop bit(s), 115200.00 b/s. in the monitor, in the
33params-itsy program, and in the kernel itself. This can be changed, but 41params-itsy program, and in the kernel itself. This can be changed, but
34not easily. The monitor parameters are easily changed, the params program 42not easily. The monitor parameters are easily changed, the params program
35setup is assembly outl's, and the kernel is a configuration item specific to 43setup is assembly outl's, and the kernel is a configuration item specific to
diff --git a/Documentation/arm/SA1100/LART b/Documentation/arm/sa1100/lart.rst
index 6d412b685598..94c0568d1095 100644
--- a/Documentation/arm/SA1100/LART
+++ b/Documentation/arm/sa1100/lart.rst
@@ -1,5 +1,6 @@
1====================================
1Linux Advanced Radio Terminal (LART) 2Linux Advanced Radio Terminal (LART)
2------------------------------------ 3====================================
3 4
4The LART is a small (7.5 x 10cm) SA-1100 board, designed for embedded 5The LART is a small (7.5 x 10cm) SA-1100 board, designed for embedded
5applications. It has 32 MB DRAM, 4MB Flash ROM, double RS232 and all 6applications. It has 32 MB DRAM, 4MB Flash ROM, double RS232 and all
diff --git a/Documentation/arm/SA1100/nanoEngine b/Documentation/arm/sa1100/nanoengine.rst
index 48a7934f95f6..47f1a14cf98a 100644
--- a/Documentation/arm/SA1100/nanoEngine
+++ b/Documentation/arm/sa1100/nanoengine.rst
@@ -1,11 +1,11 @@
1==========
1nanoEngine 2nanoEngine
2---------- 3==========
3 4
4"nanoEngine" is a SA1110 based single board computer from 5"nanoEngine" is a SA1110 based single board computer from
5Bright Star Engineering Inc. See www.brightstareng.com/arm 6Bright Star Engineering Inc. See www.brightstareng.com/arm
6for more info. 7for more info.
7(Ref: Stuart Adams <sja@brightstareng.com>) 8(Ref: Stuart Adams <sja@brightstareng.com>)
8 9
9Also visit Larry Doolittle's "Linux for the nanoEngine" site: 10Also visit Larry Doolittle's "Linux for the nanoEngine" site:
10http://www.brightstareng.com/arm/nanoeng.htm 11http://www.brightstareng.com/arm/nanoeng.htm
11
diff --git a/Documentation/arm/SA1100/Pangolin b/Documentation/arm/sa1100/pangolin.rst
index 077a6120e129..f0c5c1618553 100644
--- a/Documentation/arm/SA1100/Pangolin
+++ b/Documentation/arm/sa1100/pangolin.rst
@@ -1,16 +1,22 @@
1========
2Pangolin
3========
4
1Pangolin is a StrongARM 1110-based evaluation platform produced 5Pangolin is a StrongARM 1110-based evaluation platform produced
2by Dialogue Technology (http://www.dialogue.com.tw/). 6by Dialogue Technology (http://www.dialogue.com.tw/).
3It has EISA slots for ease of configuration with SDRAM/Flash 7It has EISA slots for ease of configuration with SDRAM/Flash
4memory card, USB/Serial/Audio card, Compact Flash card, 8memory card, USB/Serial/Audio card, Compact Flash card,
5PCMCIA/IDE card and TFT-LCD card. 9PCMCIA/IDE card and TFT-LCD card.
6 10
7To compile for Pangolin, you must issue the following commands: 11To compile for Pangolin, you must issue the following commands::
8 12
9 make pangolin_config 13 make pangolin_config
10 make oldconfig 14 make oldconfig
11 make zImage 15 make zImage
12 16
13Supported peripherals: 17Supported peripherals
18=====================
19
14- SA1110 serial port (UART1/UART2/UART3) 20- SA1110 serial port (UART1/UART2/UART3)
15- flash memory access 21- flash memory access
16- compact flash driver 22- compact flash driver
diff --git a/Documentation/arm/SA1100/PLEB b/Documentation/arm/sa1100/pleb.rst
index b9c8a631a351..d5b732967aa3 100644
--- a/Documentation/arm/SA1100/PLEB
+++ b/Documentation/arm/sa1100/pleb.rst
@@ -1,3 +1,7 @@
1====
2PLEB
3====
4
1The PLEB project was started as a student initiative at the School of 5The PLEB project was started as a student initiative at the School of
2Computer Science and Engineering, University of New South Wales to make a 6Computer Science and Engineering, University of New South Wales to make a
3pocket computer capable of running the Linux Kernel. 7pocket computer capable of running the Linux Kernel.
@@ -7,5 +11,3 @@ PLEB support has yet to be fully integrated.
7For more information, see: 11For more information, see:
8 12
9 http://www.cse.unsw.edu.au 13 http://www.cse.unsw.edu.au
10
11
diff --git a/Documentation/arm/sa1100/serial_uart.rst b/Documentation/arm/sa1100/serial_uart.rst
new file mode 100644
index 000000000000..ea983642b9be
--- /dev/null
+++ b/Documentation/arm/sa1100/serial_uart.rst
@@ -0,0 +1,51 @@
1==================
2SA1100 serial port
3==================
4
5The SA1100 serial port had its major/minor numbers officially assigned::
6
7 > Date: Sun, 24 Sep 2000 21:40:27 -0700
8 > From: H. Peter Anvin <hpa@transmeta.com>
9 > To: Nicolas Pitre <nico@CAM.ORG>
10 > Cc: Device List Maintainer <device@lanana.org>
11 > Subject: Re: device
12 >
13 > Okay. Note that device numbers 204 and 205 are used for "low density
14 > serial devices", so you will have a range of minors on those majors (the
15 > tty device layer handles this just fine, so you don't have to worry about
16 > doing anything special.)
17 >
18 > So your assignments are:
19 >
20 > 204 char Low-density serial ports
21 > 5 = /dev/ttySA0 SA1100 builtin serial port 0
22 > 6 = /dev/ttySA1 SA1100 builtin serial port 1
23 > 7 = /dev/ttySA2 SA1100 builtin serial port 2
24 >
25 > 205 char Low-density serial ports (alternate device)
26 > 5 = /dev/cusa0 Callout device for ttySA0
27 > 6 = /dev/cusa1 Callout device for ttySA1
28 > 7 = /dev/cusa2 Callout device for ttySA2
29 >
30
31You must create those inodes in /dev on the root filesystem used
32by your SA1100-based device::
33
34 mknod ttySA0 c 204 5
35 mknod ttySA1 c 204 6
36 mknod ttySA2 c 204 7
37 mknod cusa0 c 205 5
38 mknod cusa1 c 205 6
39 mknod cusa2 c 205 7
40
41In addition to the creation of the appropriate device nodes above, you
42must ensure your user space applications make use of the correct device
43name. The classic example is the content of the /etc/inittab file where
44you might have a getty process started on ttyS0.
45
46In this case:
47
48- replace occurrences of ttyS0 with ttySA0, ttyS1 with ttySA1, etc.
49
50- don't forget to add 'ttySA0', 'console', or the appropriate tty name
51 in /etc/securetty for root to be allowed to login as well.
diff --git a/Documentation/arm/SA1100/Tifon b/Documentation/arm/sa1100/tifon.rst
index dd1934d9c851..c26e910b9ea7 100644
--- a/Documentation/arm/SA1100/Tifon
+++ b/Documentation/arm/sa1100/tifon.rst
@@ -1,7 +1,7 @@
1=====
1Tifon 2Tifon
2----- 3=====
3 4
4More info has to come... 5More info has to come...
5 6
6Contact: Peter Danielsson <peter.danielsson@era-t.ericsson.se> 7Contact: Peter Danielsson <peter.danielsson@era-t.ericsson.se>
7
diff --git a/Documentation/arm/SA1100/Yopy b/Documentation/arm/sa1100/yopy.rst
index e14f16d836ac..5b35a5f61a44 100644
--- a/Documentation/arm/SA1100/Yopy
+++ b/Documentation/arm/sa1100/yopy.rst
@@ -1,2 +1,5 @@
1See http://www.yopydeveloper.org for more. 1====
2Yopy
3====
2 4
5See http://www.yopydeveloper.org for more.
diff --git a/Documentation/arm/Samsung-S3C24XX/CPUfreq.txt b/Documentation/arm/samsung-s3c24xx/cpufreq.rst
index fa968aa99d67..2ddc26c03b1f 100644
--- a/Documentation/arm/Samsung-S3C24XX/CPUfreq.txt
+++ b/Documentation/arm/samsung-s3c24xx/cpufreq.rst
@@ -1,5 +1,6 @@
1 S3C24XX CPUfreq support 1=======================
2 ======================= 2S3C24XX CPUfreq support
3=======================
3 4
4Introduction 5Introduction
5------------ 6------------
diff --git a/Documentation/arm/Samsung-S3C24XX/EB2410ITX.txt b/Documentation/arm/samsung-s3c24xx/eb2410itx.rst
index b87292e05f2f..7863c93652f8 100644
--- a/Documentation/arm/Samsung-S3C24XX/EB2410ITX.txt
+++ b/Documentation/arm/samsung-s3c24xx/eb2410itx.rst
@@ -1,5 +1,6 @@
1 Simtec Electronics EB2410ITX (BAST) 1===================================
2 =================================== 2Simtec Electronics EB2410ITX (BAST)
3===================================
3 4
4 http://www.simtec.co.uk/products/EB2410ITX/ 5 http://www.simtec.co.uk/products/EB2410ITX/
5 6
diff --git a/Documentation/arm/Samsung-S3C24XX/GPIO.txt b/Documentation/arm/samsung-s3c24xx/gpio.rst
index e8f918b96123..f7c3d7d011a2 100644
--- a/Documentation/arm/Samsung-S3C24XX/GPIO.txt
+++ b/Documentation/arm/samsung-s3c24xx/gpio.rst
@@ -1,5 +1,6 @@
1 S3C24XX GPIO Control 1====================
2 ==================== 2S3C24XX GPIO Control
3====================
3 4
4Introduction 5Introduction
5------------ 6------------
@@ -12,7 +13,7 @@ Introduction
12 of the s3c2410 GPIO system, please read the Samsung provided 13 of the s3c2410 GPIO system, please read the Samsung provided
13 data-sheet/users manual to find out the complete list. 14 data-sheet/users manual to find out the complete list.
14 15
15 See Documentation/arm/Samsung/GPIO.txt for the core implementation. 16 See Documentation/arm/samsung/gpio.rst for the core implementation.
16 17
17 18
18GPIOLIB 19GPIOLIB
@@ -26,16 +27,16 @@ GPIOLIB
26 listed below will be removed (they may be marked as __deprecated 27 listed below will be removed (they may be marked as __deprecated
27 in the near future). 28 in the near future).
28 29
29 The following functions now either have a s3c_ specific variant 30 The following functions now either have a `s3c_` specific variant
30 or are merged into gpiolib. See the definitions in 31 or are merged into gpiolib. See the definitions in
31 arch/arm/plat-samsung/include/plat/gpio-cfg.h: 32 arch/arm/plat-samsung/include/plat/gpio-cfg.h:
32 33
33 s3c2410_gpio_setpin() gpio_set_value() or gpio_direction_output() 34 - s3c2410_gpio_setpin() gpio_set_value() or gpio_direction_output()
34 s3c2410_gpio_getpin() gpio_get_value() or gpio_direction_input() 35 - s3c2410_gpio_getpin() gpio_get_value() or gpio_direction_input()
35 s3c2410_gpio_getirq() gpio_to_irq() 36 - s3c2410_gpio_getirq() gpio_to_irq()
36 s3c2410_gpio_cfgpin() s3c_gpio_cfgpin() 37 - s3c2410_gpio_cfgpin() s3c_gpio_cfgpin()
37 s3c2410_gpio_getcfg() s3c_gpio_getcfg() 38 - s3c2410_gpio_getcfg() s3c_gpio_getcfg()
38 s3c2410_gpio_pullup() s3c_gpio_setpull() 39 - s3c2410_gpio_pullup() s3c_gpio_setpull()
39 40
40 41
41GPIOLIB conversion 42GPIOLIB conversion
@@ -77,7 +78,7 @@ out s3c2410 API, then here are some notes on the process.
776) s3c2410_gpio_getirq() should be directly replaceable with the 786) s3c2410_gpio_getirq() should be directly replaceable with the
78 gpio_to_irq() call. 79 gpio_to_irq() call.
79 80
80The s3c2410_gpio and gpio_ calls have always operated on the same gpio 81The s3c2410_gpio and `gpio_` calls have always operated on the same gpio
81numberspace, so there is no problem with converting the gpio numbering 82numberspace, so there is no problem with converting the gpio numbering
82between the calls. 83between the calls.
83 84
diff --git a/Documentation/arm/Samsung-S3C24XX/H1940.txt b/Documentation/arm/samsung-s3c24xx/h1940.rst
index b738859b1fc0..62a562c178e3 100644
--- a/Documentation/arm/Samsung-S3C24XX/H1940.txt
+++ b/Documentation/arm/samsung-s3c24xx/h1940.rst
@@ -1,5 +1,6 @@
1 HP IPAQ H1940 1=============
2 ============= 2HP IPAQ H1940
3=============
3 4
4http://www.handhelds.org/projects/h1940.html 5http://www.handhelds.org/projects/h1940.html
5 6
diff --git a/Documentation/arm/samsung-s3c24xx/index.rst b/Documentation/arm/samsung-s3c24xx/index.rst
new file mode 100644
index 000000000000..6c7b241cbf37
--- /dev/null
+++ b/Documentation/arm/samsung-s3c24xx/index.rst
@@ -0,0 +1,18 @@
1==========================
2Samsung S3C24XX SoC Family
3==========================
4
5.. toctree::
6 :maxdepth: 1
7
8 h1940
9 gpio
10 cpufreq
11 suspend
12 usb-host
13 s3c2412
14 eb2410itx
15 nand
16 smdk2440
17 s3c2413
18 overview
diff --git a/Documentation/arm/Samsung-S3C24XX/NAND.txt b/Documentation/arm/samsung-s3c24xx/nand.rst
index bc478a3409b8..938995694ee7 100644
--- a/Documentation/arm/Samsung-S3C24XX/NAND.txt
+++ b/Documentation/arm/samsung-s3c24xx/nand.rst
@@ -1,5 +1,6 @@
1 S3C24XX NAND Support 1====================
2 ==================== 2S3C24XX NAND Support
3====================
3 4
4Introduction 5Introduction
5------------ 6------------
@@ -27,4 +28,3 @@ Document Author
27--------------- 28---------------
28 29
29Ben Dooks, Copyright 2007 Simtec Electronics 30Ben Dooks, Copyright 2007 Simtec Electronics
30
diff --git a/Documentation/arm/Samsung-S3C24XX/Overview.txt b/Documentation/arm/samsung-s3c24xx/overview.rst
index 00d3c3141e21..e9a1dc7276b5 100644
--- a/Documentation/arm/Samsung-S3C24XX/Overview.txt
+++ b/Documentation/arm/samsung-s3c24xx/overview.rst
@@ -1,5 +1,6 @@
1 S3C24XX ARM Linux Overview 1==========================
2 ========================== 2S3C24XX ARM Linux Overview
3==========================
3 4
4 5
5 6
@@ -182,7 +183,7 @@ NAND
182 controller. If there are any problems the latest linux-mtd 183 controller. If there are any problems the latest linux-mtd
183 code can be found from http://www.linux-mtd.infradead.org/ 184 code can be found from http://www.linux-mtd.infradead.org/
184 185
185 For more information see Documentation/arm/Samsung-S3C24XX/NAND.txt 186 For more information see Documentation/arm/samsung-s3c24xx/nand.rst
186 187
187 188
188SD/MMC 189SD/MMC
@@ -221,8 +222,8 @@ GPIO
221 As of v2.6.34, the move towards using gpiolib support is almost 222 As of v2.6.34, the move towards using gpiolib support is almost
222 complete, and very little of the old calls are left. 223 complete, and very little of the old calls are left.
223 224
224 See Documentation/arm/Samsung-S3C24XX/GPIO.txt for the S3C24XX specific 225 See Documentation/arm/samsung-s3c24xx/gpio.rst for the S3C24XX specific
225 support and Documentation/arm/Samsung/GPIO.txt for the core Samsung 226 support and Documentation/arm/samsung/gpio.rst for the core Samsung
226 implementation. 227 implementation.
227 228
228 229
@@ -276,18 +277,18 @@ Platform Data
276 kmalloc()s an area of memory, and copies the __initdata 277 kmalloc()s an area of memory, and copies the __initdata
277 and then sets the relevant device's platform data. Making 278 and then sets the relevant device's platform data. Making
278 the function `__init` takes care of ensuring it is discarded 279 the function `__init` takes care of ensuring it is discarded
279 with the rest of the initialisation code 280 with the rest of the initialisation code::
280 281
281 static __init void s3c24xx_xxx_set_platdata(struct xxx_data *pd) 282 static __init void s3c24xx_xxx_set_platdata(struct xxx_data *pd)
282 { 283 {
283 struct s3c2410_xxx_mach_info *npd; 284 struct s3c2410_xxx_mach_info *npd;
284 285
285 npd = kmalloc(sizeof(struct s3c2410_xxx_mach_info), GFP_KERNEL); 286 npd = kmalloc(sizeof(struct s3c2410_xxx_mach_info), GFP_KERNEL);
286 if (npd) { 287 if (npd) {
287 memcpy(npd, pd, sizeof(struct s3c2410_xxx_mach_info)); 288 memcpy(npd, pd, sizeof(struct s3c2410_xxx_mach_info));
288 s3c_device_xxx.dev.platform_data = npd; 289 s3c_device_xxx.dev.platform_data = npd;
289 } else { 290 } else {
290 printk(KERN_ERR "no memory for xxx platform data\n"); 291 printk(KERN_ERR "no memory for xxx platform data\n");
291 } 292 }
292 } 293 }
293 294
diff --git a/Documentation/arm/Samsung-S3C24XX/S3C2412.txt b/Documentation/arm/samsung-s3c24xx/s3c2412.rst
index dc1fd362d3c1..68b985fc6bf4 100644
--- a/Documentation/arm/Samsung-S3C24XX/S3C2412.txt
+++ b/Documentation/arm/samsung-s3c24xx/s3c2412.rst
@@ -1,5 +1,6 @@
1 S3C2412 ARM Linux Overview 1==========================
2 ========================== 2S3C2412 ARM Linux Overview
3==========================
3 4
4Introduction 5Introduction
5------------ 6------------
diff --git a/Documentation/arm/Samsung-S3C24XX/S3C2413.txt b/Documentation/arm/samsung-s3c24xx/s3c2413.rst
index 909bdc7dd7b5..1f51e207fc46 100644
--- a/Documentation/arm/Samsung-S3C24XX/S3C2413.txt
+++ b/Documentation/arm/samsung-s3c24xx/s3c2413.rst
@@ -1,5 +1,6 @@
1 S3C2413 ARM Linux Overview 1==========================
2 ========================== 2S3C2413 ARM Linux Overview
3==========================
3 4
4Introduction 5Introduction
5------------ 6------------
@@ -10,7 +11,7 @@ Introduction
10 11
11 12
12Camera Interface 13Camera Interface
13--------------- 14----------------
14 15
15 This block is currently not supported. 16 This block is currently not supported.
16 17
diff --git a/Documentation/arm/Samsung-S3C24XX/SMDK2440.txt b/Documentation/arm/samsung-s3c24xx/smdk2440.rst
index 429390bd4684..524fd0b4afaf 100644
--- a/Documentation/arm/Samsung-S3C24XX/SMDK2440.txt
+++ b/Documentation/arm/samsung-s3c24xx/smdk2440.rst
@@ -1,5 +1,6 @@
1 Samsung/Meritech SMDK2440 1=========================
2 ========================= 2Samsung/Meritech SMDK2440
3=========================
3 4
4Introduction 5Introduction
5------------ 6------------
diff --git a/Documentation/arm/Samsung-S3C24XX/Suspend.txt b/Documentation/arm/samsung-s3c24xx/suspend.rst
index cb4f0c0cdf9d..b4f3ae9fe76e 100644
--- a/Documentation/arm/Samsung-S3C24XX/Suspend.txt
+++ b/Documentation/arm/samsung-s3c24xx/suspend.rst
@@ -1,5 +1,6 @@
1 S3C24XX Suspend Support 1=======================
2 ======================= 2S3C24XX Suspend Support
3=======================
3 4
4 5
5Introduction 6Introduction
@@ -57,16 +58,16 @@ Machine Support
57 and will end up initialising all compiled machines' pm init! 58 and will end up initialising all compiled machines' pm init!
58 59
59 The following is an example of code used for testing wakeup from 60 The following is an example of code used for testing wakeup from
60 an falling edge on IRQ_EINT0: 61 an falling edge on IRQ_EINT0::
61 62
62 63
63static irqreturn_t button_irq(int irq, void *pw) 64 static irqreturn_t button_irq(int irq, void *pw)
64{ 65 {
65 return IRQ_HANDLED; 66 return IRQ_HANDLED;
66} 67 }
67 68
68statuc void __init machine_init(void) 69 statuc void __init machine_init(void)
69{ 70 {
70 ... 71 ...
71 72
72 request_irq(IRQ_EINT0, button_irq, IRQF_TRIGGER_FALLING, 73 request_irq(IRQ_EINT0, button_irq, IRQF_TRIGGER_FALLING,
@@ -75,7 +76,7 @@ statuc void __init machine_init(void)
75 enable_irq_wake(IRQ_EINT0); 76 enable_irq_wake(IRQ_EINT0);
76 77
77 s3c_pm_init(); 78 s3c_pm_init();
78} 79 }
79 80
80 81
81Debugging 82Debugging
@@ -134,4 +135,3 @@ Document Author
134--------------- 135---------------
135 136
136Ben Dooks, Copyright 2004 Simtec Electronics 137Ben Dooks, Copyright 2004 Simtec Electronics
137
diff --git a/Documentation/arm/Samsung-S3C24XX/USB-Host.txt b/Documentation/arm/samsung-s3c24xx/usb-host.rst
index f82b1faefad5..c84268bd1884 100644
--- a/Documentation/arm/Samsung-S3C24XX/USB-Host.txt
+++ b/Documentation/arm/samsung-s3c24xx/usb-host.rst
@@ -1,5 +1,6 @@
1 S3C24XX USB Host support 1========================
2 ======================== 2S3C24XX USB Host support
3========================
3 4
4 5
5 6
@@ -13,7 +14,7 @@ Configuration
13 14
14 Enable at least the following kernel options: 15 Enable at least the following kernel options:
15 16
16 menuconfig: 17 menuconfig::
17 18
18 Device Drivers ---> 19 Device Drivers --->
19 USB support ---> 20 USB support --->
@@ -22,8 +23,9 @@ Configuration
22 23
23 24
24 .config: 25 .config:
25 CONFIG_USB 26
26 CONFIG_USB_OHCI_HCD 27 - CONFIG_USB
28 - CONFIG_USB_OHCI_HCD
27 29
28 30
29 Once these options are configured, the standard set of USB device 31 Once these options are configured, the standard set of USB device
@@ -60,17 +62,14 @@ Platform Data
60 The ports are numbered 0 and 1. 62 The ports are numbered 0 and 1.
61 63
62 power_control: 64 power_control:
63
64 Called to enable or disable the power on the port. 65 Called to enable or disable the power on the port.
65 66
66 enable_oc: 67 enable_oc:
67
68 Called to enable or disable the over-current monitoring. 68 Called to enable or disable the over-current monitoring.
69 This should claim or release the resources being used to 69 This should claim or release the resources being used to
70 check the power condition on the port, such as an IRQ. 70 check the power condition on the port, such as an IRQ.
71 71
72 report_oc: 72 report_oc:
73
74 The OHCI driver fills this field in for the over-current code 73 The OHCI driver fills this field in for the over-current code
75 to call when there is a change to the over-current state on 74 to call when there is a change to the over-current state on
76 an port. The ports argument is a bitmask of 1 bit per port, 75 an port. The ports argument is a bitmask of 1 bit per port,
@@ -80,7 +79,6 @@ Platform Data
80 ensure this is called correctly. 79 ensure this is called correctly.
81 80
82 port[x]: 81 port[x]:
83
84 This is struct describes each port, 0 or 1. The platform driver 82 This is struct describes each port, 0 or 1. The platform driver
85 should set the flags field of each port to S3C_HCDFLG_USED if 83 should set the flags field of each port to S3C_HCDFLG_USED if
86 the port is enabled. 84 the port is enabled.
diff --git a/Documentation/arm/Samsung/Bootloader-interface.txt b/Documentation/arm/samsung/bootloader-interface.rst
index d17ed518a7ea..a56f325dae78 100644
--- a/Documentation/arm/Samsung/Bootloader-interface.txt
+++ b/Documentation/arm/samsung/bootloader-interface.rst
@@ -1,7 +1,9 @@
1 Interface between kernel and boot loaders on Exynos boards 1==========================================================
2 ========================================================== 2Interface between kernel and boot loaders on Exynos boards
3==========================================================
3 4
4Author: Krzysztof Kozlowski 5Author: Krzysztof Kozlowski
6
5Date : 6 June 2015 7Date : 6 June 2015
6 8
7The document tries to describe currently used interface between Linux kernel 9The document tries to describe currently used interface between Linux kernel
@@ -17,8 +19,10 @@ executing kernel.
171. Non-Secure mode 191. Non-Secure mode
18 20
19Address: sysram_ns_base_addr 21Address: sysram_ns_base_addr
22
23============= ============================================ ==================
20Offset Value Purpose 24Offset Value Purpose
21============================================================================= 25============= ============================================ ==================
220x08 exynos_cpu_resume_ns, mcpm_entry_point System suspend 260x08 exynos_cpu_resume_ns, mcpm_entry_point System suspend
230x0c 0x00000bad (Magic cookie) System suspend 270x0c 0x00000bad (Magic cookie) System suspend
240x1c exynos4_secondary_startup Secondary CPU boot 280x1c exynos4_secondary_startup Secondary CPU boot
@@ -27,22 +31,28 @@ Offset Value Purpose
270x24 exynos_cpu_resume_ns AFTR 310x24 exynos_cpu_resume_ns AFTR
280x28 + 4*cpu 0x8 (Magic cookie, Exynos3250) AFTR 320x28 + 4*cpu 0x8 (Magic cookie, Exynos3250) AFTR
290x28 0x0 or last value during resume (Exynos542x) System suspend 330x28 0x0 or last value during resume (Exynos542x) System suspend
34============= ============================================ ==================
30 35
31 36
322. Secure mode 372. Secure mode
33 38
34Address: sysram_base_addr 39Address: sysram_base_addr
40
41============= ============================================ ==================
35Offset Value Purpose 42Offset Value Purpose
36============================================================================= 43============= ============================================ ==================
370x00 exynos4_secondary_startup Secondary CPU boot 440x00 exynos4_secondary_startup Secondary CPU boot
380x04 exynos4_secondary_startup (Exynos542x) Secondary CPU boot 450x04 exynos4_secondary_startup (Exynos542x) Secondary CPU boot
394*cpu exynos4_secondary_startup (Exynos4412) Secondary CPU boot 464*cpu exynos4_secondary_startup (Exynos4412) Secondary CPU boot
400x20 exynos_cpu_resume (Exynos4210 r1.0) AFTR 470x20 exynos_cpu_resume (Exynos4210 r1.0) AFTR
410x24 0xfcba0d10 (Magic cookie, Exynos4210 r1.0) AFTR 480x24 0xfcba0d10 (Magic cookie, Exynos4210 r1.0) AFTR
49============= ============================================ ==================
42 50
43Address: pmu_base_addr 51Address: pmu_base_addr
52
53============= ============================================ ==================
44Offset Value Purpose 54Offset Value Purpose
45============================================================================= 55============= ============================================ ==================
460x0800 exynos_cpu_resume AFTR, suspend 560x0800 exynos_cpu_resume AFTR, suspend
470x0800 mcpm_entry_point (Exynos542x with MCPM) AFTR, suspend 570x0800 mcpm_entry_point (Exynos542x with MCPM) AFTR, suspend
480x0804 0xfcba0d10 (Magic cookie) AFTR 580x0804 0xfcba0d10 (Magic cookie) AFTR
@@ -50,15 +60,18 @@ Offset Value Purpose
500x0814 exynos4_secondary_startup (Exynos4210 r1.1) Secondary CPU boot 600x0814 exynos4_secondary_startup (Exynos4210 r1.1) Secondary CPU boot
510x0818 0xfcba0d10 (Magic cookie, Exynos4210 r1.1) AFTR 610x0818 0xfcba0d10 (Magic cookie, Exynos4210 r1.1) AFTR
520x081C exynos_cpu_resume (Exynos4210 r1.1) AFTR 620x081C exynos_cpu_resume (Exynos4210 r1.1) AFTR
53 63============= ============================================ ==================
54 64
553. Other (regardless of secure/non-secure mode) 653. Other (regardless of secure/non-secure mode)
56 66
57Address: pmu_base_addr 67Address: pmu_base_addr
68
69============= =============================== ===============================
58Offset Value Purpose 70Offset Value Purpose
59============================================================================= 71============= =============================== ===============================
600x0908 Non-zero Secondary CPU boot up indicator 720x0908 Non-zero Secondary CPU boot up indicator
61 on Exynos3250 and Exynos542x 73 on Exynos3250 and Exynos542x
74============= =============================== ===============================
62 75
63 76
644. Glossary 774. Glossary
diff --git a/Documentation/arm/Samsung/clksrc-change-registers.awk b/Documentation/arm/samsung/clksrc-change-registers.awk
index 7be1b8aa7cd9..7be1b8aa7cd9 100755
--- a/Documentation/arm/Samsung/clksrc-change-registers.awk
+++ b/Documentation/arm/samsung/clksrc-change-registers.awk
diff --git a/Documentation/arm/Samsung/GPIO.txt b/Documentation/arm/samsung/gpio.rst
index 795adfd88081..5f7cadd7159e 100644
--- a/Documentation/arm/Samsung/GPIO.txt
+++ b/Documentation/arm/samsung/gpio.rst
@@ -1,5 +1,6 @@
1 Samsung GPIO implementation 1===========================
2 =========================== 2Samsung GPIO implementation
3===========================
3 4
4Introduction 5Introduction
5------------ 6------------
@@ -11,7 +12,7 @@ specific calls provided alongside the drivers/gpio core.
11S3C24XX (Legacy) 12S3C24XX (Legacy)
12---------------- 13----------------
13 14
14See Documentation/arm/Samsung-S3C24XX/GPIO.txt for more information 15See Documentation/arm/samsung-s3c24xx/gpio.rst for more information
15about these devices. Their implementation has been brought into line 16about these devices. Their implementation has been brought into line
16with the core samsung implementation described in this document. 17with the core samsung implementation described in this document.
17 18
diff --git a/Documentation/arm/samsung/index.rst b/Documentation/arm/samsung/index.rst
new file mode 100644
index 000000000000..f54d95734362
--- /dev/null
+++ b/Documentation/arm/samsung/index.rst
@@ -0,0 +1,10 @@
1===========
2Samsung SoC
3===========
4
5.. toctree::
6 :maxdepth: 1
7
8 gpio
9 bootloader-interface
10 overview
diff --git a/Documentation/arm/Samsung/Overview.txt b/Documentation/arm/samsung/overview.rst
index 8f7309bad460..e74307897416 100644
--- a/Documentation/arm/Samsung/Overview.txt
+++ b/Documentation/arm/samsung/overview.rst
@@ -1,5 +1,6 @@
1 Samsung ARM Linux Overview 1==========================
2 ========================== 2Samsung ARM Linux Overview
3==========================
3 4
4Introduction 5Introduction
5------------ 6------------
@@ -11,7 +12,7 @@ Introduction
11 12
12 The currently supported SoCs are: 13 The currently supported SoCs are:
13 14
14 - S3C24XX: See Documentation/arm/Samsung-S3C24XX/Overview.txt for full list 15 - S3C24XX: See Documentation/arm/samsung-s3c24xx/overview.rst for full list
15 - S3C64XX: S3C6400 and S3C6410 16 - S3C64XX: S3C6400 and S3C6410
16 - S5PC110 / S5PV210 17 - S5PC110 / S5PV210
17 18
@@ -22,7 +23,7 @@ S3C24XX Systems
22 There is still documentation in Documnetation/arm/Samsung-S3C24XX/ which 23 There is still documentation in Documnetation/arm/Samsung-S3C24XX/ which
23 deals with the architecture and drivers specific to these devices. 24 deals with the architecture and drivers specific to these devices.
24 25
25 See Documentation/arm/Samsung-S3C24XX/Overview.txt for more information 26 See Documentation/arm/samsung-s3c24xx/overview.rst for more information
26 on the implementation details and specific support. 27 on the implementation details and specific support.
27 28
28 29
@@ -32,8 +33,10 @@ Configuration
32 A number of configurations are supplied, as there is no current way of 33 A number of configurations are supplied, as there is no current way of
33 unifying all the SoCs into one kernel. 34 unifying all the SoCs into one kernel.
34 35
35 s5pc110_defconfig - S5PC110 specific default configuration 36 s5pc110_defconfig
36 s5pv210_defconfig - S5PV210 specific default configuration 37 - S5PC110 specific default configuration
38 s5pv210_defconfig
39 - S5PV210 specific default configuration
37 40
38 41
39Layout 42Layout
diff --git a/Documentation/arm/Setup b/Documentation/arm/setup.rst
index 0cb1e64bde80..8e12ef3fb9a7 100644
--- a/Documentation/arm/Setup
+++ b/Documentation/arm/setup.rst
@@ -1,5 +1,6 @@
1=============================================
1Kernel initialisation parameters on ARM Linux 2Kernel initialisation parameters on ARM Linux
2--------------------------------------------- 3=============================================
3 4
4The following document describes the kernel initialisation parameter 5The following document describes the kernel initialisation parameter
5structure, otherwise known as 'struct param_struct' which is used 6structure, otherwise known as 'struct param_struct' which is used
@@ -14,12 +15,10 @@ There are a lot of parameters listed in there, and they are described
14below: 15below:
15 16
16 page_size 17 page_size
17
18 This parameter must be set to the page size of the machine, and 18 This parameter must be set to the page size of the machine, and
19 will be checked by the kernel. 19 will be checked by the kernel.
20 20
21 nr_pages 21 nr_pages
22
23 This is the total number of pages of memory in the system. If 22 This is the total number of pages of memory in the system. If
24 the memory is banked, then this should contain the total number 23 the memory is banked, then this should contain the total number
25 of pages in the system. 24 of pages in the system.
@@ -28,24 +27,22 @@ below:
28 include this information. 27 include this information.
29 28
30 ramdisk_size 29 ramdisk_size
31
32 This is now obsolete, and should not be used. 30 This is now obsolete, and should not be used.
33 31
34 flags 32 flags
35
36 Various kernel flags, including: 33 Various kernel flags, including:
37 bit 0 - 1 = mount root read only
38 bit 1 - unused
39 bit 2 - 0 = load ramdisk
40 bit 3 - 0 = prompt for ramdisk
41 34
42 rootdev 35 ===== ========================
36 bit 0 1 = mount root read only
37 bit 1 unused
38 bit 2 0 = load ramdisk
39 bit 3 0 = prompt for ramdisk
40 ===== ========================
43 41
42 rootdev
44 major/minor number pair of device to mount as the root filesystem. 43 major/minor number pair of device to mount as the root filesystem.
45 44
46 video_num_cols 45 video_num_cols / video_num_rows
47 video_num_rows
48
49 These two together describe the character size of the dummy console, 46 These two together describe the character size of the dummy console,
50 or VGA console character size. They should not be used for any other 47 or VGA console character size. They should not be used for any other
51 purpose. 48 purpose.
@@ -54,66 +51,50 @@ below:
54 the equivalent character size of your fbcon display. This then allows 51 the equivalent character size of your fbcon display. This then allows
55 all the bootup messages to be displayed correctly. 52 all the bootup messages to be displayed correctly.
56 53
57 video_x 54 video_x / video_y
58 video_y
59
60 This describes the character position of cursor on VGA console, and 55 This describes the character position of cursor on VGA console, and
61 is otherwise unused. (should not be used for other console types, and 56 is otherwise unused. (should not be used for other console types, and
62 should not be used for other purposes). 57 should not be used for other purposes).
63 58
64 memc_control_reg 59 memc_control_reg
65
66 MEMC chip control register for Acorn Archimedes and Acorn A5000 60 MEMC chip control register for Acorn Archimedes and Acorn A5000
67 based machines. May be used differently by different architectures. 61 based machines. May be used differently by different architectures.
68 62
69 sounddefault 63 sounddefault
70
71 Default sound setting on Acorn machines. May be used differently by 64 Default sound setting on Acorn machines. May be used differently by
72 different architectures. 65 different architectures.
73 66
74 adfsdrives 67 adfsdrives
75
76 Number of ADFS/MFM disks. May be used differently by different 68 Number of ADFS/MFM disks. May be used differently by different
77 architectures. 69 architectures.
78 70
79 bytes_per_char_h 71 bytes_per_char_h / bytes_per_char_v
80 bytes_per_char_v
81
82 These are now obsolete, and should not be used. 72 These are now obsolete, and should not be used.
83 73
84 pages_in_bank[4] 74 pages_in_bank[4]
85
86 Number of pages in each bank of the systems memory (used for RiscPC). 75 Number of pages in each bank of the systems memory (used for RiscPC).
87 This is intended to be used on systems where the physical memory 76 This is intended to be used on systems where the physical memory
88 is non-contiguous from the processors point of view. 77 is non-contiguous from the processors point of view.
89 78
90 pages_in_vram 79 pages_in_vram
91
92 Number of pages in VRAM (used on Acorn RiscPC). This value may also 80 Number of pages in VRAM (used on Acorn RiscPC). This value may also
93 be used by loaders if the size of the video RAM can't be obtained 81 be used by loaders if the size of the video RAM can't be obtained
94 from the hardware. 82 from the hardware.
95 83
96 initrd_start 84 initrd_start / initrd_size
97 initrd_size
98
99 This describes the kernel virtual start address and size of the 85 This describes the kernel virtual start address and size of the
100 initial ramdisk. 86 initial ramdisk.
101 87
102 rd_start 88 rd_start
103
104 Start address in sectors of the ramdisk image on a floppy disk. 89 Start address in sectors of the ramdisk image on a floppy disk.
105 90
106 system_rev 91 system_rev
107
108 system revision number. 92 system revision number.
109 93
110 system_serial_low 94 system_serial_low / system_serial_high
111 system_serial_high
112
113 system 64-bit serial number 95 system 64-bit serial number
114 96
115 mem_fclk_21285 97 mem_fclk_21285
116
117 The speed of the external oscillator to the 21285 (footbridge), 98 The speed of the external oscillator to the 21285 (footbridge),
118 which control's the speed of the memory bus, timer & serial port. 99 which control's the speed of the memory bus, timer & serial port.
119 Depending upon the speed of the cpu its value can be between 100 Depending upon the speed of the cpu its value can be between
@@ -121,9 +102,7 @@ below:
121 then a value of 50 Mhz is the default on 21285 architectures. 102 then a value of 50 Mhz is the default on 21285 architectures.
122 103
123 paths[8][128] 104 paths[8][128]
124
125 These are now obsolete, and should not be used. 105 These are now obsolete, and should not be used.
126 106
127 commandline 107 commandline
128
129 Kernel command line parameters. Details can be found elsewhere. 108 Kernel command line parameters. Details can be found elsewhere.
diff --git a/Documentation/arm/SH-Mobile/.gitignore b/Documentation/arm/sh-mobile/.gitignore
index c928dbf3cc88..c928dbf3cc88 100644
--- a/Documentation/arm/SH-Mobile/.gitignore
+++ b/Documentation/arm/sh-mobile/.gitignore
diff --git a/Documentation/arm/SPEAr/overview.txt b/Documentation/arm/spear/overview.rst
index 1b049be6c84f..8a1a87aca427 100644
--- a/Documentation/arm/SPEAr/overview.txt
+++ b/Documentation/arm/spear/overview.rst
@@ -1,5 +1,6 @@
1 SPEAr ARM Linux Overview 1========================
2 ========================== 2SPEAr ARM Linux Overview
3========================
3 4
4Introduction 5Introduction
5------------ 6------------
@@ -30,17 +31,18 @@ Introduction
30 - SPEAr1340 (SOC) 31 - SPEAr1340 (SOC)
31 - SPEAr1340 Evaluation Board 32 - SPEAr1340 Evaluation Board
32 33
33 Configuration 34Configuration
34 ------------- 35-------------
35 36
36 A generic configuration is provided for each machine, and can be used as the 37 A generic configuration is provided for each machine, and can be used as the
37 default by 38 default by::
39
38 make spear13xx_defconfig 40 make spear13xx_defconfig
39 make spear3xx_defconfig 41 make spear3xx_defconfig
40 make spear6xx_defconfig 42 make spear6xx_defconfig
41 43
42 Layout 44Layout
43 ------ 45------
44 46
45 The common files for multiple machine families (SPEAr3xx, SPEAr6xx and 47 The common files for multiple machine families (SPEAr3xx, SPEAr6xx and
46 SPEAr13xx) are located in the platform code contained in arch/arm/plat-spear 48 SPEAr13xx) are located in the platform code contained in arch/arm/plat-spear
@@ -57,7 +59,7 @@ Introduction
57 support Flattened Device Tree. 59 support Flattened Device Tree.
58 60
59 61
60 Document Author 62Document Author
61 --------------- 63---------------
62 64
63 Viresh Kumar <vireshk@kernel.org>, (c) 2010-2012 ST Microelectronics 65 Viresh Kumar <vireshk@kernel.org>, (c) 2010-2012 ST Microelectronics
diff --git a/Documentation/arm/sti/overview.txt b/Documentation/arm/sti/overview.rst
index 1a4e93d6027f..70743617a74f 100644
--- a/Documentation/arm/sti/overview.txt
+++ b/Documentation/arm/sti/overview.rst
@@ -1,5 +1,6 @@
1 STi ARM Linux Overview 1======================
2 ========================== 2STi ARM Linux Overview
3======================
3 4
4Introduction 5Introduction
5------------ 6------------
@@ -10,15 +11,17 @@ Introduction
10 B2000 and B2020 Reference boards. 11 B2000 and B2020 Reference boards.
11 12
12 13
13 configuration 14configuration
14 ------------- 15-------------
15 16
16 A generic configuration is provided for both STiH415/416, and can be used as the 17 A generic configuration is provided for both STiH415/416, and can be used as the
17 default by 18 default by::
19
18 make stih41x_defconfig 20 make stih41x_defconfig
19 21
20 Layout 22Layout
21 ------ 23------
24
22 All the files for multiple machine families (STiH415, STiH416, and STiG125) 25 All the files for multiple machine families (STiH415, STiH416, and STiG125)
23 are located in the platform code contained in arch/arm/mach-sti 26 are located in the platform code contained in arch/arm/mach-sti
24 27
@@ -27,7 +30,7 @@ Introduction
27 Device Trees. 30 Device Trees.
28 31
29 32
30 Document Author 33Document Author
31 --------------- 34---------------
32 35
33 Srinivas Kandagatla <srinivas.kandagatla@st.com>, (c) 2013 ST Microelectronics 36 Srinivas Kandagatla <srinivas.kandagatla@st.com>, (c) 2013 ST Microelectronics
diff --git a/Documentation/arm/sti/stih407-overview.txt b/Documentation/arm/sti/stih407-overview.rst
index 3343f32f58bc..027e75bc7b7c 100644
--- a/Documentation/arm/sti/stih407-overview.txt
+++ b/Documentation/arm/sti/stih407-overview.rst
@@ -1,5 +1,6 @@
1 STiH407 Overview 1================
2 ================ 2STiH407 Overview
3================
3 4
4Introduction 5Introduction
5------------ 6------------
@@ -12,7 +13,7 @@ Introduction
12 - ARM Cortex-A9 1.5 GHz dual core CPU (28nm) 13 - ARM Cortex-A9 1.5 GHz dual core CPU (28nm)
13 - SATA2, USB 3.0, PCIe, Gbit Ethernet 14 - SATA2, USB 3.0, PCIe, Gbit Ethernet
14 15
15 Document Author 16Document Author
16 --------------- 17---------------
17 18
18 Maxime Coquelin <maxime.coquelin@st.com>, (c) 2014 ST Microelectronics 19 Maxime Coquelin <maxime.coquelin@st.com>, (c) 2014 ST Microelectronics
diff --git a/Documentation/arm/sti/stih415-overview.txt b/Documentation/arm/sti/stih415-overview.rst
index 1383e33f265d..b67452d610c4 100644
--- a/Documentation/arm/sti/stih415-overview.txt
+++ b/Documentation/arm/sti/stih415-overview.rst
@@ -1,5 +1,6 @@
1 STiH415 Overview 1================
2 ================ 2STiH415 Overview
3================
3 4
4Introduction 5Introduction
5------------ 6------------
@@ -7,6 +8,7 @@ Introduction
7 The STiH415 is the next generation of HD, AVC set-top box processors 8 The STiH415 is the next generation of HD, AVC set-top box processors
8 for satellite, cable, terrestrial and IP-STB markets. 9 for satellite, cable, terrestrial and IP-STB markets.
9 10
10 Features 11 Features:
12
11 - ARM Cortex-A9 1.0 GHz, dual-core CPU 13 - ARM Cortex-A9 1.0 GHz, dual-core CPU
12 - SATA2x2,USB 2.0x3, PCIe, Gbit Ethernet MACx2 14 - SATA2x2,USB 2.0x3, PCIe, Gbit Ethernet MACx2
diff --git a/Documentation/arm/sti/stih416-overview.txt b/Documentation/arm/sti/stih416-overview.rst
index 558444c201c6..93f17d74d8db 100644
--- a/Documentation/arm/sti/stih416-overview.txt
+++ b/Documentation/arm/sti/stih416-overview.rst
@@ -1,5 +1,6 @@
1 STiH416 Overview 1================
2 ================ 2STiH416 Overview
3================
3 4
4Introduction 5Introduction
5------------ 6------------
diff --git a/Documentation/arm/sti/stih418-overview.txt b/Documentation/arm/sti/stih418-overview.rst
index 1cd8fc80646d..b563c1f4fe5a 100644
--- a/Documentation/arm/sti/stih418-overview.txt
+++ b/Documentation/arm/sti/stih418-overview.rst
@@ -1,5 +1,6 @@
1 STiH418 Overview 1================
2 ================ 2STiH418 Overview
3================
3 4
4Introduction 5Introduction
5------------ 6------------
@@ -14,7 +15,7 @@ Introduction
14 - HEVC L5.1 Main 10 15 - HEVC L5.1 Main 10
15 - VP9 16 - VP9
16 17
17 Document Author 18Document Author
18 --------------- 19---------------
19 20
20 Maxime Coquelin <maxime.coquelin@st.com>, (c) 2015 ST Microelectronics 21 Maxime Coquelin <maxime.coquelin@st.com>, (c) 2015 ST Microelectronics
diff --git a/Documentation/arm/stm32/overview.rst b/Documentation/arm/stm32/overview.rst
index f7e734153860..85cfc8410798 100644
--- a/Documentation/arm/stm32/overview.rst
+++ b/Documentation/arm/stm32/overview.rst
@@ -1,5 +1,3 @@
1:orphan:
2
3======================== 1========================
4STM32 ARM Linux Overview 2STM32 ARM Linux Overview
5======================== 3========================
diff --git a/Documentation/arm/stm32/stm32f429-overview.rst b/Documentation/arm/stm32/stm32f429-overview.rst
index 65bbb1c3b423..a7ebe8ea6697 100644
--- a/Documentation/arm/stm32/stm32f429-overview.rst
+++ b/Documentation/arm/stm32/stm32f429-overview.rst
@@ -1,5 +1,4 @@
1:orphan: 1==================
2
3STM32F429 Overview 2STM32F429 Overview
4================== 3==================
5 4
@@ -23,6 +22,4 @@ Datasheet and reference manual are publicly available on ST website (STM32F429_)
23 22
24.. _STM32F429: http://www.st.com/web/en/catalog/mmc/FM141/SC1169/SS1577/LN1806?ecmp=stm32f429-439_pron_pr-ces2014_nov2013 23.. _STM32F429: http://www.st.com/web/en/catalog/mmc/FM141/SC1169/SS1577/LN1806?ecmp=stm32f429-439_pron_pr-ces2014_nov2013
25 24
26:Authors: 25:Authors: Maxime Coquelin <mcoquelin.stm32@gmail.com>
27
28Maxime Coquelin <mcoquelin.stm32@gmail.com>
diff --git a/Documentation/arm/stm32/stm32f746-overview.rst b/Documentation/arm/stm32/stm32f746-overview.rst
index 42d593085015..78befddc7740 100644
--- a/Documentation/arm/stm32/stm32f746-overview.rst
+++ b/Documentation/arm/stm32/stm32f746-overview.rst
@@ -1,5 +1,4 @@
1:orphan: 1==================
2
3STM32F746 Overview 2STM32F746 Overview
4================== 3==================
5 4
@@ -30,6 +29,4 @@ Datasheet and reference manual are publicly available on ST website (STM32F746_)
30 29
31.. _STM32F746: http://www.st.com/content/st_com/en/products/microcontrollers/stm32-32-bit-arm-cortex-mcus/stm32f7-series/stm32f7x6/stm32f746ng.html 30.. _STM32F746: http://www.st.com/content/st_com/en/products/microcontrollers/stm32-32-bit-arm-cortex-mcus/stm32f7-series/stm32f7x6/stm32f746ng.html
32 31
33:Authors: 32:Authors: Alexandre Torgue <alexandre.torgue@st.com>
34
35Alexandre Torgue <alexandre.torgue@st.com>
diff --git a/Documentation/arm/stm32/stm32f769-overview.rst b/Documentation/arm/stm32/stm32f769-overview.rst
index f6adac862b17..e482980ddf21 100644
--- a/Documentation/arm/stm32/stm32f769-overview.rst
+++ b/Documentation/arm/stm32/stm32f769-overview.rst
@@ -1,5 +1,4 @@
1:orphan: 1==================
2
3STM32F769 Overview 2STM32F769 Overview
4================== 3==================
5 4
@@ -32,6 +31,4 @@ Datasheet and reference manual are publicly available on ST website (STM32F769_)
32 31
33.. _STM32F769: http://www.st.com/content/st_com/en/products/microcontrollers/stm32-32-bit-arm-cortex-mcus/stm32-high-performance-mcus/stm32f7-series/stm32f7x9/stm32f769ni.html 32.. _STM32F769: http://www.st.com/content/st_com/en/products/microcontrollers/stm32-32-bit-arm-cortex-mcus/stm32-high-performance-mcus/stm32f7-series/stm32f7x9/stm32f769ni.html
34 33
35:Authors: 34:Authors: Alexandre Torgue <alexandre.torgue@st.com>
36
37Alexandre Torgue <alexandre.torgue@st.com>
diff --git a/Documentation/arm/stm32/stm32h743-overview.rst b/Documentation/arm/stm32/stm32h743-overview.rst
index c525835e7473..4e15f1a42730 100644
--- a/Documentation/arm/stm32/stm32h743-overview.rst
+++ b/Documentation/arm/stm32/stm32h743-overview.rst
@@ -1,5 +1,4 @@
1:orphan: 1==================
2
3STM32H743 Overview 2STM32H743 Overview
4================== 3==================
5 4
@@ -31,6 +30,4 @@ Datasheet and reference manual are publicly available on ST website (STM32H743_)
31 30
32.. _STM32H743: http://www.st.com/en/microcontrollers/stm32h7x3.html?querycriteria=productId=LN2033 31.. _STM32H743: http://www.st.com/en/microcontrollers/stm32h7x3.html?querycriteria=productId=LN2033
33 32
34:Authors: 33:Authors: Alexandre Torgue <alexandre.torgue@st.com>
35
36Alexandre Torgue <alexandre.torgue@st.com>
diff --git a/Documentation/arm/stm32/stm32mp157-overview.rst b/Documentation/arm/stm32/stm32mp157-overview.rst
index 2c52cd020601..f62fdc8e7d8d 100644
--- a/Documentation/arm/stm32/stm32mp157-overview.rst
+++ b/Documentation/arm/stm32/stm32mp157-overview.rst
@@ -1,5 +1,4 @@
1:orphan: 1===================
2
3STM32MP157 Overview 2STM32MP157 Overview
4=================== 3===================
5 4
diff --git a/Documentation/arm/sunxi/README b/Documentation/arm/sunxi.rst
index f8efc21998bf..b037428aee98 100644
--- a/Documentation/arm/sunxi/README
+++ b/Documentation/arm/sunxi.rst
@@ -1,3 +1,4 @@
1==================
1ARM Allwinner SoCs 2ARM Allwinner SoCs
2================== 3==================
3 4
@@ -10,93 +11,140 @@ SunXi family
10 Linux kernel mach directory: arch/arm/mach-sunxi 11 Linux kernel mach directory: arch/arm/mach-sunxi
11 12
12 Flavors: 13 Flavors:
14
13 * ARM926 based SoCs 15 * ARM926 based SoCs
14 - Allwinner F20 (sun3i) 16 - Allwinner F20 (sun3i)
15 + Not Supported 17
18 * Not Supported
16 19
17 * ARM Cortex-A8 based SoCs 20 * ARM Cortex-A8 based SoCs
18 - Allwinner A10 (sun4i) 21 - Allwinner A10 (sun4i)
19 + Datasheet 22
23 * Datasheet
24
20 http://dl.linux-sunxi.org/A10/A10%20Datasheet%20-%20v1.21%20%282012-04-06%29.pdf 25 http://dl.linux-sunxi.org/A10/A10%20Datasheet%20-%20v1.21%20%282012-04-06%29.pdf
21 + User Manual 26 * User Manual
27
22 http://dl.linux-sunxi.org/A10/A10%20User%20Manual%20-%20v1.20%20%282012-04-09%2c%20DECRYPTED%29.pdf 28 http://dl.linux-sunxi.org/A10/A10%20User%20Manual%20-%20v1.20%20%282012-04-09%2c%20DECRYPTED%29.pdf
23 29
24 - Allwinner A10s (sun5i) 30 - Allwinner A10s (sun5i)
25 + Datasheet 31
32 * Datasheet
33
26 http://dl.linux-sunxi.org/A10s/A10s%20Datasheet%20-%20v1.20%20%282012-03-27%29.pdf 34 http://dl.linux-sunxi.org/A10s/A10s%20Datasheet%20-%20v1.20%20%282012-03-27%29.pdf
27 35
28 - Allwinner A13 / R8 (sun5i) 36 - Allwinner A13 / R8 (sun5i)
29 + Datasheet 37
38 * Datasheet
39
30 http://dl.linux-sunxi.org/A13/A13%20Datasheet%20-%20v1.12%20%282012-03-29%29.pdf 40 http://dl.linux-sunxi.org/A13/A13%20Datasheet%20-%20v1.12%20%282012-03-29%29.pdf
31 + User Manual 41 * User Manual
42
32 http://dl.linux-sunxi.org/A13/A13%20User%20Manual%20-%20v1.2%20%282013-01-08%29.pdf 43 http://dl.linux-sunxi.org/A13/A13%20User%20Manual%20-%20v1.2%20%282013-01-08%29.pdf
33 44
34 - Next Thing Co GR8 (sun5i) 45 - Next Thing Co GR8 (sun5i)
35 46
36 * Single ARM Cortex-A7 based SoCs 47 * Single ARM Cortex-A7 based SoCs
37 - Allwinner V3s (sun8i) 48 - Allwinner V3s (sun8i)
38 + Datasheet 49
50 * Datasheet
51
39 http://linux-sunxi.org/File:Allwinner_V3s_Datasheet_V1.0.pdf 52 http://linux-sunxi.org/File:Allwinner_V3s_Datasheet_V1.0.pdf
40 53
41 * Dual ARM Cortex-A7 based SoCs 54 * Dual ARM Cortex-A7 based SoCs
42 - Allwinner A20 (sun7i) 55 - Allwinner A20 (sun7i)
43 + User Manual 56
57 * User Manual
58
44 http://dl.linux-sunxi.org/A20/A20%20User%20Manual%202013-03-22.pdf 59 http://dl.linux-sunxi.org/A20/A20%20User%20Manual%202013-03-22.pdf
45 60
46 - Allwinner A23 (sun8i) 61 - Allwinner A23 (sun8i)
47 + Datasheet 62
63 * Datasheet
64
48 http://dl.linux-sunxi.org/A23/A23%20Datasheet%20V1.0%2020130830.pdf 65 http://dl.linux-sunxi.org/A23/A23%20Datasheet%20V1.0%2020130830.pdf
49 + User Manual 66
67 * User Manual
68
50 http://dl.linux-sunxi.org/A23/A23%20User%20Manual%20V1.0%2020130830.pdf 69 http://dl.linux-sunxi.org/A23/A23%20User%20Manual%20V1.0%2020130830.pdf
51 70
52 * Quad ARM Cortex-A7 based SoCs 71 * Quad ARM Cortex-A7 based SoCs
53 - Allwinner A31 (sun6i) 72 - Allwinner A31 (sun6i)
54 + Datasheet 73
74 * Datasheet
75
55 http://dl.linux-sunxi.org/A31/A3x_release_document/A31/IC/A31%20datasheet%20V1.3%2020131106.pdf 76 http://dl.linux-sunxi.org/A31/A3x_release_document/A31/IC/A31%20datasheet%20V1.3%2020131106.pdf
56 + User Manual 77
78 * User Manual
79
57 http://dl.linux-sunxi.org/A31/A3x_release_document/A31/IC/A31%20user%20manual%20V1.1%2020130630.pdf 80 http://dl.linux-sunxi.org/A31/A3x_release_document/A31/IC/A31%20user%20manual%20V1.1%2020130630.pdf
58 81
59 - Allwinner A31s (sun6i) 82 - Allwinner A31s (sun6i)
60 + Datasheet 83
84 * Datasheet
85
61 http://dl.linux-sunxi.org/A31/A3x_release_document/A31s/IC/A31s%20datasheet%20V1.3%2020131106.pdf 86 http://dl.linux-sunxi.org/A31/A3x_release_document/A31s/IC/A31s%20datasheet%20V1.3%2020131106.pdf
62 + User Manual 87
88 * User Manual
89
63 http://dl.linux-sunxi.org/A31/A3x_release_document/A31s/IC/A31s%20User%20Manual%20%20V1.0%2020130322.pdf 90 http://dl.linux-sunxi.org/A31/A3x_release_document/A31s/IC/A31s%20User%20Manual%20%20V1.0%2020130322.pdf
64 91
65 - Allwinner A33 (sun8i) 92 - Allwinner A33 (sun8i)
66 + Datasheet 93
94 * Datasheet
95
67 http://dl.linux-sunxi.org/A33/A33%20Datasheet%20release%201.1.pdf 96 http://dl.linux-sunxi.org/A33/A33%20Datasheet%20release%201.1.pdf
68 + User Manual 97
98 * User Manual
99
69 http://dl.linux-sunxi.org/A33/A33%20user%20manual%20release%201.1.pdf 100 http://dl.linux-sunxi.org/A33/A33%20user%20manual%20release%201.1.pdf
70 101
71 - Allwinner H2+ (sun8i) 102 - Allwinner H2+ (sun8i)
72 + No document available now, but is known to be working properly with 103
104 * No document available now, but is known to be working properly with
73 H3 drivers and memory map. 105 H3 drivers and memory map.
74 106
75 - Allwinner H3 (sun8i) 107 - Allwinner H3 (sun8i)
76 + Datasheet 108
109 * Datasheet
110
77 http://dl.linux-sunxi.org/H3/Allwinner_H3_Datasheet_V1.0.pdf 111 http://dl.linux-sunxi.org/H3/Allwinner_H3_Datasheet_V1.0.pdf
78 112
79 - Allwinner R40 (sun8i) 113 - Allwinner R40 (sun8i)
80 + Datasheet 114
115 * Datasheet
116
81 https://github.com/tinalinux/docs/raw/r40-v1.y/R40_Datasheet_V1.0.pdf 117 https://github.com/tinalinux/docs/raw/r40-v1.y/R40_Datasheet_V1.0.pdf
82 + User Manual 118
119 * User Manual
120
83 https://github.com/tinalinux/docs/raw/r40-v1.y/Allwinner_R40_User_Manual_V1.0.pdf 121 https://github.com/tinalinux/docs/raw/r40-v1.y/Allwinner_R40_User_Manual_V1.0.pdf
84 122
85 * Quad ARM Cortex-A15, Quad ARM Cortex-A7 based SoCs 123 * Quad ARM Cortex-A15, Quad ARM Cortex-A7 based SoCs
86 - Allwinner A80 124 - Allwinner A80
87 + Datasheet 125
126 * Datasheet
127
88 http://dl.linux-sunxi.org/A80/A80_Datasheet_Revision_1.0_0404.pdf 128 http://dl.linux-sunxi.org/A80/A80_Datasheet_Revision_1.0_0404.pdf
89 129
90 * Octa ARM Cortex-A7 based SoCs 130 * Octa ARM Cortex-A7 based SoCs
91 - Allwinner A83T 131 - Allwinner A83T
92 + Datasheet 132
133 * Datasheet
134
93 https://github.com/allwinner-zh/documents/raw/master/A83T/A83T_Datasheet_v1.3_20150510.pdf 135 https://github.com/allwinner-zh/documents/raw/master/A83T/A83T_Datasheet_v1.3_20150510.pdf
94 + User Manual 136
137 * User Manual
138
95 https://github.com/allwinner-zh/documents/raw/master/A83T/A83T_User_Manual_v1.5.1_20150513.pdf 139 https://github.com/allwinner-zh/documents/raw/master/A83T/A83T_User_Manual_v1.5.1_20150513.pdf
96 140
97 * Quad ARM Cortex-A53 based SoCs 141 * Quad ARM Cortex-A53 based SoCs
98 - Allwinner A64 142 - Allwinner A64
99 + Datasheet 143
144 * Datasheet
145
100 http://dl.linux-sunxi.org/A64/A64_Datasheet_V1.1.pdf 146 http://dl.linux-sunxi.org/A64/A64_Datasheet_V1.1.pdf
101 + User Manual 147
148 * User Manual
149
102 http://dl.linux-sunxi.org/A64/Allwinner%20A64%20User%20Manual%20v1.0.pdf 150 http://dl.linux-sunxi.org/A64/Allwinner%20A64%20User%20Manual%20v1.0.pdf
diff --git a/Documentation/arm/sunxi/clocks.txt b/Documentation/arm/sunxi/clocks.rst
index e09a88aa3136..23bd03f3e21f 100644
--- a/Documentation/arm/sunxi/clocks.txt
+++ b/Documentation/arm/sunxi/clocks.rst
@@ -1,3 +1,4 @@
1=======================================================
1Frequently asked questions about the sunxi clock system 2Frequently asked questions about the sunxi clock system
2======================================================= 3=======================================================
3 4
@@ -12,7 +13,7 @@ A: The 24MHz oscillator allows gating to save power. Indeed, if gated
12 steps, one can gate it and keep the system running. Consider this 13 steps, one can gate it and keep the system running. Consider this
13 simplified suspend example: 14 simplified suspend example:
14 15
15 While the system is operational, you would see something like 16 While the system is operational, you would see something like::
16 17
17 24MHz 32kHz 18 24MHz 32kHz
18 | 19 |
@@ -23,7 +24,7 @@ A: The 24MHz oscillator allows gating to save power. Indeed, if gated
23 [CPU] 24 [CPU]
24 25
25 When you are about to suspend, you switch the CPU Mux to the 32kHz 26 When you are about to suspend, you switch the CPU Mux to the 32kHz
26 oscillator: 27 oscillator::
27 28
28 24Mhz 32kHz 29 24Mhz 32kHz
29 | | 30 | |
@@ -33,7 +34,7 @@ A: The 24MHz oscillator allows gating to save power. Indeed, if gated
33 | 34 |
34 [CPU] 35 [CPU]
35 36
36 Finally you can gate the main oscillator 37 Finally you can gate the main oscillator::
37 38
38 32kHz 39 32kHz
39 | 40 |
diff --git a/Documentation/arm/swp_emulation b/Documentation/arm/swp_emulation.rst
index af903d22fd93..6a608a9c3715 100644
--- a/Documentation/arm/swp_emulation
+++ b/Documentation/arm/swp_emulation.rst
@@ -11,17 +11,17 @@ sequence. If a memory access fault (an abort) occurs, a segmentation fault is
11signalled to the triggering process. 11signalled to the triggering process.
12 12
13/proc/cpu/swp_emulation holds some statistics/information, including the PID of 13/proc/cpu/swp_emulation holds some statistics/information, including the PID of
14the last process to trigger the emulation to be invocated. For example: 14the last process to trigger the emulation to be invocated. For example::
15---
16Emulated SWP: 12
17Emulated SWPB: 0
18Aborted SWP{B}: 1
19Last process: 314
20---
21 15
22NOTE: when accessing uncached shared regions, LDREX/STREX rely on an external 16 Emulated SWP: 12
23transaction monitoring block called a global monitor to maintain update 17 Emulated SWPB: 0
24atomicity. If your system does not implement a global monitor, this option can 18 Aborted SWP{B}: 1
25cause programs that perform SWP operations to uncached memory to deadlock, as 19 Last process: 314
26the STREX operation will always fail.
27 20
21
22NOTE:
23 when accessing uncached shared regions, LDREX/STREX rely on an external
24 transaction monitoring block called a global monitor to maintain update
25 atomicity. If your system does not implement a global monitor, this option can
26 cause programs that perform SWP operations to uncached memory to deadlock, as
27 the STREX operation will always fail.
diff --git a/Documentation/arm/tcm.txt b/Documentation/arm/tcm.rst
index 7c15871c1885..effd9c7bc968 100644
--- a/Documentation/arm/tcm.txt
+++ b/Documentation/arm/tcm.rst
@@ -1,5 +1,7 @@
1==================================================
1ARM TCM (Tightly-Coupled Memory) handling in Linux 2ARM TCM (Tightly-Coupled Memory) handling in Linux
2---- 3==================================================
4
3Written by Linus Walleij <linus.walleij@stericsson.com> 5Written by Linus Walleij <linus.walleij@stericsson.com>
4 6
5Some ARM SoC:s have a so-called TCM (Tightly-Coupled Memory). 7Some ARM SoC:s have a so-called TCM (Tightly-Coupled Memory).
@@ -85,46 +87,50 @@ to have functions called locally inside the TCM without
85wasting space, there is also the __tcmlocalfunc prefix that 87wasting space, there is also the __tcmlocalfunc prefix that
86will make the call relative. 88will make the call relative.
87 89
88Variables to go into dtcm can be tagged like this: 90Variables to go into dtcm can be tagged like this::
89int __tcmdata foo; 91
92 int __tcmdata foo;
93
94Constants can be tagged like this::
90 95
91Constants can be tagged like this: 96 int __tcmconst foo;
92int __tcmconst foo; 97
98To put assembler into TCM just use::
99
100 .section ".tcm.text" or .section ".tcm.data"
93 101
94To put assembler into TCM just use
95.section ".tcm.text" or .section ".tcm.data"
96respectively. 102respectively.
97 103
98Example code: 104Example code::
99 105
100#include <asm/tcm.h> 106 #include <asm/tcm.h>
101 107
102/* Uninitialized data */ 108 /* Uninitialized data */
103static u32 __tcmdata tcmvar; 109 static u32 __tcmdata tcmvar;
104/* Initialized data */ 110 /* Initialized data */
105static u32 __tcmdata tcmassigned = 0x2BADBABEU; 111 static u32 __tcmdata tcmassigned = 0x2BADBABEU;
106/* Constant */ 112 /* Constant */
107static const u32 __tcmconst tcmconst = 0xCAFEBABEU; 113 static const u32 __tcmconst tcmconst = 0xCAFEBABEU;
108 114
109static void __tcmlocalfunc tcm_to_tcm(void) 115 static void __tcmlocalfunc tcm_to_tcm(void)
110{ 116 {
111 int i; 117 int i;
112 for (i = 0; i < 100; i++) 118 for (i = 0; i < 100; i++)
113 tcmvar ++; 119 tcmvar ++;
114} 120 }
115 121
116static void __tcmfunc hello_tcm(void) 122 static void __tcmfunc hello_tcm(void)
117{ 123 {
118 /* Some abstract code that runs in ITCM */ 124 /* Some abstract code that runs in ITCM */
119 int i; 125 int i;
120 for (i = 0; i < 100; i++) { 126 for (i = 0; i < 100; i++) {
121 tcmvar ++; 127 tcmvar ++;
122 } 128 }
123 tcm_to_tcm(); 129 tcm_to_tcm();
124} 130 }
125 131
126static void __init test_tcm(void) 132 static void __init test_tcm(void)
127{ 133 {
128 u32 *tcmem; 134 u32 *tcmem;
129 int i; 135 int i;
130 136
@@ -152,4 +158,4 @@ static void __init test_tcm(void)
152 printk("TCM tcmem[%d] = %08x\n", i, tcmem[i]); 158 printk("TCM tcmem[%d] = %08x\n", i, tcmem[i]);
153 tcm_free(tcmem, 20); 159 tcm_free(tcmem, 20);
154 } 160 }
155} 161 }
diff --git a/Documentation/arm/uefi.txt b/Documentation/arm/uefi.rst
index 6543a0adea8a..f868330df6be 100644
--- a/Documentation/arm/uefi.txt
+++ b/Documentation/arm/uefi.rst
@@ -1,3 +1,7 @@
1================================================
2The Unified Extensible Firmware Interface (UEFI)
3================================================
4
1UEFI, the Unified Extensible Firmware Interface, is a specification 5UEFI, the Unified Extensible Firmware Interface, is a specification
2governing the behaviours of compatible firmware interfaces. It is 6governing the behaviours of compatible firmware interfaces. It is
3maintained by the UEFI Forum - http://www.uefi.org/. 7maintained by the UEFI Forum - http://www.uefi.org/.
@@ -11,11 +15,13 @@ UEFI support in Linux
11===================== 15=====================
12Booting on a platform with firmware compliant with the UEFI specification 16Booting on a platform with firmware compliant with the UEFI specification
13makes it possible for the kernel to support additional features: 17makes it possible for the kernel to support additional features:
18
14- UEFI Runtime Services 19- UEFI Runtime Services
15- Retrieving various configuration information through the standardised 20- Retrieving various configuration information through the standardised
16 interface of UEFI configuration tables. (ACPI, SMBIOS, ...) 21 interface of UEFI configuration tables. (ACPI, SMBIOS, ...)
17 22
18For actually enabling [U]EFI support, enable: 23For actually enabling [U]EFI support, enable:
24
19- CONFIG_EFI=y 25- CONFIG_EFI=y
20- CONFIG_EFI_VARS=y or m 26- CONFIG_EFI_VARS=y or m
21 27
@@ -42,19 +48,20 @@ Instead, the kernel reads the UEFI memory map.
42 48
43The stub populates the FDT /chosen node with (and the kernel scans for) the 49The stub populates the FDT /chosen node with (and the kernel scans for) the
44following parameters: 50following parameters:
45________________________________________________________________________________ 51
46Name | Size | Description 52========================== ====== ===========================================
47================================================================================ 53Name Size Description
48linux,uefi-system-table | 64-bit | Physical address of the UEFI System Table. 54========================== ====== ===========================================
49-------------------------------------------------------------------------------- 55linux,uefi-system-table 64-bit Physical address of the UEFI System Table.
50linux,uefi-mmap-start | 64-bit | Physical address of the UEFI memory map, 56
51 | | populated by the UEFI GetMemoryMap() call. 57linux,uefi-mmap-start 64-bit Physical address of the UEFI memory map,
52-------------------------------------------------------------------------------- 58 populated by the UEFI GetMemoryMap() call.
53linux,uefi-mmap-size | 32-bit | Size in bytes of the UEFI memory map 59
54 | | pointed to in previous entry. 60linux,uefi-mmap-size 32-bit Size in bytes of the UEFI memory map
55-------------------------------------------------------------------------------- 61 pointed to in previous entry.
56linux,uefi-mmap-desc-size | 32-bit | Size in bytes of each entry in the UEFI 62
57 | | memory map. 63linux,uefi-mmap-desc-size 32-bit Size in bytes of each entry in the UEFI
58-------------------------------------------------------------------------------- 64 memory map.
59linux,uefi-mmap-desc-ver | 32-bit | Version of the mmap descriptor format. 65
60-------------------------------------------------------------------------------- 66linux,uefi-mmap-desc-ver 32-bit Version of the mmap descriptor format.
67========================== ====== ===========================================
diff --git a/Documentation/arm/VFP/release-notes.txt b/Documentation/arm/vfp/release-notes.rst
index 28a2795705ca..c6b04937cee3 100644
--- a/Documentation/arm/VFP/release-notes.txt
+++ b/Documentation/arm/vfp/release-notes.rst
@@ -1,7 +1,9 @@
1===============================================
1Release notes for Linux Kernel VFP support code 2Release notes for Linux Kernel VFP support code
2----------------------------------------------- 3===============================================
3 4
4Date: 20 May 2004 5Date: 20 May 2004
6
5Author: Russell King 7Author: Russell King
6 8
7This is the first release of the Linux Kernel VFP support code. It 9This is the first release of the Linux Kernel VFP support code. It
diff --git a/Documentation/arm/vlocks.txt b/Documentation/arm/vlocks.rst
index 45731672c564..a40a1742110b 100644
--- a/Documentation/arm/vlocks.txt
+++ b/Documentation/arm/vlocks.rst
@@ -1,3 +1,4 @@
1======================================
1vlocks for Bare-Metal Mutual Exclusion 2vlocks for Bare-Metal Mutual Exclusion
2====================================== 3======================================
3 4
@@ -26,7 +27,7 @@ started yet.
26Algorithm 27Algorithm
27--------- 28---------
28 29
29The easiest way to explain the vlocks algorithm is with some pseudo-code: 30The easiest way to explain the vlocks algorithm is with some pseudo-code::
30 31
31 32
32 int currently_voting[NR_CPUS] = { 0, }; 33 int currently_voting[NR_CPUS] = { 0, };
@@ -93,7 +94,7 @@ Features and limitations
93 number of CPUs. 94 number of CPUs.
94 95
95 vlocks can be cascaded in a voting hierarchy to permit better scaling 96 vlocks can be cascaded in a voting hierarchy to permit better scaling
96 if necessary, as in the following hypothetical example for 4096 CPUs: 97 if necessary, as in the following hypothetical example for 4096 CPUs::
97 98
98 /* first level: local election */ 99 /* first level: local election */
99 my_town = towns[(this_cpu >> 4) & 0xf]; 100 my_town = towns[(this_cpu >> 4) & 0xf];
@@ -127,12 +128,12 @@ the basic algorithm:
127 reduces the number of round-trips required to external memory. 128 reduces the number of round-trips required to external memory.
128 129
129 In the ARM implementation, this means that we can use a single load 130 In the ARM implementation, this means that we can use a single load
130 and comparison: 131 and comparison::
131 132
132 LDR Rt, [Rn] 133 LDR Rt, [Rn]
133 CMP Rt, #0 134 CMP Rt, #0
134 135
135 ...in place of code equivalent to: 136 ...in place of code equivalent to::
136 137
137 LDRB Rt, [Rn] 138 LDRB Rt, [Rn]
138 CMP Rt, #0 139 CMP Rt, #0
diff --git a/Documentation/devicetree/bindings/arm/xen.txt b/Documentation/devicetree/bindings/arm/xen.txt
index c9b9321434ea..db5c56db30ec 100644
--- a/Documentation/devicetree/bindings/arm/xen.txt
+++ b/Documentation/devicetree/bindings/arm/xen.txt
@@ -54,7 +54,7 @@ hypervisor {
54}; 54};
55 55
56The format and meaning of the "xen,uefi-*" parameters are similar to those in 56The format and meaning of the "xen,uefi-*" parameters are similar to those in
57Documentation/arm/uefi.txt, which are provided by the regular UEFI stub. However 57Documentation/arm/uefi.rst, which are provided by the regular UEFI stub. However
58they differ because they are provided by the Xen hypervisor, together with a set 58they differ because they are provided by the Xen hypervisor, together with a set
59of UEFI runtime services implemented via hypercalls, see 59of UEFI runtime services implemented via hypercalls, see
60http://xenbits.xen.org/docs/unstable/hypercall/x86_64/include,public,platform.h.html. 60http://xenbits.xen.org/docs/unstable/hypercall/x86_64/include,public,platform.h.html.
diff --git a/Documentation/devicetree/booting-without-of.txt b/Documentation/devicetree/booting-without-of.txt
index 60f8640f2b2f..4660ccee35a3 100644
--- a/Documentation/devicetree/booting-without-of.txt
+++ b/Documentation/devicetree/booting-without-of.txt
@@ -160,7 +160,7 @@ it with special cases.
160 of the kernel image. That entry point supports two calling 160 of the kernel image. That entry point supports two calling
161 conventions. A summary of the interface is described here. A full 161 conventions. A summary of the interface is described here. A full
162 description of the boot requirements is documented in 162 description of the boot requirements is documented in
163 Documentation/arm/Booting 163 Documentation/arm/booting.rst
164 164
165 a) ATAGS interface. Minimal information is passed from firmware 165 a) ATAGS interface. Minimal information is passed from firmware
166 to the kernel with a tagged list of predefined parameters. 166 to the kernel with a tagged list of predefined parameters.
@@ -174,7 +174,7 @@ it with special cases.
174 b) Entry with a flattened device-tree block. Firmware loads the 174 b) Entry with a flattened device-tree block. Firmware loads the
175 physical address of the flattened device tree block (dtb) into r2, 175 physical address of the flattened device tree block (dtb) into r2,
176 r1 is not used, but it is considered good practice to use a valid 176 r1 is not used, but it is considered good practice to use a valid
177 machine number as described in Documentation/arm/Booting. 177 machine number as described in Documentation/arm/booting.rst.
178 178
179 r0 : 0 179 r0 : 0
180 180
diff --git a/Documentation/index.rst b/Documentation/index.rst
index 216dc0e1e6f2..c6934d90363c 100644
--- a/Documentation/index.rst
+++ b/Documentation/index.rst
@@ -1,3 +1,4 @@
1
1.. The Linux Kernel documentation master file, created by 2.. The Linux Kernel documentation master file, created by
2 sphinx-quickstart on Fri Feb 12 13:51:46 2016. 3 sphinx-quickstart on Fri Feb 12 13:51:46 2016.
3 You can adapt this file completely to your liking, but it should at least 4 You can adapt this file completely to your liking, but it should at least
diff --git a/Documentation/translations/zh_CN/arm/Booting b/Documentation/translations/zh_CN/arm/Booting
index 1fe866f8218f..562e9a2957e6 100644
--- a/Documentation/translations/zh_CN/arm/Booting
+++ b/Documentation/translations/zh_CN/arm/Booting
@@ -1,4 +1,4 @@
1Chinese translated version of Documentation/arm/Booting 1Chinese translated version of Documentation/arm/booting.rst
2 2
3If you have any comment or update to the content, please contact the 3If you have any comment or update to the content, please contact the
4original document maintainer directly. However, if you have a problem 4original document maintainer directly. However, if you have a problem
@@ -9,7 +9,7 @@ or if there is a problem with the translation.
9Maintainer: Russell King <linux@arm.linux.org.uk> 9Maintainer: Russell King <linux@arm.linux.org.uk>
10Chinese maintainer: Fu Wei <tekkamanninja@gmail.com> 10Chinese maintainer: Fu Wei <tekkamanninja@gmail.com>
11--------------------------------------------------------------------- 11---------------------------------------------------------------------
12Documentation/arm/Booting 的中文翻译 12Documentation/arm/booting.rst 的中文翻译
13 13
14如果想评论或更新本文的内容,请直接联系原文档的维护者。如果你使用英文 14如果想评论或更新本文的内容,请直接联系原文档的维护者。如果你使用英文
15交流有困难的话,也可以向中文版维护者求助。如果本翻译更新不及时或者翻 15交流有困难的话,也可以向中文版维护者求助。如果本翻译更新不及时或者翻
diff --git a/Documentation/translations/zh_CN/arm/kernel_user_helpers.txt b/Documentation/translations/zh_CN/arm/kernel_user_helpers.txt
index cd7fc8f34cf9..99af4363984d 100644
--- a/Documentation/translations/zh_CN/arm/kernel_user_helpers.txt
+++ b/Documentation/translations/zh_CN/arm/kernel_user_helpers.txt
@@ -1,4 +1,4 @@
1Chinese translated version of Documentation/arm/kernel_user_helpers.txt 1Chinese translated version of Documentation/arm/kernel_user_helpers.rst
2 2
3If you have any comment or update to the content, please contact the 3If you have any comment or update to the content, please contact the
4original document maintainer directly. However, if you have a problem 4original document maintainer directly. However, if you have a problem
@@ -10,7 +10,7 @@ Maintainer: Nicolas Pitre <nicolas.pitre@linaro.org>
10 Dave Martin <dave.martin@linaro.org> 10 Dave Martin <dave.martin@linaro.org>
11Chinese maintainer: Fu Wei <tekkamanninja@gmail.com> 11Chinese maintainer: Fu Wei <tekkamanninja@gmail.com>
12--------------------------------------------------------------------- 12---------------------------------------------------------------------
13Documentation/arm/kernel_user_helpers.txt 的中文翻译 13Documentation/arm/kernel_user_helpers.rst 的中文翻译
14 14
15如果想评论或更新本文的内容,请直接联系原文档的维护者。如果你使用英文 15如果想评论或更新本文的内容,请直接联系原文档的维护者。如果你使用英文
16交流有困难的话,也可以向中文版维护者求助。如果本翻译更新不及时或者翻 16交流有困难的话,也可以向中文版维护者求助。如果本翻译更新不及时或者翻
diff --git a/MAINTAINERS b/MAINTAINERS
index 37ba75bae7aa..96c85695b3d4 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -2218,7 +2218,7 @@ F: drivers/*/*s3c64xx*
2218F: drivers/*/*s5pv210* 2218F: drivers/*/*s5pv210*
2219F: drivers/memory/samsung/* 2219F: drivers/memory/samsung/*
2220F: drivers/soc/samsung/* 2220F: drivers/soc/samsung/*
2221F: Documentation/arm/Samsung/ 2221F: Documentation/arm/samsung/
2222F: Documentation/devicetree/bindings/arm/samsung/ 2222F: Documentation/devicetree/bindings/arm/samsung/
2223F: Documentation/devicetree/bindings/sram/samsung-sram.txt 2223F: Documentation/devicetree/bindings/sram/samsung-sram.txt
2224F: Documentation/devicetree/bindings/power/pd-samsung.txt 2224F: Documentation/devicetree/bindings/power/pd-samsung.txt
@@ -11571,7 +11571,7 @@ L: linux-omap@vger.kernel.org
11571L: linux-fbdev@vger.kernel.org 11571L: linux-fbdev@vger.kernel.org
11572S: Orphan 11572S: Orphan
11573F: drivers/video/fbdev/omap2/ 11573F: drivers/video/fbdev/omap2/
11574F: Documentation/arm/OMAP/DSS 11574F: Documentation/arm/omap/dss.rst
11575 11575
11576OMAP FRAMEBUFFER SUPPORT 11576OMAP FRAMEBUFFER SUPPORT
11577L: linux-fbdev@vger.kernel.org 11577L: linux-fbdev@vger.kernel.org
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 2bf1ce39a96d..6425871e9903 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -2142,7 +2142,7 @@ config VFP
2142 Say Y to include VFP support code in the kernel. This is needed 2142 Say Y to include VFP support code in the kernel. This is needed
2143 if your hardware includes a VFP unit. 2143 if your hardware includes a VFP unit.
2144 2144
2145 Please see <file:Documentation/arm/VFP/release-notes.txt> for 2145 Please see <file:Documentation/arm/vfp/release-notes.rst> for
2146 release notes and additional status information. 2146 release notes and additional status information.
2147 2147
2148 Say N if your target does not have VFP hardware. 2148 Say N if your target does not have VFP hardware.
diff --git a/arch/arm/common/mcpm_entry.c b/arch/arm/common/mcpm_entry.c
index e24ad60891b2..8a9aeeb504dd 100644
--- a/arch/arm/common/mcpm_entry.c
+++ b/arch/arm/common/mcpm_entry.c
@@ -21,7 +21,7 @@
21/* 21/*
22 * The public API for this code is documented in arch/arm/include/asm/mcpm.h. 22 * The public API for this code is documented in arch/arm/include/asm/mcpm.h.
23 * For a comprehensive description of the main algorithm used here, please 23 * For a comprehensive description of the main algorithm used here, please
24 * see Documentation/arm/cluster-pm-race-avoidance.txt. 24 * see Documentation/arm/cluster-pm-race-avoidance.rst.
25 */ 25 */
26 26
27struct sync_struct mcpm_sync; 27struct sync_struct mcpm_sync;
diff --git a/arch/arm/common/mcpm_head.S b/arch/arm/common/mcpm_head.S
index d5bd75dd576d..291d969bc719 100644
--- a/arch/arm/common/mcpm_head.S
+++ b/arch/arm/common/mcpm_head.S
@@ -5,7 +5,7 @@
5 * Created by: Nicolas Pitre, March 2012 5 * Created by: Nicolas Pitre, March 2012
6 * Copyright: (C) 2012-2013 Linaro Limited 6 * Copyright: (C) 2012-2013 Linaro Limited
7 * 7 *
8 * Refer to Documentation/arm/cluster-pm-race-avoidance.txt 8 * Refer to Documentation/arm/cluster-pm-race-avoidance.rst
9 * for details of the synchronisation algorithms used here. 9 * for details of the synchronisation algorithms used here.
10 */ 10 */
11 11
diff --git a/arch/arm/common/vlock.S b/arch/arm/common/vlock.S
index 9675cc15d0c4..f1c7fd44f1b1 100644
--- a/arch/arm/common/vlock.S
+++ b/arch/arm/common/vlock.S
@@ -6,7 +6,7 @@
6 * Copyright: (C) 2012-2013 Linaro Limited 6 * Copyright: (C) 2012-2013 Linaro Limited
7 * 7 *
8 * This algorithm is described in more detail in 8 * This algorithm is described in more detail in
9 * Documentation/arm/vlocks.txt. 9 * Documentation/arm/vlocks.rst.
10 */ 10 */
11 11
12#include <linux/linkage.h> 12#include <linux/linkage.h>
diff --git a/arch/arm/include/asm/setup.h b/arch/arm/include/asm/setup.h
index 77e5582c2259..67d20712cb48 100644
--- a/arch/arm/include/asm/setup.h
+++ b/arch/arm/include/asm/setup.h
@@ -5,7 +5,7 @@
5 * Copyright (C) 1997-1999 Russell King 5 * Copyright (C) 1997-1999 Russell King
6 * 6 *
7 * Structure passed to kernel to tell it about the 7 * Structure passed to kernel to tell it about the
8 * hardware it's running on. See Documentation/arm/Setup 8 * hardware it's running on. See Documentation/arm/setup.rst
9 * for more info. 9 * for more info.
10 */ 10 */
11#ifndef __ASMARM_SETUP_H 11#ifndef __ASMARM_SETUP_H
diff --git a/arch/arm/include/uapi/asm/setup.h b/arch/arm/include/uapi/asm/setup.h
index 6b335a9ff8c8..25ceda63b284 100644
--- a/arch/arm/include/uapi/asm/setup.h
+++ b/arch/arm/include/uapi/asm/setup.h
@@ -9,7 +9,7 @@
9 * published by the Free Software Foundation. 9 * published by the Free Software Foundation.
10 * 10 *
11 * Structure passed to kernel to tell it about the 11 * Structure passed to kernel to tell it about the
12 * hardware it's running on. See Documentation/arm/Setup 12 * hardware it's running on. See Documentation/arm/setup.rst
13 * for more info. 13 * for more info.
14 */ 14 */
15#ifndef _UAPI__ASMARM_SETUP_H 15#ifndef _UAPI__ASMARM_SETUP_H
diff --git a/arch/arm/kernel/entry-armv.S b/arch/arm/kernel/entry-armv.S
index 0b8cfdd60b90..858d4e541532 100644
--- a/arch/arm/kernel/entry-armv.S
+++ b/arch/arm/kernel/entry-armv.S
@@ -826,7 +826,7 @@ ENDPROC(__switch_to)
826 * existing ones. This mechanism should be used only for things that are 826 * existing ones. This mechanism should be used only for things that are
827 * really small and justified, and not be abused freely. 827 * really small and justified, and not be abused freely.
828 * 828 *
829 * See Documentation/arm/kernel_user_helpers.txt for formal definitions. 829 * See Documentation/arm/kernel_user_helpers.rst for formal definitions.
830 */ 830 */
831 THUMB( .arm ) 831 THUMB( .arm )
832 832
diff --git a/arch/arm/mach-exynos/common.h b/arch/arm/mach-exynos/common.h
index c93356a8d662..56411bb63d45 100644
--- a/arch/arm/mach-exynos/common.h
+++ b/arch/arm/mach-exynos/common.h
@@ -106,7 +106,7 @@ void exynos_firmware_init(void);
106#define C2_STATE (1 << 3) 106#define C2_STATE (1 << 3)
107/* 107/*
108 * Magic values for bootloader indicating chosen low power mode. 108 * Magic values for bootloader indicating chosen low power mode.
109 * See also Documentation/arm/Samsung/Bootloader-interface.txt 109 * See also Documentation/arm/samsung/bootloader-interface.rst
110 */ 110 */
111#define EXYNOS_SLEEP_MAGIC 0x00000bad 111#define EXYNOS_SLEEP_MAGIC 0x00000bad
112#define EXYNOS_AFTR_MAGIC 0xfcba0d10 112#define EXYNOS_AFTR_MAGIC 0xfcba0d10
diff --git a/arch/arm/mach-ixp4xx/Kconfig b/arch/arm/mach-ixp4xx/Kconfig
index fc5378b00f3d..f7211b57b1e7 100644
--- a/arch/arm/mach-ixp4xx/Kconfig
+++ b/arch/arm/mach-ixp4xx/Kconfig
@@ -33,7 +33,7 @@ config MACH_AVILA
33 help 33 help
34 Say 'Y' here if you want your kernel to support the Gateworks 34 Say 'Y' here if you want your kernel to support the Gateworks
35 Avila Network Platform. For more information on this platform, 35 Avila Network Platform. For more information on this platform,
36 see <file:Documentation/arm/IXP4xx>. 36 see <file:Documentation/arm/ixp4xx.rst>.
37 37
38config MACH_LOFT 38config MACH_LOFT
39 bool "Loft" 39 bool "Loft"
@@ -49,7 +49,7 @@ config ARCH_ADI_COYOTE
49 help 49 help
50 Say 'Y' here if you want your kernel to support the ADI 50 Say 'Y' here if you want your kernel to support the ADI
51 Engineering Coyote Gateway Reference Platform. For more 51 Engineering Coyote Gateway Reference Platform. For more
52 information on this platform, see <file:Documentation/arm/IXP4xx>. 52 information on this platform, see <file:Documentation/arm/ixp4xx.rst>.
53 53
54config MACH_GATEWAY7001 54config MACH_GATEWAY7001
55 bool "Gateway 7001" 55 bool "Gateway 7001"
@@ -72,21 +72,21 @@ config ARCH_IXDP425
72 help 72 help
73 Say 'Y' here if you want your kernel to support Intel's 73 Say 'Y' here if you want your kernel to support Intel's
74 IXDP425 Development Platform (Also known as Richfield). 74 IXDP425 Development Platform (Also known as Richfield).
75 For more information on this platform, see <file:Documentation/arm/IXP4xx>. 75 For more information on this platform, see <file:Documentation/arm/ixp4xx.rst>.
76 76
77config MACH_IXDPG425 77config MACH_IXDPG425
78 bool "IXDPG425" 78 bool "IXDPG425"
79 help 79 help
80 Say 'Y' here if you want your kernel to support Intel's 80 Say 'Y' here if you want your kernel to support Intel's
81 IXDPG425 Development Platform (Also known as Montajade). 81 IXDPG425 Development Platform (Also known as Montajade).
82 For more information on this platform, see <file:Documentation/arm/IXP4xx>. 82 For more information on this platform, see <file:Documentation/arm/ixp4xx.rst>.
83 83
84config MACH_IXDP465 84config MACH_IXDP465
85 bool "IXDP465" 85 bool "IXDP465"
86 help 86 help
87 Say 'Y' here if you want your kernel to support Intel's 87 Say 'Y' here if you want your kernel to support Intel's
88 IXDP465 Development Platform (Also known as BMP). 88 IXDP465 Development Platform (Also known as BMP).
89 For more information on this platform, see <file:Documentation/arm/IXP4xx>. 89 For more information on this platform, see <file:Documentation/arm/ixp4xx.rst>.
90 90
91config MACH_GORAMO_MLR 91config MACH_GORAMO_MLR
92 bool "GORAMO Multi Link Router" 92 bool "GORAMO Multi Link Router"
@@ -99,7 +99,7 @@ config MACH_KIXRP435
99 help 99 help
100 Say 'Y' here if you want your kernel to support Intel's 100 Say 'Y' here if you want your kernel to support Intel's
101 KIXRP435 Reference Platform. 101 KIXRP435 Reference Platform.
102 For more information on this platform, see <file:Documentation/arm/IXP4xx>. 102 For more information on this platform, see <file:Documentation/arm/ixp4xx.rst>.
103 103
104# 104#
105# IXCDP1100 is the exact same HW as IXDP425, but with a different machine 105# IXCDP1100 is the exact same HW as IXDP425, but with a different machine
@@ -116,7 +116,7 @@ config ARCH_PRPMC1100
116 help 116 help
117 Say 'Y' here if you want your kernel to support the Motorola 117 Say 'Y' here if you want your kernel to support the Motorola
118 PrPCM1100 Processor Mezanine Module. For more information on 118 PrPCM1100 Processor Mezanine Module. For more information on
119 this platform, see <file:Documentation/arm/IXP4xx>. 119 this platform, see <file:Documentation/arm/ixp4xx.rst>.
120 120
121config MACH_NAS100D 121config MACH_NAS100D
122 bool 122 bool
diff --git a/arch/arm/mach-s3c24xx/pm.c b/arch/arm/mach-s3c24xx/pm.c
index adcb90645460..c64988c609ad 100644
--- a/arch/arm/mach-s3c24xx/pm.c
+++ b/arch/arm/mach-s3c24xx/pm.c
@@ -5,7 +5,7 @@
5// 5//
6// S3C24XX Power Manager (Suspend-To-RAM) support 6// S3C24XX Power Manager (Suspend-To-RAM) support
7// 7//
8// See Documentation/arm/Samsung-S3C24XX/Suspend.txt for more information 8// See Documentation/arm/samsung-s3c24xx/suspend.rst for more information
9// 9//
10// Parts based on arch/arm/mach-pxa/pm.c 10// Parts based on arch/arm/mach-pxa/pm.c
11// 11//
diff --git a/arch/arm/mm/Kconfig b/arch/arm/mm/Kconfig
index cc798115aa9b..820b60a50125 100644
--- a/arch/arm/mm/Kconfig
+++ b/arch/arm/mm/Kconfig
@@ -709,7 +709,7 @@ config ARM_VIRT_EXT
709 assistance. 709 assistance.
710 710
711 A compliant bootloader is required in order to make maximum 711 A compliant bootloader is required in order to make maximum
712 use of this feature. Refer to Documentation/arm/Booting for 712 use of this feature. Refer to Documentation/arm/booting.rst for
713 details. 713 details.
714 714
715config SWP_EMULATE 715config SWP_EMULATE
@@ -875,7 +875,7 @@ config KUSER_HELPERS
875 the CPU type fitted to the system. This permits binaries to be 875 the CPU type fitted to the system. This permits binaries to be
876 run on ARMv4 through to ARMv7 without modification. 876 run on ARMv4 through to ARMv7 without modification.
877 877
878 See Documentation/arm/kernel_user_helpers.txt for details. 878 See Documentation/arm/kernel_user_helpers.rst for details.
879 879
880 However, the fixed address nature of these helpers can be used 880 However, the fixed address nature of these helpers can be used
881 by ROP (return orientated programming) authors when creating 881 by ROP (return orientated programming) authors when creating
diff --git a/arch/arm/plat-samsung/Kconfig b/arch/arm/plat-samsung/Kconfig
index 53da57fba39c..301e572651c0 100644
--- a/arch/arm/plat-samsung/Kconfig
+++ b/arch/arm/plat-samsung/Kconfig
@@ -243,7 +243,7 @@ config SAMSUNG_PM_DEBUG
243 depends on DEBUG_EXYNOS_UART || DEBUG_S3C24XX_UART || DEBUG_S3C2410_UART 243 depends on DEBUG_EXYNOS_UART || DEBUG_S3C24XX_UART || DEBUG_S3C2410_UART
244 help 244 help
245 Say Y here if you want verbose debugging from the PM Suspend and 245 Say Y here if you want verbose debugging from the PM Suspend and
246 Resume code. See <file:Documentation/arm/Samsung-S3C24XX/Suspend.txt> 246 Resume code. See <file:Documentation/arm/samsung-s3c24xx/suspend.rst>
247 for more information. 247 for more information.
248 248
249config S3C_PM_DEBUG_LED_SMDK 249config S3C_PM_DEBUG_LED_SMDK
@@ -268,7 +268,7 @@ config SAMSUNG_PM_CHECK
268 Note, this can take several seconds depending on memory size 268 Note, this can take several seconds depending on memory size
269 and CPU speed. 269 and CPU speed.
270 270
271 See <file:Documentation/arm/Samsung-S3C24XX/Suspend.txt> 271 See <file:Documentation/arm/samsung-s3c24xx/suspend.rst>
272 272
273config SAMSUNG_PM_CHECK_CHUNKSIZE 273config SAMSUNG_PM_CHECK_CHUNKSIZE
274 int "S3C2410 PM Suspend CRC Chunksize (KiB)" 274 int "S3C2410 PM Suspend CRC Chunksize (KiB)"
@@ -280,7 +280,7 @@ config SAMSUNG_PM_CHECK_CHUNKSIZE
280 the CRC data block will take more memory, but will identify any 280 the CRC data block will take more memory, but will identify any
281 faults with better precision. 281 faults with better precision.
282 282
283 See <file:Documentation/arm/Samsung-S3C24XX/Suspend.txt> 283 See <file:Documentation/arm/samsung-s3c24xx/suspend.rst>
284 284
285config SAMSUNG_WAKEMASK 285config SAMSUNG_WAKEMASK
286 bool 286 bool
diff --git a/arch/arm/tools/mach-types b/arch/arm/tools/mach-types
index 4eac94c1eb6f..9e74c7ff6b04 100644
--- a/arch/arm/tools/mach-types
+++ b/arch/arm/tools/mach-types
@@ -7,7 +7,7 @@
7# http://www.arm.linux.org.uk/developer/machines/download.php 7# http://www.arm.linux.org.uk/developer/machines/download.php
8# 8#
9# Please do not send patches to this file; it is automatically generated! 9# Please do not send patches to this file; it is automatically generated!
10# To add an entry into this database, please see Documentation/arm/README, 10# To add an entry into this database, please see Documentation/arm/arm.rst,
11# or visit: 11# or visit:
12# 12#
13# http://www.arm.linux.org.uk/developer/machines/?action=new 13# http://www.arm.linux.org.uk/developer/machines/?action=new
diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
index a36ff61321ce..a4b22bbf0590 100644
--- a/arch/arm64/Kconfig
+++ b/arch/arm64/Kconfig
@@ -1142,7 +1142,7 @@ config KUSER_HELPERS
1142 the system. This permits binaries to be run on ARMv4 through 1142 the system. This permits binaries to be run on ARMv4 through
1143 to ARMv8 without modification. 1143 to ARMv8 without modification.
1144 1144
1145 See Documentation/arm/kernel_user_helpers.txt for details. 1145 See Documentation/arm/kernel_user_helpers.rst for details.
1146 1146
1147 However, the fixed address nature of these helpers can be used 1147 However, the fixed address nature of these helpers can be used
1148 by ROP (return orientated programming) authors when creating 1148 by ROP (return orientated programming) authors when creating
diff --git a/arch/arm64/kernel/kuser32.S b/arch/arm64/kernel/kuser32.S
index 49825e9e421e..42bd8c0c60e0 100644
--- a/arch/arm64/kernel/kuser32.S
+++ b/arch/arm64/kernel/kuser32.S
@@ -10,7 +10,7 @@
10 * aarch32_setup_additional_pages() and are provided for compatibility 10 * aarch32_setup_additional_pages() and are provided for compatibility
11 * reasons with 32 bit (aarch32) applications that need them. 11 * reasons with 32 bit (aarch32) applications that need them.
12 * 12 *
13 * See Documentation/arm/kernel_user_helpers.txt for formal definitions. 13 * See Documentation/arm/kernel_user_helpers.rst for formal definitions.
14 */ 14 */
15 15
16#include <asm/unistd.h> 16#include <asm/unistd.h>
diff --git a/arch/mips/bmips/setup.c b/arch/mips/bmips/setup.c
index 1738a06396f9..2f81a94c71a6 100644
--- a/arch/mips/bmips/setup.c
+++ b/arch/mips/bmips/setup.c
@@ -162,7 +162,7 @@ void __init plat_mem_setup(void)
162 ioport_resource.start = 0; 162 ioport_resource.start = 0;
163 ioport_resource.end = ~0; 163 ioport_resource.end = ~0;
164 164
165 /* intended to somewhat resemble ARM; see Documentation/arm/Booting */ 165 /* intended to somewhat resemble ARM; see Documentation/arm/booting.rst */
166 if (fw_arg0 == 0 && fw_arg1 == 0xffffffff) 166 if (fw_arg0 == 0 && fw_arg1 == 0xffffffff)
167 dtb = phys_to_virt(fw_arg2); 167 dtb = phys_to_virt(fw_arg2);
168 else if (fw_passed_dtb) /* UHI interface or appended dtb */ 168 else if (fw_passed_dtb) /* UHI interface or appended dtb */
diff --git a/drivers/crypto/sunxi-ss/sun4i-ss-cipher.c b/drivers/crypto/sunxi-ss/sun4i-ss-cipher.c
index 4ab14d58e85b..6f7cbf6c2b55 100644
--- a/drivers/crypto/sunxi-ss/sun4i-ss-cipher.c
+++ b/drivers/crypto/sunxi-ss/sun4i-ss-cipher.c
@@ -8,7 +8,7 @@
8 * keysize in CBC and ECB mode. 8 * keysize in CBC and ECB mode.
9 * Add support also for DES and 3DES in CBC and ECB mode. 9 * Add support also for DES and 3DES in CBC and ECB mode.
10 * 10 *
11 * You could find the datasheet in Documentation/arm/sunxi/README 11 * You could find the datasheet in Documentation/arm/sunxi.rst
12 */ 12 */
13#include "sun4i-ss.h" 13#include "sun4i-ss.h"
14 14
diff --git a/drivers/crypto/sunxi-ss/sun4i-ss-core.c b/drivers/crypto/sunxi-ss/sun4i-ss-core.c
index cdcda7f059c8..2e8704271f45 100644
--- a/drivers/crypto/sunxi-ss/sun4i-ss-core.c
+++ b/drivers/crypto/sunxi-ss/sun4i-ss-core.c
@@ -6,7 +6,7 @@
6 * 6 *
7 * Core file which registers crypto algorithms supported by the SS. 7 * Core file which registers crypto algorithms supported by the SS.
8 * 8 *
9 * You could find a link for the datasheet in Documentation/arm/sunxi/README 9 * You could find a link for the datasheet in Documentation/arm/sunxi.rst
10 */ 10 */
11#include <linux/clk.h> 11#include <linux/clk.h>
12#include <linux/crypto.h> 12#include <linux/crypto.h>
diff --git a/drivers/crypto/sunxi-ss/sun4i-ss-hash.c b/drivers/crypto/sunxi-ss/sun4i-ss-hash.c
index d2b6d89aad28..fcffba5ef927 100644
--- a/drivers/crypto/sunxi-ss/sun4i-ss-hash.c
+++ b/drivers/crypto/sunxi-ss/sun4i-ss-hash.c
@@ -6,7 +6,7 @@
6 * 6 *
7 * This file add support for MD5 and SHA1. 7 * This file add support for MD5 and SHA1.
8 * 8 *
9 * You could find the datasheet in Documentation/arm/sunxi/README 9 * You could find the datasheet in Documentation/arm/sunxi.rst
10 */ 10 */
11#include "sun4i-ss.h" 11#include "sun4i-ss.h"
12#include <linux/scatterlist.h> 12#include <linux/scatterlist.h>
diff --git a/drivers/crypto/sunxi-ss/sun4i-ss.h b/drivers/crypto/sunxi-ss/sun4i-ss.h
index 68b82d1a6303..8654d48aedc0 100644
--- a/drivers/crypto/sunxi-ss/sun4i-ss.h
+++ b/drivers/crypto/sunxi-ss/sun4i-ss.h
@@ -8,7 +8,7 @@
8 * Support MD5 and SHA1 hash algorithms. 8 * Support MD5 and SHA1 hash algorithms.
9 * Support DES and 3DES 9 * Support DES and 3DES
10 * 10 *
11 * You could find the datasheet in Documentation/arm/sunxi/README 11 * You could find the datasheet in Documentation/arm/sunxi.rst
12 */ 12 */
13 13
14#include <linux/clk.h> 14#include <linux/clk.h>
diff --git a/drivers/input/touchscreen/sun4i-ts.c b/drivers/input/touchscreen/sun4i-ts.c
index 92f6e1ae23a2..f11ba7f2dca7 100644
--- a/drivers/input/touchscreen/sun4i-ts.c
+++ b/drivers/input/touchscreen/sun4i-ts.c
@@ -22,7 +22,7 @@
22 * in the kernel). So this driver offers straight forward, reliable single 22 * in the kernel). So this driver offers straight forward, reliable single
23 * touch functionality only. 23 * touch functionality only.
24 * 24 *
25 * s.a. A20 User Manual "1.15 TP" (Documentation/arm/sunxi/README) 25 * s.a. A20 User Manual "1.15 TP" (Documentation/arm/sunxi.rst)
26 * (looks like the description in the A20 User Manual v1.3 is better 26 * (looks like the description in the A20 User Manual v1.3 is better
27 * than the one in the A10 User Manual v.1.5) 27 * than the one in the A10 User Manual v.1.5)
28 */ 28 */
diff --git a/drivers/tty/serial/Kconfig b/drivers/tty/serial/Kconfig
index b416c7b33f49..04c23951b831 100644
--- a/drivers/tty/serial/Kconfig
+++ b/drivers/tty/serial/Kconfig
@@ -500,7 +500,7 @@ config SERIAL_SA1100
500 help 500 help
501 If you have a machine based on a SA1100/SA1110 StrongARM(R) CPU you 501 If you have a machine based on a SA1100/SA1110 StrongARM(R) CPU you
502 can enable its onboard serial port by enabling this option. 502 can enable its onboard serial port by enabling this option.
503 Please read <file:Documentation/arm/SA1100/serial_UART> for further 503 Please read <file:Documentation/arm/sa1100/serial_uart.rst> for further
504 info. 504 info.
505 505
506config SERIAL_SA1100_CONSOLE 506config SERIAL_SA1100_CONSOLE