From patchwork Wed Apr 22 00:45:00 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Park, Aiden" X-Patchwork-Id: 1274585 X-Patchwork-Delegate: bmeng.cn@gmail.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=85.214.62.61; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=intel.com Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 496MDd4w95z9sP7 for ; Wed, 22 Apr 2020 10:45:53 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 156E7819F3; Wed, 22 Apr 2020 02:45:36 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Received: by phobos.denx.de (Postfix, from userid 109) id 0BC8C811EC; Wed, 22 Apr 2020 02:45:31 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,SPF_HELO_NONE, URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.2 Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id B92758047E for ; Wed, 22 Apr 2020 02:45:27 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=aiden.park@intel.com IronPort-SDR: GcfK7jEJ7jwZ7OZIiLii8vf4T0GDI1JErYxaK+KJ+XfqGOQidLtJ5F11qAXmceUVxmngQ7D7fp T502mX1gRICg== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 21 Apr 2020 17:45:20 -0700 IronPort-SDR: +CAu/DYgQ/jqlJUWLYItDSKOQ53mZwbb4G8vicIXJcN0C4RrFS97PizeuIrbOrxK8e/EN5/uGL grYvOrdZGyOg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.72,412,1580803200"; d="scan'208";a="456305548" Received: from younghyu-desk1.jf.intel.com ([134.134.154.164]) by fmsmga005.fm.intel.com with ESMTP; 21 Apr 2020 17:45:20 -0700 From: aiden.park@intel.com To: bmeng.cn@gmail.com, sjg@chromium.org, u-boot@lists.denx.de Cc: Aiden Park Subject: [PATCH 1/8] x86: Add a new X86_RUN_64BIT_ONLY to Kconfig Date: Tue, 21 Apr 2020 17:45:00 -0700 Message-Id: <20200422004507.2025-2-aiden.park@intel.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200422004507.2025-1-aiden.park@intel.com> References: <20200422004507.2025-1-aiden.park@intel.com> MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.30rc1 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.102.2 at phobos.denx.de X-Virus-Status: Clean From: Aiden Park This will build U-Boot as a pure 64-bit binary with no SPL. It can be used with a pre-stage boot firmware which has already done 16-bit, 32-bit and 64-bit init. Signed-off-by: Aiden Park Reviewed-by: Bin Meng --- arch/x86/Kconfig | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig index c8eae24c07..89add17e69 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig @@ -40,6 +40,14 @@ config X86_RUN_64BIT runs through the 16-bit and 32-bit init, then switches to 64-bit mode and jumps to U-Boot proper. +config X86_RUN_64BIT_ONLY + bool "64-bit only" + select X86_64 + help + Build U-Boot as a pure 64-bit binary with no 32-bit SPL. This can + be used with a pre-stage boot firmware which has already done + 16-bit, 32-bit and 64-bit init. + endchoice config X86_64 From patchwork Wed Apr 22 00:45:01 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Park, Aiden" X-Patchwork-Id: 1274586 X-Patchwork-Delegate: bmeng.cn@gmail.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=85.214.62.61; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=intel.com Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 496MDp6Slsz9sP7 for ; Wed, 22 Apr 2020 10:46:02 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 1107381A26; Wed, 22 Apr 2020 02:45:49 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Received: by phobos.denx.de (Postfix, from userid 109) id 7D79D81C46; Wed, 22 Apr 2020 02:45:42 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,SPF_HELO_NONE, URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.2 Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 11D6881A26 for ; Wed, 22 Apr 2020 02:45:37 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=aiden.park@intel.com IronPort-SDR: 0yzkYSo2GZnkMw2hUgbaqI8dyvV3M/VzA6bQXV2TqYajke/BuJOk/DHQ5Ryuvo3RMep8yVAc5w gOuUZpVwGgOw== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 21 Apr 2020 17:45:36 -0700 IronPort-SDR: 2xR2a0YQ32vtkmlYhm2lL2UKkB6hnUruyit6YLXQFYG4xBei5BvfX0WsDsCenNWENfSxaw02jn HPX5ShR3KW6w== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.72,412,1580803200"; d="scan'208";a="456305598" Received: from younghyu-desk1.jf.intel.com ([134.134.154.164]) by fmsmga005.fm.intel.com with ESMTP; 21 Apr 2020 17:45:35 -0700 From: aiden.park@intel.com To: bmeng.cn@gmail.com, sjg@chromium.org, u-boot@lists.denx.de Cc: Aiden Park Subject: [PATCH 2/8] x86: start64: Add a hook at 64-bit entry Date: Tue, 21 Apr 2020 17:45:01 -0700 Message-Id: <20200422004507.2025-3-aiden.park@intel.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200422004507.2025-1-aiden.park@intel.com> References: <20200422004507.2025-1-aiden.park@intel.com> MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.30rc1 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.102.2 at phobos.denx.de X-Virus-Status: Clean From: Aiden Park This will allow a board or cpu to do its specific initialization at 64-bit entry if U-Boot is a pure 64-bit binary. Signed-off-by: Aiden Park --- arch/x86/cpu/start64.S | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/arch/x86/cpu/start64.S b/arch/x86/cpu/start64.S index 7be834788b..b8ac5aab57 100644 --- a/arch/x86/cpu/start64.S +++ b/arch/x86/cpu/start64.S @@ -13,6 +13,11 @@ .globl _start .type _start, @function _start: +#if defined(CONFIG_X86_RUN_64BIT_ONLY) + jmp init_64bit_entry +.globl init_64bit_entry_ret +init_64bit_entry_ret: +#endif /* Set up memory using the existing stack */ mov %rsp, %rdi call board_init_f_alloc_reserve From patchwork Wed Apr 22 00:45:02 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Park, Aiden" X-Patchwork-Id: 1274587 X-Patchwork-Delegate: bmeng.cn@gmail.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=intel.com Received: from phobos.denx.de (phobos.denx.de [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 496MF10YC8z9sP7 for ; Wed, 22 Apr 2020 10:46:12 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 4C96E81B8F; Wed, 22 Apr 2020 02:45:52 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Received: by phobos.denx.de (Postfix, from userid 109) id D8FAE81C4C; Wed, 22 Apr 2020 02:45:45 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,SPF_HELO_NONE, URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.2 Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 1702981B8F for ; Wed, 22 Apr 2020 02:45:40 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=aiden.park@intel.com IronPort-SDR: rOO7nqKb9v1Xidq6PmY3r6XdkQAfdkzKbqaVW4KmA2LIHAus2mq6+ZhbqZjbnqcj1C6mkD0eiX gcUD0Bi1vAIA== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 21 Apr 2020 17:45:40 -0700 IronPort-SDR: nQGwq21eXOBR2MZGoX3C1Mv+diS8U3V7KSulOGbajsF1DkzAWojjRS4wAOOBQdwjXuKtHC2yzz K6K6Gg63u03w== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.72,412,1580803200"; d="scan'208";a="456305610" Received: from younghyu-desk1.jf.intel.com ([134.134.154.164]) by fmsmga005.fm.intel.com with ESMTP; 21 Apr 2020 17:45:40 -0700 From: aiden.park@intel.com To: bmeng.cn@gmail.com, sjg@chromium.org, u-boot@lists.denx.de Cc: Aiden Park Subject: [PATCH 3/8] x86: start64: Support HOB in 64-bit U-Boot Date: Tue, 21 Apr 2020 17:45:02 -0700 Message-Id: <20200422004507.2025-4-aiden.park@intel.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200422004507.2025-1-aiden.park@intel.com> References: <20200422004507.2025-1-aiden.park@intel.com> MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.30rc1 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.102.2 at phobos.denx.de X-Virus-Status: Clean From: Aiden Park This will allow 64-bit U-Boot to use HOB. Signed-off-by: Aiden Park --- arch/x86/cpu/start64.S | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/arch/x86/cpu/start64.S b/arch/x86/cpu/start64.S index b8ac5aab57..7faf4f6f13 100644 --- a/arch/x86/cpu/start64.S +++ b/arch/x86/cpu/start64.S @@ -25,6 +25,11 @@ init_64bit_entry_ret: call board_init_f_init_reserve +#if defined(CONFIG_X86_RUN_64BIT_ONLY) && defined(CONFIG_USE_HOB) + mov %r10, %rdi + call set_hob_list +#endif + xor %rdi, %rdi call board_init_f call board_init_f_r From patchwork Wed Apr 22 00:45:03 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Park, Aiden" X-Patchwork-Id: 1274588 X-Patchwork-Delegate: bmeng.cn@gmail.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=85.214.62.61; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=intel.com Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 496MFF2DhJz9sP7 for ; Wed, 22 Apr 2020 10:46:25 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 4603781C46; Wed, 22 Apr 2020 02:45:55 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Received: by phobos.denx.de (Postfix, from userid 109) id 9D48E81C5A; Wed, 22 Apr 2020 02:45:47 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,SPF_HELO_NONE, URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.2 Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 95E5481A26 for ; Wed, 22 Apr 2020 02:45:42 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=aiden.park@intel.com IronPort-SDR: ZWeoleJntx2MlumI3xK67xnEXXvJjO2kxqfbJMMJArvFxB5mDqYq4gpjefj9Fzaj/7PzlCKrKr TZNRqFsJawEg== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 21 Apr 2020 17:45:42 -0700 IronPort-SDR: SkjjLL0BB/nkCllIOh3EBpw3VQ16sJuZgV+xS76893lrAuMqRP77ZdyVIHaVXWy8nMZeOoRfw+ PQ4efj4Hkpgg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.72,412,1580803200"; d="scan'208";a="456305616" Received: from younghyu-desk1.jf.intel.com ([134.134.154.164]) by fmsmga005.fm.intel.com with ESMTP; 21 Apr 2020 17:45:41 -0700 From: aiden.park@intel.com To: bmeng.cn@gmail.com, sjg@chromium.org, u-boot@lists.denx.de Cc: Aiden Park Subject: [PATCH 4/8] x86: slimbootloader: Support 64-bit operation Date: Tue, 21 Apr 2020 17:45:03 -0700 Message-Id: <20200422004507.2025-5-aiden.park@intel.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200422004507.2025-1-aiden.park@intel.com> References: <20200422004507.2025-1-aiden.park@intel.com> MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.30rc1 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.102.2 at phobos.denx.de X-Virus-Status: Clean From: Aiden Park This supports 64-bit U-Boot as a Slim Bootloader payload. Signed-off-by: Aiden Park --- arch/x86/cpu/slimbootloader/Makefile | 9 +++++++-- arch/x86/cpu/slimbootloader/entry64.S | 14 ++++++++++++++ arch/x86/cpu/slimbootloader/slimbootloader.c | 17 +++++++++++++++-- 3 files changed, 36 insertions(+), 4 deletions(-) create mode 100644 arch/x86/cpu/slimbootloader/entry64.S diff --git a/arch/x86/cpu/slimbootloader/Makefile b/arch/x86/cpu/slimbootloader/Makefile index aac9fa3db8..79fa699501 100644 --- a/arch/x86/cpu/slimbootloader/Makefile +++ b/arch/x86/cpu/slimbootloader/Makefile @@ -1,5 +1,10 @@ # SPDX-License-Identifier: GPL-2.0+ # -# Copyright (C) 2019 Intel Corporation +# Copyright (C) 2019-2020 Intel Corporation -obj-y += car.o slimbootloader.o sdram.o serial.o +ifeq ($(CONFIG_X86_64),y) +obj-y += entry64.o +else +obj-y += car.o +endif +obj-y += slimbootloader.o sdram.o serial.o diff --git a/arch/x86/cpu/slimbootloader/entry64.S b/arch/x86/cpu/slimbootloader/entry64.S new file mode 100644 index 0000000000..5e101e18a9 --- /dev/null +++ b/arch/x86/cpu/slimbootloader/entry64.S @@ -0,0 +1,14 @@ +/* SPDX-License-Identifier: GPL-2.0+ */ +/* + * Copyright (C) 2020 Intel Corporation + */ + +#include + +.section .text + +.globl init_64bit_entry +init_64bit_entry: + /* Save hob pointer parameter */ + mov %rcx, %r10 + jmp init_64bit_entry_ret diff --git a/arch/x86/cpu/slimbootloader/slimbootloader.c b/arch/x86/cpu/slimbootloader/slimbootloader.c index 21dcfb2142..7857e4cd8b 100644 --- a/arch/x86/cpu/slimbootloader/slimbootloader.c +++ b/arch/x86/cpu/slimbootloader/slimbootloader.c @@ -1,6 +1,6 @@ // SPDX-License-Identifier: GPL-2.0+ /* - * Copyright (C) 2019 Intel Corporation + * Copyright (C) 2019-2020 Intel Corporation */ #include @@ -43,11 +43,23 @@ static void tsc_init(void) int arch_cpu_init(void) { + int ret = 0; + tsc_init(); - return x86_cpu_init_f(); +#if !CONFIG_IS_ENABLED(X86_64) + ret = x86_cpu_init_f(); +#endif + return ret; } +#if CONFIG_IS_ENABLED(X86_64) +int set_hob_list(void *hob_list) +{ + gd->arch.hob_list = hob_list; + return 0; +} +#else int checkcpu(void) { return 0; @@ -57,3 +69,4 @@ int print_cpuinfo(void) { return default_print_cpuinfo(); } +#endif From patchwork Wed Apr 22 00:45:04 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Park, Aiden" X-Patchwork-Id: 1274590 X-Patchwork-Delegate: bmeng.cn@gmail.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=intel.com Received: from phobos.denx.de (phobos.denx.de [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 496MFm0vh8z9sP7 for ; Wed, 22 Apr 2020 10:46:52 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 9180681C4C; Wed, 22 Apr 2020 02:46:17 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Received: by phobos.denx.de (Postfix, from userid 109) id 2C96F81C3F; Wed, 22 Apr 2020 02:45:50 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,SPF_HELO_NONE, URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.2 Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id C81AD804CD for ; Wed, 22 Apr 2020 02:45:44 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=aiden.park@intel.com IronPort-SDR: 9MpzrztXhL2MvrAVfdWzfQsfXPsKPedfHX+jXrgNWyWxvx8yK+i+Q05chTdTS7QUAjX3zuD+Z/ lCfv5oyFviEA== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 21 Apr 2020 17:45:44 -0700 IronPort-SDR: 7rIIfm57OsUgFcmLZVVrf2UtyPoT7VFcN8ChrM3U19D+Xutgj1f+Ypq6I18sEHeExhBHdMJWTW eqfe9nq9PvJw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.72,412,1580803200"; d="scan'208";a="456305621" Received: from younghyu-desk1.jf.intel.com ([134.134.154.164]) by fmsmga005.fm.intel.com with ESMTP; 21 Apr 2020 17:45:44 -0700 From: aiden.park@intel.com To: bmeng.cn@gmail.com, sjg@chromium.org, u-boot@lists.denx.de Cc: Aiden Park Subject: [PATCH 5/8] configs: slimbootloader: Add x86_64 slimbootloader config Date: Tue, 21 Apr 2020 17:45:04 -0700 Message-Id: <20200422004507.2025-6-aiden.park@intel.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200422004507.2025-1-aiden.park@intel.com> References: <20200422004507.2025-1-aiden.park@intel.com> MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.30rc1 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.102.2 at phobos.denx.de X-Virus-Status: Clean From: Aiden Park Add slimbootloader-x86_64_defconfig for 64-bit slimbootloader board. Signed-off-by: Aiden Park --- configs/slimbootloader-x86_64_defconfig | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 configs/slimbootloader-x86_64_defconfig diff --git a/configs/slimbootloader-x86_64_defconfig b/configs/slimbootloader-x86_64_defconfig new file mode 100644 index 0000000000..f046c30179 --- /dev/null +++ b/configs/slimbootloader-x86_64_defconfig @@ -0,0 +1,24 @@ +CONFIG_X86=y +CONFIG_X86_RUN_64BIT_ONLY=y +CONFIG_ENV_SIZE=0x1000 +CONFIG_VENDOR_INTEL=y +CONFIG_TARGET_SLIMBOOTLOADER=y +# CONFIG_USE_CAR is not set +CONFIG_BOOTSTAGE=y +CONFIG_BOOTSTAGE_REPORT=y +CONFIG_BOOTDELAY=10 +CONFIG_SYS_CONSOLE_INFO_QUIET=y +CONFIG_BOARD_EARLY_INIT_R=y +CONFIG_LAST_STAGE_INIT=y +CONFIG_HUSH_PARSER=y +CONFIG_CMD_MMC=y +CONFIG_CMD_USB=y +CONFIG_CMD_EXT2=y +CONFIG_CMD_FAT=y +CONFIG_EFI_PARTITION=y +CONFIG_DEFAULT_DEVICE_TREE="slimbootloader" +CONFIG_SYS_RELOC_GD_ENV_ADDR=y +CONFIG_REGMAP=y +CONFIG_SYSCON=y +# CONFIG_PCI_PNP is not set +CONFIG_CONSOLE_SCROLL_LINES=5 From patchwork Wed Apr 22 00:45:05 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Park, Aiden" X-Patchwork-Id: 1274589 X-Patchwork-Delegate: bmeng.cn@gmail.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=intel.com Received: from phobos.denx.de (phobos.denx.de [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 496MFT2Mc5z9sP7 for ; Wed, 22 Apr 2020 10:46:37 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 6CD7581B8F; Wed, 22 Apr 2020 02:46:14 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Received: by phobos.denx.de (Postfix, from userid 109) id 4606381BC1; Wed, 22 Apr 2020 02:45:50 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,SPF_HELO_NONE, URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.2 Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 0450781B8F for ; Wed, 22 Apr 2020 02:45:45 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=aiden.park@intel.com IronPort-SDR: +P1bmicLGWREFh1Q6+ASODgBvblXww/+JP3+ET/jetvq8Qd/aXlKrmX1FL0smS15K/2AypXrkn 9VDgWJZhQ7ZA== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 21 Apr 2020 17:45:45 -0700 IronPort-SDR: 8t9UUzrZR71nA+7RTOdbkV0iW1qF7OE2DDvaFpUlNV47v4bGZYsSiPu9vuAWjOAhe1DdNP4w5M 3iUGMmWO4DaQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.72,412,1580803200"; d="scan'208";a="456305627" Received: from younghyu-desk1.jf.intel.com ([134.134.154.164]) by fmsmga005.fm.intel.com with ESMTP; 21 Apr 2020 17:45:45 -0700 From: aiden.park@intel.com To: bmeng.cn@gmail.com, sjg@chromium.org, u-boot@lists.denx.de Cc: Aiden Park Subject: [PATCH 6/8] x86: Fix 64-bit compile warning Date: Tue, 21 Apr 2020 17:45:05 -0700 Message-Id: <20200422004507.2025-7-aiden.park@intel.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200422004507.2025-1-aiden.park@intel.com> References: <20200422004507.2025-1-aiden.park@intel.com> MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.30rc1 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.102.2 at phobos.denx.de X-Virus-Status: Clean From: Aiden Park This is to fix pointer type cast warning in hob command. Signed-off-by: Aiden Park --- cmd/x86/hob.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/cmd/x86/hob.c b/cmd/x86/hob.c index 3967a7ca5a..8c2c1ffc63 100644 --- a/cmd/x86/hob.c +++ b/cmd/x86/hob.c @@ -36,14 +36,14 @@ static int do_hob(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) hdr = gd->arch.hob_list; - printf("HOB list address: 0x%08x\n\n", (unsigned int)hdr); + printf("HOB list address: 0x%p\n\n", hdr); - printf("# | Address | Type | Len | "); + printf("# | Address | Type | Len | "); printf("%36s\n", "GUID"); - printf("---|----------|-----------|------|-"); + printf("---|------------------|-----------|------|-"); printf("------------------------------------\n"); while (!end_of_hob(hdr)) { - printf("%02x | %08x | ", i, (unsigned int)hdr); + printf("%02x | %p | ", i, hdr); type = hdr->type; if (type == HOB_TYPE_UNUSED) desc = "*Unused*"; From patchwork Wed Apr 22 00:45:06 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Park, Aiden" X-Patchwork-Id: 1274591 X-Patchwork-Delegate: bmeng.cn@gmail.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=85.214.62.61; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=intel.com Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 496MG21dlrz9sP7 for ; Wed, 22 Apr 2020 10:47:06 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id C8AF181C53; Wed, 22 Apr 2020 02:46:20 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Received: by phobos.denx.de (Postfix, from userid 109) id E564681C54; Wed, 22 Apr 2020 02:45:51 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,SPF_HELO_NONE, URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.2 Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 12D5181C43 for ; Wed, 22 Apr 2020 02:45:46 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=aiden.park@intel.com IronPort-SDR: LSKHVI+OlP2hn5omph3C++Wi1BTP9oOaIBtSw+6ZJ3jLAFdEu4QWFUnvdiIkS7ftDwZ3pVZ6st wmySgjtIdYzw== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 21 Apr 2020 17:45:46 -0700 IronPort-SDR: Khe6IK07ED3r9j8CF4S7LitFGQEWclc2zrmCuBAT8O5Kv9h7B6h3FYqKYR4paJpFn28FaFilDg 9HKDCyY0oxfA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.72,412,1580803200"; d="scan'208";a="456305630" Received: from younghyu-desk1.jf.intel.com ([134.134.154.164]) by fmsmga005.fm.intel.com with ESMTP; 21 Apr 2020 17:45:46 -0700 From: aiden.park@intel.com To: bmeng.cn@gmail.com, sjg@chromium.org, u-boot@lists.denx.de Cc: Aiden Park Subject: [PATCH 7/8] x86: enable 64-bit kernel boot from 64-bit U-Boot Date: Tue, 21 Apr 2020 17:45:06 -0700 Message-Id: <20200422004507.2025-8-aiden.park@intel.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200422004507.2025-1-aiden.park@intel.com> References: <20200422004507.2025-1-aiden.park@intel.com> MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.30rc1 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.102.2 at phobos.denx.de X-Virus-Status: Clean From: Aiden Park Signed-off-by: Aiden Park --- arch/x86/cpu/x86_64/Makefile | 2 +- arch/x86/cpu/x86_64/call64.S | 21 +++++++++++++++++++++ arch/x86/cpu/x86_64/cpu.c | 10 ++++++++++ arch/x86/include/asm/bootparam.h | 10 +++++++++- arch/x86/include/asm/zimage.h | 2 +- arch/x86/lib/bootm.c | 10 +++++++--- arch/x86/lib/zimage.c | 24 ++++++++++++++++-------- 7 files changed, 65 insertions(+), 14 deletions(-) create mode 100644 arch/x86/cpu/x86_64/call64.S diff --git a/arch/x86/cpu/x86_64/Makefile b/arch/x86/cpu/x86_64/Makefile index 400f0ffe39..951e503a1f 100644 --- a/arch/x86/cpu/x86_64/Makefile +++ b/arch/x86/cpu/x86_64/Makefile @@ -3,4 +3,4 @@ # Written by Simon Glass # -obj-y += cpu.o interrupts.o setjmp.o +obj-y += cpu.o interrupts.o setjmp.o call64.o diff --git a/arch/x86/cpu/x86_64/call64.S b/arch/x86/cpu/x86_64/call64.S new file mode 100644 index 0000000000..e2cfe15080 --- /dev/null +++ b/arch/x86/cpu/x86_64/call64.S @@ -0,0 +1,21 @@ +/* SPDX-License-Identifier: GPL-2.0+ */ +/* + * Copyright (C) 2020 Intel Corporation + */ + +.code64 +.globl cpu_call64 +cpu_call64: + /* + * cpu_call64(ulong pgtable, ulong setup_base, ulong target) + * + * rdi - pgtable (unused - already in 64-bit with paging) + * rsi - setup_base + * rdx - target + * + */ + cli + mov %rdx, %rcx + mov %rsi, %rdx + call *%rcx + ret diff --git a/arch/x86/cpu/x86_64/cpu.c b/arch/x86/cpu/x86_64/cpu.c index 90925e46ea..0730c43f1c 100644 --- a/arch/x86/cpu/x86_64/cpu.c +++ b/arch/x86/cpu/x86_64/cpu.c @@ -7,6 +7,7 @@ #include #include #include +#include /* * Global declaration of gd. @@ -67,3 +68,12 @@ int x86_cpu_reinit_f(void) { return 0; } + +int cpu_jump_to_64bit(ulong setup_base, ulong load_address) +{ + ulong target = load_address + 0x200; + + cpu_call64(0, setup_base, target); + + return -EFAULT; +} diff --git a/arch/x86/include/asm/bootparam.h b/arch/x86/include/asm/bootparam.h index d961dddc9e..73c94a33ec 100644 --- a/arch/x86/include/asm/bootparam.h +++ b/arch/x86/include/asm/bootparam.h @@ -59,7 +59,15 @@ struct setup_header { __u32 initrd_addr_max; __u32 kernel_alignment; __u8 relocatable_kernel; - __u8 _pad2[3]; + __u8 min_alignment; + __u16 xloadflags; +#define XLF_KERNEL_64 BIT(0) +#define XLF_CAN_BE_LOADED_ABOVE_4G BIT(1) +#define XLF_EFI_HANDOVER_32 BIT(2) +#define XLF_EFI_HANDOVER_64 BIT(3) +#define XLF_EFI_KEXEC BIT(4) +#define XLF_5LEVEL BIT(5) +#define XLF_5LEVEL_ENABLED BIT(6) __u32 cmdline_size; __u32 hardware_subarch; __u64 hardware_subarch_data; diff --git a/arch/x86/include/asm/zimage.h b/arch/x86/include/asm/zimage.h index 80e128ccf3..cadeb04168 100644 --- a/arch/x86/include/asm/zimage.h +++ b/arch/x86/include/asm/zimage.h @@ -31,7 +31,7 @@ #define ZIMAGE_LOAD_ADDR 0x10000 struct boot_params *load_zimage(char *image, unsigned long kernel_size, - ulong *load_addressp); + ulong *load_addressp, bool *image_64bit); int setup_zimage(struct boot_params *setup_base, char *cmd_line, int auto_boot, unsigned long initrd_addr, unsigned long initrd_size); void setup_video(struct screen_info *screen_info); diff --git a/arch/x86/lib/bootm.c b/arch/x86/lib/bootm.c index 07d8f1f279..ebed9e4605 100644 --- a/arch/x86/lib/bootm.c +++ b/arch/x86/lib/bootm.c @@ -74,6 +74,7 @@ static int boot_prep_linux(bootm_headers_t *images) void *data = NULL; size_t len; int ret; + bool image_64bit; #ifdef CONFIG_OF_LIBFDT if (images->ft_len) { @@ -116,7 +117,8 @@ static int boot_prep_linux(bootm_headers_t *images) ulong load_address; char *base_ptr; - base_ptr = (char *)load_zimage(data, len, &load_address); + base_ptr = (char *)load_zimage(data, len, &load_address, + &image_64bit); if (!base_ptr) { puts("## Kernel loading failed ...\n"); goto error; @@ -124,6 +126,10 @@ static int boot_prep_linux(bootm_headers_t *images) images->os.load = load_address; cmd_line_dest = base_ptr + COMMAND_LINE_OFFSET; images->ep = (ulong)base_ptr; +#if CONFIG_IS_ENABLED(X86_64) + if (image_64bit) + images->os.arch = IH_ARCH_X86_64; +#endif } else if (images->ep) { cmd_line_dest = (void *)images->ep + COMMAND_LINE_OFFSET; } else { @@ -164,9 +170,7 @@ int boot_linux_kernel(ulong setup_base, ulong load_address, bool image_64bit) * TODO(sjg@chromium.org): Support booting both 32-bit and * 64-bit kernels from 64-bit U-Boot. */ -#if !CONFIG_IS_ENABLED(X86_64) return cpu_jump_to_64bit(setup_base, load_address); -#endif } else { /* * Set %ebx, %ebp, and %edi to 0, %esi to point to the diff --git a/arch/x86/lib/zimage.c b/arch/x86/lib/zimage.c index ffc09630b7..c84e2d39b2 100644 --- a/arch/x86/lib/zimage.c +++ b/arch/x86/lib/zimage.c @@ -129,7 +129,7 @@ static int setup_device_tree(struct setup_header *hdr, const void *fdt_blob) } struct boot_params *load_zimage(char *image, unsigned long kernel_size, - ulong *load_addressp) + ulong *load_addressp, bool *image_64bit) { struct boot_params *setup_base; int setup_size; @@ -179,6 +179,9 @@ struct boot_params *load_zimage(char *image, unsigned long kernel_size, big_image = (bootproto >= 0x0200) && (hdr->loadflags & BIG_KERNEL_FLAG); + /* Determine 64-bit kernel */ + *image_64bit = (hdr->xloadflags & XLF_KERNEL_64) ? true : false; + /* Determine load address */ if (big_image) *load_addressp = BZIMAGE_LOAD_ADDR; @@ -313,12 +316,13 @@ void __setup_pcat_compatibility(void) int do_zboot(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[]) { struct boot_params *base_ptr; - void *bzImage_addr = NULL; + void *bzimage_addr = NULL; ulong load_address; char *s; - ulong bzImage_size = 0; + ulong bzimage_size = 0; ulong initrd_addr = 0; ulong initrd_size = 0; + bool image_64bit; disable_interrupts(); @@ -333,11 +337,11 @@ int do_zboot(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[]) } if (s) - bzImage_addr = (void *)simple_strtoul(s, NULL, 16); + bzimage_addr = (void *)simple_strtoul(s, NULL, 16); if (argc >= 3) { /* argv[2] holds the size of the bzImage */ - bzImage_size = simple_strtoul(argv[2], NULL, 16); + bzimage_size = simple_strtoul(argv[2], NULL, 16); } if (argc >= 4) @@ -346,8 +350,13 @@ int do_zboot(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[]) initrd_size = simple_strtoul(argv[4], NULL, 16); /* Lets look for */ - base_ptr = load_zimage(bzImage_addr, bzImage_size, &load_address); + base_ptr = load_zimage(bzimage_addr, bzimage_size, &load_address, + &image_64bit); +#if !CONFIG_IS_ENABLED(X86_64) + image_64bit = false; +#endif + /* we assume that the kernel is in place */ if (!base_ptr) { puts("## Kernel loading failed ...\n"); return -1; @@ -358,8 +367,7 @@ int do_zboot(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[]) return -1; } - /* we assume that the kernel is in place */ - return boot_linux_kernel((ulong)base_ptr, load_address, false); + return boot_linux_kernel((ulong)base_ptr, load_address, image_64bit); } U_BOOT_CMD( From patchwork Wed Apr 22 00:45:07 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Park, Aiden" X-Patchwork-Id: 1274592 X-Patchwork-Delegate: bmeng.cn@gmail.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=85.214.62.61; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=intel.com Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 496MGD5V1sz9sP7 for ; Wed, 22 Apr 2020 10:47:16 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 4C4B781C67; Wed, 22 Apr 2020 02:46:37 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Received: by phobos.denx.de (Postfix, from userid 109) id 9C10D81C5F; Wed, 22 Apr 2020 02:45:53 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,SPF_HELO_NONE, URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.2 Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 468E681BED for ; Wed, 22 Apr 2020 02:45:49 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=aiden.park@intel.com IronPort-SDR: pwkVPP6kAxUIzSg00pXs/FMvTu3NP4yyDt2JNWpCt98pmwUVSeDmvsdPFj8DY5+bIbxm84EO7w kdVQ2qmzJAwg== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 21 Apr 2020 17:45:48 -0700 IronPort-SDR: dFNWzRgECmebkmedbETX/ipBgENZUtoMPMBNsRv3QZPch3TT4cER6E2J2m2qgzXysgC28+Wvuv sGTrHEtzcbbw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.72,412,1580803200"; d="scan'208";a="456305640" Received: from younghyu-desk1.jf.intel.com ([134.134.154.164]) by fmsmga005.fm.intel.com with ESMTP; 21 Apr 2020 17:45:48 -0700 From: aiden.park@intel.com To: bmeng.cn@gmail.com, sjg@chromium.org, u-boot@lists.denx.de Cc: Aiden Park Subject: [PATCH 8/8] doc: slimbootloader: Update 64-bit build instruction Date: Tue, 21 Apr 2020 17:45:07 -0700 Message-Id: <20200422004507.2025-9-aiden.park@intel.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200422004507.2025-1-aiden.park@intel.com> References: <20200422004507.2025-1-aiden.park@intel.com> MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.30rc1 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.102.2 at phobos.denx.de X-Virus-Status: Clean From: Aiden Park Add steps to build 64-bit Slim Bootloader and U-Boot. Signed-off-by: Aiden Park Reviewed-by: Bin Meng --- doc/board/intel/slimbootloader.rst | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/doc/board/intel/slimbootloader.rst b/doc/board/intel/slimbootloader.rst index a8c41b1aa7..779ed78ef1 100644 --- a/doc/board/intel/slimbootloader.rst +++ b/doc/board/intel/slimbootloader.rst @@ -145,6 +145,35 @@ Also, the PayloadId needs to be set for APL board. Use DediProg to flash IFWI. You should reach at U-Boot serial console. +Build Instruction for 64-bit Slim Bootloader & U-Boot on QEMU target +-------------------------------------------------------------------- + +1. Build 64-bit U-Boot and obtain u-boot-dtb.bin:: + + $ make distclean + $ make slimbootloader-x86_64_defconfig + $ make all + +2. Copy u-boot-dtb.bin to Slim Bootloader:: + + $ mkdir -p /PayloadPkg/PayloadBins/ + $ cp /u-boot-dtb.bin /PayloadPkg/PayloadBins/u-boot-dtb.bin + +3. Update PayloadId with 'U-BT':: + + $ vi Platform/QemuBoardPkg/CfgData/CfgDataExt_Brd1.dlt + -GEN_CFG_DATA.PayloadId | 'AUTO' + +GEN_CFG_DATA.PayloadId | 'U-BT' + +4. Update payload text base:: + + $ vi Platform/QemuBoardPkg/BoardConfig.py + + self.PAYLOAD_LOAD_HIGH = 0 + + self.PAYLOAD_EXE_BASE = 0x00100000 + +5. Build QEMU target:: + + $ python BuildLoader.py build qemu -a x64 -p "OsLoader.efi:LLDR:Lz4;u-boot-dtb.bin:U-BT:Lzma" Build Instruction to use ELF U-Boot -----------------------------------