Help on epia-m 10000 linuxbios VGA

Santi Mirenna mirenna at mi.ingv.it
Wed Dec 3 09:15:01 CET 2003


At 11.59 03/12/2003, you wrote:
>Hi Santi,
>
>At a minimum you need to check that your arch/i386/lib/idt.c file has the 
>Int 21 and Unsupported Interrupt handler calling code installed:
>
>@@ -175,9 +175,18 @@
>                 eax = 64 * 1024;
>                 ret = 0;
>                 break;
>+#ifdef CONFIG_INT21HANDLER
>+       case 0x15:
>+               ret=handleint21( &edi, &esi, &ebp, &esp,
>+                               &ebx, &edx, &ecx, &eax, &flags);
>+               break;
>+#endif
>         default:
>                 printk_info(__FUNCTION__ ": Unsupport int #0x%x\n",
>                                         intnumber);
>+#ifdef CONFIG_UNSUPPORTINT_RECOVER
>+               unsupportint_recover();
>+#endif
>                 break;
>
>
>and that arch/i386/lib/vgabios.c and mainboard/via/epia-m/mainboard.c 
>respectively have the actual handler routines:
>
>@@ -145,6 +145,13 @@
>  __asm__ (".text\n""real_mode_switch_end:\n");
>  extern char real_mode_switch_end[];
>
>+#ifdef CONFIG_UNSUPPORTINT_RECOVER
>+void unsupportint_recover(void)
>+{
>+  __asm__ __volatile__ ( "  jmp vgarestart  \n" );
>+}
>+#endif
>+
>
>and
>
>@@ -92,3 +176,33 @@
>         final_southbridge_fixup();
>  }
>
>+int handleint21( unsigned long *edi, unsigned long *esi, unsigned long *ebp,
>+                         unsigned long *esp, unsigned long *ebx, unsigned 
>long *edx,
>+                         unsigned long *ecx, unsigned long *eax, unsigned 
>long *flags)
>+{
>+int res=-1;
>+       switch(*eax&0xffff)
>+       {
>+       case 0x5f19:
>+               break;
>+       case 0x5f18:
>+               *eax=0x5f;
>+               *ebx=0x15; // MCLK = 133, 32M frame buffer
>+               res=0;
>+               break;
>+       case 0x5f02:
>+               *eax=0x5f;
>+               *ebx=0 | (3<<8);
>+               *ecx=5 | (0<<8) | (0<<16);
>+               res=0;
>+               break;
>+       case 0x5f0f:
>+               *eax=0x5f;
>+               *ebx=0;
>+               *ecx=0;
>+               *edx=0;
>+               res=0;
>+               break;
>+       }
>+       return res;
>+}
>
>
>NOTE: It's possible that you may have patch these in by hand as the 
>original diffs were from an older version of the codebase and things may 
>have changed since then.
All the patch is ok and I get the CVS of  05 2003-July



>A quick check is to make sure there are no *.rej files present which might 
>indicate a patch operation has failed.

all files are patched

>The diffs aren't large, so it's probably worthing checking them by hand to 
>make sure the patches have been properly applied.
>
>Cheers
>
>Ian
>
>At 09:31 03/12/2003, Santi Mirenna wrote:
>>Hi to all, today i make EPIA-M 10000 rom image. i compile to have VGA and 
>>Filo,
>>after apply patch of Dave Ashley and info from Takeshi about RAM ammount
>>VGA now is found by the system but ....
>>In attach you have the output log ....
>>Can someone tell me where i wrong?
>>
>>Dave Ashley reply:
>>
>>You haven't applied all the patch, specifically the handler
>>for the unsupported bios interrupts.
>>This is the bug where it just gets into an endless loop
>>of bios interrupts, so the program needs to exit the
>>bios somehow. -Dave
>>
>>Hi , can some one tell me where to look  ....
>>i made the patch ....where to look Dave to know if the patch is ok ?
>>
>>Thanks.
>>
>>Santi Mirenna





More information about the coreboot mailing list