On Wed, Jun 22, 2011 at 09:54:07AM +0000, Thomas Gerlach wrote: > For me it works as well. :) > > Just two more little flaws: > > 1) If you configure WOL inside /etc/hostname.<if>, then you get the following > error message during booting: > > "xl0: command never completed!" > "xl0: transmission error: ff" > > and you're not able to login. the problem is: > "xl_init" is called first, which makes a call to "xl_stop". and "xl_stop" > calls > "xl_pci_power", which tries to bring the IF into D3 powerstate. more > precisely, > the "pci_conf_write" routine is not able to set the XL_PSTATE_D3 bit (however, > it can set the XL_PME_ENABLE bit. i checked by setting just one of them.) > > the initial disable mechanism of "xl_attach" doesn't work, since "xl_init" is > called _before_ "xl_attach".
Can you please clarify with which code exactly you're seeing this problem? What are you running? Does it happens with the if_xl_pci.c hunk of my proposed diff, or without it? Or does it always happen even in plain -current? > 2) it would be nice if we push the wol setting stuff inside ONE routine, > rather > than spreading it over several ones (that is, all the CSR_WRITE stuff together > into "xl_pci_power". > > i'm currently working on it...but maybe, stefan might be faster than me again > (if he wants to...). ;) This doesn't sound like a good idea. The PCI-specific layer of XL and the low-level layer in ic/ have to cooperate. Else you'd have to call PCI-specific routines from the code in ic/ which harms use of this driver with other buses.