U-boot Upstreaming Project
From OMAPpedia
Contents |
Introduction
Welcome to the U-boot Upstreaming Project wiki.
- TI was using a customized version of U-Boot 1.1.4 for both OMAP3 and OMAP4 products. This code base was forked from mainline U-Boot about 4 years ago. Since the time of the fork, OMAP3 support was added to mainline U-Boot by the open source community.
- The first phase of this upstreaming project was completed in January 2011. Basic OMAP4 u-boot support is now available in mainline.
OMAP4 U-boot Upstreaming
- Current status:
- The first 2 sets of OMAP4 patches are now upstream
- basic board support for OMAP4430 SDP and Panda
- mmc support
- i2c support
- gpmc support waiting for pull request
- Pinmux initialization
- Power IC (TWL6030) support
- USB and USB gadget support
- udelay fix
- i2c deriver fix
- Patches as submitted upstream are available at:
- Patches accepted for upstream inclusion, but awaiting a merge request are available at:
- Patches in development, but nearing completion are available at:
- U-boot currently relies on x-loader for mux, clock, and EMIF initialization.
- The first 2 sets of OMAP4 patches are now upstream
- Activities in Progress:
- Ethernet support
- Activities Pending:
- Fastboot support
- Clock and EMIF configuration
- Config Header support(Note: CH does not work well on OMAP4430 ES1.0)
- With the above change u-boot should boot without x-loader's help
- Low power boot
- Cleaning up the initialization part - removing OMAP specific code from armv7 layer.
- Specifically the real vector shall be installed by updating the CP15 register VBAR rather than copying it to the ROM code vector address.
X-loader up-streaming(SPL) - OMAP4
We are working on up-streaming x-loader as part of U-Boot. The idea is to build a mini u-boot out of the u-boot tree that fits into OMAP SRAM and bootloads the real u-boot into the SDRAM. Such a mini u-boot is typically called SPL(Second Program Loader) in u-boot terminology.
- The SPL for OMAP4 will support the following when up-streamed
- Basic ARM initialization
- UART console initialization
- Clocks and DPLL locking (minimal)
- SDRAM initialization
- Mux (minimal)
- MMC initialization(MMC1/MMC2 based on where we are booting from)
- Bootloading real u-boot from MMC and passing control to it.
- Improvements in SPL planned over x-loader:
- Support for all sys_clk frequencies by automatically calculating M & N values for DPLLs
- Option for doing SDRAM initialization automatically. The SPL can automatically detect the memory devices attached to the board and do the initialization automatically.
- Note that the automatic initialization may not be optimal if the device timings are better than the JEDEC specified base timings.
- However, on Elpida devices we use on our reference platforms the timings in the data-sheet are the same as the timings in the JEDEC spec. So the automatic initialization will be optimal too.
- Facility for customizing the timings is retained.
- Progress:
- Everything except bootloading from FAT partition is nearly complete.
- Cleanup and exhaustive testing to be done
- Advantages:
- Better code-reuse with u-boot. Maintenance easier.
- Opens up possibilities for community contribution
- Single source for all OMAP3/4 'x-loader's when eventually all OMAP3/4 platforms add SPL support
OMAP3 U-boot Upstreaming
To be added
Future Development Plan
- External XIP Boot(by-passing ROM code)
- This will completely by-pass ROM-code. So, the initialization code will have to take care some additional things that are normally done by ROM code.
Information on Testing Procedures
TBD
Submit Your Ideas Here
Please list them as separate subsections (use ===title===). Please include your name, email ID and date for easy processing.
Load .axf files
.axf files are ELF binaries, as generated by the ARM tools.
u-boot seemed to have support for loading ELF binaries at some point, but this was not compiling in our internal u-boot (due to dependencies on cache functions).
It would be nice to be able to load .axf binaries directly with u-boot.
-- Vincent Stehlé <v-stehle@ti.com> (24-Jun-2010)
Owner
Steve Sakoman <steve@sakoman.com> Aneesh V <aneesh@ti.com>
Contributors
Steve Sakoman <steve@sakoman.com> Aneesh V <aneesh@ti.com>