기존 이솝 임베디드 포럼의 지식인 서비스가 게시판 형태로 변경되었습니다.

안녕하세요.

요새 연구실에서 Arndale 보드로

Xen ARM과 ARM의 Hypervisor Extesion쪽을 공부하고 있습니다.


요즘 커널에서는 Kernel 빌드시에 dtb도 같이 빌드하고

부팅시 dtb를  통해 Kernel에게 하드웨어 정보를 전달하는걸로 알고 있습니다.


Anrdale의 u-boot에서

'bootargs = Kernel Address - dtb Address' 사용하고 있습니다.


dts파일을 열어보면 트리형태의 자료구조라는거는 알겠는데...

이걸 왜 컴파일하여 binary형태로 만드는건지 잘 모르겠고,

이 바이너리 실행을 통해? 

Kernel에게 하드웨어 정보를 전달한다는 개념이 잘 이해가 안됩니다.


또한 궁금한점은

dtb를 이용하기 전의 예전 Kernel에서는 디바이스 정보나 CPU Core정보같은

하드웨어 정보를 어떤식으로 얻는지 알고 싶습니다.


감사합니다.




쭈암

2014.07.09 00:59:06
*.131.225.179

바이너리로 안만들면 어떻게? XML파서라도 커널에 내장시켜야 할까요?

Supsupi

2014.07.09 01:53:53
*.254.202.140

예. 그래야 하는거 아닌가요? 바이너리로 바꾸더라도 결국 바이너리를 커널에서 파싱해야하는거 아닌가요?


쭈암

2014.07.12 01:49:20
*.72.195.29

Libc 도 없는데요. 스트링처리하다 커널 패닉이 날수도 있고,

별 소용도 없는 코드로 커널 메모리만 먹을 겁니다

Supsupi

2014.07.09 01:57:17
*.254.202.140

http://www.informit.com/articles/article.aspx?p=1647051&seqNum=5


자문 자답합니다.

예전에 구글링에서 못 발견 했던 곳인데 제가 질문했던 내용들이 위 링크에 다 있는거 같습니다.

하지만 어떤식으로 device tree를 binary 형태로 바꾸는지 내용은 없는거 같습니다.


감사합니다.

고도리

2014.07.09 06:59:44
*.200.239.210

1. parser가 내장되어 있습니다.

2. dtb를 사용하는 이유는 코드의 유지보수 때문이라고 얘기합니다.

다만 실제를 보면.....드라이버 코드는 parser와 연결이 되어 있고, 이 parser는 dtb에서 관련 정보를 받아서

driver코드에 연결해 주는 역할만 합니다.

==> 쉽죠?....ㅎㅎ, 하지만, 실제로는 그 연결부분이 보이지 않기 때문에 꽤 어려운 내용이고


서로 어떤 부분을 어떻게 parsing하는지에 대한 부분을 일일이 알아야 하기 때문에 또 하나의

언어를 공부하는 것과 같다라고 보시면 됩니다.


----------------------

dtb를 만드는 dts를 보시면 관련 cpu에 대한 언급이 있습니다.

이 cpu를 string으로 받아서 적절하게 cpu chip id를 읽은 후에 비교를 해서

관련 코드를 셋업합니다.


그리고, 제가 간단하게 써 놓은 글도 참고가 되실겁니다.

고도리

2014.07.09 07:00:12
*.200.239.210

http://www.aesop.or.kr/Board_Documents_Linux_Kernel/111747

Supsupi

2014.07.09 08:51:21
*.203.232.74

답변 감사드립니다.

Linux문서들도 confidential이라니...

 

이래서 정보를 찾으려 했도 찾을 수 없었군요..

답변 감사드립니다.(_ _)

sakago2862

2014.07.10 23:59:59
*.111.135.254

저도 dtb이해 하는데 무척 애먹은 기억이 있네요.

고도리님 말씀대로 코드 유지보수 때문인데 개발자 입장에서는...유지보수가 되는건지......

예전에는 platform device에 등록을 할려면 일일이 작없을 해주었지만 이제 dtb에 넣어주기만 하면 

sysfs devices에 등록되어지는 부분은 정말 편리 하긴 하더군요,,(노드 작업을 해주어야 되지만....)


Supsupi

2014.07.12 01:40:13
*.254.202.140

답변 감사드립니다.


Xen 4.2 버젼 이하에서는 DomU생성시에 하드웨어 정보를 dtb로 넘겨주는데.

이쪽 코드를 분석중인데 여전히 잘 이해가 안됩니다. ㅠㅠ

List of Articles
번호 제목 글쓴이 날짜 조회 수

사용자 로그인