mirror of
https://github.com/brain-hackers/u-boot-brain
synced 2024-08-30 05:48:51 +09:00
![]() We have switched to Kconfig and the boards.cfg file is going to be removed. We have to retrieve the board status and maintainers information from it. The MAINTAINERS format as in Linux Kernel would be nice because we can crib the scripts/get_maintainer.pl script. After some discussion, we chose to put a MAINTAINERS file under each board directory, not the top-level one because we want to collect relevant information for a board into a single place. TODO: Modify get_maintainer.pl to scan multiple MAINTAINERS files. Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com> Suggested-by: Tom Rini <trini@ti.com> Acked-by: Simon Glass <sjg@chromium.org> |
||
---|---|---|
.. | ||
a3m071.c | ||
is46r16320d.h | ||
Kconfig | ||
MAINTAINERS | ||
Makefile | ||
mt46v16m16-75.h | ||
README |
------------------------------------------------------------------------ A3M071 board support ------------------------------------------------------------------------ SPL NOR flash support: ---------------------- To boot fast into the OS (Linux), this board port integrates the SPL framework. This means, that a special, stripped-down version of U-Boot runs in the beginning. In the case of the A3M071 board, this SPL U-Boot version is less than 16 KiB big. This SPL U-Boot can either boot the OS (Linux) or a "real", full-blown U-Boot. This detection on whether to boot Linux or U-Boot is done by using the "boot_os" environment variable. If "boot_os" is set to "yes", Linux will be loaded and booted from the SPL U-Boot version. Otherwise, the full-blown U-Boot version will be loaded and run. Enabling Linux booting: ----------------------- From U-Boot: => setenv boot_os yes => saveenv From Linux: $ fw_setenv boot_os yes Enabling U-Boot booting: ------------------------ From U-Boot: => setenv boot_os no => saveenv From Linux: $ fw_setenv boot_os no Preparing Linux image(s) for booting from SPL U-Boot: ----------------------------------------------------- To boot the Linux kernel from the SPL, the DT blob (fdt) needs to get prepard/patched first. U-Boot usually inserts some dynamic values into the DT binary (blob), e.g. autodetected memory size, MAC addresses, clocks speeds etc. To generate this patched DT blob, you can use the following command: 1. Load fdt blob to SDRAM: => tftp 1800000 a3m071/a3m071.dtb 2. Set bootargs as desired for Linux booting (e.g. flash_mtd): => run mtdargs addip2 addtty 3. Use "fdt" commands to patch the DT blob: => fdt addr 1800000 => fdt boardsetup => fdt chosen 4. Display patched DT blob (optional): => fdt print 5. Save fdt to NOR flash: => erase fc180000 fc07ffff => cp.b 1800000 fc180000 10000 All this can be integrated into an environment command: => setenv upd_fdt 'tftp 1800000 a3m071/a3m071.dtb;run mtdargs addip addtty; \ fdt addr 1800000;fdt boardsetup;fdt chosen;erase fc180000 fc07ffff; \ cp.b 1800000 fc180000 10000' => saveenv After this, only "run upd_fdt" needs to get called to load, patch and save the DT blob into NOR flash. Additionally, the Linux kernel image has to be saved uncompressed in its uImage file (and not gzip compressed). This can be done with this command: $ mkimage -A ppc -O linux -T kernel -C none -a 0 -e 0 \ -n "Linux Kernel Image" -d vmlinux.bin uImage.uncompressed ------------------------------------------------------------------------ Stefan Roese, 2012-08-23