[U-Boot] [PATCH 00/69] x86: Add support for samus
Simon Glass
sjg at chromium.org
Mon Mar 7 03:27:43 CET 2016
This series adds support for samus, the Chromebook Pixel 2015. Since it is
only the second board added that does not use an FSP, there is quite a bit
of refactoring involved to avoid code duplication.
Samus uses roughly the same binary blobs as link, except now there is one
more called the reference code binary. The only available binary for this
is a coreboot 'rmodule' extracted from flash. This is a simplified ELF
format so it fairly easy to load and use.
It is also possible to boot U-Boot from coreboot on samus. This works well
but for a delay for non-existent IDE on start-up. The standard build does
not work with binaries taken from flash, so it isn't easy to replicate
this - you'll just have to take my word for it. I am working on getting that
figured out - coreboot recently gained upstream support for loading U-Boot
as a payload, so it should be possible to get this working nicely before
long.
In any case much of the code comes from coreboot - individual files are
credited with their source.
Perhaps the main value of this series is the improved non-FSP support and
additions for broadwell, which samus uses. It should make it easier to add
support for future non-FSP platforms.
Simon Glass (69):
dm: timer: Correct timer init ordering after relocation
arm: Add a 64-bit division routine to the private library
dhry: Correct dhrystone calculation for fast machines
syscon: Avoid returning a device on failure
video: Allow simple-panel to be used without regulators
cpu: Add support for microcode version and CPU ID
gpio: Add a function to obtain a GPIO vector value
gpio: Use const where possible
pci: Add functions to update PCI configuration registers
pci: Correct a few comments and nits
input: i8042: Make sure the keyboard is enabled
malloc_simple: Add a little more debugging
x86: Allow use of serial soon after relocation
x86: cpu: Make the vendor table const
x86: cpu: Add functions to return the family and stepping
x86: Move cache-as-RAM code into a common location
x86: Move microcode code to a common location
x86: Create a common header for Intel register access
x86: Add the root-complex block to common intel registers
x86: Move common LPC code to its own place
x86: Add some more common MSR indexes
x86: Move common CPU code to its own place
x86: Rename PORT_RESET to IO_PORT_RESET
x86: Move Intel Management Engine code to a common place
x86: ivybridge: Drop sandybridge_early_init()
x86: Move common PCH code into a common place
x86: link: Add required GPIO properties
x86: dts: link: Move SPD info into the memory controller
x86: dts: link: Add board ID GPIOs
x86: gpio: Correct GPIO setup ordering
x86: Add common SDRAM-init code
x86: ivybridge: Convert to use the common SDRAM code
x86: dts: Drop memory SPD compatible string
x86: Add a script to aid code conversion from coreboot
x86: Correct duplicate POST values
x86: Add macros to clear and set I/O bits
x86: Allow I/O functions to use pointers
x86: Move common MRC Kconfig options to the common file
x86: Tidy up mp_init to reduce duplication
x86: Record the CPU details when starting each core
x86: ivybridge: Show microcode version for each code
x86: Add comments to the SIPI vector
x86: Update microcode for secondary CPUs
x86: link: Add pin configuration to the device tree
x86: Add an ICH6 pin configuration driver
x86: gpio: Allow the pinctrl driver to set up the pin config
x86: Drop all the old pin configuration code
x86: Add support for running Intel reference code
x86: dts: Update the pinctrl binding a little
x86: Add basic support for broadwell
x86: broadwell: Add a few microcode files
x86: broadwell: Add a PCH driver
x86: broadwell: Add a pinctrl driver
x86: broadwell: Add a SATA driver
x86: broadwell: Add a northbridge driver
x86: broadwell: Add an LPC driver
x86: broadwell: Add reference code support
x86: broadwell: Add power-control support
x86: broadwell: Add support for SDRAM setup
x86: broadwell: Add a GPIO driver
x86: broadwell: Add support for high-speed I/O lane with ME
x86: Support a chained-boot development flow
x86: broadwell: Add video support
x86: Add a default address for reference code
x86: Use white on black for the console on chromebooks
x86: Update README for new developments
x86: Add a function to set the IOAPIC ID
x86: Fix a header nit in x86-chromebook.h
x86: Add support for the samus chromebook
Makefile | 14 +-
arch/arm/lib/Makefile | 3 +-
arch/arm/lib/_uldivmod.S | 245 ++++
arch/x86/Kconfig | 51 +
arch/x86/cpu/Makefile | 2 +
arch/x86/cpu/broadwell/Kconfig | 30 +
arch/x86/cpu/broadwell/Makefile | 17 +
arch/x86/cpu/broadwell/cpu.c | 761 +++++++++++
arch/x86/cpu/broadwell/iobp.c | 144 +++
arch/x86/cpu/broadwell/lpc.c | 77 ++
arch/x86/cpu/broadwell/me.c | 57 +
arch/x86/cpu/broadwell/northbridge.c | 59 +
arch/x86/cpu/broadwell/pch.c | 540 ++++++++
arch/x86/cpu/broadwell/pinctrl_broadwell.c | 278 ++++
arch/x86/cpu/broadwell/power_state.c | 89 ++
arch/x86/cpu/broadwell/refcode.c | 108 ++
arch/x86/cpu/broadwell/sata.c | 269 ++++
arch/x86/cpu/broadwell/sdram.c | 307 +++++
arch/x86/cpu/cpu.c | 17 +-
arch/x86/cpu/intel_common/Makefile | 16 +
arch/x86/cpu/{ivybridge => intel_common}/car.S | 4 +-
arch/x86/cpu/intel_common/cpu_common.c | 111 ++
arch/x86/cpu/intel_common/lpc_common.c | 102 ++
.../cpu/{ivybridge => intel_common}/me_status.c | 20 +-
.../{ivybridge => intel_common}/microcode_intel.c | 6 +-
arch/x86/cpu/intel_common/pch_common.c | 25 +
.../{ivybridge => intel_common}/report_platform.c | 2 +-
arch/x86/cpu/intel_common/sdram_common.c | 271 ++++
arch/x86/cpu/ioapic.c | 16 +
arch/x86/cpu/ivybridge/Kconfig | 27 +-
arch/x86/cpu/ivybridge/Makefile | 4 -
arch/x86/cpu/ivybridge/bd82x6x.c | 17 +-
arch/x86/cpu/ivybridge/cpu.c | 86 +-
arch/x86/cpu/ivybridge/early_me.c | 31 +-
arch/x86/cpu/ivybridge/gma.c | 1 +
arch/x86/cpu/ivybridge/lpc.c | 77 +-
arch/x86/cpu/ivybridge/model_206ax.c | 8 +-
arch/x86/cpu/ivybridge/northbridge.c | 5 +-
arch/x86/cpu/ivybridge/sata.c | 47 +-
arch/x86/cpu/ivybridge/sdram.c | 400 ++----
arch/x86/cpu/mp_init.c | 90 +-
arch/x86/cpu/sipi_vector.S | 1 +
arch/x86/cpu/start.S | 79 ++
arch/x86/dts/Makefile | 1 +
arch/x86/dts/chromebook_link.dts | 379 ++++--
arch/x86/dts/chromebook_samus.dts | 628 +++++++++
arch/x86/dts/microcode/m7240651_0000001c.dtsi | 1328 ++++++++++++++++++++
arch/x86/dts/microcode/mc0306d4_00000018.dtsi | 944 ++++++++++++++
arch/x86/include/asm/arch-broadwell/cpu.h | 48 +
arch/x86/include/asm/arch-broadwell/gpio.h | 91 ++
arch/x86/include/asm/arch-broadwell/iomap.h | 53 +
arch/x86/include/asm/arch-broadwell/lpc.h | 32 +
arch/x86/include/asm/arch-broadwell/me.h | 200 +++
arch/x86/include/asm/arch-broadwell/pch.h | 153 +++
arch/x86/include/asm/arch-broadwell/pei_data.h | 177 +++
arch/x86/include/asm/arch-broadwell/pm.h | 129 ++
arch/x86/include/asm/arch-broadwell/rcb.h | 58 +
arch/x86/include/asm/arch-broadwell/spi.h | 87 ++
arch/x86/include/asm/arch-ivybridge/me.h | 333 +----
arch/x86/include/asm/arch-ivybridge/model_206ax.h | 17 -
arch/x86/include/asm/arch-ivybridge/pch.h | 62 -
arch/x86/include/asm/arch-ivybridge/sandybridge.h | 7 -
arch/x86/include/asm/cpu.h | 27 +
arch/x86/include/asm/cpu_common.h | 35 +
arch/x86/include/asm/global_data.h | 24 +
arch/x86/include/asm/gpio.h | 138 +-
arch/x86/include/asm/intel_regs.h | 28 +
arch/x86/include/asm/io.h | 34 +-
arch/x86/include/asm/ioapic.h | 2 +
arch/x86/include/asm/lpc_common.h | 59 +
arch/x86/include/asm/me_common.h | 372 ++++++
.../include/asm/{arch-ivybridge => }/microcode.h | 12 +
arch/x86/include/asm/msr-index.h | 41 +-
arch/x86/include/asm/pch_common.h | 56 +
arch/x86/include/asm/post.h | 4 +-
arch/x86/include/asm/processor.h | 2 +-
arch/x86/include/asm/report_platform.h | 19 +
arch/x86/include/asm/sdram_common.h | 56 +
arch/x86/include/asm/sipi.h | 1 +
arch/x86/lib/Makefile | 1 +
arch/x86/lib/fsp/fsp_car.S | 2 +
arch/x86/lib/pinctrl_ich6.c | 216 ++++
board/coreboot/coreboot/coreboot.c | 5 -
board/efi/efi-x86/efi.c | 5 -
board/google/Kconfig | 13 +
board/google/chromebook_link/link.c | 138 --
board/google/chromebook_samus/Kconfig | 40 +
board/google/chromebook_samus/MAINTAINERS | 6 +
board/google/chromebook_samus/Makefile | 7 +
board/google/chromebook_samus/samus.c | 18 +
board/google/chromebox_panther/panther.c | 4 -
board/intel/bayleybay/bayleybay.c | 5 -
board/intel/cougarcanyon2/cougarcanyon2.c | 6 +-
board/intel/crownbay/crownbay.c | 5 -
board/intel/galileo/galileo.c | 5 -
board/intel/minnowmax/minnowmax.c | 8 -
cmd/cpu.c | 7 +
common/board_f.c | 7 +
common/board_r.c | 4 +-
common/malloc_simple.c | 7 +-
configs/bayleybay_defconfig | 2 +
configs/chromebook_samus_defconfig | 51 +
configs/cougarcanyon2_defconfig | 2 +
configs/crownbay_defconfig | 2 +
configs/galileo_defconfig | 2 +
configs/minnowmax_defconfig | 6 +-
doc/README.x86 | 106 +-
.../gpio/intel,x86-broadwell-pinctrl.txt | 208 +++
.../gpio/intel,x86-pinctrl.txt | 22 +-
drivers/core/syscon-uclass.c | 1 +
drivers/gpio/Kconfig | 9 +
drivers/gpio/Makefile | 1 +
drivers/gpio/gpio-uclass.c | 26 +-
drivers/gpio/intel_broadwell_gpio.c | 198 +++
drivers/gpio/intel_ich6_gpio.c | 191 +--
drivers/input/i8042.c | 6 +
drivers/pci/pci-uclass.c | 58 +-
drivers/serial/serial-uclass.c | 1 +
drivers/video/Kconfig | 14 +-
drivers/video/Makefile | 2 +
drivers/video/broadwell_igd.c | 797 ++++++++++++
drivers/video/i915_reg.h | 362 ++++++
drivers/video/simple_panel.c | 18 +-
include/asm-generic/gpio.h | 20 +-
include/configs/chromebook_samus.h | 29 +
include/configs/x86-chromebook.h | 8 +-
include/cpu.h | 5 +
include/dt-bindings/gpio/x86-gpio.h | 12 +
include/fdtdec.h | 2 -
include/pci.h | 29 +-
lib/dhry/cmd_dhry.c | 8 +-
lib/fdtdec.c | 2 -
scripts/coreboot.sed | 17 +
133 files changed, 11158 insertions(+), 1719 deletions(-)
create mode 100644 arch/arm/lib/_uldivmod.S
create mode 100644 arch/x86/cpu/broadwell/Kconfig
create mode 100644 arch/x86/cpu/broadwell/Makefile
create mode 100644 arch/x86/cpu/broadwell/cpu.c
create mode 100644 arch/x86/cpu/broadwell/iobp.c
create mode 100644 arch/x86/cpu/broadwell/lpc.c
create mode 100644 arch/x86/cpu/broadwell/me.c
create mode 100644 arch/x86/cpu/broadwell/northbridge.c
create mode 100644 arch/x86/cpu/broadwell/pch.c
create mode 100644 arch/x86/cpu/broadwell/pinctrl_broadwell.c
create mode 100644 arch/x86/cpu/broadwell/power_state.c
create mode 100644 arch/x86/cpu/broadwell/refcode.c
create mode 100644 arch/x86/cpu/broadwell/sata.c
create mode 100644 arch/x86/cpu/broadwell/sdram.c
create mode 100644 arch/x86/cpu/intel_common/Makefile
rename arch/x86/cpu/{ivybridge => intel_common}/car.S (98%)
create mode 100644 arch/x86/cpu/intel_common/cpu_common.c
create mode 100644 arch/x86/cpu/intel_common/lpc_common.c
rename arch/x86/cpu/{ivybridge => intel_common}/me_status.c (93%)
rename arch/x86/cpu/{ivybridge => intel_common}/microcode_intel.c (98%)
create mode 100644 arch/x86/cpu/intel_common/pch_common.c
rename arch/x86/cpu/{ivybridge => intel_common}/report_platform.c (98%)
create mode 100644 arch/x86/cpu/intel_common/sdram_common.c
create mode 100644 arch/x86/dts/chromebook_samus.dts
create mode 100644 arch/x86/dts/microcode/m7240651_0000001c.dtsi
create mode 100644 arch/x86/dts/microcode/mc0306d4_00000018.dtsi
create mode 100644 arch/x86/include/asm/arch-broadwell/cpu.h
create mode 100644 arch/x86/include/asm/arch-broadwell/gpio.h
create mode 100644 arch/x86/include/asm/arch-broadwell/iomap.h
create mode 100644 arch/x86/include/asm/arch-broadwell/lpc.h
create mode 100644 arch/x86/include/asm/arch-broadwell/me.h
create mode 100644 arch/x86/include/asm/arch-broadwell/pch.h
create mode 100644 arch/x86/include/asm/arch-broadwell/pei_data.h
create mode 100644 arch/x86/include/asm/arch-broadwell/pm.h
create mode 100644 arch/x86/include/asm/arch-broadwell/rcb.h
create mode 100644 arch/x86/include/asm/arch-broadwell/spi.h
create mode 100644 arch/x86/include/asm/cpu_common.h
create mode 100644 arch/x86/include/asm/intel_regs.h
create mode 100644 arch/x86/include/asm/lpc_common.h
create mode 100644 arch/x86/include/asm/me_common.h
rename arch/x86/include/asm/{arch-ivybridge => }/microcode.h (63%)
create mode 100644 arch/x86/include/asm/pch_common.h
create mode 100644 arch/x86/include/asm/report_platform.h
create mode 100644 arch/x86/include/asm/sdram_common.h
create mode 100644 arch/x86/lib/pinctrl_ich6.c
create mode 100644 board/google/chromebook_samus/Kconfig
create mode 100644 board/google/chromebook_samus/MAINTAINERS
create mode 100644 board/google/chromebook_samus/Makefile
create mode 100644 board/google/chromebook_samus/samus.c
create mode 100644 configs/chromebook_samus_defconfig
create mode 100644 doc/device-tree-bindings/gpio/intel,x86-broadwell-pinctrl.txt
create mode 100644 drivers/gpio/intel_broadwell_gpio.c
create mode 100644 drivers/video/broadwell_igd.c
create mode 100644 drivers/video/i915_reg.h
create mode 100644 include/configs/chromebook_samus.h
create mode 100644 scripts/coreboot.sed
--
2.7.0.rc3.207.g0ac5344
More information about the U-Boot
mailing list