Add tg3 driver support for Broadcom 5725 (NIC)

Bug #1178899 reported by David Duffey on 2013-05-11
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
The Open Compute Project
Critical
David Duffey
linux (Ubuntu)
Undecided
Unassigned
Raring
Medium
Stefan Bader

Bug Description

SRU Justification:

Impact: The current tg3 driver in 12.04 does not support this new NIC. To have installer support in the next point release (12.04.3) we need to backport some patches which were added after 3.8 into Raring.

Fix: Backport/cherry-pick of a set of 5 patches. The first one adds basic infrastructure but was not enough to enable the NIC. Number two would do that. The remaining three patches are very small bug fixes which seemed to be related to enabling the new hardware.

Testcase: Boot Raring kernel on OCP v3 hardware. The current driver will not support the network card. With those patches applied it was working.

---

The AMD OCP v3 "Roadrunner" uses the broadcom (bcm) 5725 netextreme card. 12.04 LTS does not recognize the card (in the PCI ID list or the tg3 kernel module). The PCI ID is 14e4:1643.

My next plan is to try newer point relese, iterim release, and daily build.

I've not check kernel.org to see if this PCI ID is in the tg3 driver.
---
AlsaVersion: Advanced Linux Sound Architecture Driver Version k3.8.0-23-generic.
AplayDevices:
 **** List of PLAYBACK Hardware Devices ****
 card 0: Generic [HD-Audio Generic], device 3: HDMI 0 [HDMI 0]
   Subdevices: 1/1
   Subdevice #0: subdevice #0
ApportVersion: 2.0.1-0ubuntu17.3
Architecture: amd64
ArecordDevices: **** List of CAPTURE Hardware Devices ****
AudioDevicesInUse:
 USER PID ACCESS COMMAND
 /dev/snd/controlC0: dduffey 2593 F.... pulseaudio
CRDA: Error: [Errno 2] No such file or directory
Card0.Amixer.info:
 Card hw:0 'Generic'/'HD-Audio Generic at 0xff440000 irq 108'
   Mixer name : 'ATI R6xx HDMI'
   Components : 'HDA:1002aa01,00aa0100,00100200'
   Controls : 8
   Simple ctrls : 2
DistroRelease: Ubuntu 12.04
HibernationDevice: RESUME=UUID=d756e4f6-3e85-4b70-b6cb-6e870a559113
InstallationMedia: Ubuntu 12.04 LTS "Precise Pangolin" - Release amd64 (20120425)
IwConfig:
 eth10 no wireless extensions.

 lo no wireless extensions.
MachineType: empty empty
MarkForUpload: True
Package: linux (not installed)
ProcEnviron:
 TERM=xterm
 PATH=(custom, no user)
 LANG=en_US.UTF-8
 SHELL=/bin/bash
ProcFB: 0 radeondrmfb
ProcKernelCmdLine: BOOT_IMAGE=/boot/vmlinuz-3.8.0-23-generic root=UUID=1f94973e-6e09-4aa3-825c-cf936384e25b ro quiet splash vt.handoff=7
ProcVersionSignature: Ubuntu 3.8.0-23.34+lp1178899v1-generic 3.8.11
PulseList: Error: command ['pacmd', 'list'] failed with exit code 1: No PulseAudio daemon running, or not running as session daemon.
RelatedPackageVersions:
 linux-restricted-modules-3.8.0-23-generic N/A
 linux-backports-modules-3.8.0-23-generic N/A
 linux-firmware 1.79.4
RfKill:

Tags: precise
Uname: Linux 3.8.0-23-generic x86_64
UpgradeStatus: No upgrade log present (probably fresh install)
UserGroups:

