Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 15 Jan 2009 15:35:09 +0300
From:      Eygene Ryabinkin <rea-fbsd@codelabs.ru>
To:        Yony Yossef <yonyossef.lists@gmail.com>
Cc:        Liran Liss <liranl@mellanox.co.il>, freebsd-net@freebsd.org, Oleg Kats <oleg@mellanox.co.il>, "'H.fazaeli'" <fazaeli@sepehrs.com>, 'Julian Elischer' <julian@elischer.org>, Eitan Shefi <eitans@mellanox.co.il>, freebsd-questions@freebsd.org
Subject:   Re: howto determine network device unit number? device.hints?
Message-ID:  <FZO3%2BT4xiznlkvBXW7AHG/2PP3c@HEwlnNW4tuDdZ1V6ihYwW3pQ/cw>
In-Reply-To: <001701c97702$a301bd90$220f000a@mtl.com>
References:  <20def4870901140009y1f007108y92797d5f79ffac08@mail.gmail.com> <496E11B7.3010608@sepehrs.com> <000b01c9768e$745aa160$220f000a@mtl.com> <496EF30E.4010304@sepehrs.com> <000c01c976ec$87e040b0$220f000a@mtl.com> <496EF849.7040909@elischer.org> <001501c976f3$5d7a81d0$220f000a@mtl.com> <qVxVwbVAOAXlJ93LFuFQfo4p/WU@HEwlnNW4tuDdZ1V6ihYwW3pQ/cw> <001701c97702$a301bd90$220f000a@mtl.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Thu, Jan 15, 2009 at 01:15:53PM +0200, Yony Yossef wrote:
> > You're using your own driver, aren't you?  If yes, could you 
> > show your device_method_t structure and the corresponding 
> > identify, probe, attach and detach routines?  You're setting 
> > the unit numbers via 'if_initname(ifp, device_get_name(dev), 
> > device_get_unit(dev))' or alike?
> 
> My device has 2 ports, therefore my if_initname is that:
> 
> if_initname(dev, device_get_name(mdev->pdev), 
>                 port + 2 * device_get_unit(mdev->pdev));

So, you totally have four network interfaces -- two for each PCI
device?

> This is what I captured the last time it happened. 
> 
> # pciconf -l | grep mtnic
> mtnic0@pci0:19:0:0:     class=0x020000 card=0x001715b3 chip=0x636815b3
> rev=0xa0 hdr=0x00
> mtnic1@pci0:16:0:0:     class=0x020000 card=0x001715b3 chip=0x636815b3
> rev=0xa0 hdr=0x00
> 
> # kldunload if_mtnic
> # kldload if_mtnic
> 
> # pciconf -l | grep mtnic
> mtnic1@pci0:19:0:0:     class=0x020000 card=0x001715b3 chip=0x636815b3
> rev=0xa0 hdr=0x00
> mtnic0@pci0:16:0:0:     class=0x020000 card=0x001715b3 chip=0x636815b3
> rev=0xa0 hdr=0x00

Could you do the following:

1. Boot with verbose kernel mode (push '5' on the boot screen).
2. Kldload your module and provide the full list of kernel messages
   you will see after this action.
3. Kldunload and again, provide all messages kernel will print
   for this.
4. Kldload again and supply all messages for the last time.

This will show the PCI enumeration sequence and probe order for your
driver pci device units.  This might shed some light on the problem.

Thanks.
-- 
Eygene
 _                ___       _.--.   #
 \`.|\..----...-'`   `-._.-'_.-'`   #  Remember that it is hard
 /  ' `         ,       __.--'      #  to read the on-line manual
 )/' _/     \   `-_,   /            #  while single-stepping the kernel.
 `-'" `"\_  ,_.-;_.-\_ ',  fsc/as   #
     _.-'_./   {_.'   ; /           #    -- FreeBSD Developers handbook
    {_.-``-'         {_/            #



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?FZO3%2BT4xiznlkvBXW7AHG/2PP3c>