Training courses

Kernel and Embedded Linux

Bootlin training courses

Embedded Linux, kernel,
Yocto Project, Buildroot, real-time,
graphics, boot time, debugging...

Bootlin logo

Elixir Cross Referencer

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
# SPDX-License-Identifier: GPL-2.0-only
menu "Mapping drivers for chip access"
	depends on CONFIG_MTD!=n
	depends on CONFIG_HAS_IOMEM

config CONFIG_MTD_COMPLEX_MAPPINGS
	bool "Support non-linear mappings of flash chips"
	help
	  This causes the chip drivers to allow for complicated
	  paged mappings of flash chips.

config CONFIG_MTD_PHYSMAP
	tristate "Flash device in physical memory map"
	depends on CONFIG_MTD_CFI || CONFIG_MTD_JEDECPROBE || CONFIG_MTD_ROM || CONFIG_MTD_RAM || CONFIG_MTD_LPDDR
	help
	  This provides a 'mapping' driver which allows the NOR Flash and
	  CONFIG_ROM driver code to communicate with chips which are mapped
	  physically into the CPU's memory. You will need to configure
	  the physical address and size of the flash chips on your
	  particular board as well as the bus width, either statically
	  with config options or at run-time.

	  To compile this driver as a module, choose CONFIG_M here: the
	  module will be called physmap.

config CONFIG_MTD_PHYSMAP_COMPAT
	bool "Physmap compat support"
	depends on CONFIG_MTD_PHYSMAP
	default n
	help
	  Setup a simple mapping via the Kconfig options.  Normally the
	  physmap configuration options are done via your board's
	  resource file.

	  If unsure, say N here.

config CONFIG_MTD_PHYSMAP_START
	hex "Physical start address of flash mapping"
	depends on CONFIG_MTD_PHYSMAP_COMPAT
	default "0x8000000"
	help
	  This is the physical memory location at which the flash chips
	  are mapped on your particular target board. Refer to the
	  memory map which should hopefully be in the documentation for
	  your board.

config CONFIG_MTD_PHYSMAP_LEN
	hex "Physical length of flash mapping"
	depends on CONFIG_MTD_PHYSMAP_COMPAT
	default "0"
	help
	  This is the total length of the mapping of the flash chips on
	  your particular board. If there is space, or aliases, in the
	  physical memory map between the chips, this could be larger
	  than the total amount of flash present. Refer to the memory
	  map which should hopefully be in the documentation for your
	  board.

config CONFIG_MTD_PHYSMAP_BANKWIDTH
	int "Bank width in octets"
	depends on CONFIG_MTD_PHYSMAP_COMPAT
	default "2"
	help
	  This is the total width of the data bus of the flash devices
	  in octets. For example, if you have a data bus width of 32
	  bits, you would set the bus width octet value to 4. This is
	  used internally by the CFI drivers.

config CONFIG_MTD_PHYSMAP_OF
	bool "Memory device in physical memory map based on OF description"
	depends on CONFIG_OF && CONFIG_MTD_PHYSMAP
	help
	  This provides a 'mapping' driver which allows the NOR Flash, CONFIG_ROM
	  and RAM driver code to communicate with chips which are mapped
	  physically into the CPU's memory. The mapping description here is
	  taken from CONFIG_OF device tree.

config CONFIG_MTD_PHYSMAP_VERSATILE
	bool "ARM Versatile OF-based physical memory map handling"
	depends on CONFIG_MTD_PHYSMAP_OF
	depends on CONFIG_MFD_SYSCON
	default y if (CONFIG_ARCH_INTEGRATOR || CONFIG_ARCH_VERSATILE || CONFIG_ARCH_REALVIEW)
	help
	  This provides some extra DT physmap parsing for the CONFIG_ARM Versatile
	  platforms, basically to add a VPP (write protection) callback so
	  the flash can be taken out of write protection.

config CONFIG_MTD_PHYSMAP_GEMINI
	bool "Cortina Gemini OF-based physical memory map handling"
	depends on CONFIG_MTD_PHYSMAP_OF
	depends on CONFIG_MFD_SYSCON
	select CONFIG_MTD_COMPLEX_MAPPINGS
	default CONFIG_ARCH_GEMINI
	help
	  This provides some extra DT physmap parsing for the Gemini
	  platforms, some detection and setting up parallel mode on the
	  external interface.

config CONFIG_MTD_PHYSMAP_GPIO_ADDR
	bool "GPIO-assisted Flash Chip Support"
	depends on CONFIG_MTD_PHYSMAP
	depends on CONFIG_GPIOLIB || CONFIG_COMPILE_TEST
	depends on CONFIG_MTD_COMPLEX_MAPPINGS
	help
	  Extend the physmap driver to allow flashes to be partially
	  physically addressed and assisted by GPIOs.

