blob: aa907ced8a0a3484acdf9458acdc99816822f87c [file] [log] [blame]
wdenkc6097192002-11-03 00:24:07 +00001#
Wolfgang Denkeca3aeb2013-06-21 10:22:36 +02002# (C) Copyright 2000 - 2013
wdenkc6097192002-11-03 00:24:07 +00003# Wolfgang Denk, DENX Software Engineering, wd@denx.de.
4#
Wolfgang Denkeca3aeb2013-06-21 10:22:36 +02005# SPDX-License-Identifier: GPL-2.0+
wdenkc6097192002-11-03 00:24:07 +00006#
7
8Summary:
9========
10
wdenk24ee89b2002-11-03 17:56:27 +000011This directory contains the source code for U-Boot, a boot loader for
wdenke86e5a02004-10-17 21:12:06 +000012Embedded boards based on PowerPC, ARM, MIPS and several other
13processors, which can be installed in a boot ROM and used to
14initialize and test the hardware or to download and run application
15code.
wdenkc6097192002-11-03 00:24:07 +000016
17The development of U-Boot is closely related to Linux: some parts of
wdenk24ee89b2002-11-03 17:56:27 +000018the source code originate in the Linux source tree, we have some
19header files in common, and special provision has been made to
wdenkc6097192002-11-03 00:24:07 +000020support booting of Linux images.
21
22Some attention has been paid to make this software easily
23configurable and extendable. For instance, all monitor commands are
24implemented with the same call interface, so that it's very easy to
25add new commands. Also, instead of permanently adding rarely used
26code (for instance hardware test utilities) to the monitor, you can
27load and run it dynamically.
28
29
30Status:
31=======
32
33In general, all boards for which a configuration option exists in the
wdenk24ee89b2002-11-03 17:56:27 +000034Makefile have been tested to some extent and can be considered
wdenkc6097192002-11-03 00:24:07 +000035"working". In fact, many of them are used in production systems.
36
Robert P. J. Day7207b362015-12-19 07:16:10 -050037In case of problems see the CHANGELOG file to find out who contributed
38the specific port. In addition, there are various MAINTAINERS files
39scattered throughout the U-Boot source identifying the people or
40companies responsible for various boards and subsystems.
wdenkc6097192002-11-03 00:24:07 +000041
Robert P. J. Day7207b362015-12-19 07:16:10 -050042Note: As of August, 2010, there is no longer a CHANGELOG file in the
43actual U-Boot source tree; however, it can be created dynamically
44from the Git log using:
Robert P. J. Dayadb9d852012-11-14 02:03:20 +000045
46 make CHANGELOG
47
wdenkc6097192002-11-03 00:24:07 +000048
49Where to get help:
50==================
51
wdenk24ee89b2002-11-03 17:56:27 +000052In case you have questions about, problems with or contributions for
Robert P. J. Day7207b362015-12-19 07:16:10 -050053U-Boot, you should send a message to the U-Boot mailing list at
Peter Tyser0c325652008-09-10 09:18:34 -050054<u-boot@lists.denx.de>. There is also an archive of previous traffic
55on the mailing list - please search the archive before asking FAQ's.
56Please see http://lists.denx.de/pipermail/u-boot and
57http://dir.gmane.org/gmane.comp.boot-loaders.u-boot
wdenkc6097192002-11-03 00:24:07 +000058
59
Wolfgang Denk218ca722008-03-26 10:40:12 +010060Where to get source code:
61=========================
62
Robert P. J. Day7207b362015-12-19 07:16:10 -050063The U-Boot source code is maintained in the Git repository at
Wolfgang Denk218ca722008-03-26 10:40:12 +010064git://www.denx.de/git/u-boot.git ; you can browse it online at
65http://www.denx.de/cgi-bin/gitweb.cgi?p=u-boot.git;a=summary
66
67The "snapshot" links on this page allow you to download tarballs of
Marcel Ziswiler11ccc332008-07-09 08:17:15 +020068any version you might be interested in. Official releases are also
Wolfgang Denk218ca722008-03-26 10:40:12 +010069available for FTP download from the ftp://ftp.denx.de/pub/u-boot/
70directory.
71
Anatolij Gustschind4ee7112008-03-26 18:13:33 +010072Pre-built (and tested) images are available from
Wolfgang Denk218ca722008-03-26 10:40:12 +010073ftp://ftp.denx.de/pub/u-boot/images/
74
75
wdenkc6097192002-11-03 00:24:07 +000076Where we come from:
77===================
78
79- start from 8xxrom sources
wdenk24ee89b2002-11-03 17:56:27 +000080- create PPCBoot project (http://sourceforge.net/projects/ppcboot)
wdenkc6097192002-11-03 00:24:07 +000081- clean up code
82- make it easier to add custom boards
83- make it possible to add other [PowerPC] CPUs
84- extend functions, especially:
85 * Provide extended interface to Linux boot loader
86 * S-Record download
87 * network boot
Marcel Ziswiler11ccc332008-07-09 08:17:15 +020088 * PCMCIA / CompactFlash / ATA disk / SCSI ... boot
wdenk24ee89b2002-11-03 17:56:27 +000089- create ARMBoot project (http://sourceforge.net/projects/armboot)
wdenkc6097192002-11-03 00:24:07 +000090- add other CPU families (starting with ARM)
wdenk24ee89b2002-11-03 17:56:27 +000091- create U-Boot project (http://sourceforge.net/projects/u-boot)
Magnus Lilja0d28f342008-08-06 19:32:33 +020092- current project page: see http://www.denx.de/wiki/U-Boot
wdenk24ee89b2002-11-03 17:56:27 +000093
94
95Names and Spelling:
96===================
97
98The "official" name of this project is "Das U-Boot". The spelling
99"U-Boot" shall be used in all written text (documentation, comments
100in source files etc.). Example:
101
102 This is the README file for the U-Boot project.
103
104File names etc. shall be based on the string "u-boot". Examples:
105
106 include/asm-ppc/u-boot.h
107
108 #include <asm/u-boot.h>
109
110Variable names, preprocessor constants etc. shall be either based on
111the string "u_boot" or on "U_BOOT". Example:
112
113 U_BOOT_VERSION u_boot_logo
114 IH_OS_U_BOOT u_boot_hush_start
wdenkc6097192002-11-03 00:24:07 +0000115
116
wdenk93f19cc2002-12-17 17:55:09 +0000117Versioning:
118===========
119
Thomas Weber360d8832010-09-28 08:06:25 +0200120Starting with the release in October 2008, the names of the releases
121were changed from numerical release numbers without deeper meaning
122into a time stamp based numbering. Regular releases are identified by
123names consisting of the calendar year and month of the release date.
124Additional fields (if present) indicate release candidates or bug fix
125releases in "stable" maintenance trees.
wdenk93f19cc2002-12-17 17:55:09 +0000126
Thomas Weber360d8832010-09-28 08:06:25 +0200127Examples:
Wolfgang Denkc0f40852011-10-26 10:21:21 +0000128 U-Boot v2009.11 - Release November 2009
Thomas Weber360d8832010-09-28 08:06:25 +0200129 U-Boot v2009.11.1 - Release 1 in version November 2009 stable tree
Jelle van der Waa0de21ec2016-10-30 17:30:30 +0100130 U-Boot v2010.09-rc1 - Release candidate 1 for September 2010 release
wdenk93f19cc2002-12-17 17:55:09 +0000131
132
wdenkc6097192002-11-03 00:24:07 +0000133Directory Hierarchy:
134====================
135
Peter Tyser8d321b82010-04-12 22:28:21 -0500136/arch Architecture specific files
Masahiro Yamada6eae68e2014-03-07 18:02:02 +0900137 /arc Files generic to ARC architecture
Peter Tyser8d321b82010-04-12 22:28:21 -0500138 /arm Files generic to ARM architecture
Peter Tyser8d321b82010-04-12 22:28:21 -0500139 /avr32 Files generic to AVR32 architecture
Peter Tyser8d321b82010-04-12 22:28:21 -0500140 /blackfin Files generic to Analog Devices Blackfin architecture
Peter Tyser8d321b82010-04-12 22:28:21 -0500141 /m68k Files generic to m68k architecture
Peter Tyser8d321b82010-04-12 22:28:21 -0500142 /microblaze Files generic to microblaze architecture
Peter Tyser8d321b82010-04-12 22:28:21 -0500143 /mips Files generic to MIPS architecture
Macpaul Linafc1ce82011-10-19 20:41:11 +0000144 /nds32 Files generic to NDS32 architecture
Peter Tyser8d321b82010-04-12 22:28:21 -0500145 /nios2 Files generic to Altera NIOS2 architecture
Robert P. J. Day33c77312013-09-15 18:34:15 -0400146 /openrisc Files generic to OpenRISC architecture
Stefan Roesea47a12b2010-04-15 16:07:28 +0200147 /powerpc Files generic to PowerPC architecture
Robert P. J. Day7207b362015-12-19 07:16:10 -0500148 /sandbox Files generic to HW-independent "sandbox"
Peter Tyser8d321b82010-04-12 22:28:21 -0500149 /sh Files generic to SH architecture
Peter Tyser8d321b82010-04-12 22:28:21 -0500150 /sparc Files generic to SPARC architecture
Robert P. J. Day33c77312013-09-15 18:34:15 -0400151 /x86 Files generic to x86 architecture
Peter Tyser8d321b82010-04-12 22:28:21 -0500152/api Machine/arch independent API for external apps
153/board Board dependent files
Xu Ziyuan740f7e52016-08-26 19:54:49 +0800154/cmd U-Boot commands functions
Peter Tyser8d321b82010-04-12 22:28:21 -0500155/common Misc architecture independent functions
Robert P. J. Day7207b362015-12-19 07:16:10 -0500156/configs Board default configuration files
Peter Tyser8d321b82010-04-12 22:28:21 -0500157/disk Code for disk drive partition handling
158/doc Documentation (don't expect too much)
159/drivers Commonly used device drivers
Robert P. J. Day33c77312013-09-15 18:34:15 -0400160/dts Contains Makefile for building internal U-Boot fdt.
Peter Tyser8d321b82010-04-12 22:28:21 -0500161/examples Example code for standalone applications, etc.
162/fs Filesystem code (cramfs, ext2, jffs2, etc.)
163/include Header Files
Robert P. J. Day7207b362015-12-19 07:16:10 -0500164/lib Library routines generic to all architectures
165/Licenses Various license files
Peter Tyser8d321b82010-04-12 22:28:21 -0500166/net Networking code
167/post Power On Self Test
Robert P. J. Day7207b362015-12-19 07:16:10 -0500168/scripts Various build scripts and Makefiles
169/test Various unit test files
Peter Tyser8d321b82010-04-12 22:28:21 -0500170/tools Tools to build S-Record or U-Boot images, etc.
wdenkc6097192002-11-03 00:24:07 +0000171
wdenkc6097192002-11-03 00:24:07 +0000172Software Configuration:
173=======================
174
175Configuration is usually done using C preprocessor defines; the
176rationale behind that is to avoid dead code whenever possible.
177
178There are two classes of configuration variables:
179
180* Configuration _OPTIONS_:
181 These are selectable by the user and have names beginning with
182 "CONFIG_".
183
184* Configuration _SETTINGS_:
185 These depend on the hardware etc. and should not be meddled with if
186 you don't know what you're doing; they have names beginning with
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +0200187 "CONFIG_SYS_".
wdenkc6097192002-11-03 00:24:07 +0000188
Robert P. J. Day7207b362015-12-19 07:16:10 -0500189Previously, all configuration was done by hand, which involved creating
190symbolic links and editing configuration files manually. More recently,
191U-Boot has added the Kbuild infrastructure used by the Linux kernel,
192allowing you to use the "make menuconfig" command to configure your
193build.
wdenkc6097192002-11-03 00:24:07 +0000194
195
196Selection of Processor Architecture and Board Type:
197---------------------------------------------------
198
199For all supported boards there are ready-to-use default
Holger Freytherab584d62014-08-04 09:26:05 +0200200configurations available; just type "make <board_name>_defconfig".
wdenkc6097192002-11-03 00:24:07 +0000201
202Example: For a TQM823L module type:
203
204 cd u-boot
Holger Freytherab584d62014-08-04 09:26:05 +0200205 make TQM823L_defconfig
wdenkc6097192002-11-03 00:24:07 +0000206
Robert P. J. Day7207b362015-12-19 07:16:10 -0500207Note: If you're looking for the default configuration file for a board
208you're sure used to be there but is now missing, check the file
209doc/README.scrapyard for a list of no longer supported boards.
wdenkc6097192002-11-03 00:24:07 +0000210
Simon Glass75b3c3a2014-03-22 17:12:59 -0600211Sandbox Environment:
212--------------------
213
214U-Boot can be built natively to run on a Linux host using the 'sandbox'
215board. This allows feature development which is not board- or architecture-
216specific to be undertaken on a native platform. The sandbox is also used to
217run some of U-Boot's tests.
218
Jagannadha Sutradharudu Teki6b1978f2014-08-31 21:19:43 +0530219See board/sandbox/README.sandbox for more details.
Simon Glass75b3c3a2014-03-22 17:12:59 -0600220
221
Simon Glassdb910352015-03-03 08:03:00 -0700222Board Initialisation Flow:
223--------------------------
224
225This is the intended start-up flow for boards. This should apply for both
Robert P. J. Day7207b362015-12-19 07:16:10 -0500226SPL and U-Boot proper (i.e. they both follow the same rules).
Simon Glassdb910352015-03-03 08:03:00 -0700227
Robert P. J. Day7207b362015-12-19 07:16:10 -0500228Note: "SPL" stands for "Secondary Program Loader," which is explained in
229more detail later in this file.
230
231At present, SPL mostly uses a separate code path, but the function names
232and roles of each function are the same. Some boards or architectures
233may not conform to this. At least most ARM boards which use
234CONFIG_SPL_FRAMEWORK conform to this.
235
236Execution typically starts with an architecture-specific (and possibly
237CPU-specific) start.S file, such as:
238
239 - arch/arm/cpu/armv7/start.S
240 - arch/powerpc/cpu/mpc83xx/start.S
241 - arch/mips/cpu/start.S
242
243and so on. From there, three functions are called; the purpose and
244limitations of each of these functions are described below.
Simon Glassdb910352015-03-03 08:03:00 -0700245
246lowlevel_init():
247 - purpose: essential init to permit execution to reach board_init_f()
248 - no global_data or BSS
249 - there is no stack (ARMv7 may have one but it will soon be removed)
250 - must not set up SDRAM or use console
251 - must only do the bare minimum to allow execution to continue to
252 board_init_f()
253 - this is almost never needed
254 - return normally from this function
255
256board_init_f():
257 - purpose: set up the machine ready for running board_init_r():
258 i.e. SDRAM and serial UART
259 - global_data is available
260 - stack is in SRAM
261 - BSS is not available, so you cannot use global/static variables,
262 only stack variables and global_data
263
264 Non-SPL-specific notes:
265 - dram_init() is called to set up DRAM. If already done in SPL this
266 can do nothing
267
268 SPL-specific notes:
269 - you can override the entire board_init_f() function with your own
270 version as needed.
271 - preloader_console_init() can be called here in extremis
272 - should set up SDRAM, and anything needed to make the UART work
273 - these is no need to clear BSS, it will be done by crt0.S
274 - must return normally from this function (don't call board_init_r()
275 directly)
276
277Here the BSS is cleared. For SPL, if CONFIG_SPL_STACK_R is defined, then at
278this point the stack and global_data are relocated to below
279CONFIG_SPL_STACK_R_ADDR. For non-SPL, U-Boot is relocated to run at the top of
280memory.
281
282board_init_r():
283 - purpose: main execution, common code
284 - global_data is available
285 - SDRAM is available
286 - BSS is available, all static/global variables can be used
287 - execution eventually continues to main_loop()
288
289 Non-SPL-specific notes:
290 - U-Boot is relocated to the top of memory and is now running from
291 there.
292
293 SPL-specific notes:
294 - stack is optionally in SDRAM, if CONFIG_SPL_STACK_R is defined and
295 CONFIG_SPL_STACK_R_ADDR points into SDRAM
296 - preloader_console_init() can be called here - typically this is
297 done by defining CONFIG_SPL_BOARD_INIT and then supplying a
298 spl_board_init() function containing this call
299 - loads U-Boot or (in falcon mode) Linux
300
301
302
wdenkc6097192002-11-03 00:24:07 +0000303Configuration Options:
304----------------------
305
306Configuration depends on the combination of board and CPU type; all
307such information is kept in a configuration file
308"include/configs/<board_name>.h".
309
310Example: For a TQM823L module, all configuration settings are in
311"include/configs/TQM823L.h".
312
313
wdenk7f6c2cb2002-11-10 22:06:23 +0000314Many of the options are named exactly as the corresponding Linux
315kernel configuration options. The intention is to make it easier to
316build a config tool - later.
317
318
wdenkc6097192002-11-03 00:24:07 +0000319The following options need to be configured:
320
Kim Phillips26281142007-08-10 13:28:25 -0500321- CPU Type: Define exactly one, e.g. CONFIG_MPC85XX.
wdenkc6097192002-11-03 00:24:07 +0000322
Kim Phillips26281142007-08-10 13:28:25 -0500323- Board Type: Define exactly one, e.g. CONFIG_MPC8540ADS.
Wolfgang Denk6ccec442006-10-24 14:42:37 +0200324
325- CPU Daughterboard Type: (if CONFIG_ATSTK1000 is defined)
Haavard Skinnemoen09ea0de2007-11-01 12:44:20 +0100326 Define exactly one, e.g. CONFIG_ATSTK1002
wdenkc6097192002-11-03 00:24:07 +0000327
Lei Wencf946c62011-02-09 18:06:58 +0530328- Marvell Family Member
329 CONFIG_SYS_MVFS - define it if you want to enable
330 multiple fs option at one time
331 for marvell soc family
332
Marcel Ziswiler11ccc332008-07-09 08:17:15 +0200333- 8xx CPU Options: (if using an MPC8xx CPU)
wdenk66ca92a2004-09-28 17:59:53 +0000334 CONFIG_8xx_GCLK_FREQ - deprecated: CPU clock if
335 get_gclk_freq() cannot work
wdenk5da627a2003-10-09 20:09:04 +0000336 e.g. if there is no 32KHz
337 reference PIT/RTC clock
wdenk66ca92a2004-09-28 17:59:53 +0000338 CONFIG_8xx_OSCLK - PLL input clock (either EXTCLK
339 or XTAL/EXTAL)
wdenkc6097192002-11-03 00:24:07 +0000340
wdenk66ca92a2004-09-28 17:59:53 +0000341- 859/866/885 CPU options: (if using a MPC859 or MPC866 or MPC885 CPU):
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +0200342 CONFIG_SYS_8xx_CPUCLK_MIN
343 CONFIG_SYS_8xx_CPUCLK_MAX
wdenk66ca92a2004-09-28 17:59:53 +0000344 CONFIG_8xx_CPUCLK_DEFAULT
wdenk75d1ea72004-01-31 20:06:54 +0000345 See doc/README.MPC866
346
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +0200347 CONFIG_SYS_MEASURE_CPUCLK
wdenk75d1ea72004-01-31 20:06:54 +0000348
wdenkba56f622004-02-06 23:19:44 +0000349 Define this to measure the actual CPU clock instead
350 of relying on the correctness of the configured
351 values. Mostly useful for board bringup to make sure
352 the PLL is locked at the intended frequency. Note
353 that this requires a (stable) reference clock (32 kHz
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +0200354 RTC clock or CONFIG_SYS_8XX_XIN)
wdenk75d1ea72004-01-31 20:06:54 +0000355
Heiko Schocher506f3912009-03-12 07:37:15 +0100356 CONFIG_SYS_DELAYED_ICACHE
357
358 Define this option if you want to enable the
359 ICache only when Code runs from RAM.
360
Kumar Gala66412c62011-02-18 05:40:54 -0600361- 85xx CPU Options:
York Sunffd06e02012-10-08 07:44:30 +0000362 CONFIG_SYS_PPC64
363
364 Specifies that the core is a 64-bit PowerPC implementation (implements
365 the "64" category of the Power ISA). This is necessary for ePAPR
366 compliance, among other possible reasons.
367
Kumar Gala66412c62011-02-18 05:40:54 -0600368 CONFIG_SYS_FSL_TBCLK_DIV
369
370 Defines the core time base clock divider ratio compared to the
371 system clock. On most PQ3 devices this is 8, on newer QorIQ
372 devices it can be 16 or 32. The ratio varies from SoC to Soc.
373
Kumar Gala8f290842011-05-20 00:39:21 -0500374 CONFIG_SYS_FSL_PCIE_COMPAT
375
376 Defines the string to utilize when trying to match PCIe device
377 tree nodes for the given platform.
378
Scott Wood33eee332012-08-14 10:14:53 +0000379 CONFIG_SYS_FSL_ERRATUM_A004510
380
381 Enables a workaround for erratum A004510. If set,
382 then CONFIG_SYS_FSL_ERRATUM_A004510_SVR_REV and
383 CONFIG_SYS_FSL_CORENET_SNOOPVEC_COREONLY must be set.
384
385 CONFIG_SYS_FSL_ERRATUM_A004510_SVR_REV
386 CONFIG_SYS_FSL_ERRATUM_A004510_SVR_REV2 (optional)
387
388 Defines one or two SoC revisions (low 8 bits of SVR)
389 for which the A004510 workaround should be applied.
390
391 The rest of SVR is either not relevant to the decision
392 of whether the erratum is present (e.g. p2040 versus
393 p2041) or is implied by the build target, which controls
394 whether CONFIG_SYS_FSL_ERRATUM_A004510 is set.
395
396 See Freescale App Note 4493 for more information about
397 this erratum.
398
Prabhakar Kushwaha74fa22e2013-04-16 13:27:44 +0530399 CONFIG_A003399_NOR_WORKAROUND
400 Enables a workaround for IFC erratum A003399. It is only
Jeremiah Mahlerb445bbb2015-01-04 18:56:50 -0800401 required during NOR boot.
Prabhakar Kushwaha74fa22e2013-04-16 13:27:44 +0530402
Prabhakar Kushwaha9f074e62014-10-29 22:33:09 +0530403 CONFIG_A008044_WORKAROUND
404 Enables a workaround for T1040/T1042 erratum A008044. It is only
Jeremiah Mahlerb445bbb2015-01-04 18:56:50 -0800405 required during NAND boot and valid for Rev 1.0 SoC revision
Prabhakar Kushwaha9f074e62014-10-29 22:33:09 +0530406
Scott Wood33eee332012-08-14 10:14:53 +0000407 CONFIG_SYS_FSL_CORENET_SNOOPVEC_COREONLY
408
409 This is the value to write into CCSR offset 0x18600
410 according to the A004510 workaround.
411
Priyanka Jain64501c62013-07-02 09:21:04 +0530412 CONFIG_SYS_FSL_DSP_DDR_ADDR
413 This value denotes start offset of DDR memory which is
414 connected exclusively to the DSP cores.
415
Priyanka Jain765b0bd2013-04-04 09:31:54 +0530416 CONFIG_SYS_FSL_DSP_M2_RAM_ADDR
417 This value denotes start offset of M2 memory
418 which is directly connected to the DSP core.
419
Priyanka Jain64501c62013-07-02 09:21:04 +0530420 CONFIG_SYS_FSL_DSP_M3_RAM_ADDR
421 This value denotes start offset of M3 memory which is directly
422 connected to the DSP core.
423
Priyanka Jain765b0bd2013-04-04 09:31:54 +0530424 CONFIG_SYS_FSL_DSP_CCSRBAR_DEFAULT
425 This value denotes start offset of DSP CCSR space.
426
Priyanka Jainb1359912013-12-17 14:25:52 +0530427 CONFIG_SYS_FSL_SINGLE_SOURCE_CLK
428 Single Source Clock is clocking mode present in some of FSL SoC's.
429 In this mode, a single differential clock is used to supply
430 clocks to the sysclock, ddrclock and usbclock.
431
Aneesh Bansalfb4a2402014-03-18 23:40:26 +0530432 CONFIG_SYS_CPC_REINIT_F
433 This CONFIG is defined when the CPC is configured as SRAM at the
Bin Menga1875592016-02-05 19:30:11 -0800434 time of U-Boot entry and is required to be re-initialized.
Aneesh Bansalfb4a2402014-03-18 23:40:26 +0530435
Tang Yuantianaade2002014-04-17 15:33:46 +0800436 CONFIG_DEEP_SLEEP
Jeremiah Mahlerb445bbb2015-01-04 18:56:50 -0800437 Indicates this SoC supports deep sleep feature. If deep sleep is
Tang Yuantianaade2002014-04-17 15:33:46 +0800438 supported, core will start to execute uboot when wakes up.
439
Daniel Schwierzeck6cb461b2012-04-02 02:57:56 +0000440- Generic CPU options:
York Sun2a1680e2014-05-02 17:28:04 -0700441 CONFIG_SYS_GENERIC_GLOBAL_DATA
442 Defines global data is initialized in generic board board_init_f().
443 If this macro is defined, global data is created and cleared in
444 generic board board_init_f(). Without this macro, architecture/board
445 should initialize global data before calling board_init_f().
446
Daniel Schwierzeck6cb461b2012-04-02 02:57:56 +0000447 CONFIG_SYS_BIG_ENDIAN, CONFIG_SYS_LITTLE_ENDIAN
448
449 Defines the endianess of the CPU. Implementation of those
450 values is arch specific.
451
York Sun5614e712013-09-30 09:22:09 -0700452 CONFIG_SYS_FSL_DDR
453 Freescale DDR driver in use. This type of DDR controller is
454 found in mpc83xx, mpc85xx, mpc86xx as well as some ARM core
455 SoCs.
456
457 CONFIG_SYS_FSL_DDR_ADDR
458 Freescale DDR memory-mapped register base.
459
460 CONFIG_SYS_FSL_DDR_EMU
461 Specify emulator support for DDR. Some DDR features such as
462 deskew training are not available.
463
464 CONFIG_SYS_FSL_DDRC_GEN1
465 Freescale DDR1 controller.
466
467 CONFIG_SYS_FSL_DDRC_GEN2
468 Freescale DDR2 controller.
469
470 CONFIG_SYS_FSL_DDRC_GEN3
471 Freescale DDR3 controller.
472
York Sun34e026f2014-03-27 17:54:47 -0700473 CONFIG_SYS_FSL_DDRC_GEN4
474 Freescale DDR4 controller.
475
York Sun9ac4ffb2013-09-30 14:20:51 -0700476 CONFIG_SYS_FSL_DDRC_ARM_GEN3
477 Freescale DDR3 controller for ARM-based SoCs.
478
York Sun5614e712013-09-30 09:22:09 -0700479 CONFIG_SYS_FSL_DDR1
480 Board config to use DDR1. It can be enabled for SoCs with
481 Freescale DDR1 or DDR2 controllers, depending on the board
482 implemetation.
483
484 CONFIG_SYS_FSL_DDR2
Robert P. J. Day62a3b7d2016-07-15 13:44:45 -0400485 Board config to use DDR2. It can be enabled for SoCs with
York Sun5614e712013-09-30 09:22:09 -0700486 Freescale DDR2 or DDR3 controllers, depending on the board
487 implementation.
488
489 CONFIG_SYS_FSL_DDR3
490 Board config to use DDR3. It can be enabled for SoCs with
York Sun34e026f2014-03-27 17:54:47 -0700491 Freescale DDR3 or DDR3L controllers.
492
493 CONFIG_SYS_FSL_DDR3L
494 Board config to use DDR3L. It can be enabled for SoCs with
495 DDR3L controllers.
496
497 CONFIG_SYS_FSL_DDR4
498 Board config to use DDR4. It can be enabled for SoCs with
499 DDR4 controllers.
York Sun5614e712013-09-30 09:22:09 -0700500
Prabhakar Kushwaha1b4175d2014-01-18 12:28:30 +0530501 CONFIG_SYS_FSL_IFC_BE
502 Defines the IFC controller register space as Big Endian
503
504 CONFIG_SYS_FSL_IFC_LE
505 Defines the IFC controller register space as Little Endian
506
Prabhakar Kushwaha1c407072017-02-02 15:01:26 +0530507 CONFIG_SYS_FSL_IFC_CLK_DIV
508 Defines divider of platform clock(clock input to IFC controller).
509
Prabhakar Kushwahaadd63f92017-02-02 15:02:00 +0530510 CONFIG_SYS_FSL_LBC_CLK_DIV
511 Defines divider of platform clock(clock input to eLBC controller).
512
Prabhakar Kushwaha690e4252014-01-13 11:28:04 +0530513 CONFIG_SYS_FSL_PBL_PBI
514 It enables addition of RCW (Power on reset configuration) in built image.
515 Please refer doc/README.pblimage for more details
516
517 CONFIG_SYS_FSL_PBL_RCW
518 It adds PBI(pre-boot instructions) commands in u-boot build image.
519 PBI commands can be used to configure SoC before it starts the execution.
520 Please refer doc/README.pblimage for more details
521
Prabhakar Kushwaha89ad7be2014-04-08 19:13:34 +0530522 CONFIG_SPL_FSL_PBL
523 It adds a target to create boot binary having SPL binary in PBI format
524 concatenated with u-boot binary.
525
York Sun4e5b1bd2014-02-10 13:59:42 -0800526 CONFIG_SYS_FSL_DDR_BE
527 Defines the DDR controller register space as Big Endian
528
529 CONFIG_SYS_FSL_DDR_LE
530 Defines the DDR controller register space as Little Endian
531
York Sun6b9e3092014-02-10 13:59:43 -0800532 CONFIG_SYS_FSL_DDR_SDRAM_BASE_PHY
533 Physical address from the view of DDR controllers. It is the
534 same as CONFIG_SYS_DDR_SDRAM_BASE for all Power SoCs. But
535 it could be different for ARM SoCs.
536
York Sun6b1e1252014-02-10 13:59:44 -0800537 CONFIG_SYS_FSL_DDR_INTLV_256B
538 DDR controller interleaving on 256-byte. This is a special
539 interleaving mode, handled by Dickens for Freescale layerscape
540 SoCs with ARM core.
541
York Sun1d71efb2014-08-01 15:51:00 -0700542 CONFIG_SYS_FSL_DDR_MAIN_NUM_CTRLS
543 Number of controllers used as main memory.
544
545 CONFIG_SYS_FSL_OTHER_DDR_NUM_CTRLS
546 Number of controllers used for other than main memory.
547
Prabhakar Kushwaha44937212015-11-09 16:42:07 +0530548 CONFIG_SYS_FSL_HAS_DP_DDR
549 Defines the SoC has DP-DDR used for DPAA.
550
Ruchika Gupta028dbb82014-09-09 11:50:31 +0530551 CONFIG_SYS_FSL_SEC_BE
552 Defines the SEC controller register space as Big Endian
553
554 CONFIG_SYS_FSL_SEC_LE
555 Defines the SEC controller register space as Little Endian
556
Daniel Schwierzeck92bbd642011-07-27 13:22:39 +0200557- MIPS CPU options:
558 CONFIG_SYS_INIT_SP_OFFSET
559
560 Offset relative to CONFIG_SYS_SDRAM_BASE for initial stack
561 pointer. This is needed for the temporary stack before
562 relocation.
563
564 CONFIG_SYS_MIPS_CACHE_MODE
565
566 Cache operation mode for the MIPS CPU.
567 See also arch/mips/include/asm/mipsregs.h.
568 Possible values are:
569 CONF_CM_CACHABLE_NO_WA
570 CONF_CM_CACHABLE_WA
571 CONF_CM_UNCACHED
572 CONF_CM_CACHABLE_NONCOHERENT
573 CONF_CM_CACHABLE_CE
574 CONF_CM_CACHABLE_COW
575 CONF_CM_CACHABLE_CUW
576 CONF_CM_CACHABLE_ACCELERATED
577
578 CONFIG_SYS_XWAY_EBU_BOOTCFG
579
580 Special option for Lantiq XWAY SoCs for booting from NOR flash.
581 See also arch/mips/cpu/mips32/start.S.
582
583 CONFIG_XWAY_SWAP_BYTES
584
585 Enable compilation of tools/xway-swap-bytes needed for Lantiq
586 XWAY SoCs for booting from NOR flash. The U-Boot image needs to
587 be swapped if a flash programmer is used.
588
Christian Rieschb67d8812012-02-02 00:44:39 +0000589- ARM options:
590 CONFIG_SYS_EXCEPTION_VECTORS_HIGH
591
592 Select high exception vectors of the ARM core, e.g., do not
593 clear the V bit of the c1 register of CP15.
594
York Sun207774b2015-03-20 19:28:08 -0700595 COUNTER_FREQUENCY
596 Generic timer clock source frequency.
597
598 COUNTER_FREQUENCY_REAL
599 Generic timer clock source frequency if the real clock is
600 different from COUNTER_FREQUENCY, and can only be determined
601 at run time.
602
Stephen Warren73c38932015-01-19 16:25:52 -0700603- Tegra SoC options:
604 CONFIG_TEGRA_SUPPORT_NON_SECURE
605
606 Support executing U-Boot in non-secure (NS) mode. Certain
607 impossible actions will be skipped if the CPU is in NS mode,
608 such as ARM architectural timer initialization.
609
wdenk5da627a2003-10-09 20:09:04 +0000610- Linux Kernel Interface:
wdenkc6097192002-11-03 00:24:07 +0000611 CONFIG_CLOCKS_IN_MHZ
612
613 U-Boot stores all clock information in Hz
614 internally. For binary compatibility with older Linux
615 kernels (which expect the clocks passed in the
616 bd_info data to be in MHz) the environment variable
617 "clocks_in_mhz" can be defined so that U-Boot
618 converts clock data to MHZ before passing it to the
619 Linux kernel.
wdenkc6097192002-11-03 00:24:07 +0000620 When CONFIG_CLOCKS_IN_MHZ is defined, a definition of
Wolfgang Denk218ca722008-03-26 10:40:12 +0100621 "clocks_in_mhz=1" is automatically included in the
wdenkc6097192002-11-03 00:24:07 +0000622 default environment.
623
wdenk5da627a2003-10-09 20:09:04 +0000624 CONFIG_MEMSIZE_IN_BYTES [relevant for MIPS only]
625
Jeremiah Mahlerb445bbb2015-01-04 18:56:50 -0800626 When transferring memsize parameter to Linux, some versions
wdenk5da627a2003-10-09 20:09:04 +0000627 expect it to be in bytes, others in MB.
628 Define CONFIG_MEMSIZE_IN_BYTES to make it in bytes.
629
Gerald Van Barenfec6d9e2008-06-03 20:34:45 -0400630 CONFIG_OF_LIBFDT
Wolfgang Denkf57f70a2005-10-13 01:45:54 +0200631
632 New kernel versions are expecting firmware settings to be
Gerald Van Baren213bf8c2007-03-31 12:23:51 -0400633 passed using flattened device trees (based on open firmware
634 concepts).
635
636 CONFIG_OF_LIBFDT
637 * New libfdt-based support
638 * Adds the "fdt" command
Kim Phillips3bb342f2007-08-10 14:34:14 -0500639 * The bootm command automatically updates the fdt
Gerald Van Baren213bf8c2007-03-31 12:23:51 -0400640
Marcel Ziswilerb55ae402009-09-09 21:18:41 +0200641 OF_CPU - The proper name of the cpus node (only required for
642 MPC512X and MPC5xxx based boards).
643 OF_SOC - The proper name of the soc node (only required for
644 MPC512X and MPC5xxx based boards).
Wolfgang Denkf57f70a2005-10-13 01:45:54 +0200645 OF_TBCLK - The timebase frequency.
Kumar Galac2871f02006-01-11 13:59:02 -0600646 OF_STDOUT_PATH - The path to the console device
Wolfgang Denkf57f70a2005-10-13 01:45:54 +0200647
Marcel Ziswiler11ccc332008-07-09 08:17:15 +0200648 boards with QUICC Engines require OF_QE to set UCC MAC
649 addresses
Kim Phillips3bb342f2007-08-10 14:34:14 -0500650
Kumar Gala4e253132006-01-11 13:54:17 -0600651 CONFIG_OF_BOARD_SETUP
652
653 Board code has addition modification that it wants to make
654 to the flat device tree before handing it off to the kernel
wdenk6705d812004-08-02 23:22:59 +0000655
Simon Glassc654b512014-10-23 18:58:54 -0600656 CONFIG_OF_SYSTEM_SETUP
657
658 Other code has addition modification that it wants to make
659 to the flat device tree before handing it off to the kernel.
660 This causes ft_system_setup() to be called before booting
661 the kernel.
662
Heiko Schocher3887c3f2009-09-23 07:56:08 +0200663 CONFIG_OF_IDE_FIXUP
664
665 U-Boot can detect if an IDE device is present or not.
666 If not, and this new config option is activated, U-Boot
667 removes the ATA node from the DTS before booting Linux,
668 so the Linux IDE driver does not probe the device and
669 crash. This is needed for buggy hardware (uc101) where
670 no pull down resistor is connected to the signal IDE5V_DD7.
671
Igor Grinberg7eb29392011-07-14 05:45:07 +0000672 CONFIG_MACH_TYPE [relevant for ARM only][mandatory]
673
674 This setting is mandatory for all boards that have only one
675 machine type and must be used to specify the machine type
676 number as it appears in the ARM machine registry
677 (see http://www.arm.linux.org.uk/developer/machines/).
678 Only boards that have multiple machine types supported
679 in a single configuration file and the machine type is
680 runtime discoverable, do not have to use this setting.
681
Niklaus Giger0b2f4ec2008-11-03 22:13:47 +0100682- vxWorks boot parameters:
683
684 bootvx constructs a valid bootline using the following
Bin Meng9e98b7e2015-10-07 20:19:17 -0700685 environments variables: bootdev, bootfile, ipaddr, netmask,
686 serverip, gatewayip, hostname, othbootargs.
Niklaus Giger0b2f4ec2008-11-03 22:13:47 +0100687 It loads the vxWorks image pointed bootfile.
688
Niklaus Giger0b2f4ec2008-11-03 22:13:47 +0100689 Note: If a "bootargs" environment is defined, it will overwride
690 the defaults discussed just above.
691
Aneesh V2c451f72011-06-16 23:30:47 +0000692- Cache Configuration:
693 CONFIG_SYS_ICACHE_OFF - Do not enable instruction cache in U-Boot
694 CONFIG_SYS_DCACHE_OFF - Do not enable data cache in U-Boot
695 CONFIG_SYS_L2CACHE_OFF- Do not enable L2 cache in U-Boot
696
Aneesh V93bc2192011-06-16 23:30:51 +0000697- Cache Configuration for ARM:
698 CONFIG_SYS_L2_PL310 - Enable support for ARM PL310 L2 cache
699 controller
700 CONFIG_SYS_PL310_BASE - Physical base address of PL310
701 controller register space
702
wdenk6705d812004-08-02 23:22:59 +0000703- Serial Ports:
Andreas Engel48d01922008-09-08 14:30:53 +0200704 CONFIG_PL010_SERIAL
wdenk6705d812004-08-02 23:22:59 +0000705
706 Define this if you want support for Amba PrimeCell PL010 UARTs.
707
Andreas Engel48d01922008-09-08 14:30:53 +0200708 CONFIG_PL011_SERIAL
wdenk6705d812004-08-02 23:22:59 +0000709
710 Define this if you want support for Amba PrimeCell PL011 UARTs.
711
712 CONFIG_PL011_CLOCK
713
714 If you have Amba PrimeCell PL011 UARTs, set this variable to
715 the clock speed of the UARTs.
716
717 CONFIG_PL01x_PORTS
718
719 If you have Amba PrimeCell PL010 or PL011 UARTs on your board,
720 define this to a list of base addresses for each (supported)
721 port. See e.g. include/configs/versatile.h
722
Karicheri, Muralidharand57dee52014-04-09 15:38:46 -0400723 CONFIG_SERIAL_HW_FLOW_CONTROL
724
725 Define this variable to enable hw flow control in serial driver.
726 Current user of this option is drivers/serial/nsl16550.c driver
wdenk6705d812004-08-02 23:22:59 +0000727
wdenkc6097192002-11-03 00:24:07 +0000728- Console Interface:
wdenk43d96162003-03-06 00:02:04 +0000729 Depending on board, define exactly one serial port
730 (like CONFIG_8xx_CONS_SMC1, CONFIG_8xx_CONS_SMC2,
731 CONFIG_8xx_CONS_SCC1, ...), or switch off the serial
732 console by defining CONFIG_8xx_CONS_NONE
wdenkc6097192002-11-03 00:24:07 +0000733
734 Note: if CONFIG_8xx_CONS_NONE is defined, the serial
735 port routines must be defined elsewhere
736 (i.e. serial_init(), serial_getc(), ...)
737
wdenkc6097192002-11-03 00:24:07 +0000738- Console Baudrate:
739 CONFIG_BAUDRATE - in bps
740 Select one of the baudrates listed in
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +0200741 CONFIG_SYS_BAUDRATE_TABLE, see below.
742 CONFIG_SYS_BRGCLK_PRESCALE, baudrate prescale
wdenkc6097192002-11-03 00:24:07 +0000743
Heiko Schocherc92fac92009-01-30 12:55:38 +0100744- Console Rx buffer length
745 With CONFIG_SYS_SMC_RXBUFLEN it is possible to define
746 the maximum receive buffer length for the SMC.
Heiko Schocher2b3f12c2009-02-10 09:31:47 +0100747 This option is actual only for 82xx and 8xx possible.
Heiko Schocherc92fac92009-01-30 12:55:38 +0100748 If using CONFIG_SYS_SMC_RXBUFLEN also CONFIG_SYS_MAXIDLE
749 must be defined, to setup the maximum idle timeout for
750 the SMC.
751
wdenkc6097192002-11-03 00:24:07 +0000752- Autoboot Command:
753 CONFIG_BOOTCOMMAND
754 Only needed when CONFIG_BOOTDELAY is enabled;
755 define a command string that is automatically executed
756 when no character is read on the console interface
757 within "Boot Delay" after reset.
758
759 CONFIG_BOOTARGS
wdenk43d96162003-03-06 00:02:04 +0000760 This can be used to pass arguments to the bootm
761 command. The value of CONFIG_BOOTARGS goes into the
762 environment value "bootargs".
wdenkc6097192002-11-03 00:24:07 +0000763
764 CONFIG_RAMBOOT and CONFIG_NFSBOOT
wdenk43d96162003-03-06 00:02:04 +0000765 The value of these goes into the environment as
766 "ramboot" and "nfsboot" respectively, and can be used
767 as a convenience, when switching between booting from
Marcel Ziswiler11ccc332008-07-09 08:17:15 +0200768 RAM and NFS.
wdenkc6097192002-11-03 00:24:07 +0000769
Heiko Schochereda0ba32013-11-04 14:04:59 +0100770- Bootcount:
771 CONFIG_BOOTCOUNT_LIMIT
772 Implements a mechanism for detecting a repeating reboot
773 cycle, see:
774 http://www.denx.de/wiki/view/DULG/UBootBootCountLimit
775
776 CONFIG_BOOTCOUNT_ENV
777 If no softreset save registers are found on the hardware
778 "bootcount" is stored in the environment. To prevent a
779 saveenv on all reboots, the environment variable
780 "upgrade_available" is used. If "upgrade_available" is
781 0, "bootcount" is always 0, if "upgrade_available" is
782 1 "bootcount" is incremented in the environment.
783 So the Userspace Applikation must set the "upgrade_available"
784 and "bootcount" variable to 0, if a boot was successfully.
785
wdenkc6097192002-11-03 00:24:07 +0000786- Pre-Boot Commands:
787 CONFIG_PREBOOT
788
789 When this option is #defined, the existence of the
790 environment variable "preboot" will be checked
791 immediately before starting the CONFIG_BOOTDELAY
792 countdown and/or running the auto-boot command resp.
793 entering interactive mode.
794
795 This feature is especially useful when "preboot" is
796 automatically generated or modified. For an example
797 see the LWMON board specific code: here "preboot" is
798 modified when the user holds down a certain
799 combination of keys on the (special) keyboard when
800 booting the systems
801
802- Serial Download Echo Mode:
803 CONFIG_LOADS_ECHO
804 If defined to 1, all characters received during a
805 serial download (using the "loads" command) are
806 echoed back. This might be needed by some terminal
807 emulations (like "cu"), but may as well just take
808 time on others. This setting #define's the initial
809 value of the "loads_echo" environment variable.
810
Jon Loeliger602ad3b2007-06-11 19:03:39 -0500811- Kgdb Serial Baudrate: (if CONFIG_CMD_KGDB is defined)
wdenkc6097192002-11-03 00:24:07 +0000812 CONFIG_KGDB_BAUDRATE
813 Select one of the baudrates listed in
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +0200814 CONFIG_SYS_BAUDRATE_TABLE, see below.
wdenkc6097192002-11-03 00:24:07 +0000815
816- Monitor Functions:
Jon Loeliger602ad3b2007-06-11 19:03:39 -0500817 Monitor commands can be included or excluded
818 from the build by using the #include files
Stephen Warrenc6c621b2012-08-05 16:07:19 +0000819 <config_cmd_all.h> and #undef'ing unwanted
Joe Hershbergeref0f2f52015-06-22 16:15:30 -0500820 commands, or adding #define's for wanted commands.
wdenkc6097192002-11-03 00:24:07 +0000821
Jon Loeliger602ad3b2007-06-11 19:03:39 -0500822 The default command configuration includes all commands
823 except those marked below with a "*".
wdenkc6097192002-11-03 00:24:07 +0000824
Marek Vasutb401b732014-03-05 19:58:39 +0100825 CONFIG_CMD_AES AES 128 CBC encrypt/decrypt
Jon Loeliger602ad3b2007-06-11 19:03:39 -0500826 CONFIG_CMD_ASKENV * ask for env variable
Jon Loeliger602ad3b2007-06-11 19:03:39 -0500827 CONFIG_CMD_BDI bdinfo
828 CONFIG_CMD_BEDBUG * Include BedBug Debugger
829 CONFIG_CMD_BMP * BMP support
830 CONFIG_CMD_BSP * Board specific commands
831 CONFIG_CMD_BOOTD bootd
Tom Rinid2b2ffe2014-08-14 06:42:36 -0400832 CONFIG_CMD_BOOTI * ARM64 Linux kernel Image support
Jon Loeliger602ad3b2007-06-11 19:03:39 -0500833 CONFIG_CMD_CACHE * icache, dcache
Michal Simek08d0d6f2013-11-21 13:39:02 -0800834 CONFIG_CMD_CLK * clock command support
Jon Loeliger602ad3b2007-06-11 19:03:39 -0500835 CONFIG_CMD_CONSOLE coninfo
Mike Frysinger710b9932010-12-21 14:19:51 -0500836 CONFIG_CMD_CRC32 * crc32
Jon Loeliger602ad3b2007-06-11 19:03:39 -0500837 CONFIG_CMD_DATE * support for RTC, date/time...
838 CONFIG_CMD_DHCP * DHCP support
839 CONFIG_CMD_DIAG * Diagnostics
Peter Tysera7c93102008-12-17 16:36:22 -0600840 CONFIG_CMD_DS4510 * ds4510 I2C gpio commands
841 CONFIG_CMD_DS4510_INFO * ds4510 I2C info command
842 CONFIG_CMD_DS4510_MEM * ds4510 I2C eeprom/sram commansd
843 CONFIG_CMD_DS4510_RST * ds4510 I2C rst command
Jon Loeliger602ad3b2007-06-11 19:03:39 -0500844 CONFIG_CMD_DTT * Digital Therm and Thermostat
845 CONFIG_CMD_ECHO echo arguments
Peter Tyser246c6922009-10-25 15:12:56 -0500846 CONFIG_CMD_EDITENV edit env variable
Jon Loeliger602ad3b2007-06-11 19:03:39 -0500847 CONFIG_CMD_EEPROM * EEPROM read/write support
Nikita Kiryanovaa9e6042016-04-16 17:55:03 +0300848 CONFIG_CMD_EEPROM_LAYOUT* EEPROM layout aware commands
Jon Loeliger602ad3b2007-06-11 19:03:39 -0500849 CONFIG_CMD_ELF * bootelf, bootvx
Joe Hershberger5e2b3e02012-12-11 22:16:25 -0600850 CONFIG_CMD_ENV_CALLBACK * display details about env callbacks
Joe Hershbergerfffad712012-12-11 22:16:33 -0600851 CONFIG_CMD_ENV_FLAGS * display details about env flags
Andrew Ruder88733e22013-10-22 19:07:34 -0500852 CONFIG_CMD_ENV_EXISTS * check existence of env variable
Mike Frysinger0c79cda2010-12-26 23:09:45 -0500853 CONFIG_CMD_EXPORTENV * export the environment
Stephen Warren03e2ecf2012-10-22 06:43:50 +0000854 CONFIG_CMD_EXT2 * ext2 command support
855 CONFIG_CMD_EXT4 * ext4 command support
Stephen Warren16f4d932014-01-24 20:46:37 -0700856 CONFIG_CMD_FS_GENERIC * filesystem commands (e.g. load, ls)
857 that work for multiple fs types
Christian Gmeiner59e890e2014-11-12 14:35:04 +0100858 CONFIG_CMD_FS_UUID * Look up a filesystem UUID
Mike Frysingerbdab39d2009-01-28 19:08:14 -0500859 CONFIG_CMD_SAVEENV saveenv
Jon Loeliger602ad3b2007-06-11 19:03:39 -0500860 CONFIG_CMD_FDC * Floppy Disk Support
Stephen Warren03e2ecf2012-10-22 06:43:50 +0000861 CONFIG_CMD_FAT * FAT command support
Jon Loeliger602ad3b2007-06-11 19:03:39 -0500862 CONFIG_CMD_FLASH flinfo, erase, protect
863 CONFIG_CMD_FPGA FPGA device initialization support
Vincent Stehlé4d98b5c2013-06-20 18:14:22 +0200864 CONFIG_CMD_FUSE * Device fuse support
Anton Staaf53fdc7e2012-12-05 14:46:29 +0000865 CONFIG_CMD_GETTIME * Get time since boot
Mike Frysingera641b972010-12-26 23:32:22 -0500866 CONFIG_CMD_GO * the 'go' command (exec code)
Kim Phillipsa000b792011-04-05 07:15:14 +0000867 CONFIG_CMD_GREPENV * search environment
Simon Glassbf36c5d2012-12-05 14:46:38 +0000868 CONFIG_CMD_HASH * calculate hash / digest
Jon Loeliger602ad3b2007-06-11 19:03:39 -0500869 CONFIG_CMD_I2C * I2C serial bus support
870 CONFIG_CMD_IDE * IDE harddisk support
871 CONFIG_CMD_IMI iminfo
Vipin Kumar8fdf1e02012-12-16 22:32:48 +0000872 CONFIG_CMD_IMLS List all images found in NOR flash
Vincent Stehlé4d98b5c2013-06-20 18:14:22 +0200873 CONFIG_CMD_IMLS_NAND * List all images found in NAND flash
Jon Loeliger602ad3b2007-06-11 19:03:39 -0500874 CONFIG_CMD_IMMAP * IMMR dump support
Simon Glassaa532332014-06-11 23:29:41 -0600875 CONFIG_CMD_IOTRACE * I/O tracing for debugging
Mike Frysinger0c79cda2010-12-26 23:09:45 -0500876 CONFIG_CMD_IMPORTENV * import an environment
Joe Hershbergerc167cc02012-10-03 11:15:51 +0000877 CONFIG_CMD_INI * import data from an ini file into the env
Jon Loeliger602ad3b2007-06-11 19:03:39 -0500878 CONFIG_CMD_IRQ * irqinfo
879 CONFIG_CMD_ITEST Integer/string test of 2 values
880 CONFIG_CMD_JFFS2 * JFFS2 Support
881 CONFIG_CMD_KGDB * kgdb
Vincent Stehlé4d98b5c2013-06-20 18:14:22 +0200882 CONFIG_CMD_LDRINFO * ldrinfo (display Blackfin loader)
Joe Hershbergerd22c3382012-05-23 08:00:12 +0000883 CONFIG_CMD_LINK_LOCAL * link-local IP address auto-configuration
884 (169.254.*.*)
Jon Loeliger602ad3b2007-06-11 19:03:39 -0500885 CONFIG_CMD_LOADB loadb
886 CONFIG_CMD_LOADS loads
Vincent Stehlé4d98b5c2013-06-20 18:14:22 +0200887 CONFIG_CMD_MD5SUM * print md5 message digest
Robin Getz02c9aa12009-07-27 00:07:59 -0400888 (requires CONFIG_CMD_MEMORY and CONFIG_MD5)
Simon Glass15a33e42012-11-30 13:01:20 +0000889 CONFIG_CMD_MEMINFO * Display detailed memory information
Jon Loeliger602ad3b2007-06-11 19:03:39 -0500890 CONFIG_CMD_MEMORY md, mm, nm, mw, cp, cmp, crc, base,
Wolfgang Denka2681702013-03-08 10:51:32 +0000891 loop, loopw
Vincent Stehlé4d98b5c2013-06-20 18:14:22 +0200892 CONFIG_CMD_MEMTEST * mtest
Jon Loeliger602ad3b2007-06-11 19:03:39 -0500893 CONFIG_CMD_MISC Misc functions like sleep etc
894 CONFIG_CMD_MMC * MMC memory mapped support
895 CONFIG_CMD_MII * MII utility commands
Stefan Roese68d7d652009-03-19 13:30:36 +0100896 CONFIG_CMD_MTDPARTS * MTD partition support
Jon Loeliger602ad3b2007-06-11 19:03:39 -0500897 CONFIG_CMD_NAND * NAND support
898 CONFIG_CMD_NET bootp, tftpboot, rarpboot
Vincent Stehlé4d98b5c2013-06-20 18:14:22 +0200899 CONFIG_CMD_NFS NFS support
Peter Tysere92739d2008-12-17 16:36:21 -0600900 CONFIG_CMD_PCA953X * PCA953x I2C gpio commands
Wolfgang Denkc0f40852011-10-26 10:21:21 +0000901 CONFIG_CMD_PCA953X_INFO * PCA953x I2C gpio info command
Jon Loeliger602ad3b2007-06-11 19:03:39 -0500902 CONFIG_CMD_PCI * pciinfo
903 CONFIG_CMD_PCMCIA * PCMCIA support
904 CONFIG_CMD_PING * send ICMP ECHO_REQUEST to network
905 host
906 CONFIG_CMD_PORTIO * Port I/O
Kenneth Watersff048ea2012-12-05 14:46:30 +0000907 CONFIG_CMD_READ * Read raw data from partition
Jon Loeliger602ad3b2007-06-11 19:03:39 -0500908 CONFIG_CMD_REGINFO * Register dump
909 CONFIG_CMD_RUN run command in env variable
Simon Glassd3049312012-12-26 09:53:36 +0000910 CONFIG_CMD_SANDBOX * sb command to access sandbox features
Jon Loeliger602ad3b2007-06-11 19:03:39 -0500911 CONFIG_CMD_SAVES * save S record dump
Simon Glassc649e3c2016-05-01 11:36:02 -0600912 CONFIG_SCSI * SCSI Support
Jon Loeliger602ad3b2007-06-11 19:03:39 -0500913 CONFIG_CMD_SDRAM * print SDRAM configuration information
914 (requires CONFIG_CMD_I2C)
915 CONFIG_CMD_SETGETDCR Support for DCR Register access
916 (4xx only)
Eric Nelsonf61ec452012-01-31 10:52:08 -0700917 CONFIG_CMD_SF * Read/write/erase SPI NOR flash
Vincent Stehlé4d98b5c2013-06-20 18:14:22 +0200918 CONFIG_CMD_SHA1SUM * print sha1 memory digest
Robin Getz02c9aa12009-07-27 00:07:59 -0400919 (requires CONFIG_CMD_MEMORY)
Bob Liu7d861d92013-02-05 19:05:41 +0800920 CONFIG_CMD_SOFTSWITCH * Soft switch setting command for BF60x
Wolfgang Denk74de7ae2009-04-01 23:34:12 +0200921 CONFIG_CMD_SOURCE "source" command Support
Jon Loeliger602ad3b2007-06-11 19:03:39 -0500922 CONFIG_CMD_SPI * SPI serial bus support
Luca Ceresoli7a83af02011-05-17 00:03:40 +0000923 CONFIG_CMD_TFTPSRV * TFTP transfer in server mode
Simon Glass1fb7cd42011-10-24 18:00:07 +0000924 CONFIG_CMD_TFTPPUT * TFTP put command (upload)
Joe Hershbergerda83bcd2012-10-03 12:14:57 +0000925 CONFIG_CMD_TIME * run command and report execution time (ARM specific)
926 CONFIG_CMD_TIMER * access to the system tick timer
Jon Loeliger602ad3b2007-06-11 19:03:39 -0500927 CONFIG_CMD_USB * USB support
Jon Loeliger602ad3b2007-06-11 19:03:39 -0500928 CONFIG_CMD_CDP * Cisco Discover Protocol support
Marek Vasutc8339f52012-03-31 07:47:16 +0000929 CONFIG_CMD_MFSL * Microblaze FSL support
Vincent Stehlé4d98b5c2013-06-20 18:14:22 +0200930 CONFIG_CMD_XIMG Load part of Multi Image
Przemyslaw Marczak89c82302014-04-02 10:20:05 +0200931 CONFIG_CMD_UUID * Generate random UUID or GUID string
wdenkc6097192002-11-03 00:24:07 +0000932
933 EXAMPLE: If you want all functions except of network
934 support you can write:
935
Jon Loeliger602ad3b2007-06-11 19:03:39 -0500936 #include "config_cmd_all.h"
937 #undef CONFIG_CMD_NET
wdenkc6097192002-11-03 00:24:07 +0000938
Gerald Van Baren213bf8c2007-03-31 12:23:51 -0400939 Other Commands:
940 fdt (flattened device tree) command: CONFIG_OF_LIBFDT
wdenkc6097192002-11-03 00:24:07 +0000941
942 Note: Don't enable the "icache" and "dcache" commands
Jon Loeliger602ad3b2007-06-11 19:03:39 -0500943 (configuration option CONFIG_CMD_CACHE) unless you know
wdenk43d96162003-03-06 00:02:04 +0000944 what you (and your U-Boot users) are doing. Data
945 cache cannot be enabled on systems like the 8xx or
946 8260 (where accesses to the IMMR region must be
947 uncached), and it cannot be disabled on all other
948 systems where we (mis-) use the data cache to hold an
949 initial stack and some data.
wdenkc6097192002-11-03 00:24:07 +0000950
951
952 XXX - this list needs to get updated!
953
Simon Glass302a6482016-03-13 19:07:28 -0600954- Removal of commands
955 If no commands are needed to boot, you can disable
956 CONFIG_CMDLINE to remove them. In this case, the command line
957 will not be available, and when U-Boot wants to execute the
958 boot command (on start-up) it will call board_run_command()
959 instead. This can reduce image size significantly for very
960 simple boot procedures.
961
Wolfgang Denka5ecbe62013-03-23 23:50:31 +0000962- Regular expression support:
963 CONFIG_REGEX
Wolfgang Denk93e14592013-10-04 17:43:24 +0200964 If this variable is defined, U-Boot is linked against
965 the SLRE (Super Light Regular Expression) library,
966 which adds regex support to some commands, as for
967 example "env grep" and "setexpr".
Wolfgang Denka5ecbe62013-03-23 23:50:31 +0000968
Simon Glass45ba8072011-10-15 05:48:20 +0000969- Device tree:
970 CONFIG_OF_CONTROL
971 If this variable is defined, U-Boot will use a device tree
972 to configure its devices, instead of relying on statically
973 compiled #defines in the board file. This option is
974 experimental and only available on a few boards. The device
975 tree is available in the global data as gd->fdt_blob.
976
Simon Glass2c0f79e2011-10-24 19:15:31 +0000977 U-Boot needs to get its device tree from somewhere. This can
978 be done using one of the two options below:
Simon Glassbbb0b122011-10-15 05:48:21 +0000979
980 CONFIG_OF_EMBED
981 If this variable is defined, U-Boot will embed a device tree
982 binary in its image. This device tree file should be in the
983 board directory and called <soc>-<board>.dts. The binary file
984 is then picked up in board_init_f() and made available through
985 the global data structure as gd->blob.
Simon Glass45ba8072011-10-15 05:48:20 +0000986
Simon Glass2c0f79e2011-10-24 19:15:31 +0000987 CONFIG_OF_SEPARATE
988 If this variable is defined, U-Boot will build a device tree
989 binary. It will be called u-boot.dtb. Architecture-specific
990 code will locate it at run-time. Generally this works by:
991
992 cat u-boot.bin u-boot.dtb >image.bin
993
994 and in fact, U-Boot does this for you, creating a file called
995 u-boot-dtb.bin which is useful in the common case. You can
996 still use the individual files if you need something more
997 exotic.
998
wdenkc6097192002-11-03 00:24:07 +0000999- Watchdog:
1000 CONFIG_WATCHDOG
1001 If this variable is defined, it enables watchdog
Detlev Zundel6abe6fb2011-04-27 05:25:59 +00001002 support for the SoC. There must be support in the SoC
1003 specific code for a watchdog. For the 8xx and 8260
1004 CPUs, the SIU Watchdog feature is enabled in the SYPCR
1005 register. When supported for a specific SoC is
1006 available, then no further board specific code should
1007 be needed to use it.
1008
1009 CONFIG_HW_WATCHDOG
1010 When using a watchdog circuitry external to the used
1011 SoC, then define this variable and provide board
1012 specific code for the "hw_watchdog_reset" function.
wdenkc6097192002-11-03 00:24:07 +00001013
Heiko Schocher7bae0d62015-01-21 08:38:22 +01001014 CONFIG_AT91_HW_WDT_TIMEOUT
1015 specify the timeout in seconds. default 2 seconds.
1016
stroesec1551ea2003-04-04 15:53:41 +00001017- U-Boot Version:
1018 CONFIG_VERSION_VARIABLE
1019 If this variable is defined, an environment variable
1020 named "ver" is created by U-Boot showing the U-Boot
1021 version as printed by the "version" command.
Benoît Thébaudeaua1ea8e52012-08-13 15:01:14 +02001022 Any change to this variable will be reverted at the
1023 next reset.
stroesec1551ea2003-04-04 15:53:41 +00001024
wdenkc6097192002-11-03 00:24:07 +00001025- Real-Time Clock:
1026
Jon Loeliger602ad3b2007-06-11 19:03:39 -05001027 When CONFIG_CMD_DATE is selected, the type of the RTC
wdenkc6097192002-11-03 00:24:07 +00001028 has to be selected, too. Define exactly one of the
1029 following options:
1030
1031 CONFIG_RTC_MPC8xx - use internal RTC of MPC8xx
1032 CONFIG_RTC_PCF8563 - use Philips PCF8563 RTC
Fabio Estevam4e8b7542011-10-24 06:44:15 +00001033 CONFIG_RTC_MC13XXX - use MC13783 or MC13892 RTC
wdenkc6097192002-11-03 00:24:07 +00001034 CONFIG_RTC_MC146818 - use MC146818 RTC
wdenk1cb8e982003-03-06 21:55:29 +00001035 CONFIG_RTC_DS1307 - use Maxim, Inc. DS1307 RTC
wdenkc6097192002-11-03 00:24:07 +00001036 CONFIG_RTC_DS1337 - use Maxim, Inc. DS1337 RTC
wdenk7f70e852003-05-20 14:25:27 +00001037 CONFIG_RTC_DS1338 - use Maxim, Inc. DS1338 RTC
Markus Niebel412921d2014-07-21 11:06:16 +02001038 CONFIG_RTC_DS1339 - use Maxim, Inc. DS1339 RTC
wdenk3bac3512003-03-12 10:41:04 +00001039 CONFIG_RTC_DS164x - use Dallas DS164x RTC
Tor Krill9536dfc2008-03-15 15:40:26 +01001040 CONFIG_RTC_ISL1208 - use Intersil ISL1208 RTC
wdenk4c0d4c32004-06-09 17:34:58 +00001041 CONFIG_RTC_MAX6900 - use Maxim, Inc. MAX6900 RTC
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +02001042 CONFIG_SYS_RTC_DS1337_NOOSC - Turn off the OSC output for DS1337
Heiko Schocher71d19f32011-03-28 09:24:22 +02001043 CONFIG_SYS_RV3029_TCR - enable trickle charger on
1044 RV3029 RTC.
wdenkc6097192002-11-03 00:24:07 +00001045
wdenkb37c7e52003-06-30 16:24:52 +00001046 Note that if the RTC uses I2C, then the I2C interface
1047 must also be configured. See I2C Support, below.
1048
Peter Tysere92739d2008-12-17 16:36:21 -06001049- GPIO Support:
1050 CONFIG_PCA953X - use NXP's PCA953X series I2C GPIO
Peter Tysere92739d2008-12-17 16:36:21 -06001051
Chris Packham5dec49c2010-12-19 10:12:13 +00001052 The CONFIG_SYS_I2C_PCA953X_WIDTH option specifies a list of
1053 chip-ngpio pairs that tell the PCA953X driver the number of
1054 pins supported by a particular chip.
1055
Peter Tysere92739d2008-12-17 16:36:21 -06001056 Note that if the GPIO device uses I2C, then the I2C interface
1057 must also be configured. See I2C Support, below.
1058
Simon Glassaa532332014-06-11 23:29:41 -06001059- I/O tracing:
1060 When CONFIG_IO_TRACE is selected, U-Boot intercepts all I/O
1061 accesses and can checksum them or write a list of them out
1062 to memory. See the 'iotrace' command for details. This is
1063 useful for testing device drivers since it can confirm that
1064 the driver behaves the same way before and after a code
1065 change. Currently this is supported on sandbox and arm. To
1066 add support for your architecture, add '#include <iotrace.h>'
1067 to the bottom of arch/<arch>/include/asm/io.h and test.
1068
1069 Example output from the 'iotrace stats' command is below.
1070 Note that if the trace buffer is exhausted, the checksum will
1071 still continue to operate.
1072
1073 iotrace is enabled
1074 Start: 10000000 (buffer start address)
1075 Size: 00010000 (buffer size)
1076 Offset: 00000120 (current buffer offset)
1077 Output: 10000120 (start + offset)
1078 Count: 00000018 (number of trace records)
1079 CRC32: 9526fb66 (CRC32 of all trace records)
1080
wdenkc6097192002-11-03 00:24:07 +00001081- Timestamp Support:
1082
wdenk43d96162003-03-06 00:02:04 +00001083 When CONFIG_TIMESTAMP is selected, the timestamp
1084 (date and time) of an image is printed by image
1085 commands like bootm or iminfo. This option is
Jon Loeliger602ad3b2007-06-11 19:03:39 -05001086 automatically enabled when you select CONFIG_CMD_DATE .
wdenkc6097192002-11-03 00:24:07 +00001087
Karl O. Pinc923c46f2012-08-16 06:20:15 +00001088- Partition Labels (disklabels) Supported:
1089 Zero or more of the following:
1090 CONFIG_MAC_PARTITION Apple's MacOS partition table.
1091 CONFIG_DOS_PARTITION MS Dos partition table, traditional on the
1092 Intel architecture, USB sticks, etc.
1093 CONFIG_ISO_PARTITION ISO partition table, used on CDROM etc.
1094 CONFIG_EFI_PARTITION GPT partition table, common when EFI is the
1095 bootloader. Note 2TB partition limit; see
1096 disk/part_efi.c
1097 CONFIG_MTD_PARTITIONS Memory Technology Device partition table.
wdenkc6097192002-11-03 00:24:07 +00001098
Wolfgang Denk218ca722008-03-26 10:40:12 +01001099 If IDE or SCSI support is enabled (CONFIG_CMD_IDE or
Simon Glassc649e3c2016-05-01 11:36:02 -06001100 CONFIG_SCSI) you must configure support for at
Karl O. Pinc923c46f2012-08-16 06:20:15 +00001101 least one non-MTD partition type as well.
wdenkc6097192002-11-03 00:24:07 +00001102
1103- IDE Reset method:
wdenk4d13cba2004-03-14 14:09:05 +00001104 CONFIG_IDE_RESET_ROUTINE - this is defined in several
1105 board configurations files but used nowhere!
wdenkc6097192002-11-03 00:24:07 +00001106
wdenk4d13cba2004-03-14 14:09:05 +00001107 CONFIG_IDE_RESET - is this is defined, IDE Reset will
1108 be performed by calling the function
1109 ide_set_reset(int reset)
1110 which has to be defined in a board specific file
wdenkc6097192002-11-03 00:24:07 +00001111
1112- ATAPI Support:
1113 CONFIG_ATAPI
1114
1115 Set this to enable ATAPI support.
1116
wdenkc40b2952004-03-13 23:29:43 +00001117- LBA48 Support
1118 CONFIG_LBA48
1119
1120 Set this to enable support for disks larger than 137GB
Heiko Schocher4b142fe2009-12-03 11:21:21 +01001121 Also look at CONFIG_SYS_64BIT_LBA.
wdenkc40b2952004-03-13 23:29:43 +00001122 Whithout these , LBA48 support uses 32bit variables and will 'only'
1123 support disks up to 2.1TB.
1124
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +02001125 CONFIG_SYS_64BIT_LBA:
wdenkc40b2952004-03-13 23:29:43 +00001126 When enabled, makes the IDE subsystem use 64bit sector addresses.
1127 Default is 32bit.
1128
wdenkc6097192002-11-03 00:24:07 +00001129- SCSI Support:
1130 At the moment only there is only support for the
1131 SYM53C8XX SCSI controller; define
1132 CONFIG_SCSI_SYM53C8XX to enable it.
1133
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +02001134 CONFIG_SYS_SCSI_MAX_LUN [8], CONFIG_SYS_SCSI_MAX_SCSI_ID [7] and
1135 CONFIG_SYS_SCSI_MAX_DEVICE [CONFIG_SYS_SCSI_MAX_SCSI_ID *
1136 CONFIG_SYS_SCSI_MAX_LUN] can be adjusted to define the
wdenkc6097192002-11-03 00:24:07 +00001137 maximum numbers of LUNs, SCSI ID's and target
1138 devices.
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +02001139 CONFIG_SYS_SCSI_SYM53C8XX_CCF to fix clock timing (80Mhz)
wdenkc6097192002-11-03 00:24:07 +00001140
Wolfgang Denk93e14592013-10-04 17:43:24 +02001141 The environment variable 'scsidevs' is set to the number of
1142 SCSI devices found during the last scan.
Stefan Reinauer447c0312012-10-29 05:23:48 +00001143
wdenkc6097192002-11-03 00:24:07 +00001144- NETWORK Support (PCI):
wdenk682011f2003-06-03 23:54:09 +00001145 CONFIG_E1000
Kyle Moffettce5207e2011-10-18 11:05:29 +00001146 Support for Intel 8254x/8257x gigabit chips.
1147
1148 CONFIG_E1000_SPI
1149 Utility code for direct access to the SPI bus on Intel 8257x.
1150 This does not do anything useful unless you set at least one
1151 of CONFIG_CMD_E1000 or CONFIG_E1000_SPI_GENERIC.
1152
1153 CONFIG_E1000_SPI_GENERIC
1154 Allow generic access to the SPI bus on the Intel 8257x, for
1155 example with the "sspi" command.
1156
1157 CONFIG_CMD_E1000
1158 Management command for E1000 devices. When used on devices
1159 with SPI support you can reprogram the EEPROM from U-Boot.
stroese53cf9432003-06-05 15:39:44 +00001160
wdenkc6097192002-11-03 00:24:07 +00001161 CONFIG_EEPRO100
1162 Support for Intel 82557/82559/82559ER chips.
Marcel Ziswiler11ccc332008-07-09 08:17:15 +02001163 Optional CONFIG_EEPRO100_SROM_WRITE enables EEPROM
wdenkc6097192002-11-03 00:24:07 +00001164 write routine for first time initialisation.
1165
1166 CONFIG_TULIP
1167 Support for Digital 2114x chips.
1168 Optional CONFIG_TULIP_SELECT_MEDIA for board specific
1169 modem chip initialisation (KS8761/QS6611).
1170
1171 CONFIG_NATSEMI
1172 Support for National dp83815 chips.
1173
1174 CONFIG_NS8382X
1175 Support for National dp8382[01] gigabit chips.
1176
wdenk45219c42003-05-12 21:50:16 +00001177- NETWORK Support (other):
1178
Jens Scharsigc041e9d2010-01-23 12:03:45 +01001179 CONFIG_DRIVER_AT91EMAC
1180 Support for AT91RM9200 EMAC.
1181
1182 CONFIG_RMII
1183 Define this to use reduced MII inteface
1184
1185 CONFIG_DRIVER_AT91EMAC_QUIET
1186 If this defined, the driver is quiet.
1187 The driver doen't show link status messages.
1188
Rob Herringefdd7312011-12-15 11:15:49 +00001189 CONFIG_CALXEDA_XGMAC
1190 Support for the Calxeda XGMAC device
1191
Ashok3bb46d22012-10-15 06:20:47 +00001192 CONFIG_LAN91C96
wdenk45219c42003-05-12 21:50:16 +00001193 Support for SMSC's LAN91C96 chips.
1194
wdenk45219c42003-05-12 21:50:16 +00001195 CONFIG_LAN91C96_USE_32_BIT
1196 Define this to enable 32 bit addressing
1197
Ashok3bb46d22012-10-15 06:20:47 +00001198 CONFIG_SMC91111
wdenkf39748a2004-06-09 13:37:52 +00001199 Support for SMSC's LAN91C111 chip
1200
1201 CONFIG_SMC91111_BASE
1202 Define this to hold the physical address
1203 of the device (I/O space)
1204
1205 CONFIG_SMC_USE_32_BIT
1206 Define this if data bus is 32 bits
1207
1208 CONFIG_SMC_USE_IOFUNCS
1209 Define this to use i/o functions instead of macros
1210 (some hardware wont work with macros)
1211
Heiko Schocherdc02bad2011-11-15 10:00:04 -05001212 CONFIG_DRIVER_TI_EMAC
1213 Support for davinci emac
1214
1215 CONFIG_SYS_DAVINCI_EMAC_PHY_COUNT
1216 Define this if you have more then 3 PHYs.
1217
Macpaul Linb3dbf4a52010-12-21 16:59:46 +08001218 CONFIG_FTGMAC100
1219 Support for Faraday's FTGMAC100 Gigabit SoC Ethernet
1220
1221 CONFIG_FTGMAC100_EGIGA
1222 Define this to use GE link update with gigabit PHY.
1223 Define this if FTGMAC100 is connected to gigabit PHY.
1224 If your system has 10/100 PHY only, it might not occur
1225 wrong behavior. Because PHY usually return timeout or
1226 useless data when polling gigabit status and gigabit
1227 control registers. This behavior won't affect the
1228 correctnessof 10/100 link speed update.
1229
Mike Rapoportc2fff332009-11-11 10:03:03 +02001230 CONFIG_SMC911X
Jens Gehrlein557b3772008-05-05 14:06:11 +02001231 Support for SMSC's LAN911x and LAN921x chips
1232
Mike Rapoportc2fff332009-11-11 10:03:03 +02001233 CONFIG_SMC911X_BASE
Jens Gehrlein557b3772008-05-05 14:06:11 +02001234 Define this to hold the physical address
1235 of the device (I/O space)
1236
Mike Rapoportc2fff332009-11-11 10:03:03 +02001237 CONFIG_SMC911X_32_BIT
Jens Gehrlein557b3772008-05-05 14:06:11 +02001238 Define this if data bus is 32 bits
1239
Mike Rapoportc2fff332009-11-11 10:03:03 +02001240 CONFIG_SMC911X_16_BIT
Jens Gehrlein557b3772008-05-05 14:06:11 +02001241 Define this if data bus is 16 bits. If your processor
1242 automatically converts one 32 bit word to two 16 bit
Mike Rapoportc2fff332009-11-11 10:03:03 +02001243 words you may also try CONFIG_SMC911X_32_BIT.
Jens Gehrlein557b3772008-05-05 14:06:11 +02001244
Yoshihiro Shimoda3d0075f2011-01-27 10:06:03 +09001245 CONFIG_SH_ETHER
1246 Support for Renesas on-chip Ethernet controller
1247
1248 CONFIG_SH_ETHER_USE_PORT
1249 Define the number of ports to be used
1250
1251 CONFIG_SH_ETHER_PHY_ADDR
1252 Define the ETH PHY's address
1253
Yoshihiro Shimoda68260aa2011-01-27 10:06:08 +09001254 CONFIG_SH_ETHER_CACHE_WRITEBACK
1255 If this option is set, the driver enables cache flush.
1256
Heiko Schocherb2f97cf2014-07-18 06:07:19 +02001257- PWM Support:
1258 CONFIG_PWM_IMX
Robert P. J. Day5052e812016-09-13 08:35:18 -04001259 Support for PWM module on the imx6.
Heiko Schocherb2f97cf2014-07-18 06:07:19 +02001260
Vadim Bendebury5e124722011-10-17 08:36:14 +00001261- TPM Support:
Che-liang Chiou90899cc2013-04-12 11:04:34 +00001262 CONFIG_TPM
1263 Support TPM devices.
1264
Christophe Ricard0766ad22015-10-06 22:54:41 +02001265 CONFIG_TPM_TIS_INFINEON
1266 Support for Infineon i2c bus TPM devices. Only one device
Tom Wai-Hong Tam1b393db2013-04-12 11:04:37 +00001267 per system is supported at this time.
1268
Tom Wai-Hong Tam1b393db2013-04-12 11:04:37 +00001269 CONFIG_TPM_TIS_I2C_BURST_LIMITATION
1270 Define the burst count bytes upper limit
1271
Christophe Ricard3aa74082016-01-21 23:27:13 +01001272 CONFIG_TPM_ST33ZP24
1273 Support for STMicroelectronics TPM devices. Requires DM_TPM support.
1274
1275 CONFIG_TPM_ST33ZP24_I2C
1276 Support for STMicroelectronics ST33ZP24 I2C devices.
1277 Requires TPM_ST33ZP24 and I2C.
1278
Christophe Ricardb75fdc12016-01-21 23:27:14 +01001279 CONFIG_TPM_ST33ZP24_SPI
1280 Support for STMicroelectronics ST33ZP24 SPI devices.
1281 Requires TPM_ST33ZP24 and SPI.
1282
Dirk Eibachc01939c2013-06-26 15:55:15 +02001283 CONFIG_TPM_ATMEL_TWI
1284 Support for Atmel TWI TPM device. Requires I2C support.
1285
Che-liang Chiou90899cc2013-04-12 11:04:34 +00001286 CONFIG_TPM_TIS_LPC
Vadim Bendebury5e124722011-10-17 08:36:14 +00001287 Support for generic parallel port TPM devices. Only one device
1288 per system is supported at this time.
1289
1290 CONFIG_TPM_TIS_BASE_ADDRESS
1291 Base address where the generic TPM device is mapped
1292 to. Contemporary x86 systems usually map it at
1293 0xfed40000.
1294
Reinhard Pfaube6c1522013-06-26 15:55:13 +02001295 CONFIG_CMD_TPM
1296 Add tpm monitor functions.
1297 Requires CONFIG_TPM. If CONFIG_TPM_AUTH_SESSIONS is set, also
1298 provides monitor access to authorized functions.
1299
1300 CONFIG_TPM
1301 Define this to enable the TPM support library which provides
1302 functional interfaces to some TPM commands.
1303 Requires support for a TPM device.
1304
1305 CONFIG_TPM_AUTH_SESSIONS
1306 Define this to enable authorized functions in the TPM library.
1307 Requires CONFIG_TPM and CONFIG_SHA1.
1308
wdenkc6097192002-11-03 00:24:07 +00001309- USB Support:
1310 At the moment only the UHCI host controller is
wdenk4d13cba2004-03-14 14:09:05 +00001311 supported (PIP405, MIP405, MPC5200); define
wdenkc6097192002-11-03 00:24:07 +00001312 CONFIG_USB_UHCI to enable it.
1313 define CONFIG_USB_KEYBOARD to enable the USB Keyboard
wdenk30d56fa2004-10-09 22:44:59 +00001314 and define CONFIG_USB_STORAGE to enable the USB
wdenkc6097192002-11-03 00:24:07 +00001315 storage devices.
1316 Note:
1317 Supported are USB Keyboards and USB Floppy drives
1318 (TEAC FD-05PUB).
wdenk4d13cba2004-03-14 14:09:05 +00001319 MPC5200 USB requires additional defines:
1320 CONFIG_USB_CLOCK
1321 for 528 MHz Clock: 0x0001bbbb
Eric Millbrandt307ecb62009-08-13 08:32:37 -05001322 CONFIG_PSC3_USB
1323 for USB on PSC3
wdenk4d13cba2004-03-14 14:09:05 +00001324 CONFIG_USB_CONFIG
1325 for differential drivers: 0x00001000
1326 for single ended drivers: 0x00005000
Eric Millbrandt307ecb62009-08-13 08:32:37 -05001327 for differential drivers on PSC3: 0x00000100
1328 for single ended drivers on PSC3: 0x00004100
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +02001329 CONFIG_SYS_USB_EVENT_POLL
Zhang Weifdcfaa12007-06-06 10:08:13 +02001330 May be defined to allow interrupt polling
1331 instead of using asynchronous interrupts
wdenk4d13cba2004-03-14 14:09:05 +00001332
Simon Glass9ab4ce22012-02-27 10:52:47 +00001333 CONFIG_USB_EHCI_TXFIFO_THRESH enables setting of the
1334 txfilltuning field in the EHCI controller on reset.
1335
Oleksandr Tymoshenko6e9e0622014-02-01 21:51:25 -07001336 CONFIG_USB_DWC2_REG_ADDR the physical CPU address of the DWC2
1337 HW module registers.
1338
Wolfgang Denk16c8d5e2006-06-14 17:45:53 +02001339- USB Device:
1340 Define the below if you wish to use the USB console.
1341 Once firmware is rebuilt from a serial console issue the
1342 command "setenv stdin usbtty; setenv stdout usbtty" and
Marcel Ziswiler11ccc332008-07-09 08:17:15 +02001343 attach your USB cable. The Unix command "dmesg" should print
Wolfgang Denk16c8d5e2006-06-14 17:45:53 +02001344 it has found a new device. The environment variable usbtty
1345 can be set to gserial or cdc_acm to enable your device to
Wolfgang Denk386eda02006-06-14 18:14:56 +02001346 appear to a USB host as a Linux gserial device or a
Wolfgang Denk16c8d5e2006-06-14 17:45:53 +02001347 Common Device Class Abstract Control Model serial device.
1348 If you select usbtty = gserial you should be able to enumerate
1349 a Linux host by
1350 # modprobe usbserial vendor=0xVendorID product=0xProductID
1351 else if using cdc_acm, simply setting the environment
1352 variable usbtty to be cdc_acm should suffice. The following
1353 might be defined in YourBoardName.h
Wolfgang Denk386eda02006-06-14 18:14:56 +02001354
Wolfgang Denk16c8d5e2006-06-14 17:45:53 +02001355 CONFIG_USB_DEVICE
1356 Define this to build a UDC device
wdenkc6097192002-11-03 00:24:07 +00001357
Wolfgang Denk16c8d5e2006-06-14 17:45:53 +02001358 CONFIG_USB_TTY
1359 Define this to have a tty type of device available to
1360 talk to the UDC device
Wolfgang Denk386eda02006-06-14 18:14:56 +02001361
Vipin KUMARf9da0f82012-03-26 15:38:06 +05301362 CONFIG_USBD_HS
1363 Define this to enable the high speed support for usb
1364 device and usbtty. If this feature is enabled, a routine
1365 int is_usbd_high_speed(void)
1366 also needs to be defined by the driver to dynamically poll
1367 whether the enumeration has succeded at high speed or full
1368 speed.
1369
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +02001370 CONFIG_SYS_CONSOLE_IS_IN_ENV
Wolfgang Denk16c8d5e2006-06-14 17:45:53 +02001371 Define this if you want stdin, stdout &/or stderr to
1372 be set to usbtty.
1373
1374 mpc8xx:
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +02001375 CONFIG_SYS_USB_EXTC_CLK 0xBLAH
Wolfgang Denk16c8d5e2006-06-14 17:45:53 +02001376 Derive USB clock from external clock "blah"
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +02001377 - CONFIG_SYS_USB_EXTC_CLK 0x02
Wolfgang Denk386eda02006-06-14 18:14:56 +02001378
Wolfgang Denk386eda02006-06-14 18:14:56 +02001379 If you have a USB-IF assigned VendorID then you may wish to
Wolfgang Denk16c8d5e2006-06-14 17:45:53 +02001380 define your own vendor specific values either in BoardName.h
Wolfgang Denk386eda02006-06-14 18:14:56 +02001381 or directly in usbd_vendor_info.h. If you don't define
Wolfgang Denk16c8d5e2006-06-14 17:45:53 +02001382 CONFIG_USBD_MANUFACTURER, CONFIG_USBD_PRODUCT_NAME,
1383 CONFIG_USBD_VENDORID and CONFIG_USBD_PRODUCTID, then U-Boot
1384 should pretend to be a Linux device to it's target host.
1385
1386 CONFIG_USBD_MANUFACTURER
1387 Define this string as the name of your company for
1388 - CONFIG_USBD_MANUFACTURER "my company"
Wolfgang Denk386eda02006-06-14 18:14:56 +02001389
Wolfgang Denk16c8d5e2006-06-14 17:45:53 +02001390 CONFIG_USBD_PRODUCT_NAME
1391 Define this string as the name of your product
1392 - CONFIG_USBD_PRODUCT_NAME "acme usb device"
1393
1394 CONFIG_USBD_VENDORID
1395 Define this as your assigned Vendor ID from the USB
1396 Implementors Forum. This *must* be a genuine Vendor ID
1397 to avoid polluting the USB namespace.
1398 - CONFIG_USBD_VENDORID 0xFFFF
Wolfgang Denk386eda02006-06-14 18:14:56 +02001399
Wolfgang Denk16c8d5e2006-06-14 17:45:53 +02001400 CONFIG_USBD_PRODUCTID
1401 Define this as the unique Product ID
1402 for your device
1403 - CONFIG_USBD_PRODUCTID 0xFFFF
wdenkc6097192002-11-03 00:24:07 +00001404
Igor Grinbergd70a5602011-12-12 12:08:35 +02001405- ULPI Layer Support:
1406 The ULPI (UTMI Low Pin (count) Interface) PHYs are supported via
1407 the generic ULPI layer. The generic layer accesses the ULPI PHY
1408 via the platform viewport, so you need both the genric layer and
1409 the viewport enabled. Currently only Chipidea/ARC based
1410 viewport is supported.
1411 To enable the ULPI layer support, define CONFIG_USB_ULPI and
1412 CONFIG_USB_ULPI_VIEWPORT in your board configuration file.
Lucas Stach6d365ea2012-10-01 00:44:35 +02001413 If your ULPI phy needs a different reference clock than the
1414 standard 24 MHz then you have to define CONFIG_ULPI_REF_CLK to
1415 the appropriate value in Hz.
wdenkc6097192002-11-03 00:24:07 +00001416
1417- MMC Support:
1418 The MMC controller on the Intel PXA is supported. To
1419 enable this define CONFIG_MMC. The MMC can be
1420 accessed from the boot prompt by mapping the device
1421 to physical memory similar to flash. Command line is
Jon Loeliger602ad3b2007-06-11 19:03:39 -05001422 enabled with CONFIG_CMD_MMC. The MMC driver also works with
1423 the FAT fs. This is enabled with CONFIG_CMD_FAT.
wdenkc6097192002-11-03 00:24:07 +00001424
Yoshihiro Shimodaafb35662011-07-04 22:21:22 +00001425 CONFIG_SH_MMCIF
1426 Support for Renesas on-chip MMCIF controller
1427
1428 CONFIG_SH_MMCIF_ADDR
1429 Define the base address of MMCIF registers
1430
1431 CONFIG_SH_MMCIF_CLK
1432 Define the clock frequency for MMCIF
1433
Pierre Aubert1fd93c62014-04-24 10:30:08 +02001434 CONFIG_SUPPORT_EMMC_BOOT
1435 Enable some additional features of the eMMC boot partitions.
1436
1437 CONFIG_SUPPORT_EMMC_RPMB
1438 Enable the commands for reading, writing and programming the
1439 key for the Replay Protection Memory Block partition in eMMC.
1440
Tom Rinib3ba6e92013-03-14 05:32:47 +00001441- USB Device Firmware Update (DFU) class support:
Paul Kocialkowski01acd6a2015-06-12 19:56:58 +02001442 CONFIG_USB_FUNCTION_DFU
Tom Rinib3ba6e92013-03-14 05:32:47 +00001443 This enables the USB portion of the DFU USB class
1444
1445 CONFIG_CMD_DFU
1446 This enables the command "dfu" which is used to have
1447 U-Boot create a DFU class device via USB. This command
1448 requires that the "dfu_alt_info" environment variable be
1449 set and define the alt settings to expose to the host.
1450
1451 CONFIG_DFU_MMC
1452 This enables support for exposing (e)MMC devices via DFU.
1453
Pantelis Antoniouc6631762013-03-14 05:32:52 +00001454 CONFIG_DFU_NAND
1455 This enables support for exposing NAND devices via DFU.
1456
Afzal Mohammeda9479f02013-09-18 01:15:24 +05301457 CONFIG_DFU_RAM
1458 This enables support for exposing RAM via DFU.
1459 Note: DFU spec refer to non-volatile memory usage, but
1460 allow usages beyond the scope of spec - here RAM usage,
1461 one that would help mostly the developer.
1462
Heiko Schochere7e75c72013-06-12 06:05:51 +02001463 CONFIG_SYS_DFU_DATA_BUF_SIZE
1464 Dfu transfer uses a buffer before writing data to the
1465 raw storage device. Make the size (in bytes) of this buffer
1466 configurable. The size of this buffer is also configurable
1467 through the "dfu_bufsiz" environment variable.
1468
Pantelis Antoniouea2453d2013-03-14 05:32:48 +00001469 CONFIG_SYS_DFU_MAX_FILE_SIZE
1470 When updating files rather than the raw storage device,
1471 we use a static buffer to copy the file into and then write
1472 the buffer once we've been given the whole file. Define
1473 this to the maximum filesize (in bytes) for the buffer.
1474 Default is 4 MiB if undefined.
1475
Heiko Schocher001a8312014-03-18 08:09:56 +01001476 DFU_DEFAULT_POLL_TIMEOUT
1477 Poll timeout [ms], is the timeout a device can send to the
1478 host. The host must wait for this timeout before sending
1479 a subsequent DFU_GET_STATUS request to the device.
1480
1481 DFU_MANIFEST_POLL_TIMEOUT
1482 Poll timeout [ms], which the device sends to the host when
1483 entering dfuMANIFEST state. Host waits this timeout, before
1484 sending again an USB request to the device.
1485
Sebastian Siewior3aab70a2014-05-05 15:08:10 -05001486- USB Device Android Fastboot support:
Paul Kocialkowski17da3c02015-06-12 19:56:59 +02001487 CONFIG_USB_FUNCTION_FASTBOOT
1488 This enables the USB part of the fastboot gadget
1489
Sebastian Siewior3aab70a2014-05-05 15:08:10 -05001490 CONFIG_CMD_FASTBOOT
1491 This enables the command "fastboot" which enables the Android
1492 fastboot mode for the platform's USB device. Fastboot is a USB
1493 protocol for downloading images, flashing and device control
1494 used on Android devices.
1495 See doc/README.android-fastboot for more information.
1496
1497 CONFIG_ANDROID_BOOT_IMAGE
1498 This enables support for booting images which use the Android
1499 image format header.
1500
Paul Kocialkowskia588d992015-07-20 12:38:22 +02001501 CONFIG_FASTBOOT_BUF_ADDR
Sebastian Siewior3aab70a2014-05-05 15:08:10 -05001502 The fastboot protocol requires a large memory buffer for
1503 downloads. Define this to the starting RAM address to use for
1504 downloaded images.
1505
Paul Kocialkowskia588d992015-07-20 12:38:22 +02001506 CONFIG_FASTBOOT_BUF_SIZE
Sebastian Siewior3aab70a2014-05-05 15:08:10 -05001507 The fastboot protocol requires a large memory buffer for
1508 downloads. This buffer should be as large as possible for a
1509 platform. Define this to the size available RAM for fastboot.
1510
Steve Raed1b5ed02014-08-26 11:47:28 -07001511 CONFIG_FASTBOOT_FLASH
1512 The fastboot protocol includes a "flash" command for writing
1513 the downloaded image to a non-volatile storage device. Define
1514 this to enable the "fastboot flash" command.
1515
1516 CONFIG_FASTBOOT_FLASH_MMC_DEV
1517 The fastboot "flash" command requires additional information
1518 regarding the non-volatile storage device. Define this to
1519 the eMMC device that fastboot should use to store the image.
1520
Steve Rae0ff7e582014-12-12 15:51:54 -08001521 CONFIG_FASTBOOT_GPT_NAME
1522 The fastboot "flash" command supports writing the downloaded
1523 image to the Protective MBR and the Primary GUID Partition
1524 Table. (Additionally, this downloaded image is post-processed
1525 to generate and write the Backup GUID Partition Table.)
1526 This occurs when the specified "partition name" on the
1527 "fastboot flash" command line matches this value.
Petr Kulhavy6f6c8632016-09-09 10:27:18 +02001528 The default is "gpt" if undefined.
Steve Rae0ff7e582014-12-12 15:51:54 -08001529
Petr Kulhavyb6dd69a2016-09-09 10:27:16 +02001530 CONFIG_FASTBOOT_MBR_NAME
1531 The fastboot "flash" command supports writing the downloaded
1532 image to DOS MBR.
1533 This occurs when the "partition name" specified on the
1534 "fastboot flash" command line matches this value.
1535 If not defined the default value "mbr" is used.
1536
wdenk6705d812004-08-02 23:22:59 +00001537- Journaling Flash filesystem support:
Simon Glassb2482df2016-10-02 18:00:59 -06001538 CONFIG_JFFS2_NAND
wdenk6705d812004-08-02 23:22:59 +00001539 Define these for a default partition on a NAND device
1540
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +02001541 CONFIG_SYS_JFFS2_FIRST_SECTOR,
1542 CONFIG_SYS_JFFS2_FIRST_BANK, CONFIG_SYS_JFFS2_NUM_BANKS
wdenk6705d812004-08-02 23:22:59 +00001543 Define these for a default partition on a NOR device
1544
Donggeun Kimc30a15e2011-10-24 21:15:28 +00001545- FAT(File Allocation Table) filesystem write function support:
1546 CONFIG_FAT_WRITE
Donggeun Kim656f4c62012-03-22 04:38:56 +00001547
1548 Define this to enable support for saving memory data as a
1549 file in FAT formatted partition.
1550
1551 This will also enable the command "fatwrite" enabling the
1552 user to write files to FAT.
Donggeun Kimc30a15e2011-10-24 21:15:28 +00001553
Alexander von Gernleredb42db2016-10-07 19:44:14 +02001554- CBFS (Coreboot Filesystem) support:
Gabe Black84cd9322012-10-12 14:26:11 +00001555 CONFIG_CMD_CBFS
1556
1557 Define this to enable support for reading from a Coreboot
1558 filesystem. Available commands are cbfsinit, cbfsinfo, cbfsls
1559 and cbfsload.
1560
Siva Durga Prasad Paladugu4f0d1a22014-05-26 19:18:37 +05301561- FAT(File Allocation Table) filesystem cluster size:
1562 CONFIG_FS_FAT_MAX_CLUSTSIZE
1563
1564 Define the max cluster size for fat operations else
1565 a default value of 65536 will be defined.
1566
wdenkc6097192002-11-03 00:24:07 +00001567- Keyboard Support:
Simon Glass39f615e2015-11-11 10:05:47 -07001568 See Kconfig help for available keyboard drivers.
1569
1570 CONFIG_KEYBOARD
1571
1572 Define this to enable a custom keyboard support.
1573 This simply calls drv_keyboard_init() which must be
1574 defined in your board-specific files. This option is deprecated
1575 and is only used by novena. For new boards, use driver model
1576 instead.
wdenkc6097192002-11-03 00:24:07 +00001577
1578- Video support:
Timur Tabi7d3053f2011-02-15 17:09:19 -06001579 CONFIG_FSL_DIU_FB
Wolfgang Denk04e5ae72011-09-11 21:24:09 +02001580 Enable the Freescale DIU video driver. Reference boards for
Timur Tabi7d3053f2011-02-15 17:09:19 -06001581 SOCs that have a DIU should define this macro to enable DIU
1582 support, and should also define these other macros:
1583
1584 CONFIG_SYS_DIU_ADDR
1585 CONFIG_VIDEO
1586 CONFIG_CMD_BMP
1587 CONFIG_CFB_CONSOLE
1588 CONFIG_VIDEO_SW_CURSOR
1589 CONFIG_VGA_AS_SINGLE_DEVICE
1590 CONFIG_VIDEO_LOGO
1591 CONFIG_VIDEO_BMP_LOGO
1592
Timur Tabiba8e76b2011-04-11 14:18:22 -05001593 The DIU driver will look for the 'video-mode' environment
1594 variable, and if defined, enable the DIU as a console during
Fabio Estevam8eca9432016-04-02 11:53:18 -03001595 boot. See the documentation file doc/README.video for a
Timur Tabiba8e76b2011-04-11 14:18:22 -05001596 description of this variable.
Timur Tabi7d3053f2011-02-15 17:09:19 -06001597
wdenkc6097192002-11-03 00:24:07 +00001598- LCD Support: CONFIG_LCD
1599
1600 Define this to enable LCD support (for output to LCD
1601 display); also select one of the supported displays
1602 by defining one of these:
1603
Stelian Pop39cf4802008-05-09 21:57:18 +02001604 CONFIG_ATMEL_LCD:
1605
1606 HITACHI TX09D70VM1CCA, 3.5", 240x320.
1607
wdenkfd3103b2003-11-25 16:55:19 +00001608 CONFIG_NEC_NL6448AC33:
wdenkc6097192002-11-03 00:24:07 +00001609
wdenkfd3103b2003-11-25 16:55:19 +00001610 NEC NL6448AC33-18. Active, color, single scan.
wdenkc6097192002-11-03 00:24:07 +00001611
wdenkfd3103b2003-11-25 16:55:19 +00001612 CONFIG_NEC_NL6448BC20
wdenkc6097192002-11-03 00:24:07 +00001613
wdenkfd3103b2003-11-25 16:55:19 +00001614 NEC NL6448BC20-08. 6.5", 640x480.
1615 Active, color, single scan.
1616
1617 CONFIG_NEC_NL6448BC33_54
1618
1619 NEC NL6448BC33-54. 10.4", 640x480.
wdenkc6097192002-11-03 00:24:07 +00001620 Active, color, single scan.
1621
1622 CONFIG_SHARP_16x9
1623
1624 Sharp 320x240. Active, color, single scan.
1625 It isn't 16x9, and I am not sure what it is.
1626
1627 CONFIG_SHARP_LQ64D341
1628
1629 Sharp LQ64D341 display, 640x480.
1630 Active, color, single scan.
1631
1632 CONFIG_HLD1045
1633
1634 HLD1045 display, 640x480.
1635 Active, color, single scan.
1636
1637 CONFIG_OPTREX_BW
1638
1639 Optrex CBL50840-2 NF-FW 99 22 M5
1640 or
1641 Hitachi LMG6912RPFC-00T
1642 or
1643 Hitachi SP14Q002
1644
1645 320x240. Black & white.
1646
1647 Normally display is black on white background; define
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +02001648 CONFIG_SYS_WHITE_ON_BLACK to get it inverted.
wdenkc6097192002-11-03 00:24:07 +00001649
Simon Glass676d3192012-10-17 13:24:54 +00001650 CONFIG_LCD_ALIGNMENT
1651
Jeremiah Mahlerb445bbb2015-01-04 18:56:50 -08001652 Normally the LCD is page-aligned (typically 4KB). If this is
Simon Glass676d3192012-10-17 13:24:54 +00001653 defined then the LCD will be aligned to this value instead.
1654 For ARM it is sometimes useful to use MMU_SECTION_SIZE
1655 here, since it is cheaper to change data cache settings on
1656 a per-section basis.
1657
1658
Hannes Petermaier604c7d42015-03-27 08:01:38 +01001659 CONFIG_LCD_ROTATION
1660
1661 Sometimes, for example if the display is mounted in portrait
1662 mode or even if it's mounted landscape but rotated by 180degree,
1663 we need to rotate our content of the display relative to the
1664 framebuffer, so that user can read the messages which are
1665 printed out.
1666 Once CONFIG_LCD_ROTATION is defined, the lcd_console will be
1667 initialized with a given rotation from "vl_rot" out of
1668 "vidinfo_t" which is provided by the board specific code.
1669 The value for vl_rot is coded as following (matching to
1670 fbcon=rotate:<n> linux-kernel commandline):
1671 0 = no rotation respectively 0 degree
1672 1 = 90 degree rotation
1673 2 = 180 degree rotation
1674 3 = 270 degree rotation
1675
1676 If CONFIG_LCD_ROTATION is not defined, the console will be
1677 initialized with 0degree rotation.
1678
Tom Wai-Hong Tam45d7f522012-09-28 15:11:16 +00001679 CONFIG_LCD_BMP_RLE8
1680
1681 Support drawing of RLE8-compressed bitmaps on the LCD.
1682
Tom Wai-Hong Tam735987c2012-12-05 14:46:40 +00001683 CONFIG_I2C_EDID
1684
1685 Enables an 'i2c edid' command which can read EDID
1686 information over I2C from an attached LCD display.
1687
wdenk7152b1d2003-09-05 23:19:14 +00001688- Splash Screen Support: CONFIG_SPLASH_SCREEN
wdenkd791b1d2003-04-20 14:04:18 +00001689
wdenk8bde7f72003-06-27 21:31:46 +00001690 If this option is set, the environment is checked for
1691 a variable "splashimage". If found, the usual display
1692 of logo, copyright and system information on the LCD
wdenke94d2cd2004-06-30 22:59:18 +00001693 is suppressed and the BMP image at the address
wdenk8bde7f72003-06-27 21:31:46 +00001694 specified in "splashimage" is loaded instead. The
1695 console is redirected to the "nulldev", too. This
1696 allows for a "silent" boot where a splash screen is
1697 loaded very quickly after power-on.
wdenkd791b1d2003-04-20 14:04:18 +00001698
Nikita Kiryanovc0880482013-02-24 21:28:43 +00001699 CONFIG_SPLASHIMAGE_GUARD
1700
1701 If this option is set, then U-Boot will prevent the environment
1702 variable "splashimage" from being set to a problematic address
Fabio Estevamab5645f2016-03-23 12:46:12 -03001703 (see doc/README.displaying-bmps).
Nikita Kiryanovc0880482013-02-24 21:28:43 +00001704 This option is useful for targets where, due to alignment
1705 restrictions, an improperly aligned BMP image will cause a data
1706 abort. If you think you will not have problems with unaligned
1707 accesses (for example because your toolchain prevents them)
1708 there is no need to set this option.
1709
Matthias Weisser1ca298c2009-07-09 16:07:30 +02001710 CONFIG_SPLASH_SCREEN_ALIGN
1711
1712 If this option is set the splash image can be freely positioned
1713 on the screen. Environment variable "splashpos" specifies the
1714 position as "x,y". If a positive number is given it is used as
1715 number of pixel from left/top. If a negative number is given it
1716 is used as number of pixel from right/bottom. You can also
1717 specify 'm' for centering the image.
1718
1719 Example:
1720 setenv splashpos m,m
1721 => image at center of screen
1722
1723 setenv splashpos 30,20
1724 => image at x = 30 and y = 20
1725
1726 setenv splashpos -10,m
1727 => vertically centered image
1728 at x = dspWidth - bmpWidth - 9
1729
Stefan Roese98f4a3d2005-09-22 09:04:17 +02001730- Gzip compressed BMP image support: CONFIG_VIDEO_BMP_GZIP
1731
1732 If this option is set, additionally to standard BMP
1733 images, gzipped BMP images can be displayed via the
1734 splashscreen support or the bmp command.
1735
Anatolij Gustschind5011762010-03-15 14:50:25 +01001736- Run length encoded BMP image (RLE8) support: CONFIG_VIDEO_BMP_RLE8
1737
1738 If this option is set, 8-bit RLE compressed BMP images
1739 can be displayed via the splashscreen support or the
1740 bmp command.
1741
wdenkc29fdfc2003-08-29 20:57:53 +00001742- Compression support:
Kees Cook8ef70472013-08-16 07:59:12 -07001743 CONFIG_GZIP
1744
1745 Enabled by default to support gzip compressed images.
1746
wdenkc29fdfc2003-08-29 20:57:53 +00001747 CONFIG_BZIP2
1748
1749 If this option is set, support for bzip2 compressed
1750 images is included. If not, only uncompressed and gzip
1751 compressed images are supported.
1752
wdenk42d1f032003-10-15 23:53:47 +00001753 NOTE: the bzip2 algorithm requires a lot of RAM, so
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +02001754 the malloc area (as defined by CONFIG_SYS_MALLOC_LEN) should
wdenk42d1f032003-10-15 23:53:47 +00001755 be at least 4MB.
wdenkd791b1d2003-04-20 14:04:18 +00001756
Luigi 'Comio' Mantellinifc9c1722008-09-08 02:46:13 +02001757 CONFIG_LZMA
1758
1759 If this option is set, support for lzma compressed
1760 images is included.
1761
1762 Note: The LZMA algorithm adds between 2 and 4KB of code and it
1763 requires an amount of dynamic memory that is given by the
1764 formula:
1765
1766 (1846 + 768 << (lc + lp)) * sizeof(uint16)
1767
1768 Where lc and lp stand for, respectively, Literal context bits
1769 and Literal pos bits.
1770
1771 This value is upper-bounded by 14MB in the worst case. Anyway,
1772 for a ~4MB large kernel image, we have lc=3 and lp=0 for a
1773 total amount of (1846 + 768 << (3 + 0)) * 2 = ~41KB... that is
1774 a very small buffer.
1775
1776 Use the lzmainfo tool to determinate the lc and lp values and
1777 then calculate the amount of needed dynamic memory (ensuring
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +02001778 the appropriate CONFIG_SYS_MALLOC_LEN value).
Luigi 'Comio' Mantellinifc9c1722008-09-08 02:46:13 +02001779
Kees Cook8ef70472013-08-16 07:59:12 -07001780 CONFIG_LZO
1781
1782 If this option is set, support for LZO compressed images
1783 is included.
1784
wdenk17ea1172004-06-06 21:51:03 +00001785- MII/PHY support:
1786 CONFIG_PHY_ADDR
1787
1788 The address of PHY on MII bus.
1789
1790 CONFIG_PHY_CLOCK_FREQ (ppc4xx)
1791
1792 The clock frequency of the MII bus
1793
1794 CONFIG_PHY_GIGE
1795
1796 If this option is set, support for speed/duplex
Marcel Ziswiler11ccc332008-07-09 08:17:15 +02001797 detection of gigabit PHY is included.
wdenk17ea1172004-06-06 21:51:03 +00001798
1799 CONFIG_PHY_RESET_DELAY
1800
1801 Some PHY like Intel LXT971A need extra delay after
1802 reset before any MII register access is possible.
1803 For such PHY, set this option to the usec delay
1804 required. (minimum 300usec for LXT971A)
1805
1806 CONFIG_PHY_CMD_DELAY (ppc4xx)
1807
1808 Some PHY like Intel LXT971A need extra delay after
1809 command issued before MII status register can be read
1810
wdenkc6097192002-11-03 00:24:07 +00001811- IP address:
1812 CONFIG_IPADDR
1813
1814 Define a default value for the IP address to use for
Marcel Ziswiler11ccc332008-07-09 08:17:15 +02001815 the default Ethernet interface, in case this is not
wdenkc6097192002-11-03 00:24:07 +00001816 determined through e.g. bootp.
Wolfgang Denk1ebcd652011-10-26 10:21:22 +00001817 (Environment variable "ipaddr")
wdenkc6097192002-11-03 00:24:07 +00001818
1819- Server IP address:
1820 CONFIG_SERVERIP
1821
Marcel Ziswiler11ccc332008-07-09 08:17:15 +02001822 Defines a default value for the IP address of a TFTP
wdenkc6097192002-11-03 00:24:07 +00001823 server to contact when using the "tftboot" command.
Wolfgang Denk1ebcd652011-10-26 10:21:22 +00001824 (Environment variable "serverip")
wdenkc6097192002-11-03 00:24:07 +00001825
Robin Getz97cfe862009-07-21 12:15:28 -04001826 CONFIG_KEEP_SERVERADDR
1827
1828 Keeps the server's MAC address, in the env 'serveraddr'
1829 for passing to bootargs (like Linux's netconsole option)
1830
Wolfgang Denk1ebcd652011-10-26 10:21:22 +00001831- Gateway IP address:
1832 CONFIG_GATEWAYIP
1833
1834 Defines a default value for the IP address of the
1835 default router where packets to other networks are
1836 sent to.
1837 (Environment variable "gatewayip")
1838
1839- Subnet mask:
1840 CONFIG_NETMASK
1841
1842 Defines a default value for the subnet mask (or
1843 routing prefix) which is used to determine if an IP
1844 address belongs to the local subnet or needs to be
1845 forwarded through a router.
1846 (Environment variable "netmask")
1847
David Updegraff53a5c422007-06-11 10:41:07 -05001848- Multicast TFTP Mode:
1849 CONFIG_MCAST_TFTP
1850
1851 Defines whether you want to support multicast TFTP as per
1852 rfc-2090; for example to work with atftp. Lets lots of targets
Marcel Ziswiler11ccc332008-07-09 08:17:15 +02001853 tftp down the same boot image concurrently. Note: the Ethernet
David Updegraff53a5c422007-06-11 10:41:07 -05001854 driver in use must provide a function: mcast() to join/leave a
1855 multicast group.
1856
wdenkc6097192002-11-03 00:24:07 +00001857- BOOTP Recovery Mode:
1858 CONFIG_BOOTP_RANDOM_DELAY
1859
1860 If you have many targets in a network that try to
1861 boot using BOOTP, you may want to avoid that all
1862 systems send out BOOTP requests at precisely the same
1863 moment (which would happen for instance at recovery
1864 from a power failure, when all systems will try to
1865 boot, thus flooding the BOOTP server. Defining
1866 CONFIG_BOOTP_RANDOM_DELAY causes a random delay to be
1867 inserted before sending out BOOTP requests. The
Wolfgang Denk6c33c782007-08-06 23:21:05 +02001868 following delays are inserted then:
wdenkc6097192002-11-03 00:24:07 +00001869
1870 1st BOOTP request: delay 0 ... 1 sec
1871 2nd BOOTP request: delay 0 ... 2 sec
1872 3rd BOOTP request: delay 0 ... 4 sec
1873 4th and following
1874 BOOTP requests: delay 0 ... 8 sec
1875
Thierry Reding92ac8ac2014-08-19 10:21:24 +02001876 CONFIG_BOOTP_ID_CACHE_SIZE
1877
1878 BOOTP packets are uniquely identified using a 32-bit ID. The
1879 server will copy the ID from client requests to responses and
1880 U-Boot will use this to determine if it is the destination of
1881 an incoming response. Some servers will check that addresses
1882 aren't in use before handing them out (usually using an ARP
1883 ping) and therefore take up to a few hundred milliseconds to
1884 respond. Network congestion may also influence the time it
1885 takes for a response to make it back to the client. If that
1886 time is too long, U-Boot will retransmit requests. In order
1887 to allow earlier responses to still be accepted after these
1888 retransmissions, U-Boot's BOOTP client keeps a small cache of
1889 IDs. The CONFIG_BOOTP_ID_CACHE_SIZE controls the size of this
1890 cache. The default is to keep IDs for up to four outstanding
1891 requests. Increasing this will allow U-Boot to accept offers
1892 from a BOOTP client in networks with unusually high latency.
1893
stroesefe389a82003-08-28 14:17:32 +00001894- DHCP Advanced Options:
Jon Loeliger1fe80d72007-07-09 22:08:34 -05001895 You can fine tune the DHCP functionality by defining
1896 CONFIG_BOOTP_* symbols:
stroesefe389a82003-08-28 14:17:32 +00001897
Jon Loeliger1fe80d72007-07-09 22:08:34 -05001898 CONFIG_BOOTP_SUBNETMASK
1899 CONFIG_BOOTP_GATEWAY
1900 CONFIG_BOOTP_HOSTNAME
1901 CONFIG_BOOTP_NISDOMAIN
1902 CONFIG_BOOTP_BOOTPATH
1903 CONFIG_BOOTP_BOOTFILESIZE
1904 CONFIG_BOOTP_DNS
1905 CONFIG_BOOTP_DNS2
1906 CONFIG_BOOTP_SEND_HOSTNAME
1907 CONFIG_BOOTP_NTPSERVER
1908 CONFIG_BOOTP_TIMEOFFSET
1909 CONFIG_BOOTP_VENDOREX
Joe Hershberger2c00e092012-05-23 07:59:19 +00001910 CONFIG_BOOTP_MAY_FAIL
stroesefe389a82003-08-28 14:17:32 +00001911
Wilson Callan5d110f02007-07-28 10:56:13 -04001912 CONFIG_BOOTP_SERVERIP - TFTP server will be the serverip
1913 environment variable, not the BOOTP server.
stroesefe389a82003-08-28 14:17:32 +00001914
Joe Hershberger2c00e092012-05-23 07:59:19 +00001915 CONFIG_BOOTP_MAY_FAIL - If the DHCP server is not found
1916 after the configured retry count, the call will fail
1917 instead of starting over. This can be used to fail over
1918 to Link-local IP address configuration if the DHCP server
1919 is not available.
1920
stroesefe389a82003-08-28 14:17:32 +00001921 CONFIG_BOOTP_DNS2 - If a DHCP client requests the DNS
1922 serverip from a DHCP server, it is possible that more
1923 than one DNS serverip is offered to the client.
1924 If CONFIG_BOOTP_DNS2 is enabled, the secondary DNS
1925 serverip will be stored in the additional environment
1926 variable "dnsip2". The first DNS serverip is always
1927 stored in the variable "dnsip", when CONFIG_BOOTP_DNS
Jon Loeliger1fe80d72007-07-09 22:08:34 -05001928 is defined.
stroesefe389a82003-08-28 14:17:32 +00001929
1930 CONFIG_BOOTP_SEND_HOSTNAME - Some DHCP servers are capable
1931 to do a dynamic update of a DNS server. To do this, they
1932 need the hostname of the DHCP requester.
Wilson Callan5d110f02007-07-28 10:56:13 -04001933 If CONFIG_BOOTP_SEND_HOSTNAME is defined, the content
Jon Loeliger1fe80d72007-07-09 22:08:34 -05001934 of the "hostname" environment variable is passed as
1935 option 12 to the DHCP server.
stroesefe389a82003-08-28 14:17:32 +00001936
Aras Vaichasd9a2f412008-03-26 09:43:57 +11001937 CONFIG_BOOTP_DHCP_REQUEST_DELAY
1938
1939 A 32bit value in microseconds for a delay between
1940 receiving a "DHCP Offer" and sending the "DHCP Request".
1941 This fixes a problem with certain DHCP servers that don't
1942 respond 100% of the time to a "DHCP request". E.g. On an
1943 AT91RM9200 processor running at 180MHz, this delay needed
1944 to be *at least* 15,000 usec before a Windows Server 2003
1945 DHCP server would reply 100% of the time. I recommend at
1946 least 50,000 usec to be safe. The alternative is to hope
1947 that one of the retries will be successful but note that
1948 the DHCP timeout and retry process takes a longer than
1949 this delay.
1950
Joe Hershbergerd22c3382012-05-23 08:00:12 +00001951 - Link-local IP address negotiation:
1952 Negotiate with other link-local clients on the local network
1953 for an address that doesn't require explicit configuration.
1954 This is especially useful if a DHCP server cannot be guaranteed
1955 to exist in all environments that the device must operate.
1956
1957 See doc/README.link-local for more information.
1958
wdenka3d991b2004-04-15 21:48:45 +00001959 - CDP Options:
wdenk6e592382004-04-18 17:39:38 +00001960 CONFIG_CDP_DEVICE_ID
wdenka3d991b2004-04-15 21:48:45 +00001961
1962 The device id used in CDP trigger frames.
1963
1964 CONFIG_CDP_DEVICE_ID_PREFIX
1965
1966 A two character string which is prefixed to the MAC address
1967 of the device.
1968
1969 CONFIG_CDP_PORT_ID
1970
1971 A printf format string which contains the ascii name of
1972 the port. Normally is set to "eth%d" which sets
Marcel Ziswiler11ccc332008-07-09 08:17:15 +02001973 eth0 for the first Ethernet, eth1 for the second etc.
wdenka3d991b2004-04-15 21:48:45 +00001974
1975 CONFIG_CDP_CAPABILITIES
1976
1977 A 32bit integer which indicates the device capabilities;
1978 0x00000010 for a normal host which does not forwards.
1979
1980 CONFIG_CDP_VERSION
1981
1982 An ascii string containing the version of the software.
1983
1984 CONFIG_CDP_PLATFORM
1985
1986 An ascii string containing the name of the platform.
1987
1988 CONFIG_CDP_TRIGGER
1989
1990 A 32bit integer sent on the trigger.
1991
1992 CONFIG_CDP_POWER_CONSUMPTION
1993
1994 A 16bit integer containing the power consumption of the
1995 device in .1 of milliwatts.
1996
1997 CONFIG_CDP_APPLIANCE_VLAN_TYPE
1998
1999 A byte containing the id of the VLAN.
2000
Uri Mashiach79267ed2017-01-19 10:51:05 +02002001- Status LED: CONFIG_LED_STATUS
wdenkc6097192002-11-03 00:24:07 +00002002
2003 Several configurations allow to display the current
2004 status using a LED. For instance, the LED will blink
2005 fast while running U-Boot code, stop blinking as
2006 soon as a reply to a BOOTP request was received, and
2007 start blinking slow once the Linux kernel is running
2008 (supported by a status LED driver in the Linux
Uri Mashiach79267ed2017-01-19 10:51:05 +02002009 kernel). Defining CONFIG_LED_STATUS enables this
wdenkc6097192002-11-03 00:24:07 +00002010 feature in U-Boot.
2011
Igor Grinberg1df7bbb2013-11-08 01:03:50 +02002012 Additional options:
2013
Uri Mashiach79267ed2017-01-19 10:51:05 +02002014 CONFIG_LED_STATUS_GPIO
Igor Grinberg1df7bbb2013-11-08 01:03:50 +02002015 The status LED can be connected to a GPIO pin.
2016 In such cases, the gpio_led driver can be used as a
Uri Mashiach79267ed2017-01-19 10:51:05 +02002017 status LED backend implementation. Define CONFIG_LED_STATUS_GPIO
Igor Grinberg1df7bbb2013-11-08 01:03:50 +02002018 to include the gpio_led driver in the U-Boot binary.
2019
Igor Grinberg9dfdcdf2013-11-08 01:03:52 +02002020 CONFIG_GPIO_LED_INVERTED_TABLE
2021 Some GPIO connected LEDs may have inverted polarity in which
2022 case the GPIO high value corresponds to LED off state and
2023 GPIO low value corresponds to LED on state.
2024 In such cases CONFIG_GPIO_LED_INVERTED_TABLE may be defined
2025 with a list of GPIO LEDs that have inverted polarity.
2026
wdenkc6097192002-11-03 00:24:07 +00002027- CAN Support: CONFIG_CAN_DRIVER
2028
2029 Defining CONFIG_CAN_DRIVER enables CAN driver support
2030 on those systems that support this (optional)
2031 feature, like the TQM8xxL modules.
2032
Heiko Schocher3f4978c2012-01-16 21:12:24 +00002033- I2C Support: CONFIG_SYS_I2C
wdenkc6097192002-11-03 00:24:07 +00002034
Heiko Schocher3f4978c2012-01-16 21:12:24 +00002035 This enable the NEW i2c subsystem, and will allow you to use
2036 i2c commands at the u-boot command line (as long as you set
2037 CONFIG_CMD_I2C in CONFIG_COMMANDS) and communicate with i2c
2038 based realtime clock chips or other i2c devices. See
2039 common/cmd_i2c.c for a description of the command line
2040 interface.
2041
2042 ported i2c driver to the new framework:
Heiko Schocherea818db2013-01-29 08:53:15 +01002043 - drivers/i2c/soft_i2c.c:
2044 - activate first bus with CONFIG_SYS_I2C_SOFT define
2045 CONFIG_SYS_I2C_SOFT_SPEED and CONFIG_SYS_I2C_SOFT_SLAVE
2046 for defining speed and slave address
2047 - activate second bus with I2C_SOFT_DECLARATIONS2 define
2048 CONFIG_SYS_I2C_SOFT_SPEED_2 and CONFIG_SYS_I2C_SOFT_SLAVE_2
2049 for defining speed and slave address
2050 - activate third bus with I2C_SOFT_DECLARATIONS3 define
2051 CONFIG_SYS_I2C_SOFT_SPEED_3 and CONFIG_SYS_I2C_SOFT_SLAVE_3
2052 for defining speed and slave address
2053 - activate fourth bus with I2C_SOFT_DECLARATIONS4 define
2054 CONFIG_SYS_I2C_SOFT_SPEED_4 and CONFIG_SYS_I2C_SOFT_SLAVE_4
2055 for defining speed and slave address
Heiko Schocher3f4978c2012-01-16 21:12:24 +00002056
Heiko Schocher00f792e2012-10-24 13:48:22 +02002057 - drivers/i2c/fsl_i2c.c:
2058 - activate i2c driver with CONFIG_SYS_I2C_FSL
2059 define CONFIG_SYS_FSL_I2C_OFFSET for setting the register
2060 offset CONFIG_SYS_FSL_I2C_SPEED for the i2c speed and
2061 CONFIG_SYS_FSL_I2C_SLAVE for the slave addr of the first
2062 bus.
Wolfgang Denk93e14592013-10-04 17:43:24 +02002063 - If your board supports a second fsl i2c bus, define
Heiko Schocher00f792e2012-10-24 13:48:22 +02002064 CONFIG_SYS_FSL_I2C2_OFFSET for the register offset
2065 CONFIG_SYS_FSL_I2C2_SPEED for the speed and
2066 CONFIG_SYS_FSL_I2C2_SLAVE for the slave address of the
2067 second bus.
2068
Simon Glass1f2ba722012-10-30 07:28:53 +00002069 - drivers/i2c/tegra_i2c.c:
Nobuhiro Iwamatsu10cee512013-10-11 16:23:53 +09002070 - activate this driver with CONFIG_SYS_I2C_TEGRA
2071 - This driver adds 4 i2c buses with a fix speed from
2072 100000 and the slave addr 0!
Simon Glass1f2ba722012-10-30 07:28:53 +00002073
Dirk Eibach880540d2013-04-25 02:40:01 +00002074 - drivers/i2c/ppc4xx_i2c.c
2075 - activate this driver with CONFIG_SYS_I2C_PPC4XX
2076 - CONFIG_SYS_I2C_PPC4XX_CH0 activate hardware channel 0
2077 - CONFIG_SYS_I2C_PPC4XX_CH1 activate hardware channel 1
2078
tremfac96402013-09-21 18:13:35 +02002079 - drivers/i2c/i2c_mxc.c
2080 - activate this driver with CONFIG_SYS_I2C_MXC
Albert ARIBAUD \\(3ADEV\\)03544c62015-09-21 22:43:38 +02002081 - enable bus 1 with CONFIG_SYS_I2C_MXC_I2C1
2082 - enable bus 2 with CONFIG_SYS_I2C_MXC_I2C2
2083 - enable bus 3 with CONFIG_SYS_I2C_MXC_I2C3
2084 - enable bus 4 with CONFIG_SYS_I2C_MXC_I2C4
tremfac96402013-09-21 18:13:35 +02002085 - define speed for bus 1 with CONFIG_SYS_MXC_I2C1_SPEED
2086 - define slave for bus 1 with CONFIG_SYS_MXC_I2C1_SLAVE
2087 - define speed for bus 2 with CONFIG_SYS_MXC_I2C2_SPEED
2088 - define slave for bus 2 with CONFIG_SYS_MXC_I2C2_SLAVE
2089 - define speed for bus 3 with CONFIG_SYS_MXC_I2C3_SPEED
2090 - define slave for bus 3 with CONFIG_SYS_MXC_I2C3_SLAVE
Albert ARIBAUD \\(3ADEV\\)03544c62015-09-21 22:43:38 +02002091 - define speed for bus 4 with CONFIG_SYS_MXC_I2C4_SPEED
2092 - define slave for bus 4 with CONFIG_SYS_MXC_I2C4_SLAVE
Jeremiah Mahlerb445bbb2015-01-04 18:56:50 -08002093 If those defines are not set, default value is 100000
tremfac96402013-09-21 18:13:35 +02002094 for speed, and 0 for slave.
2095
Nobuhiro Iwamatsu1086bfa2013-09-27 16:58:30 +09002096 - drivers/i2c/rcar_i2c.c:
2097 - activate this driver with CONFIG_SYS_I2C_RCAR
2098 - This driver adds 4 i2c buses
2099
2100 - CONFIG_SYS_RCAR_I2C0_BASE for setting the register channel 0
2101 - CONFIG_SYS_RCAR_I2C0_SPEED for for the speed channel 0
2102 - CONFIG_SYS_RCAR_I2C1_BASE for setting the register channel 1
2103 - CONFIG_SYS_RCAR_I2C1_SPEED for for the speed channel 1
2104 - CONFIG_SYS_RCAR_I2C2_BASE for setting the register channel 2
2105 - CONFIG_SYS_RCAR_I2C2_SPEED for for the speed channel 2
2106 - CONFIG_SYS_RCAR_I2C3_BASE for setting the register channel 3
2107 - CONFIG_SYS_RCAR_I2C3_SPEED for for the speed channel 3
2108 - CONFIF_SYS_RCAR_I2C_NUM_CONTROLLERS for number of i2c buses
2109
Nobuhiro Iwamatsu2035d772013-10-29 13:33:51 +09002110 - drivers/i2c/sh_i2c.c:
2111 - activate this driver with CONFIG_SYS_I2C_SH
2112 - This driver adds from 2 to 5 i2c buses
2113
2114 - CONFIG_SYS_I2C_SH_BASE0 for setting the register channel 0
2115 - CONFIG_SYS_I2C_SH_SPEED0 for for the speed channel 0
2116 - CONFIG_SYS_I2C_SH_BASE1 for setting the register channel 1
2117 - CONFIG_SYS_I2C_SH_SPEED1 for for the speed channel 1
2118 - CONFIG_SYS_I2C_SH_BASE2 for setting the register channel 2
2119 - CONFIG_SYS_I2C_SH_SPEED2 for for the speed channel 2
2120 - CONFIG_SYS_I2C_SH_BASE3 for setting the register channel 3
2121 - CONFIG_SYS_I2C_SH_SPEED3 for for the speed channel 3
2122 - CONFIG_SYS_I2C_SH_BASE4 for setting the register channel 4
2123 - CONFIG_SYS_I2C_SH_SPEED4 for for the speed channel 4
Jeremiah Mahlerb445bbb2015-01-04 18:56:50 -08002124 - CONFIG_SYS_I2C_SH_NUM_CONTROLLERS for number of i2c buses
Nobuhiro Iwamatsu2035d772013-10-29 13:33:51 +09002125
Heiko Schocher6789e842013-10-22 11:03:18 +02002126 - drivers/i2c/omap24xx_i2c.c
2127 - activate this driver with CONFIG_SYS_I2C_OMAP24XX
2128 - CONFIG_SYS_OMAP24_I2C_SPEED speed channel 0
2129 - CONFIG_SYS_OMAP24_I2C_SLAVE slave addr channel 0
2130 - CONFIG_SYS_OMAP24_I2C_SPEED1 speed channel 1
2131 - CONFIG_SYS_OMAP24_I2C_SLAVE1 slave addr channel 1
2132 - CONFIG_SYS_OMAP24_I2C_SPEED2 speed channel 2
2133 - CONFIG_SYS_OMAP24_I2C_SLAVE2 slave addr channel 2
2134 - CONFIG_SYS_OMAP24_I2C_SPEED3 speed channel 3
2135 - CONFIG_SYS_OMAP24_I2C_SLAVE3 slave addr channel 3
2136 - CONFIG_SYS_OMAP24_I2C_SPEED4 speed channel 4
2137 - CONFIG_SYS_OMAP24_I2C_SLAVE4 slave addr channel 4
2138
Heiko Schocher0bdffe72013-11-08 07:30:53 +01002139 - drivers/i2c/zynq_i2c.c
2140 - activate this driver with CONFIG_SYS_I2C_ZYNQ
2141 - set CONFIG_SYS_I2C_ZYNQ_SPEED for speed setting
2142 - set CONFIG_SYS_I2C_ZYNQ_SLAVE for slave addr
2143
Naveen Krishna Che717fc62013-12-06 12:12:38 +05302144 - drivers/i2c/s3c24x0_i2c.c:
2145 - activate this driver with CONFIG_SYS_I2C_S3C24X0
2146 - This driver adds i2c buses (11 for Exynos5250, Exynos5420
2147 9 i2c buses for Exynos4 and 1 for S3C24X0 SoCs from Samsung)
2148 with a fix speed from 100000 and the slave addr 0!
2149
Dirk Eibachb46226b2014-07-03 09:28:18 +02002150 - drivers/i2c/ihs_i2c.c
2151 - activate this driver with CONFIG_SYS_I2C_IHS
2152 - CONFIG_SYS_I2C_IHS_CH0 activate hardware channel 0
2153 - CONFIG_SYS_I2C_IHS_SPEED_0 speed channel 0
2154 - CONFIG_SYS_I2C_IHS_SLAVE_0 slave addr channel 0
2155 - CONFIG_SYS_I2C_IHS_CH1 activate hardware channel 1
2156 - CONFIG_SYS_I2C_IHS_SPEED_1 speed channel 1
2157 - CONFIG_SYS_I2C_IHS_SLAVE_1 slave addr channel 1
2158 - CONFIG_SYS_I2C_IHS_CH2 activate hardware channel 2
2159 - CONFIG_SYS_I2C_IHS_SPEED_2 speed channel 2
2160 - CONFIG_SYS_I2C_IHS_SLAVE_2 slave addr channel 2
2161 - CONFIG_SYS_I2C_IHS_CH3 activate hardware channel 3
2162 - CONFIG_SYS_I2C_IHS_SPEED_3 speed channel 3
2163 - CONFIG_SYS_I2C_IHS_SLAVE_3 slave addr channel 3
Dirk Eibach071be892015-10-28 11:46:22 +01002164 - activate dual channel with CONFIG_SYS_I2C_IHS_DUAL
2165 - CONFIG_SYS_I2C_IHS_SPEED_0_1 speed channel 0_1
2166 - CONFIG_SYS_I2C_IHS_SLAVE_0_1 slave addr channel 0_1
2167 - CONFIG_SYS_I2C_IHS_SPEED_1_1 speed channel 1_1
2168 - CONFIG_SYS_I2C_IHS_SLAVE_1_1 slave addr channel 1_1
2169 - CONFIG_SYS_I2C_IHS_SPEED_2_1 speed channel 2_1
2170 - CONFIG_SYS_I2C_IHS_SLAVE_2_1 slave addr channel 2_1
2171 - CONFIG_SYS_I2C_IHS_SPEED_3_1 speed channel 3_1
2172 - CONFIG_SYS_I2C_IHS_SLAVE_3_1 slave addr channel 3_1
Dirk Eibachb46226b2014-07-03 09:28:18 +02002173
Heiko Schocher3f4978c2012-01-16 21:12:24 +00002174 additional defines:
2175
2176 CONFIG_SYS_NUM_I2C_BUSES
Simon Glass945a18e2016-10-02 18:01:05 -06002177 Hold the number of i2c buses you want to use.
Heiko Schocher3f4978c2012-01-16 21:12:24 +00002178
2179 CONFIG_SYS_I2C_DIRECT_BUS
2180 define this, if you don't use i2c muxes on your hardware.
2181 if CONFIG_SYS_I2C_MAX_HOPS is not defined or == 0 you can
2182 omit this define.
2183
2184 CONFIG_SYS_I2C_MAX_HOPS
2185 define how many muxes are maximal consecutively connected
2186 on one i2c bus. If you not use i2c muxes, omit this
2187 define.
2188
2189 CONFIG_SYS_I2C_BUSES
Jeremiah Mahlerb445bbb2015-01-04 18:56:50 -08002190 hold a list of buses you want to use, only used if
Heiko Schocher3f4978c2012-01-16 21:12:24 +00002191 CONFIG_SYS_I2C_DIRECT_BUS is not defined, for example
2192 a board with CONFIG_SYS_I2C_MAX_HOPS = 1 and
2193 CONFIG_SYS_NUM_I2C_BUSES = 9:
2194
2195 CONFIG_SYS_I2C_BUSES {{0, {I2C_NULL_HOP}}, \
2196 {0, {{I2C_MUX_PCA9547, 0x70, 1}}}, \
2197 {0, {{I2C_MUX_PCA9547, 0x70, 2}}}, \
2198 {0, {{I2C_MUX_PCA9547, 0x70, 3}}}, \
2199 {0, {{I2C_MUX_PCA9547, 0x70, 4}}}, \
2200 {0, {{I2C_MUX_PCA9547, 0x70, 5}}}, \
2201 {1, {I2C_NULL_HOP}}, \
2202 {1, {{I2C_MUX_PCA9544, 0x72, 1}}}, \
2203 {1, {{I2C_MUX_PCA9544, 0x72, 2}}}, \
2204 }
2205
2206 which defines
2207 bus 0 on adapter 0 without a mux
Heiko Schocherea818db2013-01-29 08:53:15 +01002208 bus 1 on adapter 0 with a PCA9547 on address 0x70 port 1
2209 bus 2 on adapter 0 with a PCA9547 on address 0x70 port 2
2210 bus 3 on adapter 0 with a PCA9547 on address 0x70 port 3
2211 bus 4 on adapter 0 with a PCA9547 on address 0x70 port 4
2212 bus 5 on adapter 0 with a PCA9547 on address 0x70 port 5
Heiko Schocher3f4978c2012-01-16 21:12:24 +00002213 bus 6 on adapter 1 without a mux
Heiko Schocherea818db2013-01-29 08:53:15 +01002214 bus 7 on adapter 1 with a PCA9544 on address 0x72 port 1
2215 bus 8 on adapter 1 with a PCA9544 on address 0x72 port 2
Heiko Schocher3f4978c2012-01-16 21:12:24 +00002216
2217 If you do not have i2c muxes on your board, omit this define.
2218
Heiko Schocherea818db2013-01-29 08:53:15 +01002219- Legacy I2C Support: CONFIG_HARD_I2C
Heiko Schocher3f4978c2012-01-16 21:12:24 +00002220
2221 NOTE: It is intended to move drivers to CONFIG_SYS_I2C which
2222 provides the following compelling advantages:
2223
2224 - more than one i2c adapter is usable
2225 - approved multibus support
2226 - better i2c mux support
2227
2228 ** Please consider updating your I2C driver now. **
2229
Heiko Schocherea818db2013-01-29 08:53:15 +01002230 These enable legacy I2C serial bus commands. Defining
2231 CONFIG_HARD_I2C will include the appropriate I2C driver
2232 for the selected CPU.
wdenkc6097192002-11-03 00:24:07 +00002233
wdenk945af8d2003-07-16 21:53:01 +00002234 This will allow you to use i2c commands at the u-boot
Jon Loeliger602ad3b2007-06-11 19:03:39 -05002235 command line (as long as you set CONFIG_CMD_I2C in
wdenkb37c7e52003-06-30 16:24:52 +00002236 CONFIG_COMMANDS) and communicate with i2c based realtime
2237 clock chips. See common/cmd_i2c.c for a description of the
wdenk43d96162003-03-06 00:02:04 +00002238 command line interface.
wdenkc6097192002-11-03 00:24:07 +00002239
Ben Warrenbb99ad62006-09-07 16:50:54 -04002240 CONFIG_HARD_I2C selects a hardware I2C controller.
wdenkc6097192002-11-03 00:24:07 +00002241
wdenk945af8d2003-07-16 21:53:01 +00002242 There are several other quantities that must also be
Heiko Schocherea818db2013-01-29 08:53:15 +01002243 defined when you define CONFIG_HARD_I2C.
wdenkc6097192002-11-03 00:24:07 +00002244
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +02002245 In both cases you will need to define CONFIG_SYS_I2C_SPEED
wdenk945af8d2003-07-16 21:53:01 +00002246 to be the frequency (in Hz) at which you wish your i2c bus
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +02002247 to run and CONFIG_SYS_I2C_SLAVE to be the address of this node (ie
Marcel Ziswiler11ccc332008-07-09 08:17:15 +02002248 the CPU's i2c node address).
wdenk945af8d2003-07-16 21:53:01 +00002249
Peter Tyser8d321b82010-04-12 22:28:21 -05002250 Now, the u-boot i2c code for the mpc8xx
Stefan Roesea47a12b2010-04-15 16:07:28 +02002251 (arch/powerpc/cpu/mpc8xx/i2c.c) sets the CPU up as a master node
Peter Tyser8d321b82010-04-12 22:28:21 -05002252 and so its address should therefore be cleared to 0 (See,
2253 eg, MPC823e User's Manual p.16-473). So, set
2254 CONFIG_SYS_I2C_SLAVE to 0.
wdenkc6097192002-11-03 00:24:07 +00002255
Eric Millbrandt5da71ef2009-09-03 08:09:44 -05002256 CONFIG_SYS_I2C_INIT_MPC5XXX
2257
2258 When a board is reset during an i2c bus transfer
2259 chips might think that the current transfer is still
2260 in progress. Reset the slave devices by sending start
2261 commands until the slave device responds.
2262
wdenk945af8d2003-07-16 21:53:01 +00002263 That's all that's required for CONFIG_HARD_I2C.
wdenkb37c7e52003-06-30 16:24:52 +00002264
Heiko Schocherea818db2013-01-29 08:53:15 +01002265 If you use the software i2c interface (CONFIG_SYS_I2C_SOFT)
wdenkb37c7e52003-06-30 16:24:52 +00002266 then the following macros need to be defined (examples are
2267 from include/configs/lwmon.h):
wdenkc6097192002-11-03 00:24:07 +00002268
2269 I2C_INIT
2270
wdenkb37c7e52003-06-30 16:24:52 +00002271 (Optional). Any commands necessary to enable the I2C
wdenk43d96162003-03-06 00:02:04 +00002272 controller or configure ports.
wdenkc6097192002-11-03 00:24:07 +00002273
wdenkba56f622004-02-06 23:19:44 +00002274 eg: #define I2C_INIT (immr->im_cpm.cp_pbdir |= PB_SCL)
wdenkb37c7e52003-06-30 16:24:52 +00002275
wdenkc6097192002-11-03 00:24:07 +00002276 I2C_PORT
2277
wdenk43d96162003-03-06 00:02:04 +00002278 (Only for MPC8260 CPU). The I/O port to use (the code
2279 assumes both bits are on the same port). Valid values
2280 are 0..3 for ports A..D.
wdenkc6097192002-11-03 00:24:07 +00002281
2282 I2C_ACTIVE
2283
2284 The code necessary to make the I2C data line active
2285 (driven). If the data line is open collector, this
2286 define can be null.
2287
wdenkb37c7e52003-06-30 16:24:52 +00002288 eg: #define I2C_ACTIVE (immr->im_cpm.cp_pbdir |= PB_SDA)
2289
wdenkc6097192002-11-03 00:24:07 +00002290 I2C_TRISTATE
2291
2292 The code necessary to make the I2C data line tri-stated
2293 (inactive). If the data line is open collector, this
2294 define can be null.
2295
wdenkb37c7e52003-06-30 16:24:52 +00002296 eg: #define I2C_TRISTATE (immr->im_cpm.cp_pbdir &= ~PB_SDA)
2297
wdenkc6097192002-11-03 00:24:07 +00002298 I2C_READ
2299
York Sun472d5462013-04-01 11:29:11 -07002300 Code that returns true if the I2C data line is high,
2301 false if it is low.
wdenkc6097192002-11-03 00:24:07 +00002302
wdenkb37c7e52003-06-30 16:24:52 +00002303 eg: #define I2C_READ ((immr->im_cpm.cp_pbdat & PB_SDA) != 0)
2304
wdenkc6097192002-11-03 00:24:07 +00002305 I2C_SDA(bit)
2306
York Sun472d5462013-04-01 11:29:11 -07002307 If <bit> is true, sets the I2C data line high. If it
2308 is false, it clears it (low).
wdenkc6097192002-11-03 00:24:07 +00002309
wdenkb37c7e52003-06-30 16:24:52 +00002310 eg: #define I2C_SDA(bit) \
wdenk2535d602003-07-17 23:16:40 +00002311 if(bit) immr->im_cpm.cp_pbdat |= PB_SDA; \
wdenkba56f622004-02-06 23:19:44 +00002312 else immr->im_cpm.cp_pbdat &= ~PB_SDA
wdenkb37c7e52003-06-30 16:24:52 +00002313
wdenkc6097192002-11-03 00:24:07 +00002314 I2C_SCL(bit)
2315
York Sun472d5462013-04-01 11:29:11 -07002316 If <bit> is true, sets the I2C clock line high. If it
2317 is false, it clears it (low).
wdenkc6097192002-11-03 00:24:07 +00002318
wdenkb37c7e52003-06-30 16:24:52 +00002319 eg: #define I2C_SCL(bit) \
wdenk2535d602003-07-17 23:16:40 +00002320 if(bit) immr->im_cpm.cp_pbdat |= PB_SCL; \
wdenkba56f622004-02-06 23:19:44 +00002321 else immr->im_cpm.cp_pbdat &= ~PB_SCL
wdenkb37c7e52003-06-30 16:24:52 +00002322
wdenkc6097192002-11-03 00:24:07 +00002323 I2C_DELAY
2324
2325 This delay is invoked four times per clock cycle so this
2326 controls the rate of data transfer. The data rate thus
wdenkb37c7e52003-06-30 16:24:52 +00002327 is 1 / (I2C_DELAY * 4). Often defined to be something
wdenk945af8d2003-07-16 21:53:01 +00002328 like:
2329
wdenkb37c7e52003-06-30 16:24:52 +00002330 #define I2C_DELAY udelay(2)
wdenkc6097192002-11-03 00:24:07 +00002331
Mike Frysinger793b5722010-07-21 13:38:02 -04002332 CONFIG_SOFT_I2C_GPIO_SCL / CONFIG_SOFT_I2C_GPIO_SDA
2333
2334 If your arch supports the generic GPIO framework (asm/gpio.h),
2335 then you may alternatively define the two GPIOs that are to be
2336 used as SCL / SDA. Any of the previous I2C_xxx macros will
2337 have GPIO-based defaults assigned to them as appropriate.
2338
2339 You should define these to the GPIO value as given directly to
2340 the generic GPIO functions.
2341
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +02002342 CONFIG_SYS_I2C_INIT_BOARD
wdenk47cd00f2003-03-06 13:39:27 +00002343
wdenk8bde7f72003-06-27 21:31:46 +00002344 When a board is reset during an i2c bus transfer
2345 chips might think that the current transfer is still
2346 in progress. On some boards it is possible to access
2347 the i2c SCLK line directly, either by using the
2348 processor pin as a GPIO or by having a second pin
2349 connected to the bus. If this option is defined a
2350 custom i2c_init_board() routine in boards/xxx/board.c
2351 is run early in the boot sequence.
wdenk47cd00f2003-03-06 13:39:27 +00002352
Richard Retanubun26a33502010-04-12 15:08:17 -04002353 CONFIG_SYS_I2C_BOARD_LATE_INIT
2354
2355 An alternative to CONFIG_SYS_I2C_INIT_BOARD. If this option is
2356 defined a custom i2c_board_late_init() routine in
2357 boards/xxx/board.c is run AFTER the operations in i2c_init()
2358 is completed. This callpoint can be used to unreset i2c bus
2359 using CPU i2c controller register accesses for CPUs whose i2c
2360 controller provide such a method. It is called at the end of
2361 i2c_init() to allow i2c_init operations to setup the i2c bus
2362 controller on the CPU (e.g. setting bus speed & slave address).
2363
wdenk17ea1172004-06-06 21:51:03 +00002364 CONFIG_I2CFAST (PPC405GP|PPC405EP only)
2365
2366 This option enables configuration of bi_iic_fast[] flags
2367 in u-boot bd_info structure based on u-boot environment
2368 variable "i2cfast". (see also i2cfast)
2369
Ben Warrenbb99ad62006-09-07 16:50:54 -04002370 CONFIG_I2C_MULTI_BUS
2371
2372 This option allows the use of multiple I2C buses, each of which
Wolfgang Denkc0f40852011-10-26 10:21:21 +00002373 must have a controller. At any point in time, only one bus is
2374 active. To switch to a different bus, use the 'i2c dev' command.
Ben Warrenbb99ad62006-09-07 16:50:54 -04002375 Note that bus numbering is zero-based.
2376
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +02002377 CONFIG_SYS_I2C_NOPROBES
Ben Warrenbb99ad62006-09-07 16:50:54 -04002378
2379 This option specifies a list of I2C devices that will be skipped
Wolfgang Denkc0f40852011-10-26 10:21:21 +00002380 when the 'i2c probe' command is issued. If CONFIG_I2C_MULTI_BUS
Peter Tyser0f89c542009-04-18 22:34:03 -05002381 is set, specify a list of bus-device pairs. Otherwise, specify
2382 a 1D array of device addresses
Ben Warrenbb99ad62006-09-07 16:50:54 -04002383
2384 e.g.
2385 #undef CONFIG_I2C_MULTI_BUS
Wolfgang Denkc0f40852011-10-26 10:21:21 +00002386 #define CONFIG_SYS_I2C_NOPROBES {0x50,0x68}
Ben Warrenbb99ad62006-09-07 16:50:54 -04002387
2388 will skip addresses 0x50 and 0x68 on a board with one I2C bus
2389
Wolfgang Denkc0f40852011-10-26 10:21:21 +00002390 #define CONFIG_I2C_MULTI_BUS
Simon Glass945a18e2016-10-02 18:01:05 -06002391 #define CONFIG_SYS_I2C_NOPROBES {{0,0x50},{0,0x68},{1,0x54}}
Ben Warrenbb99ad62006-09-07 16:50:54 -04002392
2393 will skip addresses 0x50 and 0x68 on bus 0 and address 0x54 on bus 1
2394
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +02002395 CONFIG_SYS_SPD_BUS_NUM
Timur Tabibe5e6182006-11-03 19:15:00 -06002396
2397 If defined, then this indicates the I2C bus number for DDR SPD.
2398 If not defined, then U-Boot assumes that SPD is on I2C bus 0.
2399
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +02002400 CONFIG_SYS_RTC_BUS_NUM
Stefan Roese0dc018e2007-02-20 10:51:26 +01002401
2402 If defined, then this indicates the I2C bus number for the RTC.
2403 If not defined, then U-Boot assumes that RTC is on I2C bus 0.
2404
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +02002405 CONFIG_SYS_DTT_BUS_NUM
Stefan Roese0dc018e2007-02-20 10:51:26 +01002406
2407 If defined, then this indicates the I2C bus number for the DTT.
2408 If not defined, then U-Boot assumes that DTT is on I2C bus 0.
2409
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +02002410 CONFIG_SYS_I2C_DTT_ADDR:
Victor Gallardo9ebbb542008-09-09 15:13:29 -07002411
2412 If defined, specifies the I2C address of the DTT device.
2413 If not defined, then U-Boot uses predefined value for
2414 specified DTT device.
2415
Andrew Dyer2ac69852008-12-29 17:36:01 -06002416 CONFIG_SOFT_I2C_READ_REPEATED_START
2417
2418 defining this will force the i2c_read() function in
2419 the soft_i2c driver to perform an I2C repeated start
2420 between writing the address pointer and reading the
2421 data. If this define is omitted the default behaviour
2422 of doing a stop-start sequence will be used. Most I2C
2423 devices can use either method, but some require one or
2424 the other.
Timur Tabibe5e6182006-11-03 19:15:00 -06002425
wdenkc6097192002-11-03 00:24:07 +00002426- SPI Support: CONFIG_SPI
2427
2428 Enables SPI driver (so far only tested with
2429 SPI EEPROM, also an instance works with Crystal A/D and
2430 D/As on the SACSng board)
2431
Yoshihiro Shimoda66395622011-01-31 16:50:43 +09002432 CONFIG_SH_SPI
2433
2434 Enables the driver for SPI controller on SuperH. Currently
2435 only SH7757 is supported.
2436
wdenkc6097192002-11-03 00:24:07 +00002437 CONFIG_SOFT_SPI
2438
wdenk43d96162003-03-06 00:02:04 +00002439 Enables a software (bit-bang) SPI driver rather than
2440 using hardware support. This is a general purpose
2441 driver that only requires three general I/O port pins
2442 (two outputs, one input) to function. If this is
2443 defined, the board configuration must define several
2444 SPI configuration items (port pins to use, etc). For
2445 an example, see include/configs/sacsng.h.
wdenkc6097192002-11-03 00:24:07 +00002446
Ben Warren04a9e112008-01-16 22:37:35 -05002447 CONFIG_HARD_SPI
2448
2449 Enables a hardware SPI driver for general-purpose reads
2450 and writes. As with CONFIG_SOFT_SPI, the board configuration
2451 must define a list of chip-select function pointers.