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