[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

macppc wdc patch



IDE ハードディスクのタイミングをいじってみました。これちゃんと動く
でしょうか。このパッチをあてた上で DMA を有効にしてみてください。

DMA を有効にするには

wdc*	at obio? flags 0x1

のように flags に 1 を立てます。

なお、ディスクが DMA mode 2 以上に対応しているのが前提です。
私のところでは dd if=/dev/rwd0a ... の結果が1桁速くなりました。
ディスクにもよるでしょうが、
PowerBook G3/400 で 9MB/sec
Power Macintosh G4 なら 14MB/sec
ぐらい。

*** wdc_obio.c~	Sat Jan 22 03:45:14 2000
--- wdc_obio.c	Tue Feb  8 02:15:45 2000
***************
*** 184,189 ****
--- 184,191 ----
  	}
  
  	wdcattach(chp);
+ 
+ 	change_timing(ca);
  }
  
  int
***************
*** 285,287 ****
--- 287,308 ----
  	dbdma_stop(sc->sc_dmareg);
  	return 0;
  }
+ 
+ int
+ change_timing(ca)
+ 	struct confargs *ca;
+ {
+ 	u_int32_t x;
+ 	char *addr = (char *)ca->ca_baseaddr + ca->ca_reg[0] + 0x200;
+ 
+ 	x = in32rb(addr);
+ 
+ /* printf("OLD value 0x%x\n", x); */
+ 	x &= 0x000007ff;
+ 	x |= 0x00211000;
+ /* printf("NEW value 0x%x\n", x); */
+ 
+ 	out32rb(addr, x);
+ 
+ 	return 0;
+ }

# 下位ビットは意味不明なのでさわってないけどいいのかなー。:-)