From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 39207C433EF for ; Fri, 18 Mar 2022 12:31:53 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id B895E10E29A; Fri, 18 Mar 2022 12:31:52 +0000 (UTC) Received: from NAM11-DM6-obe.outbound.protection.outlook.com (mail-dm6nam11on2083.outbound.protection.outlook.com [40.107.223.83]) by gabe.freedesktop.org (Postfix) with ESMTPS id 1E29010E29A for ; Fri, 18 Mar 2022 12:31:52 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=GPBKFgFKd3unZ4qYTY4qmZzMNpHPkb7l1pjw3f3LEYS2v5GYW8HT/+9E7KSNoReIsujjDS/6+CT0WoLgjrp/pOKOCPAIQ9l2VKsT1H18I5q8gTYEE5nLrxHOZ3zSelBBaaBJ4RFATKGx1MOGtrcY2g4jmHrlIKaSLFBiFw/ZZGBEkBJpe3VaJJ96O/Jh8/CmBuEyi68BlV6ttuhpvYMaIyFO0nTP8le1rBCAl9Zr8qmLm98fJr8A4rNe7uYLh4qX7AV90bnb3aRWehBu1pm0nnfTpAt/3zMeX7xVFJKh1NmS9Ep+jgdDgOZfYf+QfnahDLMFuesghQ2SYQ5wZDdjWQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=DsDimbhjxMwzt90RL9BRbwkDALami/ekkY8YwLW2rsg=; b=Rf9IvrtB/zign9+3tIHkfSoh9uboTI20bJr48AO2N4LydEB4+fMsk7yIND/ZzHPlC9IkUsyyq67V5EwMKzx2XGuqBq+ORU69mul0TasXUGf0z/uYhQqB6LVA/n6W2VVv8fjFitVVvXJcUyi3kFv00lBSZEL+HaaZOMKAuyACnX0mHMN5FOqSW8DKUmIAor8cXIQzuOKHEojq5KCEVuP+w0vyEfD30y/SGAX6oRITbMSRhvynwoFhVC5PB9zQJrQNq1yKz6IoW0lkt68oKlHnImDffEdGHpm9QG0HYaIqY7pIvJVNt+XvjZGMWWT+AT3jss6Hd06lBR96lsZIqCXULA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=DsDimbhjxMwzt90RL9BRbwkDALami/ekkY8YwLW2rsg=; b=Qay+R41C28lxobCFxP133EabDd5BH0gyNh7Lx2IXUrFaeDilT3nEirgWVjMkMTOeo6WSsgEuZVnyHtaE5rVcqGHQAS/PAPs2rnBxuQYf97v4wUsvI6a1FNmjvLgu0pxyZTDWJf3hHE45iKxAt6vNl5N0Q3bqSUgtJEKrq4oEF+c= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=amd.com; Received: from BN8PR12MB3587.namprd12.prod.outlook.com (2603:10b6:408:43::13) by CH2PR12MB4837.namprd12.prod.outlook.com (2603:10b6:610:f::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5081.17; Fri, 18 Mar 2022 12:31:49 +0000 Received: from BN8PR12MB3587.namprd12.prod.outlook.com ([fe80::404f:1fc8:9f4c:f185]) by BN8PR12MB3587.namprd12.prod.outlook.com ([fe80::404f:1fc8:9f4c:f185%6]) with mapi id 15.20.5081.018; Fri, 18 Mar 2022 12:31:49 +0000 Message-ID: <487eec9e-49e7-8d98-4d60-321de83448ac@amd.com> Date: Fri, 18 Mar 2022 13:31:41 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.5.0 Subject: Re: radeon ring 0 test failed on arm64 Content-Language: en-US To: Peter Geis References: <20dffd4d-fa54-5bc3-c13b-f8ffbf0fb593@arm.com> <599edb94-8294-c4c5-ff7f-84c7072af3dd@gmail.com> <546bf682-565f-8384-ec80-201ce1c747f4@arm.com> <8afb06c4-7601-d0d7-feae-ee5abc9c3641@amd.com> <7652b236-238c-4e8a-f1c5-e3b7f7f71be6@rock-chips.com> From: =?UTF-8?Q?Christian_K=c3=b6nig?= In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-ClientProxiedBy: AS9PR05CA0043.eurprd05.prod.outlook.com (2603:10a6:20b:489::27) To BN8PR12MB3587.namprd12.prod.outlook.com (2603:10b6:408:43::13) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: e1bc818d-58d4-4eef-7f47-08da08db45b8 X-MS-TrafficTypeDiagnostic: CH2PR12MB4837:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: YiRd7gsfnXTFCNJbkkNWhD9Gv1JOZadJlepPx+hBALPWNO+KLgyGdzXpj+nH0i3NXSM3lnIHyJJcevgGAaTurr/c7xaccMDSfAXUfbKVy3s4OU4H1VS5+U2zd6qzh/uX/sW5btjUmMLKYE+uLklCsQwlRLBJrzAiHfxt7Ry6iIe7I70Ago/huQ8mtJpOr0NvpAjteoBPM8+xDLn7lFBZaQjy/H6tIguqfO3eTLWE1H47rJXKwnXtDkxNUVNjUh5R5vln8GioSD+Gk+BO9m8gceeZrItwUESJOpaRfT1pck6a1xwsDRdHsd0vdFaow+09Q1AmoCRMpxKkON2U+/zhlJJ9lDUfovsEwtu8G0b4SAExaSy5qcucX1YGmn9Nme2kCjRSsR/+n+PhPWcIUECNH3g5z89urOmh3JbEn8J/+HGYj6yV9X9Yt1uTru507cOkazy0mjI1LaExL1COP23HN+uTPTkscSL24xB3Ceu1Qo7X6kN8wDPyYr+F8pyXpNJGnrYJNNzdEuWpLLaEYMUvM4awF/AOrzXxLaqvxKeErXyxBrDzZOr/j3QI1vttrGJ/HkSuZrk24nc9EPlRQVRDoRj/pJnHDwJR1uDIgJUgV7H5pUrf5XOHjw57ap4UaK990Ddkoa9ajn/2DLn5aJJhnazfiUAwQh+SQ/rcW/Os2lleXstju15ooHwc8oyvUSgjS9XZcnQhadxKoVUTtyMlAX9Ghm4g7y9q7pU6Temz75CgTz2BoqPypx9eBCF0BcAYg8V5HxDmYSfvX1H5Q5hI1E3ftCfFqgv8aJEZRBHGN2hZYSiEaLPV6uI61tGzA5ptuaS4vikmnVVDQ0C3t6+ecHe0RPsHGZnS6ZX2nUXtSyk= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BN8PR12MB3587.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(4636009)(366004)(66574015)(83380400001)(186003)(38100700002)(8936002)(5660300002)(30864003)(86362001)(4326008)(66946007)(2906002)(6666004)(45080400002)(508600001)(66556008)(53546011)(2616005)(6506007)(6512007)(316002)(31686004)(966005)(6486002)(54906003)(6916009)(36756003)(31696002)(66476007)(8676002)(45980500001)(43740500002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?emtqUDZoSkFtU1h0cDBjZ1hpY0lqV3pCcEJ1QkxWYXd2MUMxT0RXOHVzR1NX?= =?utf-8?B?bkRoYitiZWduSi9HZ1F5NmJXZGNGVnNFTkFSWHpWeHVMdmJLS3JpOTJpUTRT?= =?utf-8?B?SG5Bc3dlbjJiZUlhUXFHa1lzeXJpeXFORHZObHlIak1jL3Y0SGt4bTZFQ3lH?= =?utf-8?B?VURLVURTRE5DZGhxSCszRDRDeGF6OW1ac0s5alVyUUl3NDIrQXlMZHladXp1?= =?utf-8?B?alI4NUZRNUdQVWcyaXlnNkN6NEdJOWczUDRVMUVxMDY2aU1lNThmcWMvcGpB?= =?utf-8?B?RE5mQ0ZTTjJVcTd4ZFFQNVVmRWRBNEp4YkJ1UmxkYW5lNHdmdThiY0NHbDV4?= =?utf-8?B?eFRXZlZUcXNOUGE5ZkdTR3VvcUF6U3dmWDdyQ2VOQWRBY3Z4RVhPczdreDVE?= =?utf-8?B?a2JFam5BZFRMVEhwVFV2YmdkeWFCZElyUFc3SnNNTnBwbExUaVJyTkNvK21h?= =?utf-8?B?TGsrajJYdmZqY3l3RlFKb1dBT1QrUmJVdWxkRUk0V3ZROTJZWVhPVnh3cEhN?= =?utf-8?B?aFRvc0MxdlBBeTYrWUVyUXpCZlZkaUIyK3F1ZlZodlFNNSticDBycGtYRnNp?= =?utf-8?B?d3pzNy9mRDMrSlZsRktYeWFMbjRSYXBLd0ViVzkycm56bVhqVEdkM2YrSjcv?= =?utf-8?B?T2tCaWk3ZXB6bjBML2xCLzFZWmVQQ1JTQzUzWDFtcTc5ODVnMjNKZzBadTk2?= =?utf-8?B?dnpNOWd3UVExTDdGSVFOSFhBZGhuZngzV3NoTUQrdWw2SEJTQjJHTkZDb0Z0?= =?utf-8?B?SWVnQmxnL085a0dJMFBhc1UreS9CUWd2amo2ZC8vejhjcGc4blNidmxieXRQ?= =?utf-8?B?Vlc2d2U4a25EZUVCRU1xVHBvU0QwcWtSa0VFZTlCVTJBMWNzQm0zYVRqR3Vs?= =?utf-8?B?ZVlyNFVWUDdIcExDMUVtVzFrUzFqUGFWc1RYMDA3SzBtc2dud1MrSlhjSW9x?= =?utf-8?B?amxENUZvVmNPM1BMZUZWUVpHb1Z6SVRlNmJ6aDFaaXQ5WmUvQTlLODRWMjNu?= =?utf-8?B?RGdFWTZGdzNTY0VCK2dRYVZSbDA4RHh2SHN1UkExZ3pNUHVyb2VkTE9SalRp?= =?utf-8?B?eHRhcXJtTkh3aS9DZWlHT1hKajNKajIvYnE4RnErdGNaZmJxOC8zZS8waFE2?= =?utf-8?B?RXVJWExRSG8vcG43MGg3WjJzbWc2VUJMNkdiNUx6b3drNkl5QnV5MnB5eFdL?= =?utf-8?B?ODRTNUU3OVpVSTVqYmZtQVhjZktsbndLUFBIR0RNVC9sYVlMc29IUEMxeE1V?= =?utf-8?B?c2tUd0crRlBqeXF2N292UnJ6M2dKeFo2YjNxZmFQVGRQN3RzK2FBcVVqMThG?= =?utf-8?B?bkhqQTRubkViZnhCS3VheGcrazVUU1M0b29abi9ULytsQ1BwcGROZWl0UTRY?= =?utf-8?B?WUROcEhvWUVSTnlSOGdvQlNNaGh2WXh2VnpXSm1yL3ZjNWxTbGcyUGJuZEMw?= =?utf-8?B?ZTlCMVFtY1hFV0s3OFZCdVV5STlWaXBzNmJROTB6eEo5NDE1ZUdoWHFjVDZH?= =?utf-8?B?QnJmeGtFeUNKVEhWQ0JPZmRaRXI4SytFQ2pnUlVQdllwK2JRR01GTlhYQ004?= =?utf-8?B?MU1PU2UzcUNpbFpneWI3clBwYXRSNGNDcEQ5aEtENmNPK0t0L3hUL0hFc1Vk?= =?utf-8?B?NGc0WGkxRXFTNGpVWTNaTWttWk9vYWl5YzJhOG9FcXB1ZDhiU2IwYi9yMjVK?= =?utf-8?B?U25QYmdSMnZ4dHlwUFdVbnJCOERORDhyUVNVSW4vMlFNM1BRZlpoQlltY2pE?= =?utf-8?B?MXVtNk5HTDBkQllzcUxsbkpsQ1RnVkc4aWFVMmJ3Vm8vU2xzbVhUdG9ZWFV4?= =?utf-8?B?SHp4MUtRdVRoMEZiUDdEdDJsTlo0UEhRcFlpVGduanUvV0M1dmUyTk9XN1kz?= =?utf-8?B?OUdVQlR2ZXRWREZlTDJ0R3NXOTY5blVpdzhSbmh5S0RlWk9TUVRMYnoxQzdu?= =?utf-8?B?Z0hKREpaZW5QV3dOTmJ0TkorWWd4cGtHQitLVmdYOWw0TW10dXM4R2NwbWx2?= =?utf-8?B?SmZGMVIyS2ZURzZDdDlINk55YlVBRDdnYzU4OVE1YXdveWtnVXU3Z093NDRW?= =?utf-8?Q?wP+7U0?= X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: e1bc818d-58d4-4eef-7f47-08da08db45b8 X-MS-Exchange-CrossTenant-AuthSource: BN8PR12MB3587.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Mar 2022 12:31:49.1144 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: UqP4FkvPMXiuEUjFlf1Wb2gCLk4ODL7D+FRuhdo2OuwqsjzPhAylQYuX/qNgC0qP X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR12MB4837 X-BeenThere: amd-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Tao Huang , "open list:ARM/Rockchip SoC..." , =?UTF-8?Q?Christian_K=c3=b6nig?= , Shawn Lin , Kever Yang , amd-gfx list , "Deucher, Alexander" , Alex Deucher , Robin Murphy Errors-To: amd-gfx-bounces@lists.freedesktop.org Sender: "amd-gfx" Am 18.03.22 um 12:24 schrieb Peter Geis: > On Fri, Mar 18, 2022 at 4:35 AM Christian König > wrote: >> >> >> Am 18.03.22 um 08:51 schrieb Kever Yang: >> >> >> On 2022/3/17 20:19, Peter Geis wrote: >> >> On Wed, Mar 16, 2022 at 11:08 PM Kever Yang wrote: >> >> Hi Peter, >> >> On 2022/3/17 08:14, Peter Geis wrote: >> >> Good Evening, >> >> I apologize for raising this email chain from the dead, but there have >> been some developments that have introduced even more questions. >> I've looped the Rockchip mailing list into this too, as this affects >> rk356x, and likely the upcoming rk3588 if [1] is to be believed. >> >> TLDR for those not familiar: It seems the rk356x series (and possibly >> the rk3588) were built without any outer coherent cache. >> This means (unless Rockchip wants to clarify here) devices such as the >> ITS and PCIe cannot utilize cache snooping. >> This is based on the results of the email chain [2]. >> >> The new circumstances are as follows: >> The RPi CM4 Adventure Team as I've taken to calling them has been >> attempting to get a dGPU working with the very broken Broadcom >> controller in the RPi CM4. >> Recently they acquired a SoQuartz rk3566 module which is pin >> compatible with the CM4, and have taken to trying it out as well. >> >> This is how I got involved. >> It seems they found a trivial way to force the Radeon R600 driver to >> use Non-Cached memory for everything. >> This single line change, combined with using memset_io instead of >> memset, allows the ring tests to pass and the card probes successfully >> (minus the DMA limitations of the rk356x due to the 32 bit >> interconnect). >> I discovered using this method that we start having unaligned io >> memory access faults (bus errors) when running glmark2-drm (running >> glmark2 directly was impossible, as both X and Wayland crashed too >> early). >> I traced this to using what I thought at the time was an unsafe memcpy >> in the mesa stack. >> Rewriting this function to force aligned writes solved the problem and >> allows glmark2-drm to run to completion. >> With some extensive debugging, I found about half a dozen memcpy >> functions in mesa that if forced to be aligned would allow Wayland to >> start, but with hilarious display corruption (see [3]. [4]). >> The CM4 team is convinced this is an issue with memcpy in glibc, but >> I'm not convinced it's that simple. >> >> On my two hour drive in to work this morning, I got to thinking. >> If this was an memcpy fault, this would be universally broken on arm64 >> which is obviously not the case. >> So I started thinking, what is different here than with systems known to work: >> 1. No IOMMU for the PCIe controller. >> 2. The Outer Cache Issue. >> >> Robin: >> My questions for you, since you're the smartest person I know about >> arm64 memory management: >> Could cache snooping permit unaligned accesses to IO to be safe? >> Or >> Is it the lack of an IOMMU that's causing the ali gnment faults to become fatal? >> Or >> Am I insane here? >> >> Rockchip: >> Please update on the status for the Outer Cache errata for ITS services. >> >> Our SoC design team has double check with ARM GIC/ITS IP team for many >> times, and the GITS_CBASER >> of GIC600 IP does not support hardware bind or config to a fix value, so >> they insist this is an IP >> limitation instead of a SoC bug, software should take care of it :( >> I will check again if we can provide errata for this issue. >> >> Thanks. This is necessary as the mbi-alias provides an imperfect >> implementation of the ITS and causes certain PCIe cards (eg x520 Intel >> 10G NIC) to misbehave. >> >> Please provide an answer to the errata of the PCIe controller, in >> regard to cache snooping and buffering, for both the rk356x and the >> upcoming rk3588. >> >> >> Sorry, what is this? >> >> Part of the ITS bug is it expects to be cache coherent with the CPU >> cluster by design. >> Due to the rk356x being implemented without an outer accessible cache, >> the ITS and other devices that require cache coherency (PCIe for >> example) crash in fun ways. >> >> Then this is still the ITS issue, not PCIe issue. >> PCIe is a peripheral bus controller like USB and other device, the driver should maintain the "cache coherency" if there is any, and there is no requirement for hardware cache coherency between PCIe and CPU. > Kever, > > These issues are one and the same. Well, that's not correct. You are still mixing two things up here: 1. The memory accesses from the device to the system memory must be coherent with the CPU cache. E.g. we root complex must snoop the CPU cache.     That's a requirement of the PCIe spec. If you don't get that right a whole bunch of PCIe devices won't work correctly. 2. The memory accesses from the CPU to the devices PCIe BAR can be unaligned. E.g. a 64bit read can be aligned on a 32bit address.     That is a requirement of the graphics stack. Other devices still might work fine without that. Regards, Christian. > Certain hardware blocks *require* cache coherency as part of their design. > All of the *interesting* things PCIe can do stem from it. > > When I saw you bumped the available window to the PCIe controller to > 1GB I was really excited, because that meant we could finally support > devices that used these interesting features. > However, without cache coherency, having more than a 256MB window is a > waste, as any card that can take advantage of it *requires* coherency. > The same thing goes for a resizable BAR. > EP mode is the same, having the ability to connect one CPU to another > CPU over a PCIe bus loses the advantages when you don't have > coherency. > At that point, you might as well toss in a 2.5GB ethernet port and > just use that instead. > >> >> Well then I suggest to re-read the PCIe specification. >> >> Cache coherency is defined as mandatory there. Non-cache coherency is an optional feature. >> >> See section 2.2.6.5 in the PCIe 2.0 specification for a good example. >> >> Regards, >> Christian. >> >> >> We didn't see any transfer error on rk356x PCIe till now, we can take a look if it's easy to reproduce. > It's easy to reproduce, just try to use any card that has a > significantly large enough BAR to warrant requiring coherency. > dGPUs are the most readily accessible device, but High Performance > Computing Acceleration devices and high power FPGAs also would work. > Was the resizable bar tested at all internally either? > Any current device that could use that requires coherency. > And like above, EP mode without coherency is a waste at best, and > unpleasant at worst. > > Very Respectfully, > Peter > >> Thanks, >> - Kever >> >> >> This means that rk356x cannot implement a specification compliant ITS or PCIe. >> >From the rk3588 source dump it appears it was produced without an >> outer accessible cache, which means if true it also will be unable to >> use any PCIe cards that implement cache coherency as part of their >> design. >> >> >> Thanks, >> - Kever >> >> [1] https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FJeffyCN%2Fmirrors%2Fcommit%2F0b985f29304dcb9d644174edacb67298e8049d4f&data=04%7C01%7Cchristian.koenig%40amd.com%7C618d68406abf46aceb1708da08d1f61e%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637831995714063605%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=et3jUQ1Y2QaR56qTjl4LJ1vGurPwK8HfLosebUIV9bc%3D&reserved=0 >> [2] https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Flore.kernel.org%2Flkml%2F871rbdt4tu.wl-maz%40kernel.org%2FT%2F&data=04%7C01%7Cchristian.koenig%40amd.com%7C618d68406abf46aceb1708da08d1f61e%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637831995714063605%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=UrGSye7MpCUO9tppCCmgSGlNa6X0otJ8tkcOb2PXjA8%3D&reserved=0 >> [3] https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fcdn.discordapp.com%2Fattachments%2F926487797844541510%2F953414755970850816%2Funknown.png&data=04%7C01%7Cchristian.koenig%40amd.com%7C618d68406abf46aceb1708da08d1f61e%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637831995714063605%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=agZjpl0LvSf4Jo3SoETVkW72uN0WiHb%2FYUA7V7c0G88%3D&reserved=0 >> [4] https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fcdn.discordapp.com%2Fattachments%2F926487797844541510%2F953424952042852422%2Funknown.png&data=04%7C01%7Cchristian.koenig%40amd.com%7C618d68406abf46aceb1708da08d1f61e%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637831995714063605%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=tuBS9UfMegc1bc7U98zpsfQ1vUKsVmpscmNKpkn%2BHmk%3D&reserved=0 >> >> Thank you everyone for your time. >> >> Very Respectfully, >> Peter Geis >> >> On Wed, May 26, 2021 at 7:21 AM Christian König >> wrote: >> >> Hi Robin, >> >> Am 26.05.21 um 12:59 schrieb Robin Murphy: >> >> On 2021-05-26 10:42, Christian König wrote: >> >> Hi Robin, >> >> Am 25.05.21 um 22:09 schrieb Robin Murphy: >> >> On 2021-05-25 14:05, Alex Deucher wrote: >> >> On Tue, May 25, 2021 at 8:56 AM Peter Geis >> wrote: >> >> On Tue, May 25, 2021 at 8:47 AM Alex Deucher >> wrote: >> >> On Tue, May 25, 2021 at 8:42 AM Peter Geis >> wrote: >> >> Good Evening, >> >> I am stress testing the pcie controller on the rk3566-quartz64 >> prototype SBC. >> This device has 1GB available at <0x3 0x00000000> for the PCIe >> controller, which makes a dGPU theoretically possible. >> While attempting to light off a HD7570 card I manage to get a >> modeset >> console, but ring0 test fails and disables acceleration. >> >> Note, we do not have UEFI, so all PCIe setup is from the Linux >> kernel. >> Any insight you can provide would be much appreciated. >> >> Does your platform support PCIe cache coherency with the CPU? I.e., >> does the CPU allow cache snoops from PCIe devices? That is required >> for the driver to operate. >> >> Ah, most likely not. >> This issue has come up already as the GIC isn't permitted to snoop on >> the CPUs, so I doubt the PCIe controller can either. >> >> Is there no way to work around this or is it dead in the water? >> >> It's required by the pcie spec. You could potentially work around it >> if you can allocate uncached memory for DMA, but I don't think that is >> possible currently. Ideally we'd figure out some way to detect if a >> particular platform supports cache snooping or not as well. >> >> There's device_get_dma_attr(), although I don't think it will work >> currently for PCI devices without an OF or ACPI node - we could >> perhaps do with a PCI-specific wrapper which can walk up and defer >> to the host bridge's firmware description as necessary. >> >> The common DMA ops *do* correctly keep track of per-device coherency >> internally, but drivers aren't supposed to be poking at that >> information directly. >> >> That sounds like you underestimate the problem. ARM has unfortunately >> made the coherency for PCI an optional IP. >> >> Sorry to be that guy, but I'm involved a lot internally with our >> system IP and interconnect, and I probably understand the situation >> better than 99% of the community ;) >> >> I need to apologize, didn't realized who was answering :) >> >> It just sounded to me that you wanted to suggest to the end user that >> this is fixable in software and I really wanted to avoid even more >> customers coming around asking how to do this. >> >> For the record, the SBSA specification (the closet thing we have to a >> "system architecture") does require that PCIe is integrated in an >> I/O-coherent manner, but we don't have any control over what people do >> in embedded applications (note that we don't make PCIe IP at all, and >> there is plenty of 3rd-party interconnect IP). >> >> So basically it is not the fault of the ARM IP-core, but people are just >> stitching together PCIe interconnect IP with a core where it is not >> supposed to be used with. >> >> Do I get that correctly? That's an interesting puzzle piece in the picture. >> >> So we are talking about a hardware limitation which potentially can't >> be fixed without replacing the hardware. >> >> You expressed interest in "some way to detect if a particular platform >> supports cache snooping or not", by which I assumed you meant a >> software method for the amdgpu/radeon drivers to call, rather than, >> say, a website that driver maintainers can look up SoC names on. I'm >> saying that that API already exists (just may need a bit more work). >> Note that it is emphatically not a platform-level thing since >> coherency can and does vary per device within a system. >> >> Well, I think this is not something an individual driver should mess >> with. What the driver should do is just express that it needs coherent >> access to all of system memory and if that is not possible fail to load >> with a warning why it is not possible. >> >> I wasn't suggesting that Linux could somehow make coherency magically >> work when the signals don't physically exist in the interconnect - I >> was assuming you'd merely want to do something like throw a big >> warning and taint the kernel to help triage bug reports. Some drivers >> like ahci_qoriq and panfrost simply need to know so they can program >> their device to emit the appropriate memory attributes either way, and >> rely on the DMA API to hide the rest of the difference, but if you >> want to treat non-coherent use as unsupported because it would require >> too invasive changes that's fine by me. >> >> Yes exactly that please. I mean not sure how panfrost is doing it, but >> at least the Vulkan userspace API specification requires devices to have >> coherent access to system memory. >> >> So even if I would want to do this it is simply not possible because the >> application doesn't tell the driver which memory is accessed by the >> device and which by the CPU. >> >> Christian. >> >> Robin. >> >> _______________________________________________ >> Linux-rockchip mailing list >> Linux-rockchip@lists.infradead.org >> https://nam11.safelinks.protection.outlook.com/?url=http%3A%2F%2Flists.infradead.org%2Fmailman%2Flistinfo%2Flinux-rockchip&data=04%7C01%7Cchristian.koenig%40amd.com%7C618d68406abf46aceb1708da08d1f61e%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637831995714063605%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=gyKyym%2BH%2F9u%2FfBP953N97x%2BOJBt9EaR2aPivWITwlPo%3D&reserved=0 >> >> From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 29449C433EF for ; Fri, 18 Mar 2022 12:32:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:Content-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:In-Reply-To:From:References:Cc:To: Subject:Date:Message-ID:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=Lpq7JzeI6Y/bKPxZN6ZmnsDU0ntVWca6H6AidT4f6bc=; b=WiDEv0f8YnkeHrfC1Q2d6kX+Ur YxvCia26t+e2LMrpAHTuZHZ0YpGxtrg0uipR7j58p35mctqnwPxOiyEz8AiYPBhzHIpHXGssDtEmJ Zer907NiuW/y1A3RbSr6hXR3qFoue4ZMRkiJqR+R+tHqgTWXysibIWjFgO59lKP3/XZDqtqpN729s QUcEWrR3q7IBkxzuKV3hFm7LFOeIGZ2RZzN3pkCYw9kmTABg8Tw+hpYvMgJCMcImaKtYpDX5yiTzj cCR7c/GWbwaTkbxVlVV8fYMhSA5Zy70Y2UeV2HlBEaZRTrrlTf4Iq2NcgvZC2fo+BaDuhrWCaiiMC kRWRtQ3w==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nVBlw-001aPX-Ng; Fri, 18 Mar 2022 12:32:00 +0000 Received: from mail-mw2nam10on20611.outbound.protection.outlook.com ([2a01:111:f400:7e89::611] helo=NAM10-MW2-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1nVBlr-001aNg-B7 for linux-rockchip@lists.infradead.org; Fri, 18 Mar 2022 12:31:58 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=GPBKFgFKd3unZ4qYTY4qmZzMNpHPkb7l1pjw3f3LEYS2v5GYW8HT/+9E7KSNoReIsujjDS/6+CT0WoLgjrp/pOKOCPAIQ9l2VKsT1H18I5q8gTYEE5nLrxHOZ3zSelBBaaBJ4RFATKGx1MOGtrcY2g4jmHrlIKaSLFBiFw/ZZGBEkBJpe3VaJJ96O/Jh8/CmBuEyi68BlV6ttuhpvYMaIyFO0nTP8le1rBCAl9Zr8qmLm98fJr8A4rNe7uYLh4qX7AV90bnb3aRWehBu1pm0nnfTpAt/3zMeX7xVFJKh1NmS9Ep+jgdDgOZfYf+QfnahDLMFuesghQ2SYQ5wZDdjWQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=DsDimbhjxMwzt90RL9BRbwkDALami/ekkY8YwLW2rsg=; b=Rf9IvrtB/zign9+3tIHkfSoh9uboTI20bJr48AO2N4LydEB4+fMsk7yIND/ZzHPlC9IkUsyyq67V5EwMKzx2XGuqBq+ORU69mul0TasXUGf0z/uYhQqB6LVA/n6W2VVv8fjFitVVvXJcUyi3kFv00lBSZEL+HaaZOMKAuyACnX0mHMN5FOqSW8DKUmIAor8cXIQzuOKHEojq5KCEVuP+w0vyEfD30y/SGAX6oRITbMSRhvynwoFhVC5PB9zQJrQNq1yKz6IoW0lkt68oKlHnImDffEdGHpm9QG0HYaIqY7pIvJVNt+XvjZGMWWT+AT3jss6Hd06lBR96lsZIqCXULA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=DsDimbhjxMwzt90RL9BRbwkDALami/ekkY8YwLW2rsg=; b=Qay+R41C28lxobCFxP133EabDd5BH0gyNh7Lx2IXUrFaeDilT3nEirgWVjMkMTOeo6WSsgEuZVnyHtaE5rVcqGHQAS/PAPs2rnBxuQYf97v4wUsvI6a1FNmjvLgu0pxyZTDWJf3hHE45iKxAt6vNl5N0Q3bqSUgtJEKrq4oEF+c= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=amd.com; Received: from BN8PR12MB3587.namprd12.prod.outlook.com (2603:10b6:408:43::13) by CH2PR12MB4837.namprd12.prod.outlook.com (2603:10b6:610:f::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5081.17; Fri, 18 Mar 2022 12:31:49 +0000 Received: from BN8PR12MB3587.namprd12.prod.outlook.com ([fe80::404f:1fc8:9f4c:f185]) by BN8PR12MB3587.namprd12.prod.outlook.com ([fe80::404f:1fc8:9f4c:f185%6]) with mapi id 15.20.5081.018; Fri, 18 Mar 2022 12:31:49 +0000 Message-ID: <487eec9e-49e7-8d98-4d60-321de83448ac@amd.com> Date: Fri, 18 Mar 2022 13:31:41 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.5.0 Subject: Re: radeon ring 0 test failed on arm64 Content-Language: en-US To: Peter Geis Cc: Kever Yang , Robin Murphy , Shawn Lin , =?UTF-8?Q?Christian_K=c3=b6nig?= , Alex Deucher , "Deucher, Alexander" , amd-gfx list , "open list:ARM/Rockchip SoC..." , Tao Huang References: <20dffd4d-fa54-5bc3-c13b-f8ffbf0fb593@arm.com> <599edb94-8294-c4c5-ff7f-84c7072af3dd@gmail.com> <546bf682-565f-8384-ec80-201ce1c747f4@arm.com> <8afb06c4-7601-d0d7-feae-ee5abc9c3641@amd.com> <7652b236-238c-4e8a-f1c5-e3b7f7f71be6@rock-chips.com> From: =?UTF-8?Q?Christian_K=c3=b6nig?= In-Reply-To: X-ClientProxiedBy: AS9PR05CA0043.eurprd05.prod.outlook.com (2603:10a6:20b:489::27) To BN8PR12MB3587.namprd12.prod.outlook.com (2603:10b6:408:43::13) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: e1bc818d-58d4-4eef-7f47-08da08db45b8 X-MS-TrafficTypeDiagnostic: CH2PR12MB4837:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: YiRd7gsfnXTFCNJbkkNWhD9Gv1JOZadJlepPx+hBALPWNO+KLgyGdzXpj+nH0i3NXSM3lnIHyJJcevgGAaTurr/c7xaccMDSfAXUfbKVy3s4OU4H1VS5+U2zd6qzh/uX/sW5btjUmMLKYE+uLklCsQwlRLBJrzAiHfxt7Ry6iIe7I70Ago/huQ8mtJpOr0NvpAjteoBPM8+xDLn7lFBZaQjy/H6tIguqfO3eTLWE1H47rJXKwnXtDkxNUVNjUh5R5vln8GioSD+Gk+BO9m8gceeZrItwUESJOpaRfT1pck6a1xwsDRdHsd0vdFaow+09Q1AmoCRMpxKkON2U+/zhlJJ9lDUfovsEwtu8G0b4SAExaSy5qcucX1YGmn9Nme2kCjRSsR/+n+PhPWcIUECNH3g5z89urOmh3JbEn8J/+HGYj6yV9X9Yt1uTru507cOkazy0mjI1LaExL1COP23HN+uTPTkscSL24xB3Ceu1Qo7X6kN8wDPyYr+F8pyXpNJGnrYJNNzdEuWpLLaEYMUvM4awF/AOrzXxLaqvxKeErXyxBrDzZOr/j3QI1vttrGJ/HkSuZrk24nc9EPlRQVRDoRj/pJnHDwJR1uDIgJUgV7H5pUrf5XOHjw57ap4UaK990Ddkoa9ajn/2DLn5aJJhnazfiUAwQh+SQ/rcW/Os2lleXstju15ooHwc8oyvUSgjS9XZcnQhadxKoVUTtyMlAX9Ghm4g7y9q7pU6Temz75CgTz2BoqPypx9eBCF0BcAYg8V5HxDmYSfvX1H5Q5hI1E3ftCfFqgv8aJEZRBHGN2hZYSiEaLPV6uI61tGzA5ptuaS4vikmnVVDQ0C3t6+ecHe0RPsHGZnS6ZX2nUXtSyk= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BN8PR12MB3587.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(4636009)(366004)(66574015)(83380400001)(186003)(38100700002)(8936002)(5660300002)(30864003)(86362001)(4326008)(66946007)(2906002)(6666004)(45080400002)(508600001)(66556008)(53546011)(2616005)(6506007)(6512007)(316002)(31686004)(966005)(6486002)(54906003)(6916009)(36756003)(31696002)(66476007)(8676002)(45980500001)(43740500002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?emtqUDZoSkFtU1h0cDBjZ1hpY0lqV3pCcEJ1QkxWYXd2MUMxT0RXOHVzR1NX?= =?utf-8?B?bkRoYitiZWduSi9HZ1F5NmJXZGNGVnNFTkFSWHpWeHVMdmJLS3JpOTJpUTRT?= =?utf-8?B?SG5Bc3dlbjJiZUlhUXFHa1lzeXJpeXFORHZObHlIak1jL3Y0SGt4bTZFQ3lH?= =?utf-8?B?VURLVURTRE5DZGhxSCszRDRDeGF6OW1ac0s5alVyUUl3NDIrQXlMZHladXp1?= =?utf-8?B?alI4NUZRNUdQVWcyaXlnNkN6NEdJOWczUDRVMUVxMDY2aU1lNThmcWMvcGpB?= =?utf-8?B?RE5mQ0ZTTjJVcTd4ZFFQNVVmRWRBNEp4YkJ1UmxkYW5lNHdmdThiY0NHbDV4?= =?utf-8?B?eFRXZlZUcXNOUGE5ZkdTR3VvcUF6U3dmWDdyQ2VOQWRBY3Z4RVhPczdreDVE?= =?utf-8?B?a2JFam5BZFRMVEhwVFV2YmdkeWFCZElyUFc3SnNNTnBwbExUaVJyTkNvK21h?= =?utf-8?B?TGsrajJYdmZqY3l3RlFKb1dBT1QrUmJVdWxkRUk0V3ZROTJZWVhPVnh3cEhN?= =?utf-8?B?aFRvc0MxdlBBeTYrWUVyUXpCZlZkaUIyK3F1ZlZodlFNNSticDBycGtYRnNp?= =?utf-8?B?d3pzNy9mRDMrSlZsRktYeWFMbjRSYXBLd0ViVzkycm56bVhqVEdkM2YrSjcv?= =?utf-8?B?T2tCaWk3ZXB6bjBML2xCLzFZWmVQQ1JTQzUzWDFtcTc5ODVnMjNKZzBadTk2?= =?utf-8?B?dnpNOWd3UVExTDdGSVFOSFhBZGhuZngzV3NoTUQrdWw2SEJTQjJHTkZDb0Z0?= =?utf-8?B?SWVnQmxnL085a0dJMFBhc1UreS9CUWd2amo2ZC8vejhjcGc4blNidmxieXRQ?= =?utf-8?B?Vlc2d2U4a25EZUVCRU1xVHBvU0QwcWtSa0VFZTlCVTJBMWNzQm0zYVRqR3Vs?= =?utf-8?B?ZVlyNFVWUDdIcExDMUVtVzFrUzFqUGFWc1RYMDA3SzBtc2dud1MrSlhjSW9x?= =?utf-8?B?amxENUZvVmNPM1BMZUZWUVpHb1Z6SVRlNmJ6aDFaaXQ5WmUvQTlLODRWMjNu?= =?utf-8?B?RGdFWTZGdzNTY0VCK2dRYVZSbDA4RHh2SHN1UkExZ3pNUHVyb2VkTE9SalRp?= =?utf-8?B?eHRhcXJtTkh3aS9DZWlHT1hKajNKajIvYnE4RnErdGNaZmJxOC8zZS8waFE2?= =?utf-8?B?RXVJWExRSG8vcG43MGg3WjJzbWc2VUJMNkdiNUx6b3drNkl5QnV5MnB5eFdL?= =?utf-8?B?ODRTNUU3OVpVSTVqYmZtQVhjZktsbndLUFBIR0RNVC9sYVlMc29IUEMxeE1V?= =?utf-8?B?c2tUd0crRlBqeXF2N292UnJ6M2dKeFo2YjNxZmFQVGRQN3RzK2FBcVVqMThG?= =?utf-8?B?bkhqQTRubkViZnhCS3VheGcrazVUU1M0b29abi9ULytsQ1BwcGROZWl0UTRY?= =?utf-8?B?WUROcEhvWUVSTnlSOGdvQlNNaGh2WXh2VnpXSm1yL3ZjNWxTbGcyUGJuZEMw?= =?utf-8?B?ZTlCMVFtY1hFV0s3OFZCdVV5STlWaXBzNmJROTB6eEo5NDE1ZUdoWHFjVDZH?= =?utf-8?B?QnJmeGtFeUNKVEhWQ0JPZmRaRXI4SytFQ2pnUlVQdllwK2JRR01GTlhYQ004?= =?utf-8?B?MU1PU2UzcUNpbFpneWI3clBwYXRSNGNDcEQ5aEtENmNPK0t0L3hUL0hFc1Vk?= =?utf-8?B?NGc0WGkxRXFTNGpVWTNaTWttWk9vYWl5YzJhOG9FcXB1ZDhiU2IwYi9yMjVK?= =?utf-8?B?U25QYmdSMnZ4dHlwUFdVbnJCOERORDhyUVNVSW4vMlFNM1BRZlpoQlltY2pE?= =?utf-8?B?MXVtNk5HTDBkQllzcUxsbkpsQ1RnVkc4aWFVMmJ3Vm8vU2xzbVhUdG9ZWFV4?= =?utf-8?B?SHp4MUtRdVRoMEZiUDdEdDJsTlo0UEhRcFlpVGduanUvV0M1dmUyTk9XN1kz?= =?utf-8?B?OUdVQlR2ZXRWREZlTDJ0R3NXOTY5blVpdzhSbmh5S0RlWk9TUVRMYnoxQzdu?= =?utf-8?B?Z0hKREpaZW5QV3dOTmJ0TkorWWd4cGtHQitLVmdYOWw0TW10dXM4R2NwbWx2?= =?utf-8?B?SmZGMVIyS2ZURzZDdDlINk55YlVBRDdnYzU4OVE1YXdveWtnVXU3Z093NDRW?= =?utf-8?Q?wP+7U0?= X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: e1bc818d-58d4-4eef-7f47-08da08db45b8 X-MS-Exchange-CrossTenant-AuthSource: BN8PR12MB3587.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Mar 2022 12:31:49.1144 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: UqP4FkvPMXiuEUjFlf1Wb2gCLk4ODL7D+FRuhdo2OuwqsjzPhAylQYuX/qNgC0qP X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR12MB4837 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220318_053155_698011_35D12C7C X-CRM114-Status: GOOD ( 43.39 ) X-BeenThere: linux-rockchip@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Upstream kernel work for Rockchip platforms List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "Linux-rockchip" Errors-To: linux-rockchip-bounces+linux-rockchip=archiver.kernel.org@lists.infradead.org QW0gMTguMDMuMjIgdW0gMTI6MjQgc2NocmllYiBQZXRlciBHZWlzOgo+IE9uIEZyaSwgTWFyIDE4 LCAyMDIyIGF0IDQ6MzUgQU0gQ2hyaXN0aWFuIEvDtm5pZwo+IDxjaHJpc3RpYW4ua29lbmlnQGFt ZC5jb20+IHdyb3RlOgo+Pgo+Pgo+PiBBbSAxOC4wMy4yMiB1bSAwODo1MSBzY2hyaWViIEtldmVy IFlhbmc6Cj4+Cj4+Cj4+IE9uIDIwMjIvMy8xNyAyMDoxOSwgUGV0ZXIgR2VpcyB3cm90ZToKPj4K Pj4gT24gV2VkLCBNYXIgMTYsIDIwMjIgYXQgMTE6MDggUE0gS2V2ZXIgWWFuZyA8a2V2ZXIueWFu Z0Byb2NrLWNoaXBzLmNvbT4gd3JvdGU6Cj4+Cj4+IEhpIFBldGVyLAo+Pgo+PiBPbiAyMDIyLzMv MTcgMDg6MTQsIFBldGVyIEdlaXMgd3JvdGU6Cj4+Cj4+IEdvb2QgRXZlbmluZywKPj4KPj4gSSBh cG9sb2dpemUgZm9yIHJhaXNpbmcgdGhpcyBlbWFpbCBjaGFpbiBmcm9tIHRoZSBkZWFkLCBidXQg dGhlcmUgaGF2ZQo+PiBiZWVuIHNvbWUgZGV2ZWxvcG1lbnRzIHRoYXQgaGF2ZSBpbnRyb2R1Y2Vk IGV2ZW4gbW9yZSBxdWVzdGlvbnMuCj4+IEkndmUgbG9vcGVkIHRoZSBSb2NrY2hpcCBtYWlsaW5n IGxpc3QgaW50byB0aGlzIHRvbywgYXMgdGhpcyBhZmZlY3RzCj4+IHJrMzU2eCwgYW5kIGxpa2Vs eSB0aGUgdXBjb21pbmcgcmszNTg4IGlmIFsxXSBpcyB0byBiZSBiZWxpZXZlZC4KPj4KPj4gVExE UiBmb3IgdGhvc2Ugbm90IGZhbWlsaWFyOiBJdCBzZWVtcyB0aGUgcmszNTZ4IHNlcmllcyAoYW5k IHBvc3NpYmx5Cj4+IHRoZSByazM1ODgpIHdlcmUgYnVpbHQgd2l0aG91dCBhbnkgb3V0ZXIgY29o ZXJlbnQgY2FjaGUuCj4+IFRoaXMgbWVhbnMgKHVubGVzcyBSb2NrY2hpcCB3YW50cyB0byBjbGFy aWZ5IGhlcmUpIGRldmljZXMgc3VjaCBhcyB0aGUKPj4gSVRTIGFuZCBQQ0llIGNhbm5vdCB1dGls aXplIGNhY2hlIHNub29waW5nLgo+PiBUaGlzIGlzIGJhc2VkIG9uIHRoZSByZXN1bHRzIG9mIHRo ZSBlbWFpbCBjaGFpbiBbMl0uCj4+Cj4+IFRoZSBuZXcgY2lyY3Vtc3RhbmNlcyBhcmUgYXMgZm9s bG93czoKPj4gVGhlIFJQaSBDTTQgQWR2ZW50dXJlIFRlYW0gYXMgSSd2ZSB0YWtlbiB0byBjYWxs aW5nIHRoZW0gaGFzIGJlZW4KPj4gYXR0ZW1wdGluZyB0byBnZXQgYSBkR1BVIHdvcmtpbmcgd2l0 aCB0aGUgdmVyeSBicm9rZW4gQnJvYWRjb20KPj4gY29udHJvbGxlciBpbiB0aGUgUlBpIENNNC4K Pj4gUmVjZW50bHkgdGhleSBhY3F1aXJlZCBhIFNvUXVhcnR6IHJrMzU2NiBtb2R1bGUgd2hpY2gg aXMgcGluCj4+IGNvbXBhdGlibGUgd2l0aCB0aGUgQ000LCBhbmQgaGF2ZSB0YWtlbiB0byB0cnlp bmcgaXQgb3V0IGFzIHdlbGwuCj4+Cj4+IFRoaXMgaXMgaG93IEkgZ290IGludm9sdmVkLgo+PiBJ dCBzZWVtcyB0aGV5IGZvdW5kIGEgdHJpdmlhbCB3YXkgdG8gZm9yY2UgdGhlIFJhZGVvbiBSNjAw IGRyaXZlciB0bwo+PiB1c2UgTm9uLUNhY2hlZCBtZW1vcnkgZm9yIGV2ZXJ5dGhpbmcuCj4+IFRo aXMgc2luZ2xlIGxpbmUgY2hhbmdlLCBjb21iaW5lZCB3aXRoIHVzaW5nIG1lbXNldF9pbyBpbnN0 ZWFkIG9mCj4+IG1lbXNldCwgYWxsb3dzIHRoZSByaW5nIHRlc3RzIHRvIHBhc3MgYW5kIHRoZSBj YXJkIHByb2JlcyBzdWNjZXNzZnVsbHkKPj4gKG1pbnVzIHRoZSBETUEgbGltaXRhdGlvbnMgb2Yg dGhlIHJrMzU2eCBkdWUgdG8gdGhlIDMyIGJpdAo+PiBpbnRlcmNvbm5lY3QpLgo+PiBJIGRpc2Nv dmVyZWQgdXNpbmcgdGhpcyBtZXRob2QgdGhhdCB3ZSBzdGFydCBoYXZpbmcgdW5hbGlnbmVkIGlv Cj4+IG1lbW9yeSBhY2Nlc3MgZmF1bHRzIChidXMgZXJyb3JzKSB3aGVuIHJ1bm5pbmcgZ2xtYXJr Mi1kcm0gKHJ1bm5pbmcKPj4gZ2xtYXJrMiBkaXJlY3RseSB3YXMgaW1wb3NzaWJsZSwgYXMgYm90 aCBYIGFuZCBXYXlsYW5kIGNyYXNoZWQgdG9vCj4+IGVhcmx5KS4KPj4gSSB0cmFjZWQgdGhpcyB0 byB1c2luZyB3aGF0IEkgdGhvdWdodCBhdCB0aGUgdGltZSB3YXMgYW4gdW5zYWZlIG1lbWNweQo+ PiBpbiB0aGUgbWVzYSBzdGFjay4KPj4gUmV3cml0aW5nIHRoaXMgZnVuY3Rpb24gdG8gZm9yY2Ug YWxpZ25lZCB3cml0ZXMgc29sdmVkIHRoZSBwcm9ibGVtIGFuZAo+PiBhbGxvd3MgZ2xtYXJrMi1k cm0gdG8gcnVuIHRvIGNvbXBsZXRpb24uCj4+IFdpdGggc29tZSBleHRlbnNpdmUgZGVidWdnaW5n LCBJIGZvdW5kIGFib3V0IGhhbGYgYSBkb3plbiBtZW1jcHkKPj4gZnVuY3Rpb25zIGluIG1lc2Eg dGhhdCBpZiBmb3JjZWQgdG8gYmUgYWxpZ25lZCB3b3VsZCBhbGxvdyBXYXlsYW5kIHRvCj4+IHN0 YXJ0LCBidXQgd2l0aCBoaWxhcmlvdXMgZGlzcGxheSBjb3JydXB0aW9uIChzZWUgWzNdLiBbNF0p Lgo+PiBUaGUgQ000IHRlYW0gaXMgY29udmluY2VkIHRoaXMgaXMgYW4gaXNzdWUgd2l0aCBtZW1j cHkgaW4gZ2xpYmMsIGJ1dAo+PiBJJ20gbm90IGNvbnZpbmNlZCBpdCdzIHRoYXQgc2ltcGxlLgo+ Pgo+PiBPbiBteSB0d28gaG91ciBkcml2ZSBpbiB0byB3b3JrIHRoaXMgbW9ybmluZywgSSBnb3Qg dG8gdGhpbmtpbmcuCj4+IElmIHRoaXMgd2FzIGFuIG1lbWNweSBmYXVsdCwgdGhpcyB3b3VsZCBi ZSB1bml2ZXJzYWxseSBicm9rZW4gb24gYXJtNjQKPj4gd2hpY2ggaXMgb2J2aW91c2x5IG5vdCB0 aGUgY2FzZS4KPj4gU28gSSBzdGFydGVkIHRoaW5raW5nLCB3aGF0IGlzIGRpZmZlcmVudCBoZXJl IHRoYW4gd2l0aCBzeXN0ZW1zIGtub3duIHRvIHdvcms6Cj4+IDEuIE5vIElPTU1VIGZvciB0aGUg UENJZSBjb250cm9sbGVyLgo+PiAyLiBUaGUgT3V0ZXIgQ2FjaGUgSXNzdWUuCj4+Cj4+IFJvYmlu Ogo+PiBNeSBxdWVzdGlvbnMgZm9yIHlvdSwgc2luY2UgeW91J3JlIHRoZSBzbWFydGVzdCBwZXJz b24gSSBrbm93IGFib3V0Cj4+IGFybTY0IG1lbW9yeSBtYW5hZ2VtZW50Ogo+PiBDb3VsZCBjYWNo ZSBzbm9vcGluZyBwZXJtaXQgdW5hbGlnbmVkIGFjY2Vzc2VzIHRvIElPIHRvIGJlIHNhZmU/Cj4+ IE9yCj4+IElzIGl0IHRoZSBsYWNrIG9mIGFuIElPTU1VIHRoYXQncyBjYXVzaW5nIHRoZSBhbGkg Z25tZW50IGZhdWx0cyB0byBiZWNvbWUgZmF0YWw/Cj4+IE9yCj4+IEFtIEkgaW5zYW5lIGhlcmU/ Cj4+Cj4+IFJvY2tjaGlwOgo+PiBQbGVhc2UgdXBkYXRlIG9uIHRoZSBzdGF0dXMgZm9yIHRoZSBP dXRlciBDYWNoZSBlcnJhdGEgZm9yIElUUyBzZXJ2aWNlcy4KPj4KPj4gT3VyIFNvQyBkZXNpZ24g dGVhbSBoYXMgZG91YmxlIGNoZWNrIHdpdGggQVJNIEdJQy9JVFMgSVAgdGVhbSBmb3IgbWFueQo+ PiB0aW1lcywgYW5kIHRoZSBHSVRTX0NCQVNFUgo+PiBvZiBHSUM2MDAgSVAgZG9lcyBub3Qgc3Vw cG9ydCBoYXJkd2FyZSBiaW5kIG9yIGNvbmZpZyB0byBhIGZpeCB2YWx1ZSwgc28KPj4gdGhleSBp bnNpc3QgdGhpcyBpcyBhbiBJUAo+PiBsaW1pdGF0aW9uIGluc3RlYWQgb2YgYSBTb0MgYnVnLCBz b2Z0d2FyZSBzaG91bGQgdGFrZSAgY2FyZSBvZiBpdCA6KAo+PiBJIHdpbGwgY2hlY2sgYWdhaW4g aWYgd2UgY2FuIHByb3ZpZGUgZXJyYXRhIGZvciB0aGlzIGlzc3VlLgo+Pgo+PiBUaGFua3MuIFRo aXMgaXMgbmVjZXNzYXJ5IGFzIHRoZSBtYmktYWxpYXMgcHJvdmlkZXMgYW4gaW1wZXJmZWN0Cj4+ IGltcGxlbWVudGF0aW9uIG9mIHRoZSBJVFMgYW5kIGNhdXNlcyBjZXJ0YWluIFBDSWUgY2FyZHMg KGVnIHg1MjAgSW50ZWwKPj4gMTBHIE5JQykgdG8gbWlzYmVoYXZlLgo+Pgo+PiBQbGVhc2UgcHJv dmlkZSBhbiBhbnN3ZXIgdG8gdGhlIGVycmF0YSBvZiB0aGUgUENJZSBjb250cm9sbGVyLCBpbgo+ PiByZWdhcmQgdG8gY2FjaGUgc25vb3BpbmcgYW5kIGJ1ZmZlcmluZywgZm9yIGJvdGggdGhlIHJr MzU2eCBhbmQgdGhlCj4+IHVwY29taW5nIHJrMzU4OC4KPj4KPj4KPj4gU29ycnksIHdoYXQgaXMg dGhpcz8KPj4KPj4gUGFydCBvZiB0aGUgSVRTIGJ1ZyBpcyBpdCBleHBlY3RzIHRvIGJlIGNhY2hl IGNvaGVyZW50IHdpdGggdGhlIENQVQo+PiBjbHVzdGVyIGJ5IGRlc2lnbi4KPj4gRHVlIHRvIHRo ZSByazM1NnggYmVpbmcgaW1wbGVtZW50ZWQgd2l0aG91dCBhbiBvdXRlciBhY2Nlc3NpYmxlIGNh Y2hlLAo+PiB0aGUgSVRTIGFuZCBvdGhlciBkZXZpY2VzIHRoYXQgcmVxdWlyZSBjYWNoZSBjb2hl cmVuY3kgKFBDSWUgZm9yCj4+IGV4YW1wbGUpIGNyYXNoIGluIGZ1biB3YXlzLgo+Pgo+PiBUaGVu IHRoaXMgaXMgc3RpbGwgdGhlIElUUyBpc3N1ZSwgbm90IFBDSWUgaXNzdWUuCj4+IFBDSWUgaXMg YSBwZXJpcGhlcmFsIGJ1cyBjb250cm9sbGVyIGxpa2UgVVNCIGFuZCBvdGhlciBkZXZpY2UsIHRo ZSBkcml2ZXIgc2hvdWxkIG1haW50YWluIHRoZSAiY2FjaGUgY29oZXJlbmN5IiBpZiB0aGVyZSBp cyBhbnksIGFuZCB0aGVyZSBpcyBubyByZXF1aXJlbWVudCBmb3IgaGFyZHdhcmUgY2FjaGUgY29o ZXJlbmN5IGJldHdlZW4gUENJZSBhbmQgQ1BVLgo+IEtldmVyLAo+Cj4gVGhlc2UgaXNzdWVzIGFy ZSBvbmUgYW5kIHRoZSBzYW1lLgoKV2VsbCwgdGhhdCdzIG5vdCBjb3JyZWN0LiBZb3UgYXJlIHN0 aWxsIG1peGluZyB0d28gdGhpbmdzIHVwIGhlcmU6CgoxLiBUaGUgbWVtb3J5IGFjY2Vzc2VzIGZy b20gdGhlIGRldmljZSB0byB0aGUgc3lzdGVtIG1lbW9yeSBtdXN0IGJlIApjb2hlcmVudCB3aXRo IHRoZSBDUFUgY2FjaGUuIEUuZy4gd2Ugcm9vdCBjb21wbGV4IG11c3Qgc25vb3AgdGhlIENQVSBj YWNoZS4KIMKgwqDCoCBUaGF0J3MgYSByZXF1aXJlbWVudCBvZiB0aGUgUENJZSBzcGVjLiBJZiB5 b3UgZG9uJ3QgZ2V0IHRoYXQgcmlnaHQgCmEgd2hvbGUgYnVuY2ggb2YgUENJZSBkZXZpY2VzIHdv bid0IHdvcmsgY29ycmVjdGx5LgoKMi4gVGhlIG1lbW9yeSBhY2Nlc3NlcyBmcm9tIHRoZSBDUFUg dG8gdGhlIGRldmljZXMgUENJZSBCQVIgY2FuIGJlIAp1bmFsaWduZWQuIEUuZy4gYSA2NGJpdCBy ZWFkIGNhbiBiZSBhbGlnbmVkIG9uIGEgMzJiaXQgYWRkcmVzcy4KIMKgwqDCoCBUaGF0IGlzIGEg cmVxdWlyZW1lbnQgb2YgdGhlIGdyYXBoaWNzIHN0YWNrLiBPdGhlciBkZXZpY2VzIHN0aWxsIApt aWdodCB3b3JrIGZpbmUgd2l0aG91dCB0aGF0LgoKUmVnYXJkcywKQ2hyaXN0aWFuLgoKPiBDZXJ0 YWluIGhhcmR3YXJlIGJsb2NrcyAqcmVxdWlyZSogY2FjaGUgY29oZXJlbmN5IGFzIHBhcnQgb2Yg dGhlaXIgZGVzaWduLgo+IEFsbCBvZiB0aGUgKmludGVyZXN0aW5nKiB0aGluZ3MgUENJZSBjYW4g ZG8gc3RlbSBmcm9tIGl0Lgo+Cj4gV2hlbiBJIHNhdyB5b3UgYnVtcGVkIHRoZSBhdmFpbGFibGUg d2luZG93IHRvIHRoZSBQQ0llIGNvbnRyb2xsZXIgdG8KPiAxR0IgSSB3YXMgcmVhbGx5IGV4Y2l0 ZWQsIGJlY2F1c2UgdGhhdCBtZWFudCB3ZSBjb3VsZCBmaW5hbGx5IHN1cHBvcnQKPiBkZXZpY2Vz IHRoYXQgdXNlZCB0aGVzZSBpbnRlcmVzdGluZyBmZWF0dXJlcy4KPiBIb3dldmVyLCB3aXRob3V0 IGNhY2hlIGNvaGVyZW5jeSwgaGF2aW5nIG1vcmUgdGhhbiBhIDI1Nk1CIHdpbmRvdyBpcyBhCj4g d2FzdGUsIGFzIGFueSBjYXJkIHRoYXQgY2FuIHRha2UgYWR2YW50YWdlIG9mIGl0ICpyZXF1aXJl cyogY29oZXJlbmN5Lgo+IFRoZSBzYW1lIHRoaW5nIGdvZXMgZm9yIGEgcmVzaXphYmxlIEJBUi4K PiBFUCBtb2RlIGlzIHRoZSBzYW1lLCBoYXZpbmcgdGhlIGFiaWxpdHkgdG8gY29ubmVjdCBvbmUg Q1BVIHRvIGFub3RoZXIKPiBDUFUgb3ZlciBhIFBDSWUgYnVzIGxvc2VzIHRoZSBhZHZhbnRhZ2Vz IHdoZW4geW91IGRvbid0IGhhdmUKPiBjb2hlcmVuY3kuCj4gQXQgdGhhdCBwb2ludCwgeW91IG1p Z2h0IGFzIHdlbGwgdG9zcyBpbiBhIDIuNUdCIGV0aGVybmV0IHBvcnQgYW5kCj4ganVzdCB1c2Ug dGhhdCBpbnN0ZWFkLgo+Cj4+Cj4+IFdlbGwgdGhlbiBJIHN1Z2dlc3QgdG8gcmUtcmVhZCB0aGUg UENJZSBzcGVjaWZpY2F0aW9uLgo+Pgo+PiBDYWNoZSBjb2hlcmVuY3kgaXMgZGVmaW5lZCBhcyBt YW5kYXRvcnkgdGhlcmUuIE5vbi1jYWNoZSBjb2hlcmVuY3kgaXMgYW4gb3B0aW9uYWwgZmVhdHVy ZS4KPj4KPj4gU2VlIHNlY3Rpb24gMi4yLjYuNSBpbiB0aGUgUENJZSAyLjAgc3BlY2lmaWNhdGlv biBmb3IgYSBnb29kIGV4YW1wbGUuCj4+Cj4+IFJlZ2FyZHMsCj4+IENocmlzdGlhbi4KPj4KPj4K Pj4gV2UgZGlkbid0IHNlZSBhbnkgdHJhbnNmZXIgZXJyb3Igb24gcmszNTZ4IFBDSWUgdGlsbCBu b3csIHdlIGNhbiB0YWtlIGEgbG9vayBpZiBpdCdzIGVhc3kgdG8gcmVwcm9kdWNlLgo+IEl0J3Mg ZWFzeSB0byByZXByb2R1Y2UsIGp1c3QgdHJ5IHRvIHVzZSBhbnkgY2FyZCB0aGF0IGhhcyBhCj4g c2lnbmlmaWNhbnRseSBsYXJnZSBlbm91Z2ggQkFSIHRvIHdhcnJhbnQgcmVxdWlyaW5nIGNvaGVy ZW5jeS4KPiBkR1BVcyBhcmUgdGhlIG1vc3QgcmVhZGlseSBhY2Nlc3NpYmxlIGRldmljZSwgYnV0 IEhpZ2ggUGVyZm9ybWFuY2UKPiBDb21wdXRpbmcgQWNjZWxlcmF0aW9uIGRldmljZXMgYW5kIGhp Z2ggcG93ZXIgRlBHQXMgYWxzbyB3b3VsZCB3b3JrLgo+IFdhcyB0aGUgcmVzaXphYmxlIGJhciB0 ZXN0ZWQgYXQgYWxsIGludGVybmFsbHkgZWl0aGVyPwo+IEFueSBjdXJyZW50IGRldmljZSB0aGF0 IGNvdWxkIHVzZSB0aGF0IHJlcXVpcmVzIGNvaGVyZW5jeS4KPiBBbmQgbGlrZSBhYm92ZSwgRVAg bW9kZSB3aXRob3V0IGNvaGVyZW5jeSBpcyBhIHdhc3RlIGF0IGJlc3QsIGFuZAo+IHVucGxlYXNh bnQgYXQgd29yc3QuCj4KPiBWZXJ5IFJlc3BlY3RmdWxseSwKPiBQZXRlcgo+Cj4+IFRoYW5rcywK Pj4gLSBLZXZlcgo+Pgo+Pgo+PiBUaGlzIG1lYW5zIHRoYXQgcmszNTZ4IGNhbm5vdCBpbXBsZW1l bnQgYSBzcGVjaWZpY2F0aW9uIGNvbXBsaWFudCBJVFMgb3IgUENJZS4KPj4gPkZyb20gdGhlIHJr MzU4OCBzb3VyY2UgZHVtcCBpdCBhcHBlYXJzIGl0IHdhcyBwcm9kdWNlZCB3aXRob3V0IGFuCj4+ IG91dGVyIGFjY2Vzc2libGUgY2FjaGUsIHdoaWNoIG1lYW5zIGlmIHRydWUgaXQgYWxzbyB3aWxs IGJlIHVuYWJsZSB0bwo+PiB1c2UgYW55IFBDSWUgY2FyZHMgdGhhdCBpbXBsZW1lbnQgY2FjaGUg Y29oZXJlbmN5IGFzIHBhcnQgb2YgdGhlaXIKPj4gZGVzaWduLgo+Pgo+Pgo+PiBUaGFua3MsCj4+ IC0gS2V2ZXIKPj4KPj4gWzFdIGh0dHBzOi8vbmFtMTEuc2FmZWxpbmtzLnByb3RlY3Rpb24ub3V0 bG9vay5jb20vP3VybD1odHRwcyUzQSUyRiUyRmdpdGh1Yi5jb20lMkZKZWZmeUNOJTJGbWlycm9y cyUyRmNvbW1pdCUyRjBiOTg1ZjI5MzA0ZGNiOWQ2NDQxNzRlZGFjYjY3Mjk4ZTgwNDlkNGYmYW1w O2RhdGE9MDQlN0MwMSU3Q2NocmlzdGlhbi5rb2VuaWclNDBhbWQuY29tJTdDNjE4ZDY4NDA2YWJm NDZhY2ViMTcwOGRhMDhkMWY2MWUlN0MzZGQ4OTYxZmU0ODg0ZTYwOGUxMWE4MmQ5OTRlMTgzZCU3 QzAlN0MwJTdDNjM3ODMxOTk1NzE0MDYzNjA1JTdDVW5rbm93biU3Q1RXRnBiR1pzYjNkOGV5SldJ am9pTUM0d0xqQXdNREFpTENKUUlqb2lWMmx1TXpJaUxDSkJUaUk2SWsxaGFXd2lMQ0pYVkNJNk1u MCUzRCU3QzMwMDAmYW1wO3NkYXRhPWV0M2pVUTFZMlFhUjU2cVRqbDRMSjF2R3VyUHdLOEhmTG9z ZWJVSVY5YmMlM0QmYW1wO3Jlc2VydmVkPTAKPj4gWzJdIGh0dHBzOi8vbmFtMTEuc2FmZWxpbmtz LnByb3RlY3Rpb24ub3V0bG9vay5jb20vP3VybD1odHRwcyUzQSUyRiUyRmxvcmUua2VybmVsLm9y ZyUyRmxrbWwlMkY4NzFyYmR0NHR1LndsLW1heiU0MGtlcm5lbC5vcmclMkZUJTJGJmFtcDtkYXRh PTA0JTdDMDElN0NjaHJpc3RpYW4ua29lbmlnJTQwYW1kLmNvbSU3QzYxOGQ2ODQwNmFiZjQ2YWNl YjE3MDhkYTA4ZDFmNjFlJTdDM2RkODk2MWZlNDg4NGU2MDhlMTFhODJkOTk0ZTE4M2QlN0MwJTdD MCU3QzYzNzgzMTk5NTcxNDA2MzYwNSU3Q1Vua25vd24lN0NUV0ZwYkdac2IzZDhleUpXSWpvaU1D NHdMakF3TURBaUxDSlFJam9pVjJsdU16SWlMQ0pCVGlJNklrMWhhV3dpTENKWFZDSTZNbjAlM0Ql N0MzMDAwJmFtcDtzZGF0YT1VckdTeWU3TXBDVU85dHBwQ0NtZ1NHbE5hNlgwb3RKOHRrY09iMlBY akE4JTNEJmFtcDtyZXNlcnZlZD0wCj4+IFszXSBodHRwczovL25hbTExLnNhZmVsaW5rcy5wcm90 ZWN0aW9uLm91dGxvb2suY29tLz91cmw9aHR0cHMlM0ElMkYlMkZjZG4uZGlzY29yZGFwcC5jb20l MkZhdHRhY2htZW50cyUyRjkyNjQ4Nzc5Nzg0NDU0MTUxMCUyRjk1MzQxNDc1NTk3MDg1MDgxNiUy RnVua25vd24ucG5nJmFtcDtkYXRhPTA0JTdDMDElN0NjaHJpc3RpYW4ua29lbmlnJTQwYW1kLmNv bSU3QzYxOGQ2ODQwNmFiZjQ2YWNlYjE3MDhkYTA4ZDFmNjFlJTdDM2RkODk2MWZlNDg4NGU2MDhl MTFhODJkOTk0ZTE4M2QlN0MwJTdDMCU3QzYzNzgzMTk5NTcxNDA2MzYwNSU3Q1Vua25vd24lN0NU V0ZwYkdac2IzZDhleUpXSWpvaU1DNHdMakF3TURBaUxDSlFJam9pVjJsdU16SWlMQ0pCVGlJNklr MWhhV3dpTENKWFZDSTZNbjAlM0QlN0MzMDAwJmFtcDtzZGF0YT1hZ1pqcGwwTHZTZjRKbzNTb0VU VmtXNzJ1TjBXaUhiJTJGWVVBN1Y3YzBHODglM0QmYW1wO3Jlc2VydmVkPTAKPj4gWzRdIGh0dHBz Oi8vbmFtMTEuc2FmZWxpbmtzLnByb3RlY3Rpb24ub3V0bG9vay5jb20vP3VybD1odHRwcyUzQSUy RiUyRmNkbi5kaXNjb3JkYXBwLmNvbSUyRmF0dGFjaG1lbnRzJTJGOTI2NDg3Nzk3ODQ0NTQxNTEw JTJGOTUzNDI0OTUyMDQyODUyNDIyJTJGdW5rbm93bi5wbmcmYW1wO2RhdGE9MDQlN0MwMSU3Q2No cmlzdGlhbi5rb2VuaWclNDBhbWQuY29tJTdDNjE4ZDY4NDA2YWJmNDZhY2ViMTcwOGRhMDhkMWY2 MWUlN0MzZGQ4OTYxZmU0ODg0ZTYwOGUxMWE4MmQ5OTRlMTgzZCU3QzAlN0MwJTdDNjM3ODMxOTk1 NzE0MDYzNjA1JTdDVW5rbm93biU3Q1RXRnBiR1pzYjNkOGV5SldJam9pTUM0d0xqQXdNREFpTENK UUlqb2lWMmx1TXpJaUxDSkJUaUk2SWsxaGFXd2lMQ0pYVkNJNk1uMCUzRCU3QzMwMDAmYW1wO3Nk YXRhPXR1QlM5VWZNZWdjMWJjN1U5OHpwc2ZRMXZVS3NWbXBzY21OS3BrbiUyQkhtayUzRCZhbXA7 cmVzZXJ2ZWQ9MAo+Pgo+PiBUaGFuayB5b3UgZXZlcnlvbmUgZm9yIHlvdXIgdGltZS4KPj4KPj4g VmVyeSBSZXNwZWN0ZnVsbHksCj4+IFBldGVyIEdlaXMKPj4KPj4gT24gV2VkLCBNYXkgMjYsIDIw MjEgYXQgNzoyMSBBTSBDaHJpc3RpYW4gS8O2bmlnCj4+IDxjaHJpc3RpYW4ua29lbmlnQGFtZC5j b20+IHdyb3RlOgo+Pgo+PiBIaSBSb2JpbiwKPj4KPj4gQW0gMjYuMDUuMjEgdW0gMTI6NTkgc2No cmllYiBSb2JpbiBNdXJwaHk6Cj4+Cj4+IE9uIDIwMjEtMDUtMjYgMTA6NDIsIENocmlzdGlhbiBL w7ZuaWcgd3JvdGU6Cj4+Cj4+IEhpIFJvYmluLAo+Pgo+PiBBbSAyNS4wNS4yMSB1bSAyMjowOSBz Y2hyaWViIFJvYmluIE11cnBoeToKPj4KPj4gT24gMjAyMS0wNS0yNSAxNDowNSwgQWxleCBEZXVj aGVyIHdyb3RlOgo+Pgo+PiBPbiBUdWUsIE1heSAyNSwgMjAyMSBhdCA4OjU2IEFNIFBldGVyIEdl aXMgPHBnd2lwZW91dEBnbWFpbC5jb20+Cj4+IHdyb3RlOgo+Pgo+PiBPbiBUdWUsIE1heSAyNSwg MjAyMSBhdCA4OjQ3IEFNIEFsZXggRGV1Y2hlcgo+PiA8YWxleGRldWNoZXJAZ21haWwuY29tPiB3 cm90ZToKPj4KPj4gT24gVHVlLCBNYXkgMjUsIDIwMjEgYXQgODo0MiBBTSBQZXRlciBHZWlzIDxw Z3dpcGVvdXRAZ21haWwuY29tPgo+PiB3cm90ZToKPj4KPj4gR29vZCBFdmVuaW5nLAo+Pgo+PiBJ IGFtIHN0cmVzcyB0ZXN0aW5nIHRoZSBwY2llIGNvbnRyb2xsZXIgb24gdGhlIHJrMzU2Ni1xdWFy dHo2NAo+PiBwcm90b3R5cGUgU0JDLgo+PiBUaGlzIGRldmljZSBoYXMgMUdCIGF2YWlsYWJsZSBh dCA8MHgzIDB4MDAwMDAwMDA+IGZvciB0aGUgUENJZQo+PiBjb250cm9sbGVyLCB3aGljaCBtYWtl cyBhIGRHUFUgdGhlb3JldGljYWxseSBwb3NzaWJsZS4KPj4gV2hpbGUgYXR0ZW1wdGluZyB0byBs aWdodCBvZmYgYSBIRDc1NzAgY2FyZCBJIG1hbmFnZSB0byBnZXQgYQo+PiBtb2Rlc2V0Cj4+IGNv bnNvbGUsIGJ1dCByaW5nMCB0ZXN0IGZhaWxzIGFuZCBkaXNhYmxlcyBhY2NlbGVyYXRpb24uCj4+ Cj4+IE5vdGUsIHdlIGRvIG5vdCBoYXZlIFVFRkksIHNvIGFsbCBQQ0llIHNldHVwIGlzIGZyb20g dGhlIExpbnV4Cj4+IGtlcm5lbC4KPj4gQW55IGluc2lnaHQgeW91IGNhbiBwcm92aWRlIHdvdWxk IGJlIG11Y2ggYXBwcmVjaWF0ZWQuCj4+Cj4+IERvZXMgeW91ciBwbGF0Zm9ybSBzdXBwb3J0IFBD SWUgY2FjaGUgY29oZXJlbmN5IHdpdGggdGhlIENQVT8gIEkuZS4sCj4+IGRvZXMgdGhlIENQVSBh bGxvdyBjYWNoZSBzbm9vcHMgZnJvbSBQQ0llIGRldmljZXM/ICBUaGF0IGlzIHJlcXVpcmVkCj4+ IGZvciB0aGUgZHJpdmVyIHRvIG9wZXJhdGUuCj4+Cj4+IEFoLCBtb3N0IGxpa2VseSBub3QuCj4+ IFRoaXMgaXNzdWUgaGFzIGNvbWUgdXAgYWxyZWFkeSBhcyB0aGUgR0lDIGlzbid0IHBlcm1pdHRl ZCB0byBzbm9vcCBvbgo+PiB0aGUgQ1BVcywgc28gSSBkb3VidCB0aGUgUENJZSBjb250cm9sbGVy IGNhbiBlaXRoZXIuCj4+Cj4+IElzIHRoZXJlIG5vIHdheSB0byB3b3JrIGFyb3VuZCB0aGlzIG9y IGlzIGl0IGRlYWQgaW4gdGhlIHdhdGVyPwo+Pgo+PiBJdCdzIHJlcXVpcmVkIGJ5IHRoZSBwY2ll IHNwZWMuICBZb3UgY291bGQgcG90ZW50aWFsbHkgd29yayBhcm91bmQgaXQKPj4gaWYgeW91IGNh biBhbGxvY2F0ZSB1bmNhY2hlZCBtZW1vcnkgZm9yIERNQSwgYnV0IEkgZG9uJ3QgdGhpbmsgdGhh dCBpcwo+PiBwb3NzaWJsZSBjdXJyZW50bHkuICBJZGVhbGx5IHdlJ2QgZmlndXJlIG91dCBzb21l IHdheSB0byBkZXRlY3QgaWYgYQo+PiBwYXJ0aWN1bGFyIHBsYXRmb3JtIHN1cHBvcnRzIGNhY2hl IHNub29waW5nIG9yIG5vdCBhcyB3ZWxsLgo+Pgo+PiBUaGVyZSdzIGRldmljZV9nZXRfZG1hX2F0 dHIoKSwgYWx0aG91Z2ggSSBkb24ndCB0aGluayBpdCB3aWxsIHdvcmsKPj4gY3VycmVudGx5IGZv ciBQQ0kgZGV2aWNlcyB3aXRob3V0IGFuIE9GIG9yIEFDUEkgbm9kZSAtIHdlIGNvdWxkCj4+IHBl cmhhcHMgZG8gd2l0aCBhIFBDSS1zcGVjaWZpYyB3cmFwcGVyIHdoaWNoIGNhbiB3YWxrIHVwIGFu ZCBkZWZlcgo+PiB0byB0aGUgaG9zdCBicmlkZ2UncyBmaXJtd2FyZSBkZXNjcmlwdGlvbiBhcyBu ZWNlc3NhcnkuCj4+Cj4+IFRoZSBjb21tb24gRE1BIG9wcyAqZG8qIGNvcnJlY3RseSBrZWVwIHRy YWNrIG9mIHBlci1kZXZpY2UgY29oZXJlbmN5Cj4+IGludGVybmFsbHksIGJ1dCBkcml2ZXJzIGFy ZW4ndCBzdXBwb3NlZCB0byBiZSBwb2tpbmcgYXQgdGhhdAo+PiBpbmZvcm1hdGlvbiBkaXJlY3Rs eS4KPj4KPj4gVGhhdCBzb3VuZHMgbGlrZSB5b3UgdW5kZXJlc3RpbWF0ZSB0aGUgcHJvYmxlbS4g QVJNIGhhcyB1bmZvcnR1bmF0ZWx5Cj4+IG1hZGUgdGhlIGNvaGVyZW5jeSBmb3IgUENJIGFuIG9w dGlvbmFsIElQLgo+Pgo+PiBTb3JyeSB0byBiZSB0aGF0IGd1eSwgYnV0IEknbSBpbnZvbHZlZCBh IGxvdCBpbnRlcm5hbGx5IHdpdGggb3VyCj4+IHN5c3RlbSBJUCBhbmQgaW50ZXJjb25uZWN0LCBh bmQgSSBwcm9iYWJseSB1bmRlcnN0YW5kIHRoZSBzaXR1YXRpb24KPj4gYmV0dGVyIHRoYW4gOTkl IG9mIHRoZSBjb21tdW5pdHkgOykKPj4KPj4gSSBuZWVkIHRvIGFwb2xvZ2l6ZSwgZGlkbid0IHJl YWxpemVkIHdobyB3YXMgYW5zd2VyaW5nIDopCj4+Cj4+IEl0IGp1c3Qgc291bmRlZCB0byBtZSB0 aGF0IHlvdSB3YW50ZWQgdG8gc3VnZ2VzdCB0byB0aGUgZW5kIHVzZXIgdGhhdAo+PiB0aGlzIGlz IGZpeGFibGUgaW4gc29mdHdhcmUgYW5kIEkgcmVhbGx5IHdhbnRlZCB0byBhdm9pZCBldmVuIG1v cmUKPj4gY3VzdG9tZXJzIGNvbWluZyBhcm91bmQgYXNraW5nIGhvdyB0byBkbyB0aGlzLgo+Pgo+ PiBGb3IgdGhlIHJlY29yZCwgdGhlIFNCU0Egc3BlY2lmaWNhdGlvbiAodGhlIGNsb3NldCB0aGlu ZyB3ZSBoYXZlIHRvIGEKPj4gInN5c3RlbSBhcmNoaXRlY3R1cmUiKSBkb2VzIHJlcXVpcmUgdGhh dCBQQ0llIGlzIGludGVncmF0ZWQgaW4gYW4KPj4gSS9PLWNvaGVyZW50IG1hbm5lciwgYnV0IHdl IGRvbid0IGhhdmUgYW55IGNvbnRyb2wgb3ZlciB3aGF0IHBlb3BsZSBkbwo+PiBpbiBlbWJlZGRl ZCBhcHBsaWNhdGlvbnMgKG5vdGUgdGhhdCB3ZSBkb24ndCBtYWtlIFBDSWUgSVAgYXQgYWxsLCBh bmQKPj4gdGhlcmUgaXMgcGxlbnR5IG9mIDNyZC1wYXJ0eSBpbnRlcmNvbm5lY3QgSVApLgo+Pgo+ PiBTbyBiYXNpY2FsbHkgaXQgaXMgbm90IHRoZSBmYXVsdCBvZiB0aGUgQVJNIElQLWNvcmUsIGJ1 dCBwZW9wbGUgYXJlIGp1c3QKPj4gc3RpdGNoaW5nIHRvZ2V0aGVyIFBDSWUgaW50ZXJjb25uZWN0 IElQIHdpdGggYSBjb3JlIHdoZXJlIGl0IGlzIG5vdAo+PiBzdXBwb3NlZCB0byBiZSB1c2VkIHdp dGguCj4+Cj4+IERvIEkgZ2V0IHRoYXQgY29ycmVjdGx5PyBUaGF0J3MgYW4gaW50ZXJlc3Rpbmcg cHV6emxlIHBpZWNlIGluIHRoZSBwaWN0dXJlLgo+Pgo+PiBTbyB3ZSBhcmUgdGFsa2luZyBhYm91 dCBhIGhhcmR3YXJlIGxpbWl0YXRpb24gd2hpY2ggcG90ZW50aWFsbHkgY2FuJ3QKPj4gYmUgZml4 ZWQgd2l0aG91dCByZXBsYWNpbmcgdGhlIGhhcmR3YXJlLgo+Pgo+PiBZb3UgZXhwcmVzc2VkIGlu dGVyZXN0IGluICJzb21lIHdheSB0byBkZXRlY3QgaWYgYSBwYXJ0aWN1bGFyIHBsYXRmb3JtCj4+ IHN1cHBvcnRzIGNhY2hlIHNub29waW5nIG9yIG5vdCIsIGJ5IHdoaWNoIEkgYXNzdW1lZCB5b3Ug bWVhbnQgYQo+PiBzb2Z0d2FyZSBtZXRob2QgZm9yIHRoZSBhbWRncHUvcmFkZW9uIGRyaXZlcnMg dG8gY2FsbCwgcmF0aGVyIHRoYW4sCj4+IHNheSwgYSB3ZWJzaXRlIHRoYXQgZHJpdmVyIG1haW50 YWluZXJzIGNhbiBsb29rIHVwIFNvQyBuYW1lcyBvbi4gSSdtCj4+IHNheWluZyB0aGF0IHRoYXQg QVBJIGFscmVhZHkgZXhpc3RzIChqdXN0IG1heSBuZWVkIGEgYml0IG1vcmUgd29yaykuCj4+IE5v dGUgdGhhdCBpdCBpcyBlbXBoYXRpY2FsbHkgbm90IGEgcGxhdGZvcm0tbGV2ZWwgdGhpbmcgc2lu Y2UKPj4gY29oZXJlbmN5IGNhbiBhbmQgZG9lcyB2YXJ5IHBlciBkZXZpY2Ugd2l0aGluIGEgc3lz dGVtLgo+Pgo+PiBXZWxsLCBJIHRoaW5rIHRoaXMgaXMgbm90IHNvbWV0aGluZyBhbiBpbmRpdmlk dWFsIGRyaXZlciBzaG91bGQgbWVzcwo+PiB3aXRoLiBXaGF0IHRoZSBkcml2ZXIgc2hvdWxkIGRv IGlzIGp1c3QgZXhwcmVzcyB0aGF0IGl0IG5lZWRzIGNvaGVyZW50Cj4+IGFjY2VzcyB0byBhbGwg b2Ygc3lzdGVtIG1lbW9yeSBhbmQgaWYgdGhhdCBpcyBub3QgcG9zc2libGUgZmFpbCB0byBsb2Fk Cj4+IHdpdGggYSB3YXJuaW5nIHdoeSBpdCBpcyBub3QgcG9zc2libGUuCj4+Cj4+IEkgd2Fzbid0 IHN1Z2dlc3RpbmcgdGhhdCBMaW51eCBjb3VsZCBzb21laG93IG1ha2UgY29oZXJlbmN5IG1hZ2lj YWxseQo+PiB3b3JrIHdoZW4gdGhlIHNpZ25hbHMgZG9uJ3QgcGh5c2ljYWxseSBleGlzdCBpbiB0 aGUgaW50ZXJjb25uZWN0IC0gSQo+PiB3YXMgYXNzdW1pbmcgeW91J2QgbWVyZWx5IHdhbnQgdG8g ZG8gc29tZXRoaW5nIGxpa2UgdGhyb3cgYSBiaWcKPj4gd2FybmluZyBhbmQgdGFpbnQgdGhlIGtl cm5lbCB0byBoZWxwIHRyaWFnZSBidWcgcmVwb3J0cy4gU29tZSBkcml2ZXJzCj4+IGxpa2UgYWhj aV9xb3JpcSBhbmQgcGFuZnJvc3Qgc2ltcGx5IG5lZWQgdG8ga25vdyBzbyB0aGV5IGNhbiBwcm9n cmFtCj4+IHRoZWlyIGRldmljZSB0byBlbWl0IHRoZSBhcHByb3ByaWF0ZSBtZW1vcnkgYXR0cmli dXRlcyBlaXRoZXIgd2F5LCBhbmQKPj4gcmVseSBvbiB0aGUgRE1BIEFQSSB0byBoaWRlIHRoZSBy ZXN0IG9mIHRoZSBkaWZmZXJlbmNlLCBidXQgaWYgeW91Cj4+IHdhbnQgdG8gdHJlYXQgbm9uLWNv aGVyZW50IHVzZSBhcyB1bnN1cHBvcnRlZCBiZWNhdXNlIGl0IHdvdWxkIHJlcXVpcmUKPj4gdG9v IGludmFzaXZlIGNoYW5nZXMgdGhhdCdzIGZpbmUgYnkgbWUuCj4+Cj4+IFllcyBleGFjdGx5IHRo YXQgcGxlYXNlLiBJIG1lYW4gbm90IHN1cmUgaG93IHBhbmZyb3N0IGlzIGRvaW5nIGl0LCBidXQK Pj4gYXQgbGVhc3QgdGhlIFZ1bGthbiB1c2Vyc3BhY2UgQVBJIHNwZWNpZmljYXRpb24gcmVxdWly ZXMgZGV2aWNlcyB0byBoYXZlCj4+IGNvaGVyZW50IGFjY2VzcyB0byBzeXN0ZW0gbWVtb3J5Lgo+ Pgo+PiBTbyBldmVuIGlmIEkgd291bGQgd2FudCB0byBkbyB0aGlzIGl0IGlzIHNpbXBseSBub3Qg cG9zc2libGUgYmVjYXVzZSB0aGUKPj4gYXBwbGljYXRpb24gZG9lc24ndCB0ZWxsIHRoZSBkcml2 ZXIgd2hpY2ggbWVtb3J5IGlzIGFjY2Vzc2VkIGJ5IHRoZQo+PiBkZXZpY2UgYW5kIHdoaWNoIGJ5 IHRoZSBDUFUuCj4+Cj4+IENocmlzdGlhbi4KPj4KPj4gUm9iaW4uCj4+Cj4+IF9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4+IExpbnV4LXJvY2tjaGlwIG1h aWxpbmcgbGlzdAo+PiBMaW51eC1yb2NrY2hpcEBsaXN0cy5pbmZyYWRlYWQub3JnCj4+IGh0dHBz Oi8vbmFtMTEuc2FmZWxpbmtzLnByb3RlY3Rpb24ub3V0bG9vay5jb20vP3VybD1odHRwJTNBJTJG JTJGbGlzdHMuaW5mcmFkZWFkLm9yZyUyRm1haWxtYW4lMkZsaXN0aW5mbyUyRmxpbnV4LXJvY2tj aGlwJmFtcDtkYXRhPTA0JTdDMDElN0NjaHJpc3RpYW4ua29lbmlnJTQwYW1kLmNvbSU3QzYxOGQ2 ODQwNmFiZjQ2YWNlYjE3MDhkYTA4ZDFmNjFlJTdDM2RkODk2MWZlNDg4NGU2MDhlMTFhODJkOTk0 ZTE4M2QlN0MwJTdDMCU3QzYzNzgzMTk5NTcxNDA2MzYwNSU3Q1Vua25vd24lN0NUV0ZwYkdac2Iz ZDhleUpXSWpvaU1DNHdMakF3TURBaUxDSlFJam9pVjJsdU16SWlMQ0pCVGlJNklrMWhhV3dpTENK WFZDSTZNbjAlM0QlN0MzMDAwJmFtcDtzZGF0YT1neUt5eW0lMkJIJTJGOXUlMkZmQlA5NTNOOTd4 JTJCT0pCdDlFYVIyYVBpdldJVHdsUG8lM0QmYW1wO3Jlc2VydmVkPTAKPj4KPj4KCgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpMaW51eC1yb2NrY2hpcCBt YWlsaW5nIGxpc3QKTGludXgtcm9ja2NoaXBAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlz dHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LXJvY2tjaGlwCg==