From mboxrd@z Thu Jan 1 00:00:00 1970 Delivery-date: Thu, 09 Dec 2021 12:03:42 +0100 Received: from metis.ext.pengutronix.de ([2001:67c:670:201:290:27ff:fe1d:cc33]) by lore.white.stw.pengutronix.de with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1mvHDC-0010rC-3X for lore@lore.pengutronix.de; Thu, 09 Dec 2021 12:03:42 +0100 Received: from localhost ([127.0.0.1] helo=metis.ext.pengutronix.de) by metis.ext.pengutronix.de with esmtp (Exim 4.92) (envelope-from ) id 1mvHDB-0001kF-23; Thu, 09 Dec 2021 12:03:41 +0100 Received: from mail-he1eur01on062b.outbound.protection.outlook.com ([2a01:111:f400:fe1e::62b] helo=EUR01-HE1-obe.outbound.protection.outlook.com) by metis.ext.pengutronix.de with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mvHCj-0001b7-5K; Thu, 09 Dec 2021 12:03:13 +0100 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=lgvpIAg3UoXj1xD22EzT5HnTk4uksmVxdc2l01v6hpZq1nEraerj1IA05Y0VN7UyWBtaAl67CSiA0za4k84ZPM2MnvWBrAxTn7XCtnlQyzk3dx/vujzStMuzBbhHQJMnJLZv+Dv1kQ1RcfDWh+yhKFq/DOpYW48Xusiqh9M6l+x4OzJTwOtyndqLvqmz+Ryxp3VhRLwPkC6AmRc1l9HWV4xYCOb1xjaTUxfaVzkGQN93VQyeuezDLLeNE3t3lvmupmYUDvy9X2fM6jP37BwkR8SvYdGKtfDj+OR2NH5oFsuOHzYzMRlv9TDddjmrJ/qb/Ovgo3TmVg/c2H6mG5FWDg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=GJxMWRINDdeNxf1xKIK6nA2NZK0YT/CUGMydvO0Ee3k=; b=cyhMG1ZGw4CThURiKFqjMEkLd6Rp+kAZ9WhfWcn7jdKG7ArN+Rvu16d0teFqniY+y9iXmMDKaauk/DiopTNC/3yo72snVDyg9dHIvWvjx/mAZv0zPm1ZOT3d/EF2JNV0GjcXVqdm9nAoVwm2SqeXc9CNOJPJUTwVm665dGHEIaNHYnBFc1LWk5dx1o9FbyRqvKervfPq+ca8RaASozmtBUZ3P/OYigNnGCx4VmGAenfuUcl3EPiHDG4YQSsFUdmD4rOcIEC0JBYp9a9aVsdIwzF57SSrUgWZwufresrkqP4YCzrl9yNPue19J8wjEyaDkYJeL5mTlH19ZFBBUeM39g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=wolfvision.net; dmarc=pass action=none header.from=wolfvision.net; dkim=pass header.d=wolfvision.net; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=wolfvision.net; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=GJxMWRINDdeNxf1xKIK6nA2NZK0YT/CUGMydvO0Ee3k=; b=j1TgAFFl5sucHj9XNis4KRIPpcyHxSk4Iz7hOHaoJk3Y+gLTZq/d2dE8+5ix2HW0xq5FNMUAVHPVHikBiW2+eS29B2reHi90Kk4uxclQbWmwUs9OHx0dJWnvklL2MJxCItdlNGxjdu4h+wPEtZDBPoP4fjhSBk7Ti11x3brUBCI= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=wolfvision.net; Received: from DBBPR08MB4523.eurprd08.prod.outlook.com (2603:10a6:10:c8::19) by DBBPR08MB6219.eurprd08.prod.outlook.com (2603:10a6:10:20d::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4755.21; Thu, 9 Dec 2021 11:03:10 +0000 Received: from DBBPR08MB4523.eurprd08.prod.outlook.com ([fe80::81d1:d448:4016:1956]) by DBBPR08MB4523.eurprd08.prod.outlook.com ([fe80::81d1:d448:4016:1956%4]) with mapi id 15.20.4755.022; Thu, 9 Dec 2021 11:03:10 +0000 From: Michael Riesch To: ptxdist@pengutronix.de Date: Thu, 9 Dec 2021 12:02:57 +0100 Message-Id: <20211209110258.3307503-2-michael.riesch@wolfvision.net> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20211209110258.3307503-1-michael.riesch@wolfvision.net> References: <20211209110258.3307503-1-michael.riesch@wolfvision.net> X-ClientProxiedBy: ZR0P278CA0181.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:44::14) To DBBPR08MB4523.eurprd08.prod.outlook.com (2603:10a6:10:c8::19) MIME-Version: 1.0 Received: from charlie.fritz.box (2a05:1141:1c9:7c00:2971:328c:3026:3149) by ZR0P278CA0181.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:44::14) with Microsoft SMTP Server (version=TLS1_2, cipher=) via Frontend Transport; Thu, 9 Dec 2021 11:03:10 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 56af7bd3-5c2b-4e9a-5442-08d9bb037cd8 X-MS-TrafficTypeDiagnostic: DBBPR08MB6219:EE_ X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:5797; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: nyxwa1o0wDdOfja3Ip7rAimTfeT6ZQjcEntL+v354MQJUmCrCAdAHagwIHCoxghDUy6/4318QfCtsudQ0bniAQ2hzOR9Sk1xhtmVsIadSgzwEHabn1jRQeJ7NJWzs+ONzkV9fCCKjVYoCFV2Dzfzn4Wo1fyaOg5zcioG/5sVh6fez6cd5RQ829bL1YqdU7unSI7R5ga8U9j/3aOsPfTvOl8lO6f+aa/7Yltnu5bQp9YonXxrZEazAFCsep3VdIT1aH2bKZ2uJNAhPi4fRpChXCStksa9TfGXIElQ4vqg97nFIzXHhDd6KRgy5aMW3SPBZjx1c2tvWXychKLCcMeII9yNDiMZHoU+Vho57Ey16BnxAsMQac5Ghjd9Eeim+tyZsXRp0s1vFoVzk1g9F4kJCIotK02hdFN0z3RbQ+mkbhxuJbGITiRs8bVRHOFsHZpucB09iARuSmd5UMGrbwyjOKCDmhKZJ8UxjJK4uWg3JIiHVqCaS0SjrEYugrouLqwVpCet2iQJMWXUk2eGO/Ur0WBrg1ZyIwY03F0JjE63UHRmC5HUD2aSs1WT6TqoAEOJ9YCk3j/GRj1+dj9v133rsZ0lKfVmx6zABZZ1ZqrNUwAxCK01eXEwsej2PX866UIsz65lcV6w6o/EYfkYFNE5Sg== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DBBPR08MB4523.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(6486002)(1076003)(6916009)(44832011)(6666004)(36756003)(316002)(86362001)(508600001)(186003)(4326008)(8936002)(83380400001)(52116002)(66556008)(6512007)(2906002)(107886003)(5660300002)(6506007)(8676002)(38100700002)(66946007)(2616005)(66476007); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?RKSpLuZFuyZjuDUFVy5eHg4kELugY65j2ViPDXzInf7UXoEJSW4BG64s2vW/?= =?us-ascii?Q?qMGX547so5e1p8f0j8Zv4DQCrAhGCUUKfEi1M3NIVsMCLWl7hAgwVV7HaI0P?= =?us-ascii?Q?DxPKIZ4lZXHhNS1jSutRys4LlXaRDGL/JaLVWqVEu6qBoHXrdvnOQKkTgu4k?= =?us-ascii?Q?Zt+yRyRy9ms8oC291OP91wJyz+qGWZgTCYohb6+9ItuQv1F+H3FnkKymWeVZ?= =?us-ascii?Q?s8MuZVJFNJynvNRU0clcVpO3y/atBX/B+GnNaiHTVmtNN/yN7f3NPrqn0sZ2?= =?us-ascii?Q?ecly+Lr3zTZ2c6exG9fSWN+4yCPeGEjGDKIulw93P0s8ip2NBMblNxSQgh4Q?= =?us-ascii?Q?dTE2BLXauZVr9UI2V6rw3aOHDZZ5nny3ovXzgboHDEVPihZEYq0wgPGUn0C+?= =?us-ascii?Q?XukEKBomf9EXTH400wPUJGuVd49WAms4bIwDSyt5X2JcKNrrTH2tyoyVL2wb?= =?us-ascii?Q?mVNXQxXpG11dMm9KwwzxFq8VdF1wp28ruPOCJbGNmrkatcEkCX1JlV0Vpr9P?= =?us-ascii?Q?pDjNSc/nfGyI98hdVqSHm6k0caVMoUsHok7cAdng2fQ8K5JzHqMJmZEeXAWf?= =?us-ascii?Q?+dMfL3K29TR38kG0oyw2aF/WP1ajJgpZFsD44KE0AzyimM8AHh9QIxlIfeYq?= =?us-ascii?Q?Gu+PuWkRRxsh6eJxolmSTRQ2A+KIMUBZyw5luGm8GoWydUg9a8fHgeAFSAjj?= =?us-ascii?Q?ByNPUTXPJilhdyRZznoitmT8x+xmqnYMYBe5J3cKNiOWdMxQkUsWsX92oRd1?= =?us-ascii?Q?qSGSIxIOQsZwsp+RGkowGEx+0wEryS67yWIz/BLs85VLgOuvmMu7j1CY921P?= =?us-ascii?Q?+5NULzwEunQkLsajFshdlEwxQQat6ZBCV+OyEnb9dITtkzSffFQZsyYncoja?= =?us-ascii?Q?fxvx6zdkYEu/BU7y/j4Az2X+UUVEKWH4w2OYoAH1KqyOMm7lBm1hj4IIuTRx?= =?us-ascii?Q?01ij6BqxxY7q/CKQS0yKSdwz668vPkllsO/0UJ5ijwSd6NCXx2JQO+vlQlgv?= =?us-ascii?Q?6NSl78rcf0yV1k56zZE/vDj8YCNFsp5kUISOhNjV9+XQyk64r7g3VaeK02cv?= =?us-ascii?Q?EisnzpOjs9qfVvrV89YnmjvAAQXjPRGR8R7QngS+I7mLrZksYfM6lK3Ukllb?= =?us-ascii?Q?4kld+wWOV+EmlUvuei7LT9Mf1POyfl7eXZ3+ORGcv8k8BrK758SIayX4zFLY?= =?us-ascii?Q?vA+kWTvvlf9M8+6utfRM2JeZF2kH46/PCm8Z/ssZ63suHBapVgGu+knxbzpy?= =?us-ascii?Q?To6GVnxoESOXPa59yya4TXFrBhsepjpGxLF5P5WsH4btGRzXhGkcWP77Zl6B?= =?us-ascii?Q?qPHEDo0XQSFgdeJHS+c0mNOC0BJMR2EYT7jHlWxXWQ4jKm0K4BZbKVCw3L4z?= =?us-ascii?Q?E9a4mTuQJmARBI28DL5nUv/ScGzxQGb1cScmA86qkIR5cHXxX/zDL9aUWQXS?= =?us-ascii?Q?GcAOU7GOSDGms33bjJ9eWI9x7zIH5CxgYS+eA9G5iHwvQIVSejw8NBwThp1g?= =?us-ascii?Q?85c0I+2XfaMkbj2pMhY/hqxwBk9HZrD9sxJCVzdHiaNNPcx9+W3ewThVTWOi?= =?us-ascii?Q?vaCCvtZ6goUaDQQGnGhW7ZCvqWoyDQiEbWyULON9lONNr2WIyZxU8Ks3jGPP?= =?us-ascii?Q?Sh9RdRWyezJRBDvT5ymZoJ9tGzoMk9N78H7Rltm5oXcXvcmZMoILlmytxUpZ?= =?us-ascii?Q?EwhtYUXxNQRwHZRfnnTqxCQS2nFdcAhycpdCa4QyL2m9CGQde4en4j1e9sD0?= =?us-ascii?Q?e4l2Z9NkpooS9L6xc4FKNEOot7kPqg8=3D?= X-OriginatorOrg: wolfvision.net X-MS-Exchange-CrossTenant-Network-Message-Id: 56af7bd3-5c2b-4e9a-5442-08d9bb037cd8 X-MS-Exchange-CrossTenant-AuthSource: DBBPR08MB4523.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Dec 2021 11:03:10.4613 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: e94ec9da-9183-471e-83b3-51baa8eb804f X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: awVr68WiWrLZ6vXvllkqGSVwyowipbAHV8k3g9HuO5lwyuCXRJCoWmYvrE15fn3/Kicv+wkMgT66gLoEmqPQ0Gdm0BNiqLuiSN43QRdne1Q= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR08MB6219 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on metis.ext.pengutronix.de X-Spam-Level: X-Spam-Status: No, score=-3.2 required=4.0 tests=AWL,BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,MSGID_FROM_MTA_HEADER, SPF_HELO_PASS,SPF_PASS autolearn=ham autolearn_force=no version=3.4.2 Subject: [ptxdist] [PATCH v2 1/2] ptxd_make_world_{dtb, dtbo}: add support for device tree overlays X-BeenThere: ptxdist@pengutronix.de X-Mailman-Version: 2.1.29 Precedence: list List-Id: PTXdist Development Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: ptxdist@pengutronix.de Cc: christian.melki@t2data.com, m.tretter@pengutronix.de, Michael Riesch Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "ptxdist" X-SA-Exim-Connect-IP: 127.0.0.1 X-SA-Exim-Mail-From: ptxdist-bounces@pengutronix.de X-SA-Exim-Scanned: No (on metis.ext.pengutronix.de); SAEximRunCond expanded to false Make ptxd_make_dtb more general and provide suitable wrappers to support the generation of device tree overlays. Signed-off-by: Michael Riesch --- rules/post/ptxd_make_world_dtbo.make | 21 ++++++++ scripts/lib/ptxd_make_world_dtb.sh | 79 ++++++++++++++++++++-------- 2 files changed, 78 insertions(+), 22 deletions(-) create mode 100644 rules/post/ptxd_make_world_dtbo.make diff --git a/rules/post/ptxd_make_world_dtbo.make b/rules/post/ptxd_make_world_dtbo.make new file mode 100644 index 000000000..61babc653 --- /dev/null +++ b/rules/post/ptxd_make_world_dtbo.make @@ -0,0 +1,21 @@ +# -*-makefile-*- +# +# Copyright (C) 2020 by Michael Tretter +# +# For further information about the PTXdist project and license conditions +# see the README file. +# + +world/dtbo/env = \ + $(call world/env, $(1)) \ + pkg_dtso_path="$($(1)_DTSO_PATH)" \ + pkg_dtso="$($(1)_DTSO)" \ + pkg_dtbo_dir="$($(1)_DTBO_DIR)" \ + pkg_kernel_src="$($(1)_KERNEL_DIR)" \ + pkg_arch="$(GENERIC_KERNEL_ARCH)" + +world/dtbo = \ + $(call world/dtbo/env,$(strip $(1))) \ + ptxd_make_world_dtbo + +# vim: syntax=make diff --git a/scripts/lib/ptxd_make_world_dtb.sh b/scripts/lib/ptxd_make_world_dtb.sh index f5e796b9d..f78d2f885 100644 --- a/scripts/lib/ptxd_make_world_dtb.sh +++ b/scripts/lib/ptxd_make_world_dtb.sh @@ -7,24 +7,22 @@ # ptxd_make_dtb() { - local dtc dts tmp_dts dtb deps tmp_deps + local dtc dts tmp_dts dtb dtb_extra_args dtb_kernel_dir deps tmp_deps - if [[ "${dts_dts}" =~ ^/.* ]]; then - ptxd_bailout "'${dts_dts}' must not be an absolute path!" \ - "Use _DTS_PATH to specify the search path." - fi + dts="${dtb_source}" + dtb="${dtb_target}" - if ! ptxd_in_path pkg_dts_path "${dts_dts}"; then - ptxd_bailout "Device-tree '${dts_dts}' not found in '${pkg_dts_path}'." - fi - dts="${ptxd_reply}" - dtb="${dtb_dir}/$(basename ${dts/%.dts/.dtb})" + dtb_kernel_dir="${pkg_kernel_src:-${pkg_dir}}" - dtc="${pkg_build_dir}/scripts/dtc/dtc" + dtc="${dtb_kernel_dir}/scripts/dtc/dtc" if [ ! -x "${dtc}" ]; then dtc=dtc fi + if [ "$(ptxd_get_ptxconf PTXCONF_KERNEL_DTS_SUPPORT_OVERLAYS)" == "y" ]; then + dtb_extra_args="-@" + fi + tmp_dts="${ptx_state_dir}/${pkg_label}.$(basename "${dts}").tmp" deps="${ptx_state_dir}/${pkg_label}.$(basename "${dts}").deps" @@ -39,16 +37,16 @@ ptxd_make_dtb() { -Wp,-MT,${dtb_deps_target} \ -nostdinc \ -I"$(dirname "${dts}")" \ - -I${pkg_dir}/arch/${pkg_arch}/boot/dts \ - -I${pkg_dir}/arch/${pkg_arch}/boot/dts/include \ - -I${pkg_dir}/scripts/dtc/include-prefixes \ - -I${pkg_dir}/drivers/of/testcase-data \ - -I${pkg_dir}/include \ + -I${dtb_kernel_dir}/arch/${pkg_arch}/boot/dts \ + -I${dtb_kernel_dir}/arch/${pkg_arch}/boot/dts/include \ + -I${dtb_kernel_dir}/scripts/dtc/include-prefixes \ + -I${dtb_kernel_dir}/drivers/of/testcase-data \ + -I${dtb_kernel_dir}/include \ -undef -D__DTS__ -x assembler-with-cpp \ -o ${tmp_dts} \ ${dts} && - sed -e "\;^ ${pkg_dir}[^ ]*;d" \ + sed -e "\;^ ${dtb_kernel_dir}[^ ]*;d" \ -e 's;^ \([^ \]*\); $(wildcard \1);' "${tmp_deps}" > "${deps}" && # empty line in case all dependencies were removed echo >> "${deps}" && @@ -57,9 +55,9 @@ ptxd_make_dtb() { echo "DTC $(ptxd_print_path "${dtb}")" && ptxd_eval \ "${dtc}" \ - $(ptxd_get_ptxconf PTXCONF_DTC_EXTRA_ARGS) \ + "${dtb_extra_args}" \ -i "$(dirname "${dts}")" \ - -i "${pkg_dir}/arch/${pkg_arch}/boot/dts" \ + -i "${dtb_kernel_dir}/arch/${pkg_arch}/boot/dts" \ -d "${tmp_deps}" \ -I dts -O dtb -b 0 \ -o "${dtb}" "${tmp_dts}" && @@ -81,17 +79,54 @@ ptxd_make_dtb() { export -f ptxd_make_dtb +ptxd_make_world_dtbo() { + local dtb_deps_target dtb_source dtb_target + + ptxd_make_world_init || break + + dtb_deps_target="${ptx_state_dir}/${pkg_stamp}" + + echo -e "\nBuilding device tree overlays..." + + for overlay in ${pkg_dtso}; do + if [[ "${overlay}" =~ ^/.* ]]; then + ptxd_bailout "'${overlay}' must not be an absolute path!" \ + "Use _DTSO_PATH to specify the search path." + fi + + if ! ptxd_in_path pkg_dtso_path "${overlay}"; then + ptxd_bailout "Overlay '${overlay}' not found in '${pkg_dtso_path}'." + fi + dtb_source="${ptxd_reply}" + dtb_target="${pkg_pkg_dir}/${pkg_dtbo_dir}/$(basename ${overlay/%.dts*/.dtbo})" + + ptxd_make_dtb || break + done +} +export -f ptxd_make_world_dtbo + + ptxd_make_world_dtb() { - local dtb_deps_target dtb_dir + local dtb_deps_target dtb_source dtb_target ptxd_make_world_init || break dtb_deps_target="${ptx_state_dir}/${pkg_stamp}" - dtb_dir="${pkg_pkg_dir}/boot" - echo -e "\nBuilding Device trees..." + echo -e "\nBuilding device trees..." for dts_dts in ${pkg_dts}; do + if [[ "${dts_dts}" =~ ^/.* ]]; then + ptxd_bailout "'${dts_dts}' must not be an absolute path!" \ + "Use _DTS_PATH to specify the search path." + fi + + if ! ptxd_in_path pkg_dts_path "${dts_dts}"; then + ptxd_bailout "Device tree '${dts_dts}' not found in '${pkg_dts_path}'." + fi + dtb_source="${ptxd_reply}" + dtb_target="${pkg_pkg_dir}/boot/$(basename ${dts_dts/%.dts/.dtb})" + ptxd_make_dtb || break done } -- 2.30.2 _______________________________________________ ptxdist mailing list ptxdist@pengutronix.de To unsubscribe, send a mail with subject "unsubscribe" to ptxdist-request@pengutronix.de