config CONFIG_MTD_PMC_MSP_EVM
	tristate "CFI Flash device mapped on PMC-Sierra MSP"
	depends on CONFIG_PMC_MSP && CONFIG_MTD_CFI
	help
	  This provides a 'mapping' driver which supports the way
	  in which user-programmable flash chips are connected on the
	  PMC-Sierra MSP eval/demo boards.

choice
	prompt "Maximum mappable memory available for flash IO"
	depends on CONFIG_MTD_PMC_MSP_EVM
	default CONFIG_MSP_FLASH_MAP_LIMIT_32M

config CONFIG_MSP_FLASH_MAP_LIMIT_32M
	bool "32M"

endchoice

config CONFIG_MSP_FLASH_MAP_LIMIT
	hex
	default "0x02000000"
	depends on CONFIG_MSP_FLASH_MAP_LIMIT_32M

config CONFIG_MTD_SUN_UFLASH
	tristate "Sun Microsystems userflash support"
	depends on CONFIG_SPARC && CONFIG_MTD_CFI && CONFIG_PCI
	help
	  This provides a 'mapping' driver which supports the way in
	  which user-programmable flash chips are connected on various
	  Sun Microsystems boardsets.  This driver will require CFI support
	  in the kernel, so if you did not enable CFI previously, do that now.

config CONFIG_MTD_SC520CDP
	tristate "CFI Flash device mapped on AMD SC520 CDP"
	depends on (CONFIG_MELAN || CONFIG_COMPILE_TEST) && CONFIG_MTD_CFI
	help
	  The SC520 CDP board has two banks of CFI-compliant chips and one
	  Dual-in-line JEDEC chip. This 'mapping' driver supports that
	  arrangement, implementing three CONFIG_MTD devices.

config CONFIG_MTD_NETSC520
	tristate "CFI Flash device mapped on AMD NetSc520"
	depends on (CONFIG_MELAN || CONFIG_COMPILE_TEST) && CONFIG_MTD_CFI
	help
	  This enables access routines for the flash chips on the AMD NetSc520
	  demonstration board. If you have one of these boards and would like
	  to use the flash chips on it, say 'Y'.

config CONFIG_MTD_TS5500
	tristate "JEDEC Flash device mapped on Technologic Systems TS-5500"
	depends on CONFIG_TS5500 || CONFIG_COMPILE_TEST
	select CONFIG_MTD_JEDECPROBE
	select CONFIG_MTD_CFI_AMDSTD
	help
	  This provides a driver for the on-board flash of the Technologic
	  System's TS-5500 board. The 2MB flash is split into 3 partitions
	  which are accessed as separate CONFIG_MTD devices.

	  mtd0 and mtd2 are the two BIOS drives, which use the resident
	  flash disk (RFD) flash translation layer.

	  mtd1 allows you to reprogram your BIOS. BE VERY CAREFUL.

	  Note that jumper 3 ("Write Enable Drive A") must be set
	  otherwise detection won't succeed.

config CONFIG_MTD_SBC_GXX
	tristate "CFI Flash device mapped on Arcom SBC-GXx boards"
	depends on CONFIG_X86 && CONFIG_MTD_CFI_INTELEXT && CONFIG_MTD_COMPLEX_MAPPINGS
	help
	  This provides a driver for the on-board flash of Arcom Control
	  Systems' SBC-GXn family of boards, formerly known as SBC-MediaGX.
	  By default the flash is split into 3 partitions which are accessed
	  as separate CONFIG_MTD devices. This board utilizes Intel StrataFlash.
	  More info at
	  <http://www.arcomcontrols.com/products/icp/pc104/processors/SBC_GX1.htm>.

config CONFIG_MTD_PXA2XX
	tristate "CFI Flash device mapped on Intel XScale PXA2xx based boards"
	depends on (CONFIG_PXA25x || CONFIG_PXA27x) && CONFIG_MTD_CFI_INTELEXT
	help
	  This provides a driver for the NOR flash attached to a PXA2xx chip.

config CONFIG_MTD_SCx200_DOCFLASH
	tristate "Flash device mapped with DOCCS on NatSemi SCx200"
	depends on CONFIG_SCx200 && CONFIG_MTD_CFI
	help
	  Enable support for a flash chip mapped using the DOCCS signal on a
	  National Semiconductor CONFIG_SCx200 processor.

	  If you don't know what to do here, say N.

	  If compiled as a module, it will be called scx200_docflash.

