Libretto L2 PCMCIA


どーも Libretto L2 + FreeBSD の具合いがよろしくない.
すえちゃまの ページにも書いてあるんだけど問題山積み.
  • PC-Cardが使えない
  • 音が出ない
  • suspend/resumeが出来ない
って問題がまだ残ってたりする. うーん.

ってことでこの日は すえちゃまの研究室に行って Libretto をつつきまくった.
ちょうどこの日, FreeBSD 4.4-RELEASE が出てて, bsd-nomads の ToPIC100 で 3.3V のカードが使えるパッチが merge されていた (そのままじゃないけど)ので すえちゃまの Libretto L2 に 4.4-RELEASE を入れてみた.

うーん,pcicは認識するけど, PCMCIAカードを差してもカードは認識されない...
どうする? と思ってたら, おれらの持ってる PCMCIA カードは全部 5V only なカードでした. 「なにー!! このパッチじゃ 5V only なカードは全滅かい!!」 ってことで適当にいじる.

/sys/pccard/pcic_pci.c を見ると, pcic_pci_topic_init() はこうなってました.
   static void
   pcic_pci_topic_init(device_t dev)
   {
	struct pcic_softc *sc = device_get_softc(dev);
	u_int32_t device_id;

	device_id = pci_get_devid(dev);
	if (device_id == PCI_DEVICE_ID_TOSHIBA_TOPIC100 ||
	    device_id == PCI_DEVICE_ID_TOSHIBA_TOPIC97) {
		/*
		 * We need to enable voltage sense and 3V cards explicitly
		 * in the bridge.  The datasheets I have for both the
		 * ToPIC 97 and 100 both lists these ports.  Without
		 * datasheets for the ToPIC95s, I can't tell if we need
		 * to do it there or not.
		 */
		pcic_setb(&sc->slots[0], PCIC_TOPIC_FCR,
		    PCIC_FCR_3V_EN | PCIC_FCR_VS_EN);
	}
	pcic_pci_cardbus_init(dev);
   }
   
うぬぬぬぬ. ToPIC 100 の仕様だと 3V を使用可能にするためには このピンの信号を立てとく必要があるみたいなんだけど,そうすると 5Vカードは動かないので西本せんせぇ案に従い,ここをちょっといじくる.
		pcic_setb(&sc->slots[0], PCIC_TOPIC_FCR,
		    PCIC_FCR_3V_EN | PCIC_FCR_VS_EN);
   
の部分を
		pcic_setb(&sc->slots[0], PCIC_TOPIC_FCR,
		    PCIC_FCR_VS_EN);
   
こうするだけ. ど簡単.

結果は... でーきまーしたー.
ep なカードも ata なカードもsio なカードもすべておっけー. とりあえず満足.
でも他の Libretto L1, L2 ユーザは 5V only なカードは 持っていないのだろうか? っつーか, 3.3V only なカードと 5V only なカードを持っていたらどうすりゃいいのか? 謎は残る.

あ,音と suspend/resume はまた今度.

日記の感想はこちらへどーぞ.

Generated with mkdiary.pl
Back to my diary