Hello,
        I am blocked with calling interrupt in coreboot.
        I tryed these ways:
        1. use "asm("int $0x19 \n");".  Qemu has no output when executeed
here and nothing happens. The reason is that it should jump to real
mode before calling int 19.

        2. write a function boot_coreboot() in seabios. like:

        void VISIBLE32 boot_coreboot()
        {
                struct bregs br;
                dprintf(1, "boot_coreboot: begin\n");
                memset(&br, 0, sizeof(br));
                dprintf(1, "boot_coreboot: call int 19\n");
                call16_int(0x19, &br);
                dprintf(1, "boot_coreboot: end\n");
        }
        
        then call boot_coreboot() in seabios. It booted successfully.

        I have read the source code of call16_int, it jump to real mode and
jump to the int 19 handler function directly, but do not use "int
$0x19" asm code. why?



        3. write asm code to jump to real mode and call int 19.
        but in coreboot there is compiling errors when I write asm codes with
lables in it in vm86.c.
        for a simple example:
        __asm__ __volatile__ (
                        /* paranoia -- does ecx get saved? not sure. This is
                         * the easiest safe thing to do. */
                        "       pushal                  \n"
                        "       ljmp    $0x28, $cbint16bit\n"
                        "cbint16bit:            \n"
                        "       .code16                 \n"
                        "       popal\n"
                        );

        will cause errors:
        {standard input}: Assembler messages:
        {standard input}:746: Error: symbol `cbint16bit' is already defined
        
        in seabios there is compiling errors because of ".code16":
        out/../src/post.c:349: relocation truncated to fit: R_386_16 against 
`.text'

        what is wrong here?


2008/7/17, Kevin O'Connor <[EMAIL PROTECTED]>:
> On Thu, Jul 17, 2008 at 09:58:59AM +0800, Zhang Rui wrote:
> [...]
> > If I manually change to 16bit mode then call int19 in coreboot,  will it be 
> > OK?
> > If it does, the 16bit mode option rom codes can use the int handler of 
> > SeaBIOS?
>
> It should work.
>

--
coreboot mailing list
[email protected]
http://www.coreboot.org/mailman/listinfo/coreboot

Reply via email to