Hi Marc Jones,

    1.
        +typedef struct {
        +        int mask[256];
        +        int (*intXX_handler[256])(struct eregs *regs);
        +}interrupt_handlers;

        The mainboard_interrupt_handlers need modification if the structure
is not needed.

    2.
        +       if(!(*intXX_handler))
        +       {
        +               /* Set up C interrupt handlers */
        +               setup_interrupt_handlers();
        +       }

        Yes, this is because mainboard_interrupt_handlers gets called first.


2009/12/22 Marc Jones <[email protected]>

> On Mon, Dec 21, 2009 at 6:15 PM, Libra Li <[email protected]> wrote:
> > Hi,
> >
> >     The VGA BIOS is through int15 getting LCD panel ID. Then the VBIOS
> call
> > int15's "Get LCD panel ID".
> >     The panel ID is selection by switch.
> >     This function is reference "AMD RS690 ASIC Family BIOS Developer's
> > Guide".
> >
> >     Thanks.
> >
> >     Signed-off-by: Libra Li <[email protected]>
>
> Hi Libra Li,
>
> Thanks for making these changes. I like the idea of the mainboard
> interrupt function. I have a few comments.
>
> +typedef struct {
> +        int mask[256];
> +        int (*intXX_handler[256])(struct eregs *regs);
> +}interrupt_handlers;
>
> This is a really big structure and probably not needed. I don't think
> anyone would override every interrupt vector, just one or two like you
> are doing. Maybe just use a table that has the interrupt and function
> pointer.
>
>
> +       if(!(*intXX_handler))
> +       {
> +               /* Set up C interrupt handlers */
> +               setup_interrupt_handlers();
> +       }
> +
>
> Is this because mainboard_interrupt_handlers gets called first and the
> interrupts are over written? It would be better if the defaults could
> always be loaded and then the main board interrupts get fixed up.
>
> Thanks,
> Marc
>
>
> --
> http://marcjonesconsulting.com
>
-- 
coreboot mailing list: [email protected]
http://www.coreboot.org/mailman/listinfo/coreboot

Reply via email to