On 02/26/2013 01:19 PM, Hector Palacios wrote:
Greetings,
I'm porting a custom platform based on mx28evk to latest U-Boot.
I modified the iomux.c for my platform (different DUART pins) and made some
changes to
mxs_adjust_memory_params() to accommodate to my DRAM chip.
I built the u-boot.sb. The platform however does not boot either from USB or
from MMC.
When loaded through USB, sb_loader complains with the messages at [1].
I fear the CPU resets before even executing the SPL code, but how could I tell?
Is
there a way to check if the CPU reaches this code at all?
I don't see any ROM error codes either and the CPU seems to reset (when the USB
recovery mode fails, the target defaults to boot from flash my old v2009
U-Boot).
Is there any other init stuff (linker scripts or something) I should take care
of
that's preventing sb_loader to fully load the image?
Thank you.
[1] sb_loader output
'Freescale,Inc.' 'ROM Recovery' device at USB path 0002:0034:00
Downloading 415504 bytes...
hid_write report id 01 len 0x1f
hid_write report id 02 len 0x400
.
hid_write report id 02 len 0x400
.
hid_write report id 02 len 0x400
.
hid_write report id 02 len 0x400
.
hid_write report id 02 len 0x400
.
hid_write report id 02 len 0x400
.
hid_write report id 02 len 0x400
.
hid_write report id 02 len 0x400
.
hid_write report id 02 len 0x400
.
hid_write report id 02 len 0x400
.
hid_write report id 02 len 0x400
.
hid_write report id 02 len 0x400
.
hid_write report id 02 len 0x400
.
hid_write report id 02 len 0x400
ERROR: hid_write() returned -1 (error (null))
Apparently the problem was due to my platform suffering a hardware specific VDDD
brownout during the initialization.
Just in case it helps anybody, the reason why I was not able to see anything on the
DUART port during SPL initialization, despite having enabled CONFIG_SPL_SERIAL_SUPPORT
and having serial_puts() on the SPL code, was that my platform uses alternate pins for
the DUART than the default used by the BOOT ROM and the EVK, so apart from configuring
the correct IOMUX, I needed to unconfigure the pins used by BOOT ROM for the DUART (on
board/<vendor>/iomux.c):
@@ -33,8 +33,12 @@
const iomux_cfg_t iomux_setup[] = {
/* DUART */
- MX28_PAD_PWM0__DUART_RX,
- MX28_PAD_PWM1__DUART_TX,
+ /* Unconfigure BOOT ROM default DUART */
+ MX28_PAD_PWM0__GPIO_3_16,
+ MX28_PAD_PWM1__GPIO_3_17,
+ /* Configure DUART on alternate pins */
+ MX28_PAD_I2C0_SCL__DUART_RX,
+ MX28_PAD_I2C0_SDA__DUART_TX,
/* MMC0 */
MX28_PAD_SSP0_DATA0__SSP0_D0 | MUX_CONFIG_SSP0,
@@ -159,9 +163,6 @@ const iomux_cfg_t iomux_setup[] = {
MX28_PAD_SSP2_MISO__SSP2_D0 | MUX_CONFIG_SSP2,
MX28_PAD_SSP2_SS0__SSP2_D3 |
(MXS_PAD_3V3 | MXS_PAD_8MA | MXS_PAD_PULLUP),
- /* I2C */
- MX28_PAD_I2C0_SCL__I2C0_SCL,
- MX28_PAD_I2C0_SDA__I2C0_SDA,
};
#define HW_DRAM_CTL29 (0x74 >> 2)
--
Héctor Palacios
_______________________________________________
U-Boot mailing list
[email protected]
http://lists.denx.de/mailman/listinfo/u-boot