도와주세요!!
smdk2410 을 모델로 EZ-s3c2440 을 u-boot porting을 하고 있습니다.
u-boot -> ez-2440 포팅
1.Makefile
1643 라인에
XXXX_config :
@./mkconfig $(@:_config=) arm arm920t ez-2440 samsung s3c2440 # Seung yong add-in
2.보드 디렉토리 추가
XXXX용 디렉터리 추가
콘솔창에서
cd board
mkdir apps -> 보드에 종속적으로 들어갈 파일들
복사 명령어 cp -a./smdk2440/* ./XXXX/
3.XXXX보드 디렉터리의 smdk2410 관련 파일 이름 수정
pwd -> 현재 경로를 알수 있게 한다.
cd XXXX
mv smdk2410.c apps.c // 현재 smdk2410 에 있는 소스들을 XXXX.c 로 복사 한다.
4.보드 디렉터리 내에 Makefile 수정
*컴파일할 오브젝트명의 변경
*COBJS 항목의 smdk2410.o apps.0 로 변경
->주의 board 안에 있는 Makefile 를 바꿔줘야 함 ...
바꾸기 전
COBJS := smdk2410.o flash.o
바꾼 후
COBJS := apps.o flash.o
5.u-boot 포팅 -헤더 생성
s3c2440 control register 관련 헤더파일 생성
포팅할 보드의 해더파일을 참조하여 생성
include/s3c2410.h 파일을 복사하여 사용
cd include
cp s3c2410.h s3c2440.h ->mv2443 에서 이미 있나 보나.... 복사 안했음
6.u-boot 포팅 -관련 헤더 수정_1
#ifdef CONFIG_S3C2410 으로 정의된 모든 부분을 찿아서 S3C2440 도 추가하여 같이 컴파일 될 수 있도록 한다.
라인은 ->85,95,99,107,110,156,379,412,462
#ifdef (CONFIG_S3C2410)
열어보면 85 번째 줄 에
85 #ifdef CONFIG_S3C2410
86 S3C24X0_REG32 SUBSRCPND;
87 S3C24X0_REG32 INTSUBMSK;
이러한 코드를
85 #ifdef (CONFIG_S3C2410) || defined (CONFIG_S3C2440) //2440
86 S3C24X0_REG32 SUBSRCPND;
87 S3C24X0_REG32 INTSUBMSK;
7.u-boot 포팅 -관련 헤더 수정
include /s3c24x0.h 파일 수정
s3c2410_NAND 를 s3c2440_NAND 로 수정
라인수 173 번째 s3c2410_NAND -> s3c2440_NAND 로 바꿈
8.u-boot 포팅 -관련 헤더 수정
s3c24x0_GPIO 를 S3C2440 에서 도 사용할수 있게 만들어 줘야 함
라인수 : 495 변경
9.u-boot 포팅 -관련 헤더 수정
include /s3c2440.h 파일의 2410 관련 내용을 2440 으로 변경
*S3C2410 /S3C2440 User's Manual 참조
S3C2440 에 Camera 와 aC97 관련 INTERRUPT BIT 가 추가 되었지만 Bootloader 와는 크게 상관없음
바꾸기 전
53 #define S3C2410_ECCSIZE 512
54 #define S3C2410_ECCBYTES 3
변경 후
53 #define S3C2440_ECCSIZE 512
54 #define S3C2440_ECCBYTES 3
10.include /S3C2440.h
변경전
557 static inline S3C2410_NAND * S3C2410_GetBase_NAND(void)
558 {
559 return (S3C2410_NAND *)ELFIN_NAND_BASE;
560 }
변경후
557 static inline S3C2440_NAND * S3C2440_GetBase_NAND(void)
558 {
559 return (S3C2440_NAND *)ELFIN_NAND_BASE;
560 }
변경전
593 static inline S3C2410_ADC * S3C2410_GetBase_ADC(void)
594 {
595 return (S3C2410__ADC *)ELFIN_ADC_BASE;
596 }
변경후
593 static inline S3C2440_ADC * S3C2440_GetBase_ADC(void)
594 {
595 return (S3C2440__ADC *)ELFIN_ADC_BASE;
596 }
머 이런식으로 변경하가면서 포팅을 하고 있는데요 .... 아직 기초가 부족하는건지....
컴파일 한 이미지를 올리면 부트로그가 안올라오네요..ㅜㅜ
이 외에도 여러군데를 만졌는데요....EZ-board 에 uboot 올리신분 안계신가요?