From patchwork Mon Oct 5 06:30:10 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Heinrich Schuchardt X-Patchwork-Id: 1376608 X-Patchwork-Delegate: trini@ti.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=none (p=none dis=none) header.from=gmx.de Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; secure) header.d=gmx.net header.i=@gmx.net header.a=rsa-sha256 header.s=badeba3b8450 header.b=c5PkrT4f; dkim-atps=neutral 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 4C4W1w2l43z9sTK for ; Mon, 5 Oct 2020 17:30:44 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id E1ADA82332; Mon, 5 Oct 2020 08:30:29 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=gmx.de Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (1024-bit key; secure) header.d=gmx.net header.i=@gmx.net header.b="c5PkrT4f"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id F2B7782304; Mon, 5 Oct 2020 08:30:26 +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,DKIM_SIGNED, DKIM_VALID,FREEMAIL_FROM,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.2 Received: from mout.gmx.net (mout.gmx.net [212.227.15.15]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 8E9C881260 for ; Mon, 5 Oct 2020 08:30:23 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=gmx.de Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=xypron.glpk@gmx.de DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1601879420; bh=dJn2ZD17arw/HpiRfqgtova101sA7Kf6mgolvGYhmuw=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:In-Reply-To:References; b=c5PkrT4fwa4i86uJrVSwBH9vj8tFwzg/koq1ju1IkfBKFhmYQRS2LT21CCAQSAoIZ 3FAAAwSGr00Yzpu/jx/NYRvb7BV0ktAOTx6t4tAL0M6BVipYD3khYZ3DdI2Pk3Sg0f xVGj7gytPAQH8Bc3/Ssd25n1d1KEndgL9KlFQNZ4= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from workstation4.fritz.box ([178.202.41.107]) by mail.gmx.com (mrgmx004 [212.227.17.184]) with ESMTPSA (Nemesis) id 1Mv2xO-1kgqtg1TYO-00qyow; Mon, 05 Oct 2020 08:30:20 +0200 From: Heinrich Schuchardt To: Tom Rini Cc: Simon Glass , Ilias Apalodimas , Bin Meng , Peng Fan , Wolfgang Wallner , Baruch Siach , Masahiro Yamada , u-boot@lists.denx.de, Heinrich Schuchardt Subject: [PATCH v3 3/3] doc: global data pointer Date: Mon, 5 Oct 2020 08:30:10 +0200 Message-Id: <20201005063010.8439-4-xypron.glpk@gmx.de> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20201005063010.8439-1-xypron.glpk@gmx.de> References: <20201005063010.8439-1-xypron.glpk@gmx.de> MIME-Version: 1.0 X-Provags-ID: V03:K1:jR0MTUmzmcAwdeloYhcv3oTm1zp/B89AaVhOPDP14LdD3Dvu+uw sYk2pl3fhr576g1lS9nHp77e3L5gwnUwqk8N9jIpOFdR/qZmqIVz0K/lh99LjiO9n7URvK0 bWR4tiH0MKkRAMv9uWNgJQKvC895opwAFyCDQg6ukVLNuEKkWU3pX7RWjE+2u6kJITN3cHB Tk1mVOND1xZmjH21xqcZg== X-UI-Out-Filterresults: notjunk:1;V03:K0:hVLu16Tbxgs=:SSTycIQ2nX3M8s2/oHjw9w bvXsr4mq5mr74qk/NyHq7sbH+Of5wdNbON6JUinrbRFUU5vhxxI+Q4OIoWe9RritTkbMyM3o5 p4tUZ0hVAR7K54BSNb9XjmzYUz+34CEZdaWEi0t5pOb/zDUS7dzJUXn/S6StInehBXc7Yux4e jrdxoYgt4J2GQBllsurKTTtyFljqBNiUJHvqrcdE2YZUPhGUN76cgSujjXFIj+MvdzFDRWIcB NB0+UKcvVh7yWZ7y/IA5AX2GDp08EBuuzIup3021Xi/6rjMSjWmhZafkzX9OI/k1pxanswqOd wxNjx+Bu6juO3i1jVkSep4mVrFubfqDVohvX7He1QGBYH8bgN6iHwSHmWMH3JAK4XGwi8AgX/ i6Fcb60wFfHuAVH+sSSzluckKjyia+uDmKUvRh0Ya873bseiEv7qiOA4BwZfGxZSxrYBQp0Rr LWJDyt9gr/egs5UpqlgA0Hf8EbWWh8h3WflIL75hmeMcHv9VQ30KKyztz6pzsZLPKv4dMydJp wdJke5sd20ASxt109l/Cw9LqhInbXFZsa0SIxNQY6y3aTORSEujKF7+bC+8vUrmlD8KZsm6nn W2S7mPLqJnl8bo+fvxPotx2ju3zUfEqE+fJqjxnQg+2H1MFMPEI+/qWuoGaKMQrx3MOMdPVqV rXF8iRA65XV/+bGd3BjkcxUWLUU1LHo9oqOSfLP9pnR++etVySij4ouupW+sZciGRRMqweZcp aqP5/jOtdry+s/qYTgDGCaxwjGIdhnXTwK/QR2KnuEXBi6CxwEV6EH5GtDomXXaX5GoDS7rEW qcS/7w4mqrXWB7ggU95Ct0PZxQ6knSWJ72kUi3gwTUSDEKv00hU+cXOj4U41B+n6Vp0TSZLhW 6NWcS5Tzhs0BFLQRM9YV9SeJaOcgpvQvAavAZC5ON1Cz+RroQZoK2dBP8/a1x7ajbNWBdeBnb xvcsqSf8FHcBBuZ1IKbFb8OrNvXmBbnDntyw+1UcMlXp9GYXtAB5sJWCO3WxNeoSwTWABgq+I QDMTGzA6vw6wYR7NmfySXUnZxSmP6mTUt+7JlEravhJecyl6N4fCIU5w9eeiyROWQ3wegrXqQ G76OmX1FYwopJTWEMac0Rhd+XV5zKlD9wCNdDCYWKp+ak+IfKU/Rlrh421gMrICyzhdyyVbFU 5H+CdjR7/YcNvw0V5KZBmDwIx454K55t8ruPQaz/guJ7IGqOU1GuD5XGyFjR3nw9nGVkaJz/i uBuspFJbFnLNCFtBCcwuehBjvqGB4XC9bJWk5kw== X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.34 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.3 at phobos.denx.de X-Virus-Status: Clean Add the description of the global data pointer to the generated HTML documentation. Signed-off-by: Heinrich Schuchardt Reviewed-by: Simon Glass --- v3: no change v2: no change --- doc/develop/global_data.rst | 53 +++++++++++++++++++++++++++++++++++++ doc/develop/index.rst | 1 + 2 files changed, 54 insertions(+) create mode 100644 doc/develop/global_data.rst -- 2.28.0 diff --git a/doc/develop/global_data.rst b/doc/develop/global_data.rst new file mode 100644 index 0000000000..9e7c8a24da --- /dev/null +++ b/doc/develop/global_data.rst @@ -0,0 +1,53 @@ +.. SPDX-License-Identifier: GPL-2.0+ + +Global data +=========== + +Globally required fields are held in the global data structure. A pointer to the +structure is available as symbol gd. The symbol is made available by the macro +%DECLARE_GLOBAL_DATA_PTR. + +Register pointing to global data +-------------------------------- + +On most architectures the global data pointer is stored in a register. + ++------------+----------+ +| ARC | r25 | ++------------+----------+ +| ARM 32bit | r9 | ++------------+----------+ +| ARM 64bit | x18 | ++------------+----------+ +| M68000 | d7 | ++------------+----------+ +| MicroBlaze | r31 | ++------------+----------+ +| NDS32 | r10 | ++------------+----------+ +| Nios II | gp | ++------------+----------+ +| PowerPC | r2 | ++------------+----------+ +| RISC-V | gp (x3) | ++------------+----------+ +| SuperH | r13 | ++------------+----------+ + +The sandbox, x86, and Xtensa are notable exceptions. + +Clang for ARM does not support assigning a global register. When using Clang +gd is defined as an inline function using assembly code. This adds a few bytes +to the code size. + +Binaries called by U-Boot are not aware of the register usage and will not +conserve gd. UEFI binaries call the API provided by U-Boot and may return to +U-Boot. The value of gd has to be saved every time U-Boot is left and restored +whenever U-Boot is reentered. This is also relevant for the implementation of +function tracing. For setting the value of gd function set_gd() can be used. + +Global data structure +--------------------- + +.. kernel-doc:: include/asm-generic/global_data.h + :internal: diff --git a/doc/develop/index.rst b/doc/develop/index.rst index 98a95ad434..89e80eab94 100644 --- a/doc/develop/index.rst +++ b/doc/develop/index.rst @@ -9,4 +9,5 @@ Develop U-Boot coccinelle crash_dumps + global_data logging