On Monday 12 Mar 2012 08:34:11 Itay Gazit wrote:
> I managed to find a fix. I Removed attribute settings in bios_putchar() and
> problem solved.

It sounds as though the serial redirection doesn't support attributes.  
Disabling attribute settings completely will break colours on the local 
console display.  Could you try the attached patch, which sets the attribute 
only when necessary?

Thanks,

Michael
diff --git a/src/arch/i386/firmware/pcbios/bios_console.c b/src/arch/i386/firmware/pcbios/bios_console.c
index 1ecd07d..e489971 100644
--- a/src/arch/i386/firmware/pcbios/bios_console.c
+++ b/src/arch/i386/firmware/pcbios/bios_console.c
@@ -163,6 +163,14 @@ static void bios_putchar ( int character ) {
 					   /* Skip non-printable characters */
 					   "cmpb $0x20, %%al\n\t"
 					   "jb 1f\n\t"
+					   /* Read attribute */
+					   "movb %%al, %%cl\n\t"
+					   "movb $0x08, %%ah\n\t"
+					   "int $0x10\n\t"
+					   "xchgb %%al, %%cl\n\t"
+					   /* Skip if attribute matches */
+					   "cmpb %%ah, %%bl\n\t"
+					   "je 1f\n\t"
 					   /* Set attribute */
 					   "movw $0x0001, %%cx\n\t"
 					   "movb $0x09, %%ah\n\t"
_______________________________________________
ipxe-devel mailing list
[email protected]
https://lists.ipxe.org/mailman/listinfo/ipxe-devel

Reply via email to