From mboxrd@z Thu Jan 1 00:00:00 1970 From: Bin Meng Date: Tue, 7 Feb 2017 13:51:22 +0800 Subject: [U-Boot] Please pull u-boot-x86 Message-ID: List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hi Tom, This is U-Boot x86 64-bit preliminary support, on Google Chromebook Link and QEMU targets. The following changes since commit c83a824e62277162ad35f52879b2316902c0eff5: Merge git://git.denx.de/u-boot-fsl-qoriq (2017-02-03 20:33:42 -0500) are available in the git repository at: git://git.denx.de/u-boot-x86.git for you to fetch changes up to 446d4e048ee3b00f7907e15cd02aa404cc714c77: x86: make LOAD_FROM_32_BIT visible for platforms (2017-02-07 13:36:50 +0800) ---------------------------------------------------------------- Andy Shevchenko (2): x86: Synchronize list of x86 subarchitectures (update bootparam.h) x86: make LOAD_FROM_32_BIT visible for platforms Bin Meng (13): x86: qemu: Add missing DECLARE_GLOBAL_DATA_PTR in e820.c x86: Wrap print_ch() with config option x86: spl: Add weak arch_cpu_init_dm() x86: Compile irq.c for 64-bit x86: qemu: Hide arch_cpu_init() and print_cpuinfo() for U-Boot proper x86: qemu: Fix compiler warnings for 64-bit x86: qemu: Set up device tree for SPL x86: qemu: Mark ucode as optional for SPL in u-boot.dtsi tools: binman: Call correct init for Entry_u_boot_spl_with_ucode_ptr tools: binman: Handle optional microcode case in SPL image x86: qemu: Add a text base for 64-bit U-Boot x86: qemu: Add build options for SPL x86: qemu: Add a config for 64-bit U-Boot Simon Glass (62): console: Don't enable CONFIG-CONSOLE_MUX, etc. in SPL spl: spi: Add a debug message if loading fails spl: Makefile: Define SPL_ earlier spl: Allow CPU drivers to be used in SPL spl: Allow PCI drivers to be used in SPL spl: Allow RTC drivers to be used in SPL spl: Allow timer drivers to be used in SPL spl: Allow PCH drivers to be used in SPL spl: Don't create a BSS padding when it is separate x86: Use unsigned long for address in table generation x86: Update mpspec to build on 64-bit machines x86: ivybridge: Declare global data where it is used x86: ivybridge: Add more debugging for failures x86: ivybridge: Fix types for 64-bit compilation x86: dts: Mark serial as needed before relocation x86: fsp: Fix cast for 64-bit compilation x86: lib: Fix types and casts for 64-bit compilation x86: Add Kconfig options to build 64-bit U-Boot x86: Kconfig: Add location options for 16/32-bit init x86: Use X86_16BIT_INIT instead of X86_RESET_VECTOR x86: Use X86_32BIT_INIT instead of X86_RESET_VECTOR x86: ivybridge: Allow 32-bit init to move to SPL x86: Add 64-bit start-up code x86: board_f: Update init sequence for 64-bit startup board_f/r: Use static const for the init sequences x86: board_r: Set the global data pointer after relocation x86: Do relocation before clearing BSS x86: Refactor relocation to prepare for 64-bit x86: Add support for 64-bit relocation x86: Tidy up use of size_t in relocation x86: Add an SPL implementation x86: Move the i386 code into its own directory x86: Add cpu code for x86_64 x86: Support global_data on x86_64 x86: Fix up CONFIG_X86_64 check x86: Add a link script for 64-bit x86 x86: Add a link script for SPL x86: Add SPL build rules for start-up code x86: Fix up byteorder.h for x86_64 x86: Drop flag_is_changable() on x86_64 x86: Fix up type sizes for 64-bit x86: ivybridge: Skip SATA init in SPL x86: ivybridge: Provide a dummy SDRAM init for 64-bit x86: Don't try to run the VGA BIOS in 64-bit mode x86: Don't build call64 and setjmp on 64-bit x86: Don't build cpu files which are not supported on 64-bit x86: Don't build 32-bit efi files on x86_64 x86: Don't try to boot Linux from SPL x86: Drop interrupt support in 64-bit mode x86: Support jumping from SPL to U-Boot x86: Move pirq_routing_table to global_data x86: Move turbo_state to global_data x86: Change irq_already_routed to a local variable x86: Move call64 to the i386 directory x86: Move setjmp to the i386 directory x86: Add a dummy setjmp implementation for x86_64 x86: link: Add a text base for 64-bit U-Boot x86: link: Add SPL declarations to the binman image x86: link: Set up device tree for SPL x86: link: Add build options for SPL x86: Update compile/link flags to support 64-bit U-Boot x86: link: Add a config for 64-bit U-Boot Makefile | 7 +- arch/x86/Kconfig | 94 +++++++++++++++++++ arch/x86/Makefile | 9 +- arch/x86/config.mk | 30 +++++- arch/x86/cpu/Makefile | 24 ++++- arch/x86/cpu/config.mk | 8 +- arch/x86/cpu/cpu.c | 504 ------------------------------------------------------------------------------------------------- arch/x86/cpu/i386/Makefile | 9 ++ arch/x86/cpu/{ => i386}/call64.S | 3 + arch/x86/cpu/i386/cpu.c | 598 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ arch/x86/cpu/{interrupts.c => i386/interrupt.c} | 6 +- arch/x86/cpu/{ => i386}/setjmp.S | 0 arch/x86/cpu/intel_common/Makefile | 10 +- arch/x86/cpu/irq.c | 20 ++-- arch/x86/cpu/ivybridge/Makefile | 9 +- arch/x86/cpu/ivybridge/bd82x6x.c | 2 + arch/x86/cpu/ivybridge/cpu.c | 4 +- arch/x86/cpu/ivybridge/lpc.c | 2 + arch/x86/cpu/ivybridge/model_206ax.c | 2 + arch/x86/cpu/ivybridge/northbridge.c | 2 + arch/x86/cpu/ivybridge/sata.c | 4 +- arch/x86/cpu/ivybridge/sdram.c | 37 ++++++-- arch/x86/cpu/ivybridge/sdram_nop.c | 18 ++++ arch/x86/cpu/qemu/e820.c | 2 + arch/x86/cpu/qemu/qemu.c | 7 +- arch/x86/cpu/start.S | 12 +-- arch/x86/cpu/start64.S | 28 ++++++ arch/x86/cpu/turbo.c | 8 +- arch/x86/cpu/u-boot-64.lds | 76 +++++++++++++++ arch/x86/cpu/u-boot-spl.lds | 74 +++++++++++++++ arch/x86/cpu/u-boot.lds | 2 +- arch/x86/cpu/x86_64/Makefile | 6 ++ arch/x86/cpu/x86_64/cpu.c | 73 +++++++++++++++ arch/x86/cpu/x86_64/interrupts.c | 29 ++++++ arch/x86/cpu/x86_64/setjmp.c | 20 ++++ arch/x86/dts/chromebook_link.dts | 15 ++- arch/x86/dts/emulation-u-boot.dtsi | 6 ++ arch/x86/dts/qemu-x86_i440fx.dts | 4 + arch/x86/dts/qemu-x86_q35.dts | 4 + arch/x86/dts/serial.dtsi | 1 + arch/x86/dts/u-boot.dtsi | 19 ++++ arch/x86/include/asm/acpi_table.h | 2 +- arch/x86/include/asm/bootparam.h | 3 +- arch/x86/include/asm/byteorder.h | 17 ++-- arch/x86/include/asm/cpu.h | 12 +++ arch/x86/include/asm/fsp/fsp_hob.h | 4 +- arch/x86/include/asm/global_data.h | 9 +- arch/x86/include/asm/mp.h | 3 + arch/x86/include/asm/mpspec.h | 10 +- arch/x86/include/asm/posix_types.h | 5 + arch/x86/include/asm/sfi.h | 2 +- arch/x86/include/asm/spl.h | 8 ++ arch/x86/include/asm/tables.h | 2 +- arch/x86/include/asm/types.h | 5 + arch/x86/lib/Makefile | 11 +++ arch/x86/lib/acpi_table.c | 4 +- arch/x86/lib/bios.c | 4 +- arch/x86/lib/bootm.c | 7 ++ arch/x86/lib/init_helpers.c | 2 +- arch/x86/lib/interrupts.c | 5 + arch/x86/lib/mpspec.c | 14 +-- arch/x86/lib/pinctrl_ich6.c | 2 +- arch/x86/lib/pirq_routing.c | 14 +-- arch/x86/lib/relocate.c | 100 +++++++++++++++----- arch/x86/lib/sfi.c | 6 +- arch/x86/lib/spl.c | 159 +++++++++++++++++++++++++++++++ arch/x86/lib/tables.c | 11 +-- arch/x86/lib/zimage.c | 2 +- board/emulation/Kconfig | 7 ++ board/emulation/qemu-x86/Kconfig | 6 +- board/emulation/qemu-x86/MAINTAINERS | 7 ++ board/google/Kconfig | 7 ++ board/google/chromebook_link/Kconfig | 5 +- board/google/chromebook_link/MAINTAINERS | 7 ++ common/board_f.c | 16 ++-- common/board_r.c | 12 ++- common/console.c | 30 +++--- common/iomux.c | 4 +- common/spl/Kconfig | 47 ++++++++++ common/spl/spl_spi.c | 5 +- common/usb_kbd.c | 6 +- configs/chromebook_link64_defconfig | 89 ++++++++++++++++++ configs/chromebook_link_defconfig | 4 +- configs/qemu-x86_64_defconfig | 80 ++++++++++++++++ drivers/Makefile | 5 + drivers/misc/qfw.c | 4 +- drivers/pci/pci_rom.c | 2 +- drivers/video/ivybridge_igd.c | 6 +- include/configs/chromebook_link.h | 9 ++ include/configs/qemu-x86.h | 9 ++ include/smbios.h | 4 +- lib/smbios.c | 22 ++--- scripts/Makefile.spl | 18 +++- tools/binman/etype/u_boot_spl_with_ucode_ptr.py | 2 +- tools/binman/etype/u_boot_ucode.py | 6 ++ 95 files changed, 1929 insertions(+), 701 deletions(-) create mode 100644 arch/x86/cpu/i386/Makefile rename arch/x86/cpu/{ => i386}/call64.S (98%) create mode 100644 arch/x86/cpu/i386/cpu.c rename arch/x86/cpu/{interrupts.c => i386/interrupt.c} (99%) rename arch/x86/cpu/{ => i386}/setjmp.S (100%) create mode 100644 arch/x86/cpu/ivybridge/sdram_nop.c create mode 100644 arch/x86/cpu/start64.S create mode 100644 arch/x86/cpu/u-boot-64.lds create mode 100644 arch/x86/cpu/u-boot-spl.lds create mode 100644 arch/x86/cpu/x86_64/Makefile create mode 100644 arch/x86/cpu/x86_64/cpu.c create mode 100644 arch/x86/cpu/x86_64/interrupts.c create mode 100644 arch/x86/cpu/x86_64/setjmp.c create mode 100644 arch/x86/include/asm/spl.h create mode 100644 arch/x86/lib/spl.c create mode 100644 configs/chromebook_link64_defconfig create mode 100644 configs/qemu-x86_64_defconfig Regards, Bin