git: Introduce lapic enumerators, which is used to probe and config lapics

Michael Neumann mneumann at crater.dragonflybsd.org
Sun Nov 7 13:46:31 PST 2010


commit 91903a05a379e840a80f2091f37064f19ab35d36
Author: Michael Neumann <mneumann at ntecs.de>
Date:   Wed Oct 13 22:52:58 2010 +0200

    Introduce lapic enumerators, which is used to probe and config lapics
    
    Apply commit 281d9482759bb075834585452a405a8c9bdf18e7 for x86_64.
    
    lapic enumerator implementation should provide two method:
    lapic_probe()     -- make sure that if this enumerator is selected, later
                         lapic enumeration could work.  Return error code upon
                         failure.
    lapic_enumerate() -- enumerate lapic and properly configure lapic (currently
                         only mapping lapic is needed).
    
    lapic enumerator implementation could be registered by calling:
    lapic_enumerator_register()
    with lapic_enumerator struct.  The higher the priority field, the earlier
    the lapic enumerator's lapic_probe method will be invoked.
    
    Currently two lapic enumerators are implemented and registered:
    - lapic enumerator using MP table
    - lapic enumerator using ACPI MADT
    ACPI MADT lapic enumerator has higher priority.  For testing purpose, ACPI
    MADT lapic enumerator's priority could be overridden by setting tunable
    hw.madt_lapic_prio to a smaller value (less than 20 currently)
    
    Idea-from: FreeBSD

Summary of changes:
 sys/platform/pc64/apic/mpapic.c       |   34 +++++++++++
 sys/platform/pc64/include/smp.h       |   21 +++++--
 sys/platform/pc64/x86_64/mp_machdep.c |  102 +++++++++++++++++++--------------
 sys/platform/pc64/x86_64/mp_madt.c    |   75 +++++++++++++++++++++++-
 4 files changed, 180 insertions(+), 52 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/91903a05a379e840a80f2091f37064f19ab35d36


-- 
DragonFly BSD source repository





More information about the Commits mailing list