Tuesday, October 16, 2007

uboot 2 for omap in development..

So, I am on a slow roll on uboot2 changes for OMAP.. uboot 2 is lot less mature as it can be seen digging into the code, but it is most promising. The main reason I want to jump on uboot2 is that omap support is very nascent here, and lots can be done..
Some areas of concern:
* i2c seems pretty unclear
* I like the dev concept, but should modules of OMAP be also dev based? I dont think so.. generic modules - yes..i2c etc..
* on dev -> it looks very immature considering that include/driver.h has:
45 struct driver_d {

55 ssize_t (*erase) (struct device_d*, size_t count, unsigned long offset);
56 int (*protect)(struct device_d*, size_t count, unsigned long offset, int prot);

59 void (*info) (struct device_d *);

Errrr... erase,protect,info ?? that is flash type device struct rt? it does not fit into a generic driver structure..
* I dont like the fact that there is still a config.h (include/configs/xyz.h SYMLINKed to include/config.h) which makes NO sense to me.. one of the ideas of menuconfig was to kick this crap out rt?? in OMAP I am thinking of maintaining this as a empty file.. but for some reason stuck with this:
CONFIG_BOOT_PARAMS CONFIG_ARCH_NUMBER CFG_MALLOC_LEN CONFIG_STACKSIZE

On my progress so far:
Since I have to sync house chores with uboot ... Not much to add except: the following is my current git-status (yeah yeah.. i need to checkin..)..
# On branch master
# Changed but not updated:
# (use "git add ..." to update what will be committed)
#
# modified: arch/arm/Kconfig
# modified: arch/arm/Makefile
# modified: arch/arm/cpu/Makefile
#
# Untracked files:
# (use "git add ..." to include in what will be committed)
#
# arch/arm/configs/omap2430_sdp2430_defconfig
# arch/arm/cpu/Kconfig
# arch/arm/cpu/start.S
# arch/arm/mach-omap/
# board/omap/
# include/asm-arm/arch-omap/
# include/configs/omap.h

I am going in for the following trees:
board/omap/ -> each board file comes here. Kconfig here define the board characteristics
arch/arm/mach-omap/ -> silicon stuff
-- common -> equal to plat-omap on kernel
-- omap1 -> equal to mach-omap1 on kernel
`-- omap2 -> equal to mach-omap2 on kernel
include/asm-arm/arch-omap/ (silicon includes)
-- omap1
`-- omap2
I dont want to throw out an half baked patch out, I kind of have the pinmux framework in place for omap2. i checked 1710,1610 trms, FUNC_MUX concept is a nightmare :(... maybe look at it 2morrow..

No comments: