Porting Barebox to i.MX6QDL "Novena"

Sean Cross xobs at kosagi.com
Mon Jan 6 04:20:37 EST 2014


Hi,

After talking with people at 30C3, I've decided to try moving from
U-Boot to Barebox.  I've got things building to the point where I have a
single ">" character being printed (after reading an earlier SOM porting
message), but I'm starting to grasp at straws now when it comes to
bringing DDR up.

Novena has an SO-DIMM slot.  In U-Boot, we wrote a hook for setup_ddr()
that got the SO-DIMM's SPD via I2C, performed calibration, and returned
with DDR all configured.

In Barebox, I'm running into some trouble:

    1) How do I access I2C routines from lowlevel.c?  I need to be able
to query the EEPROM on the DDR module itself to get its timing parameters.

    2) How much character printing can I get in lowlevel.c?  I notice
putc_ll() works, but puts_ll() doesn't, presumably because I have the
text offset incorrectly set.

    3) How much functionality can I have in ~96 KiB?  I believe that's
roughly the amount of space allowed in the OCRAM on an i.MX6DL once you
allow for code in ROM that's actually doing the loading.

    4) Failing that, is it possible to load some preboot code to set up
DDR?  I realize the traditional method is a hardcoded pokefile, but
since we support DDR3 modules, we can't rely on that.


Sean



More information about the barebox mailing list