Beagle U-Boot v1 status

I'd like to summarize the status of recent Beagle U-Boot git (currently 1.3.3)

http://www.sakoman.net/cgi-bin/gitweb.cgi?p=u-boot-omap3.git;a=shortlog;h=refs/heads/test

and discuss further steps to make it upstream ready. Status:

- Steve regularly pulls from mainline, so above repository is in sync with mainline

- We finished first cleanup, mainly checkpatch stuff (with two exceptions, jffs2 & i2c, see below) and minor file reorganization.

- The Beagle patch against mainline is currently ~230k (without logo and audio). To give you an impression of recent changes, I put it into
attachment.

- Checkpatch is < 10k. Mainly asm/io.h, typedef, volatile and extern warnings. And from untouched i2c and jffs2 code. While further clean
up we can check if some of these can be solved (e.g. extern and volatile warnings) or if Linux checkpatch doesn't apply with this for uboot (e.g. asm/io.h).

- Resulting uboot.bin is ~150k and works fine at Beagle (if compiled with correct compiler (*)) :slight_smile:

Further steps:

1) Clean up code, fix issues, remove unused parts, rewrite broken parts etc.

2) Reorganize directory layout and file names. E.g. is cpu/omap3/ okay? Which files should go to cpu directory, which to board directory, which to drivers? Do we have better names for directories & files? Do we have to move file content?

3) Split the resulting patch into < 40k parts and send it to uboot list for discussion/inclusion. And then, well, let's see :wink:

Regarding (1), further code clean up:

a) In clock.c there are two parts refering to ES1.0. What to do with this? How to remove this correctly?

b) Review clock configuration. Is this clean/okay?

c) Review pin mux. E.g.

-> http://groups.google.com/group/beagleboard/msg/ea6419d444e76160

-> I2C2 usage vs. GPIO

d) What do we really need from misc_init_r() in omap3530beagle.c? What does the I2C stuff? What does the "*((uint *)" part?

e) Do we need secure_unlock_mem() & secureworld_exit() & try_unlock_memory() & setup_auxcr() on OMAP3530 Beagle?

f) Clean up (rewrite?) I2C code. Nishant had a short look to it and commented:

-> "/* have to enable intrrupts or OMAP i2c module doesn't work */ that is plain dumb.. it seem to work just fine"

-> "outw (I2C_CON_EN | I2C_CON_MST | I2C_CON_STT | I2C_CON_TRX, I2C_CON); => no required h/w workaround on some i2c revs"

g) What's about the jffs2 code/changes? Do we need them? Why?

h) Fix "fixme" sections :wink:

i) Review volatiles checkpatch complains about

j) Review externs checkpatch complains about

k) .... More? Please add.

Any help is highly appreciated!

Thanks to Steve for his work!

Cheers

Dirk

(*) Correct compiler: Using CSL toolchain gcc version 4.2.3 2008q1-126 results in uboot reporting "timed out in wait_for_bb: I2C_STAT=1000". Older CSL toolchains don't have this issue.

uboot_v1_git_beagle_patch.txt (229 KB)