[U-Boot] [RESPIN PATCH v2 12/15] x86: Generate a valid MultiProcessor (MP) table

Simon Glass sjg at chromium.org
Wed Jun 24 04:46:19 CEST 2015


On 23 June 2015 at 19:45, Simon Glass <sjg at chromium.org> wrote:
> On 22 June 2015 at 22:18, Bin Meng <bmeng.cn at gmail.com> wrote:
>> 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: Bin Meng <bmeng.cn at gmail.com>
>>
>> ---
>>
>> Changes in v2:
>> - Avoid using u16 and u8 in parameters
>> - Add a comment block for check_dup_entry()
>> - Return and check error codes of mptable_add_intsrc()
>> - Remove __weak for write_mp_table()
>>
>>  arch/x86/Kconfig              |   9 +++
>>  arch/x86/include/asm/mpspec.h |  10 +++
>>  arch/x86/lib/mpspec.c         | 157 ++++++++++++++++++++++++++++++++++++++++++
>>  arch/x86/lib/tables.c         |   5 ++
>>  4 files changed, 181 insertions(+)
>
> Acked-by: Simon Glass <sjg at chromium.org>

Applied to u-boot-x86, thanks!


More information about the U-Boot mailing list