[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