Hi Sascha<br><br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">> > you need the reference manual of the i.MX25 to know the meaning of<br>


> > these registers and the datasheet of your flash to know it's timings<br>
> > then you can calculate the value to put in the registers.<br>
> ><br>
> ><br>
> I have found them in an old uboot tree a previous person patched to have<br>
> working support for NOR on boot. The values are:<br>
><br>
>         { .ptr_type = 4, .addr = 0xB8002000, .val = 0x0000D003, },<br>
>         { .ptr_type = 4, .addr = 0xB8002004, .val = 0x00330D01, },<br>
>         { .ptr_type = 4, .addr = 0xB8002008, .val = 0x00220800, },<br>
<br>
</div>Do these values match the ones you read out of the registers using your<br>
U-Boot?<br></blockquote><div><br></div><div>Yep, the corresponing dcdheader.S entries:</div><div><br></div><div><div>DCDGEN( 1, 4, 0xB8002000, 0x0000D003) /* CS0_CSCRU */</div><div>DCDGEN( 2, 4, 0xB8002004, 0x00330d01) /* CS0_CSCRL */</div>

<div>DCDGEN( 3, 4, 0xB8002008, 0x00220800) /* CS0_CSCRA */</div></div><div><br></div><div>So I reckon at least I got this part working fine.</div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div class="im">
> /* Set up 16bit NOR flash on WEIM CS0 */<br>
> writel(0xB8002000, 0x0000D003);<br>
>  writel(0xB8002004, 0x00330D01);<br>
> writel(0xB8002008, 0x00220800);<br>
<br>
</div>You mixed up the argument order.<br>
<div class="im"><br></div></blockquote><div>Yikes!!!! I hope I didn't fry something. I'll quickly try the reversed order and report back.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div class="im">
><br>
> board_init_lowlevel_return();<br>
> }<br>
><br>
> Why can't I printf() from low_level?<br>
<br>
</div>Because the console hasn't been setup yet. That's exactly the reason why<br>
I recommend doing only the absolutely necessary stuff in lowlevel_init.<br>
<div class="HOEnZb"><div class="h5"><br></div></div></blockquote><div>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.</div>

<div><br></div><div>Cheers</div><div>Roberto</div><div><br></div><div><br></div></div>