Lines Matching +full:pci +full:- +full:host +full:- +full:cam +full:- +full:generic

2 # (C) Copyright 2000 - 2013
5 # SPDX-License-Identifier: GPL-2.0+
11 This directory contains the source code for U-Boot, a boot loader for
17 The development of U-Boot is closely related to Linux: some parts of
39 scattered throughout the U-Boot source identifying the people or
43 actual U-Boot source tree; however, it can be created dynamically
53 U-Boot, you should send a message to the U-Boot mailing list at
54 <u-boot@lists.denx.de>. There is also an archive of previous traffic
55 on the mailing list - please search the archive before asking FAQ's.
56 Please see http://lists.denx.de/pipermail/u-boot and
57 http://dir.gmane.org/gmane.comp.boot-loaders.u-boot
63 The U-Boot source code is maintained in the Git repository at
64 git://www.denx.de/git/u-boot.git ; you can browse it online at
65 http://www.denx.de/cgi-bin/gitweb.cgi?p=u-boot.git;a=summary
69 available for FTP download from the ftp://ftp.denx.de/pub/u-boot/
72 Pre-built (and tested) images are available from
73 ftp://ftp.denx.de/pub/u-boot/images/
79 - start from 8xxrom sources
80 - create PPCBoot project (http://sourceforge.net/projects/ppcboot)
81 - clean up code
82 - make it easier to add custom boards
83 - make it possible to add other [PowerPC] CPUs
84 - extend functions, especially:
86 * S-Record download
89 - create ARMBoot project (http://sourceforge.net/projects/armboot)
90 - add other CPU families (starting with ARM)
91 - create U-Boot project (http://sourceforge.net/projects/u-boot)
92 - current project page: see http://www.denx.de/wiki/U-Boot
98 The "official" name of this project is "Das U-Boot". The spelling
99 "U-Boot" shall be used in all written text (documentation, comments
102 This is the README file for the U-Boot project.
104 File names etc. shall be based on the string "u-boot". Examples:
106 include/asm-ppc/u-boot.h
108 #include <asm/u-boot.h>
128 U-Boot v2009.11 - Release November 2009
129 U-Boot v2009.11.1 - Release 1 in version November 2009 stable tree
130 U-Boot v2010.09-rc1 - Release candidate 1 for September 2010 release
137 /arc Files generic to ARC architecture
138 /arm Files generic to ARM architecture
139 /m68k Files generic to m68k architecture
140 /microblaze Files generic to microblaze architecture
141 /mips Files generic to MIPS architecture
142 /nds32 Files generic to NDS32 architecture
143 /nios2 Files generic to Altera NIOS2 architecture
144 /openrisc Files generic to OpenRISC architecture
145 /powerpc Files generic to PowerPC architecture
146 /sandbox Files generic to HW-independent "sandbox"
147 /sh Files generic to SH architecture
148 /x86 Files generic to x86 architecture
151 /cmd U-Boot commands functions
157 /dts Contains Makefile for building internal U-Boot fdt.
161 /lib Library routines generic to all architectures
167 /tools Tools to build S-Record or U-Boot images, etc.
188 U-Boot has added the Kbuild infrastructure used by the Linux kernel,
194 ---------------------------------------------------
196 For all supported boards there are ready-to-use default
201 cd u-boot
209 --------------------
211 U-Boot can be built natively to run on a Linux host using the 'sandbox'
212 board. This allows feature development which is not board- or architecture-
214 run some of U-Boot's tests.
220 --------------------------
222 This is the intended start-up flow for boards. This should apply for both
223 SPL and U-Boot proper (i.e. they both follow the same rules).
233 Execution typically starts with an architecture-specific (and possibly
234 CPU-specific) start.S file, such as:
236 - arch/arm/cpu/armv7/start.S
237 - arch/powerpc/cpu/mpc83xx/start.S
238 - arch/mips/cpu/start.S
244 - purpose: essential init to permit execution to reach board_init_f()
245 - no global_data or BSS
246 - there is no stack (ARMv7 may have one but it will soon be removed)
247 - must not set up SDRAM or use console
248 - must only do the bare minimum to allow execution to continue to
250 - this is almost never needed
251 - return normally from this function
254 - purpose: set up the machine ready for running board_init_r():
256 - global_data is available
257 - stack is in SRAM
258 - BSS is not available, so you cannot use global/static variables,
261 Non-SPL-specific notes:
262 - dram_init() is called to set up DRAM. If already done in SPL this
265 SPL-specific notes:
266 - you can override the entire board_init_f() function with your own
268 - preloader_console_init() can be called here in extremis
269 - should set up SDRAM, and anything needed to make the UART work
270 - these is no need to clear BSS, it will be done by crt0.S
271 - must return normally from this function (don't call board_init_r()
276 CONFIG_SPL_STACK_R_ADDR. For non-SPL, U-Boot is relocated to run at the top of
280 - purpose: main execution, common code
281 - global_data is available
282 - SDRAM is available
283 - BSS is available, all static/global variables can be used
284 - execution eventually continues to main_loop()
286 Non-SPL-specific notes:
287 - U-Boot is relocated to the top of memory and is now running from
290 SPL-specific notes:
291 - stack is optionally in SDRAM, if CONFIG_SPL_STACK_R is defined and
293 - preloader_console_init() can be called here - typically this is
296 - loads U-Boot or (in falcon mode) Linux
301 ----------------------
313 build a config tool - later.
318 - CPU Type: Define exactly one, e.g. CONFIG_MPC85XX.
320 - Board Type: Define exactly one, e.g. CONFIG_MPC8540ADS.
322 - Marvell Family Member
323 CONFIG_SYS_MVFS - define it if you want to enable
327 - 85xx CPU Options:
330 Specifies that the core is a 64-bit PowerPC implementation (implements
400 time of U-Boot entry and is required to be re-initialized.
406 - Generic CPU options:
418 Freescale DDR memory-mapped register base.
437 Freescale DDR3 controller for ARM-based SoCs.
478 It adds PBI(pre-boot instructions) commands in u-boot build image.
484 concatenated with u-boot binary.
498 DDR controller interleaving on 256-byte. This is a special
509 Defines the SoC has DP-DDR used for DPAA.
517 - MIPS CPU options:
545 Enable compilation of tools/xway-swap-bytes needed for Lantiq
546 XWAY SoCs for booting from NOR flash. The U-Boot image needs to
549 - ARM options:
556 Generic timer clock source frequency.
559 Generic timer clock source frequency if the real clock is
563 - Tegra SoC options:
566 Support executing U-Boot in non-secure (NS) mode. Certain
570 - Linux Kernel Interface:
573 U-Boot stores all clock information in Hz
577 "clocks_in_mhz" can be defined so that U-Boot
597 * New libfdt-based support
601 OF_TBCLK - The timebase frequency.
602 OF_STDOUT_PATH - The path to the console device
621 U-Boot can detect if an IDE device is present or not.
622 If not, and this new config option is activated, U-Boot
638 - vxWorks boot parameters:
648 - Cache Configuration:
649 CONFIG_SYS_ICACHE_OFF - Do not enable instruction cache in U-Boot
650 CONFIG_SYS_DCACHE_OFF - Do not enable data cache in U-Boot
651 CONFIG_SYS_L2CACHE_OFF- Do not enable L2 cache in U-Boot
653 - Cache Configuration for ARM:
654 CONFIG_SYS_L2_PL310 - Enable support for ARM PL310 L2 cache
656 CONFIG_SYS_PL310_BASE - Physical base address of PL310
659 - Serial Ports:
684 - Console Baudrate:
685 CONFIG_BAUDRATE - in bps
689 - Autoboot Command:
702 - Bootcount:
718 - Pre-Boot Commands:
724 countdown and/or running the auto-boot command resp.
734 - Serial Download Echo Mode:
743 - Kgdb Serial Baudrate: (if CONFIG_CMD_KGDB is defined)
748 - Removal of commands
751 will not be available, and when U-Boot wants to execute the
752 boot command (on start-up) it will call board_run_command()
756 - Regular expression support:
758 If this variable is defined, U-Boot is linked against
763 - Device tree:
765 If this variable is defined, U-Boot will use a device tree
769 tree is available in the global data as gd->fdt_blob.
771 U-Boot needs to get its device tree from somewhere. This can
775 If this variable is defined, U-Boot will embed a device tree
777 board directory and called <soc>-<board>.dts. The binary file
779 the global data structure as gd->fdt_blob.
782 If this variable is defined, U-Boot will build a device tree
783 binary. It will be called u-boot.dtb. Architecture-specific
784 code will locate it at run-time. Generally this works by:
786 cat u-boot.bin u-boot.dtb >image.bin
788 and in fact, U-Boot does this for you, creating a file called
789 u-boot-dtb.bin which is useful in the common case. You can
794 If this variable is defined, U-Boot will use the device tree
799 - Watchdog:
817 - U-Boot Version:
820 named "ver" is created by U-Boot showing the U-Boot
825 - Real-Time Clock:
831 CONFIG_RTC_PCF8563 - use Philips PCF8563 RTC
832 CONFIG_RTC_MC13XXX - use MC13783 or MC13892 RTC
833 CONFIG_RTC_MC146818 - use MC146818 RTC
834 CONFIG_RTC_DS1307 - use Maxim, Inc. DS1307 RTC
835 CONFIG_RTC_DS1337 - use Maxim, Inc. DS1337 RTC
836 CONFIG_RTC_DS1338 - use Maxim, Inc. DS1338 RTC
837 CONFIG_RTC_DS1339 - use Maxim, Inc. DS1339 RTC
838 CONFIG_RTC_DS164x - use Dallas DS164x RTC
839 CONFIG_RTC_ISL1208 - use Intersil ISL1208 RTC
840 CONFIG_RTC_MAX6900 - use Maxim, Inc. MAX6900 RTC
841 CONFIG_RTC_DS1337_NOOSC - Turn off the OSC output for DS1337
842 CONFIG_SYS_RV3029_TCR - enable trickle charger on
848 - GPIO Support:
849 CONFIG_PCA953X - use NXP's PCA953X series I2C GPIO
852 chip-ngpio pairs that tell the PCA953X driver the number of
858 - I/O tracing:
859 When CONFIG_IO_TRACE is selected, U-Boot intercepts all I/O
880 - Timestamp Support:
887 - Partition Labels (disklabels) Supported:
895 least one non-MTD partition type as well.
897 - IDE Reset method:
898 CONFIG_IDE_RESET_ROUTINE - this is defined in several
901 CONFIG_IDE_RESET - is this is defined, IDE Reset will
906 - ATAPI Support:
911 - LBA48 Support
923 - SCSI Support:
933 - NETWORK Support (PCI):
943 Allow generic access to the SPI bus on the Intel 8257x, for
962 - NETWORK Support (other):
1031 Support for Renesas on-chip Ethernet controller
1042 - PWM Support:
1046 - TPM Support:
1072 Support for generic parallel port TPM devices. Only one device
1076 Base address where the generic TPM device is mapped
1089 - USB Support:
1090 At the moment only the UHCI host controller is
1098 (TEAC FD-05PUB).
1106 - USB Device:
1113 appear to a USB host as a Linux gserial device or a
1116 a Linux host by
1141 If you have a USB-IF assigned VendorID then you may wish to
1145 CONFIG_USBD_VENDORID and CONFIG_USBD_PRODUCTID, then U-Boot
1146 should pretend to be a Linux device to it's target host.
1150 - CONFIG_USBD_MANUFACTURER "my company"
1154 - CONFIG_USBD_PRODUCT_NAME "acme usb device"
1160 - CONFIG_USBD_VENDORID 0xFFFF
1165 - CONFIG_USBD_PRODUCTID 0xFFFF
1167 - ULPI Layer Support:
1169 the generic ULPI layer. The generic layer accesses the ULPI PHY
1179 - MMC Support:
1188 Support for Renesas on-chip MMCIF controller
1203 - USB Device Firmware Update (DFU) class support:
1215 Note: DFU spec refer to non-volatile memory usage, but
1216 allow usages beyond the scope of spec - here RAM usage,
1234 host. The host must wait for this timeout before sending
1238 Poll timeout [ms], which the device sends to the host when
1239 entering dfuMANIFEST state. Host waits this timeout, before
1242 - Android Bootloader support:
1254 (over-the-air) updates in the legacy updater. Also it is
1263 - USB Device Android Fastboot support:
1272 See doc/README.android-fastboot for more information.
1286 the downloaded image to a non-volatile storage device. Define
1291 regarding the non-volatile storage device. Define this to
1297 Table. (Additionally, this downloaded image is post-processed
1310 - Journaling Flash filesystem support:
1318 - Keyboard Support:
1325 defined in your board-specific files. This option is deprecated
1329 - Video support:
1343 The DIU driver will look for the 'video-mode' environment
1348 - LCD Support: CONFIG_LCD
1360 NEC NL6448AC33-18. Active, color, single scan.
1364 NEC NL6448BC20-08. 6.5", 640x480.
1369 NEC NL6448BC33-54. 10.4", 640x480.
1389 Optrex CBL50840-2 NF-FW 99 22 M5
1391 Hitachi LMG6912RPFC-00T
1399 Normally the LCD is page-aligned (typically 4KB). If this is
1403 a per-section basis.
1417 fbcon=rotate:<n> linux-kernel commandline):
1428 Support drawing of RLE8-compressed bitmaps on the LCD.
1435 - Splash Screen Support: CONFIG_SPLASH_SCREEN
1444 loaded very quickly after power-on.
1448 If this option is set, then U-Boot will prevent the environment
1450 (see doc/README.displaying-bmps).
1473 setenv splashpos -10,m
1475 at x = dspWidth - bmpWidth - 9
1477 - Gzip compressed BMP image support: CONFIG_VIDEO_BMP_GZIP
1483 - Run length encoded BMP image (RLE8) support: CONFIG_VIDEO_BMP_RLE8
1485 If this option is set, 8-bit RLE compressed BMP images
1489 - Compression support:
1504 - MII/PHY support:
1525 - IP address:
1533 - Server IP address:
1545 - Gateway IP address:
1553 - Subnet mask:
1562 - Multicast TFTP Mode:
1566 rfc-2090; for example to work with atftp. Lets lots of targets
1571 - BOOTP Recovery Mode:
1592 BOOTP packets are uniquely identified using a 32-bit ID. The
1594 U-Boot will use this to determine if it is the destination of
1600 time is too long, U-Boot will retransmit requests. In order
1602 retransmissions, U-Boot's BOOTP client keeps a small cache of
1605 requests. Increasing this will allow U-Boot to accept offers
1608 - DHCP Advanced Options:
1626 CONFIG_BOOTP_SERVERIP - TFTP server will be the serverip
1629 CONFIG_BOOTP_MAY_FAIL - If the DHCP server is not found
1632 to Link-local IP address configuration if the DHCP server
1635 CONFIG_BOOTP_DNS2 - If a DHCP client requests the DNS
1644 CONFIG_BOOTP_SEND_HOSTNAME - Some DHCP servers are capable
1665 - Link-local IP address negotiation:
1666 Negotiate with other link-local clients on the local network
1671 See doc/README.link-local for more information.
1673 - MAC address from environment variables
1677 Fix-up device tree with MAC addresses fetched sequentially from
1679 non-usable ethernet node of device-tree are either not present
1682 - CDP Options:
1701 0x00000010 for a normal host which does not forwards.
1724 - Status LED: CONFIG_LED_STATUS
1728 fast while running U-Boot code, stop blinking as
1733 feature in U-Boot.
1741 to include the gpio_led driver in the U-Boot binary.
1750 - I2C Support: CONFIG_SYS_I2C
1753 i2c commands at the u-boot command line (as long as you set
1760 - drivers/i2c/soft_i2c.c:
1761 - activate first bus with CONFIG_SYS_I2C_SOFT define
1764 - activate second bus with I2C_SOFT_DECLARATIONS2 define
1767 - activate third bus with I2C_SOFT_DECLARATIONS3 define
1770 - activate fourth bus with I2C_SOFT_DECLARATIONS4 define
1774 - drivers/i2c/fsl_i2c.c:
1775 - activate i2c driver with CONFIG_SYS_I2C_FSL
1780 - If your board supports a second fsl i2c bus, define
1786 - drivers/i2c/tegra_i2c.c:
1787 - activate this driver with CONFIG_SYS_I2C_TEGRA
1788 - This driver adds 4 i2c buses with a fix speed from
1791 - drivers/i2c/ppc4xx_i2c.c
1792 - activate this driver with CONFIG_SYS_I2C_PPC4XX
1793 - CONFIG_SYS_I2C_PPC4XX_CH0 activate hardware channel 0
1794 - CONFIG_SYS_I2C_PPC4XX_CH1 activate hardware channel 1
1796 - drivers/i2c/i2c_mxc.c
1797 - activate this driver with CONFIG_SYS_I2C_MXC
1798 - enable bus 1 with CONFIG_SYS_I2C_MXC_I2C1
1799 - enable bus 2 with CONFIG_SYS_I2C_MXC_I2C2
1800 - enable bus 3 with CONFIG_SYS_I2C_MXC_I2C3
1801 - enable bus 4 with CONFIG_SYS_I2C_MXC_I2C4
1802 - define speed for bus 1 with CONFIG_SYS_MXC_I2C1_SPEED
1803 - define slave for bus 1 with CONFIG_SYS_MXC_I2C1_SLAVE
1804 - define speed for bus 2 with CONFIG_SYS_MXC_I2C2_SPEED
1805 - define slave for bus 2 with CONFIG_SYS_MXC_I2C2_SLAVE
1806 - define speed for bus 3 with CONFIG_SYS_MXC_I2C3_SPEED
1807 - define slave for bus 3 with CONFIG_SYS_MXC_I2C3_SLAVE
1808 - define speed for bus 4 with CONFIG_SYS_MXC_I2C4_SPEED
1809 - define slave for bus 4 with CONFIG_SYS_MXC_I2C4_SLAVE
1813 - drivers/i2c/rcar_i2c.c:
1814 - activate this driver with CONFIG_SYS_I2C_RCAR
1815 - This driver adds 4 i2c buses
1817 - CONFIG_SYS_RCAR_I2C0_BASE for setting the register channel 0
1818 - CONFIG_SYS_RCAR_I2C0_SPEED for for the speed channel 0
1819 - CONFIG_SYS_RCAR_I2C1_BASE for setting the register channel 1
1820 - CONFIG_SYS_RCAR_I2C1_SPEED for for the speed channel 1
1821 - CONFIG_SYS_RCAR_I2C2_BASE for setting the register channel 2
1822 - CONFIG_SYS_RCAR_I2C2_SPEED for for the speed channel 2
1823 - CONFIG_SYS_RCAR_I2C3_BASE for setting the register channel 3
1824 - CONFIG_SYS_RCAR_I2C3_SPEED for for the speed channel 3
1825 - CONFIF_SYS_RCAR_I2C_NUM_CONTROLLERS for number of i2c buses
1827 - drivers/i2c/sh_i2c.c:
1828 - activate this driver with CONFIG_SYS_I2C_SH
1829 - This driver adds from 2 to 5 i2c buses
1831 - CONFIG_SYS_I2C_SH_BASE0 for setting the register channel 0
1832 - CONFIG_SYS_I2C_SH_SPEED0 for for the speed channel 0
1833 - CONFIG_SYS_I2C_SH_BASE1 for setting the register channel 1
1834 - CONFIG_SYS_I2C_SH_SPEED1 for for the speed channel 1
1835 - CONFIG_SYS_I2C_SH_BASE2 for setting the register channel 2
1836 - CONFIG_SYS_I2C_SH_SPEED2 for for the speed channel 2
1837 - CONFIG_SYS_I2C_SH_BASE3 for setting the register channel 3
1838 - CONFIG_SYS_I2C_SH_SPEED3 for for the speed channel 3
1839 - CONFIG_SYS_I2C_SH_BASE4 for setting the register channel 4
1840 - CONFIG_SYS_I2C_SH_SPEED4 for for the speed channel 4
1841 - CONFIG_SYS_I2C_SH_NUM_CONTROLLERS for number of i2c buses
1843 - drivers/i2c/omap24xx_i2c.c
1844 - activate this driver with CONFIG_SYS_I2C_OMAP24XX
1845 - CONFIG_SYS_OMAP24_I2C_SPEED speed channel 0
1846 - CONFIG_SYS_OMAP24_I2C_SLAVE slave addr channel 0
1847 - CONFIG_SYS_OMAP24_I2C_SPEED1 speed channel 1
1848 - CONFIG_SYS_OMAP24_I2C_SLAVE1 slave addr channel 1
1849 - CONFIG_SYS_OMAP24_I2C_SPEED2 speed channel 2
1850 - CONFIG_SYS_OMAP24_I2C_SLAVE2 slave addr channel 2
1851 - CONFIG_SYS_OMAP24_I2C_SPEED3 speed channel 3
1852 - CONFIG_SYS_OMAP24_I2C_SLAVE3 slave addr channel 3
1853 - CONFIG_SYS_OMAP24_I2C_SPEED4 speed channel 4
1854 - CONFIG_SYS_OMAP24_I2C_SLAVE4 slave addr channel 4
1856 - drivers/i2c/zynq_i2c.c
1857 - activate this driver with CONFIG_SYS_I2C_ZYNQ
1858 - set CONFIG_SYS_I2C_ZYNQ_SPEED for speed setting
1859 - set CONFIG_SYS_I2C_ZYNQ_SLAVE for slave addr
1861 - drivers/i2c/s3c24x0_i2c.c:
1862 - activate this driver with CONFIG_SYS_I2C_S3C24X0
1863 - This driver adds i2c buses (11 for Exynos5250, Exynos5420
1867 - drivers/i2c/ihs_i2c.c
1868 - activate this driver with CONFIG_SYS_I2C_IHS
1869 - CONFIG_SYS_I2C_IHS_CH0 activate hardware channel 0
1870 - CONFIG_SYS_I2C_IHS_SPEED_0 speed channel 0
1871 - CONFIG_SYS_I2C_IHS_SLAVE_0 slave addr channel 0
1872 - CONFIG_SYS_I2C_IHS_CH1 activate hardware channel 1
1873 - CONFIG_SYS_I2C_IHS_SPEED_1 speed channel 1
1874 - CONFIG_SYS_I2C_IHS_SLAVE_1 slave addr channel 1
1875 - CONFIG_SYS_I2C_IHS_CH2 activate hardware channel 2
1876 - CONFIG_SYS_I2C_IHS_SPEED_2 speed channel 2
1877 - CONFIG_SYS_I2C_IHS_SLAVE_2 slave addr channel 2
1878 - CONFIG_SYS_I2C_IHS_CH3 activate hardware channel 3
1879 - CONFIG_SYS_I2C_IHS_SPEED_3 speed channel 3
1880 - CONFIG_SYS_I2C_IHS_SLAVE_3 slave addr channel 3
1881 - activate dual channel with CONFIG_SYS_I2C_IHS_DUAL
1882 - CONFIG_SYS_I2C_IHS_SPEED_0_1 speed channel 0_1
1883 - CONFIG_SYS_I2C_IHS_SLAVE_0_1 slave addr channel 0_1
1884 - CONFIG_SYS_I2C_IHS_SPEED_1_1 speed channel 1_1
1885 - CONFIG_SYS_I2C_IHS_SLAVE_1_1 slave addr channel 1_1
1886 - CONFIG_SYS_I2C_IHS_SPEED_2_1 speed channel 2_1
1887 - CONFIG_SYS_I2C_IHS_SLAVE_2_1 slave addr channel 2_1
1888 - CONFIG_SYS_I2C_IHS_SPEED_3_1 speed channel 3_1
1889 - CONFIG_SYS_I2C_IHS_SLAVE_3_1 slave addr channel 3_1
1936 - Legacy I2C Support:
1946 eg: #define I2C_INIT (immr->im_cpm.cp_pbdir |= PB_SCL)
1954 eg: #define I2C_ACTIVE (immr->im_cpm.cp_pbdir |= PB_SDA)
1958 The code necessary to make the I2C data line tri-stated
1962 eg: #define I2C_TRISTATE (immr->im_cpm.cp_pbdir &= ~PB_SDA)
1969 eg: #define I2C_READ ((immr->im_cpm.cp_pbdat & PB_SDA) != 0)
1977 if(bit) immr->im_cpm.cp_pbdat |= PB_SDA; \
1978 else immr->im_cpm.cp_pbdat &= ~PB_SDA
1986 if(bit) immr->im_cpm.cp_pbdat |= PB_SCL; \
1987 else immr->im_cpm.cp_pbdat &= ~PB_SCL
2000 If your arch supports the generic GPIO framework (asm/gpio.h),
2003 have GPIO-based defaults assigned to them as appropriate.
2006 the generic GPIO functions.
2024 Note that bus numbering is zero-based.
2030 is set, specify a list of bus-device pairs. Otherwise, specify
2047 If not defined, then U-Boot assumes that SPD is on I2C bus 0.
2052 If not defined, then U-Boot assumes that RTC is on I2C bus 0.
2060 of doing a stop-start sequence will be used. Most I2C
2064 - SPI Support: CONFIG_SPI
2072 Enables a software (bit-bang) SPI driver rather than
2082 Enables a hardware SPI driver for general-purpose reads
2084 must define a list of chip-select function pointers.
2097 - FPGA Support: CONFIG_FPGA
2132 Allow Control-C to interrupt FPGA configuration
2143 Maximum time to wait for the INIT_B line to de-assert
2144 after PROB_B has been de-asserted during a Virtex II
2150 Maximum time to wait for BUSY to de-assert during
2158 - Configuration Management:
2161 Some SoCs need special image types (e.g. U-Boot binary
2169 If defined, this string will be added to the U-Boot
2172 - Vendor Parameter Protection:
2174 U-Boot considers the values of the environment
2179 the user. Once set, these variables are read-only,
2193 read-only.]
2200 - Protected RAM:
2205 by U-Boot. Define CONFIG_PRAM to hold the number of
2225 this memory test is non-destructive. So far, the
2227 "pRAM-clean":
2233 - Access to physical memory region (> 4GB)
2235 normally accessible to U-Boot - e.g. some architectures
2236 support access to more than 4GB of memory on 32-bit
2241 - Error Recovery:
2260 - Command Interpreter:
2292 - Command Line Editing and History:
2298 - Command Line PS1/PS2 support:
2302 at run-time. Only static string is supported so far.
2306 - Default Environment:
2322 U-Boot code. This is NOT an official, exported
2335 U-Boot build configuration to the default environment.
2340 - CONFIG_SYS_ARCH
2341 - CONFIG_SYS_CPU
2342 - CONFIG_SYS_BOARD
2343 - CONFIG_SYS_VENDOR
2344 - CONFIG_SYS_SOC
2349 run-time determined information about the hardware to the
2355 initialised so that it is available to U-Boot. This inhibits
2357 explicitly loaded later by U-Boot code. With CONFIG_OF_CONTROL
2359 /config/load-environment.
2361 - TFTP Fixed UDP Port:
2366 If tftpsrcp isn't defined, the normal pseudo-random port
2374 blindly start the TFTP transfer using the pre-configured
2381 - bootcount support:
2407 - Show boot progress:
2410 Defining this option allows to add some board-
2411 specific code (calling a user-provided function
2422 -1 common/cmd_bootm.c Image header has bad magic number
2424 -2 common/cmd_bootm.c Image header has bad checksum
2426 -3 common/cmd_bootm.c Image data has bad checksum
2428 -4 common/cmd_bootm.c Image is for unsupported architecture
2430 -5 common/cmd_bootm.c Wrong Image Type (not kernel, multi)
2432 -6 common/cmd_bootm.c gunzip uncompression error
2433 -7 common/cmd_bootm.c Unimplemented compression type
2436 -9 common/cmd_bootm.c Unsupported OS (not Linux, BSD, VxWorks, QNX)
2439 -10 common/image.c Ramdisk header has bad magic number
2440 -11 common/image.c Ramdisk header has bad checksum
2442 -12 common/image.c Ramdisk data has bad checksum
2445 -13 common/image.c Wrong Image Type (not PPC Linux ramdisk)
2451 -30 arch/powerpc/lib/board.c Fatal error, hang the system
2452 -31 post/post.c POST test failed, detected by post_output_backlog()
2453 -32 post/post.c POST test failed, detected by post_run_single()
2456 -35 common/cmd_doc.c Bad usage of "doc" command
2458 -36 common/cmd_doc.c No boot device
2460 -37 common/cmd_doc.c Unknown Chip ID on boot device
2462 -38 common/cmd_doc.c Read Error on boot device
2464 -39 common/cmd_doc.c Image header has bad magic number
2466 -40 common/cmd_doc.c Error reading Image from DOC device
2469 -42 common/cmd_ide.c Bad usage of "ide" command
2471 -43 common/cmd_ide.c No boot device
2473 -44 common/cmd_ide.c Device not available
2475 -45 common/cmd_ide.c wrong partition selected
2477 -46 common/cmd_ide.c Unknown partition table
2479 -47 common/cmd_ide.c Invalid partition type
2481 -48 common/cmd_ide.c Error reading Image Header on boot device
2483 -49 common/cmd_ide.c Image header has bad magic number
2485 -50 common/cmd_ide.c Image header has bad checksum
2487 -51 common/cmd_ide.c Error reading Image from IDE device
2490 -53 common/cmd_nand.c Bad usage of "nand" command
2492 -54 common/cmd_nand.c No boot device
2494 -55 common/cmd_nand.c Unknown Chip ID on boot device
2496 -56 common/cmd_nand.c Error reading Image Header on boot device
2498 -57 common/cmd_nand.c Image header has bad magic number
2500 -58 common/cmd_nand.c Error reading Image from NAND device
2503 -60 common/env_common.c Environment has a bad CRC, using default
2506 -64 net/eth.c no Ethernet found.
2509 -80 common/cmd_net.c usage wrong
2511 -81 common/cmd_net.c some error in net_loop() occurred
2513 -82 common/cmd_net.c size == 0 (File with size 0 loaded)
2516 -83 common/cmd_net.c some error in automatic boot or "source" command
2523 -100 common/cmd_bootm.c Kernel FIT Image has incorrect format
2525 -101 common/cmd_bootm.c Can't get configuration for kernel subimage
2527 -103 common/cmd_bootm.c Can't get kernel subimage node offset
2530 -104 common/cmd_bootm.c Kernel subimage hash verification failed
2532 -105 common/cmd_bootm.c Kernel subimage is for unsupported architecture
2534 -106 common/cmd_bootm.c Kernel subimage has wrong type
2536 -107 common/cmd_bootm.c Can't get kernel subimage data/size
2538 -108 common/cmd_bootm.c Wrong image type (not legacy, FIT)
2539 -109 common/cmd_bootm.c Can't get kernel subimage type
2540 -110 common/cmd_bootm.c Can't get kernel subimage comp
2541 -111 common/cmd_bootm.c Can't get kernel subimage os
2542 -112 common/cmd_bootm.c Can't get kernel subimage load address
2543 -113 common/cmd_bootm.c Image uncompress/copy overwrite error
2546 -120 common/image.c Ramdisk FIT image has incorrect format
2549 -122 common/image.c Can't get configuration for ramdisk subimage
2551 -124 common/image.c Can't get ramdisk subimage node offset
2553 -125 common/image.c Ramdisk subimage hash verification failed
2555 -126 common/image.c Ramdisk subimage for unsupported architecture
2557 -127 common/image.c Can't get ramdisk subimage data/size
2560 -129 common/image.c Got ramdisk load address
2562 -130 common/cmd_doc.c Incorrect FIT image format
2565 -140 common/cmd_ide.c Incorrect FIT image format
2568 -150 common/cmd_nand.c Incorrect FIT image format
2571 - legacy image format:
2573 enables the legacy image format support in U-Boot.
2584 - Standalone program support:
2592 - Frame Buffer Address:
2598 memory. U-Boot will then place the frame buffer at
2606 - Automatic software updates via TFTP server
2611 These options enable and control the auto-update feature;
2614 - MTD Support (mtdparts command, UBI support)
2623 other flashes which have eraseblock life-cycle 100000 or more.
2625 life-cycle less than 10000, the threshold should be lessened (e.g.,
2639 then can be calculated as "1024 * (1 - MinNVB / MaxNVB)",
2658 The on-flash fastmap contains all information needed to attach
2663 that fastmap-enabled images are still usable with UBI implementations
2676 - UBIFS support
2682 - SPL framework
2748 supports MMC, NAND and YMODEM loading of U-Boot and NAND
2763 Partition on the MMC to load U-Boot from when the MMC is being
2777 Partition on the MMC to load U-Boot from when the MMC is being
2781 Filename to read to load U-Boot when reading from filesystem
2823 Support to boot only raw u-boot.bin images. Use this only
2836 to read U-Boot
2842 Location in NAND to read U-Boot from
2845 Location in memory to load U-Boot to
2869 use an arch-specific makefile fragment instead, for
2875 option to re-enable it. This will affect the output of the
2878 - TPL framework
2889 - Interrupt support (PPC):
2904 ------------------------------
2906 During Initialization u-boot calls a number of board specific functions
2913 - CONFIG_BOARD_EARLY_INIT_F: Call board_early_init_f()
2914 - CONFIG_BOARD_EARLY_INIT_R: Call board_early_init_r()
2915 - CONFIG_BOARD_LATE_INIT: Call board_late_init()
2916 - CONFIG_BOARD_POSTCLK_INIT: Call board_postclk_init()
2919 -----------------------
2921 - CONFIG_SYS_SUPPORT_64BIT_DATA: Defined automatically if compiled as 64-bit.
2922 Optionally it can be defined to support 64-bit memory commands.
2924 - CONFIG_SYS_LONGHELP: Defined when you want long help messages included;
2927 - CONFIG_SYS_HELP_CMD_WIDTH: Defined when you want to override the default
2930 - CONFIG_SYS_PROMPT: This is what U-Boot prints on the console to
2933 - CONFIG_SYS_CBSIZE: Buffer size for input from the Console
2935 - CONFIG_SYS_PBSIZE: Buffer size for Console output
2937 - CONFIG_SYS_MAXARGS: max. Number of arguments accepted for monitor commands
2939 - CONFIG_SYS_BARGSIZE: Buffer size for Boot Arguments which are passed to
2943 - CONFIG_SYS_BAUDRATE_TABLE:
2946 - CONFIG_SYS_MEMTEST_START, CONFIG_SYS_MEMTEST_END:
2950 - CONFIG_SYS_ALT_MEMTEST:
2953 - CONFIG_SYS_MEMTEST_SCRATCH:
2957 - CONFIG_SYS_MEM_RESERVE_SECURE
2962 gd->arch.secure_ram is used to track the location. In systems
2966 - CONFIG_SYS_MEM_TOP_HIDE:
2969 (end) of RAM and won't get "touched" at all by U-Boot. By
2970 fixing up gd->ram_size the Linux kernel should gets passed
2987 - CONFIG_SYS_LOADS_BAUD_CHANGE:
2990 - CONFIG_SYS_SDRAM_BASE:
2993 - CONFIG_SYS_FLASH_BASE:
2996 - CONFIG_SYS_MONITOR_BASE:
2999 (CONFIG_SYS_TEXT_BASE) used when linking) - same as
3002 - CONFIG_SYS_MONITOR_LEN:
3005 embedded within the U-Boot image, or in a separate
3008 - CONFIG_SYS_MALLOC_LEN:
3011 - CONFIG_SYS_MALLOC_F_LEN
3022 U-Boot relocates itself.
3024 - CONFIG_SYS_MALLOC_SIMPLE
3029 - CONFIG_SYS_NONCACHED_MEMORY:
3030 Size of non-cached memory area. This area of memory will be
3036 are not a multiple of the cache-line size, *and* padding
3039 size of each region is not cache-aligned), then a flush of
3041 written to another region in the same cache-line. This can
3043 buffers are typically smaller than the CPU cache-line (e.g.
3046 Non-cached memory is only supported on 32-bit ARM at present.
3048 - CONFIG_SYS_BOOTM_LEN:
3054 - CONFIG_SYS_BOOTMAPSZ:
3059 environment variable is defined and non-zero. In such case
3066 - CONFIG_SYS_BOOT_RAMDISK_HIGH:
3071 - CONFIG_SYS_BOOT_GET_CMDLINE:
3075 - CONFIG_SYS_BOOT_GET_KBD:
3079 - CONFIG_SYS_MAX_FLASH_BANKS:
3082 - CONFIG_SYS_MAX_FLASH_SECT:
3085 - CONFIG_SYS_FLASH_ERASE_TOUT:
3088 - CONFIG_SYS_FLASH_WRITE_TOUT:
3091 - CONFIG_SYS_FLASH_LOCK_TOUT
3094 - CONFIG_SYS_FLASH_UNLOCK_TOUT
3097 - CONFIG_SYS_FLASH_PROTECTION
3099 instead of U-Boot software protection.
3101 - CONFIG_SYS_DIRECT_FLASH_TFTP:
3108 The two-step approach is usually more reliable, since
3114 - CONFIG_SYS_FLASH_CFI:
3118 - CONFIG_FLASH_CFI_DRIVER
3122 - CONFIG_FLASH_CFI_MTD
3127 - CONFIG_SYS_FLASH_USE_BUFFER_WRITE
3130 - CONFIG_FLASH_SPANSION_S29WS_N
3131 s29ws-n MirrorBit flash has non-standard addresses for buffered
3134 - CONFIG_SYS_FLASH_QUIET_TEST
3140 - CONFIG_FLASH_SHOW_PROGRESS
3145 - CONFIG_FLASH_VERIFY
3154 - CONFIG_SYS_RX_ETH_BUFFER:
3162 - CONFIG_ENV_MAX_ENTRIES
3170 - CONFIG_ENV_FLAGS_LIST_DEFAULT
3171 - CONFIG_ENV_FLAGS_LIST_STATIC
3185 s - String (default)
3186 d - Decimal
3187 x - Hexadecimal
3188 b - Boolean ([1yYtT|0nNfF])
3189 i - IP address
3190 m - MAC address
3193 a - Any (default)
3194 r - Read-only
3195 o - Write-once
3196 c - Change-default
3198 - CONFIG_ENV_FLAGS_LIST_DEFAULT
3202 - CONFIG_ENV_FLAGS_LIST_STATIC
3213 - CONFIG_ENV_ACCESS_IGNORE_FORCE
3214 If defined, don't allow the -f switch to env set override variable
3217 - CONFIG_USE_STDINT
3220 building U-Boot to enable this.
3226 - CONFIG_BUILD_ENVCRC:
3229 may easily extract it and embed it in final U-Boot images.
3232 in U-Boot initialization (when we try to get the setting of for the
3234 U-Boot will hang.
3246 - CONFIG_NAND_ENV_DST
3252 Please note that the environment is read-only until the monitor
3259 with the compiled-in default environment - *silently*!!! [This is
3261 "baudrate" setting for the console - if we have a bad CRC, we don't
3268 - CONFIG_SYS_FAULT_ECHO_LINK_DOWN:
3274 - CONFIG_SYS_FAULT_MII_ADDR:
3277 - CONFIG_NS16550_MIN_FUNCTIONS:
3284 - CONFIG_DISPLAY_BOARDINFO
3285 Display information about the board that U-Boot is running on
3286 when U-Boot starts up. The board function checkboard() is called
3289 - CONFIG_DISPLAY_BOARDINFO_LATE
3294 - CONFIG_BOARD_SIZE_LIMIT:
3295 Maximum size of the U-Boot image. When defined, the
3300 ---------------------------------------------------
3302 - CONFIG_SYS_CACHELINE_SIZE:
3305 - CONFIG_SYS_CCSRBAR_DEFAULT:
3306 Default (power-on reset) physical address of CCSR on Freescale
3309 - CONFIG_SYS_CCSRBAR:
3310 Virtual address of CCSR. On a 32-bit build, this is typically
3313 - CONFIG_SYS_CCSRBAR_PHYS:
3318 is typically relocated on 36-bit builds. It is recommended
3324 - CONFIG_SYS_CCSRBAR_PHYS_HIGH:
3325 Bits 33-36 of CONFIG_SYS_CCSRBAR_PHYS. This value is typically
3326 either 0 (32-bit build) or 0xF (36-bit build). This macro is
3330 - CONFIG_SYS_CCSRBAR_PHYS_LOW:
3331 Lower 32-bits of CONFIG_SYS_CCSRBAR_PHYS. This macro is
3335 - CONFIG_SYS_CCSR_DO_NOT_RELOCATE:
3339 - Floppy Disk Support:
3362 source code. It is used to make hardware-dependent
3365 - CONFIG_IDE_AHB:
3366 Most IDE controllers were designed to be connected with PCI
3369 IDE devices through IDE-AHB controller, some additional
3370 registers accessing to these kind of IDE-AHB controller
3373 - CONFIG_SYS_IMMR: Physical address of the Internal Memory.
3375 doing! (11-4) [MPC8xx systems only]
3377 - CONFIG_SYS_INIT_RAM_ADDR:
3387 U-Boot uses the following memory types:
3388 - MPC8xx: IMMR (internal memory of the CPU)
3390 - CONFIG_SYS_GBL_DATA_OFFSET:
3396 (sometimes written as (CONFIG_SYS_INIT_RAM_SIZE -
3404 CONFIG_SYS_INIT_RAM_ADDR is basically arbitrary - it must
3406 the top of RAM and the start of the PCI space.
3408 - CONFIG_SYS_SCCR: System Clock and reset Control Register (15-27)
3410 - CONFIG_SYS_OR_TIMING_SDRAM:
3413 - CONFIG_SYS_MAMR_PTA:
3416 - FLASH_BASE0_PRELIM, FLASH_BASE1_PRELIM, CONFIG_SYS_REMAP_OR_AM,
3422 - SDRAM_BASE2_PRELIM, SDRAM_BASE3_PRELIM, SDRAM_MAX_SIZE,
3427 - CONFIG_PCI_ENUM_ONLY
3431 a second time. Useful for platforms that are pre-booted
3434 - CONFIG_PCI_INDIRECT_BRIDGE:
3435 Enable support for indirect PCI bridges.
3437 - CONFIG_SYS_SRIO:
3440 - CONFIG_SRIO1:
3443 - CONFIG_SRIO2:
3446 - CONFIG_SRIO_PCIE_BOOT_MASTER
3449 - CONFIG_SYS_SRIOn_MEM_VIRT:
3452 - CONFIG_SYS_SRIOn_MEM_PHYS:
3455 - CONFIG_SYS_SRIOn_MEM_SIZE:
3458 - CONFIG_SYS_NAND_BUSWIDTH_16BIT
3463 - drivers/mtd/nand/raw/ndfc.c
3464 - drivers/mtd/nand/raw/mxc_nand.c
3466 - CONFIG_SYS_NDFC_EBC0_CFG
3470 - CONFIG_SPD_EEPROM
3477 - CONFIG_SYS_SPD_BUS_NUM
3482 - CONFIG_SYS_DDR_RAW_TIMING
3485 parameters are extracted from datasheet and hard-coded into
3488 - CONFIG_FSL_DDR_INTERACTIVE
3489 Enable interactive DDR debugging. See doc/README.fsl-ddr.
3491 - CONFIG_FSL_DDR_SYNC_REFRESH
3494 - CONFIG_FSL_DDR_BIST
3495 Enable built-in memory test for Freescale DDR controllers.
3497 - CONFIG_SYS_83XX_DDR_USES_CS0
3501 - CONFIG_RMII
3506 - CONFIG_CRC32_VERIFY
3510 => crc32 -v <address> <count> <crc32>
3516 - CONFIG_LOOPW
3520 - CONFIG_MX_CYCLIC
3534 - CONFIG_SKIP_LOWLEVEL_INIT
3537 controller) are omitted and/or U-Boot does not
3541 exception is when U-Boot is loaded (to RAM) by some
3545 - CONFIG_SKIP_LOWLEVEL_INIT_ONLY
3546 [ARM926EJ-S only] This allows just the call to lowlevel_init()
3550 - CONFIG_SPL_BUILD
3552 that is executed before the actual U-Boot. E.g. when
3555 - CONFIG_TPL_BUILD
3557 that is executed after the SPL and before the actual U-Boot.
3560 - CONFIG_SYS_MPC85XX_NO_RESETVEC
3565 - CONFIG_ARCH_MAP_SYSMEM
3566 Generally U-Boot (and in particular the md command) uses
3568 U-Boot address as virtual addresses that need to be translated
3574 - CONFIG_X86_RESET_VECTOR
3576 needed when U-Boot is running from Coreboot.
3578 - CONFIG_SPL_AM33XX_ENABLE_RTC32K_OSC:
3581 - CONFIG_SYS_NAND_NO_SUBPAGE_WRITE
3587 -----------------------------------
3591 This firmware often needs to be loaded during U-Boot booting, so macros
3595 - CONFIG_SYS_FMAN_FW_ADDR
3600 - CONFIG_SYS_QE_FW_ADDR
3605 - CONFIG_SYS_QE_FMAN_FW_LENGTH
3611 - CONFIG_SYS_QE_FMAN_FW_IN_NOR
3616 - CONFIG_SYS_QE_FMAN_FW_IN_NAND
3620 - CONFIG_SYS_QE_FMAN_FW_IN_MMC
3624 - CONFIG_SYS_QE_FMAN_FW_IN_REMOTE
3627 can be mapped from slave TLB->slave LAW->slave SRIO or PCIE outbound
3628 window->master inbound window->master LAW->the ucode address in
3632 ---------------------------------------------------------
3635 This firmware often needs to be loaded during U-Boot booting, so macros
3639 - CONFIG_FSL_MC_ENET
3643 -------------------------------------------
3645 "Debug Server firmware" and triggering SP boot-rom.
3646 This firmware often needs to be loaded during U-Boot booting.
3648 - CONFIG_SYS_MC_RSV_MEM_ALIGN
3652 -------------------
3654 In order to achieve reproducible builds, timestamps used in the U-Boot build
3658 SOURCE_DATE_EPOCH is to be set on the build host's shell, not as a configuration
3659 option for U-Boot or an environment variable in U-Boot.
3666 Building U-Boot has been tested in several native build environments
3671 which is extensively used to build and test U-Boot.
3679 $ CROSS_COMPILE=ppc_4xx-
3684 (http://www.mingw.org). Set your HOST tools to the MinGW
3687 $ make HOSTCC=i586-mingw32msvc-gcc HOSTSTRIP=i586-mingw32msvc-strip tools
3692 U-Boot is intended to be simple to build. After installing the
3693 sources you must configure U-Boot for one specific board type. This
3698 where "NAME_defconfig" is the name of one of the existing configu-
3708 - will configure for a plain TQM823L, i. e. no LCD support
3711 - will configure for a TQM823L with U-Boot console on LCD
3716 Finally, type "make all", and you should get some working U-Boot
3719 - "u-boot.bin" is a raw binary image
3720 - "u-boot" is an image in ELF binary format
3721 - "u-boot.srec" is in Motorola S-Record format
3725 this behavior and build U-Boot to some external directory:
3750 to port U-Boot to your hardware platform. To do this, follow these
3758 3. If you're porting U-Boot to a new CPU, then also create a new
3761 5. Type "make", and you should get a working "u-boot.srec" file
3767 Testing of U-Boot Modifications, Ports to New Hardware, etc.:
3770 If you have modified U-Boot sources (for instance added a new board
3774 official or latest in the git repository) version of U-Boot sources.
3776 But before you submit such a patch, please verify that your modifi-
3780 configure and build U-Boot for ALL supported system. Be warned, this
3781 will take a while. Please see the buildman README, or run 'buildman -H'
3785 See also "U-Boot Porting Guide" below.
3788 Monitor Commands - Overview:
3791 go - start application at address 'addr'
3792 run - run commands in an environment variable
3793 bootm - boot application image from memory
3794 bootp - boot image via network using BootP/TFTP protocol
3795 bootz - boot zImage from memory
3796 tftpboot- boot image via network using TFTP protocol
3799 tftpput - upload a file via network using TFTP protocol
3800 rarpboot- boot image via network using RARP/TFTP protocol
3801 diskboot- boot from IDE devicebootd - boot default, i.e., run 'bootcmd'
3802 loads - load S-Record file over serial line
3803 loadb - load binary file over serial line (kermit mode)
3804 md - memory display
3805 mm - memory modify (auto-incrementing)
3806 nm - memory modify (constant address)
3807 mw - memory write (fill)
3808 cp - memory copy
3809 cmp - memory compare
3810 crc32 - checksum calculation
3811 i2c - I2C sub-system
3812 sspi - SPI utility commands
3813 base - print or set address offset
3814 printenv- print environment variables
3815 setenv - set environment variables
3816 saveenv - save environment variables to persistent storage
3817 protect - enable or disable FLASH write protection
3818 erase - erase FLASH memory
3819 flinfo - print FLASH memory information
3820 nand - NAND memory operations (see doc/README.nand)
3821 bdinfo - print Board Info structure
3822 iminfo - print header information for application image
3823 coninfo - print console devices and informations
3824 ide - IDE sub-system
3825 loop - infinite loop on address range
3826 loopw - infinite write loop on address range
3827 mtest - simple RAM test
3828 icache - enable or disable instruction cache
3829 dcache - enable or disable data cache
3830 reset - Perform RESET of the CPU
3831 echo - echo args to console
3832 version - print monitor version
3833 help - print online help
3834 ? - alias for 'help'
3837 Monitor Commands - Detailed Description:
3848 U-Boot supports user configuration using Environment Variables which
3855 working with an in-memory copy. In case the Flash area containing the
3862 baudrate - see CONFIG_BAUDRATE
3864 bootdelay - see CONFIG_BOOTDELAY
3866 bootcmd - see CONFIG_BOOTCOMMAND
3868 bootargs - Boot arguments when booting an RTOS image
3870 bootfile - Name of the image to load with TFTP
3872 bootm_low - Memory range available for image processing in the bootm
3878 kernel -- see the description of CONFIG_SYS_BOOTMAPSZ and
3881 bootm_mapsize - Size of the initial memory mapping for the Linux kernel.
3889 bootm_size - Memory range available for image processing in the bootm
3895 updatefile - Location of the software update file on a TFTP server, used
3899 autoload - if set to "no" (any string beginning with 'n'),
3904 autostart - if set to "yes", an image loaded using the "bootp",
3915 fdt_high - if set this restricts the maximum address that the
3928 sufficient padding on the end of it for u-boot to
3932 fdtcontroladdr- if set this is the address of the control flattened
3933 device tree used by U-Boot when CONFIG_OF_CONTROL is
3936 i2cfast - (PPC405GP|PPC405EP only)
3942 initrd_high - restrict positioning of initrd images:
3951 address to use (U-Boot will still check that it
3952 does not overwrite the U-Boot stack and data).
3959 12 MB as well - this can be done with
3964 indication to U-Boot that all addresses are legal
3966 memory. In this case U-Boot will NOT COPY the
3971 ipaddr - IP address; needed for tftpboot command
3973 loadaddr - Default load address for commands like "bootp",
3976 loads_echo - see CONFIG_LOADS_ECHO
3978 serverip - TFTP server IP address; needed for tftpboot command
3980 bootretry - see CONFIG_BOOT_RETRY_TIME
3982 bootdelaykey - see CONFIG_AUTOBOOT_DELAY_STR
3984 bootstopkey - see CONFIG_AUTOBOOT_STOP_STR
3986 ethprime - controls which interface is used first.
3988 ethact - controls which interface is currently active.
3996 ethrotate - When set to "no" U-Boot does not go through all
4000 netretry - When set to "no" each network operation will
4008 npe_ucode - set load address for the NPE microcode
4010 silent_linux - If set then Linux will be told to boot silently, by
4013 unset, then it will be made silent if the U-Boot console
4016 tftpsrcp - If this is set, the value is used for TFTP's
4019 tftpdstp - If this is set, the value is used for TFTP's UDP
4022 tftpblocksize - Block size to use for TFTP transfers; if not set,
4025 tftptimeout - Retransmission timeout for TFTP packets (in milli-
4033 tftptimeoutcountmax - maximum count of TFTP timeouts (no
4041 vlan - When set to a value < 4095 the traffic over
4045 bootpretryperiod - Period during which BOOTP/DHCP sends retries.
4059 *Note* - these variables don't have to be defined for all boards, some
4064 ----- --------- ----------- --------------
4065 u-boot u-boot u-boot_addr_r u-boot_addr
4074 bootfile - see above
4075 dnsip - IP address of your Domain Name Server
4076 dnsip2 - IP address of your secondary Domain Name Server
4077 gatewayip - IP address of the Gateway (Router) to use
4078 hostname - Target hostname
4079 ipaddr - see above
4080 netmask - Subnet Mask
4081 rootpath - Pathname of the root filesystem on the NFS server
4082 serverip - see above
4087 serial# - contains hardware identification information such
4089 ethaddr - Ethernet address
4092 the board). U-Boot refuses to delete or overwrite these variables
4098 ver - Contains the U-Boot version string as printed
4104 only effect after the next boot (yes, that's just like Windoze :-).
4108 ---------------------------------------------
4110 For some environment variables, the behavior of u-boot needs to change
4144 There are two different command line parsers available with U-Boot:
4148 --------------------------------
4150 - supports environment variables (through setenv / saveenv commands)
4151 - several commands on one line, separated by ';'
4152 - variable substitution using "... ${name} ..." syntax
4153 - special characters ('$', ';') can be escaped by prefixing with '\',
4156 - You can also escape text by enclosing in single apostrophes, for example:
4160 -----------
4162 - similar to Bourne shell, with control structures like
4165 - supports environment ("global") variables (through setenv / saveenv
4171 --------------
4186 Some boards come with redundant Ethernet interfaces; U-Boot supports
4195 in SROM), this is used as default address if there is NO correspon-
4215 a random, locally-assigned MAC is used.
4226 U-Boot is capable of booting (and performing other auxiliary operations on)
4230 -----------------------
4232 Flexible and powerful format based on Flattened Image Tree -- FIT (similar
4239 -----------------
4267 Although U-Boot should support any OS or standalone application
4269 U-Boot.
4271 U-Boot includes many features that so far have been part of some
4277 - the same features can be used for other OS or standalone
4281 - it becomes much easier to port new Linux kernel versions because
4282 lots of low-level, hardware dependent stuff are done by U-Boot
4284 - the same Linux kernel image can now be used with different "initrd"
4288 change a file in your "initrd"). Also, a field-upgrade of the
4295 Porting Linux to U-Boot based systems:
4296 ---------------------------------------
4298 U-Boot cannot save you from doing all the necessary modifications to
4301 Linux :-).
4306 include/asm-ppc/tqm8xx.h) includes the same definition of the Board
4307 Information structure as we define in include/asm-<arch>/u-boot.h,
4309 as your U-Boot configuration in CONFIG_SYS_IMMR.
4311 Note that U-Boot now has a driver model, a unified model for drivers.
4314 doc/driver-model.
4318 -----------------------------
4320 No specific requirements for U-Boot. Make sure you have some root
4325 -----------------------
4327 With U-Boot, "normal" build targets like "zImage" or "bzImage" are
4330 U-Boot. Most older kernels also have support for a "pImage" target,
4343 CRC32 checksum etc. for use with U-Boot. This is what we are doing:
4349 ${CROSS_COMPILE}-objcopy -O binary \
4350 -R .note -R .comment \
4351 -S vmlinux linux.bin
4355 gzip -9 linux.bin
4357 * package compressed binary image for U-Boot:
4359 mkimage -A ppc -O linux -T kernel -C gzip \
4360 -a 0 -e 0 -n "Linux Kernel Image" \
4361 -d linux.bin.gz uImage
4365 with U-Boot, either separated from the Linux kernel image, or
4374 In the first form (with "-l" option) mkimage lists the information
4375 contained in the header of an existing U-Boot image; this includes
4378 tools/mkimage -l image
4379 -l ==> list image header information
4381 The second form (with "-d" option) is used to build a U-Boot image
4384 tools/mkimage -A arch -O os -T type -C comp -a addr -e ep \
4385 -n name -d data_file image
4386 -A ==> set architecture to 'arch'
4387 -O ==> set operating system to 'os'
4388 -T ==> set image type to 'type'
4389 -C ==> set compression type 'comp'
4390 -a ==> set load address to 'addr' (hex)
4391 -e ==> set entry point to 'ep' (hex)
4392 -n ==> set image name to 'name'
4393 -d ==> use image data from 'datafile'
4399 - 2.2.x kernels have the entry point at 0x0000000C,
4400 - 2.3.x and later kernels have the entry point at 0x00000000.
4402 So a typical call to build a U-Boot image would read:
4404 -> tools/mkimage -n '2.4.4 kernel for TQM850L' \
4405 > -A ppc -O linux -T kernel -C gzip -a 0 -e 0 \
4406 > -d /opt/elsk/ppc_8xx/usr/src/linux-2.4.4/arch/powerpc/coffboot/vmlinux.gz \
4417 -> tools/mkimage -l examples/uImage.TQM850L
4430 -> gunzip /opt/elsk/ppc_8xx/usr/src/linux-2.4.4/arch/powerpc/coffboot/vmlinux.gz
4431 -> tools/mkimage -n '2.4.4 kernel for TQM850L' \
4432 > -A ppc -O linux -T kernel -C none -a 0 -e 0 \
4433 > -d /opt/elsk/ppc_8xx/usr/src/linux-2.4.4/arch/powerpc/coffboot/vmlinux \
4434 > examples/uImage.TQM850L-uncompressed
4443 Similar you can build U-Boot images from a 'ramdisk.image.gz' file
4446 -> tools/mkimage -n 'Simple Ramdisk Image' \
4447 > -A ppc -O linux -T ramdisk -C gzip \
4448 > -d /LinuxPPC/images/SIMPLE-ramdisk.image.gz examples/simple-initrd
4456 The "dumpimage" is a tool to disassemble images built by mkimage. Its "-i"
4457 option performs the converse operation of the mkimage's second form (the "-d"
4461 tools/dumpimage -i image -T type -p position data_file
4462 -i ==> extract from the 'image' a specific 'data_file'
4463 -T ==> set image type to 'type'
4464 -p ==> 'position' (starting at 0) of the 'data_file' inside the 'image'
4468 -------------------------
4470 To downloading a U-Boot image over the serial (console) interface,
4471 you must convert the image to S-Record format:
4473 objcopy -I binary -O srec examples/image examples/image.srec
4475 The 'objcopy' does not understand the information in the U-Boot
4476 image header, so the resulting S-Record file will be relative to
4490 ## Ready for S-Record download ...
4516 -----------
4599 -----------
4601 First, U-Boot must be compiled with the appropriate defines. See the section
4632 => bootm $loadaddr - $oftaddr
4634 Image Name: Linux-2.6.17-dirty
4643 Memory CAM mapping: CAM0=256Mb, CAM1=256Mb, CAM2=0Mb residual: 0Mb
4647 More About U-Boot Image Types:
4648 ------------------------------
4650 U-Boot supports the following image types:
4653 provided by U-Boot; it is expected that (if they behave
4654 well) you can continue to work in U-Boot after return from
4659 drivers, set up the MMU, etc. - this means, that you cannot
4660 expect to re-enter U-Boot except by resetting the CPU.
4664 "Multi-File Images" contain several images, typically an OS
4671 "Multi-File Images" start with a list of image sizes, each
4679 U-Boot or FPGA images) which usually will be programmed to
4683 U-Boot's command interpreter; this feature is especially
4684 useful when you configure U-Boot to use a real shell (hush)
4688 -------------------------
4703 One of the features of U-Boot is that you can dynamically load and
4705 U-Boot like console I/O functions or interrupt services.
4710 -------------------
4713 application; it is automatically compiled when you build U-Boot.
4718 ## Ready for S-Record download ...
4742 handler with the U-Boot code, can be found in 'examples/timer.c'.
4748 ? - print current values og the CPM Timer registers
4749 b - enable interrupts and start timer
4750 e - stop timer and disable interrupts
4751 q - quit application
4754 ## Ready for S-Record download ...
4794 Unix, I recommend to use C-Kermit for general purpose use (and
4796 use "cu" for S-Record download ("loads" command). See
4804 Name Program Name U/D FullScr IO-Red. Multi
4805 X kermit /usr/bin/kermit -i -l %l -s Y U Y N N
4806 Y kermit /usr/bin/kermit -i -l %l -r N D Y N N
4812 Starting at version 0.9.2, U-Boot supports NetBSD both as host
4813 (build U-Boot) and target system (boots NetBSD/mpc8xx).
4816 NetBSD/i386 with the cross-powerpc-netbsd-1.3 package (you will also
4818 Note that the cross-powerpc package does not install include files;
4819 attempting to build U-Boot will fail because <machine/ansi.h> is
4822 # cd /usr/pkg/cross/powerpc-netbsd/include
4824 # ln -s powerpc machine
4829 and U-Boot include files.
4832 stage-2 loader which in turn loads and then invokes the kernel
4834 tree (probably in sys/arc/mpc8xx/stand/u-boot_stage2/); in the
4835 meantime, see ftp://ftp.denx.de/pub/u-boot/ppcboot_stage2.tar.gz
4843 inner workings of U-Boot and make it easier to port it to custom
4848 ---------------------------
4850 The implementation of U-Boot is complicated by the fact that U-Boot
4857 models provide on-chip memory (like the IMMR area on MPC8xx and
4859 locked as (mis-) used as memory, etc.
4862 U-Boot mailing list:
4864 Subject: RE: [U-Boot-Users] RE: More On Memory Bank x (nothingness)?
4866 Date: Mon, 10 Feb 2003 16:43:46 -0500 (22:43 MET)
4876 operation in the architecture and processor-specific manuals.
4888 you will find in any recent u-boot distribution in
4896 -Chris Hallinan
4902 * Initialized global data (data segment) is read-only. Do not attempt
4906 as zero data - BSS segment) at all - this is undefined, initiali-
4914 turned out that the implementation of U-Boot can be greatly
4929 R3-R4: parameter passing and return values
4930 R5-R10: parameter passing
4935 (U-Boot also uses R12 as internal GOT pointer. r12
4939 ==> U-Boot will use R2 to hold a pointer to the global data
4944 smaller code - although the code savings are not that big (on
4945 average for all boards 752 bytes for the whole U-Boot image,
4951 R1-R3: function argument word
4960 ==> U-Boot will use R9 to hold a pointer to the global data
4967 ==> U-Boot will use gp to hold a pointer to the global data
4969 Note: on Nios II, we give "-G0" option to gcc and don't use gp
4974 R0-R1: argument/return
4975 R2-R5: argument
4984 ==> U-Boot will use R10 to hold a pointer to the global data
4986 NOTE: DECLARE_GLOBAL_DATA_PTR must be used with file-global scope,
4990 ------------------
4992 U-Boot runs in system state and uses physical addresses, i.e. the
5000 U-Boot is installed in the first 128 kB of the first Flash bank (on
5003 to the upper end of DRAM. Immediately below the U-Boot code some
5030 ... eventually: pRAM (Protected RAM - unchanged by reset)
5035 ----------------------
5037 In the reset configuration, U-Boot starts at the reset entry point
5040 To be able to re-map memory U-Boot then jumps to its link address.
5044 cache. After that, U-Boot initializes the CPU core, the caches and
5072 U-Boot Porting Guide:
5073 ----------------------
5075 [Based on messages by Jerry Van Baren in the U-Boot-Users mailing
5084 alarm(PROJECT_DEADLINE - toSec (3 * WEEK));
5087 Pay consultant to port U-Boot;
5091 Download latest U-Boot source;
5093 Subscribe to u-boot mailing list;
5096 email("Hi, I am new to U-Boot, how do I get started?");
5103 /* find . -name "*.[chS]" | xargs grep -i <keyword> */
5112 cp -a board/<similar> board/<myboard>
5130 Send patch file to the U-Boot email list;
5147 -----------------
5149 All contributions to U-Boot should conform to the Linux kernel
5151 https://www.kernel.org/doc/html/latest/process/coding-style.html, and the
5159 Please note that U-Boot is implemented in C (and to some small parts in
5164 - remove any trailing white space
5165 - use TAB characters for indentation and vertical alignment, not spaces
5166 - make sure NOT to use DOS '\r\n' line feeds
5167 - do not add more than 2 consecutive empty lines to source files
5168 - do not add trailing empty lines to source files
5175 -------------------
5177 Since the number of patches for U-Boot is growing, we need to
5181 Please see http://www.denx.de/wiki/U-Boot/Patches for details.
5183 Patches shall be sent to the u-boot mailing list <u-boot@lists.denx.de>;
5184 see https://lists.denx.de/listinfo/u-boot
5202 maintainer e-mail address to the boards.cfg file, too.
5209 "git format-patch". If you then use "git send-email" to send it to
5210 the U-Boot mailing list, you will avoid most of the common problems
5213 If you cannot use git, use "diff -purN OLD NEW". If your version of
5218 directory of the U-Boot source tree (i. e. please make sure that
5240 returned with a request to re-formatting / split it.
5243 add to the memory footprint of the code ;-) Small is beautiful!
5250 u-boot mailing list. Bigger patches will be moderated. If they are