edk/flash
ml605 board bpi 사용하기 edk13.3 기준...//근데 platform flash 사용하려면 ... http://www.xilinx.com/support/answers/37759.htm 참고
xilinx
2011. 12. 8. 23:25
다음에 닭질 하지 않기 위해 잊혀지기전...빨랑빨랑 기록해 둡니다.
ml605보드는 다양한 방식으로 configuration할 수 있음.
그런데...다양하다보니..dip sw로 그 다양함을 정해야 하는데 여기 좀 헷깔리는 점이 있어서..
according to ug534..
v6 mode pin 정의했고...
<<만약 XCF를 사용한다면
sw2.6 ==> falsh_a23, don't care
sw2.5 , sw2.4 sw2.3 (110) mode bpin slave select Map
sw2.2 ==> cs_sel (i'll use xcf) off
sw2.1 ==> ext_cclk (i'll use external clk) on sw1.4 ==> off, i don't want to use sysace...>>
아래 회로를 보니 XCF도 사용할 수 있게 되어 있네요.. XCF는 근본적으로 configuration을 빨리할려고 외부에 클럭을 단 놈이니 당근 BPI보다는 빠르겠지요.
하여간 둘 중에 하나를 선택하기 위해서는 switch2.2번을 on/bpi 또는 off/xcf로 하면 되는 군요.
눈여겨 보실 내용은 sw1.4는 off를 해야 sw2에 있는 내용이 의미가 있습니다. 잊지말기
그림 순서가 바뀐 감은 있지만 switch2 번에 대한 회로도...
정리하면 ML605보드에서 BPI를 사용하려면 아래와 같이 정리 하면 됩니다.
sw2.6 off
sw2.5 off
sw2.4 on
sw2.3 off
sw2.2 on
sw2.1 don't care (sw2.2 가 on 이면, sw2.2가 off 이면 당연히 sw2.1은 on)
sw1.4 off
dip sw는 이렇게 해서 정리했고... edk13.x에서는 bin 파일을 만들 때 반다시...-data_width option을 줘야 지대로 bin 파일이 만들어짐.
공식은
promgen -u 0x0 download.bit -p bin -w -data_width 16
자 이제 bit 파일을 만들려고 하는데 ELF를 강제로 BIT 파일에 넣으려고 합니다. SDK를 쓰기 전에는 ... 했는데 SDK를 쓸 때는 강제로 ELF를 할당하게 되어 있네요.
이렇게 할당하고 나서 "Generate Bitstream"을 하면...
아래와 같이 메세지가 출력되고....download.bit 파일이 만들어 집니다.
Initializing Memory...
Running Data2Mem with the following command:
data2mem -bm "implementation/system_bd" -p xc6vlx240tff1156-1 -bt
"implementation/system.bit" -bd "SDK/main_flash_i2c/Debug/main_flash_i2c.elf"
tag microblaze_0 -o b implementation/download.bit
Memory Initialization completed successfully.
아까 말한대로 bin 파일을 만들면
promgen -u 0x0 download.bit -p bin -w -data_width 16
이제 bin 파일을 0xbd000000 번지에 download 합니다. 이 번지에는 ddr3 가 자리 잡고 있어요.
아래 비디오 클립을 보세요...
.
ml605 platform flash memory 사용에 대한 소스...
고생많았다....
xilflash_platform_flash_example.c