A. 관련파일
dm3xx_sd_boot-6.1.zip
DM368 RDK에 포함이 되어있으며, 기본 동작방식은 아래와 같다.
보드가 SDBOOT를 한 다음, 자신의 SD FAT의 dm3xx.dat 데이타를 읽어 UBL, UBOOT, KERNEL 등,
NAND에 원하는 장소에 writing 및 erasing 하는 프로그램이다.
dm3xx.dat 은 각종 데이타를 포함하고 있다.
B. 크로스컴파일러 설치
빌드 하기 위해서, 기존 크로스 컴파일러를 설정하거나 존재하지 않는다면 아래의 사이트에서 Tool을 다운 받은 후 진행하자. ARM용 크로스 컴파일러.
http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/dvsdk/DVSDK_2_10/latest/index_FDS.html
위사이트에서 MVL 5.0 Tools Download
- SDK 버전 : mvl_5_0_0801921_demo_sys_setuplinux.bin
export PATH=$PATH:/opt/mv_pro_5.0/montavista/pro/devkit/arm/v5t_le/bin/
2. 기본파일 구성
아래와 같이 dm3xx_sd_boot-6.1 안에 모든 파일이 포함이 되어있다.
그래서 SD BOOT와 혼동이 되지만, 이는 SDBOOT가 아니다.
A. 설정파일
- dm3xx_sd.config : 각 binary 설정 및 (original의 ubl,uboot 등) 및 dm3xx.dat 위치
- original : 자신의 UBL 및 UBOOT 와 Kernel을 Bin 파일을 넣는곳
- dm3xx_sd_boot : 전체를 실행하는 main shell scripter (설정파일과 같이 연동)
- dm3xx_boot_rec : UBL Desicriptor 정의된 Hex Code 값. 매번 새로 생성됨
D. PC에서 SD의 FAT에 IMAGE를 만드는 프로그램 (dm3xx_boot_make_image)
- bin.x86 or bin.arm: dm3xx_boot_make_image.c의 bin 파일 저장장소
- dm3xx_boot_make_image.c : PC에서 ARM에서 Image를 만들 때 사용.
- Makefile : 확인부분 -DDM368_IPNC 및 -I sdcard_flash 가 제대로 되었는지 확인
E. TARGE에서 SD BOOT 후 NAND WRITE하는 프로그램
- sdcard_flash: SD BOOT로 실행,dm3xx.dat기반으로 NAND에 install
- sdcard_flash/sdboot_flash_cfg.h : 설정값 변경가능
3. 수정사항 및 확인사항
A. 수정사항
- dm3xx_sd.config : 파일이름 수정 및 orginal에 파일 변경
$ pwd /home/jhlee/dm368/dm3xx_sd_boot-6.1 $ cat dm3xx_sd.config #!/bin/sh # Adjust this file for your needs a=${modelname:=DM368_IPNC} # default modelname a=${platform:=DM36x} # default platform case $modelname in DM365_IPNC) ubl=original/ubl_297arm_270ddr_ipnc_dm365_1.0.0.bin uboot=original/u-boot-1.3.4_ipnc_dm365_1.0.0.bin diagnostic=original/diagnostic_ipnc_dm365_1.0.0.bin kernel=original/uImage_ipnc_dm365_2.0.0 rootfs=original/cramfsImage_ipnc_dm365_2.0.0 ;; DM368_IPNC) ubl=original/ubl_432arm_340ddr_ipnc_dm368.bin uboot=original/u-boot-1.3.4-dm368_ipnc.bin diagnostic=original/diagnostic_ipnc_dm368.bin kernel=original/uImage_ipnc_dm368 rootfs=original/ipnc_dm368_ubifs ;; esac # Expected location boot data file on autimatically mounted SD card. # Change if it is mounted at another location. #data_file=`echo /media/disk/dm3xx.dat` data_file=`echo /media/sdc/dm3xx.dat` $ ls original/ diagnostic_ipnc_dm368.bin nandwriter_ipnc_dm368.out uImage_ipnc_dm368 ubl_486arm_360ddr_ipnc_dm368.bin ipnc_dm368_ubifs u-boot-1.3.4-dm368_ipnc.bin ubl_432arm_340ddr_ipnc_dm368.bin
- sdcard_flash/sdboot_flash_cfg.h
#define IPNC_DM368 //Makeifle에서 추가가 안되서 넣음 #if defined(IPNC_DM365) || defined( IPNC_DM368) #define KERNEL_SIZE (2*MB) -> (4*MB) // KERN SIZE 조정 #define ROOTFS_SIZE (14*MB) -> (40*MB) // FS SIZE 조정 #define DP_SIZE (160*KB) // diagnostic size 유지 #else ~~~~~ #endif #define ROOTFS_SDC 0x800000 // KERN SIZE 때문에 위치 조정
현재 sdboot_flash_cfg가 dm3xx_boot_make_image.c 에서도 사용
하지만, Makefile에서 이를 추가가 안됨
B. 확인사항
diagnostic : DP_SDC:
4. 기본사용법
4.1 기본절차
A. PC에 SD DISK Mount 확인 및 FAT Format 및 UBL Descriptor 저장
$ cat /proc/partitions $ sudo ./dm3xx_sd_boot format /dev/sde
B. SD DISK의 FAT Mount 확인 (udev가 동작안될 경우)
$ sudo mount /dev/sde1 /mnt/sdc $ ls /mnt/sdc dm3xx.dat
C. UBL,UBOOT및 각종 BIN파일을 SD의 dm3xx.dat에 저장
$ sudo ./dm3xx_sd_boot data /mnt/sdc/dm3xx.dat $ sudo umount /mnt/sdc
4.2 관련문서
http://processors.wiki.ti.com/index.php/SD_card_boot_and_flashing_tool_for_DM355_and_DM365