aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/arm
diff options
context:
space:
mode:
authorRussell King <rmk+kernel@arm.linux.org.uk>2012-10-11 05:55:04 -0400
committerRussell King <rmk+kernel@arm.linux.org.uk>2012-10-11 05:55:04 -0400
commita0f0dd57f4a85310d9936f1770a0424b49fef876 (patch)
tree2f85b8b67dda13d19b02ca39e0fbef921cb1cf8b /Documentation/arm
parent2a552d5e63d7fa602c9a9a0717008737f55625a6 (diff)
parent846a136881b8f73c1f74250bf6acfaa309cab1f2 (diff)
Merge branch 'fixes' into for-linus
Conflicts: arch/arm/kernel/smp.c
Diffstat (limited to 'Documentation/arm')
-rw-r--r--Documentation/arm/Marvell/README232
-rw-r--r--Documentation/arm/Samsung-S3C24XX/GPIO.txt82
-rw-r--r--Documentation/arm/Samsung/GPIO.txt8
-rw-r--r--Documentation/arm/memory.txt3
4 files changed, 263 insertions, 62 deletions
diff --git a/Documentation/arm/Marvell/README b/Documentation/arm/Marvell/README
new file mode 100644
index 000000000000..8f08a86e03b7
--- /dev/null
+++ b/Documentation/arm/Marvell/README
@@ -0,0 +1,232 @@
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 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 ARMv5 compatible
56 Linux kernel mach directory: arch/arm/mach-kirkwood
57 Linux kernel plat directory: arch/arm/plat-orion
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 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
87 Armada XP Flavors:
88 MV78230
89 MV78260
90 MV78460
91
92 Product Brief: http://www.marvell.com/embedded-processors/armada-xp/assets/Marvell-ArmadaXP-SoC-product%20brief.pdf
93 No public datasheet available.
94
95 Core: Sheeva ARMv7 compatible
96
97 Linux kernel mach directory: arch/arm/mach-mvebu
98 Linux kernel plat directory: none
99
100Avanta family
101-------------
102
103 Flavors:
104 88F6510
105 88F6530P
106 88F6550
107 88F6560
108 Homepage : http://www.marvell.com/broadband/
109 Product Brief: http://www.marvell.com/broadband/assets/Marvell_Avanta_88F6510_305_060-001_product_brief.pdf
110 No public datasheet available.
111
112 Core: ARMv5 compatible
113
114 Linux kernel mach directory: no code in mainline yet, planned for the future
115 Linux kernel plat directory: no code in mainline yet, planned for the future
116
117Dove family (application processor)
118-----------------------------------
119
120 Flavors:
121 88AP510 a.k.a Armada 510
122 Product Brief : http://www.marvell.com/application-processors/armada-500/assets/Marvell_Armada510_SoC.pdf
123 Hardware Spec : http://www.marvell.com/application-processors/armada-500/assets/Armada-510-Hardware-Spec.pdf
124 Functional Spec : http://www.marvell.com/application-processors/armada-500/assets/Armada-510-Functional-Spec.pdf
125 Homepage: http://www.marvell.com/application-processors/armada-500/
126 Core: ARMv7 compatible
127 Directory: arch/arm/mach-dove
128
129PXA 2xx/3xx/93x/95x family
130--------------------------
131
132 Flavors:
133 PXA21x, PXA25x, PXA26x
134 Application processor only
135 Core: ARMv5 XScale core
136 PXA270, PXA271, PXA272
137 Product Brief : http://www.marvell.com/application-processors/pxa-family/assets/pxa_27x_pb.pdf
138 Design guide : http://www.marvell.com/application-processors/pxa-family/assets/pxa_27x_design_guide.pdf
139 Developers manual : http://www.marvell.com/application-processors/pxa-family/assets/pxa_27x_dev_man.pdf
140 Specification : http://www.marvell.com/application-processors/pxa-family/assets/pxa_27x_emts.pdf
141 Specification update : http://www.marvell.com/application-processors/pxa-family/assets/pxa_27x_spec_update.pdf
142 Application processor only
143 Core: ARMv5 XScale core
144 PXA300, PXA310, PXA320
145 PXA 300 Product Brief : http://www.marvell.com/application-processors/pxa-family/assets/PXA300_PB_R4.pdf
146 PXA 310 Product Brief : http://www.marvell.com/application-processors/pxa-family/assets/PXA310_PB_R4.pdf
147 PXA 320 Product Brief : http://www.marvell.com/application-processors/pxa-family/assets/PXA320_PB_R4.pdf
148 Design guide : http://www.marvell.com/application-processors/pxa-family/assets/PXA3xx_Design_Guide.pdf
149 Developers manual : http://www.marvell.com/application-processors/pxa-family/assets/PXA3xx_Developers_Manual.zip
150 Specifications : http://www.marvell.com/application-processors/pxa-family/assets/PXA3xx_EMTS.pdf
151 Specification Update : http://www.marvell.com/application-processors/pxa-family/assets/PXA3xx_Spec_Update.zip
152 Reference Manual : http://www.marvell.com/application-processors/pxa-family/assets/PXA3xx_TavorP_BootROM_Ref_Manual.pdf
153 Application processor only
154 Core: ARMv5 XScale core
155 PXA930, PXA935
156 Application processor with Communication processor
157 Core: ARMv5 XScale core
158 PXA955
159 Application processor with Communication processor
160 Core: ARMv7 compatible Sheeva PJ4 core
161
162 Comments:
163
164 * This line of SoCs originates from the XScale family developed by
165 Intel and acquired by Marvell in ~2006. The PXA21x, PXA25x,
166 PXA26x, PXA27x, PXA3xx and PXA93x were developed by Intel, while
167 the later PXA95x were developed by Marvell.
168
169 * Due to their XScale origin, these SoCs have virtually nothing in
170 common with the other (Kirkwood, Dove, etc.) families of Marvell
171 SoCs, except with the MMP/MMP2 family of SoCs.
172
173 Linux kernel mach directory: arch/arm/mach-pxa
174 Linux kernel plat directory: arch/arm/plat-pxa
175
176MMP/MMP2 family (communication processor)
177-----------------------------------------
178
179 Flavors:
180 PXA168, a.k.a Armada 168
181 Homepage : http://www.marvell.com/application-processors/armada-100/armada-168.jsp
182 Product brief : http://www.marvell.com/application-processors/armada-100/assets/pxa_168_pb.pdf
183 Hardware manual : http://www.marvell.com/application-processors/armada-100/assets/armada_16x_datasheet.pdf
184 Software manual : http://www.marvell.com/application-processors/armada-100/assets/armada_16x_software_manual.pdf
185 Specification update : http://www.marvell.com/application-processors/armada-100/assets/ARMADA16x_Spec_update.pdf
186 Boot ROM manual : http://www.marvell.com/application-processors/armada-100/assets/armada_16x_ref_manual.pdf
187 App node package : http://www.marvell.com/application-processors/armada-100/assets/armada_16x_app_note_package.pdf
188 Application processor only
189 Core: ARMv5 compatible Marvell PJ1 (Mohawk)
190 PXA910
191 Homepage : http://www.marvell.com/communication-processors/pxa910/
192 Product Brief : http://www.marvell.com/communication-processors/pxa910/assets/Marvell_PXA910_Platform-001_PB_final.pdf
193 Application processor with Communication processor
194 Core: ARMv5 compatible Marvell PJ1 (Mohawk)
195 MMP2, a.k.a Armada 610
196 Product Brief : http://www.marvell.com/application-processors/armada-600/assets/armada610_pb.pdf
197 Application processor only
198 Core: ARMv7 compatible Sheeva PJ4 core
199
200 Comments:
201
202 * This line of SoCs originates from the XScale family developed by
203 Intel and acquired by Marvell in ~2006. All the processors of
204 this MMP/MMP2 family were developed by Marvell.
205
206 * Due to their XScale origin, these SoCs have virtually nothing in
207 common with the other (Kirkwood, Dove, etc.) families of Marvell
208 SoCs, except with the PXA family of SoCs listed above.
209
210 Linux kernel mach directory: arch/arm/mach-mmp
211 Linux kernel plat directory: arch/arm/plat-pxa
212
213Long-term plans
214---------------
215
216 * Unify the mach-dove/, mach-mv78xx0/, mach-orion5x/ and
217 mach-kirkwood/ into the mach-mvebu/ to support all SoCs from the
218 Marvell EBU (Engineering Business Unit) in a single mach-<foo>
219 directory. The plat-orion/ would therefore disappear.
220
221 * Unify the mach-mmp/ and mach-pxa/ into the same mach-pxa
222 directory. The plat-pxa/ would therefore disappear.
223
224Credits
225-------
226
227 Maen Suleiman <maen@marvell.com>
228 Lior Amsalem <alior@marvell.com>
229 Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
230 Andrew Lunn <andrew@lunn.ch>
231 Nicolas Pitre <nico@fluxnic.net>
232 Eric Miao <eric.y.miao@gmail.com>
diff --git a/Documentation/arm/Samsung-S3C24XX/GPIO.txt b/Documentation/arm/Samsung-S3C24XX/GPIO.txt
index 816d6071669e..8b46c79679c4 100644
--- a/Documentation/arm/Samsung-S3C24XX/GPIO.txt
+++ b/Documentation/arm/Samsung-S3C24XX/GPIO.txt
@@ -1,4 +1,4 @@
1 S3C2410 GPIO Control 1 S3C24XX GPIO Control
2 ==================== 2 ====================
3 3
4Introduction 4Introduction
@@ -12,7 +12,7 @@ Introduction
12 of the s3c2410 GPIO system, please read the Samsung provided 12 of the s3c2410 GPIO system, please read the Samsung provided
13 data-sheet/users manual to find out the complete list. 13 data-sheet/users manual to find out the complete list.
14 14
15 See Documentation/arm/Samsung/GPIO.txt for the core implemetation. 15 See Documentation/arm/Samsung/GPIO.txt for the core implementation.
16 16
17 17
18GPIOLIB 18GPIOLIB
@@ -41,8 +41,8 @@ GPIOLIB
41GPIOLIB conversion 41GPIOLIB conversion
42------------------ 42------------------
43 43
44If you need to convert your board or driver to use gpiolib from the exiting 44If you need to convert your board or driver to use gpiolib from the phased
45s3c2410 api, then here are some notes on the process. 45out s3c2410 API, then here are some notes on the process.
46 46
471) If your board is exclusively using an GPIO, say to control peripheral 471) If your board is exclusively using an GPIO, say to control peripheral
48 power, then it will require to claim the gpio with gpio_request() before 48 power, then it will require to claim the gpio with gpio_request() before
@@ -55,7 +55,7 @@ s3c2410 api, then here are some notes on the process.
55 as they have the same arguments, and can either take the pin specific 55 as they have the same arguments, and can either take the pin specific
56 values, or the more generic special-function-number arguments. 56 values, or the more generic special-function-number arguments.
57 57
583) s3c2410_gpio_pullup() changs have the problem that whilst the 583) s3c2410_gpio_pullup() changes have the problem that whilst the
59 s3c2410_gpio_pullup(x, 1) can be easily translated to the 59 s3c2410_gpio_pullup(x, 1) can be easily translated to the
60 s3c_gpio_setpull(x, S3C_GPIO_PULL_NONE), the s3c2410_gpio_pullup(x, 0) 60 s3c_gpio_setpull(x, S3C_GPIO_PULL_NONE), the s3c2410_gpio_pullup(x, 0)
61 are not so easy. 61 are not so easy.
@@ -74,7 +74,7 @@ s3c2410 api, then here are some notes on the process.
74 when using gpio_get_value() on an output pin (s3c2410_gpio_getpin 74 when using gpio_get_value() on an output pin (s3c2410_gpio_getpin
75 would return the value the pin is supposed to be outputting). 75 would return the value the pin is supposed to be outputting).
76 76
776) s3c2410_gpio_getirq() should be directly replacable with the 776) s3c2410_gpio_getirq() should be directly replaceable with the
78 gpio_to_irq() call. 78 gpio_to_irq() call.
79 79
80The s3c2410_gpio and gpio_ calls have always operated on the same gpio 80The s3c2410_gpio and gpio_ calls have always operated on the same gpio
@@ -105,7 +105,7 @@ PIN Numbers
105----------- 105-----------
106 106
107 Each pin has an unique number associated with it in regs-gpio.h, 107 Each pin has an unique number associated with it in regs-gpio.h,
108 eg S3C2410_GPA(0) or S3C2410_GPF(1). These defines are used to tell 108 e.g. S3C2410_GPA(0) or S3C2410_GPF(1). These defines are used to tell
109 the GPIO functions which pin is to be used. 109 the GPIO functions which pin is to be used.
110 110
111 With the conversion to gpiolib, there is no longer a direct conversion 111 With the conversion to gpiolib, there is no longer a direct conversion
@@ -120,31 +120,27 @@ Configuring a pin
120 The following function allows the configuration of a given pin to 120 The following function allows the configuration of a given pin to
121 be changed. 121 be changed.
122 122
123 void s3c2410_gpio_cfgpin(unsigned int pin, unsigned int function); 123 void s3c_gpio_cfgpin(unsigned int pin, unsigned int function);
124 124
125 Eg: 125 e.g.:
126 126
127 s3c2410_gpio_cfgpin(S3C2410_GPA(0), S3C2410_GPA0_ADDR0); 127 s3c_gpio_cfgpin(S3C2410_GPA(0), S3C_GPIO_SFN(1));
128 s3c2410_gpio_cfgpin(S3C2410_GPE(8), S3C2410_GPE8_SDDAT1); 128 s3c_gpio_cfgpin(S3C2410_GPE(8), S3C_GPIO_SFN(2));
129 129
130 which would turn GPA(0) into the lowest Address line A0, and set 130 which would turn GPA(0) into the lowest Address line A0, and set
131 GPE(8) to be connected to the SDIO/MMC controller's SDDAT1 line. 131 GPE(8) to be connected to the SDIO/MMC controller's SDDAT1 line.
132 132
133 The s3c_gpio_cfgpin() call is a functional replacement for this call.
134
135 133
136Reading the current configuration 134Reading the current configuration
137--------------------------------- 135---------------------------------
138 136
139 The current configuration of a pin can be read by using: 137 The current configuration of a pin can be read by using standard
138 gpiolib function:
140 139
141 s3c2410_gpio_getcfg(unsigned int pin); 140 s3c_gpio_getcfg(unsigned int pin);
142 141
143 The return value will be from the same set of values which can be 142 The return value will be from the same set of values which can be
144 passed to s3c2410_gpio_cfgpin(). 143 passed to s3c_gpio_cfgpin().
145
146 The s3c_gpio_getcfg() call should be a functional replacement for
147 this call.
148 144
149 145
150Configuring a pull-up resistor 146Configuring a pull-up resistor
@@ -154,61 +150,33 @@ Configuring a pull-up resistor
154 pull-up resistors enabled. This can be configured by the following 150 pull-up resistors enabled. This can be configured by the following
155 function: 151 function:
156 152
157 void s3c2410_gpio_pullup(unsigned int pin, unsigned int to); 153 void s3c_gpio_setpull(unsigned int pin, unsigned int to);
158
159 Where the to value is zero to set the pull-up off, and 1 to enable
160 the specified pull-up. Any other values are currently undefined.
161
162 The s3c_gpio_setpull() offers similar functionality, but with the
163 ability to encode whether the pull is up or down. Currently there
164 is no 'just on' state, so up or down must be selected.
165
166
167Getting the state of a PIN
168--------------------------
169
170 The state of a pin can be read by using the function:
171
172 unsigned int s3c2410_gpio_getpin(unsigned int pin);
173 154
174 This will return either zero or non-zero. Do not count on this 155 Where the to value is S3C_GPIO_PULL_NONE to set the pull-up off,
175 function returning 1 if the pin is set. 156 and S3C_GPIO_PULL_UP to enable the specified pull-up. Any other
157 values are currently undefined.
176 158
177 This call is now implemented by the relevant gpiolib calls, convert
178 your board or driver to use gpiolib.
179
180
181Setting the state of a PIN
182--------------------------
183
184 The value an pin is outputing can be modified by using the following:
185 159
186 void s3c2410_gpio_setpin(unsigned int pin, unsigned int to); 160Getting and setting the state of a PIN
161--------------------------------------
187 162
188 Which sets the given pin to the value. Use 0 to write 0, and 1 to 163 These calls are now implemented by the relevant gpiolib calls, convert
189 set the output to 1.
190
191 This call is now implemented by the relevant gpiolib calls, convert
192 your board or driver to use gpiolib. 164 your board or driver to use gpiolib.
193 165
194 166
195Getting the IRQ number associated with a PIN 167Getting the IRQ number associated with a PIN
196-------------------------------------------- 168--------------------------------------------
197 169
198 The following function can map the given pin number to an IRQ 170 A standard gpiolib function can map the given pin number to an IRQ
199 number to pass to the IRQ system. 171 number to pass to the IRQ system.
200 172
201 int s3c2410_gpio_getirq(unsigned int pin); 173 int gpio_to_irq(unsigned int pin);
202 174
203 Note, not all pins have an IRQ. 175 Note, not all pins have an IRQ.
204 176
205 This call is now implemented by the relevant gpiolib calls, convert
206 your board or driver to use gpiolib.
207
208 177
209Authour 178Author
210------- 179-------
211 180
212
213Ben Dooks, 03 October 2004 181Ben Dooks, 03 October 2004
214Copyright 2004 Ben Dooks, Simtec Electronics 182Copyright 2004 Ben Dooks, Simtec Electronics
diff --git a/Documentation/arm/Samsung/GPIO.txt b/Documentation/arm/Samsung/GPIO.txt
index 513f2562c1a3..795adfd88081 100644
--- a/Documentation/arm/Samsung/GPIO.txt
+++ b/Documentation/arm/Samsung/GPIO.txt
@@ -5,14 +5,14 @@ Introduction
5------------ 5------------
6 6
7This outlines the Samsung GPIO implementation and the architecture 7This outlines the Samsung GPIO implementation and the architecture
8specific calls provided alongisde the drivers/gpio core. 8specific calls provided alongside the drivers/gpio core.
9 9
10 10
11S3C24XX (Legacy) 11S3C24XX (Legacy)
12---------------- 12----------------
13 13
14See Documentation/arm/Samsung-S3C24XX/GPIO.txt for more information 14See Documentation/arm/Samsung-S3C24XX/GPIO.txt for more information
15about these devices. Their implementation is being brought into line 15about these devices. Their implementation has been brought into line
16with the core samsung implementation described in this document. 16with the core samsung implementation described in this document.
17 17
18 18
@@ -29,7 +29,7 @@ GPIO numbering is synchronised between the Samsung and gpiolib system.
29PIN configuration 29PIN configuration
30----------------- 30-----------------
31 31
32Pin configuration is specific to the Samsung architecutre, with each SoC 32Pin configuration is specific to the Samsung architecture, with each SoC
33registering the necessary information for the core gpio configuration 33registering the necessary information for the core gpio configuration
34implementation to configure pins as necessary. 34implementation to configure pins as necessary.
35 35
@@ -38,5 +38,3 @@ driver or machine to change gpio configuration.
38 38
39See arch/arm/plat-samsung/include/plat/gpio-cfg.h for more information 39See arch/arm/plat-samsung/include/plat/gpio-cfg.h for more information
40on these functions. 40on these functions.
41
42
diff --git a/Documentation/arm/memory.txt b/Documentation/arm/memory.txt
index 208a2d465b92..4bfb9ffbdbc1 100644
--- a/Documentation/arm/memory.txt
+++ b/Documentation/arm/memory.txt
@@ -51,6 +51,9 @@ ffc00000 ffefffff DMA memory mapping region. Memory returned
51ff000000 ffbfffff Reserved for future expansion of DMA 51ff000000 ffbfffff Reserved for future expansion of DMA
52 mapping region. 52 mapping region.
53 53
54fee00000 feffffff Mapping of PCI I/O space. This is a static
55 mapping within the vmalloc space.
56
54VMALLOC_START VMALLOC_END-1 vmalloc() / ioremap() space. 57VMALLOC_START VMALLOC_END-1 vmalloc() / ioremap() space.
55 Memory returned by vmalloc/ioremap will 58 Memory returned by vmalloc/ioremap will
56 be dynamically placed in this region. 59 be dynamically placed in this region.