From patchwork Tue Oct 17 01:11:43 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Masahiro Yamada X-Patchwork-Id: 115999 Delivered-To: patch@linaro.org Received: by 10.140.22.163 with SMTP id 32csp4299158qgn; Mon, 16 Oct 2017 18:17:52 -0700 (PDT) X-Google-Smtp-Source: AOwi7QBapYqG9RzgMb62BKHp0/1nEMAmnk7br8AY6CJCRYPVYM9lSMv4wNZRuG4NEP0EdkPiWWJs X-Received: by 10.80.178.36 with SMTP id o33mr15345644edd.116.1508203072313; Mon, 16 Oct 2017 18:17:52 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1508203072; cv=none; d=google.com; s=arc-20160816; b=sc9bUL7IxczK43onW9aVwT8sqEZcF/HUQqsTH6wqBflq6NXZqfCZiRdDT3nQp4+7/F ruLQzwjAT6zLpYWtRwLAmwOXwnx4a9xXKjZXNJvBrmGp5Gh9Fcjs3kVR76zBlr1SVBDU ZLki2Mp0nyfhONqIKn/LY9ELQewyI7IVuBCnE6PFgMlxqMCukykxDn3bW5UnwSEZWHHC 3SCRTJ4LAwKTzEo6bROtQj6tFQAdd0Ix6QhUnIhPUMjypjU4rERZt3IfuoGsk027o2Of bU3JdFjXxkq05o6Aagdh5fdtwdmSvdbpVDS8okpVsURE3EjYS2KRE6RSgWIIHjsWVmUx JjuA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:mime-version :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:cc:references:in-reply-to:message-id :date:to:from:dkim-signature:dkim-filter:arc-authentication-results; bh=6BzbSpOzAjsAXRRJu9IKLwDA7cjLFUTGXIIvbxsDhg4=; b=uK/sIKDTKQf+oxzlwTvCQR6wqi9Ks92TnNOCPRuv80HpVr55jPyMfQ0CdjPxos6Vr3 OK9d5STcP90BJyxbF5ihd+K3yBVBCzgc8nus475llaZlB1uTgMaZQzqrP9GeBuAZax5d ++fq6zQJM9qvNAsHe7PkSlpsn+Bmjt6bgmIuXH9LzojwbKA9TlOfEZgEc40+sM+2skWT bJS/BhHawLa5YPSJlchC5WfQfv8Xp5KpxP+3Rn64SOSLTKYG59Uu+J3dt/wS1ODtFl12 brG/Vg+50l+WPCT8niLG8+MGiYkZLq4C+f7ZGX9/5ISvDjkjAaFvYfuPrRBBxNiu4mnf 1H6w== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@nifty.com header.s=dec2015msa header.b=m3duwW29; spf=pass (google.com: best guess record for domain of u-boot-bounces@lists.denx.de designates 81.169.180.215 as permitted sender) smtp.mailfrom=u-boot-bounces@lists.denx.de Return-Path: Received: from lists.denx.de (dione.denx.de. [81.169.180.215]) by mx.google.com with ESMTP id c35si1867273ede.367.2017.10.16.18.17.52; Mon, 16 Oct 2017 18:17:52 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of u-boot-bounces@lists.denx.de designates 81.169.180.215 as permitted sender) client-ip=81.169.180.215; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@nifty.com header.s=dec2015msa header.b=m3duwW29; spf=pass (google.com: best guess record for domain of u-boot-bounces@lists.denx.de designates 81.169.180.215 as permitted sender) smtp.mailfrom=u-boot-bounces@lists.denx.de Received: by lists.denx.de (Postfix, from userid 105) id EA6B8C21C40; Tue, 17 Oct 2017 01:16:56 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=T_DKIM_INVALID autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id D78D8C21D95; Tue, 17 Oct 2017 01:13:11 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 76507C21C71; Tue, 17 Oct 2017 01:13:08 +0000 (UTC) Received: from conuserg-09.nifty.com (conuserg-09.nifty.com [210.131.2.76]) by lists.denx.de (Postfix) with ESMTPS id BC93AC21D80 for ; Tue, 17 Oct 2017 01:12:51 +0000 (UTC) Received: from pug.e01.socionext.com (p14092-ipngnfx01kyoto.kyoto.ocn.ne.jp [153.142.97.92]) (authenticated) by conuserg-09.nifty.com with ESMTP id v9H1Bnl5015917; Tue, 17 Oct 2017 10:11:51 +0900 DKIM-Filter: OpenDKIM Filter v2.10.3 conuserg-09.nifty.com v9H1Bnl5015917 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nifty.com; s=dec2015msa; t=1508202711; bh=SIGn3mrEEnRTV5Soly5Dt5bQLtLb42GZpiCox5faB9c=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=m3duwW29S9x5/cLcP9DLa+gubqC6VGweTacn7j28VFS1p/3vjnab8ljinNOE230wl jbhQSaG6MeKkimGVfsWujbjxNFpedXMnCIcOY4IgZqTAtqm5DTBhqvYPc7t+Qzx3uh CF1Isn5ARucjo2E5zW/6+vJDBujLPocru3MMfOYOqqYkl6rBauSqHbDNKdQDguHOl7 SNk/W1ZLOy3nYzo61hI1jzznRygeQ7/vdz1WOXcLTKfx1ba7DdGWhbJdrBSU0b6by5 lWuVPFjhWSAtqb4J6fdSY/3758aUa3QhD+HLIP4v2zAz2/+rk+VH2rOsNCs6ypYTmW Xrnr6lw/Kt7nw== X-Nifty-SrcIP: [153.142.97.92] From: Masahiro Yamada To: u-boot@lists.denx.de Date: Tue, 17 Oct 2017 10:11:43 +0900 Message-Id: <1508202703-23165-4-git-send-email-yamada.masahiro@socionext.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1508202703-23165-1-git-send-email-yamada.masahiro@socionext.com> References: <1508202703-23165-1-git-send-email-yamada.masahiro@socionext.com> Cc: Tom Rini Subject: [U-Boot] [PATCH 3/3] pylibfdt: compile pylibfdt only when dtoc/binman is necessary X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" Currently, pylibfdt is always compiled if swig is installed on your machine. It is really annoying because most of targets (excepts x86, sunxi, rockchip) do not use dtoc or binman. "checkbinman" and "checkdtoc" are wrong. It is odd that the final build stage checks if we have built necessary tools. If your platform depends on dtoc/binman, you must be able to build pylibfdt. If swig is not installed, it should fail immediately. I added PYLIBFDT, DTOC, BINMAN entries to Kconfig. They should be property select:ed by platforms that need them. Kbuild will descend into scripts/dtc/pylibfdt/ only when CONFIG_PYLIBFDT is enabled. Signed-off-by: Masahiro Yamada --- Makefile | 17 ++--------------- arch/arm/Kconfig | 1 + arch/x86/Kconfig | 1 + dts/Kconfig | 13 +++++++++++++ scripts/Makefile.spl | 15 ++------------- scripts/dtc/Makefile | 2 +- 6 files changed, 20 insertions(+), 29 deletions(-) diff --git a/Makefile b/Makefile index 0044503..627a639 100644 --- a/Makefile +++ b/Makefile @@ -1135,7 +1135,7 @@ cmd_ldr = $(LD) $(LDFLAGS_$(@F)) \ u-boot.rom: u-boot-x86-16bit.bin u-boot.bin \ $(if $(CONFIG_SPL_X86_16BIT_INIT),spl/u-boot-spl.bin) \ - $(if $(CONFIG_HAVE_REFCODE),refcode.bin) checkbinman FORCE + $(if $(CONFIG_HAVE_REFCODE),refcode.bin) FORCE $(call if_changed,binman) OBJCOPYFLAGS_u-boot-x86-16bit.bin := -O binary -j .start16 -j .resetvec @@ -1144,8 +1144,7 @@ u-boot-x86-16bit.bin: u-boot FORCE endif ifneq ($(CONFIG_ARCH_SUNXI),) -u-boot-sunxi-with-spl.bin: spl/sunxi-spl.bin u-boot.img u-boot.dtb \ - checkbinman FORCE +u-boot-sunxi-with-spl.bin: spl/sunxi-spl.bin u-boot.img u-boot.dtb FORCE $(call if_changed,binman) endif @@ -1379,18 +1378,6 @@ $(version_h): include/config/uboot.release FORCE $(timestamp_h): $(srctree)/Makefile FORCE $(call filechk,timestamp.h) -checkbinman: tools - @if ! ( echo 'import libfdt' | ( PYTHONPATH=scripts/dtc/pylibfdt $(PYTHON) )); then \ - echo >&2; \ - echo >&2 '*** binman needs the Python libfdt library.'; \ - echo >&2 '*** Either install it on your system, or try:'; \ - echo >&2 '***'; \ - echo >&2 '*** sudo apt-get install swig libpython-dev'; \ - echo >&2 '***'; \ - echo >&2 '*** to have U-Boot build its own version.'; \ - false; \ - fi - # --------------------------------------------------------------------------- quiet_cmd_cpp_lds = LDS $@ cmd_cpp_lds = $(CPP) -Wp,-MD,$(depfile) $(cpp_flags) $(LDPPFLAGS) \ diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 64e0ee4..d69141a 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -682,6 +682,7 @@ config ARCH_SOCFPGA config ARCH_SUNXI bool "Support sunxi (Allwinner) SoCs" + select BINMAN select CMD_GPIO select CMD_MMC if MMC select CMD_USB if DISTRO_DEFAULTS diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig index 38a6187..9d12a98 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig @@ -152,6 +152,7 @@ config SMM_TSEG_SIZE config X86_RESET_VECTOR bool default n + select BINMAN # The following options control where the 16-bit and 32-bit init lies # If SPL is enabled then it normally holds this init code, and U-Boot proper diff --git a/dts/Kconfig b/dts/Kconfig index daa757d..0cef225 100644 --- a/dts/Kconfig +++ b/dts/Kconfig @@ -8,6 +8,17 @@ config SUPPORT_OF_CONTROL config DTC bool +config PYLIBFDT + bool + +config DTOC + bool + select PYLIBFDT + +config BINMAN + bool + select DTOC + menu "Device Tree Control" depends on SUPPORT_OF_CONTROL @@ -231,6 +242,7 @@ config OF_SPL_REMOVE_PROPS config SPL_OF_PLATDATA bool "Generate platform data for use in SPL" depends on SPL_OF_CONTROL + select DTOC help For very constrained SPL environments the overhead of decoding device tree nodes and converting their contents into platform data @@ -252,6 +264,7 @@ config SPL_OF_PLATDATA config TPL_OF_PLATDATA bool "Generate platform data for use in TPL" depends on TPL_OF_CONTROL + select DTOC help For very constrained SPL environments the overhead of decoding device tree nodes and converting their contents into platform data diff --git a/scripts/Makefile.spl b/scripts/Makefile.spl index 065bb25..ca04476 100644 --- a/scripts/Makefile.spl +++ b/scripts/Makefile.spl @@ -276,10 +276,10 @@ PHONY += dts_dir dts_dir: $(shell [ -d $(obj)/dts ] || mkdir -p $(obj)/dts) -include/generated/dt-structs-gen.h: $(obj)/$(SPL_BIN).dtb dts_dir checkdtoc +include/generated/dt-structs-gen.h: $(obj)/$(SPL_BIN).dtb dts_dir FORCE $(call if_changed,dtoch) -$(obj)/dts/dt-platdata.c: $(obj)/$(SPL_BIN).dtb dts_dir checkdtoc +$(obj)/dts/dt-platdata.c: $(obj)/$(SPL_BIN).dtb dts_dir FORCE $(call if_changed,dtocc) ifdef CONFIG_SAMSUNG @@ -380,17 +380,6 @@ ifneq ($(cmd_files),) include $(cmd_files) endif -checkdtoc: tools - @if ! ( echo 'import libfdt' | ( PYTHONPATH=scripts/dtc/pylibfdt $(PYTHON) )); then \ - echo '*** dtoc needs the Python libfdt library. Either '; \ - echo '*** install it on your system, or try:'; \ - echo '***'; \ - echo '*** sudo apt-get install swig libpython-dev'; \ - echo '***'; \ - echo '*** to have U-Boot build its own version.'; \ - false; \ - fi - PHONY += FORCE FORCE: diff --git a/scripts/dtc/Makefile b/scripts/dtc/Makefile index f4a16ed..90ef2db 100644 --- a/scripts/dtc/Makefile +++ b/scripts/dtc/Makefile @@ -31,4 +31,4 @@ $(obj)/dtc-lexer.lex.o: $(obj)/dtc-parser.tab.h clean-files := dtc-lexer.lex.c dtc-parser.tab.c dtc-parser.tab.h # Added for U-Boot -subdir-y += pylibfdt +subdir-$(CONFIG_PYLIBFDT) += pylibfdt