임베디드
[u-boot]램디스크 이미지 읽어오는 부분 재수정
shellbt
2006. 10. 23. 12:59
lib_arm/armlinux.c에 do_bootm_linux()안에 ramdisk 이미지를 불러와서 dram에 위치시키는 루틴이 있다.
이 부분을 고쳐 주어야지만, mkimage 시 지정한 주소로 램디스크 이미지를 위치시킨다.
******************************************************************************************
if (data) {
#if 0
initrd_start = data;
initrd_end = initrd_start + len;
#else
/* shellbt,
* ramdisk 가 현재 어느 위치에 있던간에 mkimage시
* -a option으로 지정한 위치로 점프하게 만든 것
*/
initrd_start = ntohl(hdr->ih_load);
initrd_end = initrd_start + len;
memmove((void*)initrd_start,(void *)data,len);
printf ("Ramdisk load address change from 0x%08x to 0x%08x with %u bytes\n",data,initrd_start,len);
#endif
} else {
initrd_start = 0;
initrd_end = 0;
}
SHOW_BOOT_PROGRESS (15);
******************************************************************************************
이 부분을 고쳐 주어야지만, mkimage 시 지정한 주소로 램디스크 이미지를 위치시킨다.
******************************************************************************************
if (data) {
#if 0
initrd_start = data;
initrd_end = initrd_start + len;
#else
/* shellbt,
* ramdisk 가 현재 어느 위치에 있던간에 mkimage시
* -a option으로 지정한 위치로 점프하게 만든 것
*/
initrd_start = ntohl(hdr->ih_load);
initrd_end = initrd_start + len;
memmove((void*)initrd_start,(void *)data,len);
printf ("Ramdisk load address change from 0x%08x to 0x%08x with %u bytes\n",data,initrd_start,len);
#endif
} else {
initrd_start = 0;
initrd_end = 0;
}
SHOW_BOOT_PROGRESS (15);
******************************************************************************************