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 2689CC433F5 for ; Mon, 9 May 2022 12:18:53 +0000 (UTC) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id BC08B8416F; Mon, 9 May 2022 14:17:53 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=fail (p=quarantine dis=none) header.from=toradex.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Received: by phobos.denx.de (Postfix, from userid 109) id BDE28839A8; Mon, 9 May 2022 09:38:37 +0200 (CEST) Received: from de-smtp-delivery-213.mimecast.com (de-smtp-delivery-213.mimecast.com [194.104.109.213]) (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 BFDA883DA6 for ; Mon, 9 May 2022 09:38:34 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=quarantine dis=none) header.from=toradex.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=andrejs.cainikovs@toradex.com Received: from CHE01-ZR0-obe.outbound.protection.outlook.com (mail-zr0che01lp2112.outbound.protection.outlook.com [104.47.22.112]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-35-mO-Twkm4MFevLKnta5NDRA-1; Mon, 09 May 2022 09:38:30 +0200 X-MC-Unique: mO-Twkm4MFevLKnta5NDRA-1 Received: from GVAP278MB0929.CHEP278.PROD.OUTLOOK.COM (2603:10a6:710:57::6) by GVAP278MB0104.CHEP278.PROD.OUTLOOK.COM (2603:10a6:710:22::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5227.18; Mon, 9 May 2022 07:38:29 +0000 Received: from GVAP278MB0929.CHEP278.PROD.OUTLOOK.COM ([fe80::d03a:14ba:bd9a:e165]) by GVAP278MB0929.CHEP278.PROD.OUTLOOK.COM ([fe80::d03a:14ba:bd9a:e165%6]) with mapi id 15.20.5227.023; Mon, 9 May 2022 07:38:29 +0000 Message-ID: <3636bdbb-f1aa-7b35-5199-56cff4eb5c64@toradex.com> Date: Mon, 9 May 2022 09:38:28 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.8.0 Subject: Re: [PATCH V2] ARM: imx: imx8m: Adjust thermal trip points for Industrial parts To: Adam Ford , u-boot@lists.denx.de Cc: tharvey@gateworks.com, francesco.dolcini@toradex.com, Stefano Babic , Fabio Estevam , "NXP i.MX U-Boot Team" , Peng Fan , Marek Vasut , Ye Li , Frieder Schrempf , Ricardo Salveti , Michael Trimarchi References: <20220507120440.24240-1-aford173@gmail.com> From: Andrejs Cainikovs In-Reply-To: <20220507120440.24240-1-aford173@gmail.com> X-ClientProxiedBy: ZR0P278CA0159.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:41::8) To GVAP278MB0929.CHEP278.PROD.OUTLOOK.COM (2603:10a6:710:57::6) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 6893dafb-1390-4689-92de-08da318ee912 X-MS-TrafficTypeDiagnostic: GVAP278MB0104: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: wMV2s6Iu4Wb5nYiZGA/E9L5kFm4Zu2i5pYRvG3OVQ055+nKJ3xWRPdNFgZa7o3vZY/Edd+h2PVrCQyeYvnoZrdEP54JlNpKuT7INa42HjEQTN0ygZmfCNtn/zbIvqw1NyOA3v4SOYUIWbhOf5laei/UQlqBl+pX25UeG+CVNanKQY9ll5tf8DbLoetp+xvBZ5m9HNfDrtfUBQtJOzNJ5MIgePjgrgn37BikPv6wXd/TyIi8uggWlTCiqfuuoQs7Fiesv28k4w/lxU3g5BowS4LTjfMENfjpkJGAjrTmc0nSmbXzzBu1UaNzjIvHbytjdLo5fYlORiCfbjN+hH8h0VucPn+T9RtuB4mB2prrG6d3skIttbhffAa6K2bIW64TiwgFjFYkr8vWpjHNgoX4eN7fTcPOkpSzIo8jUfFEO8ftwavHohOaLnmB9crTA0UJzzxr486o9+/nygr9VxIItlTLSTAAl5QPwm3N8qD9pECIgRXUUa8aIv4dSXG/7LhS4zUobSY/uIkM7H2XD2LpoVEVGoepG5efn0ymtxHvM8jtDV/nrbCrHKabenTcSdb86CcbG8oyipQrK4fh8m1VkU+oAJ/ajo0jzF8oaW3TVYVfDMx+s2z2A+5Mv2IUaz5h3YEV8kz8t8iHZ0zB7n3R8UKjquYskeVF+6aFvq/heNqac6abZkW8US5au5VAc5nYTchHtlSInZ8H/jHZsyJ2+jrmNRkEwI81k1GZUYpe5Ifds03NpFgWVsagE6RFoSwJY42/2O+7qDSUVBmwZi3mMeqbk1Gr50cXMpWz0aMrsN2k= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:GVAP278MB0929.CHEP278.PROD.OUTLOOK.COM; PTR:; CAT:NONE; SFS:(13230001)(4636009)(396003)(39840400004)(366004)(136003)(376002)(346002)(66946007)(8676002)(31686004)(38100700002)(4326008)(66556008)(2906002)(7416002)(66476007)(38350700002)(83380400001)(186003)(26005)(2616005)(31696002)(86362001)(54906003)(8936002)(6512007)(5660300002)(52116002)(36756003)(508600001)(44832011)(6506007)(6486002)(53546011)(316002)(32563001)(45980500001)(43740500002); DIR:OUT; SFP:1102 X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?VGcrU0R1cnBpWlh2ZG5QTnR5bmhrUFBvNGFsZVFCbDV6VzVsSWlldGZsWXFI?= =?utf-8?B?YlFOQURWd05YVzR6Wmk4aUNCcmZQYzZVTWVlWEJocjBhS3pDYUwzQmR4a0hm?= =?utf-8?B?aWtaNzczQlI1S2R2MWlBRWF3V05ZYm5TeWJ6VjkxSHBKZGtneU5UemZJRDVP?= =?utf-8?B?dG1Iblo5UStXZUJSZ2RHOXlycDRyTlI0MkduTDlPWjlzN3BiQVBSMXdpVWht?= =?utf-8?B?WnN6MldXdGlkT2dBMzFoWFFMenFac2RDbUg5WFpseG8rZnhVZWZiL3Z5eGtL?= =?utf-8?B?dStnazVwM0dvTStvQVpUMjB6UG1LWUYwVHpVRUdFMzl2Q0pFMDQzc3kwY0hO?= =?utf-8?B?TWtGNTVzMXpGVUJoam1VYTgyTEFacTVwdFJna3JTTWc1eFJjdUwvRFd6VlV4?= =?utf-8?B?Rkk0Y3BYVjVsN3VLbmYrb2lmaFBLMldWRHNEMDdWZHlzZWN3OTVKcDNUZU1H?= =?utf-8?B?UXNuNmN0MFZDNmFRQnR5SjMyVlZ1bUVtSEdUOWFKNG9KZWtRNE5MV2FtTU9T?= =?utf-8?B?K2Vzd1U3NE5vYlRPeDhzdHliTjRKajllTTZPdkE5SkpERnlVTEJERGhkakVT?= =?utf-8?B?TlBKdnN0TjgwamVVZEVMMTJOakFlUkU2a09aVDZqR1hBU0tLYmQ0K21MbjZq?= =?utf-8?B?RDlTNTdqa1dTamY1MkwvdkhSNkd6Mmh0RjRrd0tTcE0yWnZpemh0L1Rqbkor?= =?utf-8?B?cWFaakV5UU9id0JPalcySDFBWHJFUDhjdkc5Sy9yUytOM2VjbVhFL2twbDFY?= =?utf-8?B?UXRxT21tRlozYmowOHRUNXpzUzBLZTIvV054dHUwWEc5eXRnZ0crZGZLVW90?= =?utf-8?B?Zm5WRjZEZjQrM2ZBOGh4K3RpWDZTY1hKMU0vSjJiWnpFT3BEdkxCYzdablRs?= =?utf-8?B?RGtvczl6elp0SzkzTVlhNUxlU3dDU09WNlRRUUV0ejJaZVY4Ym1UY1UwNEhy?= =?utf-8?B?aXNQZDFxM09kRVg5b2Zlb1JOSXh4WTZzUHFOLzRrbTkvTXZQMk5CL3lBWitC?= =?utf-8?B?Q2RCb2dWYzdkbDFBU0J0V21Bem8rRE9Md1lUaG93TEdhRFE2SnNOMm1Wc1ph?= =?utf-8?B?YnFQYWxyL1MxN095enJDdW1Jd0pBeHc4QjVDL3h2SEJWYlNOTlBJV3NJcFZM?= =?utf-8?B?Qm1VZ3NJWmQ4a3NJbjhNVnluQmdhVzRJNDBZNlJ1d25oRFdHS1RYTVRacFVq?= =?utf-8?B?cEtlYkdpUFpWcis1OThLTE15eVByVjQ2SjlaVnBSNVlPYWFNVFE5MFpsRzBU?= =?utf-8?B?ZmdmUjZ4NFJWRmVxWVJ3bnI2OWlpMFJPL2IrK1ErR1l1UDE3Ujk1N0tySk9w?= =?utf-8?B?T3NmQzhxa09rNFRkbUpPdUVjYkJPUldUazR1amJFc0g3eFZ3a201MVB0bGhW?= =?utf-8?B?UnVWRHVneXdyK3FGR3NRRDRCR0lETkdaWHVtam1oeFc5bm9FZE43bTdzM2ZK?= =?utf-8?B?QmNTK0pVYTdDYjlwMDFQN05YNEtPQjZnUFZzanJiT09IK3MybUM5WWZVUzRO?= =?utf-8?B?OW1SbDc3NnhTZnRSeDREQnd5WWJLUlIvSjE2MDF2SmtqdHU0dW11ckVXVm9k?= =?utf-8?B?MVhiQzcvSGFkdUJIOHpZNHhFdGtVK0tRaVRWN3BpNW5ETlNocWhVdEN0YzNP?= =?utf-8?B?ZWQ3YnBSd01OZTF5Rks1UHVJcGM5TnpXUUkzcXRneVlNMkM5RjJLdVYwcTM5?= =?utf-8?B?eGlaM0IvTW94bmJaZkhRS21yNWhTRDdrVnhrc2lZY1VMVTZJL3pQTzBINUZu?= =?utf-8?B?cVVsYTlvRlVuVkRYNnkwcWtMUmdJeEZCUGhxcUhoTFUrbEg5OHpDakN5RlJR?= =?utf-8?B?TGJqMXovYUxoNDRPZExhRVN2dUJqYWwrQVl6eTZjdzNGNFVFbmxGd3d0SVR5?= =?utf-8?B?MG51WGFxTkQ2Z0tjM09XY2Yxc3F4UDhycVo2WE5rRWtWZEN1U3B2T2pCMlFL?= =?utf-8?B?M3ZsaTlaVlpJdkttdExFWXREamRyeTEybUFwSHQ1VkNqWUNRMTVqeVFac2dC?= =?utf-8?B?a1owVTZWcU85MmwvVC94aVZsVVZyR2xVMDFNOTZwTUlYNG5SNDhPODhsY3M5?= =?utf-8?B?dnZmWHBETnpxZG1teHU4T3E5L3VWRkh6bXljSDhmT0RFU3VRVWUwZ0hCSzQy?= =?utf-8?B?T0xPRGV3K3lROVltRGQrY3RsZS81aEVmckxobEo5Y013ck94UCt6SkkydXRK?= =?utf-8?B?T3JnNmVEaTdrWVA4UlA5dEFtU3N3bjJ6eDZzNmQraGc2R1M3akJaWmNKSlJL?= =?utf-8?B?WlV4Nm1JZXVlK2JQdGNFdUlkdnJrUDAyTW9JUzV5VHpzTlpTRjArQytZY3d0?= =?utf-8?B?NExGZm80YTZXaVBiVVl6QU9mbVN1Y0pmK2RFVnpQbkZraEYzZ0NLODkvMHVR?= =?utf-8?Q?khvV5ttDOpoBImPvlKvMqrjFV70oVOt4AC1XD?= X-OriginatorOrg: toradex.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6893dafb-1390-4689-92de-08da318ee912 X-MS-Exchange-CrossTenant-AuthSource: GVAP278MB0929.CHEP278.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 May 2022 07:38:29.3022 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: d9995866-0d9b-4251-8315-093f062abab4 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: UoDQJqEJ+vnk8KjMWBQNjCMdzUQYSvgjvnv+Yv+KQW94pCklzKp2b7XRlRYUheJ8NS3X2R9yo1SvYaHbVTWggRYV+h3Kb3m5F0dLBX42DzA= X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVAP278MB0104 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CDE13A77 smtp.mailfrom=andrejs.cainikovs@toradex.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: toradex.com Content-Language: en-US Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: quoted-printable X-Mailman-Approved-At: Mon, 09 May 2022 14:15:58 +0200 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.5 at phobos.denx.de X-Virus-Status: Clean Hi Adam and all, Thanks for your work. I was about to send a similar patch by myself, but=20 I came up with slightly different code. I'm sending my version for=20 downstream version of NXP (should apply with minor conflicts to=20 upstream) at the end of this mail. Plus some code review. On 07/05/2022 14:04, Adam Ford wrote: > If the thermal sensor is enabled in U-Boot, adjust the cpu-thermal Should be not only for `cpu-thermal`. See below. > V2: Switch the check from looking for industrial or checkoing for > anything but commerical. This expands the trip point updates > other grades as well. Typos: checkoing, commerical. > +#include Not needed if you drop temp grade check. See below. > +#if defined(CONFIG_IMX_TMU) I believe this is needed only if you do the temperature reading.=20 get_cpu_temp_grade() does not require this. Please remove. > +=09nodeoff =3D fdt_path_offset(blob, "/thermal-zones/cpu-thermal/trips")= ; This is enough for all variants except 8MP, which has 2 temperature=20 sensors: `cpu-thermal` and `soc-thermal`. Both needs to be updated with=20 equal trips. > +=09/* Only update non-Commerical grade parts */ > +=09if (get_cpu_temp_grade(&minc, &maxc) !=3D TEMP_COMMERCIAL) { As others said, I would remove this check, as I don't see any issues if=20 code would set trips for a commercial grade as well. This implies=20 removing the include I mentioned above. My version which I was going to sent (after rebasing) is below. Feel=20 free to modify/rework/adjust your patch with or without parts from my code. >> Are the industrial and automotive trip points identical ? > > I do not know nor do I have any to test... After you're done with the new patchset I can test it for you. I have=20 access to commercial and industrial variants. Best regards, Andrejs Cainikovs --- diff --git a/arch/arm/mach-imx/imx8m/soc.c b/arch/arm/mach-imx/imx8m/soc.c index=20 e93ecd28467ccc33ab35f0073840963eb3a01800..d4438b78887b91c600aaf22db47ef8985= 462ccd8=20 100644 --- a/arch/arm/mach-imx/imx8m/soc.c +++ b/arch/arm/mach-imx/imx8m/soc.c @@ -1001,8 +1001,52 @@ static int disable_cpu_nodes(void *blob, u32=20 disabled_cores) =09return 0; } +int fixup_thermal_trips(void *blob, const char *name) +{ +=09int minc, maxc; +=09int node, trip; +=09const char *type; +=09int temp, ret; + +=09node =3D fdt_path_offset(blob, "/thermal-zones"); +=09if (node < 0) +=09=09return node; + +=09node =3D fdt_subnode_offset(blob, node, name); +=09if (node < 0) +=09=09return node; + +=09node =3D fdt_subnode_offset(blob, node, "trips"); +=09if (node < 0) +=09=09return node; + +=09get_cpu_temp_grade(&minc, &maxc); + +=09fdt_for_each_subnode(trip, blob, node) { +=09=09type =3D fdt_getprop(blob, trip, "type", NULL); + +=09=09temp =3D 0; +=09=09if (!strcmp(type, "critical")) { +=09=09=09temp =3D 1000 * maxc; +=09=09} else if (!strcmp(type, "passive")) { +=09=09=09temp =3D 1000 * (maxc - 10); +=09=09} +=09=09if (temp) { +=09=09=09ret =3D fdt_setprop_u32(blob, trip, "temperature", temp); +=09=09=09if (ret) { +=09=09=09=09printf("Could not update thermal trip\n"); +=09=09=09=09return ret; +=09=09=09} +=09=09} +=09} + +=09return 0; +} + int ft_system_setup(void *blob, bd_t *bd) { +=09int ret; + #ifdef CONFIG_IMX8MQ =09int i =3D 0; =09int rc; @@ -1128,6 +1172,16 @@ usb_modify_speed: =09=09disable_cpu_nodes(blob, 2); #endif +=09ret =3D fixup_thermal_trips(blob, "cpu-thermal"); +#ifdef CONFIG_IMX8MP +=09if (!ret) +=09=09ret =3D fixup_thermal_trips(blob, "soc-thermal"); +#endif +=09if (ret) { +=09=09printf("Failed to update thermal trip\n"); +=09=09return ret; +=09} + =09return ft_add_optee_node(blob, bd); } #endif