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.

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

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