* EDD failures since edd=off patch
@ 2005-02-10 14:11 Carl-Daniel Hailfinger
2005-02-10 17:23 ` Matt Domsch
0 siblings, 1 reply; 3+ messages in thread
From: Carl-Daniel Hailfinger @ 2005-02-10 14:11 UTC (permalink / raw)
To: Matt Domsch; +Cc: Linux Kernel Mailing List
Hi Matt,
it seems the edd=off patch has caused some problems with
some machines I have access to. They simply don't boot
anymore unless I specify edd=foo. foo can be {off,skip,bar}
so it seems the hang on boot is related to the parser
not finding the parameter it is looking for.
I looked through the code some days ago and it seemed to
me that the register used to iterate through the command
line buffer only got its lower 16 bit reset before calling
into the BIOS. I don't have the code handy right now,
but I can look later if the hints I gave are insufficient.
Regards,
Carl-Daniel
--
http://www.hailfinger.org/
^ permalink raw reply [flat|nested] 3+ messages in thread* Re: EDD failures since edd=off patch 2005-02-10 14:11 EDD failures since edd=off patch Carl-Daniel Hailfinger @ 2005-02-10 17:23 ` Matt Domsch 2005-02-11 2:59 ` Carl-Daniel Hailfinger 0 siblings, 1 reply; 3+ messages in thread From: Matt Domsch @ 2005-02-10 17:23 UTC (permalink / raw) To: Carl-Daniel Hailfinger; +Cc: Linux Kernel Mailing List On Thu, Feb 10, 2005 at 03:11:52PM +0100, Carl-Daniel Hailfinger wrote: > Hi Matt, > > it seems the edd=off patch has caused some problems with > some machines I have access to. They simply don't boot > anymore unless I specify edd=foo. foo can be {off,skip,bar} > so it seems the hang on boot is related to the parser > not finding the parameter it is looking for. > I looked through the code some days ago and it seemed to > me that the register used to iterate through the command > line buffer only got its lower 16 bit reset before calling > into the BIOS. I don't have the code handy right now, > but I can look later if the hints I gave are insufficient. Yes, please. I'm reading the code, and %ecx gets set to (COMMAND_LINE_SIZE-7) which is 256-7=249. So the upper 24 bits of %ecx are going to always be zero, and if "edd=" isn't seen, then %ecx will be zero when dropping into edd_mbr_sig_start. The only other register touched is %esi, but it's pushed at the beginning, and pop'd on all exit cases, so that should be unchanged. ZF is the only other bit I can picture. On the "no edd= option" path, ZF=0 on exit. With "edd=of" or "edd=sk", ZF=1. But with "edd=bar", ZF=0, which you say works too. So that's not it... CF is taken care of around the int13 calls already, so that's not it... Thanks, Matt -- Matt Domsch Software Architect Dell Linux Solutions linux.dell.com & www.dell.com/linux Linux on Dell mailing lists @ http://lists.us.dell.com ^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: EDD failures since edd=off patch 2005-02-10 17:23 ` Matt Domsch @ 2005-02-11 2:59 ` Carl-Daniel Hailfinger 0 siblings, 0 replies; 3+ messages in thread From: Carl-Daniel Hailfinger @ 2005-02-11 2:59 UTC (permalink / raw) To: Matt Domsch; +Cc: Linux Kernel Mailing List Matt Domsch schrieb: > On Thu, Feb 10, 2005 at 03:11:52PM +0100, Carl-Daniel Hailfinger wrote: > >>Hi Matt, >> >>it seems the edd=off patch has caused some problems with >>some machines I have access to. They simply don't boot >>anymore unless I specify edd=foo. foo can be {off,skip,bar} >>so it seems the hang on boot is related to the parser >>not finding the parameter it is looking for. >>I looked through the code some days ago and it seemed to >>me that the register used to iterate through the command >>line buffer only got its lower 16 bit reset before calling >>into the BIOS. I don't have the code handy right now, >>but I can look later if the hints I gave are insufficient. > > > Yes, please. I'm reading the code, and %ecx gets set to > (COMMAND_LINE_SIZE-7) which is 256-7=249. So the upper 24 bits of > %ecx are going to always be zero, and if "edd=" isn't seen, then %ecx > will be zero when dropping into edd_mbr_sig_start. The only other > register touched is %esi, but it's pushed at the beginning, and pop'd > on all exit cases, so that should be unchanged. > > ZF is the only other bit I can picture. On the "no edd= option" path, > ZF=0 on exit. With "edd=of" or "edd=sk", ZF=1. But with "edd=bar", > ZF=0, which you say works too. So that's not it... > > CF is taken care of around the int13 calls already, so that's not > it... It all boils down to the question: When do the flags set by INCL differ from those set by CMPW? We have already ruled out CF and ZF, so only OF, SF, AF, PF can be the culprit. Looking again, I think it will hang with edd=zz, but I have to verify that. Regards, Carl-Daniel -- http://www.hailfinger.org/ ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2005-02-11 2:58 UTC | newest] Thread overview: 3+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2005-02-10 14:11 EDD failures since edd=off patch Carl-Daniel Hailfinger 2005-02-10 17:23 ` Matt Domsch 2005-02-11 2:59 ` Carl-Daniel Hailfinger
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox