extended, tedious(?) writeup of how u-boot is built for the BBB

for the sake of being able to explain it in an embedded linux class,
i threw together a wiki page on the fetching, patching, configuration
and building of u-boot (2013.04) for the BBB, based on building a
core-image-minimal-dev using the meta-beagleboard/common-bsp layer:

  http://www.crashcourse.ca/wiki/index.php/U-Boot_on_the_BBB

there's nothing deep there, just a lot of cutting and pasting so i
could walk students step-by-step through how that final executable
u-boot.img comes to be, and emphasizing the u-boot environment so they
could appreciate *exactly* how they can customize the boot sequence,
especially if they have no access to the serial console.

  if you find that page useful, by all means, use it. did i overlook
anything important? i'll probably cut and paste a few of the patches
just to show how one customizes the stock u-boot for a board as well.

rday

In general, looks good. My main complaint would be given what’s upstream (and the Timesys folks just posted some patches to add a ‘am335x_boneblack’ target that uses eMMC for env), I don’t like emphasizing using the vendor tree (but yes, you’re within the constraint of the OE layers).

A discussion (especially for explaining how / why) on the factory side of “how do I program the EEPROM, when U-Boot relies on the EEPROM” would be very good.

Looking over the patches, 1, 2 and 3 are “factory programming”, along with 15 (the latter half of which doesn’t do anything).

#4 shouldn’t be needed once the series to bump the MPU clock (and voltages) goes in.

#5 just won’t go upstream

#6/#9 shouldn’t be needed with the Timesys patches.

I don’t get #7/#8.

I’d like to see #10/#13 get posted (it reminds me that I just found CONFIG_CMD_SPI and I’ll be turning that on)

#11 is useful for diagnostic / classes.

And #12/#14 I’d also like to see someone pick up, explain/comment a bit more and post.

Thanks!

just to be clear, that page wasn't meant to be a technical
dissertation so much as something that would be useful for a
first-level embedded linux class, showing the contortions(?) one
sometimes gets into hacking u-boot for a particular platform. and at
least it's informative for people working specifically with the BBB.

rday