2006年01月23日
出張準備
EDSFair出張のための準備を行う。
トトロバージョン基板が動かないのでデモはiga基板で行うことにする。
iga基板用のsofファイルがなくなっていたので作りなおす。
と言ってもmakeし直すだけ。
試しにターゲット周波数16MHzでビルドしてみるが失敗。
失敗してもsofファイルはできるが、このファイルは壊れているようだ。
このファイルを使ってコンフィグしたために、動かなくなってしばらく悩む。
もしやと思って10MHzでビルドし直してみると動いた。
ついでにカーネルのバージョンを2.4.32に上げる。
2.4.29-mpeのパッチを見ながら2.4.32-mpeを作る。
特に問題なく完成。
FMVノートを出張用にセットアップする。
Vine3.2 on VMWareでは、fxloadがcan't modify CPUCSとか言って失敗する。
on VMWareじゃダメなのかなと思って、Dドライブを詰めて空き容量を作り、Vine3.2をリアルにインストールする。
Vine3.2を直接動かして使うことにしたのでMAXでのコンフィグは不可能になる。
コンフィグはQuartus4.2で行うことにする。
どのファイルが必要なのかわからないのでQuartus4.2のファイルを全てFMVノートにコピーすることにする。
全部で2GB。でかいよQuartus。
quartus_pgmでコンフィグするにはcdf(Chain Description File)なるものを作らなければならないらしい。
cdfファイルはQuartusII Programer(GUI)で作れるらしい。
sofファイルをAdd File...して、Saveするとcdfファイルが保存できる。
このときProgram/Configureにチェックを忘れると、コンフィグされないので注意。
このファイルをLinuxに持っていってちょこちょこ修正。
--mpe_fpga_sram.cdf---------------------------------------------------
/* Quartus II Version 5.1 Build 176 10/26/2005 SJ Full Version */
JedecChain;
FileRevision(JESD32A);
DefaultMfr(6E);
P ActionCode(Cfg)
Device PartName(EP20K1000EB652) File("mpe_fpga_sram.sof")) MfrSpec(OpMask(1);
ChainEnd;
AlteraBegin;
ChainType(JTAG);
AlteraEnd;
----------------------------------------------------------------------
quartus_pgmでコンフィグを行うのにてこずる。
まず、パラレルポート用のカーネルモジュールを組み込む.
# modprobe ppdev
次にByteBlasterを登録する。--add ByteBlasterMVでないことに注意。
# jtagconfig --add ByteBlaster /dev/parport0
で、コンフィグ。こっちはByteBlasterMV
# quartus_pgm -c ByteBlasterMV -m JTAG mpe_fpga_sram.cdf
Vine環境構築の続き。
lsusbのためFedoraCore2からusbutilsをパクってきてインストール。
RedHat9からckermitとkrb5-libsをパクってきてインストール。
.kermrc(.kermitrcでないことに注意)は次の通り。
--.kermrc-------------------------------------------------------------
set line /dev/ttyS0
set serial 8N1
set speed 9600
set carrier-watch off
----------------------------------------------------------------------
これでkermitを起動してcで接続。
ez-usbのファームアップロードとカーネルなどの転送に苦労。
VMWare上じゃないのにcan't modify CPUCSとか言う。VMWareは関係なかったようだ.
よくわからないがタイミングのようなものがあるみたい。とりあえず、次の順番ではできた。
FMVの電源を入れる。
kermitを起動。
MPEボードの電源を入れる。
FPGAのコンフィグ。
ファームアップロード。
カーネル転送。
2005年08月05日
うごいた~
QuartusII5.0で合成し直したらあっさり動いてくれた。QuartusII4.1、この3ヶ月弱をかえせ~
Linux移植作業終了から半年、これで、やっと卒研完成だよ。
Linuxの移植だったはずなのに、LinuxのソースよりMPEのVerilogファイルいじってた時間の方が長かったよ。絶対。
initializing memory... CPU revision is: 00000220 Primary instruction cache 0kB, linesize 0 bytes. Primary data cache 0kB, linesize 0 bytes. Linux version 2.4.29[MPE Linux 0.1] (ohara@walrus.arch.info.mie-u.ac.jp) (gcc バージョン 3.3.5) #58 2005年 5月 27日 金曜日 18:03:52 JST Determined physical RAM map: memory: 00600000 @ 00000000 (usable) Initial ramdisk at: 0x800f1000 (524288 bytes) On node 0 totalpages: 1536 zone(0): 1536 pages. zone(1): 0 pages. zone(2): 0 pages. Kernel command line: console=ttyS0,9600 Calibrating delay loop... 1.88 BogoMIPS Memory: 4452k/6144k available (813k kernel code, 1692k reserved, 580k data, 60k init, 0k highmem) Dentry cache hash table entries: 1024 (order: 1, 8192 bytes) Inode cache hash table entries: 512 (order: 0, 4096 bytes) Mount cache hash table entries: 512 (order: 0, 4096 bytes) Buffer cache hash table entries: 1024 (order: 0, 4096 bytes) Page-cache hash table entries: 2048 (order: 1, 8192 bytes) Checking for 'wait' instruction... unavailable. POSIX conformance testing by UNIFIX Linux NET4.0 for Linux 2.4 Based upon Swansea University Computer Society NET3.039 Starting kswapd Dummy keyboard driver installed. pty: 256 Unix98 ptys configured Serial driver version 5.05c (2001-07-08) with no serial options enabled ttyS00 at 0xbff003f0 (irq = 4) is a 16550A ttyS01 at 0xbff002f0 (irq = 3) is a 16550A RAMDISK driver initialized: 16 RAM disks of 2048K size 1024 blocksize RAMDISK: ext2 filesystem found at block 0 RAMDISK: Loading 512 blocks [1 disk] into ram disk... done. Freeing initrd memory: 512k freed VFS: Mounted root (ext2 filesystem) readonly. Freeing unused kernel memory: 60k freed Algorithmics/MIPS FPU Emulator v1.5 BusyBox v1.00 (2005.02.02-07:02+0000) Built-in shell (ash) Enter 'help' for a list of built-in commands. /bin/sh: can't access tty; job control turned off / # date Sat Jan 1 00:00:10 UTC 2000 / # mount -t proc none /proc / # cat /proc/cpuinfo system type : MPE system processor : 0 cpu model : R3000 V2.0 BogoMIPS : 1.88 wait instruction : no microsecond timers : no tlb_entries : 64 extra interrupt vector : no hardware watchpoint : no VCED exceptions : not available VCEI exceptions : not available / # cat /proc/meminfo total: used: free: shared: buffers: cached: Mem: 5144576 1269760 3874816 0 24576 827392 Swap: 0 0 0 MemTotal: 5024 kB MemFree: 3784 kB MemShared: 0 kB Buffers: 24 kB Cached: 808 kB SwapCached: 0 kB Active: 152 kB Inactive: 684 kB HighTotal: 0 kB HighFree: 0 kB LowTotal: 5024 kB LowFree: 3784 kB SwapTotal: 0 kB SwapFree: 0 kB
QuartusII5.0動くじゃん
データファイル(?)みたいなのをインストールしてなかった。
だからって落ちることないじゃん…
2005年08月03日
mpe_fpga_sram_30.sofが動かない
F_addrの代わりにim_paddrをBPB0に出すようにしたら、シミュレーションは動くが実機では動かなくなった。なぜ?
2005年08月02日
Quartus II 5.0
SunBlade2500(Solaris9)にQuartus5.0をインストール。
4.2のプロジェクトファイルを読ませると落ちる。
新規にプロジェクトを作ろうとしても落ちる。
つかえねー
コマンドライン版も落ちる。
つかえねー
[ohara@sunws2 single]$ /opt/altera/quartus/5.0/bin/quartus_sh -t mpe_fpga_sram.tcl | tee mpe_fpga_sram.log
Info: *******************************************************************
Info: Running Quartus II Shell
Info: Version 5.0 Build 168 06/22/2005 Service Pack 1 SJ Full Version
Info: Copyright (C) 1991-2005 Altera Corporation. All rights reserved.
Info: Your use of Altera Corporation's design tools, logic functions
Info: and other software and tools, and its AMPP partner logic
Info: functions, and any output files any of the foregoing
Info: (including device programming or simulation files), and any
Info: associated documentation or information are expressly subject
Info: to the terms and conditions of the Altera Program License
Info: Subscription Agreement, Altera MegaCore Function License
Info: Agreement, or other applicable license agreement, including,
Info: without limitation, that your use is for the sole purpose of
Info: programming logic devices manufactured by Altera and sold by
Info: Altera or its authorized distributors. Please refer to the
Info: applicable agreement for further details.
Info: Processing started: Wed Aug 3 17:09:03 2005
Info: Command: quartus_sh -t mpe_fpga_sram.tcl
Internal Error: Sub-system: DEV, File: ./dev_family_info_mgr_body.cpp, Line: 1860
Failed reading FGEN-generated ASCII family info data /opt/altera/quartus/5.0/h/dev_part_manager_auto.part
Stack Trace:
int err_get_call_stack(char*,int) +0x94 (/opt/altera/quartus/5.0/solaris/quartus_sh)
void MSG_INTERNAL_ERROR::report(const char*,const char*,const char*,int)+0x70 (/opt/altera/quartus/5.0/solaris/quartus_sh)
bool DEV_FAMILY_INFO_MGR_BODY::read_default_family_data() +0x198 (/opt/altera/quartus/5.0/solaris/quartus_sh)
bool DEV_FAMILY_INFO_MGR_BODY::load_data_from_pdb(const DEV_FAMILY_ENUM,const DEV_FAMILY_INFO_MGR_BODY::DEV_FAMILY_DATA_TYPE,const FIO_PATH*)+0x67c (/opt/altera/quartus/5.0/solaris/quartus_sh)
const DEV_FAMILY_DESC*DEV_FAMILY_INFO_MGR_BODY::get_desc_of(DEV_FAMILY_ENUM)+0xf0 (/opt/altera/quartus/5.0/solaris/quartus_sh)
bool DEV_FAMILY_MANAGER::test_trait_of(DEV_FAMILY_ENUM,DEV_FAMILY_TRAIT_ENUM)const+0x364 (/opt/altera/quartus/5.0/solaris/quartus_sh)
int IDU_PROJECT_INFO::get_support_level_for_feature(DEV_FAMILY_ENUM,e_IDU_FEATURE)+0xe8 (/opt/altera/quartus/5.0/solaris/libdb_idu.so)
GEN_EXE_RETURN_CODE flow_full_compile_or_simulate(FLOW_FACADE*,FLOW_INFO,bool,STL_VECTOR_
GEN_EXE_RETURN_CODE flow_full_compilation(FLOW_FACADE*,FLOW_INFO)+0x28 (/opt/altera/quartus/5.0/solaris/libsys_flow.so)
flow_execute +0xec (/opt/altera/quartus/5.0/solaris/libsys_flow.so)
flow_execute_flow +0x8bc (/opt/altera/quartus/5.0/solaris/libsys_flow.so)
TclInvokeStringCommand +0x7c (/opt/altera/quartus/5.0/solaris/libtcl8.4.so)
TclEvalObjvInternal +0x174 (/opt/altera/quartus/5.0/solaris/libtcl8.4.so)
TclCompEvalObj +0xb98 (/opt/altera/quartus/5.0/solaris/libtcl8.4.so)
TclCompEvalObj +0x17c (/opt/altera/quartus/5.0/solaris/libtcl8.4.so)
Tcl_EvalObjEx +0x60 (/opt/altera/quartus/5.0/solaris/libtcl8.4.so)
Tcl_IfObjCmd +0x21c (/opt/altera/quartus/5.0/solaris/libtcl8.4.so)
TclEvalObjvInternal +0x174 (/opt/altera/quartus/5.0/solaris/libtcl8.4.so)
Tcl_EvalEx +0x1c0 (/opt/altera/quartus/5.0/solaris/libtcl8.4.so)
Tcl_FSEvalFile +0x1fc (/opt/altera/quartus/5.0/solaris/libtcl8.4.so)
Tcl_EvalFile +0x24 (/opt/altera/quartus/5.0/solaris/libtcl8.4.so)
void qexe_argfile_lexer_remove_escapes(char*) +0x2f80 (/opt/altera/quartus/5.0/solaris/quartus_sh)
void qexe_argfile_lexer_remove_escapes(char*) +0x49c (/opt/altera/quartus/5.0/solaris/quartus_sh)
void qexe_argfile_lexer_remove_escapes(char*) +0x1ac (/opt/altera/quartus/5.0/solaris/quartus_sh)
int qexe_standard_main(QEXE_FRAMEWORK*,const QEXE_OPTION_DEFINITION**,int,const char**)+0x14 (/opt/altera/quartus/5.0/solaris/quartus_sh)
int qsh_main(int,const char**) +0x64 (/opt/altera/quartus/5.0/solaris/quartus_sh)
int msg_exe_main(int,const char**,int(*)(int,const char**)) +0xa0 (/opt/altera/quartus/5.0/solaris/quartus_sh)
_start +0x108 (/opt/altera/quartus/5.0/solaris/quartus_sh)
End-trace