你好:
我用的是EZSDK的代码,dm8168的板子。
1: 板子上贴的是2G的物理内存。EZSDK本身就是2G内存的配置。所以在代码也就什么也没有修改,正可以吗,板子上的2G内存可以使用吗?
2: 在用SD卡烧写NAND后,从NAND启动终端什么也没有显示,NAND的读写是正常的(这个问题会不会跟上面的内存有关)。我在另一块板子上用同样的卡烧写,是没有问题的。
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
你好:
我用的是EZSDK的代码,dm8168的板子。
1: 板子上贴的是2G的物理内存。EZSDK本身就是2G内存的配置。所以在代码也就什么也没有修改,正可以吗,板子上的2G内存可以使用吗?
2: 在用SD卡烧写NAND后,从NAND启动终端什么也没有显示,NAND的读写是正常的(这个问题会不会跟上面的内存有关)。我在另一块板子上用同样的卡烧写,是没有问题的。
你好:
在shell里执行这句话会错误,是怎么回事?
ubiattach -m 3 -O 2048
UBI: attaching mtd3 to ubi0
UBI: physical eraseblock size: 131072 bytes (128 KiB)
UBI: logical eraseblock size: 126976 bytes
UBI: smallest flash I/O unit: 2048
UBI: VID header offset: 2048 (aligned 2048)
UBI: data offset: 4096
UBI error: validate_ec_hdr: bad VID header offset 512, expected 2048
UBI error: validate_ec_hdr: bad EC header
UBI error: ubi_io_read_ec_hdr: validation failed for PEB 0
ubiattach: error!: cannot attach mtd3
error 22 (Invalid argument)
需要修改的数据分两部分:
1. ddr_defs_ti816x.h中提及的宏是根据DDR颗粒的时序并由DM816x C6A816x AM389x EMIF4 Register Settings.zip计算出来的EMIF配置。
#define EMIF_TIM1 0x1557B9BD
#define EMIF_TIM2 0x40047FEB
#define EMIF_TIM3 0x001F917F
#define EMIF_SDREF 0x10001844
#define EMIF_SDCFG 0x62A73832
#define EMIF_PHYCFG 0x00100110
2. 根据板子layout计算的种子RatioSeed.zip,再由DDR3_SlaveRatio_ByteWiseSearch_TI816x.out得到的补偿值,并更新:
#define RD_DQS_GATE_LANE3 ((emif == 0) ? 0x160 : 0x15F) /*BYTE3 OPT values from CCS salve ratio*/ #define RD_DQS_GATE_LANE2 ((emif == 0) ? 0x178 : 0x171) /*BYTE2 OPT values from CCS salve ratio*/ #define RD_DQS_GATE_LANE1 ((emif == 0) ? 0x1B3 : 0x1B5) /*BYTE1 OPT values from CCS salve ratio*/ #define RD_DQS_GATE_LANE0 ((emif == 0) ? 0x1D6 : 0x1D3) /*BYTE0 OPT values from CCS salve ratio*/ #define RD_DQS_LANE3 ((emif == 0) ? 0x37 : 0x35) /*BYTE3 OPT values from CCS salve ratio*/ #define RD_DQS_LANE2 ((emif == 0) ? 0x37 : 0x43) /*BYTE2 OPT values from CCS salve ratio*/ #define RD_DQS_LANE1 ((emif == 0) ? 0x38 : 0x3F) /*BYTE1 OPT values from CCS salve ratio*/ #define RD_DQS_LANE0 ((emif == 0) ? 0x3B : 0x38) /*BYTE0 OPT values from CCS salve ratio*/ #define WR_DQS_LANE3 ((emif == 0) ? 0x7D : 0x6F) /*BYTE3 OPT values from CCS salve ratio*/ #define WR_DQS_LANE2 ((emif == 0) ? 0x8F : 0x87) /*BYTE2 OPT values from CCS salve ratio*/ #define WR_DQS_LANE1 ((emif == 0) ? 0xA2 : 0xA5) /*BYTE1 OPT values from CCS salve ratio*/ #define WR_DQS_LANE0 ((emif == 0) ? 0xB2 : 0xB0) /*BYTE0 OPT values from CCS salve ratio*/