From owner-freebsd-net@FreeBSD.ORG Mon Jun 3 04:04:31 2013 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 821) id 5CE50B1E; Mon, 3 Jun 2013 04:04:31 +0000 (UTC) Date: Mon, 3 Jun 2013 04:04:31 +0000 From: John To: freebsd-net Subject: Re: 9-STABLE: Chelsio t4nex0: failed to pre-process config file: 2. Message-ID: <20130603040431.GA75631@FreeBSD.org> References: <20130603012206.GA46126@FreeBSD.org> <51ABFCDF.8040308@mu.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <51ABFCDF.8040308@mu.org> User-Agent: Mutt/1.5.21 (2010-09-15) Cc: Alfred Perlstein X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 03 Jun 2013 04:04:31 -0000 ----- Alfred Perlstein's Original Message ----- > This looks like the result of forgetting to include the actual > firmware in the kernel config and/or the firmware device itself. > > Can you check if you've included all the needed extra modules in the > kernel config such as firmware(4) and the module for the card > firmware itself? Thank you for the hint. I tracked down t4fw_cfg via the Makefile in the modules area. However, I'm not actually sure how it works at this point. When I kldload if_cxgbe and check for t4fw_cfg it does not appear to be loaded (kldstat -v | grep t4). Moving on, adding t4fw_cfg_load to loader.conf we end up with: Id Refs Address Size Name 1 17 0xffffffff80200000 15652a8 kernel 2 1 0xffffffff81766000 4820 coretemp.ko 3 1 0xffffffff8176b000 797b0 t4fw_cfg.ko 4 1 0xffffffff817e5000 45b38 if_cxgbe.ko 5 1 0xffffffff8182b000 11b78 ipmi.ko 6 2 0xffffffff8183d000 2a30 smbus.ko and everything seems to work. I think this is worth a patch to the man page at least: --- cxgbe.4.orig 2012-09-13 08:57:44.000000000 -0400 +++ cxgbe.4 2012-09-13 08:59:43.000000000 -0400 @@ -46,9 +46,10 @@ .Ed .Pp To load the driver as a -module at boot time, place the following line in +module at boot time, place the following lines in .Xr loader.conf 5 : .Bd -literal -offset indent +t4fw_cfg_load="YES" if_cxgbe_load="YES" .Ed .Sh DESCRIPTION Thoughts? Cheers, John > A trick you can use is to run "kldstat" after loading the module, > you'll see which additional modules were needed for the device to > work. Unfortunately the kernel can't autoload those modules while > booting. > > I'm not sure if loader(8) picks up the deps either. > > -Alfred > > > On 6/2/13 6:22 PM, John wrote: > >Hi Folks, > > > > I have a pair of Chelsio T4 cards installed in a new HP DL380 > >system. The driver does not load at boot time, failing with the > >message: > > > >t4nex0: failed to pre-process config file: 2. > > > > After the system has finished booting, if I then issue a > >'kldload if_cxgbe' command, the driver loads correctly. Note, > >the driver loads correctly from the command prompt with or > >without the if_cxgbe_load in /boot/loader.conf. > > > > The message is coming from t4_main.c:partition_resources(). > >I don't see anything obvious that would cause this: > > > > rc = cfg ? upload_config_file(sc, cfg, &mtype, &maddr) : ENOENT; > > if (rc != 0) { > > mtype = FW_MEMTYPE_CF_FLASH; > > maddr = t4_flash_cfg_addr(sc); > > } > > bzero(&caps, sizeof(caps)); > > caps.op_to_write = htobe32(V_FW_CMD_OP(FW_CAPS_CONFIG_CMD) | > > F_FW_CMD_REQUEST | F_FW_CMD_READ); > > caps.cfvalid_to_len16 = htobe32(F_FW_CAPS_CONFIG_CMD_CFVALID | > > V_FW_CAPS_CONFIG_CMD_MEMTYPE_CF(mtype) | > > V_FW_CAPS_CONFIG_CMD_MEMADDR64K_CF(maddr >> 16) | FW_LEN16(caps)); > > rc = -t4_wr_mbox(sc, sc->mbox, &caps, sizeof(caps), &caps); > > if (rc != 0) { > > device_printf(sc->dev, > > "failed to pre-process config file: %d.\n", rc); > > return (rc); > > } > > > > Has anyone run into this? > > > >Thanks, > >John > > > >ps: And the output from loading the driver module by hand: > > > >t4nex0: mem 0xf7cc0000-0xf7cfffff,0xf7000000-0xf77fffff,0xf6ff0000-0xf6ff1fff irq 26 at device 0.4 on pci7 > >t4nex0: installing firmware 1.8.4.0 on card. > >cxgbe0: on t4nex0 > >cxgbe0: Ethernet address: 00:07:43:11:e9:00 > >cxgbe0: 16 txq, 8 rxq > >cxgbe1: on t4nex0 > >cxgbe1: Ethernet address: 00:07:43:11:e9:08 > >cxgbe1: 16 txq, 8 rxq > >cxgbe2: on t4nex0 > >cxgbe2: Ethernet address: 00:07:43:11:e9:10 > >cxgbe2: 16 txq, 8 rxq > >cxgbe3: on t4nex0 > >cxgbe3: Ethernet address: 00:07:43:11:e9:18 > >cxgbe3: 16 txq, 8 rxq > >t4nex0: PCIe x8, 4 ports, 34 MSI-X interrupts, 101 eq, 33 iq > >t4nex1: mem 0xfbcc0000-0xfbcfffff,0xfb000000-0xfb7fffff,0xfaff0000-0xfaff1fff irq 58 at device 0.4 on pci36 > >t4nex1: installing firmware 1.8.4.0 on card. > >cxgbe4: on t4nex1 > >cxgbe4: Ethernet address: 00:07:43:11:e6:a0 > >cxgbe4: 16 txq, 8 rxq > >cxgbe5: on t4nex1 > >cxgbe5: Ethernet address: 00:07:43:11:e6:a8 > >cxgbe5: 16 txq, 8 rxq > >cxgbe6: on t4nex1 > >cxgbe6: Ethernet address: 00:07:43:11:e6:b0 > >cxgbe6: 16 txq, 8 rxq > >cxgbe7: on t4nex1 > >cxgbe7: Ethernet address: 00:07:43:11:e6:b8 > >cxgbe7: 16 txq, 8 rxq > >t4nex1: PCIe x8, 4 ports, 34 MSI-X interrupts, 101 eq, 33 iq > > > > > > > > > >_______________________________________________ > >freebsd-net@freebsd.org mailing list > >http://lists.freebsd.org/mailman/listinfo/freebsd-net > >To unsubscribe, send any mail to "freebsd-net-unsubscribe@freebsd.org" > > >