http://www.mangoboard.com/
http://cafe.naver.com/embeddedcrazyboys
bootcmd와 bootargs는 자동으로 설정이 됩니다.
common/env_auto.c 에서 아래와 같이 수정하시기 바랍니다.
void env_relocate_spec(void)
{
#if defined(CONFIG_SMDKC100) | defined(CONFIG_SMDKC110) | defined(CONFIG_S5P6442) || defined(CONFIG_MANGO210)
if (INF_REG3_REG == 1)
env_relocate_spec_onenand();
else if (INF_REG3_REG == 2)
env_relocate_spec_nand();
else if (INF_REG3_REG == 3)
env_relocate_spec_movinand();
else if (INF_REG3_REG == 4)
env_relocate_spec_nor();
else
use_default();
common/main.c 파일에서
//CRZ
{
char boot_cmd[1024];
char *peth = getenv ("ethaddr");
char *bootargs_get = getenv ("bootargs");
sprintf(boot_cmd, "%s ethaddr=%s", bootargs_get, peth);
setenv("bootargs", boot_cmd);
}
"common/env_auto.c" 파일에서
#if defined(CONFIG_MANGO210)
int default_boot_mode = 1;
#endif
"board/samsung/mango210/<wbr />mango210.c"
파일에서
regs = Inp32(INF_REG_BASE + INF_REG3_OFFSET);
//Outp32(0xe02002a0, 0x10000000);
//Outp32(0xe02002c0, 0x1);
switch(regs) {
case BOOT_NAND:
//Outp32(0xe02002a4, 0x0); // LED0 On
//Outp32(0xe02002c4, 0x1); // LED1 Off
printf("NAND Boot ...default_boot_mode=%d\n",<wbr />default_boot_mode);
// if((~readl(0xE0200C04)) & 0x6) {
// run_command("fastboot", 0);
// } else
if(default_boot_mode) { // using default environment//CRZ
// sprintf(boot_cmd, "nand read %08x 600000 400000;nand read %08x B00000 400000; bootm %08x %08x"
sprintf(boot_cmd, "nand read %08x 100000 500000;bootm %08x"
, MEMORY_BASE_ADDRESS + 0x8000
// , MEMORY_BASE_ADDRESS + 0x1000000
, MEMORY_BASE_ADDRESS + 0x8000);
// , MEMORY_BASE_ADDRESS + 0x1000000);
setenv("bootcmd", boot_cmd);
// sprintf(boot_cmd, "root=ramfs devfs=mount console=ttySAC1,115200");
sprintf(boot_cmd, "root=/dev/mtdblock2 rootfstype=yaffs2 init=/sbin/init console=ttySAC1,115200");
setenv("bootargs", boot_cmd);
}
break;
case BOOT_MMCSD:
// Outp32(0xe02002a4, 0x80); // LED1 On
// Outp32(0xe02002c4, 0x0); // LED0 Off
printf("SD Boot ...default_boot_mode=%d\n",<wbr />default_boot_mode);
/* if((~Inp32(0xe0200c04)) & 0x6) { // Linux Recovery Booting Mode
sprintf(boot_cmd, "nand erase clean;nand scrub;movi read u-boot %08x;nand write %08x 0 70000;movi read kernel %08x;bootm %08x"
, MEMORY_BASE_ADDRESS + 0x1000000, MEMORY_BASE_ADDRESS + 0x1000000
, MEMORY_BASE_ADDRESS + 0x8000, MEMORY_BASE_ADDRESS + 0x8000);
setenv("bootcmd", boot_cmd);
sprintf(boot_cmd, "root=/dev/mmcblk0p3 rootfstype=ext3 console=ttySAC1,115200 rootdelay=1 recovery");
setenv("bootargs", boot_cmd);
// sprintf(boot_cmd, "3");
setenv("bootdelay", "3");
} else
*/ if(default_boot_mode) { // using default environment
sprintf(boot_cmd, "movi read kernel %08x; bootm %08x"
, MEMORY_BASE_ADDRESS + 0x8000
, MEMORY_BASE_ADDRESS + 0x8000);
setenv("bootcmd", boot_cmd);
sprintf(boot_cmd, "noinitrd root=/dev/mmcblk0p2 rootfstype=ext3 init=/sbin/init console=ttySAC1,115200 rootwait"); // Android Booting Mode
setenv("bootargs", boot_cmd);
}
break;
}
댓글 없음:
댓글 쓰기