Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/762609/?format=api
{ "id": 762609, "url": "http://patchwork.ozlabs.org/api/patches/762609/?format=api", "web_url": "http://patchwork.ozlabs.org/project/uboot/patch/1494864969-7374-3-git-send-email-york.sun@nxp.com/", "project": { "id": 18, "url": "http://patchwork.ozlabs.org/api/projects/18/?format=api", "name": "U-Boot", "link_name": "uboot", "list_id": "u-boot.lists.denx.de", "list_email": "u-boot@lists.denx.de", "web_url": null, "scm_url": null, "webscm_url": null, "list_archive_url": "", "list_archive_url_format": "", "commit_url_format": "" }, "msgid": "<1494864969-7374-3-git-send-email-york.sun@nxp.com>", "list_archive_url": null, "date": "2017-05-15T16:16:02", "name": "[U-Boot,v1,2/9] armv8: layerscape: Eanble falcon boot", "commit_ref": null, "pull_url": null, "state": "superseded", "archived": false, "hash": "322e7a0142d4912b49ee168ff9399eb208c5c7e1", "submitter": { "id": 67822, "url": "http://patchwork.ozlabs.org/api/people/67822/?format=api", "name": "York Sun", "email": "york.sun@nxp.com" }, "delegate": { "id": 2666, "url": "http://patchwork.ozlabs.org/api/users/2666/?format=api", "username": "yorksun", "first_name": "York", "last_name": "Sun", "email": "yorksun@freescale.com" }, "mbox": "http://patchwork.ozlabs.org/project/uboot/patch/1494864969-7374-3-git-send-email-york.sun@nxp.com/mbox/", "series": [], "comments": "http://patchwork.ozlabs.org/api/patches/762609/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/762609/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<u-boot-bounces@lists.denx.de>", "X-Original-To": "incoming@patchwork.ozlabs.org", "Delivered-To": "patchwork-incoming@bilbo.ozlabs.org", "Received": [ "from lists.denx.de (dione.denx.de [81.169.180.215])\n\tby ozlabs.org (Postfix) with ESMTP id 3wRQnq2mMGz9s5L\n\tfor <incoming@patchwork.ozlabs.org>;\n\tTue, 16 May 2017 02:21:51 +1000 (AEST)", "by lists.denx.de (Postfix, from userid 105)\n\tid 323BCC21D0B; Mon, 15 May 2017 16:19:32 +0000 (UTC)", "from lists.denx.de (localhost [IPv6:::1])\n\tby lists.denx.de (Postfix) with ESMTP id 4E273C21CE3;\n\tMon, 15 May 2017 16:16:39 +0000 (UTC)", "by lists.denx.de (Postfix, from userid 105)\n\tid 94A45C21D59; Mon, 15 May 2017 16:16:29 +0000 (UTC)", "from NAM02-SN1-obe.outbound.protection.outlook.com\n\t(mail-sn1nam02on0084.outbound.protection.outlook.com [104.47.36.84])\n\tby lists.denx.de (Postfix) with ESMTPS id A698FC21D6B\n\tfor <u-boot@lists.denx.de>; Mon, 15 May 2017 16:16:22 +0000 (UTC)", "from MWHPR03CA0011.namprd03.prod.outlook.com\n\t(2603:10b6:300:117::21)\n\tby BL2PR03MB164.namprd03.prod.outlook.com (2a01:111:e400:c0d::20)\n\twith Microsoft SMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1084.16;\n\tMon, 15 May 2017 16:16:20 +0000", "from BY2FFO11FD023.protection.gbl (2a01:111:f400:7c0c::100) by\n\tMWHPR03CA0011.outlook.office365.com (2603:10b6:300:117::21) with\n\tMicrosoft SMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1084.16\n\tvia Frontend Transport; Mon, 15 May 2017 16:16:19 +0000", "from az84smr01.freescale.net (192.88.158.2) by\n\tBY2FFO11FD023.mail.protection.outlook.com (10.1.15.212) with\n\tMicrosoft SMTP Server (version=TLS1_0,\n\tcipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.1075.5\n\tvia Frontend Transport; Mon, 15 May 2017 16:16:18 +0000", "from oslab-l16.am.freescale.net ([10.213.168.194])\n\tby az84smr01.freescale.net (8.14.3/8.14.0) with ESMTP id\n\tv4FGGCfC013028; Mon, 15 May 2017 09:16:16 -0700" ], "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=BAD_ENC_HEADER,\n\tRCVD_IN_DNSWL_NONE,\n\tSPF_HELO_PASS autolearn=unavailable autolearn_force=no\n\tversion=3.4.0", "Authentication-Results": "spf=fail (sender IP is 192.88.158.2)\n\tsmtp.mailfrom=nxp.com; nxp.com; dkim=none (message not signed)\n\theader.d=none;nxp.com; dmarc=fail action=none header.from=nxp.com;", "Received-SPF": "Fail (protection.outlook.com: domain of nxp.com does not\n\tdesignate 192.88.158.2 as permitted sender)\n\treceiver=protection.outlook.com; \n\tclient-ip=192.88.158.2; helo=az84smr01.freescale.net;", "From": "York Sun <york.sun@nxp.com>", "To": "U-Boot Mailing List <u-boot@lists.denx.de>", "Date": "Mon, 15 May 2017 09:16:02 -0700", "Message-ID": "<1494864969-7374-3-git-send-email-york.sun@nxp.com>", "X-Mailer": "git-send-email 2.7.4", "In-Reply-To": "<1494864969-7374-1-git-send-email-york.sun@nxp.com>", "References": "<1494864969-7374-1-git-send-email-york.sun@nxp.com>", "X-EOPAttributedMessage": "0", "X-Matching-Connectors": "131393385797365392;\n\t(91ab9b29-cfa4-454e-5278-08d120cd25b8); ()", "X-Forefront-Antispam-Report": "CIP:192.88.158.2; IPV:NLI; CTRY:US; EFV:NLI;\n\tSFV:NSPM;\n\tSFS:(10009020)(6009001)(336005)(39410400002)(39850400002)(39400400002)(39380400002)(39450400003)(39840400002)(39860400002)(2980300002)(1109001)(1110001)(339900001)(199003)(189002)(9170700003)(39060400002)(50226002)(53936002)(105606002)(189998001)(106466001)(36756003)(50986999)(498600001)(76176999)(81166006)(104016004)(8676002)(7416002)(305945005)(5660300001)(107886003)(38730400002)(86362001)(8936002)(110136004)(85426001)(50466002)(8666007)(8656002)(54906002)(4326008)(77096006)(6666003)(2906002)(47776003)(2950100002)(48376002)(6916009)(5003940100001)(356003)(33646002);\n\tDIR:OUT; SFP:1101; SCL:1; SRVR:BL2PR03MB164; H:az84smr01.freescale.net;\n\tFPR:; \n\tSPF:Fail; MLV:ovrnspm; A:1; MX:1; PTR:InfoDomainNonexistent; LANG:en; ", "X-Microsoft-Exchange-Diagnostics": [ "1; BY2FFO11FD023;\n\t1:kZkWzJpxzFdSLa6T8QwQ81QHA8DePvfSOXN1vKMsvXXhjLDTLWUfYSitMELIJThyMg0q/7fSwBLV6cl0wU2CZMYupD+yowhSO1zMEvomO07DxjtF9z8/LlijeVVocFhYlIwJjmnPz9Wnt1jgmDvJXD5J9sIF203FywAcfHf71u1rBcKiK4wUb8ut4DqdztykWmNDal3NmUPW9g51e4w5AiAUW0PaLigjNqyASPI4o/yaIKd3v7quWxGZi7NZx6LmVo96S6lX82MTbfxlKJyeVQQp5efow8jWTvxhodmEFfPZ7RppgwU2n00elm2hqImYuQyVqVnLfLYTCwctXnEmaKFpWOs8ogt8fJKW57S+mVEGLYt8Fx772RMT0UKjDHcfDcOcS4W30JJ3nXP9CE54rQ6gqHHZI8NITRYWUOMdeiL8MJeqNv+R+KPqd5FsYKdnkQj6Hi75QsJVJmv0G0PYQgPQXJMo9Efe1xdmAfQTIQP6130r1mO2zLoN/mFVSygbCH+qa4qzVA79R7PANQXDISczrLb+mHNk+/iM9MC4X9Gy8QsDyPBvsbXxIIhPVg18ohROrbShQDJx+0Dwa45y8ys08pxj+LgKTxnC1jJ9hgbKA/b4RkowSwSYTbe3AsyOGgb9o7whmVbAK5OLS2Rh6fqvBdQiRMq1oDQ9eOaqoAR4CXt9oogwe4Z94Bzj5P2bxWPsRaCUWFddbODcB8FBimEzZJqREXfyo/MGNn9kmS86mA8m2wFZ9rbXdb22prm2", "1; BL2PR03MB164;\n\t3:sguT+iP5nXsKftYvkiE+Jqk5GFVK1CLwiXWuT5yJg6P3TXQ4KoKmgr7ko74UtX4H0/JqQMbTygUUZEAfjBXHKgSwMTffm9wlJmTEN+j/HRIDdbFOuOliOmbpsmXAlfSXDo+a1LWZnkV23ZiytD+GPpoBcZSdWPXjqCYs7evzQEsHp9RzgvxyJq8b1IxNS+GgS11I6V3YI2WxhZzlvQP26tJmsrCv5Jd25YojranAgYV+/tZpdOVA0dERP3RywzPAkmrq0dsmJc3kHjNQOCj9o/xRvZgzHGksxKkp19pa5h3rfcew6BOVmilNydT3e7QTzzPPNzLGFdub3CuHbfBKVcJhsBoz9s33O/80EXveEZpLhouWh2EdPJdQvh3jXpbErQlaXE1sqAsjaU+O68+dcFBhcntdWCvfw4K4FJspoXnuQFkAT1QFpqOha+VEQmiq;\n\t25:L9JOlyWLiLosApkv/fMmQ91SLtmlAxPzO2+/kfcYD1zBZ+nJp9RlUDk2OaFT92KYHz675zg9Bt97fypHJu358Hm18po/t/6siA23JLOCAlAszPG4th8WghIkW/TCEAN61aGSEO1SmjbdfcwH1DVRosth1zz9vtiNr5uACiUUjziMCyP7j3horQMZ1jyD3RIuj9kN1fOtKKhkvBLF6OxSnM+WrxaicAa9eVptSXWhg7ivREUhi3uRpkE/a+UcDB8EElne2jYCBrixoiwoBmKG4wXwT7OYlhUo4RF0zgz+tO7rUbMKNtjarZ7PE6dlC7huUnDThalTQWBcmxfsaBZwKqv1AF0ac18uv8vKU5q+RuAe2j3ypC4Sd5QFbkli9+HnrGKYj1sgwKroIP1p2K+0lkw91E5g/xugnxNdHb8xxf4wq2/pbBYkFnaX1/v6E++YqBg/lC70txfmE3lkl13aNg==", "1; BL2PR03MB164;\n\t31:Ygn+522sTSGzibHDPjN5IPJop73cJGemCFRDVROKCtJkhnJCzN11UcpGCQ6iUFzgviMCBQ7Aya5Jm5khutbOiq4EOXXFmdZzr9Z+AtWMFLwhss7IPIxO3OLVJDS2L5vYSR7p51zyVNeRdILgCjhvXTl4wCZrPbXW3Y4WYMyNIUWwrOoD4XjfZEGOitpmu7vr8xEQIr9hmIlAgSMG/KDERBdZRnrpUYNx1npxgZE4Whh7M6bqRWsyumAj2qSCgSFnO516/DfFv95JNZkR09wArQ==", "=?us-ascii?Q?1; BL2PR03MB164;\n\t4:JqiCn2+xi3cVxNiv2x8CbmR0LXw+7kO7FgkHpdtiAtE?=\n\t=?us-ascii?Q?y1ebNgvKBPSr0ix0Ssxa4XXbAIIzcIu0+RfaN1+hRX9PDCaqkHjOUMkRRuS7?=\n\t=?us-ascii?Q?smvOF+Qe/X4Z94M9oPDpPItzptrBSzHwXJM2xzhtW2eLG4QGxeV324HfTca5?=\n\t=?us-ascii?Q?8HoDNkpx931ncF5J/oRUdQHWuv2CVVuMfJEzx95vA0vCa/HBr6CbGe22NuKZ?=\n\t=?us-ascii?Q?/lS5EVmNCdEy7Y6/4De9u9sI5c2hx6Dcl2AULc9VflQ9V6gPWpK3XEoQ5v0N?=\n\t=?us-ascii?Q?ywfNsM/AeNPxoWjf9HiXYi/bp810ujcU1bk9X8DKdEkfj+G/LB/TnUptMIgv?=\n\t=?us-ascii?Q?fYg+3JXmcuT3m/7OryNzA8UfzovhXmBvkLk3ybE25O5yMO6Q2jVmUNbObeOY?=\n\t=?us-ascii?Q?9/zYDOJnCCp0YaUzrxjPLxNAQXT897yh9kz5EJIUZnHEDhKHHySApOiW+onF?=\n\t=?us-ascii?Q?MNq4ZyObdkYUx44k5k6DguiJ2YvnxdHu11xKB6h1VN7OjNb5yUSxULBToQTj?=\n\t=?us-ascii?Q?dGm3WrFrO1h3f+F4EjmLeUrfH4d0cnCzBRGP+OMVXd1E89J6dSu2jh0K5TnM?=\n\t=?us-ascii?Q?J+3Ec+aMOZzcGzsaxXgMPD7pwfLhmuQ0fqp9MWGKKAlqIV5WowFcIKl93ZMs?=\n\t=?us-ascii?Q?HZNhF/a+4WZ8Fw0QP8uELNbfOMOgiHnrWVpziqGZUyJw1UxAyXZAzljsnnvE?=\n\t=?us-ascii?Q?jTunlynErZpk3oCKRmOi7SQzeTFYkOMOPpcpx3vTg4JH/NdTlilGel1VxnEk?=\n\t=?us-ascii?Q?mU3O3VfRlGBhDEC9O/bRURcwTZLH597vTBSRb5XR5c1iVQXsLjhP/Yuc1lxg?=\n\t=?us-ascii?Q?vE78oY4Kd+OuU/Zy5hEkX3nhg+pSAtBkpWROBsjTMUTb74eM7B6f/wbWVZq5?=\n\t=?us-ascii?Q?2ZRwTjpNxCtXm+WociNU6VuioNc1QZfLmIntZ6TiocyWsnOLq0P3G1ZvM4cu?=\n\t=?us-ascii?Q?R6zC8zpp/W8zhh3/bENLKzr3Es4DPNyymcaN+Fg=3D=3D?=", "=?us-ascii?Q?1; BL2PR03MB164;\n\t23:U8izyNZvAcD+qAHaQT0wya9be/2r4f+pxZTtPDT1pw?=\n\t=?us-ascii?Q?EqNwb+AyFNMffVMjYIfsq6qm8t1eOYIx/lYoKUf/332gyJMYPRBcIxOX5qZG?=\n\t=?us-ascii?Q?eud5V1WEKbELTGdNE2zxnoFuOV1ALxbxbJMLBGPD0qTBppPik8o7VkNACvqD?=\n\t=?us-ascii?Q?/XKwD1sgzkFuMLrBAeJD06ZiKZyNaAjqwEgiBcsIDitI0R8lRqaZiDb11DzE?=\n\t=?us-ascii?Q?ALrOyQynyEfP0p3F4HujiAueMWzO9x996ArhJLQgHZKcCrQAmRMrng8g2Gy1?=\n\t=?us-ascii?Q?iDkrk6Dy6DCmhOWeZFBpZsITxVMoBq3Qsf33AsEbXYYQb2uv1f+oLghuJnDB?=\n\t=?us-ascii?Q?KMvk7H1fLBCP6hpJNRB5Wy4lZDsFIpoaTxcg12Bepwma/GgFRCEXE/5+UW3q?=\n\t=?us-ascii?Q?pbY8j0uBFXF6p3zr5uvgEC1NVUoB44yv6goVdK0YVDAFaPpACwOBL0VCuU4f?=\n\t=?us-ascii?Q?lrvGXgpXW/X9fyVFMPbNEuuJehgo+huuNIm4ItZxn/mNIMK7fbuKFevSWU/Z?=\n\t=?us-ascii?Q?JYCrXeMgJ5xekAdIusgOQNhrzvDL9fV7zfQgzVXdd4KqUxb4z05iiVbHWwnO?=\n\t=?us-ascii?Q?aI6cZsIYrQpnVeKOdSc6EACbD0kmfZKI+DmbW0o27ucmfrb5umOWp81GgBeg?=\n\t=?us-ascii?Q?ZD+PLCWOt49BvSAAgc1W8zWZaAoSeY058vW5MwjhC++SCEOMvgol1WIkqP9L?=\n\t=?us-ascii?Q?KBGwzG+d5lp+08U9nod1YQG7snhlM5SMR2FqCnBEY2iy1OUfBo+UuyHJokvk?=\n\t=?us-ascii?Q?vIUZNammp1FM0Wwf7evsGZssRjB+dpFFVUnWEO+iztvAUKDaPoRrQ/xlOvq0?=\n\t=?us-ascii?Q?tpozDEXhyNpkYf6U/qj+DgzNrqbxnT/JniNuWCZuKuuImZsGpOYpes8qGZPS?=\n\t=?us-ascii?Q?2Zb3vjXssGwNGS8QMe9KXWy3V6HasltGDLXuFshOHtYLtAdU/HDLiDABsRbe?=\n\t=?us-ascii?Q?ATqvLo/X12LVOragmAH1TzaaQClgm0VaP+BrwJw3c4VkT2JCI7YKHKu8Bz9V?=\n\t=?us-ascii?Q?fweoUtRGEkzxdxvSK6liMuzLuFdLPWquckewGiZ5f+U+HI9m9MZEsabD73RZ?=\n\t=?us-ascii?Q?n+7vs+YOPQleO9T4F3vSSF4n5F6TRTTqOisF0ZDcEwh2mok43fvnzhO8xUFy?=\n\t=?us-ascii?Q?cuXtsRXMiboX3rEdfH3+PaeAiUmt/pNnnHnpDQk2AZga9nTtCUOvHTWpHe85?=\n\t=?us-ascii?Q?zTivYIx21iM5BWuZBEQJ3dt0a/cgX4/otHGV8/+DA0qaQTh+pEo0v4uWUhDj?=\n\t=?us-ascii?Q?kQBh1S8avUb2rD6CE4niy/xYbqtKSCoQz5SgkmGAPXcYQ7WROEDyq0kNO2IV?=\n\t=?us-ascii?Q?XQwik2br88gjfcTfYKFvM=3D?=", "1; BL2PR03MB164;\n\t6:QIWVMwKPg2az2M7igLR50+0eI6CnjylCwRiPC75ju0fkr26RkRgni1i+IOCb3QG8S9cjcjcf5OMP9stg1XRylFh8bWYaZidmwOC/VIMevwzlT1O+3NVMCLvA6kD1LbNcFVD2t8vdVyKiSldw9Bg5jVB+vlBEAgZcQh0Z9lj7ZE6NVq9WGiJ3yYjgeeeJTvszy3NIdDLi+tDM9D65bmfWvgSokbyPw+U+Y6iNs8VKPKZOUmphlu6CzVlJwR6d2DotPE0N3g39FehgOyTqxpRAvgsM9JwzrpZwijLeXs8GihKQ9ldp6ghpTOFCUN6T1PMYvVrF++Qt0tJxfj3oQ8fZqDNO6YJJFF52x1LD3c4u2Gzny3jFbm50itu8bz8U8KiSW7Z58iPd/3fRc1pcn0BJNsNEse0HST8chrsj//wi/YGy3kHCXCkTn2ChnBsy2SrKl6xiWe1GFrsRiGOd9QB1sgR8h4G5g9fmrfQfSJ6MiVNehCLf2vENi1RRvbL+Bei6ttJZKZaByrVAOVHsuxVsOA==;\n\t5:zNZHO1Ch65+GD82P6NmeYhdGTd5chlZGb7Tjpu2QFSixy2+KNAi07TVGK0iF0V3ulcWSlsmCsb3f9J+RcX4NLAoOe4f/VjvA+AX2ZWqs2ecZKS9gnKNOLZGC6sZPnX3bcI5ibZDYiFwvxaFyjXFRiXozGC/0+10qOT0ZqYz4AUi4R6oXl7ghoznXrd+3QrsA;\n\t24:RcT8R8o1j7igMglIgAHrxWbwXSI14kjAEIHsqVjKCm5M8gEIeSlCmbSO6ndDHPQH2weCdt0/ghMg6kznUaKBmN0R6UZYFjrs1jfIGxOsRf4=", "1; BL2PR03MB164;\n\t7:UhT2G1zBTZ6cXa7ZFZD9r1XTlk1FNO/pX+XWJK72/67P1gluWAueE4TUpY2b85oSypKCMvRsZqwrBhh8m1x+9TREC8pbHGAkDFL67LjwPoLolGrUfhq3v6mRqwjKr70LasWgxRyYXRdjd+O//bOWdc/NEOUMnwUaZQFb0XsyR+3FGbJRIKgEV7OQV86ElQ8Nh+AvWvzlGS6aL4OwE3ZHk1oAqyZbQpnfSkEUFZC82hckScQ9aNFwR2vooYgj4ZSpge35luMxP1JpEW9Gm/gOPDe91EKS24wCo8I5dA+LXmREtlapQ2fCbQlG517d22LKmv2AN3o+JpWcuXGXqFT3cQ==" ], "MIME-Version": "1.0", "X-MS-PublicTrafficType": "Email", "X-MS-Office365-Filtering-Correlation-Id": "1540f352-bba8-481f-ae90-08d49badb8c0", "X-Microsoft-Antispam": "UriScan:; BCL:0; PCL:0;\n\tRULEID:(22001)(201703131430075)(201703131517081); SRVR:BL2PR03MB164; ", "X-Microsoft-Antispam-PRVS": "<BL2PR03MB1648EBEBBB362A2DE9226B39AE10@BL2PR03MB164.namprd03.prod.outlook.com>", "X-Exchange-Antispam-Report-Test": "UriScan:(185117386973197);", "X-Exchange-Antispam-Report-CFA-Test": "BCL:0; PCL:0;\n\tRULEID:(6095135)(601004)(2401047)(8121501046)(5005006)(13017025)(13023025)(13024025)(13018025)(13015025)(10201501046)(93006095)(93001095)(3002001)(6055026)(6096035)(20161123563025)(20161123559100)(20161123556025)(201703131430075)(201703131448075)(201703131433075)(201703161259150)(201703151042153)(20161123561025)(20161123565025);\n\tSRVR:BL2PR03MB164; BCL:0; PCL:0; RULEID:(400006); SRVR:BL2PR03MB164; ", "X-Forefront-PRVS": "0308EE423E", "SpamDiagnosticOutput": "1:99", "SpamDiagnosticMetadata": "NSPM", "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "15 May 2017 16:16:18.4885\n\t(UTC)", "X-MS-Exchange-CrossTenant-Id": "5afe0b00-7697-4969-b663-5eab37d5f47e", "X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp": "TenantId=5afe0b00-7697-4969-b663-5eab37d5f47e;\n\tIp=[192.88.158.2]; \n\tHelo=[az84smr01.freescale.net]", "X-MS-Exchange-CrossTenant-FromEntityHeader": "HybridOnPrem", "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "BL2PR03MB164", "Cc": "Marek Vasut <marex@denx.de>, Jeremy Hunt <Jeremy.Hunt@DEShawResearch.com>,\n\tMichal Simek <michal.simek@xilinx.com>,\n\tHou Zhiqiang <Zhiqiang.Hou@nxp.com>, \n\tVinitha Pillai-B57223 <vinitha.pillai@nxp.com>,\n\tRuchika Gupta <ruchika.gupta@nxp.com>", "Subject": "[U-Boot] [PATCH v1 2/9] armv8: layerscape: Eanble falcon boot", "X-BeenThere": "u-boot@lists.denx.de", "X-Mailman-Version": "2.1.18", "Precedence": "list", "List-Id": "U-Boot discussion <u-boot.lists.denx.de>", "List-Unsubscribe": "<https://lists.denx.de/options/u-boot>,\n\t<mailto:u-boot-request@lists.denx.de?subject=unsubscribe>", "List-Archive": "<http://lists.denx.de/pipermail/u-boot/>", "List-Post": "<mailto:u-boot@lists.denx.de>", "List-Help": "<mailto:u-boot-request@lists.denx.de?subject=help>", "List-Subscribe": "<https://lists.denx.de/listinfo/u-boot>,\n\t<mailto:u-boot-request@lists.denx.de?subject=subscribe>", "Content-Type": "text/plain; charset=\"utf-8\"", "Content-Transfer-Encoding": "base64", "Errors-To": "u-boot-bounces@lists.denx.de", "Sender": "\"U-Boot\" <u-boot-bounces@lists.denx.de>" }, "content": "Add jump_to_image_linux() for arm64. Add \"noreturn\" flag to\narmv8_switch_to_el2(). Add hooks to fsl-layerscape to enable falcon\nboot.\n\nSigned-off-by: York Sun <york.sun@nxp.com>\n---\n\n .../arm/cpu/armv8/fsl-layerscape/doc/README.falcon | 86 ++++++++++++++++++++++\n arch/arm/cpu/armv8/fsl-layerscape/spl.c | 29 ++++++++\n arch/arm/include/asm/system.h | 2 +-\n arch/arm/lib/spl.c | 11 +++\n 4 files changed, 127 insertions(+), 1 deletion(-)\n create mode 100644 arch/arm/cpu/armv8/fsl-layerscape/doc/README.falcon", "diff": "diff --git a/arch/arm/cpu/armv8/fsl-layerscape/doc/README.falcon b/arch/arm/cpu/armv8/fsl-layerscape/doc/README.falcon\nnew file mode 100644\nindex 0000000..bacff27\n--- /dev/null\n+++ b/arch/arm/cpu/armv8/fsl-layerscape/doc/README.falcon\n@@ -0,0 +1,86 @@\n+Falcon boot option\n+------------------\n+Falcon boot is a short cut boot method for SD/eMMC targets. It skips loading the\n+RAM version U-Boot. Instead, it loads FIT image and boot directly to Linux.\n+CONFIG_SPL_OS_BOOT enables falcon boot. CONFIG_SPL_LOAD_FIT enables the FIT\n+image support (also need CONFIG_SPL_OF_LIBFDT, CONFIG_SPL_FIT and optionally\n+CONFIG_SPL_GZIP).\n+\n+To enable falcon boot, a hook function spl_start_uboot() returns 0 to indicate\n+booting U-Boot is not the first choice. The kernel FIT image needs to be put\n+at CONFIG_SYS_MMCSD_RAW_MODE_KERNEL_SECTOR. SPL mmc driver reads the header to\n+determine if this is a FIT image. If true, FIT image components are parsed and\n+copied or decompressed (if applicable) to their desitinations. If FIT image is\n+not found, normal U-Boot flow will follow.\n+\n+An important part of falcon boot is to prepare the device tree. A normal U-Boot\n+does FDT fixups when booting Linux. For falcon boot, Linux boots directly from\n+SPL, skipping the normal U-Boot. The device tree has to be prepared in advance.\n+A command \"spl export\" should be called under the normal RAM version U-Boot.\n+It is equivalent to go through \"bootm\" step-by-step until device tree fixup is\n+done. The device tree in memory is the one needed for falcon boot. Falcon boot\n+flow suggests to save this image to SD/eMMC at the location pointed by macro\n+CONFIG_SYS_MMCSD_RAW_MODE_ARGS_SECTOR, with maximum size specified by macro\n+CONFIG_SYS_MMCSD_RAW_MODE_ARGS_SECTORS. However, when FIT image is used for\n+Linux, the device tree stored in FIT image overwrites the memory loaded by spl\n+driver from these sectors. We could change this loading order to favor the\n+stored sectors. But when secure boot is enabled, these sectors are used for\n+signature header and needs to be loaded before the FIT image. So it is important\n+to understand the device tree in FIT image should be the one actually used, or\n+leave it abscent to favor the stored sectors. It is easier to deploy the FIT\n+image with embedded static device tree to multiple boards.\n+\n+Macro CONFIG_SYS_SPL_ARGS_ADDR serves two purposes. One is the pointer to load\n+the stored sectors to. Normally this is the static device tree. The second\n+purpose is the memory location of signature header for secure boot. After the\n+FIT image is loaded into memory, it is validated against the signature header\n+before individual components are extracted (and optionally decompressed) into\n+their final memory locations, respectivelly. After the validation, the header\n+is no longer used. The static device tree is copied into this location. So\n+this macro is passed as the location of device tree when booting Linux.\n+\n+Steps to prepare static device tree\n+-----------------------------------\n+To prepare the static device tree for Layerscape boards, it is important to\n+understand the fixups in U-Boot. Memory size and location, as well as reserved\n+memory blocks are added/updated. Ethernet MAC addressed are updated. FMan\n+microcode (if used) is embedded in the device tree. Kernel command line and\n+initrd information are embedded. Others including CPU status, boot method,\n+Ethernet port status, etc. are also updated.\n+\n+Following normal booting process, all variables are set, all images are loaded\n+before \"bootm\" command would be issued to boot, run command\n+\n+spl export fdt <address>\n+\n+where the address is the location of FIT image. U-Boot goes through the booting\n+process as if \"bootm start\", \"bootm loados\", \"bootm ramdisk\"... commands but\n+stops before \"bootm go\". There we have the fixed-up device tree in memory.\n+We can check the device tree header by these commands\n+\n+fdt addr <fdt address>\n+fdt header\n+\n+Where the fdt address is the device tree in memory. It is printed by U-Boot.\n+It is useful to know the exact size. One way to extract this static device\n+tree is to save it to eMMC/SD using command in U-Boot, and extract under Linux\n+with these commands, repectivelly\n+\n+mmc write <address> <sector> <sectors>\n+dd if=/dev/mmcblk0 of=<filename> bs=512 skip=<sector> count=<sectors>\n+\n+Note, U-Boot takes values as hexadecimals while Linux takes them as decimals by\n+default. If using NAND or other storage, the commands are slightly different.\n+When we have the static device tree image, we can re-make the FIT image with\n+it. It is important to specify the load addresses in FIT image for every\n+components. Otherwise U-Boot cannot load them correctly.\n+\n+Other things to consider\n+-----------------------\n+Falcon boot skips a lot of initialization in U-Boot. If Linux expects the\n+hardware to be initialized by U-Boot, the related code should be ported to SPL\n+build. For example, if Linux expect Ethernet PHY to be initialized in U-Boot\n+(which is not a common case), the PHY initialization has to be included in\n+falcon boot. This increases the SPL image size and should be handled carefully.\n+If Linux has PHY driver enabled, it still depends on the correct MDIO bus setup\n+in U-Boot. Normal U-Boot sets the MDC ratio to generate a proper clock signal.\ndiff --git a/arch/arm/cpu/armv8/fsl-layerscape/spl.c b/arch/arm/cpu/armv8/fsl-layerscape/spl.c\nindex 2776240..7db1077 100644\n--- a/arch/arm/cpu/armv8/fsl-layerscape/spl.c\n+++ b/arch/arm/cpu/armv8/fsl-layerscape/spl.c\n@@ -116,4 +116,33 @@ void board_init_f(ulong dummy)\n \tgd->arch.tlb_allocated = gd->arch.tlb_addr;\n #endif\t/* CONFIG_SPL_FSL_LS_PPA */\n }\n+\n+#ifdef CONFIG_SPL_OS_BOOT\n+/*\n+ * Return\n+ * 0 if booting into OS is selected\n+ * 1 if booting into U-Boot is selected\n+ */\n+int spl_start_uboot(void)\n+{\n+\tchar s[8];\n+\n+\tenv_init();\n+\tgetenv_f(\"boot_os\", s, sizeof(s));\n+\tif ((s != NULL) && (*s == '1' || *s == 'y' || *s == 'Y' ||\n+\t\t\t *s == 't' || *s == 'T'))\n+\t\treturn 0;\n+\n+\treturn 1;\n+}\n+#endif\t/* CONFIG_SPL_OS_BOOT */\n+#ifdef CONFIG_SPL_LOAD_FIT\n+int board_fit_config_name_match(const char *name)\n+{\n+\t/* Just empty function now - can't decide what to choose */\n+\tdebug(\"%s: %s\\n\", __func__, name);\n+\n+\treturn 0;\n+}\n+#endif\n #endif /* CONFIG_SPL_BUILD */\ndiff --git a/arch/arm/include/asm/system.h b/arch/arm/include/asm/system.h\nindex 9c3261c..c37391a 100644\n--- a/arch/arm/include/asm/system.h\n+++ b/arch/arm/include/asm/system.h\n@@ -200,7 +200,7 @@ void __asm_switch_ttbr(u64 new_ttbr);\n * @entry_point: kernel entry point\n * @es_flag: execution state flag, ES_TO_AARCH64 or ES_TO_AARCH32\n */\n-void armv8_switch_to_el2(u64 args, u64 mach_nr, u64 fdt_addr,\n+void __noreturn armv8_switch_to_el2(u64 args, u64 mach_nr, u64 fdt_addr,\n \t\t\t u64 arg4, u64 entry_point, u64 es_flag);\n /*\n * Switch from EL2 to EL1 for ARMv8\ndiff --git a/arch/arm/lib/spl.c b/arch/arm/lib/spl.c\nindex 8ff2c50..a9e9cf2 100644\n--- a/arch/arm/lib/spl.c\n+++ b/arch/arm/lib/spl.c\n@@ -7,6 +7,7 @@\n *\n * SPDX-License-Identifier:\tGPL-2.0+\n */\n+\n #include <common.h>\n #include <config.h>\n #include <spl.h>\n@@ -46,6 +47,15 @@ void __weak board_init_f(ulong dummy)\n * image.\n */\n #ifdef CONFIG_SPL_OS_BOOT\n+#ifdef CONFIG_ARM64\n+void __noreturn jump_to_image_linux(struct spl_image_info *spl_image)\n+{\n+\tdebug(\"Entering kernel arg pointer: 0x%p\\n\", spl_image->arg);\n+\tcleanup_before_linux();\n+\tarmv8_switch_to_el2((u64)spl_image->arg, 0, 0, 0,\n+\t\t\t spl_image->entry_point, ES_TO_AARCH64);\n+}\n+#else\n void __noreturn jump_to_image_linux(struct spl_image_info *spl_image)\n {\n \tunsigned long machid = 0xffffffff;\n@@ -61,4 +71,5 @@ void __noreturn jump_to_image_linux(struct spl_image_info *spl_image)\n \tcleanup_before_linux();\n \timage_entry(0, machid, spl_image->arg);\n }\n+#endif\t/* CONFIG_ARM64 */\n #endif\n", "prefixes": [ "U-Boot", "v1", "2/9" ] }