I'm trying to boot our new imx28 based module for the first time. When connected to usb it enumerates correctly and I can run sb_loader. The file starts downloading and then reports Error(258), can anyone tell me what this error code means? The full output is below:
Downloading [filepath...] to device.
....... CsTHidDevice::Download() Error(258) during read.
Quitting.
Error(258) during download.
Quitting.
I don't think it was the RAM actually - I think the error number is more generic than that.
It was the imx-bootlets not working, part of the power-prep code was initialising the internal power supply the wrong way for our hardware, which was causing it the reset (it was turning itself off).
Here some debugging code I used to trace through the imx-bootlets. I used it to send a given number of pulses on some GPIOs, so I could see where it was getting up to before resetting. Also, you should make sure the debug uart pins are configured so you can see the debug output (although there are alot of printf's in the code already, the debug uart pins aren't configured, so you can't see any of it).
You may have to change the GPIOs I've used, and configure the right debug uart pins for your hardware design.
void debug_pin(int n)
{
int i, j;
HW_PINCTRL_DOE2_SET(0x0F);
for (i = 0; i < n; i++) {
j = 10000;
while(j--)
HW_PINCTRL_DOUT2_SET(0x0F);
j = 10000;
while(j--)
HW_PINCTRL_DOUT2_CLR(0x0F);
}
}
void debug_uart_init(void)
{
HW_PINCTRL_MUXSEL6_CLR(0xff);
HW_PINCTRL_MUXSEL6_SET(0xA0);
HW_UARTDBGIBRD_WR(0x0D);
HW_UARTDBGLCR_H_WR(0x70);
HW_UARTDBGCR_WR(0x0301);
}
int _start( void )
{
int iRtn = SUCCESS;
int i;
debug_pin(1);
debug_uart_init();
....
debug_pin(2);
....
}
and how did you solve this problem? I am having similars situation
Sanel
I've received a response from freescale support, it is the RAM not initialising correctly for anyone else who wants to know.