boot loader portingembedded.dankook.ac.kr/~baeksj/course/2009_project2/ln_3... · 2009. 9. 21. ·...

20
프로젝트 2 Boot loader Porting 단국대학교 컴퓨터학과 2009 백승재 b k j@d k k k baeksj@dankook.ac.kr http://embedded.dankook.ac.kr/~baeksj 단국대학교 백승재

Upload: others

Post on 30-Aug-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Boot loader Portingembedded.dankook.ac.kr/~baeksj/course/2009_Project2/LN_3... · 2009. 9. 21. · blobboot loader porting 7 xscale을사용하는lubbock보드의헤더복사및수정

프로젝트 2

Boot loader Porting

단국대학교

컴퓨터학과

2009

백승재

b k j@d k k [email protected]

http://embedded.dankook.ac.kr/~baeksj

단국대학교 백승재

Page 2: Boot loader Portingembedded.dankook.ac.kr/~baeksj/course/2009_Project2/LN_3... · 2009. 9. 21. · blobboot loader porting 7 xscale을사용하는lubbock보드의헤더복사및수정

blob boot loader porting 2

부트 로더 포팅 순서새로운 부트 로더 다운 로드새로운 부트 로더 다운 로드

새로운 보드 추가

설정 변경

보드에 fusing

단국대학교 백승재

Page 3: Boot loader Portingembedded.dankook.ac.kr/~baeksj/course/2009_Project2/LN_3... · 2009. 9. 21. · blobboot loader porting 7 xscale을사용하는lubbock보드의헤더복사및수정

blob boot loader porting 3

blob download form internet

단국대학교 백승재

Page 4: Boot loader Portingembedded.dankook.ac.kr/~baeksj/course/2009_Project2/LN_3... · 2009. 9. 21. · blobboot loader porting 7 xscale을사용하는lubbock보드의헤더복사및수정

blob boot loader porting 4

압축 해제 및 configure.in 파일 수정

단국대학교 백승재

Page 5: Boot loader Portingembedded.dankook.ac.kr/~baeksj/course/2009_Project2/LN_3... · 2009. 9. 21. · blobboot loader porting 7 xscale을사용하는lubbock보드의헤더복사및수정

blob boot loader porting 5

configure.in 수정 부분새로운 보드 추가

단국대학교 백승재

Page 6: Boot loader Portingembedded.dankook.ac.kr/~baeksj/course/2009_Project2/LN_3... · 2009. 9. 21. · blobboot loader porting 7 xscale을사용하는lubbock보드의헤더복사및수정

blob boot loader porting 6

arch.h 수정

메모리 영역 확인

해당 보드인경우 포함 될header file

메모리 영역 확인

header file

단국대학교 백승재

Page 7: Boot loader Portingembedded.dankook.ac.kr/~baeksj/course/2009_Project2/LN_3... · 2009. 9. 21. · blobboot loader porting 7 xscale을사용하는lubbock보드의헤더복사및수정

blob boot loader porting 7

xscale을 사용하는 lubbock 보드의 헤더 복사 및 수정

아키텍처별로 존재하는 header file안에는 기본적아키텍처별로 존재하는 header file안에는 기본적으로 부트로더, 커널 그리고 램디스크의 시작 주소및 크기가 지정되어 있으며 SDRAM, SRAM등을 설정하는 register 값이 define 되어 있다.결 각 영역의 소를 수정하 i 값을 올결국, 각 영역의 주소를 수정하고 register 값을 올바르게 수정해야 함

단국대학교 백승재

Page 8: Boot loader Portingembedded.dankook.ac.kr/~baeksj/course/2009_Project2/LN_3... · 2009. 9. 21. · blobboot loader porting 7 xscale을사용하는lubbock보드의헤더복사및수정

blob boot loader porting 8

empos2.h 수정 내용(1/2)

각 영역의 시작 주소 및 크기를수정한다. (화면에는 안나와 있지만 소스상단에 있는LUBBOCK 이라는문자열을 EMPOS2로 변경)

단국대학교 백승재

Page 9: Boot loader Portingembedded.dankook.ac.kr/~baeksj/course/2009_Project2/LN_3... · 2009. 9. 21. · blobboot loader porting 7 xscale을사용하는lubbock보드의헤더복사및수정

blob boot loader porting 9

empos2.h 수정 내용(2/2)

각 register에 setting될값 들을 설정한다.

단국대학교 백승재

Page 10: Boot loader Portingembedded.dankook.ac.kr/~baeksj/course/2009_Project2/LN_3... · 2009. 9. 21. · blobboot loader porting 7 xscale을사용하는lubbock보드의헤더복사및수정

blob boot loader porting 10

