http://cafe.naver.com/embeddedcrazyboys
sd부팅으로 nand scrub부터 시작하여 u-boot와 kernel을 tftp와 nand 명령어로 퓨징 후 nand 부트모드로 부팅 한 다음 bootargs 옵션을 mmc 파티션을 루트로 쓰기위해 변경했으나 리셋버튼을 누르면 예전 ubifs 설정으로 돌아와 버립니다.
ipaddr이나 gatewayip 등은 변경된대로 있는데 bootcmd와 bootargs부분만 원래대로 돌아가버립니다.
다음은 NAND 부트 시 최초 화면입니다.
U-Boot 1.3.4 (Jun 7 2013 - 10:32:44) for MANGO2450
CPU: S3C2416@534MHz
Fclk = 534MHz, Hclk = 133MHz, Pclk = 66MHz
Board: MANGO2450 Mobile DDR
DRAM: 64 MB
Flash: 1 MB
CRZ NAND boot--------------GPCDAT_REG= 0xa0
NAND: 256 MB
CRZ nand_read()
In: serial
Out: serial
Err: serial
ETH test 1
ETH test 2
Hit any key to stop autoboot: 0
MANGO2450 # printenv
bootdelay=3
baudrate=115200
ethaddr=00:40:5c:26:0a:5b
netmask=255.255.255.0
boot=test
ipaddr=192.168.10.251
gatewayip=192.168.10.1
serverip=192.168.10.162
stdin=serial
stdout=serial
stderr=serial
bootcmd=nand read 0xC0008000 0x80000 0x480000;bootm 0xC0008000
bootargs=noinitrd console=ttySAC1,115200 rw ubi.mtd=2 root=ubi0:rootfs rootfstype=ubifs rootwait ethaddr=00:40:5c:26:0a:5b
Environment size: 382/16380 bytes
lib_arm/board.c 에서 아래 코드를 막으세요.
#if 0 /* Delete this code for NFS */
/* by CRZ, boot cmd, args setting */
if((GPCDAT_REG & 0xA0) == 0xA0)
{
setenv("bootcmd", CONFIG_NAND_BOOTCOMMAND);
setenv("bootargs", CONFIG_NAND_BOOTARGS);
}
else
{
setenv("bootcmd", CONFIG_MMC_BOOTCOMMAND);
setenv("bootargs", CONFIG_MMC_BOOTARGS);
}
#endif
common/main.c
파일에서
#if 0 /* Delete this code for NFS */
{
char boot_cmd[1024];
char *peth = getenv ("ethaddr");
char *default_bootargs = getenv ("bootargs");
memset(boot_cmd,0x0,1024);
// if((GPCDAT_REG & 0xA0) == 0xA0)
sprintf(boot_cmd, "%s ethaddr=%s", default_bootargs, peth);
// else
// sprintf(boot_cmd, "%s ethaddr=%s", CONFIG_MMC_BOOTARGS, peth);
setenv("bootargs", boot_cmd);
}
#endif
댓글 없음:
댓글 쓰기