안녕하세요!
리눅스 PCI Device Driver를 개발을 시작했습니다.
궁금한것은 pci_get_config_dword(...)이런 함수로
BASE ADDRESS 0, BASE ADDRESS 1의 두개 BASE ADDRESS를
획득했습니다.
궁금한것은 이 BASE ADDRESS에 data를 read/write하기 위해
물리주소가 필요하다고 해서요...
pci_get_config_dword()함수로 획득한 ADDRESS를 직접사용
할 수가 없다고 합니다. 물리주소를 알 수 있는 방법은
없을까요? 제가 질문을 잘 했는지 모르겠습니다.

=================================================================
I/O region이라면 in, out 시리즈의 함수(inb, inw, inl, outb, outw, outl)를 이용하면 됩니다.
Memory region이라면 ioremap을 하고 read/write 시리즈의 함수(readb, readw, readl, writeb, writew, wirtel)를 이용하는 것 같습니다.
자세한 사용법은 kernel 소스의 driver 아래에 있는 소스중에 pci를 사용하는 것들 아무거나 열어서 살펴보시면 좋겠습니다.

버젼 2.2.X kernel에서는 ioremap을 찾아보기 힘들었던 것으로 기억하는데...

오늘은 PCI 버스의 날인 듯 싶네요..쿨럭..


=================================================================
윗분이 잘 말씀해주셨듯이..
리소스가 뭐냐에 따라서 틀립니다.
아이오리소스라면 그냥 쓰면 되고, 메모리라면 리멥해야지요.
그런데 메모리리소스가 더 좋다고(?)하는것같더군요.
아님 말구요 -_-

ps.
한글만 쓰기 참 힘드네요ㅠ


WRITTEN BY
RootFriend
개인적으로... 나쁜 기억력에 도움되라고 만들게되었습니다.

,