tech-kern archive

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

Re: BCM5809S support in bnx(4) and brgphy(4)



On 01.12.2010 11:41, Jean-Yves Migeon wrote:
> On Wed, 1 Dec 2010 18:32:52 +0900, Izumi Tsutsui
> <tsutsui%ceres.dti.ne.jp@localhost> wrote:
>> We should not refer struct bnx_softc in brgphy.c
>> because mii devices can be configured without PCI
>> and bnx_softc contains PCI specific stuff.
>> Your patch might break GENERIC on zaurus, which
>> has mii via on-chip USB but no PCI bus.
>>
>> To pass bnx_foo_flag values from parent bnx(4) to child brgphy(4),
>> we need the following two changes
>>
>>  - use device properties (proplib) to pass flag values
>>  - split if_bnxreg.h and move PCI specific stuff
>>    ("Device State Data", debug macro etc.) into (new) if_bnxvar.h
>>
>> as done on past brgphy(4) changes for bge(4) by msaitoh@:
>> http://mail-index.NetBSD.org/current-users/2009/04/20/msg009101.html
>> http://mail-index.NetBSD.org/source-changes/2009/04/23/msg220278.html
> 
> Ok, I will fix that.

Updated [1]. Differences with previous version:

- uses proplib(3) to query phyflags, and store the value in
brgphy_softc, like bge code does. bnx_softc should not be exposed to
brgphy(4) now.

- split if_bnxreg.h in two, with macros, device state, PCI bus stuff in
if_bnxvar.h, and only include if_bnxreg.h in brgphy.c

- set bits in 'mii_capabilities' so mii_phy_add_media() can be used to
attach BCM 5709S PHYs too (maximizes code reuse).

Re-tested, and works.

Unless someone has comments, I will commit in a few days (say: Thursday,
09).

If bnx(4) owners could test it, I would appreciate it, especially on BE
machines, like sparc64. I did my best to avoid breakage, but I can't
really confirm it (I don't own any Broadcom cards for bnx(4))

[1] http://netbsd.org/~jym/bcm5709s.diff

-- 
Jean-Yves Migeon
jeanyves.migeon%free.fr@localhost


Home | Main Index | Thread Index | Old Index