Booting mx25 based device from SD and NOR

Roberto Nibali rnibali at gmail.com
Tue May 29 05:56:24 EDT 2012


Hi Sascha

> > you need the reference manual of the i.MX25 to know the meaning of
> > > these registers and the datasheet of your flash to know it's timings
> > > then you can calculate the value to put in the registers.
> > >
> > >
> > I have found them in an old uboot tree a previous person patched to have
> > working support for NOR on boot. The values are:
> >
> >         { .ptr_type = 4, .addr = 0xB8002000, .val = 0x0000D003, },
> >         { .ptr_type = 4, .addr = 0xB8002004, .val = 0x00330D01, },
> >         { .ptr_type = 4, .addr = 0xB8002008, .val = 0x00220800, },
>
> Do these values match the ones you read out of the registers using your
> U-Boot?
>

Yep, the corresponing dcdheader.S entries:

DCDGEN( 1, 4, 0xB8002000, 0x0000D003) /* CS0_CSCRU */
DCDGEN( 2, 4, 0xB8002004, 0x00330d01) /* CS0_CSCRL */
DCDGEN( 3, 4, 0xB8002008, 0x00220800) /* CS0_CSCRA */

So I reckon at least I got this part working fine.

 > /* Set up 16bit NOR flash on WEIM CS0 */
> > writel(0xB8002000, 0x0000D003);
> >  writel(0xB8002004, 0x00330D01);
> > writel(0xB8002008, 0x00220800);
>
> You mixed up the argument order.
>
> Yikes!!!! I hope I didn't fry something. I'll quickly try the reversed
order and report back.


>  >
> > board_init_lowlevel_return();
> > }
> >
> > Why can't I printf() from low_level?
>
> Because the console hasn't been setup yet. That's exactly the reason why
> I recommend doing only the absolutely necessary stuff in lowlevel_init.
>
> Make perfect sense (*slapping forehead*). Thank you for your patience. I
reckon those questions of mine could be compiled into some sort of FAQ for
the newcomers into the barebox world to flatten the learning curve.

Cheers
Roberto
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.infradead.org/pipermail/barebox/attachments/20120529/128f0052/attachment.html>


More information about the barebox mailing list