안녕하세요~
일전에 CS8900의 MAC 어드레스 전달법을 질문드렸는데요.
제가 모델로 삼은 보드가 하이버스 보드인데 u-boot이 아니고 다른 부트로더를 수정한 것이더군요.
그래서 생각한게 부트로더용으로 잡은 영역의 마지막에 6바이트에 맥을 쓰고 드라이버에서 플래쉬에 접근해서 맥을 가져가게 하려고 합니다.
문제는 플래쉬에 접근하는 방법인데요. 그냥 제가 아는 번지에 그래도 써도 되는것인지요.
현상태는 램은 0xa0000000 번지부터가 메모리 맵상 시작번지고 롬은 0x00000000 부터가 시작인데요.
제가 0x00039993~0x00039998 까지 맥어드레스를 써놓고
CS8900의 디바이스 드라이버가 읽어가도록 하게하고 싶습니다.
문제는 0x00039993~0x39998까지 바로 접근이 가능할지 알고 싶습니다.
제가 시험해보니
포인터 변수에 위의 주소를 써놓으니까 안되더군요. ㅠ.ㅜ
암것도 모르고 보드를 꾸몄더니 일이 점점 커집니다^^;
NOR면 그냥 메모리 번지에 write하면 되고,
nand면 nand i/o address에 쓰시면 됩니다.
리눅스 커널이 올라간 상태서 cs8900 드라이버에서 flash의
물리 메모리의 직접 접근은 불가능합니다.
MMU가 동작되고 있어서 매핑된 논리 메모리로 접근해야합니다.
예를 들어...
0x00000000 번지가 커널의 0xf6000000 에 매핑되었다면
당연히 0xf6000000 서부터의 offset으로 계산해야겠지요..