dmi.bios.date: 03/04/2013
dmi.bios.vendor: American Megatrends Inc.
dmi.bios.version: 4.6.5
dmi.board.asset.tag: To be filled by O.E.M.
dmi.board.name: S8237
dmi.board.vendor: TYAN
dmi.board.version: empty
dmi.chassis.asset.tag: empty
dmi.chassis.type: 28
dmi.chassis.vendor: empty
dmi.chassis.version: empty
dmi.modalias: dmi:bvnAmericanMegatrendsInc.:bvr4.6.5:bd03/04/2013:svnempty:pnempty:pvrempty:rvnTYAN:rnS8237:rvrempty:cvnempty:ct28:cvrempty:
dmi.product.name: empty
dmi.product.version: empty
dmi.sys.vendor: empty

CVE References

David Duffey (dduffey) wrote :

This device DOES show up w/ Saucey daily build, so will test 12.04.2 next.

David Duffey (dduffey) on 2013-05-21
Changed in opencompute:
importance: Undecided → Critical
David Duffey (dduffey) wrote :

I've tested with 12.04.2 and 13.04 and this component is not recognized as a NIC (eth0). I changed the status to critical since it is a cert blocker.

Saucey does work, and the kernel module is "tg3".

Related to this same component is the ipmi/bmc on this bcm5725: https://bugs.launchpad.net/opencompute/+bug/1179774.

David Duffey (dduffey) on 2013-05-21
tags: added: ocp-roadrunner

This bug is missing log files that will aid in diagnosing the problem. From a terminal window please run:

apport-collect 1178899

and then change the status of the bug to 'Confirmed'.

If, due to the nature of the issue you have encountered, you are unable to run this command, please add a comment stating that fact and change the bug status to 'Confirmed'.

This change has been made by an automated script, maintained by the Ubuntu Kernel Team.

Changed in linux (Ubuntu):
status: New → Incomplete
Changed in linux (Ubuntu Raring):
status: New → Incomplete

Marking actively developed Saucy task Fix Released it appears the following commit to enable support was included as of v3.9-rc1:

commit c65a17f4f51231f175336048b49b85da7c24fb6c
Author: Michael Chan <email address hidden>
Date: Sun Jan 6 12:51:07 2013 +0000

    tg3: Add support for new 5762 ASIC

Changed in linux (Ubuntu):
status: Incomplete → Fix Released

Hi David,

When you have a moment, could you test the following Raring kernel I built which includes the commit I noted in comment #4. I also provided the headers package in case you need them. Anyways, please test and let us know your results (be sure to install both the linux-image and linux-image-extra packages). Assuming positive test results, we can make sure this is propagated back via the Raring HWE kernel in Precise. Thanks.

http://people.canonical.com/~ogasawara/lp1178899/

David Duffey (dduffey) wrote :

I Leann, I tried the 3.8 kernel you provided. Unfortunately it does not make the tg3 driver aware of the NIC (and nothing shows up w/ ifconfig -a).

