Status:
=======
-In general, all boards for which a configuration option exists in the
-Makefile have been tested to some extent and can be considered
+In general, all boards for which a default configuration file exists in the
+configs/ directory have been tested to some extent and can be considered
"working". In fact, many of them are used in production systems.
-In case of problems see the CHANGELOG file to find out who contributed
-the specific port. In addition, there are various MAINTAINERS files
-scattered throughout the U-Boot source identifying the people or
-companies responsible for various boards and subsystems.
+In case of problems you can use
-Note: As of August, 2010, there is no longer a CHANGELOG file in the
-actual U-Boot source tree; however, it can be created dynamically
-from the Git log using:
+ scripts/get_maintainer.pl <path>
- make CHANGELOG
+to identify the people or companies responsible for various boards and
+subsystems. Or have a look at the git log.
Where to get help:
IH_OS_U_BOOT u_boot_hush_start
-Versioning:
-===========
-
-Starting with the release in October 2008, the names of the releases
-were changed from numerical release numbers without deeper meaning
-into a time stamp based numbering. Regular releases are identified by
-names consisting of the calendar year and month of the release date.
-Additional fields (if present) indicate release candidates or bug fix
-releases in "stable" maintenance trees.
-
-Examples:
- U-Boot v2009.11 - Release November 2009
- U-Boot v2009.11.1 - Release 1 in version November 2009 stable tree
- U-Boot v2010.09-rc1 - Release candidate 1 for September 2010 release
-
-
-Directory Hierarchy:
-====================
-
-/arch Architecture-specific files
- /arc Files generic to ARC architecture
- /arm Files generic to ARM architecture
- /m68k Files generic to m68k architecture
- /microblaze Files generic to microblaze architecture
- /mips Files generic to MIPS architecture
- /nios2 Files generic to Altera NIOS2 architecture
- /powerpc Files generic to PowerPC architecture
- /riscv Files generic to RISC-V architecture
- /sandbox Files generic to HW-independent "sandbox"
- /sh Files generic to SH architecture
- /x86 Files generic to x86 architecture
- /xtensa Files generic to Xtensa architecture
-/api Machine/arch-independent API for external apps
-/board Board-dependent files
-/boot Support for images and booting
-/cmd U-Boot commands functions
-/common Misc architecture-independent functions
-/configs Board default configuration files
-/disk Code for disk drive partition handling
-/doc Documentation (a mix of ReST and READMEs)
-/drivers Device drivers
-/dts Makefile for building internal U-Boot fdt.
-/env Environment support
-/examples Example code for standalone applications, etc.
-/fs Filesystem code (cramfs, ext2, jffs2, etc.)
-/include Header Files
-/lib Library routines generic to all architectures
-/Licenses Various license files
-/net Networking code
-/post Power On Self Test
-/scripts Various build scripts and Makefiles
-/test Various unit test files
-/tools Tools to build and sign FIT images, etc.
-
Software Configuration:
=======================
same as CFG_SYS_DDR_SDRAM_BASE for all Power SoCs. But
it could be different for ARM SoCs.
-- MIPS CPU options:
- CONFIG_XWAY_SWAP_BYTES
-
- Enable compilation of tools/xway-swap-bytes needed for Lantiq
- XWAY SoCs for booting from NOR flash. The U-Boot image needs to
- be swapped if a flash programmer is used.
-
- ARM options:
CFG_SYS_EXCEPTION_VECTORS_HIGH
- CONFIG_SYS_MC_RSV_MEM_ALIGN
Define alignment of reserved memory MC requires
-Reproducible builds
--------------------
-
-In order to achieve reproducible builds, timestamps used in the U-Boot build
-process have to be set to a fixed value.
-
-This is done using the SOURCE_DATE_EPOCH environment variable.
-SOURCE_DATE_EPOCH is to be set on the build host's shell, not as a configuration
-option for U-Boot or an environment variable in U-Boot.
-
-SOURCE_DATE_EPOCH should be set to a number of seconds since the epoch, in UTC.
Building the Software:
======================
base - print or set address offset
printenv- print environment variables
pwm - control pwm channels
+seama - load SEAMA NAND image
setenv - set environment variables
saveenv - save environment variables to persistent storage
protect - enable or disable FLASH write protection
[q, b, e, ?] ## Application terminated, rc = 0x0
-Minicom warning:
-================
-
-Over time, many people have reported problems when trying to use the
-"minicom" terminal emulation program for serial download. I (wd)
-consider minicom to be broken, and recommend not to use it. Under
-Unix, I recommend to use C-Kermit for general purpose use (and
-especially for kermit binary protocol download ("loadb" command), and
-use "cu" for S-Record download ("loads" command). See
-https://www.denx.de/wiki/view/DULG/SystemSetup#Section_4.3.
-for help with kermit.
-
-
-Nevertheless, if you absolutely want to use it try adding this
-configuration to your "File transfer protocols" section:
-
- Name Program Name U/D FullScr IO-Red. Multi
- X kermit /usr/bin/kermit -i -l %l -s Y U Y N N
- Y kermit /usr/bin/kermit -i -l %l -r N D Y N N
-
-
Implementation Internals:
=========================
new address in RAM.
-U-Boot Porting Guide:
-----------------------
-
-[Based on messages by Jerry Van Baren in the U-Boot-Users mailing
-list, October 2002]
-
-
-int main(int argc, char *argv[])
-{
- sighandler_t no_more_time;
-
- signal(SIGALRM, no_more_time);
- alarm(PROJECT_DEADLINE - toSec (3 * WEEK));
-
- if (available_money > available_manpower) {
- Pay consultant to port U-Boot;
- return 0;
- }
-
- Download latest U-Boot source;
-
- Subscribe to u-boot mailing list;
-
- if (clueless)
- email("Hi, I am new to U-Boot, how do I get started?");
-
- while (learning) {
- Read the README file in the top level directory;
- Read https://www.denx.de/wiki/bin/view/DULG/Manual;
- Read applicable doc/README.*;
- Read the source, Luke;
- /* find . -name "*.[chS]" | xargs grep -i <keyword> */
- }
-
- if (available_money > toLocalCurrency ($2500))
- Buy a BDI3000;
- else
- Add a lot of aggravation and time;
-
- if (a similar board exists) { /* hopefully... */
- cp -a board/<similar> board/<myboard>
- cp include/configs/<similar>.h include/configs/<myboard>.h
- } else {
- Create your own board support subdirectory;
- Create your own board include/configs/<myboard>.h file;
- }
- Edit new board/<myboard> files
- Edit new include/configs/<myboard>.h
-
- while (!accepted) {
- while (!running) {
- do {
- Add / modify source code;
- } until (compiles);
- Debug;
- if (clueless)
- email("Hi, I am having problems...");
- }
- Send patch file to the U-Boot email list;
- if (reasonable critiques)
- Incorporate improvements from email list code review;
- else
- Defend code as written;
- }
-
- return 0;
-}
-
-void no_more_time (int sig)
-{
- hire_a_guru();
-}
-
-
Contributing
============