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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 981ECC677F1 for ; Fri, 24 Feb 2023 08:37:35 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229506AbjBXIhe (ORCPT ); Fri, 24 Feb 2023 03:37:34 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51298 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229553AbjBXIhe (ORCPT ); Fri, 24 Feb 2023 03:37:34 -0500 Received: from NAM12-MW2-obe.outbound.protection.outlook.com (mail-mw2nam12on2076.outbound.protection.outlook.com [40.107.244.76]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 60C5D60D7B; Fri, 24 Feb 2023 00:37:32 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=IEIiP6svC6AiV8wmYDu/lvedAxA61yuhy4c/fXRi52T0ZYkry0tjyRLpa4j8hxT72LsZKeJEkG9oiTuipsSKVyPtOe3AW9fNiuRBk9tX4Ru3ear3FT4Tt1sAJ7JpRMEDFt5332gRJfZVraN/HQyswHDhWf/+g8QhbIn/Hi6THOU+rP+5tKncEJStTLC0L5MkkcVDpCsokZyWDoELg+D6OQ0isTy3PvC2Rv6Bu+01j0pl42KbNun8kPJ3wpHaERKS67n8bFbgt9tG9MhBb2P4X5dRBqMgeLcalv0AU+P8eITL0UJNc7sBGZWW8xrLGJNEPneT53L3IxZ/AiDexBlx8Q== 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=aFQ7F6lYOK2Ryxr5w3KhSW6CIX3Xln8E7rTXQpepvrA=; b=fUOZp4Mh/hzo6cbb6X35fLV6ighiNbBozB9sKZTnMc/VedCOfRYb9twxa6alKSNJ9DSCuZOEGTgfRPc+PNklKTAaL5eGKUmEQf9B8AtbKqTPD9yo3nAO/0HHTaXGqErgraHQKW4Fy8YR/GlmrHWzBtJ/+d85hK3L71QBuL73e9xQAe7/QfytFcYkRPjl0Wcy4HexB77lO4kpA9LKi1p7hnahnfHN5hQ3PrQl2uO8/IEO1LRWa/dt2gXdEW5ytbZ0x+65PSSTIzLk/kDlqjWOEXfWpWK6YpGuZbWgXG1S/UirrJPgrNwFfZpQEZaXWvQbkyrhJlyxk/FrHJvy4nVcvw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=linaro.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); 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=aFQ7F6lYOK2Ryxr5w3KhSW6CIX3Xln8E7rTXQpepvrA=; b=KP5ly9TBd8N0I2wtjGXHMirhpGZvE/Gs+GvIZEAtMN1u1Vkexo1UFFFQCkLrGC2ayA2CyQ61SrmoAatZBFRG1u7IvGGNEfYNXJXajV8KbcR+/kM6VHZrhEOnLd+qJRPcMsGPNiljh37xJ2mIfZMTchkbYEOTAbkqp9xtbxwq54o= Received: from MW4PR03CA0212.namprd03.prod.outlook.com (2603:10b6:303:b9::7) by DS0PR12MB6464.namprd12.prod.outlook.com (2603:10b6:8:c4::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6134.24; Fri, 24 Feb 2023 08:37:30 +0000 Received: from CO1NAM11FT089.eop-nam11.prod.protection.outlook.com (2603:10b6:303:b9:cafe::93) by MW4PR03CA0212.outlook.office365.com (2603:10b6:303:b9::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6134.24 via Frontend Transport; Fri, 24 Feb 2023 08:37:29 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by CO1NAM11FT089.mail.protection.outlook.com (10.13.175.179) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.6134.24 via Frontend Transport; Fri, 24 Feb 2023 08:37:29 +0000 Received: from [10.254.241.51] (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.34; Fri, 24 Feb 2023 02:37:19 -0600 Message-ID: Date: Fri, 24 Feb 2023 09:37:16 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.8.0 Content-Language: en-US To: Tanmay Shah , Mathieu Poirier , Tanmay Shah CC: , , , , , , References: <20230213211825.3507034-1-tanmay.shah@amd.com> <20230213211825.3507034-2-tanmay.shah@amd.com> <20230222173448.GA909075@p14s> <130e75d3-034e-67a2-0c27-0599a996b20f@amd.com> From: Michal Simek Subject: Re: [PATCH v3 1/3] drivers: mailbox: zynqmp: handle multiple child nodes In-Reply-To: <130e75d3-034e-67a2-0c27-0599a996b20f@amd.com> Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 8bit X-Originating-IP: [10.180.168.240] X-ClientProxiedBy: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO1NAM11FT089:EE_|DS0PR12MB6464:EE_ X-MS-Office365-Filtering-Correlation-Id: c0055a05-02b5-4770-de8a-08db16425dbc X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: JQyvfPTA5BDk82N0LGlkjfDmTuVMC8YM23aNChmGKRAZKMbQZ5S5r/uSAqW7MO7DD82BN6xT5zA20UsZRRPRAhqaSrs36kDQqroxNsLuKMd5zSHDyrR6Eo0M5i4zd20rXkUta9X/yA7/jkYt9nw2GrKP4m4egTU8f650tde5PrDNbR41LV9uQBzEJPyza8Gh5EAuEXErUA+i4XbHmraxJmj0tMCp9XfT/IWvDz1UvMnhmJMTv7ApYQdf9r3zONBhjcFGlQsv/N5GiiYpmA7E3S7ORUMio5yB8o+AK6RvSY2GtyJN+OSzQpnfpLoS2y3nkdmst6EqttcposuBpXhQwdFpgL5Fo8tL9zyEFeOEy4iezOwdgwf6CmdUHWU7EqUKoJ9C7wJScO346uIUrFWENMs9amJkfJ6BuzI2/ApPftYudMfGWjSYZtpPMGDQHLwv1x1DmOE1bvuwVevtAZ0jIrPa2kjcG+CStGMn8K/y9uIFsC7OsOPhivdRJjtmqAnnePLGyrmfBJiiY1W5kZwaIAvnaDovXAhv5SGbiDmyvjVD+pmHEY6A05an6jO3Gv8+E1wuC5pW3hHjxLSPVjEoy7bf95r4rN2/I21N2oDXYhPtcuvfctDh/bNZVMFM8B8tSpr4v/vetPvXROIU7Lx+bSicqdbZ9Y5XEdT/6EGCL/VM/KNw8XtcM9cL5IxpAnpq+cTltAKNZDHR5YcUHPVaJAGpkTSf8QNYdCK5xr27b23u9bPF+Ixs6phCgfOsxVAu3mc6b9fETOY2uhtLy41/n1tT9aOKYXaMmtW0u3w7vE0= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230025)(4636009)(136003)(376002)(396003)(346002)(39860400002)(451199018)(36840700001)(40470700004)(46966006)(478600001)(40460700003)(2616005)(6666004)(70206006)(82310400005)(86362001)(70586007)(31696002)(8676002)(54906003)(6636002)(110136005)(83380400001)(316002)(16576012)(5660300002)(36860700001)(4326008)(44832011)(41300700001)(8936002)(82740400003)(81166007)(336012)(966005)(47076005)(36756003)(426003)(40480700001)(15650500001)(2906002)(356005)(26005)(186003)(31686004)(16526019)(53546011)(36900700001)(43740500002);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Feb 2023 08:37:29.7962 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: c0055a05-02b5-4770-de8a-08db16425dbc X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: CO1NAM11FT089.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB6464 Precedence: bulk List-ID: X-Mailing-List: linux-remoteproc@vger.kernel.org On 2/23/23 15:47, Tanmay Shah wrote: > > On 2/23/23 1:40 AM, Michal Simek wrote: >> >> >> On 2/22/23 18:34, Mathieu Poirier wrote: >>> On Mon, Feb 13, 2023 at 01:18:24PM -0800, Tanmay Shah wrote: >>>> As of now only one child node is handled by zynqmp-ipi >>>> mailbox driver. Upon introducing remoteproc r5 core mailbox >>>> nodes, found few enhancements in Xilinx zynqmp mailbox driver >>>> as following: >>>> >>>> - fix mailbox child node counts >>>>    If child mailbox node status is disabled it causes >>>>    crash in interrupt handler. Fix this by assigning >>>>    only available child node during driver probe. >>>> >>>> - fix typo in IPI documentation %s/12/32/ >>>>    Xilinx IPI message buffers allows 32-byte data transfer. >>>>    Fix documentation that says 12 bytes >>>> >>>> - fix bug in zynqmp-ipi isr handling >>>>    Multiple IPI channels are mapped to same interrupt handler. >>>>    Current isr implementation handles only one channel per isr. >>>>    Fix this behavior by checking isr status bit of all child >>>>    mailbox nodes. >>>> >>>> Fixes: 4981b82ba2ff ("mailbox: ZynqMP IPI mailbox controller") >>>> Signed-off-by: Tanmay Shah >>>> --- >>>> >>>> Changelog: >>>>    - This is first version of this change, however posting as part of the >>>> series >>>>      that has version v3. >>>> >>>> v2: https://lore.kernel.org/all/20230126213154.1707300-1-tanmay.shah@amd.com/ >>>> >>>>   drivers/mailbox/zynqmp-ipi-mailbox.c       | 8 ++++---- >>>>   include/linux/mailbox/zynqmp-ipi-message.h | 2 +- >>>>   2 files changed, 5 insertions(+), 5 deletions(-) >>>> >>>> diff --git a/drivers/mailbox/zynqmp-ipi-mailbox.c >>>> b/drivers/mailbox/zynqmp-ipi-mailbox.c >>>> index 12e004ff1a14..b1498f6f06e1 100644 >>>> --- a/drivers/mailbox/zynqmp-ipi-mailbox.c >>>> +++ b/drivers/mailbox/zynqmp-ipi-mailbox.c >>>> @@ -152,7 +152,7 @@ static irqreturn_t zynqmp_ipi_interrupt(int irq, void >>>> *data) >>>>       struct zynqmp_ipi_message *msg; >>>>       u64 arg0, arg3; >>>>       struct arm_smccc_res res; >>>> -    int ret, i; >>>> +    int ret, i, status = IRQ_NONE; >>>>         (void)irq; >>>>       arg0 = SMC_IPI_MAILBOX_STATUS_ENQUIRY; >>>> @@ -170,11 +170,11 @@ static irqreturn_t zynqmp_ipi_interrupt(int irq, void >>>> *data) >>>>                   memcpy_fromio(msg->data, mchan->req_buf, >>>>                             msg->len); >>>>                   mbox_chan_received_data(chan, (void *)msg); >>>> -                return IRQ_HANDLED; >>>> +                status = IRQ_HANDLED; >>>>               } >>>>           } >>>>       } >>>> -    return IRQ_NONE; >>>> +    return status; >>>>   } >>>>     /** >>>> @@ -634,7 +634,7 @@ static int zynqmp_ipi_probe(struct platform_device *pdev) >>>>       struct zynqmp_ipi_mbox *mbox; >>>>       int num_mboxes, ret = -EINVAL; >>>>   -    num_mboxes = of_get_child_count(np); >>>> +    num_mboxes = of_get_available_child_count(np); >>>>       pdata = devm_kzalloc(dev, sizeof(*pdata) + (num_mboxes * sizeof(*mbox)), >>>>                    GFP_KERNEL); >>>>       if (!pdata) >>>> diff --git a/include/linux/mailbox/zynqmp-ipi-message.h >>>> b/include/linux/mailbox/zynqmp-ipi-message.h >>>> index 35ce84c8ca02..31d8046d945e 100644 >>>> --- a/include/linux/mailbox/zynqmp-ipi-message.h >>>> +++ b/include/linux/mailbox/zynqmp-ipi-message.h >>>> @@ -9,7 +9,7 @@ >>>>    * @data: message payload >>>>    * >>>>    * This is the structure for data used in mbox_send_message >>>> - * the maximum length of data buffer is fixed to 12 bytes. >>>> + * the maximum length of data buffer is fixed to 32 bytes. >>>>    * Client is supposed to be aware of this. >>> >>> I agree that this should be split in 3 patches but the fixes are so small that >>> it is hardly required.  I'll leave it up to Michal to decide. >> >> Generic guidance is saying that you should split that patches. I personally >> prefer to have one patch per change. It is useful for bisecting and faster for >> reviewing. >> I would expect that this patch should go via mailbox tree and the rest via >> remoteproc tree. That's why maintainer should say what it is preferred way. >> > > Thanks Michal for reviews. I will split the patch in three different patches. > > >> In connection mailbox. I recently had some time to look at this driver and I >> didn't really get why there are registers listed. Because all that addresses >> can be calculated based on soc compatible string and by xlnx,ipi-id for both >> sides. > > > Yes the IPI configuration register addresses are retrieved from TF-A in > zynqmp-ipi-driver using xlnx,ipi-id property. > > Other than that there are message buffers provided in hardware for IPI > communication. We list those message buffer addresses > > using reg addresses and they are expected in dts. As per bindings we do not map > message buffers to IPI ID. > > I am not sure which register listing you are referring to ? Based on https://docs.xilinx.com/r/en-US/am011-versal-acap-trm/Message-Buffer xlnx,ipi-id = 2 (versal case) APU pmu1 has xlnx,ipi-id = 1; PMC Base on versal is 0xFF3F0000 Local buffers for sending from 2 -> 1 Buffer 2 starts at offset 0x400 Order in destination is PSM, PMC, IPI0... where you have request 32B and response 32B too. It means 2->1 - target is PMC that means 0x40 for request 0x60 for response. When this is put together 0xff3f0000 + 0x400 + 0x40 = ff3f0440 - local request 0xff3f0000 + 0x400 + 0x60 = ff3f0460 - local response For the way back from 1->2 Buffer one starts at 0x200 I want to send it to APU which we use channel 2 for. Channel 2 start at ID * 0x40 = 0x80 is for request 0x80 + 32 = 0xa0 for response It means 2->1 - target is APU at ID 2 0xff3f0000 + 0x200 + 0x80 = ff3f0280 - remote request 0xff3f0000 + 0x200 + 0xa0 = ff3f02a0 - remote response Based on this you see that reg/reg names property are pretty much useless and should be removed from dt binding document because simply base and source ipi-id and destination ipi-id will tell you which addresses should be used. As far as I know ZynqMP is using the same logic. The only difference is really just different base address for buffers. That's why I think the DT node should be just like this and all addresses Versal versal_ipi { compatible = "xlnx,versal-ipi-mailbox"; interrupt-parent = <&gic>; interrupts = <0 30 4>; xlnx,ipi-id = <2>; ipi_mailbox_pmu1: mailbox { #mbox-cells = <1>; xlnx,ipi-id = <1>; }; }; Where different compatible string will ensure that base address is assigned based on SOC. Thanks, Michal 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 934AAC61DA3 for ; Fri, 24 Feb 2023 08:38:45 +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:In-Reply-To:Subject:From:References:CC:To: MIME-Version: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=DgFZwAtNHHYiLqB0a5ynKZ0ZZy2rHgEW9gI1q72kl8E=; b=sQw/xZMHzwAuwf P1Km+te/VOZaYbvguTuUFRyDI/FQ9g1hDFBR5FW22gQ1gg3PydvM+WtP1eFFI6KkUcBU39Ar/vgMI nLo9wzGKz9umO5PvKrcCAUjXxQsGA8LAucFXvAWlhImQmS1M3jrf71S6sSpQxK7hYynjAoU7BubIb Q2U6/Uj9YZRxwLvpn+nxw6s40hMK0vIif8eqpyYThPOKrjLDEk204OhHrUBsHllEOv390L5ET5wVb XshrwyOX2xMbbK3Y9RjBhovLjSI1Dn+9oAaeXRqkESJukysn7w6DJo0CqXJZnaeztD/rhupM9T/RW clpXVQ/9/5tgClz59K5w==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1pVTaF-001YG0-81; Fri, 24 Feb 2023 08:37:39 +0000 Received: from mail-mw2nam12on2062b.outbound.protection.outlook.com ([2a01:111:f400:fe5a::62b] helo=NAM12-MW2-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1pVTaB-001YEi-A9 for linux-arm-kernel@lists.infradead.org; Fri, 24 Feb 2023 08:37:37 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=IEIiP6svC6AiV8wmYDu/lvedAxA61yuhy4c/fXRi52T0ZYkry0tjyRLpa4j8hxT72LsZKeJEkG9oiTuipsSKVyPtOe3AW9fNiuRBk9tX4Ru3ear3FT4Tt1sAJ7JpRMEDFt5332gRJfZVraN/HQyswHDhWf/+g8QhbIn/Hi6THOU+rP+5tKncEJStTLC0L5MkkcVDpCsokZyWDoELg+D6OQ0isTy3PvC2Rv6Bu+01j0pl42KbNun8kPJ3wpHaERKS67n8bFbgt9tG9MhBb2P4X5dRBqMgeLcalv0AU+P8eITL0UJNc7sBGZWW8xrLGJNEPneT53L3IxZ/AiDexBlx8Q== 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=aFQ7F6lYOK2Ryxr5w3KhSW6CIX3Xln8E7rTXQpepvrA=; b=fUOZp4Mh/hzo6cbb6X35fLV6ighiNbBozB9sKZTnMc/VedCOfRYb9twxa6alKSNJ9DSCuZOEGTgfRPc+PNklKTAaL5eGKUmEQf9B8AtbKqTPD9yo3nAO/0HHTaXGqErgraHQKW4Fy8YR/GlmrHWzBtJ/+d85hK3L71QBuL73e9xQAe7/QfytFcYkRPjl0Wcy4HexB77lO4kpA9LKi1p7hnahnfHN5hQ3PrQl2uO8/IEO1LRWa/dt2gXdEW5ytbZ0x+65PSSTIzLk/kDlqjWOEXfWpWK6YpGuZbWgXG1S/UirrJPgrNwFfZpQEZaXWvQbkyrhJlyxk/FrHJvy4nVcvw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=linaro.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); 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=aFQ7F6lYOK2Ryxr5w3KhSW6CIX3Xln8E7rTXQpepvrA=; b=KP5ly9TBd8N0I2wtjGXHMirhpGZvE/Gs+GvIZEAtMN1u1Vkexo1UFFFQCkLrGC2ayA2CyQ61SrmoAatZBFRG1u7IvGGNEfYNXJXajV8KbcR+/kM6VHZrhEOnLd+qJRPcMsGPNiljh37xJ2mIfZMTchkbYEOTAbkqp9xtbxwq54o= Received: from MW4PR03CA0212.namprd03.prod.outlook.com (2603:10b6:303:b9::7) by DS0PR12MB6464.namprd12.prod.outlook.com (2603:10b6:8:c4::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6134.24; Fri, 24 Feb 2023 08:37:30 +0000 Received: from CO1NAM11FT089.eop-nam11.prod.protection.outlook.com (2603:10b6:303:b9:cafe::93) by MW4PR03CA0212.outlook.office365.com (2603:10b6:303:b9::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6134.24 via Frontend Transport; Fri, 24 Feb 2023 08:37:29 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by CO1NAM11FT089.mail.protection.outlook.com (10.13.175.179) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.6134.24 via Frontend Transport; Fri, 24 Feb 2023 08:37:29 +0000 Received: from [10.254.241.51] (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.34; Fri, 24 Feb 2023 02:37:19 -0600 Message-ID: Date: Fri, 24 Feb 2023 09:37:16 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.8.0 Content-Language: en-US To: Tanmay Shah , Mathieu Poirier , Tanmay Shah CC: , , , , , , References: <20230213211825.3507034-1-tanmay.shah@amd.com> <20230213211825.3507034-2-tanmay.shah@amd.com> <20230222173448.GA909075@p14s> <130e75d3-034e-67a2-0c27-0599a996b20f@amd.com> From: Michal Simek Subject: Re: [PATCH v3 1/3] drivers: mailbox: zynqmp: handle multiple child nodes In-Reply-To: <130e75d3-034e-67a2-0c27-0599a996b20f@amd.com> X-Originating-IP: [10.180.168.240] X-ClientProxiedBy: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO1NAM11FT089:EE_|DS0PR12MB6464:EE_ X-MS-Office365-Filtering-Correlation-Id: c0055a05-02b5-4770-de8a-08db16425dbc X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: JQyvfPTA5BDk82N0LGlkjfDmTuVMC8YM23aNChmGKRAZKMbQZ5S5r/uSAqW7MO7DD82BN6xT5zA20UsZRRPRAhqaSrs36kDQqroxNsLuKMd5zSHDyrR6Eo0M5i4zd20rXkUta9X/yA7/jkYt9nw2GrKP4m4egTU8f650tde5PrDNbR41LV9uQBzEJPyza8Gh5EAuEXErUA+i4XbHmraxJmj0tMCp9XfT/IWvDz1UvMnhmJMTv7ApYQdf9r3zONBhjcFGlQsv/N5GiiYpmA7E3S7ORUMio5yB8o+AK6RvSY2GtyJN+OSzQpnfpLoS2y3nkdmst6EqttcposuBpXhQwdFpgL5Fo8tL9zyEFeOEy4iezOwdgwf6CmdUHWU7EqUKoJ9C7wJScO346uIUrFWENMs9amJkfJ6BuzI2/ApPftYudMfGWjSYZtpPMGDQHLwv1x1DmOE1bvuwVevtAZ0jIrPa2kjcG+CStGMn8K/y9uIFsC7OsOPhivdRJjtmqAnnePLGyrmfBJiiY1W5kZwaIAvnaDovXAhv5SGbiDmyvjVD+pmHEY6A05an6jO3Gv8+E1wuC5pW3hHjxLSPVjEoy7bf95r4rN2/I21N2oDXYhPtcuvfctDh/bNZVMFM8B8tSpr4v/vetPvXROIU7Lx+bSicqdbZ9Y5XEdT/6EGCL/VM/KNw8XtcM9cL5IxpAnpq+cTltAKNZDHR5YcUHPVaJAGpkTSf8QNYdCK5xr27b23u9bPF+Ixs6phCgfOsxVAu3mc6b9fETOY2uhtLy41/n1tT9aOKYXaMmtW0u3w7vE0= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230025)(4636009)(136003)(376002)(396003)(346002)(39860400002)(451199018)(36840700001)(40470700004)(46966006)(478600001)(40460700003)(2616005)(6666004)(70206006)(82310400005)(86362001)(70586007)(31696002)(8676002)(54906003)(6636002)(110136005)(83380400001)(316002)(16576012)(5660300002)(36860700001)(4326008)(44832011)(41300700001)(8936002)(82740400003)(81166007)(336012)(966005)(47076005)(36756003)(426003)(40480700001)(15650500001)(2906002)(356005)(26005)(186003)(31686004)(16526019)(53546011)(36900700001)(43740500002);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Feb 2023 08:37:29.7962 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: c0055a05-02b5-4770-de8a-08db16425dbc X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: CO1NAM11FT089.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB6464 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230224_003735_491697_8F08A30A X-CRM114-Status: GOOD ( 34.57 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: 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-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org CgpPbiAyLzIzLzIzIDE1OjQ3LCBUYW5tYXkgU2hhaCB3cm90ZToKPiAKPiBPbiAyLzIzLzIzIDE6 NDAgQU0sIE1pY2hhbCBTaW1layB3cm90ZToKPj4KPj4KPj4gT24gMi8yMi8yMyAxODozNCwgTWF0 aGlldSBQb2lyaWVyIHdyb3RlOgo+Pj4gT24gTW9uLCBGZWIgMTMsIDIwMjMgYXQgMDE6MTg6MjRQ TSAtMDgwMCwgVGFubWF5IFNoYWggd3JvdGU6Cj4+Pj4gQXMgb2Ygbm93IG9ubHkgb25lIGNoaWxk IG5vZGUgaXMgaGFuZGxlZCBieSB6eW5xbXAtaXBpCj4+Pj4gbWFpbGJveCBkcml2ZXIuIFVwb24g aW50cm9kdWNpbmcgcmVtb3RlcHJvYyByNSBjb3JlIG1haWxib3gKPj4+PiBub2RlcywgZm91bmQg ZmV3IGVuaGFuY2VtZW50cyBpbiBYaWxpbnggenlucW1wIG1haWxib3ggZHJpdmVyCj4+Pj4gYXMg Zm9sbG93aW5nOgo+Pj4+Cj4+Pj4gLSBmaXggbWFpbGJveCBjaGlsZCBub2RlIGNvdW50cwo+Pj4+ IMKgwqAgSWYgY2hpbGQgbWFpbGJveCBub2RlIHN0YXR1cyBpcyBkaXNhYmxlZCBpdCBjYXVzZXMK Pj4+PiDCoMKgIGNyYXNoIGluIGludGVycnVwdCBoYW5kbGVyLiBGaXggdGhpcyBieSBhc3NpZ25p bmcKPj4+PiDCoMKgIG9ubHkgYXZhaWxhYmxlIGNoaWxkIG5vZGUgZHVyaW5nIGRyaXZlciBwcm9i ZS4KPj4+Pgo+Pj4+IC0gZml4IHR5cG8gaW4gSVBJIGRvY3VtZW50YXRpb24gJXMvMTIvMzIvCj4+ Pj4gwqDCoCBYaWxpbnggSVBJIG1lc3NhZ2UgYnVmZmVycyBhbGxvd3MgMzItYnl0ZSBkYXRhIHRy YW5zZmVyLgo+Pj4+IMKgwqAgRml4IGRvY3VtZW50YXRpb24gdGhhdCBzYXlzIDEyIGJ5dGVzCj4+ Pj4KPj4+PiAtIGZpeCBidWcgaW4genlucW1wLWlwaSBpc3IgaGFuZGxpbmcKPj4+PiDCoMKgIE11 bHRpcGxlIElQSSBjaGFubmVscyBhcmUgbWFwcGVkIHRvIHNhbWUgaW50ZXJydXB0IGhhbmRsZXIu Cj4+Pj4gwqDCoCBDdXJyZW50IGlzciBpbXBsZW1lbnRhdGlvbiBoYW5kbGVzIG9ubHkgb25lIGNo YW5uZWwgcGVyIGlzci4KPj4+PiDCoMKgIEZpeCB0aGlzIGJlaGF2aW9yIGJ5IGNoZWNraW5nIGlz ciBzdGF0dXMgYml0IG9mIGFsbCBjaGlsZAo+Pj4+IMKgwqAgbWFpbGJveCBub2Rlcy4KPj4+Pgo+ Pj4+IEZpeGVzOiA0OTgxYjgyYmEyZmYgKCJtYWlsYm94OiBaeW5xTVAgSVBJIG1haWxib3ggY29u dHJvbGxlciIpCj4+Pj4gU2lnbmVkLW9mZi1ieTogVGFubWF5IFNoYWggPHRhbm1heS5zaGFoQGFt ZC5jb20+Cj4+Pj4gLS0tCj4+Pj4KPj4+PiBDaGFuZ2Vsb2c6Cj4+Pj4gwqDCoCAtIFRoaXMgaXMg Zmlyc3QgdmVyc2lvbiBvZiB0aGlzIGNoYW5nZSwgaG93ZXZlciBwb3N0aW5nIGFzIHBhcnQgb2Yg dGhlIAo+Pj4+IHNlcmllcwo+Pj4+IMKgwqDCoMKgIHRoYXQgaGFzIHZlcnNpb24gdjMuCj4+Pj4K Pj4+PiB2MjogaHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcvYWxsLzIwMjMwMTI2MjEzMTU0LjE3MDcz MDAtMS10YW5tYXkuc2hhaEBhbWQuY29tLwo+Pj4+Cj4+Pj4gwqAgZHJpdmVycy9tYWlsYm94L3p5 bnFtcC1pcGktbWFpbGJveC5jwqDCoMKgwqDCoMKgIHwgOCArKysrLS0tLQo+Pj4+IMKgIGluY2x1 ZGUvbGludXgvbWFpbGJveC96eW5xbXAtaXBpLW1lc3NhZ2UuaCB8IDIgKy0KPj4+PiDCoCAyIGZp bGVzIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKPj4+Pgo+Pj4+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL21haWxib3gvenlucW1wLWlwaS1tYWlsYm94LmMgCj4+Pj4gYi9k cml2ZXJzL21haWxib3gvenlucW1wLWlwaS1tYWlsYm94LmMKPj4+PiBpbmRleCAxMmUwMDRmZjFh MTQuLmIxNDk4ZjZmMDZlMSAxMDA2NDQKPj4+PiAtLS0gYS9kcml2ZXJzL21haWxib3gvenlucW1w LWlwaS1tYWlsYm94LmMKPj4+PiArKysgYi9kcml2ZXJzL21haWxib3gvenlucW1wLWlwaS1tYWls Ym94LmMKPj4+PiBAQCAtMTUyLDcgKzE1Miw3IEBAIHN0YXRpYyBpcnFyZXR1cm5fdCB6eW5xbXBf aXBpX2ludGVycnVwdChpbnQgaXJxLCB2b2lkIAo+Pj4+ICpkYXRhKQo+Pj4+IMKgwqDCoMKgwqAg c3RydWN0IHp5bnFtcF9pcGlfbWVzc2FnZSAqbXNnOwo+Pj4+IMKgwqDCoMKgwqAgdTY0IGFyZzAs IGFyZzM7Cj4+Pj4gwqDCoMKgwqDCoCBzdHJ1Y3QgYXJtX3NtY2NjX3JlcyByZXM7Cj4+Pj4gLcKg wqDCoCBpbnQgcmV0LCBpOwo+Pj4+ICvCoMKgwqAgaW50IHJldCwgaSwgc3RhdHVzID0gSVJRX05P TkU7Cj4+Pj4gwqAgwqDCoMKgwqDCoCAodm9pZClpcnE7Cj4+Pj4gwqDCoMKgwqDCoCBhcmcwID0g U01DX0lQSV9NQUlMQk9YX1NUQVRVU19FTlFVSVJZOwo+Pj4+IEBAIC0xNzAsMTEgKzE3MCwxMSBA QCBzdGF0aWMgaXJxcmV0dXJuX3QgenlucW1wX2lwaV9pbnRlcnJ1cHQoaW50IGlycSwgdm9pZCAK Pj4+PiAqZGF0YSkKPj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIG1lbWNw eV9mcm9taW8obXNnLT5kYXRhLCBtY2hhbi0+cmVxX2J1ZiwKPj4+PiDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgbXNnLT5sZW4pOwo+Pj4+IMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgbWJveF9jaGFuX3JlY2VpdmVkX2RhdGEo Y2hhbiwgKHZvaWQgKiltc2cpOwo+Pj4+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg cmV0dXJuIElSUV9IQU5ETEVEOwo+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg c3RhdHVzID0gSVJRX0hBTkRMRUQ7Cj4+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfQo+ Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoCB9Cj4+Pj4gwqDCoMKgwqDCoCB9Cj4+Pj4gLcKgwqDCoCBy ZXR1cm4gSVJRX05PTkU7Cj4+Pj4gK8KgwqDCoCByZXR1cm4gc3RhdHVzOwo+Pj4+IMKgIH0KPj4+ PiDCoCDCoCAvKioKPj4+PiBAQCAtNjM0LDcgKzYzNCw3IEBAIHN0YXRpYyBpbnQgenlucW1wX2lw aV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+Pj4+IMKgwqDCoMKgwqAgc3Ry dWN0IHp5bnFtcF9pcGlfbWJveCAqbWJveDsKPj4+PiDCoMKgwqDCoMKgIGludCBudW1fbWJveGVz LCByZXQgPSAtRUlOVkFMOwo+Pj4+IMKgIC3CoMKgwqAgbnVtX21ib3hlcyA9IG9mX2dldF9jaGls ZF9jb3VudChucCk7Cj4+Pj4gK8KgwqDCoCBudW1fbWJveGVzID0gb2ZfZ2V0X2F2YWlsYWJsZV9j aGlsZF9jb3VudChucCk7Cj4+Pj4gwqDCoMKgwqDCoCBwZGF0YSA9IGRldm1fa3phbGxvYyhkZXYs IHNpemVvZigqcGRhdGEpICsgKG51bV9tYm94ZXMgKiBzaXplb2YoKm1ib3gpKSwKPj4+PiDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgR0ZQX0tFUk5FTCk7Cj4+Pj4gwqDCoMKg wqDCoCBpZiAoIXBkYXRhKQo+Pj4+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L21haWxib3gv enlucW1wLWlwaS1tZXNzYWdlLmggCj4+Pj4gYi9pbmNsdWRlL2xpbnV4L21haWxib3gvenlucW1w LWlwaS1tZXNzYWdlLmgKPj4+PiBpbmRleCAzNWNlODRjOGNhMDIuLjMxZDgwNDZkOTQ1ZSAxMDA2 NDQKPj4+PiAtLS0gYS9pbmNsdWRlL2xpbnV4L21haWxib3gvenlucW1wLWlwaS1tZXNzYWdlLmgK Pj4+PiArKysgYi9pbmNsdWRlL2xpbnV4L21haWxib3gvenlucW1wLWlwaS1tZXNzYWdlLmgKPj4+ PiBAQCAtOSw3ICs5LDcgQEAKPj4+PiDCoMKgICogQGRhdGE6IG1lc3NhZ2UgcGF5bG9hZAo+Pj4+ IMKgwqAgKgo+Pj4+IMKgwqAgKiBUaGlzIGlzIHRoZSBzdHJ1Y3R1cmUgZm9yIGRhdGEgdXNlZCBp biBtYm94X3NlbmRfbWVzc2FnZQo+Pj4+IC0gKiB0aGUgbWF4aW11bSBsZW5ndGggb2YgZGF0YSBi dWZmZXIgaXMgZml4ZWQgdG8gMTIgYnl0ZXMuCj4+Pj4gKyAqIHRoZSBtYXhpbXVtIGxlbmd0aCBv ZiBkYXRhIGJ1ZmZlciBpcyBmaXhlZCB0byAzMiBieXRlcy4KPj4+PiDCoMKgICogQ2xpZW50IGlz IHN1cHBvc2VkIHRvIGJlIGF3YXJlIG9mIHRoaXMuCj4+Pgo+Pj4gSSBhZ3JlZSB0aGF0IHRoaXMg c2hvdWxkIGJlIHNwbGl0IGluIDMgcGF0Y2hlcyBidXQgdGhlIGZpeGVzIGFyZSBzbyBzbWFsbCB0 aGF0Cj4+PiBpdCBpcyBoYXJkbHkgcmVxdWlyZWQuwqAgSSdsbCBsZWF2ZSBpdCB1cCB0byBNaWNo YWwgdG8gZGVjaWRlLgo+Pgo+PiBHZW5lcmljIGd1aWRhbmNlIGlzIHNheWluZyB0aGF0IHlvdSBz aG91bGQgc3BsaXQgdGhhdCBwYXRjaGVzLiBJIHBlcnNvbmFsbHkgCj4+IHByZWZlciB0byBoYXZl IG9uZSBwYXRjaCBwZXIgY2hhbmdlLiBJdCBpcyB1c2VmdWwgZm9yIGJpc2VjdGluZyBhbmQgZmFz dGVyIGZvciAKPj4gcmV2aWV3aW5nLgo+PiBJIHdvdWxkIGV4cGVjdCB0aGF0IHRoaXMgcGF0Y2gg c2hvdWxkIGdvIHZpYSBtYWlsYm94IHRyZWUgYW5kIHRoZSByZXN0IHZpYSAKPj4gcmVtb3RlcHJv YyB0cmVlLiBUaGF0J3Mgd2h5IG1haW50YWluZXIgc2hvdWxkIHNheSB3aGF0IGl0IGlzIHByZWZl cnJlZCB3YXkuCj4+Cj4gCj4gVGhhbmtzIE1pY2hhbCBmb3IgcmV2aWV3cy4gSSB3aWxsIHNwbGl0 IHRoZSBwYXRjaCBpbiB0aHJlZSBkaWZmZXJlbnQgcGF0Y2hlcy4KPiAKPiAKPj4gSW4gY29ubmVj dGlvbiBtYWlsYm94LiBJIHJlY2VudGx5IGhhZCBzb21lIHRpbWUgdG8gbG9vayBhdCB0aGlzIGRy aXZlciBhbmQgSSAKPj4gZGlkbid0IHJlYWxseSBnZXQgd2h5IHRoZXJlIGFyZSByZWdpc3RlcnMg bGlzdGVkLiBCZWNhdXNlIGFsbCB0aGF0IGFkZHJlc3NlcyAKPj4gY2FuIGJlIGNhbGN1bGF0ZWQg YmFzZWQgb24gc29jIGNvbXBhdGlibGUgc3RyaW5nIGFuZCBieSB4bG54LGlwaS1pZCBmb3IgYm90 aCAKPj4gc2lkZXMuCj4gCj4gCj4gWWVzIHRoZSBJUEkgY29uZmlndXJhdGlvbiByZWdpc3RlciBh ZGRyZXNzZXMgYXJlIHJldHJpZXZlZCBmcm9tIFRGLUEgaW4gCj4genlucW1wLWlwaS1kcml2ZXIg dXNpbmcgeGxueCxpcGktaWQgcHJvcGVydHkuCj4gCj4gT3RoZXIgdGhhbiB0aGF0IHRoZXJlIGFy ZSBtZXNzYWdlIGJ1ZmZlcnMgcHJvdmlkZWQgaW4gaGFyZHdhcmUgZm9yIElQSSAKPiBjb21tdW5p Y2F0aW9uLiBXZSBsaXN0IHRob3NlIG1lc3NhZ2UgYnVmZmVyIGFkZHJlc3Nlcwo+IAo+IHVzaW5n IHJlZyBhZGRyZXNzZXMgYW5kIHRoZXkgYXJlIGV4cGVjdGVkIGluIGR0cy4gQXMgcGVyIGJpbmRp bmdzIHdlIGRvIG5vdCBtYXAgCj4gbWVzc2FnZSBidWZmZXJzIHRvIElQSSBJRC4KPiAKPiBJIGFt IG5vdCBzdXJlIHdoaWNoIHJlZ2lzdGVyIGxpc3RpbmcgeW91IGFyZSByZWZlcnJpbmcgdG8gPwoK QmFzZWQgb24KaHR0cHM6Ly9kb2NzLnhpbGlueC5jb20vci9lbi1VUy9hbTAxMS12ZXJzYWwtYWNh cC10cm0vTWVzc2FnZS1CdWZmZXIKCnhsbngsaXBpLWlkID0gMiAodmVyc2FsIGNhc2UpIEFQVQpw bXUxIGhhcyB4bG54LGlwaS1pZCA9IDE7IFBNQwoKQmFzZSBvbiB2ZXJzYWwgaXMgMHhGRjNGMDAw MAoKTG9jYWwgYnVmZmVycyBmb3Igc2VuZGluZyBmcm9tIDIgLT4gMQpCdWZmZXIgMiBzdGFydHMg YXQgb2Zmc2V0IDB4NDAwCgpPcmRlciBpbiBkZXN0aW5hdGlvbiBpcyBQU00sIFBNQywgSVBJMC4u LiB3aGVyZSB5b3UgaGF2ZSByZXF1ZXN0IDMyQiBhbmQgCnJlc3BvbnNlIDMyQiB0b28uCgpJdCBt ZWFucyAyLT4xIC0gdGFyZ2V0IGlzIFBNQwp0aGF0IG1lYW5zIDB4NDAgZm9yIHJlcXVlc3QgMHg2 MCBmb3IgcmVzcG9uc2UuCgpXaGVuIHRoaXMgaXMgcHV0IHRvZ2V0aGVyCgoweGZmM2YwMDAwICsg MHg0MDAgKyAweDQwID0gZmYzZjA0NDAgLSBsb2NhbCByZXF1ZXN0CjB4ZmYzZjAwMDAgKyAweDQw MCArIDB4NjAgPSBmZjNmMDQ2MCAtIGxvY2FsIHJlc3BvbnNlCgpGb3IgdGhlIHdheSBiYWNrIGZy b20gMS0+MgpCdWZmZXIgb25lIHN0YXJ0cyBhdCAweDIwMApJIHdhbnQgdG8gc2VuZCBpdCB0byBB UFUgd2hpY2ggd2UgdXNlIGNoYW5uZWwgMiBmb3IuCkNoYW5uZWwgMiBzdGFydCBhdCBJRCAqIDB4 NDAgPSAweDgwIGlzIGZvciByZXF1ZXN0CjB4ODAgKyAzMiA9IDB4YTAgZm9yIHJlc3BvbnNlCgpJ dCBtZWFucyAyLT4xIC0gdGFyZ2V0IGlzIEFQVSBhdCBJRCAyCjB4ZmYzZjAwMDAgKyAweDIwMCAr IDB4ODAgPSBmZjNmMDI4MCAtIHJlbW90ZSByZXF1ZXN0CjB4ZmYzZjAwMDAgKyAweDIwMCArIDB4 YTAgPSBmZjNmMDJhMCAtIHJlbW90ZSByZXNwb25zZQoKQmFzZWQgb24gdGhpcyB5b3Ugc2VlIHRo YXQgcmVnL3JlZyBuYW1lcyBwcm9wZXJ0eSBhcmUgcHJldHR5IG11Y2ggdXNlbGVzcyBhbmQgCnNo b3VsZCBiZSByZW1vdmVkIGZyb20gZHQgYmluZGluZyBkb2N1bWVudCBiZWNhdXNlIHNpbXBseSBi YXNlIGFuZCBzb3VyY2UgaXBpLWlkIAphbmQgZGVzdGluYXRpb24gaXBpLWlkIHdpbGwgdGVsbCB5 b3Ugd2hpY2ggYWRkcmVzc2VzIHNob3VsZCBiZSB1c2VkLgoKQXMgZmFyIGFzIEkga25vdyBaeW5x TVAgaXMgdXNpbmcgdGhlIHNhbWUgbG9naWMuIFRoZSBvbmx5IGRpZmZlcmVuY2UgaXMgcmVhbGx5 IApqdXN0IGRpZmZlcmVudCBiYXNlIGFkZHJlc3MgZm9yIGJ1ZmZlcnMuCgpUaGF0J3Mgd2h5IEkg dGhpbmsgdGhlIERUIG5vZGUgc2hvdWxkIGJlIGp1c3QgbGlrZSB0aGlzIGFuZCBhbGwgYWRkcmVz c2VzCgpWZXJzYWwKICAgICAgICAgdmVyc2FsX2lwaSB7CiAgICAgICAgICAgICAgICAgY29tcGF0 aWJsZSA9ICJ4bG54LHZlcnNhbC1pcGktbWFpbGJveCI7CiAgICAgICAgICAgICAgICAgaW50ZXJy dXB0LXBhcmVudCA9IDwmZ2ljPjsKICAgICAgICAgICAgICAgICBpbnRlcnJ1cHRzID0gPDAgMzAg ND47CiAgICAgICAgICAgICAgICAgeGxueCxpcGktaWQgPSA8Mj47CgogICAgICAgICAgICAgICAg IGlwaV9tYWlsYm94X3BtdTE6IG1haWxib3ggewogICAgICAgICAgICAgICAgICAgICAgICAgI21i b3gtY2VsbHMgPSA8MT47CiAgICAgICAgICAgICAgICAgICAgICAgICB4bG54LGlwaS1pZCA9IDwx PjsKICAgICAgICAgICAgICAgICB9OwogICAgICAgICB9OwoKV2hlcmUgZGlmZmVyZW50IGNvbXBh dGlibGUgc3RyaW5nIHdpbGwgZW5zdXJlIHRoYXQgYmFzZSBhZGRyZXNzIGlzIGFzc2lnbmVkIApi YXNlZCBvbiBTT0MuCgpUaGFua3MsCk1pY2hhbAoKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgt YXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3Jn L21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo=