Autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et dolore feugait.
GXBB:BL1:08dafd:0a8993;FEAT:E0FC3184;POC:3;RCY:0;EMMC:800;NAND:85;SD:0;READ:0;CHK:0;
其可以拆分为如下部分:
1. GXBB:主芯片内部代号
2. BL1:08dafd:0a8993;FEAT:E0FC3184; bootrom相关启动信息,安全相关的同事会用到。
3. POC:3; Power on Config信息。表明设备启动顺序,可以参考下面的表格:
POC 1st Boot device 2nd Boot device 3rd Boot device 4th Boot device
0 USB SPI NAND/eMMC SD Card
1 SPI NAND/eMMC SD Card USB
2 USB NAND/eMMC SD Card -
3 NAND/eMMC SD Card USB -
4. RCY:0; HDMI recovery接口读到的值,可以实现更改第一启动介质的目的,通常用于拯救烧错主存储介质的板子,在开发阶段尤为有用;
0为无hdmi recovery小板;
1为usb boot的hdmi recovery小板;
2为sdcard boot的hdmi recovery小板;
5. EMMC:800;NAND:85;SD:0;READ:0;CHK:0
这个是默认的主存储介质的启动顺序,依序为EMMC->NAND->SD->USB,这里因为有烧好的启动卡插入,所以直接在sdcard这里跳了出来;
EMMC:800, 为emmc初始化过程,800表示报错,数值具体对应到emmc控制器的SD_EMMC_STATUS寄存器,此处800表示为resoponse timeout,这个报错信息无法看出是init过程中哪一条命令报错,最为有效的debug方式为接PA进行分析;
如果平台有焊接emmc,在初始化过程报了非0值,可以参照如下表格来确认是那条线的焊接不良;
Field
Name
Description
7:0
Rxd_err
RX data CRC error per wire,
for multiple block read, the CRC errors are Ored together.
8
Txd_err
TX data CRC error,
For multiple block write, any one of blocks CRC error.
9
Desc_err
SD/eMMC controller doesn’t own descriptor.
The owner bit is “0”, set cfg_ignore_owner to ignore this error.
10
Resp_err
Response CRC error
11
Resp_timeout
No response received before time limit.
The timeout limit is set by cfg_resp_timeout.
12
Desc_timeout
Descriptor execution time over time limit.
The timeout limit is set by descriptor itself.
Consider the multiple block read/write, set the proper timeout limits.
在焊接了emmc的情况下,EMMC初始化打印不为0,通常是hw相关的问题,需要顺序检查以下几个项目:
1. vcc/vccq的供电及上电顺序,二者上电间隔太长可能会引起emmc的初始化失败,详情可以咨询hw的fengjie(jie.feng@amlogic.com)
2. 如果是EMMC初始化报Resp_timeout/Resp_err,需请hw同事检查emmc的cmd线的连通性
3. 如果是EMMC初始化报Rxd_err/txd_err,需请hw同事检查对应的报错data线的连通性
**
Add @ 20180209
在G12A上,SD card的romboot初始化会首先检查GPIOC6的电平状态,如果为card未插入,则romboot会打印SD:20000
**
NAND:85,为nand初始化过程报错,数值为错误码,常用错误码有
#define ERROR_NAND_TIMEOUT 0x81
#define ERROR_NAND_ECC 0x82
#define ERROR_NAND_MAGIC_WORD 0x83
#define ERROR_NAND_INIT_READ 0x84
#define ERROR_NAND_BLANK_PAGE 0x85
SD:0;READ:0;CHK:0,为SD卡初始化OK,读取OK,并且校验OK;对于其他存储介质,在初始化OK后,同样会进行READ和CHK动作,返回值为0,则为OK,非0值,则有其各自对应的错误码,这里不做详细描述
vim components/firmware/uboot/board/freescale/lx2160a/eth_lx2160ardb.c
/*Begin:add by zhaobaoxing for sgmii*/
srds_s2 = in_le32(&gur->rcwsr[28]) &
FSL_CHASSIS3_RCWSR28_SRDS2_PRTCL_MASK;
srds_s2 >>= FSL_CHASSIS3_RCWSR28_SRDS2_PRTCL_SHIFT;
/*End:add by zhaobaoxing for sgmii*/
/*Begin:add by zhaobaoxing for sgmii*/
if (get_board_rev() == 'C') {
setup_eth_rev_c(srds_s2);
goto next;
}
/*End:add by zhaobaoxing for sgmii*/
/*Begin:add by zhaobaoxing for sgmii*/
switch (srds_s2){
case 10:
wriop_set_phy_address(WRIOP1_DPMAC11, 0,
SGMII_PHY_ADDR1);
printf("warning: zhaobaoxing for serdes2\r\n");
break;
default:
printf("SerDes2 protocol 0x%x is not supported on LX2160ARDB\n",
srds_s2);
//goto next;
break;
}
/*End:add by zhaobaoxing for sgmii*/
3、修改功能宏定义
vim components/firmware/uboot/configs/lx2160ardb_tfa_defconfig