[U-Boot] [PATCH v2 00/20] x86: Add CPU uclass and multi-core support for Minnowboard MAX
Bin Meng
bmeng.cn at gmail.com
Wed Apr 29 05:07:43 CEST 2015
Hi Simon,
On Wed, Apr 29, 2015 at 10:25 AM, Simon Glass <sjg at chromium.org> wrote:
> This series adds a new CPU uclass which is intended to be useful on any
> architecture. So far it has a very simple interface and a command to show
> CPU details.
>
> This series also introduces multi-core init for x86. It is implemented and
> enabled on Minnowboard MAX, a single/dual-core Atom board. The CPU uclass is
> implemented for x86 and the Simple Firmware Interface provides these details
> to the kernel, since ACPI is not yet available.
>
> With these changes Minnowboard MAX can boot into Linux with both cores
> enabled.
>
> This series is available at u-boot-x86 branch 'cpu-working'.
>
> Changes in v2:
> - Use capitals for the header guard
> - Change 'print' to 'Print' in comment
> - Correct bugs in number output
> - Change header guard to capital letters
> - Change get_info() in function comment to cpu_get_info()
> - Rename CONFIG_SFI to CONFIG_GENERATE_SFI_TABLE and move within Kconfig
> - Correct Kconfig help indentation and text
> - Drop SFI_BASE config option
> - Always build sfi.o
> - Use SFI_TABLE_MAX_ENTRIES instead of 16 and ARRAY_SIZE()
> - Make get_entry_start() static
> - Use table_compute_checksum() to computer checksum
> - Add a few blank lines
> - Move patch to after the CPU uclass patch
> - Drop the RTC table as it is not needed
> - Move SFI calling code to write_tables()
> - Remove IDLE table
> - Remove SFI_SYST_SEARCH_BEGIN and SFI_SYST_SEARCH_END
> - Move '__packed' to immediately after 'struct'
> - Add SFI_DEV_TYPE_SD and convert to enum
> - Remove #ifdef CONFIG_SFI from hedaer file
> - Move sfi.h header file to arch/x86/include/asm
> - Remove unnecessary \t\n after mfence assembler instruction
>
This is quick! :) I have not finished reviewing the v1. I will
continue reviewing the v2.
> Simon Glass (20):
> Fix comment nits in board_f.c
> dm: core: Add a function to bind a driver for a device tree node
> x86: Remove unwanted MMC debugging
> x86: Disable -Werror
> Move display_options functions to their own header
> Add print_freq() to display frequencies nicely
> dm: Implement a CPU uclass
> x86: Add support for the Simple Firmware Interface (SFI)
> Add a 'cpu' command to print CPU information
> x86: Add atomic operations
> x86: Add defines for fixed MTRRs
> x86: Add an mfence macro
> x86: Store the GDT pointer in global_data
> x86: Provide access to the IDT
> x86: Add multi-processor init
> x86: Add functions to set and clear bits on MSRs
> x86: Allow CPUs to be set up after relocation
> x86: Add a CPU driver for baytrail
> x86: Tidy up the LAPIC init code
> x86: Enable multi-core init for Minnowboard MAX
>
> arch/x86/Kconfig | 39 +++
> arch/x86/cpu/Makefile | 2 +
> arch/x86/cpu/baytrail/Makefile | 1 +
> arch/x86/cpu/baytrail/cpu.c | 206 +++++++++++++
> arch/x86/cpu/baytrail/valleyview.c | 1 -
> arch/x86/cpu/config.mk | 2 +-
> arch/x86/cpu/cpu.c | 38 +++
> arch/x86/cpu/interrupts.c | 5 +
> arch/x86/cpu/ivybridge/model_206ax.c | 4 +-
> arch/x86/cpu/lapic.c | 20 +-
> arch/x86/cpu/mp_init.c | 507 +++++++++++++++++++++++++++++++
> arch/x86/cpu/sipi.S | 215 +++++++++++++
> arch/x86/dts/minnowmax.dts | 20 ++
> arch/x86/include/asm/arch-baytrail/msr.h | 30 ++
> arch/x86/include/asm/atomic.h | 115 +++++++
> arch/x86/include/asm/cpu.h | 19 ++
> arch/x86/include/asm/global_data.h | 1 +
> arch/x86/include/asm/interrupt.h | 2 +
> arch/x86/include/asm/lapic.h | 7 -
> arch/x86/include/asm/mp.h | 94 ++++++
> arch/x86/include/asm/msr.h | 19 ++
> arch/x86/include/asm/mtrr.h | 14 +
> arch/x86/include/asm/sfi.h | 137 +++++++++
> arch/x86/include/asm/sipi.h | 79 +++++
> arch/x86/include/asm/smm.h | 14 +
> arch/x86/include/asm/u-boot-x86.h | 2 +
> arch/x86/lib/Makefile | 1 +
> arch/x86/lib/sfi.c | 154 ++++++++++
> arch/x86/lib/tables.c | 5 +
> common/Kconfig | 8 +
> common/Makefile | 1 +
> common/board_f.c | 9 +-
> common/board_r.c | 2 +-
> common/cmd_cpu.c | 113 +++++++
> configs/minnowmax_defconfig | 4 +
> drivers/Kconfig | 2 +
> drivers/Makefile | 1 +
> drivers/core/lists.c | 9 +-
> drivers/cpu/Kconfig | 8 +
> drivers/cpu/Makefile | 7 +
> drivers/cpu/cpu-uclass.c | 61 ++++
> include/common.h | 16 +-
> include/cpu.h | 84 +++++
> include/display_options.h | 59 ++++
> include/dm/lists.h | 16 +
> include/dm/uclass-id.h | 1 +
> lib/display_options.c | 51 +++-
> 47 files changed, 2151 insertions(+), 54 deletions(-)
> create mode 100644 arch/x86/cpu/baytrail/cpu.c
> create mode 100644 arch/x86/cpu/mp_init.c
> create mode 100644 arch/x86/cpu/sipi.S
> create mode 100644 arch/x86/include/asm/arch-baytrail/msr.h
> create mode 100644 arch/x86/include/asm/atomic.h
> create mode 100644 arch/x86/include/asm/mp.h
> create mode 100644 arch/x86/include/asm/sfi.h
> create mode 100644 arch/x86/include/asm/sipi.h
> create mode 100644 arch/x86/include/asm/smm.h
> create mode 100644 arch/x86/lib/sfi.c
> create mode 100644 common/cmd_cpu.c
> create mode 100644 drivers/cpu/Kconfig
> create mode 100644 drivers/cpu/Makefile
> create mode 100644 drivers/cpu/cpu-uclass.c
> create mode 100644 include/cpu.h
> create mode 100644 include/display_options.h
>
> --
Regards,
Bin
More information about the U-Boot
mailing list