BUT this kernel DOES make the impi_si model work ( https://bugs.launchpad.net/opencompute/+bug/1179774 ). Not really relevant here I guess.

apport information

tags: added: apport-collected precise
description: updated

apport information

apport information

apport information

apport information

apport information

apport information

apport information

apport information

apport information

apport information

apport information

apport information

apport information

apport information

The apport information is when running the kernel from comment #5. That kernel makes the ipmi_si module work, but the tg3 NIC driver does not work (does not show up as a nic device).

Be aware, in order to get the machine on the network I added a PCI NIC card that shows up as eth10 (a realtek card), but it is not normally found in this machine and not part of this bug report. This bug is about the tg3 driver.

summary: - Add support for Broadcom 5725
+ Add tg3 driver support for Broadcom 5725 (NIC)
David Duffey (dduffey) on 2013-06-26
Changed in linux (Ubuntu Raring):
status: Incomplete → New
Stefan Bader (smb) on 2013-07-03
Changed in linux (Ubuntu Raring):
assignee: nobody → Stefan Bader (stefan-bader-canonical)
importance: Undecided → Medium
status: New → In Progress
Stefan Bader (smb) wrote :

Since (1) was not enough, lets try with that set:

1. 6fe3c3cceaa2413eb9d7e07ea34358c7be6a7c1e tg3: Add support for new 5762 ASIC
2. 90b73b621b9a91c72cc331948b7fb598fe4e9495 tg3: Add NVRAM support for 5762
3. 17e1a42f2e377ec5809af79eb651d9ed5958fb97 tg3: missing break statement in tg3_get_5720_nvram_info()
4. c5d0b72e641340c5dc915cdfab5e2c55d81425c2 tg3: Fix 5762 NVRAM sizing
5. 0f0d15100a8ac875bdd408324c473e16d73d3557 tg3: Fix data corruption on 5725 with TSO

Maybe (3) and (4) are not strictly required but since (2) (and (1) too) handle the 5725 and the 5762 in the same context, I thought it would be good to pull those obvious fixes, too. And (5) would be coming through stable if 5725/5762 would have been in 3.8.

The test kernel can be found at: http://people.canonical.com/~smb/lp1178899/

David Duffey (dduffey) wrote :

kernel from #23 works w/ tg3! I also tested ipmi just to make sure it works.

Will this fix make it into the 12.04.3 LTS point release?

The only things to note, but don't hold up this bug from closing, is

1) The NIC shows up as eth11, but I suspect this could be due to this not being a stock image (using an addon card in the past), etc... but it still works

2) The first time I tested ipmi and reboot the BIOS stopped and said "The BMC is not responding, press <ESC> to continue"... but doing the exercise again didn't cause that to happen.

But let's not have that hold up this enablement fix... I'll do more testing sometime and open new bugs if there are other issues.

Thanks!

Stefan Bader (smb) on 2013-07-03
description: updated
Stefan Bader (smb) wrote :

I just submitted for SRU and should get into the next SRU cycle which hopefully will make it into 12.04.3. You will get another request for testing the proposed official kernel and then the bug would auto-close as soon as that gets released. I won't fiddle there manually. ;)

1) That may be an effect of using the same image and that having used up the other eth numbers for other MAC addresses in /etc/udev/rules.d/70-persistent-net (or so).

2) Sounds a bit odd but yes it should not prevent us from progressing. As long as basic network works the machine can at least be installed. Oddities could be fixed up later. And maybe it was just random. Does the hardware have a separate management port or is that shared with the tg3?

The BMC physical port is shared with the tg3 (5725).

David

--
David Duffey, Server Partner Programme Manager
+1-512-850-6776 (work), +1-512-287-4289 (work fax)

Brad Figg (brad-figg) wrote :

This bug is awaiting verification that the kernel in -proposed solves the problem. Please test the kernel and update this bug with the results. If the problem is solved, change the tag 'verification-needed' to 'verification-done'.

If verification is not done by one week from today, this fix will be dropped from the source code, and this bug will be closed.

See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Thank you!

tags: added: verification-needed-raring
David Duffey (dduffey) wrote :

I did a fresh install but add an add on nic in order to get the proposed (27-40). Once the proposed kernel was installed the tg3 driver worked fine.

Two gotchas the add on card showed up as "p3p1" device name, and the tg3 nic "p7p1"...

I was expecting this kernel to fix https://bugs.launchpad.net/opencompute/+bug/1179774 as well... but it is still broken in raring-proposed.

I'm going to change this bug to certification-done, as it does fix the tg3 driver.

tags: added: verification-done-raring
removed: verification-needed-raring
Launchpad Janitor (janitor) wrote :
Download full text (15.4 KiB)

This bug was fixed in the package linux - 3.8.0-27.40

---------------
linux (3.8.0-27.40) raring; urgency=low

  [Brad Figg]

  * UBUNTU: [Config] CONFIG_ARM_ERRATA_643719=y

