-
一连搞了搞几天,总结下
现在工具链可以跑通了。 OpenSPARC T1编译的是1c1t,也就是一核单线程的,所以obp_rom用的也要是1c1t的。但Solaris的包进系统后没有启动起来,Ubuntu的进系统了。 u@unamed:~/prjs/testaceos$ source ~/Xilinx/10.1/ISE/settings64.sh u@unamed:~/prjs/testaceos$ source ~/Xilinx/10.1/EDK/settings64.sh u@unamed:~/prjs/testaceos$ xmd -tcl genace.tcl -jprog -target mdm -board ml505 -hw ~/prjs/OpenSPARCT1/design/sys/edk/implementation/system.bit -elf executable.elf -data ./1c1t_obp_prom.bin 0x8ff00000 -data ./ramdisk.ubuntu-7.10-gutsy.gz 0x8af00000 -ace uty_testubuntu_patchbitgen1c1t.ace 感觉有可能是编译core的时候没有选4t,结果操作系统boot的时候有问题? 因为OpenSPARC大概是08年左右开源出来的,所以工具链都是那时候的Solaris和Ubuntu,所以之前的几天遇到很多坑。 特别是Java的问题。 用于sythesis的编译器xst是Xiline ISE9.1,而EDK用的是10.1.3。 更新版本的EDK能装,但有问题,启动的时候好像很多东西没启动,打不开xmp文件。 还有就是bitgen了。 用笨方法,通过查找出错信息的字符串,定位了这个lib。 /home/u/Xilinx/10.1/ISE/virtex5/lib/lin64/libBsRain_Bitgen.so gdb step out finish 改内存 (gdb) set {char}0x00007ff275600d25=0x90 (gdb) set {int}0x00007ff275600d21=0x90909090...
-
ERROR:Bitgen - Unknown PLL_ADV site in pminfo.
生成了ncd文件和source了这两个文件后,就可以复现这个问题。 u@unamed:~$ source ~/Xilinx/10.1/ISE/settings64.sh u@unamed:~$ source ~/Xilinx/10.1/EDK/settings64.sh u@unamed:~/prjs/OpenSPARCT1/design/sys/edk/implementation$ bitgen -w -f bitgen.ut system u@unamed:~/Xilinx/10.1$ grep "in pminfo" -R * ... Binary file ISE/virtex5/lib/lin64/libBsRain_Bitgen.so matches ... in pminfo定位到这个so里。 0x00007ff2755f9820 0x00007ff2756182d8 Yes (*) /home/u/Xilinx/10.1/ISE/virtex5/lib/lin64/libBsRain_Bitgen.so (gdb) info functions \w*plladv\w* All functions matching regular expression "\w*plladv\w*": Non-debugging symbols: 0x00007ff2755f90a8 BsRain_BfdTile::plladvpminfo(Bs_BfdCell*, char const*, char const*,...
-
Generate ace file
前两天生成了.bit文件,按照OpenSPARC T1 Processor Design and Verification User’s Guide里的方法就可以 通过调试链接开发板把要跑的操作系统传上去了。 但是我想用CF卡。CF卡上之前跑Solaris是一个.ace文件,大概100MB左右。 所以,首先就要生成.ace文件,并且把bootloader和Solaris系统也都装进取。 Xilinx自带的iMPACT,也就是bin下的impact可以生成ace,但是没找到怎样把Solaris也放进去。 主要就是靠网上搜到的Xilinx OpenSPARC Tutorial 2了。里面说了运行独立程序的步骤,但把程序的那个gz包换成Solaris也可以。 u@unamed:~/prjs/testaceos$ source ~/Xilinx/10.1/ISE/settings64.sh u@unamed:~/prjs/testaceos$ source ~/Xilinx/10.1/EDK/settings64.sh u@unamed:~/prjs/testaceos$ xmd -tcl genace.tcl -jprog -target mdm -board ml505 -hw ~/prjs/OpenSPARCT1/design/sys/edk/implementation/system.bit -elf executable.elf -data ./1c4t_obp_prom.bin 0x8ff00000 -data ./ramdisk.snv-b77-nd.gz 0x8af00000 -ace uty_testopensolaris.ace 这些文件都是OpenSPARC里自带的 ~/prjs/OpenSPARCT1/design/sys/edk/ccx-firmware/executable.elf ~/prjs/OpenSPARCT1/design/sys/edk/os/proms/1c4t_obp_prom.bin ~/prjs/OpenSPARCT1/design/sys/edk/os/OpenSolaris/proto/ramdisk.snv-b77-nd.gz 才发现prom我用的是1c4t的,1核4线程,但我编译的sparc内核是单线程的,也就是1c1t。不过看来影响不大。 最主要的是这个genace.tcl文件,在这个位置。但这个文件也是可以处理ml505开发板的。 ~/prjs/OpenSPARCT1/design/sys/edk_bee3/bee3_util/ace/genace_bee3.tcl...