From patchwork Tue Jul 16 16:42:46 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bin Meng X-Patchwork-Id: 1132864 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=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; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="BV0yu+0J"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 45p5np2s4Wz9sN4 for ; Wed, 17 Jul 2019 02:43:58 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id D4227C21F0B; Tue, 16 Jul 2019 16:43:19 +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=FREEMAIL_FROM, 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 D127CC21E47; Tue, 16 Jul 2019 16:43:05 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id AADF1C21E34; Tue, 16 Jul 2019 16:43:03 +0000 (UTC) Received: from mail-pf1-f193.google.com (mail-pf1-f193.google.com [209.85.210.193]) by lists.denx.de (Postfix) with ESMTPS id D96FFC21C6A for ; Tue, 16 Jul 2019 16:43:02 +0000 (UTC) Received: by mail-pf1-f193.google.com with SMTP id c73so9370301pfb.13 for ; Tue, 16 Jul 2019 09:43:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:in-reply-to:references; bh=DaAj3IBiL/X891Zs5GUXhJEFLXBQ7WIg2SijLRvqeBM=; b=BV0yu+0Jj7Pg0zzQqJHmfeR9fIGXEfvgZ/2pDOGZH6LEIe/fJLAb9AsaqZSJEi26DY 08g8zpT+KWWUKWFwG67Bqn8p1TCMyZ98ISBUtJ0VadmWgor45uRYpHWAhBe0yN91h4t+ Tfnx6d+k65Q+uOQCnOwWXjOLGl45qXfJ1z3rF3tX7qwGWAGu4z5cirK3ZxHs9CjDudvW A+VxV4RTCdhlaclZNMulFaDiV5crG9VFVcxPsmRhJHM11vHfrRT2zy49kgh4AmrlLBar gsUW/7ZYsfizbP4R4veKkOJvg0FSJajz1qURlBx7O2JgtAsM7mrx6JOuid9o3xmT2EOT J+6w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references; bh=DaAj3IBiL/X891Zs5GUXhJEFLXBQ7WIg2SijLRvqeBM=; b=I+tV/V0JIUggDkkZ8gy+rjMNn8uc+ota09vPPyRd0EqXBtrZMVGd6Ze3lF+MyF4a5B SECw+/d/RxOkvf+eV3blBWtdLI/hMu7Ao3a8agvT9GMSQNMPi9/K/oulq9HLEn8yUsb1 h2pXJRBI0gcvEQfmjcHyYflIROnVtguJpHq9NjGBRAj2OYG1Wd3qHeLX0o2AiDmJ09fm eIcjLXziTYmVF1CjqovF9Yn7RFTMuoD1dK9dpB2DhdfwbO5MP+dI+uwl2xxdqxyjbwjF z8FVNQDlInjCb/yacPPF2LmyeMrRMTz4R0xxTUMaICVx3RPK3LqOzaToYpTitr9zV9RI HOJg== X-Gm-Message-State: APjAAAXcotNK79UAQFJSB3jcY0Z33lrPBFwfw4GOaG12tDxbEqhl0fQ/ ZDT4CYv6fOL/kmUDNv3Tbpo= X-Google-Smtp-Source: APXvYqzdb2d8alkuxBGbH0VipIKnY9EYovU8ofKlM+Y6gZnM8vwF9Oy/mUt/cd6GVvugZJIAsQsbNw== X-Received: by 2002:a63:ce45:: with SMTP id r5mr10807951pgi.435.1563295381477; Tue, 16 Jul 2019 09:43:01 -0700 (PDT) Received: from localhost.localdomain (unknown-224-80.windriver.com. [147.11.224.80]) by smtp.gmail.com with ESMTPSA id h12sm26017441pje.12.2019.07.16.09.43.00 (version=TLS1 cipher=AES128-SHA bits=128/128); Tue, 16 Jul 2019 09:43:00 -0700 (PDT) From: Bin Meng To: Tom Rini , Simon Glass , Wolfgang Denk , Heinrich Schuchardt , Mario Six , U-Boot Mailing List Date: Tue, 16 Jul 2019 09:42:46 -0700 Message-Id: <1563295374-1504-2-git-send-email-bmeng.cn@gmail.com> X-Mailer: git-send-email 1.7.1 In-Reply-To: <1563295374-1504-1-git-send-email-bmeng.cn@gmail.com> References: <1563295374-1504-1-git-send-email-bmeng.cn@gmail.com> Subject: [U-Boot] [RFC PATCH 1/9] doc: Move existing rst files into api sub-directory 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 the Sphinx doc only contains API descriptions of several U-Boot subsystems. For future extension, group these existing docs into an API sub-directory. Signed-off-by: Bin Meng Reviewed-by: Heinrich Schuchardt --- doc/{ => api}/efi.rst | 3 +++ doc/api/index.rst | 10 ++++++++++ doc/{ => api}/linker_lists.rst | 3 +++ doc/{ => api}/serial.rst | 3 +++ doc/index.rst | 14 +++++++++++--- 5 files changed, 30 insertions(+), 3 deletions(-) rename doc/{ => api}/efi.rst (92%) create mode 100644 doc/api/index.rst rename doc/{ => api}/linker_lists.rst (99%) rename doc/{ => api}/serial.rst (80%) diff --git a/doc/efi.rst b/doc/api/efi.rst similarity index 92% rename from doc/efi.rst rename to doc/api/efi.rst index 5337a55..3b2d544 100644 --- a/doc/efi.rst +++ b/doc/api/efi.rst @@ -1,5 +1,8 @@ .. SPDX-License-Identifier: GPL-2.0+ +.. toctree:: + :maxdepth: 2 + EFI subsystem ============= diff --git a/doc/api/index.rst b/doc/api/index.rst new file mode 100644 index 0000000..8e1e1a1 --- /dev/null +++ b/doc/api/index.rst @@ -0,0 +1,10 @@ +======================== +U-Boot API documentation +======================== + +.. toctree:: + :maxdepth: 2 + + efi + linker_lists + serial diff --git a/doc/linker_lists.rst b/doc/api/linker_lists.rst similarity index 99% rename from doc/linker_lists.rst rename to doc/api/linker_lists.rst index 72f514e..477bbae 100644 --- a/doc/linker_lists.rst +++ b/doc/api/linker_lists.rst @@ -1,5 +1,8 @@ .. SPDX-License-Identifier: GPL-2.0+ +.. toctree:: + :maxdepth: 2 + Linker-Generated Arrays ======================= diff --git a/doc/serial.rst b/doc/api/serial.rst similarity index 80% rename from doc/serial.rst rename to doc/api/serial.rst index ed34e59..65f10d3 100644 --- a/doc/serial.rst +++ b/doc/api/serial.rst @@ -1,5 +1,8 @@ .. SPDX-License-Identifier: GPL-2.0+ +.. toctree:: + :maxdepth: 2 + Serial system ============= diff --git a/doc/index.rst b/doc/index.rst index 0353c10..1946d09 100644 --- a/doc/index.rst +++ b/doc/index.rst @@ -4,8 +4,16 @@ U-Boot Developer Manual ####################### +U-Boot API documentation +------------------------ + +These books get into the details of how specific U-Boot subsystems work +from the point of view of a U-Boot developer. Much of the information here +is taken directly from the U-Boot source, with supplemental material added +as needed (or at least as we managed to add it - probably *not* all that is +needed). + .. toctree:: + :maxdepth: 2 - efi - linker_lists - serial + api/index From patchwork Tue Jul 16 16:42:47 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bin Meng X-Patchwork-Id: 1132867 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=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; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="YWTgahi1"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 45p5rB5PWKz9sN4 for ; Wed, 17 Jul 2019 02:46:02 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id 6B66FC21E50; Tue, 16 Jul 2019 16:43:33 +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=FREEMAIL_FROM, 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 96AA2C21EE0; Tue, 16 Jul 2019 16:43:14 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 45749C21E42; Tue, 16 Jul 2019 16:43:07 +0000 (UTC) Received: from mail-pg1-f195.google.com (mail-pg1-f195.google.com [209.85.215.195]) by lists.denx.de (Postfix) with ESMTPS id 3AB2FC21E49 for ; Tue, 16 Jul 2019 16:43:04 +0000 (UTC) Received: by mail-pg1-f195.google.com with SMTP id n9so3493428pgc.1 for ; Tue, 16 Jul 2019 09:43:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:in-reply-to:references; bh=Q+NMgnyUAfg4puVNP8Hjcc8kDJbJtDvTiIVRgetzF8I=; b=YWTgahi16rmmLOnfGXTTFeDDb3DOFLIuOULvxINnOGScVK8bWzSrINFAkTGa9AmwTR lcnwe8ULzlV0voi8ncUZ7fE5m/NnOq9b0Nkf9prDEezgrJ8zeA1zicusAafnEPJQhTFS jo7Zyu7t7Oq14LUqk+/i/Nz2ZXSbY8A+VVN8KwA0W+nQpokcqLjngGHC8oErgcbiezFK Ksusx3MmTifKyZiFBfvR+P3/e8sONH1u3lc8bACTQOFJsU2ozVTAElR9hn+Scw9T5v/w msqXZiwyoiE6yUjUU5nNRsHg4Qfw+tT80VB33AGmS5QhDZ+d609R0/I+cSEF21/cHkBe JyxA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references; bh=Q+NMgnyUAfg4puVNP8Hjcc8kDJbJtDvTiIVRgetzF8I=; b=ukXo+kpFLhayicDbl24xF7Es5XvkXOT90Jvr6GEWpEgCM8rlSc7kvnm4W7sw5MjFZD XMVd6tacpCJkDmmSvvZznzUhr7Giqn5zZww9jSh1+SvhIi4LNlM9MXbZZv4yJKXjnU3s eJLI/t4c85ZPaHTQW/tSBY5MCYgtD1q9GhmYYkrlmOhknaRu53MAAsSkg0JyIi7iFyzU mbBKJi67f67tKnScd5uONjBAYVR1pjUtrxss3GD8F3kyx5jbvgwt3/Tj9MrUENQ+5fSi RJgsiuLNBQa5CYv7ZYi1x+2pA1Kz/a+GJO74FAtObU7PekqG9Z1XM63+E9QbGPXeiwGz Eq3Q== X-Gm-Message-State: APjAAAWStTTt9jTbV4GW8X1NX4UA3LgLVl0Fgw22y5Vkqpd0/Iza5kb/ FxVFD+YY33okhVWiHW6YqWU= X-Google-Smtp-Source: APXvYqwJcY74W/rrpMQLO0EvNnZK++9tc0sAWp0NCujmSYxq5o52exqWBYaiRJRREi4BsMk7o1DIUw== X-Received: by 2002:a63:7e1d:: with SMTP id z29mr35080191pgc.346.1563295382846; Tue, 16 Jul 2019 09:43:02 -0700 (PDT) Received: from localhost.localdomain (unknown-224-80.windriver.com. [147.11.224.80]) by smtp.gmail.com with ESMTPSA id h12sm26017441pje.12.2019.07.16.09.43.01 (version=TLS1 cipher=AES128-SHA bits=128/128); Tue, 16 Jul 2019 09:43:02 -0700 (PDT) From: Bin Meng To: Tom Rini , Simon Glass , Wolfgang Denk , Heinrich Schuchardt , Mario Six , U-Boot Mailing List Date: Tue, 16 Jul 2019 09:42:47 -0700 Message-Id: <1563295374-1504-3-git-send-email-bmeng.cn@gmail.com> X-Mailer: git-send-email 1.7.1 In-Reply-To: <1563295374-1504-1-git-send-email-bmeng.cn@gmail.com> References: <1563295374-1504-1-git-send-email-bmeng.cn@gmail.com> Subject: [U-Boot] [RFC PATCH 2/9] doc: Add top-level description about U-Boot documentation 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" This updates the index.rst to add top-level description about U-Boot documentation. Words are taken from Linux kernel docs and modified for U-Boot. Signed-off-by: Bin Meng --- doc/index.rst | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/doc/index.rst b/doc/index.rst index 1946d09..cfcf1dd 100644 --- a/doc/index.rst +++ b/doc/index.rst @@ -1,8 +1,19 @@ .. SPDX-License-Identifier: GPL-2.0+ -####################### -U-Boot Developer Manual -####################### +.. _u-boot_doc: + +The U-Boot documentation +======================== + +This is the top level of the U-Boot's documentation tree. U-Boot +documentation, like the U-Boot itself, is very much a work in progress; +that is especially true as we work to integrate our many scattered +documents into a coherent whole. Please note that improvements to the +documentation are welcome; join the U-Boot list at http://lists.denx.de +if you want to help out. + +.. toctree:: + :maxdepth: 2 U-Boot API documentation ------------------------ @@ -17,3 +28,8 @@ needed). :maxdepth: 2 api/index + +Indices and tables +================== + +* :ref:`genindex` From patchwork Tue Jul 16 16:42:48 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bin Meng X-Patchwork-Id: 1132865 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=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; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="QVm1bXyM"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 45p5pp3Dghz9sN4 for ; Wed, 17 Jul 2019 02:44:50 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id 22E55C21ED6; Tue, 16 Jul 2019 16:44:13 +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=FREEMAIL_FROM, 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 4FB66C21EF1; Tue, 16 Jul 2019 16:43:26 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id BE6FFC21E3A; Tue, 16 Jul 2019 16:43:09 +0000 (UTC) Received: from mail-pf1-f196.google.com (mail-pf1-f196.google.com [209.85.210.196]) by lists.denx.de (Postfix) with ESMTPS id 7C783C21EAE for ; Tue, 16 Jul 2019 16:43:05 +0000 (UTC) Received: by mail-pf1-f196.google.com with SMTP id g2so9393664pfq.0 for ; Tue, 16 Jul 2019 09:43:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:in-reply-to:references; bh=Y5CO99BUqJQ+oxSMcCej4focaqllhn655mfnBdHm9L0=; b=QVm1bXyMbjUHn/WUo6K1+0/1+wMXj2AAjGSJ8zDpAIhpeP3uHsaaN7wubv9ol9ssQS Mopf0mMc3b/g4Q7S7qrR6+AR0If810V4wUGiq4DRaBeLDugZRJGKySx+2IjCJAfKqcUL Xlq7ksj/GwwWrv62Y8Am40R64tkhO8sgUgpsvMbYx3iD5g/KQ9IyZZtYskLN3DTHsGAa 5oUhToXNMHA3VtG/gcd/WFe8w3pcBAkaZ7nwpZWtyLinUpdeqbzdTUYqYYdS3L9lFof9 TkVTb+2B83Vc8ptvFQwyDX4j9JYg+B/SioUaE/hMmlejZoDKZabpFDqU6i/LkEdjDwlI Nqew== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references; bh=Y5CO99BUqJQ+oxSMcCej4focaqllhn655mfnBdHm9L0=; b=pSyPh4Ly2w4kjgldvEBHJBJi1ZgyCJ11J07hC0YF39vJHgZmFUGmEIucdc9LQZph15 +tpwGz9OMGZ10Y5yge+YvUvj1KSYH+xnb0RSa/gDvBxVgIZvzcmg3285EVH+sBy1TLzb 1eI1Z6X8a4eZRWkIVhsu3XofLsed+OryafgcqrvoPfLvnTsnvibhFj41CBbpCOsv3Wd3 DULSWKM7V73eSx7KwoGUmUZqazgvB9EDKhZ9myd1zxPC/B5eZnwcq+8sdzf6Y9dW1N2K ZDWCSotpl53lLjpea0Rh/ZKlqnhAMxWfTOpORrYQMQWXrgQsseWeVMOMsC+5z4smGWm1 pdMg== X-Gm-Message-State: APjAAAUDa6MWnyoCOkVaWobDlay4efgx/IxqYqQGztHwdwmXQvDVjrsW 7eGpQZ5DagNlM6IT1UMOq2A= X-Google-Smtp-Source: APXvYqx98BF1Y6Vy6uTJlj4HoePa/avVQpv6aM97glMGJZrPUnXYmh4FDD2smgGP7fQf6fWSf7q/YQ== X-Received: by 2002:a63:5402:: with SMTP id i2mr8277136pgb.414.1563295384168; Tue, 16 Jul 2019 09:43:04 -0700 (PDT) Received: from localhost.localdomain (unknown-224-80.windriver.com. [147.11.224.80]) by smtp.gmail.com with ESMTPSA id h12sm26017441pje.12.2019.07.16.09.43.03 (version=TLS1 cipher=AES128-SHA bits=128/128); Tue, 16 Jul 2019 09:43:03 -0700 (PDT) From: Bin Meng To: Tom Rini , Simon Glass , Wolfgang Denk , Heinrich Schuchardt , Mario Six , U-Boot Mailing List Date: Tue, 16 Jul 2019 09:42:48 -0700 Message-Id: <1563295374-1504-4-git-send-email-bmeng.cn@gmail.com> X-Mailer: git-send-email 1.7.1 In-Reply-To: <1563295374-1504-1-git-send-email-bmeng.cn@gmail.com> References: <1563295374-1504-1-git-send-email-bmeng.cn@gmail.com> Subject: [U-Boot] [RFC PATCH 3/9] doc: Add driver-model to Sphinx TOC tree 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" Add index.rst for driver model. More docs will be added later. Signed-off-by: Bin Meng Reviewed-by: Heinrich Schuchardt --- doc/driver-model/index.rst | 6 ++++++ doc/index.rst | 11 +++++++++++ 2 files changed, 17 insertions(+) create mode 100644 doc/driver-model/index.rst diff --git a/doc/driver-model/index.rst b/doc/driver-model/index.rst new file mode 100644 index 0000000..c16a544 --- /dev/null +++ b/doc/driver-model/index.rst @@ -0,0 +1,6 @@ +============ +Driver Model +============ + +.. toctree:: + :maxdepth: 2 diff --git a/doc/index.rst b/doc/index.rst index cfcf1dd..835decf 100644 --- a/doc/index.rst +++ b/doc/index.rst @@ -15,6 +15,17 @@ if you want to help out. .. toctree:: :maxdepth: 2 +Driver-Model documentation +-------------------------- +The following holds information on the U-Boot device driver framework: +driver-model, including the design details of itself and several driver +subsystems. + +.. toctree:: + :maxdepth: 2 + + driver-model/index + U-Boot API documentation ------------------------ From patchwork Tue Jul 16 16:42:49 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Bin Meng X-Patchwork-Id: 1132872 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=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; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="Jr6uOP5o"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 45p5sP2pkdz9sN4 for ; Wed, 17 Jul 2019 02:47:05 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id 2130FC21EC2; Tue, 16 Jul 2019 16:44:31 +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=FREEMAIL_FROM, 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 D1874C21ED6; Tue, 16 Jul 2019 16:43:30 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id DD213C21E7E; Tue, 16 Jul 2019 16:43:11 +0000 (UTC) Received: from mail-pg1-f194.google.com (mail-pg1-f194.google.com [209.85.215.194]) by lists.denx.de (Postfix) with ESMTPS id 48016C21E89 for ; Tue, 16 Jul 2019 16:43:07 +0000 (UTC) Received: by mail-pg1-f194.google.com with SMTP id f25so9706624pgv.10 for ; Tue, 16 Jul 2019 09:43:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:in-reply-to:references; bh=MZlVXSyZtXpkSdt8brFDsqG8Bd2aIdJPT3Mvl0jME/E=; b=Jr6uOP5o67cfs7gZL3gJCoOU/qY23nWkh/2wOKYEubhpqrHtvVBNaFqQ6V43JhlrF0 hWtBYuoUuqzVu9QEn7D5ufRImmOkVIENzbhVloy1FT4ffDxz1Ux8gBidBn3o22ztBGMB FFfAiw31ML17mFKn2ctqWhJc6BntDFXUxVGWFwGNIvjxZa4dWYns4qaek6Cqswe2MUtz hEyMtH9tRUtov+qs5njoypdmrspLyR012UloSbRIGPLobCBIer/2VUfAwXDDy0UrTV2g a3ji7MURvlYt6S2E4IL+0zdLSPo7d/daPN1oSgzAHC57LOAQHwhwnxvNiohWfTtsVp66 meLg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references; bh=MZlVXSyZtXpkSdt8brFDsqG8Bd2aIdJPT3Mvl0jME/E=; b=rGPBVcZ9R+ZTDVZyboOzvUy4fCa+nFKQz+y80yn3S83WQ7OiVN9U1Q1Yck92JNZ5JC T6JhqeRyKXbkJrYgujeyyAvHVbBmtW1mXtJbm5LZmDDFQinwXJi2iJk/lDsIycNQ2krQ MEZNFgwFXVZcBqsPUFulinbHS8Hzi2C6SvuCPUr7FpQkDBaRCHPUwWyDynCoYLhKvgxX 0u9BZZG0B6e64IkILWe7IDZCYVn2IrkvYAI2ay9d7aP6T/DOj964knDZMiZblcUOoVGi 4vSL4nTpCgh3vyFZJs4HvT0KyDVnUTA7p3NAyp/JfrnBBC+Pcr+kPZjFrV078Qcl+ly0 4G2Q== X-Gm-Message-State: APjAAAWqlQGZ92bNIcdhPiknvZouO825Zh598a4L8bJ5xT3sWuxcKmTc 69Fu6iQpr5QK+Bg04q1udLE= X-Google-Smtp-Source: APXvYqzGcqg98boFq7HHJnVXknIpgVtj1wzfw5NpptS2s0G/gfSfeTnqe4/3HOTvVX9suncC1fr3fA== X-Received: by 2002:a63:1d0e:: with SMTP id d14mr35029853pgd.324.1563295385373; Tue, 16 Jul 2019 09:43:05 -0700 (PDT) Received: from localhost.localdomain (unknown-224-80.windriver.com. [147.11.224.80]) by smtp.gmail.com with ESMTPSA id h12sm26017441pje.12.2019.07.16.09.43.04 (version=TLS1 cipher=AES128-SHA bits=128/128); Tue, 16 Jul 2019 09:43:04 -0700 (PDT) From: Bin Meng To: Tom Rini , Simon Glass , Wolfgang Denk , Heinrich Schuchardt , Mario Six , U-Boot Mailing List Date: Tue, 16 Jul 2019 09:42:49 -0700 Message-Id: <1563295374-1504-5-git-send-email-bmeng.cn@gmail.com> X-Mailer: git-send-email 1.7.1 In-Reply-To: <1563295374-1504-1-git-send-email-bmeng.cn@gmail.com> References: <1563295374-1504-1-git-send-email-bmeng.cn@gmail.com> Subject: [U-Boot] [RFC PATCH 4/9] doc: driver-model: Convert README.txt to reST 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" Convert plain text documentation to reStructuredText format and add it to Sphinx TOC tree. No essential content change. Signed-off-by: Bin Meng Reviewed-by: Heinrich Schuchardt --- doc/driver-model/{README.txt => design.rst} | 538 +++++++++++++++------------- doc/driver-model/index.rst | 2 + 2 files changed, 284 insertions(+), 256 deletions(-) rename doc/driver-model/{README.txt => design.rst} (68%) diff --git a/doc/driver-model/README.txt b/doc/driver-model/design.rst similarity index 68% rename from doc/driver-model/README.txt rename to doc/driver-model/design.rst index 532a771..c8ec2be 100644 --- a/doc/driver-model/README.txt +++ b/doc/driver-model/design.rst @@ -1,40 +1,43 @@ -Driver Model -============ +Design Details +============== This README contains high-level information about driver model, a unified way of declaring and accessing drivers in U-Boot. The original work was done by: - Marek Vasut - Pavel Herrmann - Viktor Křivák - Tomas Hlavacek + * Marek Vasut + * Pavel Herrmann + * Viktor Křivák + * Tomas Hlavacek This has been both simplified and extended into the current implementation by: - Simon Glass + * Simon Glass Terminology ----------- -Uclass - a group of devices which operate in the same way. A uclass provides - a way of accessing individual devices within the group, but always - using the same interface. For example a GPIO uclass provides - operations for get/set value. An I2C uclass may have 10 I2C ports, - 4 with one driver, and 6 with another. +Uclass + a group of devices which operate in the same way. A uclass provides + a way of accessing individual devices within the group, but always + using the same interface. For example a GPIO uclass provides + operations for get/set value. An I2C uclass may have 10 I2C ports, + 4 with one driver, and 6 with another. -Driver - some code which talks to a peripheral and presents a higher-level - interface to it. +Driver + some code which talks to a peripheral and presents a higher-level + interface to it. -Device - an instance of a driver, tied to a particular port or peripheral. +Device + an instance of a driver, tied to a particular port or peripheral. How to try it ------------- -Build U-Boot sandbox and run it: +Build U-Boot sandbox and run it:: make sandbox_defconfig make @@ -56,31 +59,31 @@ provide good code coverage of them. It does have multiple drivers, it handles parameter data and platdata (data which tells the driver how to operate on a particular platform) and it uses private driver data. -To try it, see the example session below: - -=>demo hello 1 -Hello '@' from 07981110: red 4 -=>demo status 2 -Status: 0 -=>demo hello 2 -g -r@ -e@@ -e@@@ -n@@@@ -g@@@@@ -=>demo status 2 -Status: 21 -=>demo hello 4 ^ - y^^^ - e^^^^^ -l^^^^^^^ -l^^^^^^^ - o^^^^^ - w^^^ -=>demo status 4 -Status: 36 -=> +To try it, see the example session below:: + + =>demo hello 1 + Hello '@' from 07981110: red 4 + =>demo status 2 + Status: 0 + =>demo hello 2 + g + r@ + e@@ + e@@@ + n@@@@ + g@@@@@ + =>demo status 2 + Status: 21 + =>demo hello 4 ^ + y^^^ + e^^^^^ + l^^^^^^^ + l^^^^^^^ + o^^^^^ + w^^^ + =>demo status 4 + Status: 36 + => Running the tests @@ -88,139 +91,139 @@ Running the tests The intent with driver model is that the core portion has 100% test coverage in sandbox, and every uclass has its own test. As a move towards this, tests -are provided in test/dm. To run them, try: +are provided in test/dm. To run them, try:: ./test/py/test.py --bd sandbox --build -k ut_dm -v -You should see something like this: - -(venv)$ ./test/py/test.py --bd sandbox --build -k ut_dm -v -+make O=/root/u-boot/build-sandbox -s sandbox_defconfig -+make O=/root/u-boot/build-sandbox -s -j8 -============================= test session starts ============================== -platform linux2 -- Python 2.7.5, pytest-2.9.0, py-1.4.31, pluggy-0.3.1 -- /root/u-boot/venv/bin/python -cachedir: .cache -rootdir: /root/u-boot, inifile: -collected 199 items - -test/py/tests/test_ut.py::test_ut_dm_init PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_adc_bind] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_adc_multi_channel_conversion] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_adc_multi_channel_shot] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_adc_single_channel_conversion] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_adc_single_channel_shot] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_adc_supply] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_adc_wrong_channel_selection] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_autobind] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_autobind_uclass_pdata_alloc] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_autobind_uclass_pdata_valid] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_autoprobe] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_bus_child_post_bind] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_bus_child_post_bind_uclass] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_bus_child_pre_probe_uclass] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_bus_children] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_bus_children_funcs] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_bus_children_iterators] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_bus_parent_data] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_bus_parent_data_uclass] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_bus_parent_ops] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_bus_parent_platdata] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_bus_parent_platdata_uclass] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_children] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_clk_base] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_clk_periph] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_device_get_uclass_id] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_eth] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_eth_act] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_eth_alias] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_eth_prime] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_eth_rotate] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_fdt] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_fdt_offset] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_fdt_pre_reloc] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_fdt_uclass_seq] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_gpio] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_gpio_anon] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_gpio_copy] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_gpio_leak] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_gpio_phandles] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_gpio_requestf] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_i2c_bytewise] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_i2c_find] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_i2c_offset] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_i2c_offset_len] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_i2c_probe_empty] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_i2c_read_write] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_i2c_speed] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_leak] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_led_base] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_led_gpio] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_led_label] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_lifecycle] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_mmc_base] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_net_retry] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_operations] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_ordering] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_pci_base] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_pci_busnum] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_pci_swapcase] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_platdata] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_power_pmic_get] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_power_pmic_io] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_power_regulator_autoset] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_power_regulator_autoset_list] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_power_regulator_get] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_power_regulator_set_get_current] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_power_regulator_set_get_enable] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_power_regulator_set_get_mode] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_power_regulator_set_get_voltage] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_pre_reloc] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_ram_base] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_regmap_base] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_regmap_syscon] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_remoteproc_base] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_remove] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_reset_base] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_reset_walk] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_rtc_base] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_rtc_dual] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_rtc_reset] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_rtc_set_get] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_spi_find] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_spi_flash] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_spi_xfer] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_syscon_base] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_syscon_by_driver_data] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_timer_base] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_uclass] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_uclass_before_ready] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_uclass_devices_find] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_uclass_devices_find_by_name] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_uclass_devices_get] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_uclass_devices_get_by_name] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_usb_base] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_usb_flash] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_usb_keyb] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_usb_multi] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_usb_remove] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_usb_tree] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_usb_tree_remove] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_usb_tree_reorder] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_video_base] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_video_bmp] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_video_bmp_comp] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_video_chars] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_video_context] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_video_rotation1] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_video_rotation2] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_video_rotation3] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_video_text] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_video_truetype] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_video_truetype_bs] PASSED -test/py/tests/test_ut.py::test_ut[ut_dm_video_truetype_scroll] PASSED - -======================= 84 tests deselected by '-kut_dm' ======================= -================== 115 passed, 84 deselected in 3.77 seconds =================== +You should see something like this:: + + (venv)$ ./test/py/test.py --bd sandbox --build -k ut_dm -v + +make O=/root/u-boot/build-sandbox -s sandbox_defconfig + +make O=/root/u-boot/build-sandbox -s -j8 + ============================= test session starts ============================== + platform linux2 -- Python 2.7.5, pytest-2.9.0, py-1.4.31, pluggy-0.3.1 -- /root/u-boot/venv/bin/python + cachedir: .cache + rootdir: /root/u-boot, inifile: + collected 199 items + + test/py/tests/test_ut.py::test_ut_dm_init PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_adc_bind] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_adc_multi_channel_conversion] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_adc_multi_channel_shot] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_adc_single_channel_conversion] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_adc_single_channel_shot] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_adc_supply] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_adc_wrong_channel_selection] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_autobind] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_autobind_uclass_pdata_alloc] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_autobind_uclass_pdata_valid] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_autoprobe] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_bus_child_post_bind] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_bus_child_post_bind_uclass] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_bus_child_pre_probe_uclass] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_bus_children] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_bus_children_funcs] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_bus_children_iterators] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_bus_parent_data] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_bus_parent_data_uclass] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_bus_parent_ops] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_bus_parent_platdata] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_bus_parent_platdata_uclass] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_children] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_clk_base] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_clk_periph] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_device_get_uclass_id] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_eth] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_eth_act] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_eth_alias] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_eth_prime] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_eth_rotate] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_fdt] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_fdt_offset] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_fdt_pre_reloc] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_fdt_uclass_seq] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_gpio] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_gpio_anon] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_gpio_copy] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_gpio_leak] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_gpio_phandles] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_gpio_requestf] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_i2c_bytewise] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_i2c_find] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_i2c_offset] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_i2c_offset_len] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_i2c_probe_empty] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_i2c_read_write] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_i2c_speed] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_leak] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_led_base] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_led_gpio] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_led_label] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_lifecycle] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_mmc_base] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_net_retry] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_operations] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_ordering] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_pci_base] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_pci_busnum] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_pci_swapcase] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_platdata] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_power_pmic_get] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_power_pmic_io] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_power_regulator_autoset] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_power_regulator_autoset_list] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_power_regulator_get] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_power_regulator_set_get_current] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_power_regulator_set_get_enable] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_power_regulator_set_get_mode] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_power_regulator_set_get_voltage] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_pre_reloc] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_ram_base] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_regmap_base] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_regmap_syscon] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_remoteproc_base] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_remove] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_reset_base] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_reset_walk] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_rtc_base] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_rtc_dual] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_rtc_reset] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_rtc_set_get] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_spi_find] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_spi_flash] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_spi_xfer] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_syscon_base] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_syscon_by_driver_data] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_timer_base] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_uclass] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_uclass_before_ready] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_uclass_devices_find] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_uclass_devices_find_by_name] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_uclass_devices_get] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_uclass_devices_get_by_name] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_usb_base] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_usb_flash] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_usb_keyb] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_usb_multi] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_usb_remove] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_usb_tree] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_usb_tree_remove] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_usb_tree_reorder] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_video_base] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_video_bmp] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_video_bmp_comp] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_video_chars] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_video_context] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_video_rotation1] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_video_rotation2] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_video_rotation3] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_video_text] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_video_truetype] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_video_truetype_bs] PASSED + test/py/tests/test_ut.py::test_ut[ut_dm_video_truetype_scroll] PASSED + + ======================= 84 tests deselected by '-kut_dm' ======================= + ================== 115 passed, 84 deselected in 3.77 seconds =================== What is going on? ----------------- @@ -228,6 +231,8 @@ What is going on? Let's start at the top. The demo command is in common/cmd_demo.c. It does the usual command processing and then: +.. code-block:: c + struct udevice *demo_dev; ret = uclass_get_device(UCLASS_DEMO, devnum, &demo_dev); @@ -245,6 +250,8 @@ The device is automatically activated ready for use by uclass_get_device(). Now that we have the device we can do things like: +.. code-block:: c + return demo_hello(demo_dev, ch); This function is in the demo uclass. It takes care of calling the 'hello' @@ -253,28 +260,32 @@ this particular device may use one or other of them. The code for demo_hello() is in drivers/demo/demo-uclass.c: -int demo_hello(struct udevice *dev, int ch) -{ - const struct demo_ops *ops = device_get_ops(dev); +.. code-block:: c + + int demo_hello(struct udevice *dev, int ch) + { + const struct demo_ops *ops = device_get_ops(dev); - if (!ops->hello) - return -ENOSYS; + if (!ops->hello) + return -ENOSYS; - return ops->hello(dev, ch); -} + return ops->hello(dev, ch); + } As you can see it just calls the relevant driver method. One of these is in drivers/demo/demo-simple.c: -static int simple_hello(struct udevice *dev, int ch) -{ - const struct dm_demo_pdata *pdata = dev_get_platdata(dev); +.. code-block:: c - printf("Hello from %08x: %s %d\n", map_to_sysmem(dev), - pdata->colour, pdata->sides); + static int simple_hello(struct udevice *dev, int ch) + { + const struct dm_demo_pdata *pdata = dev_get_platdata(dev); - return 0; -} + printf("Hello from %08x: %s %d\n", map_to_sysmem(dev), + pdata->colour, pdata->sides); + + return 0; + } So that is a trip from top (command execution) to bottom (driver action) @@ -285,19 +296,21 @@ Declaring Drivers ----------------- A driver declaration looks something like this (see -drivers/demo/demo-shape.c): +drivers/demo/demo-shape.c). + +.. code-block:: c -static const struct demo_ops shape_ops = { - .hello = shape_hello, - .status = shape_status, -}; + static const struct demo_ops shape_ops = { + .hello = shape_hello, + .status = shape_status, + }; -U_BOOT_DRIVER(demo_shape_drv) = { - .name = "demo_shape_drv", - .id = UCLASS_DEMO, - .ops = &shape_ops, - .priv_data_size = sizeof(struct shape_data), -}; + U_BOOT_DRIVER(demo_shape_drv) = { + .name = "demo_shape_drv", + .id = UCLASS_DEMO, + .ops = &shape_ops, + .priv_data_size = sizeof(struct shape_data), + }; This driver has two methods (hello and status) and requires a bit of @@ -315,11 +328,11 @@ so driver model can find the drivers that are available. The methods a device can provide are documented in the device.h header. Briefly, they are: - bind - make the driver model aware of a device (bind it to its driver) - unbind - make the driver model forget the device - ofdata_to_platdata - convert device tree data to platdata - see later - probe - make a device ready for use - remove - remove a device so it cannot be used until probed again + * bind - make the driver model aware of a device (bind it to its driver) + * unbind - make the driver model forget the device + * ofdata_to_platdata - convert device tree data to platdata - see later + * probe - make a device ready for use + * remove - remove a device so it cannot be used until probed again The sequence to get a device to work is bind, ofdata_to_platdata (if using device tree) and probe. @@ -328,14 +341,14 @@ device tree) and probe. Platform Data ------------- -*** Note: platform data is the old way of doing things. It is -*** basically a C structure which is passed to drivers to tell them about -*** platform-specific settings like the address of its registers, bus -*** speed, etc. Device tree is now the preferred way of handling this. -*** Unless you have a good reason not to use device tree (the main one -*** being you need serial support in SPL and don't have enough SRAM for -*** the cut-down device tree and libfdt libraries) you should stay away -*** from platform data. +Note: platform data is the old way of doing things. It is +basically a C structure which is passed to drivers to tell them about +platform-specific settings like the address of its registers, bus +speed, etc. Device tree is now the preferred way of handling this. +Unless you have a good reason not to use device tree (the main one +being you need serial support in SPL and don't have enough SRAM for +the cut-down device tree and libfdt libraries) you should stay away +from platform data. Platform data is like Linux platform data, if you are familiar with that. It provides the board-specific information to start up a device. @@ -366,9 +379,9 @@ Examples of platform data include: - The base address of the IP block's register space - Configuration options, like: - - the SPI polarity and maximum speed for a SPI controller - - the I2C speed to use for an I2C device - - the number of GPIOs available in a GPIO device + - the SPI polarity and maximum speed for a SPI controller + - the I2C speed to use for an I2C device + - the number of GPIOs available in a GPIO device Where does the platform data come from? It is either held in a structure which is compiled into U-Boot, or it can be parsed from the Device Tree @@ -382,12 +395,15 @@ the generic drivers, which are intended to work on any board. Drivers can access their data via dev->info->platdata. Here is the declaration for the platform data, which would normally appear -in the board file. +in the board file: + +.. code-block:: c static const struct dm_demo_cdata red_square = { .colour = "red", .sides = 4. }; + static const struct driver_info info[] = { { .name = "demo_shape_drv", @@ -409,6 +425,8 @@ necessary. With device tree we replace the above code with the following device tree fragment: +.. code-block:: c + red-square { compatible = "demo-shape"; colour = "red"; @@ -425,6 +443,8 @@ the board first!). The easiest way to make this work it to add a few members to the driver: +.. code-block:: c + .platdata_auto_alloc_size = sizeof(struct dm_test_pdata), .ofdata_to_platdata = testfdt_ofdata_to_platdata, @@ -464,9 +484,11 @@ Declaring Uclasses The demo uclass is declared like this: -U_BOOT_CLASS(demo) = { - .id = UCLASS_DEMO, -}; +.. code-block:: c + + U_BOOT_CLASS(demo) = { + .id = UCLASS_DEMO, + }; It is also possible to specify special methods for probe, etc. The uclass numbering comes from include/dm/uclass.h. To add a new uclass, add to the @@ -496,9 +518,11 @@ device will be automatically allocated the next available sequence number. To specify the sequence number in the device tree an alias is typically used. Make sure that the uclass has the DM_UC_FLAG_SEQ_ALIAS flag set. -aliases { - serial2 = "/serial@22230000"; -}; +.. code-block:: none + + aliases { + serial2 = "/serial@22230000"; + }; This indicates that in the uclass called "serial", the named node ("/serial@22230000") will be given sequence number 2. Any command or driver @@ -506,13 +530,15 @@ which requests serial device 2 will obtain this device. More commonly you can use node references, which expand to the full path: -aliases { - serial2 = &serial_2; -}; -... -serial_2: serial@22230000 { -... -}; +.. code-block:: none + + aliases { + serial2 = &serial_2; + }; + ... + serial_2: serial@22230000 { + ... + }; The alias resolves to the same string in this case, but this version is easier to read. @@ -547,7 +573,7 @@ children are bound and probed. Here an explanation of how a bus fits with a uclass may be useful. Consider a USB bus with several devices attached to it, each from a different (made -up) uclass: +up) uclass:: xhci_usb (UCLASS_USB) eth (UCLASS_ETHERNET) @@ -579,7 +605,7 @@ Note that the information that controls this behaviour is in the bus's driver, not the child's. In fact it is possible that child has no knowledge that it is connected to a bus. The same child device may even be used on two different bus types. As an example. the 'flash' device shown above may also -be connected on a SATA bus or standalone with no bus: +be connected on a SATA bus or standalone with no bus:: xhci_usb (UCLASS_USB) flash (UCLASS_FLASH_STORAGE) - parent data/methods defined by USB bus @@ -617,16 +643,16 @@ methods actually defined. U-Boot discovers devices using one of these two methods: - - Scan the U_BOOT_DEVICE() definitions. U-Boot looks up the name specified -by each, to find the appropriate U_BOOT_DRIVER() definition. In this case, -there is no path by which driver_data may be provided, but the U_BOOT_DEVICE() -may provide platdata. +- Scan the U_BOOT_DEVICE() definitions. U-Boot looks up the name specified + by each, to find the appropriate U_BOOT_DRIVER() definition. In this case, + there is no path by which driver_data may be provided, but the U_BOOT_DEVICE() + may provide platdata. - - Scan through the device tree definitions. U-Boot looks at top-level -nodes in the the device tree. It looks at the compatible string in each node -and uses the of_match table of the U_BOOT_DRIVER() structure to find the -right driver for each node. In this case, the of_match table may provide a -driver_data value, but platdata cannot be provided until later. +- Scan through the device tree definitions. U-Boot looks at top-level + nodes in the the device tree. It looks at the compatible string in each node + and uses the of_match table of the U_BOOT_DRIVER() structure to find the + right driver for each node. In this case, the of_match table may provide a + driver_data value, but platdata cannot be provided until later. For each device that is discovered, U-Boot then calls device_bind() to create a new device, initializes various core fields of the device object such as name, @@ -805,24 +831,24 @@ For the record, this implementation uses a very similar approach to the original patches, but makes at least the following changes: - Tried to aggressively remove boilerplate, so that for most drivers there -is little or no 'driver model' code to write. + is little or no 'driver model' code to write. - Moved some data from code into data structure - e.g. store a pointer to -the driver operations structure in the driver, rather than passing it -to the driver bind function. + the driver operations structure in the driver, rather than passing it + to the driver bind function. - Rename some structures to make them more similar to Linux (struct udevice -instead of struct instance, struct platdata, etc.) + instead of struct instance, struct platdata, etc.) - Change the name 'core' to 'uclass', meaning U-Boot class. It seems that -this concept relates to a class of drivers (or a subsystem). We shouldn't -use 'class' since it is a C++ reserved word, so U-Boot class (uclass) seems -better than 'core'. + this concept relates to a class of drivers (or a subsystem). We shouldn't + use 'class' since it is a C++ reserved word, so U-Boot class (uclass) seems + better than 'core'. - Remove 'struct driver_instance' and just use a single 'struct udevice'. -This removes a level of indirection that doesn't seem necessary. + This removes a level of indirection that doesn't seem necessary. - Built in device tree support, to avoid the need for platdata - Removed the concept of driver relocation, and just make it possible for -the new driver (created after relocation) to access the old driver data. -I feel that relocation is a very special case and will only apply to a few -drivers, many of which can/will just re-init anyway. So the overhead of -dealing with this might not be worth it. + the new driver (created after relocation) to access the old driver data. + I feel that relocation is a very special case and will only apply to a few + drivers, many of which can/will just re-init anyway. So the overhead of + dealing with this might not be worth it. - Implemented a GPIO system, trying to keep it simple @@ -905,10 +931,10 @@ so has been left out for now. One small advantage of dynamic numbering might be fewer merge conflicts in uclass-id.h. -Simon Glass -sjg@chromium.org -April 2013 -Updated 7-May-13 -Updated 14-Jun-13 -Updated 18-Oct-13 -Updated 5-Nov-13 +:author: Simon Glass + +.. April 2013 +.. Updated 7-May-13 +.. Updated 14-Jun-13 +.. Updated 18-Oct-13 +.. Updated 5-Nov-13 diff --git a/doc/driver-model/index.rst b/doc/driver-model/index.rst index c16a544..ae28dc0 100644 --- a/doc/driver-model/index.rst +++ b/doc/driver-model/index.rst @@ -4,3 +4,5 @@ Driver Model .. toctree:: :maxdepth: 2 + + design From patchwork Tue Jul 16 16:42:50 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bin Meng X-Patchwork-Id: 1132870 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=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; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="YRjuRDRC"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 45p5sD1WWKz9sN4 for ; Wed, 17 Jul 2019 02:46:56 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id DE7D6C21F19; Tue, 16 Jul 2019 16:43:47 +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=FREEMAIL_FROM, 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 2A590C21EE7; Tue, 16 Jul 2019 16:43:17 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 2452CC21EE7; Tue, 16 Jul 2019 16:43:11 +0000 (UTC) Received: from mail-pl1-f196.google.com (mail-pl1-f196.google.com [209.85.214.196]) by lists.denx.de (Postfix) with ESMTPS id D8736C21E42 for ; Tue, 16 Jul 2019 16:43:07 +0000 (UTC) Received: by mail-pl1-f196.google.com with SMTP id 4so3438064pld.10 for ; Tue, 16 Jul 2019 09:43:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:in-reply-to:references; bh=HpFnVFJJd0ixpuXUzRWawKPSLIY8ID5f+ioS+0EUX7Y=; b=YRjuRDRCsqq5hkwDTMF3ayCp6zxNaRWYPk7UWMrPk4zijLhvisb7S2ZIJV1IYxJ9oY ME4MUVZZqZN60YHalcg4TnTL2ZlC7+RwAOaRrL9FGHDmpWesc/L0mZL9a2zjmS6xE7bN VdCwJyYNMVOpQ+fHQdzSGSUj23MvPPKLe93hbSjB3kwBifeN9pcVbNTbd0hK0A9TFqd+ lWNUbMKfP/7TeqO8tIDKDMp7AJCJaEJlPAyP43pMY6oxf3KW6nrUtko4vKkvkp8UeDdM OFWfLTJ1o9ZR7nUTglvx86RKYiGMlMahAvV4MzsGWVuf8uoHpIGl9gFIU3PKm/itdPhT mb6w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references; bh=HpFnVFJJd0ixpuXUzRWawKPSLIY8ID5f+ioS+0EUX7Y=; b=lLyASNI2j6Q1KUwfe6Au4+4X2ptaXHLWGXMOgbNYdmdujmyU1QohyPcH8ubnvAcDPH lNFHU9HQlr5q5WG0u8Iho2NlIJRayt65Et8xjOMcpQhFeSG4PFS/K7Zyp8OjWe1eAaPg M/DjbRYNl68x2uPoAkd3AnJZyX/YVvUbnLRAGjiADRvNf+duhuxk6KNIyxOKUzgvLYcR CYdw+dyGIkVSRy23RfRrkaYN2f2ky6r1bhwD1mv1HBayqRgZp3WDG0rekIuorfKXYPEt Uey9ujqtmo/fuuyDFc+qwCVfql/aItc8hWhHyEw7AiakDW8d4MSKIUuWFsbiiFcW+p7w lcTQ== X-Gm-Message-State: APjAAAVes35E207ybYQ7Yx7477MU/cQQA6tFiiSrDRl1F+AD9r2oVWFW o5i2IawLnptSu2DYAIc1eH4= X-Google-Smtp-Source: APXvYqxZnxWm6gbzw2vX+iAOChToC0FWoyDJ8/Wop85nALJWPPXcAcFf1o61xOKv3jUfMYwolgJxVg== X-Received: by 2002:a17:902:28:: with SMTP id 37mr34245972pla.188.1563295386471; Tue, 16 Jul 2019 09:43:06 -0700 (PDT) Received: from localhost.localdomain (unknown-224-80.windriver.com. [147.11.224.80]) by smtp.gmail.com with ESMTPSA id h12sm26017441pje.12.2019.07.16.09.43.05 (version=TLS1 cipher=AES128-SHA bits=128/128); Tue, 16 Jul 2019 09:43:05 -0700 (PDT) From: Bin Meng To: Tom Rini , Simon Glass , Wolfgang Denk , Heinrich Schuchardt , Mario Six , U-Boot Mailing List Date: Tue, 16 Jul 2019 09:42:50 -0700 Message-Id: <1563295374-1504-6-git-send-email-bmeng.cn@gmail.com> X-Mailer: git-send-email 1.7.1 In-Reply-To: <1563295374-1504-1-git-send-email-bmeng.cn@gmail.com> References: <1563295374-1504-1-git-send-email-bmeng.cn@gmail.com> Subject: [U-Boot] [RFC PATCH 5/9] doc: driver-model: Convert MIGRATION.txt to reST 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" Convert plain text documentation to reStructuredText format and add it to Sphinx TOC tree. No essential content change. Signed-off-by: Bin Meng Reviewed-by: Heinrich Schuchardt --- doc/driver-model/index.rst | 1 + doc/driver-model/{MIGRATION.txt => migration.rst} | 42 ++++++++++------------- 2 files changed, 20 insertions(+), 23 deletions(-) rename doc/driver-model/{MIGRATION.txt => migration.rst} (85%) diff --git a/doc/driver-model/index.rst b/doc/driver-model/index.rst index ae28dc0..7d5faf3 100644 --- a/doc/driver-model/index.rst +++ b/doc/driver-model/index.rst @@ -6,3 +6,4 @@ Driver Model :maxdepth: 2 design + migration diff --git a/doc/driver-model/MIGRATION.txt b/doc/driver-model/migration.rst similarity index 85% rename from doc/driver-model/MIGRATION.txt rename to doc/driver-model/migration.rst index d38be35..73e22ed 100644 --- a/doc/driver-model/MIGRATION.txt +++ b/doc/driver-model/migration.rst @@ -1,5 +1,5 @@ Migration Schedule -==================== +================== U-Boot has been migrating to a new driver model since its introduction in 2014. This file describes the schedule for deprecation of pre-driver-model @@ -8,8 +8,8 @@ features. CONFIG_DM_MMC ------------- -Status: In progress -Deadline: 2019.04 +* Status: In progress +* Deadline: 2019.04 The subsystem itself has been converted and maintainers should submit patches switching over to using CONFIG_DM_MMC and other base driver model options in @@ -18,8 +18,8 @@ time for inclusion in the 2019.04 rerelease. CONFIG_DM_USB ------------- -Status: In progress -Deadline: 2019.07 +* Status: In progress +* Deadline: 2019.07 The subsystem itself has been converted along with many of the host controller and maintainers should submit patches switching over to using CONFIG_DM_USB and @@ -28,8 +28,8 @@ other base driver model options in time for inclusion in the 2019.07 rerelease. CONFIG_SATA ----------- -Status: In progress -Deadline: 2019.07 +* Status: In progress +* Deadline: 2019.07 The subsystem itself has been converted along with many of the host controller and maintainers should submit patches switching over to using CONFIG_AHCI and @@ -38,8 +38,8 @@ other base driver model options in time for inclusion in the 2019.07 rerelease. CONFIG_BLK ---------- -Status: In progress -Deadline: 2019.07 +* Status: In progress +* Deadline: 2019.07 In concert with maintainers migrating their block device usage to the appropriate DM driver, CONFIG_BLK needs to be set as well. The final deadline @@ -48,14 +48,14 @@ subsystems. At this point we will be able to audit and correct the logic in Kconfig around using CONFIG_PARTITIONS and CONFIG_HAVE_BLOCK_DEVICE and make use of CONFIG_BLK / CONFIG_SPL_BLK as needed. -CONFIG_DM_SPI -CONFIG_DM_SPI_FLASH -------------------- +CONFIG_DM_SPI / CONFIG_DM_SPI_FLASH +----------------------------------- Board Maintainers should submit the patches for enabling DM_SPI and DM_SPI_FLASH to move the migration with in the deadline. -No dm conversion yet: +No dm conversion yet:: + drivers/spi/cf_spi.c drivers/spi/fsl_espi.c drivers/spi/lpc32xx_ssp.c @@ -63,10 +63,11 @@ No dm conversion yet: drivers/spi/sh_spi.c drivers/spi/soft_spi_legacy.c - Status: In progress - Deadline: 2019.04 +* Status: In progress +* Deadline: 2019.04 + +Partially converted:: -Partially converted: drivers/spi/davinci_spi.c drivers/spi/fsl_dspi.c drivers/spi/kirkwood_spi.c @@ -74,13 +75,8 @@ Partially converted: drivers/spi/omap3_spi.c drivers/spi/sh_qspi.c - Status: In progress - Deadline: 2019.07 - --- -Jagan Teki -12/24/2018 -03/14/2018 +* Status: In progress +* Deadline: 2019.07 CONFIG_DM_PCI From patchwork Tue Jul 16 16:42:51 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bin Meng X-Patchwork-Id: 1132866 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=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; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="Vhll+Nd7"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 45p5qL5PFNz9sN4 for ; Wed, 17 Jul 2019 02:45:18 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id 665ACC21E60; Tue, 16 Jul 2019 16:44:00 +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=FREEMAIL_FROM, 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 B3117C21C6A; Tue, 16 Jul 2019 16:43:19 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id DE57BC21EC8; Tue, 16 Jul 2019 16:43:12 +0000 (UTC) Received: from mail-pl1-f195.google.com (mail-pl1-f195.google.com [209.85.214.195]) by lists.denx.de (Postfix) with ESMTPS id C5E56C21E34 for ; Tue, 16 Jul 2019 16:43:08 +0000 (UTC) Received: by mail-pl1-f195.google.com with SMTP id c2so10373041plz.13 for ; Tue, 16 Jul 2019 09:43:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:in-reply-to:references; bh=lYgiax0UuE+yjprs9dAK/PUfHUNC4aQ7PhrTzXQpgeU=; b=Vhll+Nd7gjlJyTq3foDB9I3SjhmYQhbHph+W5Z7wCfJZB6GZL7hXKNImH8z/xNwdsQ ygvLmBMIJSkOjL3Tswfa0Arqa0ZdF4bU7Ifst6NY4UZFY/WCbhgZRxhcZcZApsUaJNBr 0avcbJhKlPVZNIDFAOzPSzICyqC08tLLHh4YzKq9wPwi7Ko/srXhhcquj0AF93neIkjC pA/T6bqJisFCOZGSYxtK4eFGTgzDDZFJMMc8RPARr0BNk+iVEiKE1+nGkHi1s2cQm3z2 Uk0wb9FqTVOu0pq5wWiPEnnGaYZvlep31MXx9VJBpe5HEIAaugCImHediwR4trZrp3s/ gGGw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references; bh=lYgiax0UuE+yjprs9dAK/PUfHUNC4aQ7PhrTzXQpgeU=; b=foO1EZ3iq8Iyz07BbaG31YvPvfqGAq3QfSwRleXy0PFMbhuGueXAVhujr7ablFM/nu zfPy34nloaLey67e/7mX1RmIZOr4MHIHyg9zT07Wow2entUAUvRlB0slmnz7duV5kCHC s257zhVTxXbBZ2TpC0QQiZya3LpVizRa5JTB+cVwEfiQma3gDxlTq4KGJfI/MN3WKYZN BI7txe/aR54OXyT9sKqfw+zRcMV3A93QOTe+wu6jJiHoc+MfL+LxIWN2nBXxnjtYa0fq L0EbcqaeQkRVoIoYtsDIruuU83Lga7+s1pZ10ke9JCFUQ8Z4XbGDCQdumjvamFVIvPA6 Jwnw== X-Gm-Message-State: APjAAAXy00tlvhTz/Yqy5HUvbebkkndAlQN9lqBpqOkE5xZNO3qi0s9A M3opYn3eUfktk+T8vqiVx70= X-Google-Smtp-Source: APXvYqxdUa3j3V8tfIhWIP+JRZqPBdfn/Us6eXJ+1F/G+DFhArTXJe3TYRu1UJWQ+tPCOEGbiYGcgg== X-Received: by 2002:a17:902:324:: with SMTP id 33mr36073925pld.340.1563295387441; Tue, 16 Jul 2019 09:43:07 -0700 (PDT) Received: from localhost.localdomain (unknown-224-80.windriver.com. [147.11.224.80]) by smtp.gmail.com with ESMTPSA id h12sm26017441pje.12.2019.07.16.09.43.06 (version=TLS1 cipher=AES128-SHA bits=128/128); Tue, 16 Jul 2019 09:43:06 -0700 (PDT) From: Bin Meng To: Tom Rini , Simon Glass , Wolfgang Denk , Heinrich Schuchardt , Mario Six , U-Boot Mailing List Date: Tue, 16 Jul 2019 09:42:51 -0700 Message-Id: <1563295374-1504-7-git-send-email-bmeng.cn@gmail.com> X-Mailer: git-send-email 1.7.1 In-Reply-To: <1563295374-1504-1-git-send-email-bmeng.cn@gmail.com> References: <1563295374-1504-1-git-send-email-bmeng.cn@gmail.com> Subject: [U-Boot] [RFC PATCH 6/9] doc: Add architecture specific info to Sphinx TOC tree 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" Add index.rst for architecture specific info. More docs will be added later. Signed-off-by: Bin Meng Reviewed-by: Heinrich Schuchardt --- doc/arch/index.rst | 6 ++++++ doc/index.rst | 11 +++++++++++ 2 files changed, 17 insertions(+) create mode 100644 doc/arch/index.rst diff --git a/doc/arch/index.rst b/doc/arch/index.rst new file mode 100644 index 0000000..920043a --- /dev/null +++ b/doc/arch/index.rst @@ -0,0 +1,6 @@ +========================= +Architecture-specific doc +========================= + +.. toctree:: + :maxdepth: 2 diff --git a/doc/index.rst b/doc/index.rst index 835decf..562f1b7 100644 --- a/doc/index.rst +++ b/doc/index.rst @@ -40,6 +40,17 @@ needed). api/index +Architecture-specific doc +------------------------- + +These books provide programming details about architecture-specific +implementation. + +.. toctree:: + :maxdepth: 2 + + arch/index + Indices and tables ================== From patchwork Tue Jul 16 16:42:52 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bin Meng X-Patchwork-Id: 1132869 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=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; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="jbIBKlFy"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 45p5s32Ntfz9sN4 for ; Wed, 17 Jul 2019 02:46:47 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id 0143DC21EE8; Tue, 16 Jul 2019 16:45:44 +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=FREEMAIL_FROM, 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 19417C21E0B; Tue, 16 Jul 2019 16:44:07 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 10EBCC21E68; Tue, 16 Jul 2019 16:43:15 +0000 (UTC) Received: from mail-pl1-f195.google.com (mail-pl1-f195.google.com [209.85.214.195]) by lists.denx.de (Postfix) with ESMTPS id E5826C21EC2 for ; Tue, 16 Jul 2019 16:43:09 +0000 (UTC) Received: by mail-pl1-f195.google.com with SMTP id b3so10402929plr.4 for ; Tue, 16 Jul 2019 09:43:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:in-reply-to:references; bh=b+6Cu2m66MC1kd9YlLnfUsMIVF3gA2dbogu7D6Fi3cA=; b=jbIBKlFyLPA/4/cNvTcCh1ArcfroDPDqs/vCm+ARf99xKkOO08BDEV30Vd2q3P27RF O7bmaIf7+7JjLIDYxXptURqWeD9v9DDMWdoQ6Gl8jhsKOjir+VoNx+SIpexBBYshdrB5 DwxxGiUOvvn5fmWEVo2OSfUHvUZsM8Nh/ypQcOI0BaBpNghr9iZajCMfES9SXrnLtD9p SOsveSn6CHThQUtnx5UOcteupXsmz+6csMSs8mXWduSlkPoyvDDZ86IOH7WOjNZv+wy8 pESQZGhut6BGAgETrEzVN8aUh0S0eFnCVx0LaQFUNFkgsnSHk6zyeJGydK73skn8mOoU /Vmg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references; bh=b+6Cu2m66MC1kd9YlLnfUsMIVF3gA2dbogu7D6Fi3cA=; b=YMv0RWgyatCgmTdrUfgTGvZXjy99REZouzLlYs0FkciJq+Z8RtewZ+xvBOgERzE0FA Pk/aLgGgPHtPTQHDrzxRRm10Yn1jHXFqufsPumGJLh+G3D1XUDMV+IEhDgbFwVYjeBz3 kDNSfwnrDoQRpy2NL8X/eRiyuCflwhPKbTuRWPdLB3S9voM43/IbtAClKl3OSWf5x843 VrCqZP27/FmoDfmtA6N/HqA2m1hA9jkO18h/IufO8LlpPs5JS2yEZY+6RwxU0D9JAp8r YqL89ik0yWP32rLlcvvNbKEKIgy8BPEc38eVodEE5lnKr72PySDxjvMA6IKlGVRs7ZPN /2Jw== X-Gm-Message-State: APjAAAVm7RJ+0XKBUUu2n2hWS47wy2iOSyc86BQVSeCMlWHmytOtXIy8 a9/osLVKvkxgSh0gHvqNZZr/M+5o X-Google-Smtp-Source: APXvYqxQbq9ytwTjbol6fojo8K5uiBCUopMs0dl/UqXms6PCP5dCQ6RG+iEsyu8uBEX/9Ij1bCmwQA== X-Received: by 2002:a17:902:76c7:: with SMTP id j7mr35538057plt.247.1563295388541; Tue, 16 Jul 2019 09:43:08 -0700 (PDT) Received: from localhost.localdomain (unknown-224-80.windriver.com. [147.11.224.80]) by smtp.gmail.com with ESMTPSA id h12sm26017441pje.12.2019.07.16.09.43.07 (version=TLS1 cipher=AES128-SHA bits=128/128); Tue, 16 Jul 2019 09:43:08 -0700 (PDT) From: Bin Meng To: Tom Rini , Simon Glass , Wolfgang Denk , Heinrich Schuchardt , Mario Six , U-Boot Mailing List Date: Tue, 16 Jul 2019 09:42:52 -0700 Message-Id: <1563295374-1504-8-git-send-email-bmeng.cn@gmail.com> X-Mailer: git-send-email 1.7.1 In-Reply-To: <1563295374-1504-1-git-send-email-bmeng.cn@gmail.com> References: <1563295374-1504-1-git-send-email-bmeng.cn@gmail.com> Subject: [U-Boot] [RFC PATCH 7/9] doc: arch: Convert README.mips to reST 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" Convert plain text documentation to reStructuredText format and add it to Sphinx TOC tree. No essential content change. Signed-off-by: Bin Meng Reviewed-by: Heinrich Schuchardt --- doc/arch/index.rst | 2 ++ doc/{README.mips => arch/mips.rst} | 14 ++++++++------ 2 files changed, 10 insertions(+), 6 deletions(-) rename doc/{README.mips => arch/mips.rst} (87%) diff --git a/doc/arch/index.rst b/doc/arch/index.rst index 920043a..bdeccdb 100644 --- a/doc/arch/index.rst +++ b/doc/arch/index.rst @@ -4,3 +4,5 @@ Architecture-specific doc .. toctree:: :maxdepth: 2 + + mips diff --git a/doc/README.mips b/doc/arch/mips.rst similarity index 87% rename from doc/README.mips rename to doc/arch/mips.rst index b28f628..b51d0a1 100644 --- a/doc/README.mips +++ b/doc/arch/mips.rst @@ -1,17 +1,19 @@ +MIPS +==== Notes for the MIPS architecture port of U-Boot Toolchains ---------- - http://www.denx.de/wiki/DULG/ELDK - ELDK < DULG < DENX + * http://www.denx.de/wiki/DULG/ELDK + ELDK < DULG < DENX - http://www.emdebian.org/crosstools.html - Embedded Debian -- Cross-development toolchains + * http://www.emdebian.org/crosstools.html + Embedded Debian -- Cross-development toolchains - http://buildroot.uclibc.org/ - Buildroot + * http://buildroot.uclibc.org/ + Buildroot Known Issues ------------ From patchwork Tue Jul 16 16:42:53 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bin Meng X-Patchwork-Id: 1132868 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=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; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="tUp39sa+"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 45p5rl22SFz9sN4 for ; Wed, 17 Jul 2019 02:46:31 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id E6AF1C21F24; Tue, 16 Jul 2019 16:45:13 +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=FREEMAIL_FROM, 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 A0A96C21E50; Tue, 16 Jul 2019 16:43:46 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 78E62C21DC1; Tue, 16 Jul 2019 16:43:14 +0000 (UTC) Received: from mail-pl1-f194.google.com (mail-pl1-f194.google.com [209.85.214.194]) by lists.denx.de (Postfix) with ESMTPS id CE518C21E60 for ; Tue, 16 Jul 2019 16:43:10 +0000 (UTC) Received: by mail-pl1-f194.google.com with SMTP id az7so10393778plb.5 for ; Tue, 16 Jul 2019 09:43:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:in-reply-to:references; bh=L3PBpBcyaeUJaJVwk0xSil08yYFflyrx/sAY25kXrTs=; b=tUp39sa+SH+YVNKLiI9awiLldMwu7g6T4f5rHvYiWUjB+KLpDGH2yEk03lVOIOikXd 8BONNRYcBVm8x7+8lcbChekg+TtZqTalFX0weUlsgAQBkmO9hvPMY0q+IjnJqyZ1LmWv itv9MQdav9YV2pHUblINH7htlq4Ai99fpryjrLFscFR6MX5CLf7dxqIpg/Pb0AgEpaEv iqQb5fB90j28b+hk14IrXK1TMk7Us3PujxbVlWqvNQJlf9/XE7ayjGLrNIcM5qQrZThE L7LIyz0jHKVEEtoxkbpRq1HeaHJs/hv2qsHV6nGyabSAMr7RKkJS64nlEUjf9CXdOhyX /QPA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references; bh=L3PBpBcyaeUJaJVwk0xSil08yYFflyrx/sAY25kXrTs=; b=FtDRiaj0IllsEJxuW5sx7WHQgM7QxF/l3GvYmnjG3b+MHsucKMd2M9RECya6LJTERB utGCdAEU3PFoSLpdcBLjTMifeVc2ZMV8dJuM2vEAmBBsT49ZzcfBqZWvE61/hHNWlAU1 FBCXdnSXLJO4e4BntE+m2Zz8viDD+agzQ3HxwPz7pVgJsB1Wwc0+xSZhUfRN2oLatI3D obGPVV+rkEeyTF1RWYQehaM93xrFPKkMQ2aVoogj/SNw1wGxAuG0n4aE2EyRgLqeind2 /wBovjPHln2UvHcNi9FjmBD6/fn4M8zHd4ifEF2XWFJe7hklUn3Nwwr12t6NI2nkVAfL otuA== X-Gm-Message-State: APjAAAUjAgUFHl8zRzE7hW2+UUzXl/t48J1ayY0Fnjm9QpKyw0QpAjKs nlNcyshjZxqMDCWTY7V+wn0= X-Google-Smtp-Source: APXvYqzlkFdAwKRCp9gbQRahX8lQQxQvah4y3cpKnPasjhkzVQgS8OjRxagcdLdbMKjzpWwmOwZv4g== X-Received: by 2002:a17:902:9004:: with SMTP id a4mr37094546plp.109.1563295389503; Tue, 16 Jul 2019 09:43:09 -0700 (PDT) Received: from localhost.localdomain (unknown-224-80.windriver.com. [147.11.224.80]) by smtp.gmail.com with ESMTPSA id h12sm26017441pje.12.2019.07.16.09.43.08 (version=TLS1 cipher=AES128-SHA bits=128/128); Tue, 16 Jul 2019 09:43:08 -0700 (PDT) From: Bin Meng To: Tom Rini , Simon Glass , Wolfgang Denk , Heinrich Schuchardt , Mario Six , U-Boot Mailing List Date: Tue, 16 Jul 2019 09:42:53 -0700 Message-Id: <1563295374-1504-9-git-send-email-bmeng.cn@gmail.com> X-Mailer: git-send-email 1.7.1 In-Reply-To: <1563295374-1504-1-git-send-email-bmeng.cn@gmail.com> References: <1563295374-1504-1-git-send-email-bmeng.cn@gmail.com> Subject: [U-Boot] [RFC PATCH 8/9] doc: Add board to Sphinx TOC tree 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" Add index.rst for board. More docs will be added later. Signed-off-by: Bin Meng Reviewed-by: Heinrich Schuchardt --- doc/board/index.rst | 6 ++++++ doc/index.rst | 11 +++++++++++ 2 files changed, 17 insertions(+) create mode 100644 doc/board/index.rst diff --git a/doc/board/index.rst b/doc/board/index.rst new file mode 100644 index 0000000..4a65def --- /dev/null +++ b/doc/board/index.rst @@ -0,0 +1,6 @@ +================== +Board-specific doc +================== + +.. toctree:: + :maxdepth: 2 diff --git a/doc/index.rst b/doc/index.rst index 562f1b7..fbdf50b 100644 --- a/doc/index.rst +++ b/doc/index.rst @@ -51,6 +51,17 @@ implementation. arch/index +Board-specific doc +------------------ + +These books provide details about board-specific information. They are +organized in a vendor subdirectory. + +.. toctree:: + :maxdepth: 2 + + board/index + Indices and tables ================== From patchwork Tue Jul 16 16:42:54 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bin Meng X-Patchwork-Id: 1132871 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=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; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="M8It/1Mu"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 45p5sF5HGfz9sNC for ; Wed, 17 Jul 2019 02:46:57 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id 764B9C21EC2; Tue, 16 Jul 2019 16:45:27 +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=FREEMAIL_FROM, 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 4B62DC21F07; Tue, 16 Jul 2019 16:43:55 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id EEB75C21EC8; Tue, 16 Jul 2019 16:43:16 +0000 (UTC) Received: from mail-pl1-f177.google.com (mail-pl1-f177.google.com [209.85.214.177]) by lists.denx.de (Postfix) with ESMTPS id C7EB3C21E68 for ; Tue, 16 Jul 2019 16:43:12 +0000 (UTC) Received: by mail-pl1-f177.google.com with SMTP id a93so10386904pla.7 for ; Tue, 16 Jul 2019 09:43:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:in-reply-to:references; bh=SLBHPpqA5F2ySCxyQ7F8qnRU8cs1bnAL+citE4MP7+w=; b=M8It/1Mu/qhUSmIyki+fHrs70h2VTzt7pkMEdLmsosEXIuWiXzmstuVI74UaQn0ihV O9P6IfN2+q5mfAxaf9oAyPQEzKdafSFqFfHSVFvsPSdUHouKSL7CMsKqNc1RHQIcmwEl UB2Xrc9eeYXE458ORWxl5gvIEkRT+M99riwJpTMQsalOdewkYgtvomguq0lYK+trrqRP tIqsOeBSiYzXPFeGwxu0fYjX+/3umFBDFEYP0xlbrRAE85QVE3gPiN3IcQp0VzxMIvJN qWopP8otE3hBKzdbedVouZlQEdQfyVj0VNBppBlDXxrWAqz/5v10rw4LLNGyeFPsIUFg cKQg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references; bh=SLBHPpqA5F2ySCxyQ7F8qnRU8cs1bnAL+citE4MP7+w=; b=rf3r1PuHfeeiTXYMA0xf42hKzFSmIKF2CoXiQc0m79JTuW26BQ1GX+1/GTK95JGNRq QnejgHYPjxv+QDAYQ4LBP1Lj0OcdxyHoOHq/o7uAqyhxXsi6Yy+rrY9qkA/z50Foy77Y cqC/81dcLcyXWvUyaXPCm8kaitfZutsRfWX+LM1c6IYz5xKdtWEwP1BC+aVD66c62FT3 IBXCSL2zVxUWYf0+EE8TxQyHArfkeQT2HAp7JaS/5OS6cArxbdy5YOovbPnEu+WmE984 IRU9zHkusuIwtX3UAnORubbl/8u5rxc/AHZ7iE/WE+TBmDtUGweZfH+EtgTdXnltWHN9 POKA== X-Gm-Message-State: APjAAAXpl5rKBuSKBqXwTEfBcAz6xfVVOjh+FABtWPfnNqEahLN+e1iF gc2+qO5WICXwe+SZ6I1tYOM= X-Google-Smtp-Source: APXvYqxP50aAnxcWuQ6U2TsAzN3d3ezkVL1QyslDTyfF0vmOq2SGZf0Te+IISwWeNEwZ4HxqMS5NJA== X-Received: by 2002:a17:902:54d:: with SMTP id 71mr36149732plf.140.1563295390721; Tue, 16 Jul 2019 09:43:10 -0700 (PDT) Received: from localhost.localdomain (unknown-224-80.windriver.com. [147.11.224.80]) by smtp.gmail.com with ESMTPSA id h12sm26017441pje.12.2019.07.16.09.43.09 (version=TLS1 cipher=AES128-SHA bits=128/128); Tue, 16 Jul 2019 09:43:10 -0700 (PDT) From: Bin Meng To: Tom Rini , Simon Glass , Wolfgang Denk , Heinrich Schuchardt , Mario Six , U-Boot Mailing List Date: Tue, 16 Jul 2019 09:42:54 -0700 Message-Id: <1563295374-1504-10-git-send-email-bmeng.cn@gmail.com> X-Mailer: git-send-email 1.7.1 In-Reply-To: <1563295374-1504-1-git-send-email-bmeng.cn@gmail.com> References: <1563295374-1504-1-git-send-email-bmeng.cn@gmail.com> Subject: [U-Boot] [RFC PATCH 9/9] doc: board: Add Intel Crown Bay board doc 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" This extracts Intel Crown Bay board specific information from README.x86, converts plain text documentation to reST format and adds it to Sphinx TOC tree. No essential content change. Signed-off-by: Bin Meng --- doc/README.x86 | 37 --------------------------------- doc/board/index.rst | 2 ++ doc/board/intel/crownbay.rst | 49 ++++++++++++++++++++++++++++++++++++++++++++ doc/board/intel/index.rst | 4 ++++ 4 files changed, 55 insertions(+), 37 deletions(-) create mode 100644 doc/board/intel/crownbay.rst create mode 100644 doc/board/intel/index.rst diff --git a/doc/README.x86 b/doc/README.x86 index 8e0a3f3..8077ff3 100644 --- a/doc/README.x86 +++ b/doc/README.x86 @@ -203,43 +203,6 @@ Flash map for samus / broadwell: --- -Intel Crown Bay specific instructions for bare mode: - -U-Boot support of Intel Crown Bay board [4] relies on a binary blob called -Firmware Support Package [5] to perform all the necessary initialization steps -as documented in the BIOS Writer Guide, including initialization of the CPU, -memory controller, chipset and certain bus interfaces. - -Download the Intel FSP for Atom E6xx series and Platform Controller Hub EG20T, -install it on your host and locate the FSP binary blob. Note this platform -also requires a Chipset Micro Code (CMC) state machine binary to be present in -the SPI flash where u-boot.rom resides, and this CMC binary blob can be found -in this FSP package too. - -* ./FSP/QUEENSBAY_FSP_GOLD_001_20-DECEMBER-2013.fd -* ./Microcode/C0_22211.BIN - -Rename the first one to fsp.bin and second one to cmc.bin and put them in the -board directory. - -Note the FSP release version 001 has a bug which could cause random endless -loop during the FspInit call. This bug was published by Intel although Intel -did not describe any details. We need manually apply the patch to the FSP -binary using any hex editor (eg: bvi). Go to the offset 0x1fcd8 of the FSP -binary, change the following five bytes values from orginally E8 42 FF FF FF -to B8 00 80 0B 00. - -As for the video ROM, you need manually extract it from the Intel provided -BIOS for Crown Bay here [6], using the AMI MMTool [7]. Check PCI option ROM -ID 8086:4108, extract and save it as vga.bin in the board directory. - -Now you can build U-Boot and obtain u-boot.rom - -$ make crownbay_defconfig -$ make all - ---- - Intel Cougar Canyon 2 specific instructions for bare mode: This uses Intel FSP for 3rd generation Intel Core and Intel Celeron processors diff --git a/doc/board/index.rst b/doc/board/index.rst index 4a65def..34e59de 100644 --- a/doc/board/index.rst +++ b/doc/board/index.rst @@ -4,3 +4,5 @@ Board-specific doc .. toctree:: :maxdepth: 2 + + intel/index diff --git a/doc/board/intel/crownbay.rst b/doc/board/intel/crownbay.rst new file mode 100644 index 0000000..d77cece --- /dev/null +++ b/doc/board/intel/crownbay.rst @@ -0,0 +1,49 @@ +.. SPDX-License-Identifier: GPL-2.0+ + +:author: Bin Meng + +.. toctree:: + :maxdepth: 2 + +Intel CrownBay CRB +================== + +U-Boot support of Intel Crown Bay board `[1]`_ relies on a binary blob called +Firmware Support Package `[2]`_ to perform all the necessary initialization +steps as documented in the BIOS Writer Guide, including initialization of the +CPU, memory controller, chipset and certain bus interfaces. + +Download the Intel FSP for Atom E6xx series and Platform Controller Hub EG20T, +install it on your host and locate the FSP binary blob. Note this platform +also requires a Chipset Micro Code (CMC) state machine binary to be present in +the SPI flash where u-boot.rom resides, and this CMC binary blob can be found +in this FSP package too. + +* ./FSP/QUEENSBAY_FSP_GOLD_001_20-DECEMBER-2013.fd +* ./Microcode/C0_22211.BIN + +Rename the first one to fsp.bin and second one to cmc.bin and put them in the +board directory. + +Note the FSP release version 001 has a bug which could cause random endless +loop during the FspInit call. This bug was published by Intel although Intel +did not describe any details. We need manually apply the patch to the FSP +binary using any hex editor (eg: bvi). Go to the offset 0x1fcd8 of the FSP +binary, change the following five bytes values from orginally E8 42 FF FF FF +to B8 00 80 0B 00. + +As for the video ROM, you need manually extract it from the Intel provided +BIOS for Crown Bay here `[3]`_, using the AMI MMTool `[4]`_. Check PCI option +ROM ID 8086:4108, extract and save it as vga.bin in the board directory. + +Now you can build U-Boot and obtain u-boot.rom + +.. code-block:: shell + + $ make crownbay_defconfig + $ make all + +.. _[1]: http://www.intel.com/content/www/us/en/embedded/design-tools/evaluation-platforms/atom-e660-eg20t-development-kit.html +.. _[2]: http://www.intel.com/fsp +.. _[3]: http://www.intel.com/content/www/us/en/secure/intelligent-systems/privileged/e6xx-35-b1-cmc22211.html +.. _[4]: http://www.ami.com/products/bios-uefi-tools-and-utilities/bios-uefi-utilities/ diff --git a/doc/board/intel/index.rst b/doc/board/intel/index.rst new file mode 100644 index 0000000..0e5eb47 --- /dev/null +++ b/doc/board/intel/index.rst @@ -0,0 +1,4 @@ +.. toctree:: + :maxdepth: 2 + + crownbay \ No newline at end of file