Re: 6.0-CURRENT SNAP004 hangs on amr (patch)

From: John Baldwin (jhb_at_FreeBSD.org)
Date: 07/29/05

  • Next message: Brandon S. Allbery KF8NH: "Re: here we go again with the weird kernel build errors..."
    To: Joao Barros <joao.barros@gmail.com>
    Date: Fri, 29 Jul 2005 13:18:20 -0400
    
    

    On Sunday 24 July 2005 07:16 pm, Joao Barros wrote:
    > On 7/21/05, John Baldwin <jhb@freebsd.org> wrote:
    > > On Thursday 21 July 2005 11:42 am, Mike Tancsa wrote:
    > > > At 02:09 PM 13/07/2005, John Baldwin wrote:
    > > > >On Wednesday 13 July 2005 09:38 am, Mike Tancsa wrote:
    > > > > > At 04:28 PM 12/07/2005, John Baldwin wrote:
    > > > > > >That does sort of help. Can you try commenting out the call to
    > > > > > >ioapic_setup_mixed_mode() in the sys/i386/i386/mptable.c file and
    > > > > > > try booting with ACPI disabled (but APIC on) and see if it still
    > > > > > > works ok?
    > > > > >
    > > > > > Yup,
    > > > > > Still boots just fine.
    > > > >
    > > > >Ok. Back on 6, can you try editing sys/i386/i386/io_apic.c and in the
    > > > >function ioapic_set_extint(), change the line that reads:
    > > > >
    > > > > io->io_pins[pin].io_masked = 1;
    > > > >
    > > > >to set the masked variable to 0 instead?
    > > >
    > > > Yes, it works with and without ACPI!!
    > >
    > > Ok. That change directly violates the ACPI standard. :( I need to think
    > > about this. At the very least I can add a tunable for this.
    >
    > John,
    >
    > Would it be possible to have this in BETA2?

    Can you try this patch? You'll need to set hw.apic.enable_extint=1 in the
    loader via loader.conf or a manual set command:

    --- //depot/vendor/freebsd/src/sys/i386/i386/io_apic.c 2005/04/14 18:01:23
    +++ //depot/user/jhb/acpipci/i386/i386/io_apic.c 2005/07/28 22:12:23
    @@ -129,6 +130,12 @@
     static int bsp_id, current_cluster, logical_clusters, next_ioapic_base;
     static u_int next_id, program_logical_dest;
     
    +SYSCTL_NODE(_hw, OID_AUTO, apic, CTLFLAG_RD, 0, "APIC options");
    +static int enable_extint;
    +SYSCTL_INT(_hw_apic, OID_AUTO, enable_extint, CTLFLAG_RDTUN, &enable_extint,
    0,
    + "Enable the ExtINT pin in the first I/O APIC");
    +TUNABLE_INT("hw.apic.enable_extint", &enable_extint);
    +
     static __inline void
     _ioapic_eoi_source(struct intsrc *isrc)
     {
    @@ -680,7 +684,10 @@
                     return (EINVAL);
             io->io_pins[pin].io_bus = APIC_BUS_UNKNOWN;
             io->io_pins[pin].io_vector = VECTOR_EXTINT;
    - io->io_pins[pin].io_masked = 1;
    + if (enable_extint)
    + io->io_pins[pin].io_masked = 0;
    + else
    + io->io_pins[pin].io_masked = 1;
             io->io_pins[pin].io_edgetrigger = 1;
             io->io_pins[pin].io_activehi = 1;
             if (bootverbose)

    -- 
    John Baldwin <jhb@FreeBSD.org>  <><  http://www.FreeBSD.org/~jhb/
    "Power Users Use the Power to Serve"  =  http://www.FreeBSD.org
    _______________________________________________
    freebsd-current@freebsd.org mailing list
    http://lists.freebsd.org/mailman/listinfo/freebsd-current
    To unsubscribe, send any mail to "freebsd-current-unsubscribe@freebsd.org"
    

  • Next message: Brandon S. Allbery KF8NH: "Re: here we go again with the weird kernel build errors..."