회원 및 비회원 모두 열람이 가능합니다. 최대 업로드 가능한 용량은 20MB 입니다.
안녕하세요.
SoftCore 인 Openrisc을 기반으로 하는 작업을 구상중인데,
Openrisc 사이트에서 제공되는 내용은 시작하기에는
자료가 충분치 않고 국내에서도 이쪽관련 작업을 진행하는
케이스를 보기가 힘든 것 같습니다.
본 사이트에서 김재훈님이 작업결과를 공개한 것을 보았습니다.
예전에 spartan-3 100만 게이트 기반 보드로 작업을 시도 했었는데,
MMU 없이 합성하여 uclinux를 올리다가 말았던 경험이 있습니다.
이번에도 저가형 모델로 적용해야 할 듯한데, uclinux는 2.0 대 이후
공식적으로 지원하지 않는 듯하고 OS는 리눅스를 올려야 할 상황인데
저가로 적용해 볼 수 있는 칩은 어떤것이 있을지...
요즘에 flash 형 FPGA 도 나오고 있던데 이것은 단가와 특성등은
어떨지 모르겠습니다.
칩 선정과 개발보드 등 개발관련 정보공유 부탁 드립니다.
감사합니다.
저는 OpenRISC 홈페이지에서 제공하는 코어 메뉴얼과 예제 소스 몇개만을 가지고 작업을 진행 했습니다. :)
그리고 자일링스 Virtex 4 기반의 FPGA(400만 게이트)를 사용했습니다.
Spartan 기반의 FPGA에서 작업시 OpenRISC 코어의 경우 코어속도가 많이 올라가지 못했던 경험이 있습니다.
(약 40Mhz가 한계라고 생각 되네요. Virtex 4의 경우 80Mhz까지 돌려 봤습니다.)
저는 uclinux가 아니라, 일반 리눅스를 포팅하는 작업까지 진행하고 있었는데, 당시 프로젝트가 갑작스럽게
종료되어 Linux 까지 올리는 작업은 하지 않았습니다.
OpenRISC의 경우 코어 아키텍처 메뉴얼의 MMU관련 가이드과, 예제 소스코드가 너무 부실합니다. (ㅡㅡ+)
MMU만 제대로 어떻게 해결할 수 있었어도 순조롭게 작업을 할 수 있었을 텐데요...
그리고, OpenRISC용으로 이식된 리눅스 커널이 있으나 이것은 QEMU 기반 입니다.
Base-Address 부터 Offsets까지 QEMU와 Real-core 간에는 너무 많은 차이가 있습니다.
저는 MMU 쓸방법 찾느라 고생했는데, MMU 없는 uclinux라면 해볼만 하겠네요. :)
그리고, OpenRISC의 경우 몇가지 문제점이 있는데, 일단 Big-Endian 이기 때문에 기존의 ARM 베이스 접근하시는 분들의 경우 초반에 고생을 많이 합니다. 또한 Core 자체에서 위시본 버스를 지원하지 않기 때문에, 8bit / 16bit 데이터를 모두 32bit 형으로 변환해서 넘겨줘야 하며, 반대도 마찬가지로 작업을 해줘야 합니다. (특히 이더넷이나 NOR Flash 관련 코드에서 문제가 많이 터지죠.)
개발 보드는 사실, 시리얼과 이더넷이 나와있는 FPGA 붙어있는 아무 보드나 사용해도 됩니다.
제가 올려놓은 코드의 경우 U-Boot를 이식한 것이기 때문에 이더넷과 플래시 메모리는 가급적이면 U-Boot에서
지원하는 디바이스가 FPGA에 연결된 보드를 찾으시는 편이 좋습니다.
리눅스 이식 작업의 경우 초기 개발환경을 만들어주는게 가장 중요 합니다. :)
적어도, OpenRISC를 접근 하시려면 코어 메뉴얼은 여러 번 보셔야 할 것 입니다.
기존의 ARM과 PPC와 MIPS 아키텍처를 뒤섞어 놓았는데, 인스트럭션 조합이 가끔 사람 난감하게 만드는
조합일 때가 많습니다. (역시 인스트럭션 조합은 ARM이 사용하기 쉽고 우수한 것 같습니다.)
그럼 도움 되시기를~