linux (3.8.0-27.39) raring; urgency=low

  [Brad Figg]

  * Release Tracking Bug
    - LP: #1199128

  [ Brad Figg ]

  * [Config] CONFIG_ATH9K_LEGACY_RATE_CONTROL=y

  [ Seth Forshee ]

  * SAUCE: Work around broken ACPI backlight on ThinkPad T430
    - LP: #1183856

  [ Stefan Bader ]

  * (d-i) Add dm-snapshot to md-modules
    - LP: #1191726

  [ Tim Gardner ]

  * [Config] CONFIG_SUNRPC_DEBUG=y
    - LP: #1127319

  [ Upstream Kernel Changes ]

  * Revert "ath9k_hw: Update rx gain initval to improve rx sensitivity"
    - LP: #1193126
  * Revert "serial: 8250_pci: add support for another kind of NetMos
    Technology PCI 9835 Multi-I/O Controller"
    - LP: #1190967
  * mac80211: close AP_VLAN interfaces before unregistering all
    - LP: #1193126
  * ath9k: use correct OTP register offsets for AR9550
    - LP: #1193126
  * regulator: palmas: Fix "enable_reg" to point to the correct reg for
    SMPS10
    - LP: #1193126
  * net: can: kvaser_usb: fix reception on "USBcan Pro" and "USBcan R" type
    hardware.
    - LP: #1193126
  * tg3: Add read dma workaround for 5720
    - LP: #1193126
  * xhci-mem: init list heads at the beginning of init
    - LP: #1193126
  * xhci: fix list access before init
    - LP: #1193126
  * xhci - correct comp_mode_recovery_timer on return from hibernate
    - LP: #1193126
  * xhci: Disable D3cold for buggy TI redrivers.
    - LP: #1193126
  * usb: dwc3: pci: PHY should be deleted later than dwc3 core
    - LP: #1193126
  * usb: dwc3: gadget: free trb pool only from epnum 2
    - LP: #1193126
  * usb: musb: make use_sg flag URB specific
    - LP: #1193126
  * USB: revert periodic scheduling bugfix
    - LP: #1193126
  * USB: serial: fix Treo/Kyocera interrrupt-in urb context
    - LP: #1193126
  * USB: visor: fix initialisation of Treo/Kyocera devices
    - LP: #1193126
  * USB: mos7720: fix DMA to stack
    - LP: #1193126
  * USB: mos7840: fix DMA to stack
    - LP: #1193126
  * USB: ark3116: fix control-message timeout
    - LP: #1193126
  * USB: iuu_phoenix: fix bulk-message timeout
    - LP: #1193126
  * USB: mos7720: fix message timeouts
    - LP: #1193126
  * USB: zte_ev: fix control-message timeouts
    - LP: #1193126
  * USB: Serial: cypress_M8: Enable FRWD Dongle hidcom device
    - LP: #1193126
  * USB: serial: Add Option GTM681W to qcserial device table.
    - LP: #1193126
  * USB: zte_ev: fix broken open
    - LP: #1193126
  * USB: keyspan: fix bogus array index
    - LP: #1193126
  * USB: mos7720: fix hardware flow control
    - LP: #1193126
  * x86/PCI: Map PCI setup data with ioremap() so it can be in highmem
    - LP: #1193126
  * USB: whiteheat: fix broken port configuration
    - LP: #1193126
  * USB: option: blacklist network interface on Huawei E1820
    - LP: #1193126
  * USB: option,zte_ev: move most ZTE CDMA devices to zte_ev
    - LP: #1193126
  * ecryptfs: fixed msync to flush data
    - LP: #1193126
  * dmaengine: ste_dma40: fix pm runtime ref counting
    - LP: #1193126
  * cifs: fix off-by-one bug in build_unc...

Changed in linux (Ubuntu Raring):
status: In Progress → Fix Released
David Duffey (dduffey) on 2013-08-08
Changed in opencompute:
assignee: nobody → David Duffey (david-duffey)
David Duffey (dduffey) on 2013-10-10
Changed in opencompute:
status: New → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers