io_block_mapping(...), BAT? 이건 뭐하는 녀석들일까요?

uathebest의 이미지

제가 구글링으로 이해한 내용은

io_block_mapping()해서 특정 영역을 IO가능하게? mapping가능하게? 셋팅하는 것 같긴한데, 파라미터들의 의미를 잘 모르겠습니다.

io_block_mapping( addr1, addr2, size, _PAGE_IO) 이런식으로 넘어가던데..

이 내용과 관련이 있는건지는 모르겠으나..

구글링 내용을 모아보면,
- kernel space를 등록해야한다
- IBAT, DBAT 두개 설정을 꼭해야한다
- KELP내 문서 중에는 NAND Flash에 접근할 수 있도록 IO 주소공간을 커널에 등록한다
(addr1,addr2를 NAND flash base로 넣었음)

io_block_mapping()의 역할과 bat설정에 대해 조언 부탁드립니다.