Skip to content
  • Bin Meng's avatar
    x86: Generate a valid MultiProcessor (MP) table · 07545d86
    Bin Meng authored
    
    
    Implement write_mp_table() to create a minimal working MP table.
    This includes an MP floating table, a configuration table header
    and all of the 5 base configuration table entries. The I/O interrupt
    assignment table entry is created based on the same information used
    in the creation of PIRQ routing table from device tree. A check
    duplicated entry logic is applied to prevent writing multiple I/O
    interrupt entries with the same information.
    
    Use a Kconfig option GENERATE_MP_TABLE to tell U-Boot whether we
    need actually write the MP table at the F seg, just like we did for
    PIRQ routing and SFI tables. With MP table existence, linux kernel
    will switch to I/O APIC and local APIC to process all the peripheral
    interrupts instead of 8259 PICs. This takes full advantage of the
    multicore hardware and the SMP kernel.
    
    Signed-off-by: default avatarBin Meng <bmeng.cn@gmail.com>
    Acked-by: default avatarSimon Glass <sjg@chromium.org>
    07545d86