Opened 10 years ago

Closed 8 years ago

#11963 closed enhancement (fixed)

ipro1000 wapper recognizes fewer PCI IDs than are supported

Reported by: Eschaton Owned by: nobody
Priority: normal Milestone: Unscheduled
Component: Drivers/Network/ipro1000 Version: R1/Development
Keywords: Cc:
Blocked By: Blocking:
Platform: All

Description

The ipro1000 driver wrapper driver.c only recgonizes a small subset of the PCI IDs that are listed as supported by the underlying FreeBSD driver (the list in e1000_hw.h ) and also doesn't provide an "escape hatch" based on a setting in the driver config file.

It'd be good if the ipro1000 driver could provide an escape hatch mechanism via its config file, so testing the driver with a new card didn't require rebuilding it. It'd also be great if it listed support for all of the devices in e1000_hw.h of course.

(My ulterior motive here is to get networking up & running on my Asus Z97-PRO, which has an Intel I218-V, which should be supported by this driver.)

Attachments (1)

0001-11963-Add-missing-PCI-IDs-to-ipro1000.patch (14.0 KB ) - added by Mictlantecuhtli 8 years ago.

Download all attachments as: .zip

Change History (8)

comment:1 by Eschaton, 10 years ago

I managed to get this working with my motherboard! Unfortunately, I'd have to jump through a bunch of hoops and red tape to share a patch. However I can give a general rundown of what modifications need to be made, they were very simple and mostly just ensuring (1) that the driver.c glue knew the PCI IDs it should cover and (2) that the existing e1000 code was updated to cover the latest PCI IDs. I gleaned them from looking at the FreeBSD 9 and 10 code.

Conceivably the list in driver.c should be updated to cover the entire list of device IDs in e1000_hw.h (maybe in an automated fashion) but this wouldn't have helped my situation, since my chipset actually needed to have an entry added to that too.

Anyway, here are the changes needed. With just the below, as soon as I installed a homebuilt driver, my network went active and WebPositive worked.

dev/e1000/e1000_hw.h: Add entries to the list of #define constants for E1000_DEV_ID_PCH_I218_{LM2,V2,LM3,V3} which have consecutive PCI IDs starting with 0x15A0.

dev/e1000/e1000_api.c: Add entries to the switch in e1000_set_mac_type() for E1000_DEV_ID_PCH_I118_{LM2,V2,LM3,V3} to do the same thing as the entries for E1000_DEV_ID_PCH_LPTLP_I218_V.

dev/e1000/e1000_ich8lan.c: Add entries for only E1000_DEV_ID_PCH_I218_{LM3,V3} to the places that reference E1000_DEV_ID_PCH_LPTLP_I218_V.

dev/e1000/if_em.c: Add entries to the big array of devices for the constants added to e1000_hw.h.

driver.c: Add entries to identify_device() to also handle the various I218 PCI IDs.

comment:2 by modeenf, 10 years ago

I don't know If changing under dev/e1000 are wise these are made more or less direct from FreeBSD if I remember it correct. Thats How Wlan does it any way :)

Version 0, edited 10 years ago by modeenf (next)

comment:3 by pulkomandy, 10 years ago

We can't update to FreeBSD 10 easily because the compatibility wrapper needs to be updated too (and all drivers at the same time). The good news is Ithamar is working on that.

We can however merge the new IDs from latest 9.x release if we don't have those yet, and adding a few more IDs is ok until the migration to 10 is done.

comment:4 by ithamar, 10 years ago

Just to make things clear, I did not commit to doing that at all yet, I've just been discussing how to go about it on the list ;) It is on my TODO list though...

in reply to:  4 comment:5 by korli, 10 years ago

Replying to ithamar:

Just to make things clear, I did not commit to doing that at all yet, I've just been discussing how to go about it on the list ;) It is on my TODO list though...

I can handle the ethernet drivers update next week as a first step.

comment:6 by Mictlantecuhtli, 8 years ago

patch: 01

comment:7 by pulkomandy, 8 years ago

Resolution: fixed
Status: newclosed

Applied in hrev50813. Thanks!

Note: See TracTickets for help on using tickets.