トップ «前の日記(2003年11月07日) 最新 次の日記(2003年11月09日)» 編集
2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|10|12|
2009|02|03|06|07|10|11|12|
2010|01|02|03|04|07|09|10|11|12|
2011|01|03|04|05|06|07|08|10|
2012|01|06|08|09|10|12|
2013|01|02|03|04|07|09|11|12|
2014|01|03|04|05|06|09|
2015|04|
2016|01|08|
ここは旧えびめもです。えびめも2に移行します(2016/12/1)

2003年11月08日

CAT709

おととい作ったCAT709-EXIDE回路に関して、アドレスデコーダに不備があることに気がついた(動いてるけど)。EB709上のCFソケット1,2に刺さっているカードとアドレスがぶつかってしまう。ぶつからないようにするためにはA14=Hの条件が必須だったのでアドレスを変更する。
PDF
コマンドブロックレジスタ     CS0# は 0xba00c000〜0xba00c0ffに割り当てる.
コントロールブロックレジスタ CS1# は 0xba00c100〜0xba00c1ffに割り当てる.
これに従って、カーネルパッチも以下のように変更する。
【arch/sh/kernel/io_cat709.c】
int setup_cat709(void){
  printk("setup_cat709\n");
 
  cat709_port_map_init();
  /* AX88796 mapped 0x300-0x31f to 0xba004000 */
  cat709_port_map(0x300,0x31f,0xba004000,0);
 
  // CAT709 extened ide interface setup
#define EXTIDEBASE 0xba00c000
  cat709_port_map(0x1f0,0x1f7,EXTIDEBASE+0x000,1);  // ←修正
  cat709_port_map(0x3f6,0x3f6,EXTIDEBASE+0x10c,1);  // ←修正

半田コテ手術を施す。あーあCPLDにしときゃよかった。HCT138が一個だけの回路だからわざわざCPLD持ち出すのも面倒と思ってたけどさ。

JTAGデバッガでI/O番地を見る。設計どおり0xba00c000と0xba00c10c番地にレジスタが見えることを確認する。こういう作業は普通のマイコンボードの開発と同じだ。linuxボードだからといって特別なことはない。それにしてもPARTNER便利だ。