On Fri, 2007-01-12 at 15:16 +0530, Vivek Goyal wrote: > On Thu, Jan 11, 2007 at 10:01:20AM -0500, Benjamin Romer wrote: > > After a lot of internal discussion with other Unisys employees, I think > > I've finally got this all figured out. The problem is one line of code > > in the disable_IO_APIC() function, that says this: > > > > entry.dest.physical.physical_dest = GET_APIC_ID(apic_read(APIC_ID)); > > > > The problem seems to be that when the kernel was previously updated to > > take advantage of the 8-bit IO-APIC physical destination field defined > > in Intel's xAPIC spec on page 334, downloadable from > > ftp://download.intel.com/design/chipsets/e8501/datashts/30962001.pdf , > > this particular piece of code was missed. According to my co-worker > > Natalie Protasevich, the Linux kernel was updated back when the Xeon > > processor first came out to use the larger field by merely switching the > > code to use the logical destination field for everything. (Personally, I > > would have removed the union from the structure and put in new fields > > with new names to make the change more obvious, but it's not my > > code. :) ) Anyway, what it comes down to is we need to switch that one > > line in disable_IO_APIC() to read > > > > entry.dest.logical.logical_dest = GET_APIC_ID(apic_read(APIC_ID)); > > > > Hmm.. This should fix the problem without breaking old 4bit physical > destination mode machines. > > Thanks > Vivek
I was able to confirm that this change allows the ES7000/ONE to successfully kexec with a working clock. The other patch that I mentioned does not appear to solve the problem alone (though I had a little trouble getting it applied to the kernel), so I'd like to go ahead with this fix if that's okay. :) Should I post a patch to the LKML? -- Ben _______________________________________________ fastboot mailing list [email protected] https://lists.osdl.org/mailman/listinfo/fastboot
