Home | History | Annotate | Download | only in pci
History log of /src/sys/dev/pci/if_rtk_pci.c
RevisionDateAuthorComments
 1.48  24-Sep-2022  thorpej Remove unnecessary include of <sys/malloc.h>.
 1.47  09-Dec-2018  jdolecek use pci_intr_establish_xname() everywhere
 1.46  09-May-2015  christos branches: 1.46.16; 1.46.18;
PR/49889: Maxim Tsyplakov: support for D-Link DFE520TX
 1.45  29-Mar-2014  christos branches: 1.45.6;
make pci_intr_string and eisa_intr_string take a buffer and a length
instead of relying in local static storage.
 1.44  30-Mar-2013  christos branches: 1.44.4;
remove trailing whitespace
 1.43  30-Jan-2012  drochner branches: 1.43.6;
Use pci_aprint_devinfo(9) instead of pci_devinfo+aprint_{normal,naive}
where it looks straightforward, and pci_aprint_devinfo_fancy in a few
others where drivers want to supply their own device names instead
of the pcidevs generated one. More complicated cases, where names
are composed at runtime, are left alone for now. It certainly makes
sense to simplify the drivers here rather than inventing a catch-all API.
This should serve as as example for new drivers, and also ensure
consistent output in the AB_QUIET ("boot -q") case. Also, it avoids
excessive stack usage where drivers attach child devices because the
buffer for the device name is not kept on the local stack anymore.
 1.42  02-Nov-2010  jakllsch branches: 1.42.8; 1.42.12;
Explicitly set PCI_COMMAND_MASTER_ENABLE, in case the platform firmware didn't.
 1.41  27-Jul-2010  jakllsch Make the Realtek PCI network interfaces detachable.
Use __arraycount to avoid null table entries.
Miscellaneous other touch-ups in bus front-ends.
 1.40  26-Nov-2009  njoly branches: 1.40.2; 1.40.4;
Cleanup interrupt establish error messages. Do not mix
aprint_error/aprint_normal/printf calls for a single line.
 1.39  05-Sep-2009  tsutsui Invert logic around nested pmf(9) registrations for readability.

XXX: should these pmf(9) calls be moved into MI attach functions
XXX: using function pointers for suspend and resume passed via softc?
 1.38  06-May-2009  cegger struct cfdata * -> cfdata_t, no functional changes intended.
 1.37  23-Aug-2008  tsutsui branches: 1.37.8;
Also match Realtek 8138, 8139D, and 8100.
 1.36  25-Apr-2008  tsutsui branches: 1.36.2; 1.36.4; 1.36.8;
Split device_t/softc for re(4) and rtk(4).
 1.35  09-Dec-2007  jmcneill branches: 1.35.10; 1.35.12;
Merge jmcneill-pm branch.
 1.34  06-Nov-2007  uwe branches: 1.34.2; 1.34.4;
Use device_t and device_private(). Convert attach to use aprint_*.
 1.33  19-Oct-2007  ad branches: 1.33.2;
machine/{bus,cpu,intr}.h -> sys/{bus,cpu,intr}.h
 1.32  21-Mar-2007  tsutsui branches: 1.32.8; 1.32.10; 1.32.14;
Cleanup handling of quikrs on each RealTek chip:
- replace rtk_type member in rtk_softc which has chip types
with new rtk_quirk that represents quirks on each chip:
- RTKQ_8129 doesn't have internal MII (used in rtk(4))
- RTKQ_8139CPLUS has different register layout (for re(4))
- RTKQ_8169NONS (original 8169) requires some settings on init
- RTKQ_PCIE requires different settings in setmulti
so that we don't have to check each hwrev values or types everywhere
and newer variants will also work without changes if they don't
have other quirks
(sc_rev is unchenged for now for reference to the Realtek's driver)
- don't check hwrev register in re_pci_match() but check
only PCI_VENDER(), PCI_PRODUCT() and PCI_REVISION()
so that we no longer have to map pci space there
- add a new HWREV value for another 8168 variant
- try to map PCI mem space more properly
- remove (probably unneeded) ifp->if_baudrate initialization

Tested on a newer 8168 variant by Dennis den Brok on tech-kern,
and also tested on 8139 and 8169C on macppc, and 8139C+ on landisk
by me.
 1.31  25-Feb-2007  tsutsui branches: 1.31.4; 1.31.6; 1.31.8;
Try to map both PCI I/O and memory space and remove #ifdef RTK_USEIOSPACE.

Tested on dreamcast, landisk, and macppc with 8139C on PCI slot.
 1.30  16-Nov-2006  christos branches: 1.30.2; 1.30.4; 1.30.6;
__unused removal on arguments; approved by core.
 1.29  09-Nov-2006  tsutsui Print device revision on attach.
 1.28  27-Oct-2006  tsutsui Use common macro rather than local one.
 1.27  12-Oct-2006  christos - sprinkle __unused on function decls.
- fix a couple of unused bugs
- no more -Wno-unused for i386
 1.26  24-Sep-2006  jmcneill Add "name" parameter to powerhook_establish, to aid debugging. No objections
on tech-kern@
 1.25  01-Sep-2006  uwe branches: 1.25.2; 1.25.4;
s/dreamcast/sh3/ to cover landisk.
 1.24  09-Mar-2006  he Add recognition of Nortel Baystack 21 as an rtk8139 variant.
Rest of information submitted in PR#33044.
 1.23  11-Dec-2005  christos branches: 1.23.4; 1.23.6; 1.23.8; 1.23.10;
merge ktrace-lwp.
 1.22  27-Jan-2005  jmcneill branches: 1.22.4; 1.22.6;
Add rtk_pci powerhook, from Kentaro A. Kurahone
 1.21  21-Aug-2004  thorpej branches: 1.21.4; 1.21.6;
Use ANSI function decls and make use of static.
 1.20  13-Feb-2004  wiz branches: 1.20.4;
RealTek -> Realtek.
 1.19  25-Oct-2003  fvdl Add definitions for 8139C+ and 8169 chips. Not used yet. From FreeBSD.
 1.18  29-Jan-2003  kanaoka branches: 1.18.2;
Set RTK_ENABLE flag when it attached. This fixed multicast problem.
Found by FUKAUMI Naoki <naoki@fukaumi.org>.
 1.17  23-Dec-2002  tsutsui Don't use PCI_PRODUCT_DELTA_8139 (0x1360) for args of pci_conf_read() and
pci_conf_write(); use PCI_INTERRUPT_REG (0x3c) instead. (How does it work?)
 1.16  23-Dec-2002  tsutsui Fix typo in printf message.
 1.15  02-Oct-2002  thorpej Add trailing ; to CFATTACH_DECL.
 1.14  30-Sep-2002  thorpej Use CFATTACH_DECL().
 1.13  27-Sep-2002  thorpej Declare all cfattach structures const.
 1.12  06-Feb-2002  tsutsui branches: 1.12.10;
TAB/space cosmetics
 1.11  04-Feb-2002  tsutsui Remove chip description which is also mentioned in dev/ic/rtl81x9.c.
 1.10  13-Nov-2001  lukem add RCSID
 1.9  18-Jul-2001  thorpej Costmetic change.
 1.8  08-Jul-2001  thorpej branches: 1.8.2;
Remove unnecessary include files. From Onno van der Linden.
 1.7  12-Jun-2001  thorpej Don't need INET or NS includes here.
 1.6  11-Jun-2001  tron Add support for the D-Link DFE-530TX+. Patch supplied by
Gabriel Rosenkoetter in PR kern/13161.
 1.5  31-Jan-2001  thorpej branches: 1.5.2;
Match the SEGA Dreamcast Broadband Adapter, and use PCI memory
space on that device (XXX should be done differently than it is).
 1.4  28-Dec-2000  sommerfeld Change pci_intr_map to get interrupt source information from a "struct
pci_attach_args *" instead of from four separate parameters which in
all cases were extracted from the same "struct pci_attach_args".

This both simplifies the driver api, and allows for alternate PCI
interrupt mapping schemes, such as one using the tables described in
the Intel Multiprocessor Spec which describe interrupt wirings for
devices behind pci-pci bridges based on the device's location rather
the bridge's location.

Tested on alpha and i386; welcome to 1.5Q
 1.3  19-May-2000  tsutsui branches: 1.3.4; 1.3.6;
- Change RL_* -> RTK_*
- Free bus_dma resources if attach fails
- Add detach and power management code

Patch from Masanori Kanaoka <kanaoka@ann.hi-ho.ne.jp> in kern/10156.
 1.2  15-May-2000  thorpej Symbol namespace cleanup: rl_ -> rtk_
 1.1  10-May-2000  haya Move if_rl_pci.c:1.7 to if_rtk_pci.c.
 1.3.6.4  11-Feb-2001  bouyer Sync with HEAD.
 1.3.6.3  05-Jan-2001  bouyer Sync with HEAD
 1.3.6.2  20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.3.6.1  19-May-2000  bouyer file if_rtk_pci.c was added on branch thorpej_scsipi on 2000-11-20 11:42:23 +0000
 1.3.4.1  11-Jun-2001  he Pull up revision 1.6 (requested by tron):
Support the D-Link DFE-530TX+. Fixes PR#13161.
 1.5.2.6  29-Dec-2002  thorpej Sync with HEAD.
 1.5.2.5  18-Oct-2002  nathanw Catch up to -current.
 1.5.2.4  28-Feb-2002  nathanw Catch up to -current.
 1.5.2.3  14-Nov-2001  nathanw Catch up to -current.
 1.5.2.2  24-Aug-2001  nathanw Catch up with -current.
 1.5.2.1  21-Jun-2001  nathanw Catch up to -current.
 1.8.2.4  10-Oct-2002  jdolecek sync kqueue with -current; this includes merge of gehenna-devsw branch,
merge of i386 MP branch, and part of autoconf rototil work
 1.8.2.3  11-Feb-2002  jdolecek Sync w/ -current.
 1.8.2.2  10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.8.2.1  03-Aug-2001  lukem update to -current
 1.12.10.1  28-Apr-2003  tron Pull up revision 1.18 (requested by kanaoka in ticket #1134):
Set RTK_ENABLE flag when it attached. This fixed multicast problem.
Found by FUKAUMI Naoki <naoki@fukaumi.org>.
 1.18.2.5  04-Feb-2005  skrll Sync with HEAD.
 1.18.2.4  21-Sep-2004  skrll Fix the sync with head I botched.
 1.18.2.3  18-Sep-2004  skrll Sync with HEAD.
 1.18.2.2  25-Aug-2004  skrll Sync with HEAD.
 1.18.2.1  03-Aug-2004  skrll Sync with HEAD
 1.20.4.1  17-Mar-2006  riz Pull up following revision(s) (requested by hw in ticket #10364):
sys/dev/pci/if_rtk_pci.c: revision 1.24
Add recognition of Nortel Baystack 21 as an rtk8139 variant.
Rest of information submitted in PR#33044.
 1.21.6.1  12-Feb-2005  yamt sync with head.
 1.21.4.1  29-Apr-2005  kent sync with -current
 1.22.6.7  21-Jan-2008  yamt sync with head
 1.22.6.6  15-Nov-2007  yamt sync with head.
 1.22.6.5  27-Oct-2007  yamt sync with head.
 1.22.6.4  03-Sep-2007  yamt sync with head.
 1.22.6.3  26-Feb-2007  yamt sync with head.
 1.22.6.2  30-Dec-2006  yamt sync with head.
 1.22.6.1  21-Jun-2006  yamt sync with head.
 1.22.4.3  04-Oct-2007  bouyer Pull up following revision(s) (requested by tsutsui in ticket #1852):
sys/dev/ic/rtl81x9var.h: revision 1.39
sys/dev/cardbus/if_re_cardbus.c: revision 1.13
sys/dev/pci/if_re_pci.c: revision 1.27 via patch
sys/dev/pci/if_rtk_pci.c: revision 1.32
sys/dev/cardbus/if_rtk_cardbus.c: revision 1.32
sys/dev/ic/rtl8169.c: revision 1.84, 1.85
sys/dev/ic/rtl81x9reg.h: revision 1.27
sys/dev/ic/rtl81x9.c: revision 1.72
Cleanup handling of quikrs on each RealTek chip:
Pull a fix for PCIe variants from FreeBSD
 1.22.4.2  03-Mar-2007  bouyer Pull up following revision(s) (requested by tsutsui in ticket #1673):
distrib/sets/lists/man/mi 1.844, 1.871
share/man/man4/Makefile 1.372, 1.379 via patch
share/man/man4/re.4 1.8, 1.9, 1.11, 1.12
share/man/man4/rgephy.4 1.1
share/man/man4/rlphy.4 1.1, 1.2
sys/arch/amd64/conf/GENERIC 1.79, 1.89
sys/arch/amd64/conf/INSTALL 1.45, 1.49
sys/arch/i386/conf/GENERIC 1.717, 1.747
sys/arch/i386/conf/GENERIC_LAPTOP 1.164
sys/arch/i386/conf/INSTALL 1.277, 1.283
sys/arch/i386/conf/INSTALL_LAPTOP 1.96, 1.98
sys/arch/i386/conf/XEN2_DOM0 1.22 via patch
sys/arch/macppc/conf/GENERIC 1.220, 1.246
sys/arch/macppc/conf/INSTALL 1.96, 1.100
sys/dev/cardbus/if_re_cardbus.c 1.10
sys/dev/cardbus/if_rtk_cardbus.c 1.29-1.31
sys/dev/ic/rtl8169.c 1.14, 1.20, 1.24, 1.25, 1.28-1.61, 1.63, 1.64-1.81 via patch
sys/dev/ic/rtl81x9.c 1.52, 1.54-1.63, 1.65, 1.67-1.70
sys/dev/ic/rtl81x9reg.h 1.15-1.26
sys/dev/ic/rtl81x9var.h 1.19, 1.21-1.37
sys/dev/mii/files.mii 1.38
sys/dev/mii/miidevs 1.62, 1.64
sys/dev/mii/rgephy.c 1.10, 1.13-1.16
sys/dev/mii/rlphy.c 1.1, 1.6, 1.7, 1.11 via patch
sys/dev/pci/if_re_pci.c 1.13, 1.15-1.17, 1.19-1.23
sys/dev/pci/if_rtk_pci.c 1.25, 1.28, 1.29, 1.31
sys/dev/pci/pcidevs 1.851, 1.852

on re(4):
- improve stability (I believe ;-)
- add a workaround for hardware ip4csum-tx bug
- support newer chips (8169SB/SC, PCIe based 8168 etc.)
- fix 8139C+ support
- enable hardware VLAN
- misc bus_dma(9) fix (which makes re(4) work on mips ports)

on rtk(4):
- fix kern/31348
- fix possible panic on dreamcast
 1.22.4.1  17-Mar-2006  tron Pull up following revision(s) (requested by he in ticket #1203):
sys/dev/pci/if_rtk_pci.c: revision 1.24
Add recognition of Nortel Baystack 21 as an rtk8139 variant.
Rest of information submitted in PR#33044.
 1.23.10.1  19-Apr-2006  elad sync with head.
 1.23.8.2  03-Sep-2006  yamt sync with head.
 1.23.8.1  13-Mar-2006  yamt sync with head.
 1.23.6.1  22-Apr-2006  simonb Sync with head.
 1.23.4.1  09-Sep-2006  rpaulo sync with head
 1.25.4.2  10-Dec-2006  yamt sync with head.
 1.25.4.1  22-Oct-2006  yamt sync with head
 1.25.2.1  18-Nov-2006  ad Sync with head.
 1.30.6.1  03-Jun-2007  wrstuden Catch up with now-somewhat-dated netbsd-4. These changes took longer
than expected for me to actually get around to merging.
 1.30.4.2  24-Mar-2007  yamt sync with head.
 1.30.4.1  27-Feb-2007  yamt - sync with head.
- move sched_changepri back to kern_synch.c as it doesn't know PPQ anymore.
 1.30.2.1  16-May-2007  jdc Pull up revision 1.32 (requested by tsutsui in ticket #640).

Cleanup handling of quikrs on each RealTek chip:
- replace rtk_type member in rtk_softc which has chip types
with new rtk_quirk that represents quirks on each chip:
- RTKQ_8129 doesn't have internal MII (used in rtk(4))
- RTKQ_8139CPLUS has different register layout (for re(4))
- RTKQ_8169NONS (original 8169) requires some settings on init
- RTKQ_PCIE requires different settings in setmulti
so that we don't have to check each hwrev values or types everywhere
and newer variants will also work without changes if they don't
have other quirks
(sc_rev is unchenged for now for reference to the Realtek's driver)
- don't check hwrev register in re_pci_match() but check
only PCI_VENDER(), PCI_PRODUCT() and PCI_REVISION()
so that we no longer have to map pci space there
- add a new HWREV value for another 8168 variant
- try to map PCI mem space more properly
- remove (probably unneeded) ifp->if_baudrate initialization

Tested on a newer 8168 variant by Dennis den Brok on tech-kern,
and also tested on 8139 and 8169C on macppc, and 8139C+ on landisk
by me.
 1.31.8.1  29-Mar-2007  reinoud Pullup to -current
 1.31.6.1  11-Jul-2007  mjf Sync with head.
 1.31.4.2  23-Oct-2007  ad Sync with head.
 1.31.4.1  10-Apr-2007  ad Sync with head.
 1.32.14.2  13-Nov-2007  bouyer Sync with HEAD
 1.32.14.1  25-Oct-2007  bouyer Sync with HEAD.
 1.32.10.2  09-Jan-2008  matt sync with HEAD
 1.32.10.1  06-Nov-2007  matt sync with HEAD
 1.32.8.6  08-Dec-2007  jmcneill Rename pnp(9) -> pmf(9), as requested by many.
 1.32.8.5  06-Nov-2007  joerg Sync with HEAD.
 1.32.8.4  06-Nov-2007  joerg Refactor PNP API:
- Make suspend/resume directly a device functionality. It consists of
three layers (class logic, device logic, bus logic), all of them being
optional. This replaces D0/D3 transitions.
- device_is_active returns true if the device was not disabled and was
not suspended (even partially), device_is_enabled returns true if the
device was enabled.
- Change pnp_global_transition into pnp_system_suspend and
pnp_system_resume. Before running any suspend/resume handlers, check
that all currently attached devices support power management and bail
out otherwise. The latter is not done for the shutdown/panic case.
- Make the former bus-specific generic network handlers a class handler.
- Make PNP message like volume up/down/toogle PNP events. Each device
can register what events they are interested in and whether the handler
should be global or not.
- Introduce device_active API for devices to mark themselve in use from
either the system or the device. Use this to implement the idle handling
for audio and input devices. This is intended to replace most ad-hoc
watchdogs as well.
- Fix somes situations in which audio resume would lose mixer settings.
- Make USB host controllers better deal with suspend in the light of
shared interrupts.
- Flush filesystem cache on suspend.
- Flush disk caches on suspend. Put ATA disks into standby on suspend as
well.
- Adopt drivers to use the new PNP API.
- Fix a critical bug in the generic cardbus layer that made D0->D3
break.
- Fix ral(4) to set if_stop.
- Convert cbb(4) to the new PNP API.
- Apply the PCI Express SCI fix on resume again.
 1.32.8.3  26-Oct-2007  joerg Sync with HEAD.

Follow the merge of pmap.c on i386 and amd64 and move
pmap_init_tmp_pgtbl into arch/x86/x86/pmap.c. Modify the ACPI wakeup
code to restore CR4 before jumping back into kernel space as the large
page option might cover that.
 1.32.8.2  05-Oct-2007  joerg Remove the power management nonsense in the PCI versions of
rtk(4) and re(4). It is not really likely to work anyway.
Use PNP power management for the cardbus attachment as well and
remove the power management handlers from the chipset code.
 1.32.8.1  05-Oct-2007  joerg Convert rtk/pci to PNP power management.
 1.33.2.2  27-Dec-2007  mjf Sync with HEAD.
 1.33.2.1  19-Nov-2007  mjf Sync with HEAD.
 1.34.4.1  11-Dec-2007  yamt sync with head.
 1.34.2.1  26-Dec-2007  ad Sync with head.
 1.35.12.1  18-May-2008  yamt sync with head.
 1.35.10.2  28-Sep-2008  mjf Sync with HEAD.
 1.35.10.1  02-Jun-2008  mjf Sync with HEAD.
 1.36.8.1  19-Oct-2008  haad Sync with HEAD.
 1.36.4.1  18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.36.2.5  11-Aug-2010  yamt sync with head.
 1.36.2.4  11-Mar-2010  yamt sync with head
 1.36.2.3  16-Sep-2009  yamt sync with head
 1.36.2.2  16-May-2009  yamt sync with head
 1.36.2.1  04-May-2009  yamt sync with head.
 1.37.8.1  13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.40.4.1  05-Mar-2011  rmind sync with head
 1.40.2.2  06-Nov-2010  uebayasi Sync with HEAD.
 1.40.2.1  17-Aug-2010  uebayasi Sync with HEAD.
 1.42.12.1  18-Feb-2012  mrg merge to -current.
 1.42.8.2  22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.42.8.1  17-Apr-2012  yamt sync with head
 1.43.6.3  03-Dec-2017  jdolecek update from HEAD
 1.43.6.2  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.43.6.1  23-Jun-2013  tls resync from head
 1.44.4.1  18-May-2014  rmind sync with head
 1.45.6.1  06-Jun-2015  skrll Sync with HEAD
 1.46.18.1  10-Jun-2019  christos Sync with HEAD
 1.46.16.1  26-Dec-2018  pgoyette Sync with HEAD, resolve a few conflicts

RSS XML Feed