xscale을 사용하는 lubbock 보드의 아키텍처 초기화 관련 파일 복사 및 수정

empos2 보드와 관련된 하드웨어 초기화, 플래시 메모리 연산 등을 지원RAM이나 flash memory등 대부분의RAM이나 flash memory등 대부분의모듈들이 empos2를 구성하는 하드웨어와 유사 함으로 일부만 변경하면 됨.(tip : 파일 안에 있는 lubbock(대소문자 구분 필요)을 문자열 대체 명령을 통자 구분 필요)을 문자열 대체 명령을 통해 empos2로 변경)

단국대학교 백승재

Page 11: Boot loader Portingembedded.dankook.ac.kr/~baeksj/course/2009_Project2/LN_3... · 2009. 9. 21. · blobboot loader porting 7 xscale을사용하는lubbock보드의헤더복사및수정

blob boot loader porting 11

empos2.c 수정내용

empos2의 경우sdram bank가 2개이므로 확장

inline asm 문법 형식 변경법 형식 변경

단국대학교 백승재

Page 12: Boot loader Portingembedded.dankook.ac.kr/~baeksj/course/2009_Project2/LN_3... · 2009. 9. 21. · blobboot loader porting 7 xscale을사용하는lubbock보드의헤더복사및수정

blob boot loader porting 12

xscale을 사용하는 lubbock 보드의 아키텍처 초기화 관련 파일 복사 및 수정

단국대학교 백승재

Page 13: Boot loader Portingembedded.dankook.ac.kr/~baeksj/course/2009_Project2/LN_3... · 2009. 9. 21. · blobboot loader porting 7 xscale을사용하는lubbock보드의헤더복사및수정

blob boot loader porting 13

Makefile.am 및 Makefile.in 수정

단국대학교 백승재

Page 14: Boot loader Portingembedded.dankook.ac.kr/~baeksj/course/2009_Project2/LN_3... · 2009. 9. 21. · blobboot loader porting 7 xscale을사용하는lubbock보드의헤더복사및수정

blob boot loader porting 14

main.c 및 linux.h 수정

ramdisk를 사용 할것이므로 주석 해제

inline asm 문법 형식 변경

machine ID 추가임의로 setting 가능(단, 커널에서 정보

단국대학교 백승재

와 일치 해야함)

Page 15: Boot loader Portingembedded.dankook.ac.kr/~baeksj/course/2009_Project2/LN_3... · 2009. 9. 21. · blobboot loader porting 7 xscale을사용하는lubbock보드의헤더복사및수정

blob boot loader porting 15

src/blob/memsetup.S 수정

기본 적으로 1개의bank만 사용하도록 설정 되어 있음. empos2의 경우 2개의 bank를 사용함으로 확장하도록설정

단국대학교 백승재

Page 16: Boot loader Portingembedded.dankook.ac.kr/~baeksj/course/2009_Project2/LN_3... · 2009. 9. 21. · blobboot loader porting 7 xscale을사용하는lubbock보드의헤더복사및수정

blob boot loader porting 16

./tools/rebuild-gcc 실행

configure 파일 을 생성해 주는 스크립트 파일. (단, autoconf, automake의 버전에 따라 호환이 안 될수 있음)

단국대학교 백승재

Page 17: Boot loader Portingembedded.dankook.ac.kr/~baeksj/course/2009_Project2/LN_3... · 2009. 9. 21. · blobboot loader porting 7 xscale을사용하는lubbock보드의헤더복사및수정

blob boot loader porting17

config.h.in 확인

rebulid-gcc수행시자동을로 생성 되어야 하나 호환성 문제로 자동 작성이안될수 있음. 없을경우 추가

단국대학교 백승재

Page 18: Boot loader Portingembedded.dankook.ac.kr/~baeksj/course/2009_Project2/LN_3... · 2009. 9. 21. · blobboot loader porting 7 xscale을사용하는lubbock보드의헤더복사및수정

blob boot loader porting18

컴파일 환경 설정

단국대학교 백승재

Page 19: Boot loader Portingembedded.dankook.ac.kr/~baeksj/course/2009_Project2/LN_3... · 2009. 9. 21. · blobboot loader porting 7 xscale을사용하는lubbock보드의헤더복사및수정

blob boot loader porting 19

make 및 fusing

단국대학교 백승재

Page 20: Boot loader Portingembedded.dankook.ac.kr/~baeksj/course/2009_Project2/LN_3... · 2009. 9. 21. · blobboot loader porting 7 xscale을사용하는lubbock보드의헤더복사및수정

blob boot loader porting 20

blob command mode 화면 및 커널 부팅 후 화면

bank 설정 변경으로 인해128M의 ram 사용 가능

단국대학교 백승재

사용 가능