[U-Boot] NXP lpc31xx support

Paul B. Henson henson at acm.org
Thu Dec 13 02:13:29 CET 2012


A friend of mine (who is more of a low-level hardware guy) is trying to 
put together a project based on the NXP lpc3130 processor, and asked me 
to help him out. I've got a reasonable OS/development background, but 
not much of any experience in the embedded realm, so apologies in 
advance for any cluelessness I might spew :).

NXP has a board support package for this processor:

http://ics.nxp.com/support/software/lpc313x.bsp.linux/

It includes a patch based on top of u-boot 2009.11 that adds 
functionality specific to their processor. They also have a community 
site for that processor (and others), including a git repo of their 
u-boot 2009.11 fork:

http://git.lpclinux.com/?p=uboot-2009.11-lpc313x.git;a=summary

That looks pretty dead though, and it doesn't appear NXP has any plans 
to update their BSP to a current u-boot or try to integrate support into 
upstream u-boot.

My friend would prefer to use a more current u-boot; while the rather 
old NXP fork would probably work for now, if he ever wanted to use more 
current features such as device trees he'd rather already be in a 
position to do so than have to scramble at that point. Ideally it would 
also be nice for the processor to be directly supported by upstream 
u-boot so it would just come along for the ride as features were added ;).

Jon Smirl started porting the NXP patch to u-boot 2011.12:

https://github.com/jonsmirl/lpc31xx-uboot

With some help from Jon, I've got that running on a dev board. However, 
he was only interested in booting from SD/mmc, which is all his current 
work supports. I'd like to get NAND booting working, and ideally get 
support accepted upstream, which presumably will require updating his 
work to current u-boot. I started working on the NAND boot support, but 
as already confessed my background in embedded is a bit light and I'm 
having some trouble with it.

I thought I'd take a step back and ask for some more general advice. NXP 
to some extent went and did their own thing (for example, evidently 
u-boot 2009.11 didn't support SPL, so they implemented their own), and 
while Jon has modified the original NXP implementation to a point to fit 
better within the u-boot 2011.12 he's working with, from my 
(inexperienced) eye it still differs a bit from the rest of the u-boot 
code. If the end goal is to get lpc31xx support in upstream u-boot, what 
would be the most efficient path to pursue? If the code currently in 
Jon's 2011.12 repo was fleshed out to full functionality, then brought 
up to a current u-boot version, is that something that would be accepted 
into upstream? Or would you recommend a different path?

Thanks much…


More information about the U-Boot mailing list