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.

Reply via email to