it's not pretty but this is working to get into mode 117 on the
(private) tree I am using.

It's in the emulator. The 'entering emulator' is what you would see;
the first X86EMU_exec is when we run the vga bios.
 src/devices/emulator/biosemu.c

The way it works is that I put an INT 10 at f0000, followed by a HLT.
It's ok to scribble there because that is the 55aa signature for the
expansion bios -- it's not needed any more, the BIOS is installed.

This appears to work. Tomorrow I'll try scribbling on the frame buffer
and see how it goes.

As Jordan has pointed out,coreboot starts up so fast that I'm going to
need to put a delay in to let the splash screen be visible. But this
is important enough that it is worth doing.

Now I need a modern opteron laptop :-)

thanks
ron
        printk_info("entering emulator\n");

        X86EMU_exec();

        printk_err("Done; now try to set the mode to x117\n");
        X86_AX = 0x4f02;
        X86_BX = 0x117;
        X86_CX = 1;
        X86_DX = 0x0;
        X86_DI = 0;
        X86_EIP = 0x0000;
        X86_CS = initialcs;

        /* Initialize stack and data segment */
        X86_SS = initialcs;
        X86_SP = 0xfffe;
        X86_DS = 0x0040;
        X86_ES = 0x0000;

        /* We need a sane way to return from bios
         * execution. A hlt instruction and a pointer
         * to it, both kept on the stack, will do.
         */
        pushw(0xf4f4);          /* hlt; hlt */
        pushw(X86_SS);
        pushw(X86_SP + 2);
#if 0
   1                    .code16
   2 0000 CD10                  int $0x10
   3 0002 F4                    hlt
   4 0003 F4                    hlt
#endif
        MEM_WB(initialcs<<4+0, 0xCD);
        MEM_WB(initialcs<<4+1, 0x10);
        MEM_WB(initialcs<<4+2, 0xF4);
        MEM_WB(initialcs<<4+3, 0xF4);
//      MEM_WB(initialcs<<4+0, 0xF4);
//      X86EMU_trace_on();

        printk_err("entering emulator\n");

        X86EMU_exec();
        printk_err("Mode should now be set\n");
#endif
}

--
coreboot mailing list: coreboot@coreboot.org
http://www.coreboot.org/mailman/listinfo/coreboot

Reply via email to