[ipxe-devel] [PATCH 0/2] Fill in iBFT VLAN field

Michael Brown mcb30 at ipxe.org
Fri Mar 1 16:44:46 UTC 2013


On 01/03/13 15:32, Stefan Hajnoczi wrote:
> iSCSI booting does not work VLANs because the iBFT VLAN field is not
> being filled in.  Without the 802.1Q VLAN Identifier from the iBFT, the
> operating system cannot connect to the iSCSI target.

Applied, with some modifications, thanks!

   http://git.ipxe.org/ipxe.git/commitdiff/7426177
   http://git.ipxe.org/ipxe.git/commitdiff/7d64abb

Inspired by your patches, I also allowed VLAN support to be dropped from 
builds that happen to contain VLAN-using drivers (e.g. Hermon):

   http://git.ipxe.org/ipxe.git/commitdiff/77f64b1

In the process of testing these, I've noticed a problem with the build 
process.  Where the weak symbol is defined by an object other than the 
object that refers to the symbol, then it's undefined whether the linker 
will pull in the weak-symbol version or the strong-symbol version.  To 
ensure that the weak-symbol version is used as desired, it would be 
necessary to force the weak-symbol-defining object to be earlier in the 
link order than any objects referring to that symbol.

This is particularly problematic for symbols referred to by drivers. 
For example, hermon.o refers to vlan_find().  Since the driver's object 
is the first object dragged in by the build process, there is no 
opportunity for the weak version (in netdevice.o) to be defined before 
hermon.o refers to it.

I'm still thinking of a neat way to solve this problem.

Michael



More information about the ipxe-devel mailing list