通过update烧录uLoader后,发现启动失败,打印如下:
PHY on GMAC0....
GCS in ISA MODE
GCS: NAND DEVICE SETUP COMPLETE
NAND: Initialization complete
SecureHeader Check:ssboot p_w_picpath is unsigned...
NAND: UNCORR ECC ERROR!: Skipping Block
ERROR: Return NOT OK from download_from_flash
Flash download of UBOOT failed


解决过程如下

A. 确定编译方法
找到stbtv makefile,取得下面行:
export STB_SW_CONFIG=bare_skyworth && export _TMTGTOS=nullos && export _TMTGTOSCLASS=nullos && export _TMLINKTYPE=static && ${MAKE} -C ${NXP_BASE_ROOT}/target/build/linux/sub-systems/bootldr ul

B. 调试方法
ymodem调试
这里需要修改代码禁止进入uboot的调试


C. 问题处理
因为不支持打印数值,需要增加函数,char *myitoa(int value, char *str, unsigned int radix )
见附件。

调试发现
download_boot_p_w_picpath_do(eBootDev, eFlashtype, offset,buffer,length);
的长度为1m,问题是当时写入p_w_picpath时,根本没有擦除1m空间。所以就不ok了!

修改方法是把最大长度改为512k,然后uboot都pad到512k即可。