config CONFIG_MTD_AMD76XROM
	tristate "BIOS flash chip on AMD76x southbridge"
	depends on CONFIG_X86 && CONFIG_MTD_JEDECPROBE
	help
	  Support for treating the BIOS flash chip on AMD76x motherboards
	  as an CONFIG_MTD device - with this you can reprogram your BIOS.

	  BE VERY CAREFUL.

config CONFIG_MTD_ICHXROM
	tristate "BIOS flash chip on Intel Controller Hub 2/3/4/5"
	depends on CONFIG_X86 && CONFIG_MTD_JEDECPROBE
	help
	  Support for treating the BIOS flash chip on ICHX motherboards
	  as an CONFIG_MTD device - with this you can reprogram your BIOS.

	  BE VERY CAREFUL.

config CONFIG_MTD_ESB2ROM
	tristate "BIOS flash chip on Intel ESB Controller Hub 2"
	depends on CONFIG_X86 && CONFIG_MTD_JEDECPROBE && CONFIG_PCI
	help
	  Support for treating the BIOS flash chip on ESB2 motherboards
	  as an CONFIG_MTD device - with this you can reprogram your BIOS.

	  BE VERY CAREFUL.

config CONFIG_MTD_CK804XROM
	tristate "BIOS flash chip on Nvidia CK804"
	depends on CONFIG_X86 && CONFIG_MTD_JEDECPROBE && CONFIG_PCI
	help
	  Support for treating the BIOS flash chip on nvidia motherboards
	  as an CONFIG_MTD device - with this you can reprogram your BIOS.

	  BE VERY CAREFUL.

config CONFIG_MTD_SCB2_FLASH
	tristate "BIOS flash chip on Intel SCB2 boards"
	depends on CONFIG_X86 && CONFIG_MTD_JEDECPROBE && CONFIG_PCI
	help
	  Support for treating the BIOS flash chip on Intel SCB2 boards
	  as an CONFIG_MTD device - with this you can reprogram your BIOS.

	  BE VERY CAREFUL.

config CONFIG_MTD_TSUNAMI
	tristate "Flash chips on Tsunami TIG bus"
	depends on CONFIG_ALPHA_TSUNAMI && CONFIG_MTD_COMPLEX_MAPPINGS
	help
	  Support for the flash chip on Tsunami TIG bus.

config CONFIG_MTD_NETtel
	tristate "CFI flash device on SnapGear/SecureEdge"
	depends on CONFIG_X86 && CONFIG_MTD_JEDECPROBE
	help
	  Support for flash chips on CONFIG_NETtel/SecureEdge/SnapGear boards.

config CONFIG_MTD_LANTIQ
	tristate "Lantiq SoC NOR support"
	depends on CONFIG_LANTIQ
	help
	  Support for NOR flash attached to the Lantiq SoC's External Bus Unit.

config CONFIG_MTD_L440GX
	tristate "BIOS flash chip on Intel L440GX boards"
	depends on CONFIG_X86 && CONFIG_MTD_JEDECPROBE
	help
	  Support for treating the BIOS flash chip on Intel L440GX motherboards
	  as an CONFIG_MTD device - with this you can reprogram your BIOS.

	  BE VERY CAREFUL.

config CONFIG_MTD_CFI_FLAGADM
	tristate "CFI Flash device mapping on FlagaDM"
	depends on CONFIG_PPC_8xx && CONFIG_MTD_CFI
	help
	  Mapping for the Flaga digital module. If you don't have one, ignore
	  this setting.

config CONFIG_MTD_SOLUTIONENGINE
	tristate "CFI Flash device mapped on Hitachi SolutionEngine"
	depends on CONFIG_SOLUTION_ENGINE && CONFIG_MTD_CFI && CONFIG_MTD_REDBOOT_PARTS
	help
	  This enables access to the flash chips on the Hitachi SolutionEngine and
	  similar boards. Say 'Y' if you are building a kernel for such a board.

config CONFIG_MTD_SA1100
	tristate "CFI Flash device mapped on StrongARM SA11x0"
	depends on CONFIG_MTD_CFI && CONFIG_ARCH_SA1100
	help
	  This enables access to the flash chips on most platforms based on
	  the SA1100 and SA1110, including the Assabet and the Compaq iPAQ.
	  If you have such a board, say 'Y'.

config CONFIG_MTD_DC21285
	tristate "CFI Flash device mapped on DC21285 Footbridge"
	depends on CONFIG_MTD_CFI && CONFIG_ARCH_FOOTBRIDGE && CONFIG_MTD_COMPLEX_MAPPINGS
	help
	  This provides a driver for the flash accessed using Intel's
	  21285 bridge used with Intel's StrongARM processors. More info at
	  <http://www.intel.com/design/bridge/docs/21285_documentation.htm>.

