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

[bsd-nomads:16044] Re: HEADS UP: MFC: pcic's pci attachment



Chiharu Shibataさんが書きました
: 一応日本語と英語の両方で書きますが、英語のほうは自信がないので、代わり
: にコードのdiffを付けておきます。
: これはパッチではなくて「英語の代わりにC言語で説明したもの」です(^^;;

:-)

: diff中のToPIC100の部分は、中川氏がFreeBSD PRESS誌で紹介したものを利用
: させて頂いてます。

私は中川氏のFreeBSD PRESS誌の論文を読みました。そのコードはFreeBSDでま
だ含まれません。私はToPICを持っていません。

[[ すみませんが、英語で書きます ]]

: I try to write this mail not only Japanese, but also English.
: But my English may be poor, I attached the 'code diff'.
: This is NOT a PATCH, but a 'Written in C-Language instead of English' :-)

:-)

: ToPIC100 support in this diff is original made by Mr. Nakagawa. 
: (first appeared in 'FreeBSD PRESS' MOOK)

I have seen nakagawa-san's article.  I've not had a chance to
incorporate his code into FreeBSD.  I do not have any working machines 
with ToPIC controllers to test changes.

: About 3.3V support, We can't do it only 'PCIC_PD_POWER' flag.
: There is a difference between PD672X(6722) and PD6729/6730 about
: the VSENSE register.

Yes.  The 6710 has the VSENSE bit (ExCA register 0x1f bit 0), but the
6722 (and 6729/6730) does have the VS[12] bits in extended register
0xa.  At least according to the data sheets.  I have verified that the
6722 works both ways.  I've not tried the 6729 that I have.

: This code apply 3.3V automatically if PCIC has VSENSE.
: To apply 5V by intention(for 5/3.3V dual-voltage card) is unable.
: We should have two (auto/VSENSE and fix) mode, and check VSENSE only
: auto mode(ex. if vcc == -1, then chech VSENSE).

Yes.  I should include that in -current.  I will try to do so soon.

: +			case PCIC_PD6729:

I couldn't find that extended register 0xa was defined for the 6733.
It is listed as "reserved" in the '33 datasheet.  I think for cardbus
bridges, we'll have to sense the 5v vs 3.3v cards by looking at the
cardbus registers.

I have cardbus power code in -current, but when I use it, I can't seem 
to map memory for the attribute memory for the CIS when it is used.

: +		} else if (sc->flags & (PCIC_VG_POWER)) {
: +			c = sp->getb(sp, 0x1f);
: +			if (slt->slotnum & 1)
: +				c >>= 2;
: +			if ((c & 0x01) == 0)
: +				slt->pwr.vcc = 33;
: +		}

That's good to have.  I'll see about including it.  I do not have any
Vadem parts that support Vadem's 3.3V power extensions, except maybe
in my NEC MobileGear II MC/R430 (and it doesn't run FreeBSD).

Warner