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 phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id C81F3C001B0 for ; Mon, 24 Jul 2023 06:57:01 +0000 (UTC) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 0A6D786834; Mon, 24 Jul 2023 08:57:00 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (1024-bit key; unprotected) header.d=amd.com header.i=@amd.com header.b="pG9IkVRY"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id E702D8682C; Mon, 24 Jul 2023 08:56:58 +0200 (CEST) Received: from NAM12-BN8-obe.outbound.protection.outlook.com (mail-bn8nam12on20628.outbound.protection.outlook.com [IPv6:2a01:111:f400:fe5b::628]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 4E20A86847 for ; Mon, 24 Jul 2023 08:56:56 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: phobos.denx.de; spf=fail smtp.mailfrom=michal.simek@amd.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=nNVwg2V1WOFYSMM4HpnpVXTUTREf/b5q4J8BTbleETCV5MAm/HJKHx5drmrmX9RLLYSae1MPdpWwpXVqWVzrp3fFu81k+JrmtDBCPVzOBbaQuUtTVYfHg/dDk5KJZ1lnAEFdvCPDcFdtxmttEl83NpbSCS5oAJTOvAt/rNIWOttfJy1smwja5FzHvaskUIPLifMeM2vzC31yevBuyvLGU3MxWDzEVVXXbJB+HD2fgsKc/2nm3PM0yEJ0+y9y3RDbMI0cowjnsSSRo26hZR++IcAZXfHFcaexTzBywl+0nM1SpbQ7j53E2VLITm+8j5SRBw6dYfDgzV5NQRsuRlbKJA== 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=GFwI2N9koYJbg4890+euZcmOs0eMr1SRA3T1J7aux14=; b=Dk7NEK7QGOUH9ljHjIRTdYhFAXe+V5s25TzskWWJR2WkQ5NBOYchFqKiUT7DJTrZs5hez1j/zhGIGntY7wt5gzBYSRYYB3iKCDoDqfw1RXNRZ5Oo71gXFyPtKTkPRfAYGETjlzQfcgVdrWvUjuGOoZkxFdMMdHPPeQcp3gTtjdf/++KtIkpYtQmb18sO5yHWtbrQMlUOpw4y4393VBiSMEF0k5p2GWZ+X05DkQKD2wKKl/mrVrw0JM7BNYyZeU3Q/dPvrmpbFt2xg2ZJOmF76QRu7ZrIzBfPuKxN/ET7i7Vm/uFaYpXaaNCzeIJRqbSma4zduYiWpHgJckU+f9Zqmg== 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=GFwI2N9koYJbg4890+euZcmOs0eMr1SRA3T1J7aux14=; b=pG9IkVRYbtIxraf8niWnt/oZQMmdD99yzq7b7JARZMTfFfpnVMAlcARlIE655misV6dEpRk7Y5l+nul0M8VRG3t8MFKwfMji34OAMUJp3NuHo/xHtSmsw7NL+6JxuFA9tgNHGF1wAmJEb9mbgoW3skDOSUPd4ZpIps+eF0zPK5M= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=amd.com; Received: from BYAPR12MB4758.namprd12.prod.outlook.com (2603:10b6:a03:a5::28) by DS0PR12MB7582.namprd12.prod.outlook.com (2603:10b6:8:13c::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6609.32; Mon, 24 Jul 2023 06:56:51 +0000 Received: from BYAPR12MB4758.namprd12.prod.outlook.com ([fe80::be39:45a4:cd9b:4684]) by BYAPR12MB4758.namprd12.prod.outlook.com ([fe80::be39:45a4:cd9b:4684%3]) with mapi id 15.20.6609.031; Mon, 24 Jul 2023 06:56:51 +0000 Message-ID: <9cf8cfd1-c0fb-8cd1-8f10-5562d25d2de7@amd.com> Date: Mon, 24 Jul 2023 08:56:47 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.13.0 Subject: Re: [PATCH v5] event: Add fpga load event Content-Language: en-US To: christian.taedcke-oss@weidmueller.com, u-boot@lists.denx.de Cc: Christian Taedcke , Simon Glass References: <20230720072724.11516-1-christian.taedcke-oss@weidmueller.com> From: Michal Simek In-Reply-To: <20230720072724.11516-1-christian.taedcke-oss@weidmueller.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-ClientProxiedBy: FR2P281CA0007.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:a::17) To BYAPR12MB4758.namprd12.prod.outlook.com (2603:10b6:a03:a5::28) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BYAPR12MB4758:EE_|DS0PR12MB7582:EE_ X-MS-Office365-Filtering-Correlation-Id: f304ee08-dd52-4cae-9b2f-08db8c132883 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: sWFXeFYqdRzfYz0cC08d4GzLKWnAY2HJfii3z51qPdS7w/uOPwGBegnhJamikUm583accnh3/5HR66V9iucSSqJjaa7abTclWCbZ9AVX6ujJYNDkJlJl0l56D36ZmP7th0WEL6byJEC2B2eiLJGgk3Zkp+gq4wHPbeNqqQ51fsklvkuox2lkPZCM5IYvTMoGZPDwvheQrEfc3YRwHM1h/tM4Mrf+3Bi38RJZTU5d3TKvfpgHKUW2/tR129Z/ulY95vOtiO6kFKEFT+stl8ouMiTyg/xlmV1BvXwZBId3+P0D7w3te3bjYLfsgUAzdCY1OhtBWIVHHV8Gyt/+lDZT5wc5QhiE6JKZpBKztnrSFVsQby+P7EVluIH+dzUhH3dwMhJyYlirCdDnZFo8mrKDoQ8bXij+5IdXY00TNrnbPS+qbRP3SQkorJPHNo1dburJJNakmFsbBt3RbRVk95MvwBjRHiOHDLjRqKy2+HMrGrHMqojYeN55ditmzJgnMuTKHedMGSJeQ4cRuC529/YBViUXhzSnNXlTLYfotmiELFL2G0p0SkjKAmAOGCgRj1QJG3t/NcnENJOkx2iDz6a0TNPtIoLXy+rPOgD5s/xKGSFZwaSBPR4gsqptGm2XyxUIftNv0KIE4NxFBGkvoZ2MbQ== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BYAPR12MB4758.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230028)(4636009)(346002)(396003)(136003)(376002)(39860400002)(366004)(451199021)(38100700002)(53546011)(186003)(86362001)(6506007)(26005)(83380400001)(31686004)(31696002)(2616005)(6486002)(6666004)(6512007)(66476007)(66556008)(66946007)(4326008)(316002)(54906003)(41300700001)(5660300002)(478600001)(44832011)(8676002)(8936002)(2906002)(36756003)(43740500002)(45980500001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?N3NrU2RiZTM3M0pqaWpLQUlxMFZRa01PTHQzdDRFdDRpbXMyMXQvRkFuMXox?= =?utf-8?B?V2tDWUlsMzFKRmdybHZxQkFPYzVLSzNuVGN6c3A1Kys5WlpCRjhkYnBYTkJM?= =?utf-8?B?bGxqdXlZVDhmYzhBeHBDUGlmMFBweElTeER4MWwrQVh2NmxHcjAvUlFYRkVR?= =?utf-8?B?TmhrUG9WbVYxSXdqbWdHZ0RrY2o3SGZpZitjaUVrVGlmOGFVTVZlSXY3NUhZ?= =?utf-8?B?S1F4N0FaSDBFSHZjUURZc0w3Z1RiYjZhUEFJdDFpcnVjN0lpcmtNVWN2TTZ5?= =?utf-8?B?VG55bjkyVTBPYWxPOVg0bXhCQytUeVBFRURzY2tmSGhPdGNyODUxcHdCOVd0?= =?utf-8?B?ZkRFN1hNTTlockQ2R1Y4Z1ZaTU0wdmZkZmZrR3dGVFlUdWcrU0FZMEZsTFNj?= =?utf-8?B?UTlUR21NcERsWDhhM0FibGVQMU9EMGVyTzBNQlhnQ0drNGNTUC94VGc2TWU4?= =?utf-8?B?ODRxREJ3aHR5d2FlM2ZkdGZ3bG81VHhKZzVlT2hGTll2cTUrZ3ZyWnByUmtG?= =?utf-8?B?cDgxbWxwTnBxRUNoUEIzNndzVlVIL2ptN3RRMU5salhNQk5GYTM4eHR2UHFn?= =?utf-8?B?MHp4ckN4TnlZSkpyNUVxaEJIbUdPYkhVNkhXSU5jK0JVZXlVb05RK1JWWVlE?= =?utf-8?B?R25mRjFlcDdvWitMai84YlcvZEU4dDRHWkRJaGNhT0tvWGlHM1lnSFNRcDhn?= =?utf-8?B?ZGZySExhV0hyNjluQ0VLalhOZWNRVzV2bTZnaWZOckY5RVNzUTc0UlJpb0hT?= =?utf-8?B?M09jbEJCZkMwZEJmZHA4S3hIbTNtN3dvMEs2YWNnZ1B4ZjJzVFF2c28zTGtP?= =?utf-8?B?Tmt4aHMxSUx3WkdzRFg4QkNHNXJsbkpCOExwRUhCT2FwRGV4NGE0T2N3OWJi?= =?utf-8?B?VEhsNE1kRDhrRE0za0pPaEo2UFZlUnVwNlBmaFdlL1cxc2twNzl1eW1oSmJl?= =?utf-8?B?QXNNTHlrZ1JLQm1WNFFiVFMxRnVkQk5aQVI0WTJwaVgycHdHeG5CclV4N3o0?= =?utf-8?B?WDVzb1ZRWHpXMlkzNFdEYTNpU3ZGMHBnRTlEVlRMdWY5MkQ0VE15SWpzc0lO?= =?utf-8?B?WkFuN1FYS2prR0FGbWVid3E0RUZvaXBLeFp2OUxnaUtvbTN2YnYxT3Q3dTdm?= =?utf-8?B?VFBQbkdMdXdHUk84aVZZdUNCVmxyUWtnQjFkZXI0clFnUUQ5ak5XRE0wS0k4?= =?utf-8?B?c0NCSG9Pd1J1c1hmZWZndlBFTFdUN2l1Mk14V2FmU2FDUjRQQXVtYjBuRkhB?= =?utf-8?B?ejFsc3FWdE9IVFFsNFdjZlhBVXJzRnB2dFhlVXlGcE5DY1A4WEZPMlNGS2Vx?= =?utf-8?B?ZVR5aWxsVHA3TWdvQXNEbWlXazRjSVhVUWQxbVNLKzNoQmFyMTNtZDlmTjB1?= =?utf-8?B?akxUUm9DdDJTY1VKNkttWDZzUCtOYk1BVTltQmI0TnpIRkExcGozTWx2UnFY?= =?utf-8?B?eUNwNVVIVXNxZDg2RDQyVG5HeTYybFVSRXFiSWlHREhBclNFVFc0K0xYMzVl?= =?utf-8?B?MUlBbXNldnRvc015bUtmS2hQRTk5K1pUWkVnSkNSd0VLVmo1R2VacDRORDRJ?= =?utf-8?B?ZmdGSURSbGl4YmtvajFTQU1zRGFOc0NCUnBzV1pteWtZalJmQW5ZOU1CZTRT?= =?utf-8?B?djY4YTdrZ3FOSFdER0VWUkIxU1VvNkEwMUdGamdkbTFvUzJNcFpqNUxtZVk5?= =?utf-8?B?R1JxeHlLcEQ1L29aWGlMTnNsdThFckdOemEyMmtsMnhMdFVtYThrTkNCTjJS?= =?utf-8?B?ZzVFeGVVd1dzVEZvYVNNemNIUThyRWF4N3BVd29BclhCVzBIWHRkUzJNaWcr?= =?utf-8?B?WGt4K0lwZ2p4SWMzZytXcEFmZktEd2lkNXJzN2orakY5YmlVbUxYeWdOYm5l?= =?utf-8?B?ZklTV3JVUzYxYmMwOVd5aFc5RGtWcTdWaWJaM0J0bW9kb2JLdHlPYlYxM0dv?= =?utf-8?B?emh3dWtPOGNtUDJYNXMxbDZPQ0wwV0JKazlkeXMrTVJKSWdjRjZKdytkMmoy?= =?utf-8?B?OVZod3pVV242ODc4bnJsdGVOck0rd0tHNVhzUmlIbklXSlB3L1lPRFRhVTY4?= =?utf-8?B?OW9jRjcrS3pESUZseDROVzFWTEpiQ3dSUFpMV0FocTQ4aTRKTG5DTVZveDV2?= =?utf-8?Q?luBWr9/BBzYlvrYTFJanXlJ+D?= X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: f304ee08-dd52-4cae-9b2f-08db8c132883 X-MS-Exchange-CrossTenant-AuthSource: BYAPR12MB4758.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Jul 2023 06:56:51.7746 (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: 4N84NsTesICcRrY4W1DsYTxxiObf8DcnZGKXSOVJGHFj48oPTlN+SmlX0Gt2b1Zm X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB7582 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.8 at phobos.denx.de X-Virus-Status: Clean On 7/20/23 09:27, christian.taedcke-oss@weidmueller.com wrote: > From: Christian Taedcke > > This enables implementing custom logic after a bitstream was loaded > into the fpga. > > Signed-off-by: Christian Taedcke > Reviewed-by: Simon Glass > --- > > Changes in v5: > - remove changes from kmcent2 board file > - add missing include to event.h > > Changes in v4: > - add include common.h to kmcent2 board file > > Changes in v3: > - replace #if with if > - remove previously added printf > - return notification error from fpga_load() > - fix static_assert checking event name list > > Changes in v2: > - replace __weak function with a new event > > common/event.c | 3 +++ > drivers/fpga/fpga.c | 20 ++++++++++++++++++++ > include/event.h | 17 +++++++++++++++++ > 3 files changed, 40 insertions(+) > > diff --git a/common/event.c b/common/event.c > index 164c95f8f5..20720c5283 100644 > --- a/common/event.c > +++ b/common/event.c > @@ -36,6 +36,9 @@ const char *const type_name[] = { > /* init hooks */ > "misc_init_f", > > + /* Fpga load hook */ > + "fpga_load", > + > /* fdt hooks */ > "ft_fixup", > > diff --git a/drivers/fpga/fpga.c b/drivers/fpga/fpga.c > index 7f6b6bc73a..81e6d8ffc0 100644 > --- a/drivers/fpga/fpga.c > +++ b/drivers/fpga/fpga.c > @@ -244,6 +244,21 @@ int fpga_loads(int devnum, const void *buf, size_t size, > } > #endif > > +static int fpga_load_event_notify(const void *buf, size_t bsize, int result) > +{ > + if (CONFIG_IS_ENABLED(EVENT)) { > + struct event_fpga_load load = { > + .buf = buf, > + .bsize = bsize, > + .result = result > + }; > + > + return event_notify(EVT_FPGA_LOAD, &load, sizeof(load)); > + } > + > + return 0; > +} > + > /* > * Generic multiplexing code > */ > @@ -251,6 +266,7 @@ int fpga_load(int devnum, const void *buf, size_t bsize, bitstream_type bstype, > int flags) > { > int ret_val = FPGA_FAIL; /* assume failure */ > + int ret_notify; > const fpga_desc *desc = fpga_validate(devnum, buf, bsize, > (char *)__func__); > > @@ -284,6 +300,10 @@ int fpga_load(int devnum, const void *buf, size_t bsize, bitstream_type bstype, > } > } > > + ret_notify = fpga_load_event_notify(buf, bsize, ret_val); > + if (ret_notify) > + return ret_notify; > + > return ret_val; > } > > diff --git a/include/event.h b/include/event.h > index fe41080fa6..daf44bf8a8 100644 > --- a/include/event.h > +++ b/include/event.h > @@ -11,6 +11,7 @@ > #define __event_h > > #include > +#include > > /** > * enum event_t - Types of events supported by U-Boot > @@ -31,6 +32,9 @@ enum event_t { > /* Init hooks */ > EVT_MISC_INIT_F, > > + /* Fpga load hook */ > + EVT_FPGA_LOAD, > + > /* Device tree fixups before booting */ > EVT_FT_FIXUP, > > @@ -59,6 +63,19 @@ union event_data { > struct udevice *dev; > } dm; > > + /** > + * struct event_fpga_load - fpga load event > + * > + * @buf: The buffer that was loaded into the fpga > + * @bsize: The size of the buffer that was loaded into the fpga > + * @result: Result of the load operation > + */ > + struct event_fpga_load { > + const void *buf; > + size_t bsize; > + int result; > + } fpga_load; > + > /** > * struct event_ft_fixup - FDT fixup before booting > * I forget to reply that I applied this patch. Already merged to main repo as a1190b4d6a9bf3a45038e3eba4a11de4be2b1cca. Thanks, Michal