config CONFIG_MTD_IXP4XX
	tristate "CFI Flash device mapped on Intel IXP4xx based systems"
	depends on CONFIG_MTD_CFI && CONFIG_MTD_COMPLEX_MAPPINGS && CONFIG_ARCH_IXP4XX
	help
	  This enables CONFIG_MTD access to flash devices on platforms based
	  on Intel's IXP4xx family of network processors such as the
	  IXDP425 and Coyote. If you have an IXP4xx based board and
	  would like to use the flash chips on it, say 'Y'.

config CONFIG_MTD_IMPA7
	tristate "JEDEC Flash device mapped on impA7"
	depends on CONFIG_ARM && CONFIG_MTD_JEDECPROBE
	help
	  This enables access to the NOR Flash on the impA7 board of
	  implementa GmbH. If you have such a board, say 'Y' here.

# This needs CFI or JEDEC, depending on the cards found.
config CONFIG_MTD_PCI
	tristate "PCI MTD driver"
	depends on CONFIG_PCI && CONFIG_MTD_COMPLEX_MAPPINGS
	help
	  Mapping for accessing flash devices on add-in cards like the Intel XScale
	  IQ80310 card, and the Intel EBSA285 card in blank CONFIG_ROM programming mode
	  (please see the manual for the link settings).

	  If you are not sure, say N.

config CONFIG_MTD_PCMCIA
	tristate "PCMCIA MTD driver"
	depends on CONFIG_PCMCIA && CONFIG_MTD_COMPLEX_MAPPINGS
	help
	  Map driver for accessing CONFIG_PCMCIA linear flash memory cards. These
	  cards are usually around 4-16MiB in size. This does not include
	  Compact Flash cards which are treated as CONFIG_IDE devices.

config CONFIG_MTD_PCMCIA_ANONYMOUS
	bool "Use PCMCIA MTD drivers for anonymous PCMCIA cards"
	depends on CONFIG_MTD_PCMCIA
	help
	  If this option is enabled, CONFIG_PCMCIA cards which do not report
	  anything about themselves are assumed to be CONFIG_MTD cards.

	  If unsure, say N.

config CONFIG_MTD_UCLINUX
	bool "Generic uClinux RAM/ROM filesystem support"
	depends on (CONFIG_MTD_RAM=y || CONFIG_MTD_ROM=y) && (!CONFIG_MMU || CONFIG_COLDFIRE)
	help
	  Map driver to support image based filesystems for uClinux.

config CONFIG_MTD_INTEL_VR_NOR
	tristate "NOR flash on Intel Vermilion Range Expansion Bus CS0"
	depends on CONFIG_PCI
	help
	  Map driver for a NOR flash bank located on the Expansion Bus of the
	  Intel Vermilion Range chipset.

config CONFIG_MTD_RBTX4939
	tristate "Map driver for RBTX4939 board"
	depends on CONFIG_TOSHIBA_RBTX4939 && CONFIG_MTD_CFI && CONFIG_MTD_COMPLEX_MAPPINGS
	help
	  Map driver for NOR flash chips on RBTX4939 board.

config CONFIG_MTD_PLATRAM
	tristate "Map driver for platform device RAM (mtd-ram)"
	select CONFIG_MTD_RAM
	help
	  Map driver for RAM areas described via the platform device
	  system.

	  This selection automatically selects the map_ram driver.

config CONFIG_MTD_VMU
	tristate "Map driver for Dreamcast VMU"
	depends on CONFIG_MAPLE
	help
	  This driver enables access to the Dreamcast Visual Memory Unit (VMU).

	  Most Dreamcast users will want to say Y here.

	  To build this as a module select CONFIG_M here, the module will be called
	  vmu-flash.

config CONFIG_MTD_PISMO
	tristate "MTD discovery driver for PISMO modules"
	depends on CONFIG_I2C
	depends on CONFIG_ARCH_VERSATILE
	help
	  This driver allows for discovery of PISMO modules - see
	  <http://www.pismoworld.org/>.  These are small modules containing
	  up to five memory devices (eg, CONFIG_SRAM, flash, DOC) described by an
	  CONFIG_I2C EEPROM.

	  This driver does not create any CONFIG_MTD maps itself; instead it
	  creates CONFIG_MTD physmap and CONFIG_MTD CONFIG_SRAM platform devices.  If you
	  enable this option, you should consider enabling CONFIG_MTD_PHYSMAP
	  and/or CONFIG_MTD_PLATRAM according to the devices on your module.

	  When built as a module, it will be called pismo.ko

endmenu