[커널 20차] 32주차
2023.12.16 22:06
지난주차 진행했던 early_fixmap_init() 및 fixmap_remap_fdt() remind 복습 후
arm64/mm/mmu.c -> init_pmd()부터 시작
-set_fixmap()내부에 fixmap_pte()는 가상주소를 pte에 direct로 넣어준다.
ex) Idx = FIX_PMD일 경우 ADDR = 0xfffffbfffdc34000이며 bm_pte[0][52]의 주소를 가져옴
-set_pte()는 FIX_PTE, FIX_P*D의 virtual addr(ptep)을 set_pte()를 통해 bm_p*d(phys)를 매핑한다.
Set_pte를 통해 pte내의 FIX_Pxx를 넣어줌.
CONT_PTE_SIZE는 연속된 16개의 page size를 뜻함
Q. 아래코드에서 __boundary < end 을 하지않고 -1을 빼서 비교를 하는지 ?
#define pte_cont_addr_end(addr, end) \ ({ unsigned long __boundary = ((addr) + CONT_PTE_SIZE) & CONT_PTE_MASK; \ (__boundary - 1 < (end) - 1) ? __boundary : (end); \ })
A. 유추해보기에는 __boundary값이 long 사이즈를 넘어섰을경우를 대비하여 작성된 코드로보이나 확실하진 않음.
granule size | cont PTE | cont PMD | -------------+------------+------------+ 4 KB | 64 KB | 32 MB | 16 KB | 2 MB | 1 GB* | 64 KB | 2 MB | 16 GB* |
Q. 초반에 FDT를 매핑해줬는데, FIXED_MAP에 이중으로 매핑하는이유는 ?
A.초반에 매핑한이유는 boot_args 와 같은 필요한 항목을 가져오기위해 매핑했고, fixed map의 매핑한이유는 이제 커널에서 사용하기위해서 매핑하는것으로 보인다.
*위내용 정리 이미지(FDT 1page 까지 매핑)
- 위 그림에서 FDT를 1 Page 를 맵핑한 이후
FDT의 크기 (약 74038 byte) 를 page크기로 나누면 약 ROUND_UP(18.07)page 만큼 맵핑을 해야한다.
* 추가 정리 이미지(FDT 전체 맵핑)
- 위에서 한개의 bm_pte는 512page까지 표현가능하므로, 512 ~ 528은 다음 pte table에 fdt 영역이 매핑된다.
Q. PE란?
A. https://developer.arm.com/documentation/102404/0201/Common-architecture-terms
코어텍스 종류마다 pe 정의가 다르긴한데 그냥 지금처럼 코어라고 생각하고 진행하는게 좋을것 같습니다.
Cortex-A8 is a single core, single-thread processor. The entire processor is a PE.
Cortex-A53 is a multi-core processor, each core is a single thread. Each core is a PE.
Cortex-A65AE is a multi-core processor, each core has two threads. Each thread is a PE.
댓글 0
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
공지 | [공지] 스터디 정리 노트 공간입니다. | woos | 2016.05.14 | 631 |
247 | 커널 스터디 공개 노트 링크 [1] | 박동하 | 2016.05.20 | 233179 |
246 | [커널 17차] 41주차 | ㅇㅇㅇ | 2021.06.13 | 36553 |
245 | [커널 17차] 56주차 | ㅇㅇㅇ | 2021.10.03 | 27532 |
244 | [커널 18차] 1주차 | V4bel | 2021.05.29 | 3600 |
243 | [커널 17차 6조] 2주차 | 김정근 | 2020.08.31 | 2175 |
242 | [커널 17차 2조] 4주차 | wellbeing | 2020.09.12 | 1518 |
241 | 커널 스터디 13차 D조 스터디 로그 링크입니다. | 목태양 | 2016.05.15 | 1226 |
240 | 해킹&보안 1차 A팀 스터디로그 링크 | 수비니겨 | 2016.05.19 | 1186 |
239 | [커널 16차 B조] 1주차 [1] | kdy0252 | 2019.05.25 | 1084 |
238 | [커널 17차 A조] 20주차 | 주영 | 2021.01.11 | 1019 |
237 | [커널 20차] 24주차 | 이민찬 | 2023.10.22 | 855 |
236 | [커널 17차 2조] 5주차 | wellbeing | 2020.09.19 | 739 |
235 | [커널 17차 8조] 1주차 [3] | JSYoo5B | 2020.08.22 | 718 |
234 | [커널 19차] 0주차 - 오리엔테이션 | 리턴 | 2022.05.07 | 602 |
233 | [커널 17차] 26주차 | 주영 | 2021.03.01 | 541 |
232 | [커널 19차] 37 주차 | Min | 2023.02.04 | 479 |
231 | [커널 19차] 1주차 | 리턴 | 2022.05.16 | 461 |
230 | [커널 17차] 32주차 | ㅇㅇㅇ | 2021.04.11 | 445 |
229 | [커널 17차 A조] 12주차 | 주영 | 2020.11.16 | 410 |
.