Re: i8k module and x86_64 kernel

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



El Jueves, 9 de Noviembre de 2006 14:49, Marcel J.E. Mol escribió:
> On Thu, Nov 09, 2006 at 11:41:27AM +0100, Manuel Arostegui Ramirez wrote:
> > El Jueves, 9 de Noviembre de 2006 09:58, Marcel J.E. Mol escribió:
> > > After setting up my new inspiron laptop with FC6 x86_64 I noticed the
> > > i8k module is not present. It turned out the module is only present in
> > > the i686 kernel package.
> > >
> > > Is there a reason i8k is not in 64-bit kernels?
> >
> > I supposed that they are trying to port the module to 64 bit kernels,
> > maybe you could contact the developer and ask him if there's a plan to
> > include i8k on kernel for 64bits distros, I hope so.
> >
> > Furthermore I rembemer that i read (don't know where) that the problem
> > was (i don't know if it's still a problem) that the main developer of i8k
> > hasn't got a 64bit machine where he could be able to test his driver and
> > modifying it if that was necesary.
>
> I forced compilation of the driver for x86_64 and the basic part seems to
> work, but it oopses on the small bit of assembly code in the i8k_smm
> function of the driver:
>
> /*
>  * Call the System Management Mode BIOS. Code provided by Jonathan Buzzard.
>  */
> static int i8k_smm(struct smm_regs *regs)
> {
>         int rc;
>         int eax = regs->eax;
>
>         asm("pushl %%eax\n\t"
>             "movl 0(%%eax),%%edx\n\t"
>             "push %%edx\n\t"
>             "movl 4(%%eax),%%ebx\n\t"
>             "movl 8(%%eax),%%ecx\n\t"
>             "movl 12(%%eax),%%edx\n\t"
>             "movl 16(%%eax),%%esi\n\t"
>             "movl 20(%%eax),%%edi\n\t"
>             "popl %%eax\n\t"
>             "out %%al,$0xb2\n\t"
>             "out %%al,$0x84\n\t"
>             "xchgl %%eax,(%%esp)\n\t"
>             "movl %%ebx,4(%%eax)\n\t"
>             "movl %%ecx,8(%%eax)\n\t"
>             "movl %%edx,12(%%eax)\n\t"
>             "movl %%esi,16(%%eax)\n\t"
>             "movl %%edi,20(%%eax)\n\t"
>             "popl %%edx\n\t"
>             "movl %%edx,0(%%eax)\n\t"
>             "lahf\n\t"
>             "shrl $8,%%eax\n\t"
>             "andl $1,%%eax\n":"=a"(rc)
>
>             :    "a"(regs)
>             :    "%ebx", "%ecx", "%edx", "%esi", "%edi", "memory");
>
>         if (rc != 0 || (regs->eax & 0xffff) == 0xffff || regs->eax == eax)
>                 return -EINVAL;
>
>         return 0;
> }
>
> I don't now much of assembly but it seems is playing with the stack and
> asks an ioport for some info. I can imagine this needs tweaking to work on
> 64-bit architecture. I guess we have to wait till someone has a bright idea
> to solve this...
>

As I said on my previus post, maybe the developer is already working on it, 
you should ask him if you're really interested in solved your problem or just 
helps to develop a i8k module for 64 bits Kernels :-)
-- 
Manuel Arostegui Ramirez.

Electronic Mail is not secure, may not be read every day, and should not
be used for urgent or sensitive issues.


[Index of Archives]     [Current Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Yosemite News]     [Yosemite Photos]     [KDE Users]     [Fedora Tools]     [Fedora Docs]

  Powered by Linux