From patchwork Tue Aug 29 20:15:48 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 807276 X-Patchwork-Delegate: sjg@chromium.org Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=google.com header.i=@google.com header.b="TlQjhSmM"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 3xhg7S32Y0z9sQl for ; Wed, 30 Aug 2017 06:23:16 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id 0B3ECC226C5; Tue, 29 Aug 2017 20:18:58 +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=RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, 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 5B7A5C225BA; Tue, 29 Aug 2017 20:16:42 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 5660AC22602; Tue, 29 Aug 2017 20:16:18 +0000 (UTC) Received: from mail-oi0-f50.google.com (mail-oi0-f50.google.com [209.85.218.50]) by lists.denx.de (Postfix) with ESMTPS id 90D05C225AB for ; Tue, 29 Aug 2017 20:16:14 +0000 (UTC) Received: by mail-oi0-f50.google.com with SMTP id k77so36399832oib.2 for ; Tue, 29 Aug 2017 13:16:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=haBOpWoD43Oy3HrMplmjgXDkLGMwHCnDSInV9CrEkEo=; b=TlQjhSmMJ/H3ivymwmrLUeJQOThO7/IXmoDa8X7ZdvURHssrtlQuM6rlZx7EGHVwCD h5bmZdNZrhDocHCHrbQ++B1lIaj5rXBDbk+i3lsWispY99jGCanmV893qff7g9UyFYSp Pas01dAHMqgqd8nDu1TiBVWpLxEro7wSkxkudc0sQ6/x4//ZZ56WJZ8Cfr/7OY2Opm7c mxYxdbsOwFh1YSuZ/VsZ5t2e9Ljj++6gccAiWalyl4iP1M7CMcDSv9X3jJHhyTb+Mn5n iNJzrwMiA/2vxWLnRDLwKMrJ9RLD2TPejoOhKbpUw06EWMTwws2x3ZwF7bZeL3vETqBK 73gg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=haBOpWoD43Oy3HrMplmjgXDkLGMwHCnDSInV9CrEkEo=; b=G71T9ZoJTipSS82qpfd0jQqoYwX6h9JQ8WSvBv4OAixG05Mpm+RLZH8b8FeRYrxyIJ iJu8P7VSbyj5Km5F4Htssoe6WRLDjVUT3pVymctlWQtyDT/Q8i+khh2k7lRswq+5Cfv7 Pzv4q3dODDHO6LGvM74fOCtEvNlLyHL8wj7MLTxJXqG2/2YgVuJOm3re9Zu68bg2HI7+ 5NQR1AFVmXz4yk2KbXRgFtOHSHEjskH3TbEYx6eQ5F7XgKQ2pVJ6lte/s+snRtc+Lzsm K3PSa7mBgH00vgfPiyfEiyA2h+Qh9n/kYbWqHsosnENX/V5jk9GjyehhUmrIITD2Du37 GPQQ== X-Gm-Message-State: AHYfb5gc3jx8cBUkr15hEtTqBiqXeILuKhl+3GMq1kgzCewvuuo5+0JJ gzUjy6oIH1GB34ah X-Google-Smtp-Source: ADKCNb5dmGIKkgdMPSApbLz2eiK0ehmaEI8PLDZQYQMGiZCbdmQv3e02rD3nJWY1tVHUPsSr9FEq6A== X-Received: by 10.202.44.10 with SMTP id s10mr1460940ois.256.1504037773053; Tue, 29 Aug 2017 13:16:13 -0700 (PDT) Received: from kiwi.bld.corp.google.com ([100.101.164.89]) by smtp.gmail.com with ESMTPSA id e184sm4032429oih.35.2017.08.29.13.16.10 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 29 Aug 2017 13:16:12 -0700 (PDT) Received: by kiwi.bld.corp.google.com (Postfix, from userid 121222) id C7F6313FC5F; Tue, 29 Aug 2017 14:16:09 -0600 (MDT) From: Simon Glass To: U-Boot Mailing List Date: Tue, 29 Aug 2017 14:15:48 -0600 Message-Id: <20170829201601.64312-4-sjg@chromium.org> X-Mailer: git-send-email 2.14.1.342.g6490525c54-goog In-Reply-To: <20170829201601.64312-1-sjg@chromium.org> References: <20170829201601.64312-1-sjg@chromium.org> Cc: Tom Rini Subject: [U-Boot] [PATCH v2 03/16] dtoc: Add a 64-bit type and a way to convert cells into 64 bits 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" When dealing with multi-cell values we need a type that can hold this value. Add this and a function to process it from a list of cell values. Signed-off-by: Simon Glass Reviewed-by: Philipp Tomsich Tested-by: Philipp Tomsich Signed-off-by: Simon Glass Reviewed-by: Philipp Tomsich Tested-by: Philipp Tomsich --- Changes in v2: None tools/dtoc/dtb_platdata.py | 3 +++ tools/dtoc/fdt.py | 2 +- tools/dtoc/fdt_util.py | 14 ++++++++++++++ 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/tools/dtoc/dtb_platdata.py b/tools/dtoc/dtb_platdata.py index 041a33188f..4a1162a9fa 100644 --- a/tools/dtoc/dtb_platdata.py +++ b/tools/dtoc/dtb_platdata.py @@ -38,6 +38,7 @@ TYPE_NAMES = { fdt.TYPE_BYTE: 'unsigned char', fdt.TYPE_STRING: 'const char *', fdt.TYPE_BOOL: 'bool', + fdt.TYPE_INT64: 'fdt64_t', } STRUCT_PREFIX = 'dtd_' @@ -95,6 +96,8 @@ def get_value(ftype, value): return '"%s"' % value elif ftype == fdt.TYPE_BOOL: return 'true' + elif ftype == fdt.TYPE_INT64: + return '%#x' % value def get_compat_name(node): """Get a node's first compatible string as a C identifier diff --git a/tools/dtoc/fdt.py b/tools/dtoc/fdt.py index 49409a62ec..ffd42ce541 100644 --- a/tools/dtoc/fdt.py +++ b/tools/dtoc/fdt.py @@ -21,7 +21,7 @@ import libfdt # so it is fairly efficient. # A list of types we support -(TYPE_BYTE, TYPE_INT, TYPE_STRING, TYPE_BOOL) = range(4) +(TYPE_BYTE, TYPE_INT, TYPE_STRING, TYPE_BOOL, TYPE_INT64) = range(5) def CheckErr(errnum, msg): if errnum: diff --git a/tools/dtoc/fdt_util.py b/tools/dtoc/fdt_util.py index b9dfae8d0e..bec6ee947a 100644 --- a/tools/dtoc/fdt_util.py +++ b/tools/dtoc/fdt_util.py @@ -29,6 +29,20 @@ def fdt32_to_cpu(val): val = val.encode('raw_unicode_escape') return struct.unpack('>I', val)[0] +def fdt_cells_to_cpu(val, cells): + """Convert one or two cells to a long integer + + Args: + Value to convert (array of one or more 4-character strings) + + Return: + A native-endian long value + """ + out = long(fdt32_to_cpu(val[0])) + if cells == 2: + out = out << 32 | fdt32_to_cpu(val[1]) + return out + def EnsureCompiled(fname): """Compile an fdt .dts source file into a .dtb binary blob if needed.