Received: by 2002:a05:6602:18e:0:0:0:0 with SMTP id m14csp1857941ioo; Mon, 23 May 2022 05:03:43 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwa52nv03OfQvK9W7tqgo9xp40QGZ/zV60fzH9Lxkmo49laSXzQmDzxQ7UI9+Qs10DdOzNU X-Received: by 2002:a63:7e11:0:b0:3c6:84e3:9c59 with SMTP id z17-20020a637e11000000b003c684e39c59mr19528091pgc.615.1653307423561; Mon, 23 May 2022 05:03:43 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1653307423; cv=none; d=google.com; s=arc-20160816; b=kzQIDnzGfcn5e+xKr8UyUxVS0l6WFmlcBHwoPN8+xtfOTF3xGqT7hCUCF2eGGEN6Ml ZrybFgcK0ATwOuw6ALRnoVaZkFEva6edXpjEo2VneXeiOE0lOncClV+L1i48TUWPuKxB YR5iuZJ64CI6as5r7Ix9exsJFyfsee9JXinZSqTJFuFvy2CChC4+czS8C70fF6sTizg5 jfvifQP8VIICzrVH3Te6aZ0CuuCXMEShLkFXlOef4edPbyRapd0PvH8Zuh+M3PbM56G0 iN7RMwUNS8SyWuIKtZ9FWrQg/AW4Ny6ynRjkFUhZmv0XxZ1JZuKMk11PMb41ys+L+z5V Jssg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:in-reply-to:from :references:cc:to:subject:user-agent:mime-version:date:message-id; bh=+qQzQRsYEb2N/DV6z++Ak+kiQvOzjXpGF8xdiTjUoN4=; b=DkRkHmcmM2bRHEu/KaRq+RIkSZStFpsHZ0fNKxB0JBP8ONa0w9Fb1qW5U2cKC6l+fG fu4uD69/89xeYcwCcgv+sUd305QpjqXQIh2hoURkC6RpITfH5XAJW3oLg+iUdeL0jZ0S A/8Xpag6ccGf/04tMcPNOuSjnD4i1BDmdSlw0yivjFWU1y4KbieDnI0OnYlhsvGfpA3F Ando6D47kH2Mj9LYi9ixh0e+lj1CSpuejkDDqMz6l83363hoJBjutDXlRUvIKHBPqhkQ 1jccnYbl0+GGHzqfmMA8K8AvRBiO+04uYMcPyoJVOMfmCpP/E7P8/3dDpLpAcEsfnIJ9 5+Lg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net. [2620:137:e000::1:18]) by mx.google.com with ESMTPS id 204-20020a6218d5000000b0050d2da2e380si2851521pfy.47.2022.05.23.05.03.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 23 May 2022 05:03:43 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) client-ip=2620:137:e000::1:18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 045202AD7; Mon, 23 May 2022 05:02:49 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235320AbiEWMCn (ORCPT + 99 others); Mon, 23 May 2022 08:02:43 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43416 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235299AbiEWMCl (ORCPT ); Mon, 23 May 2022 08:02:41 -0400 Received: from relay05.th.seeweb.it (relay05.th.seeweb.it [5.144.164.166]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7E10B237FC for ; Mon, 23 May 2022 05:02:37 -0700 (PDT) Received: from [10.1.250.9] (riviera.nat.ds.pw.edu.pl [194.29.137.1]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by m-r2.th.seeweb.it (Postfix) with ESMTPSA id B0E1B3F600; Mon, 23 May 2022 14:02:34 +0200 (CEST) Message-ID: <02ab0276-b078-fe66-8596-fcec4378722b@somainline.org> Date: Mon, 23 May 2022 14:02:33 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0) Gecko/20100101 Thunderbird/91.9.1 Subject: Re: Removal of qcom,board-id and qcom,msm-id To: Krzysztof Kozlowski Cc: agross@kernel.org, arnd@arndb.de, bjorn.andersson@linaro.org, devicetree@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, olof@lixom.net, robh@kernel.org, sboyd@kernel.org References: <20220522195138.35943-1-konrad.dybcio@somainline.org> <53d5999b-88ee-24db-fd08-ff9406e2b7b7@linaro.org> From: Konrad Dybcio In-Reply-To: <53d5999b-88ee-24db-fd08-ff9406e2b7b7@linaro.org> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-5.2 required=5.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,NICE_REPLY_A, RDNS_NONE,SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 23/05/2022 09:21, Krzysztof Kozlowski wrote: > On 22/05/2022 21:51, Konrad Dybcio wrote: >> Hi, >> >> removing these properties will not bring almost any benefit (other than making >> some checks happy any saving some <200 LoC) and will make the lives of almost >> all people doing independent development for linux-on-msm harder. There are >> almost unironically like 3 people outside Linaro and QUIC who have >> non-vendor-fused development boards AND the sources to rebuild the >> bootloader on their own. Making it harder to boot is only going to >> discourage people from developing on these devices, which is already not >> that pleasant, especially with newer platforms where you have to fight with >> the oh-so-bright ideas of Android boot chain.. >> >> This only concerns devices released before sm8350, as the new ones will not >> even boot with these properties present (or at least SONY Sagami, but I >> doubt it's an isolated case), so other than completing support for older >> devices, it won't be an issue going forward, anyway. But there are give >> or take 50 locked down devices in mainline right now, and many more waiting >> to be upstreamed in various downstream close-to-mainline trees that should >> not be disregarded just because Qualcomm is far from the best at making >> their BSP software stack clean. > I actually wonder why do you need these properties for community work on > such boards? You ship kernel with one concatenated DTB and the > bootloader does not need the board-id/msm-id fields, doesn't it? If that were the case, I would have never complained about this! It's the bootloader itself that needs it, you can see it in a "Best match [blah blah] 258/0x1000/...." log line, where it walks through the appended (or otherwise compiled into the boot.img) DTBs and looks for matches for the burnt-in msm-, board- and (on newer-older platforms) pmic-id. If it cannot find these, it refuses to boot with an Android Verified Boot red state and you get a not-so-nice "Your device has been unlocked and the boot image is not working" or something like this on your screen. > > Not mentioning that in the past bootloader was actually not using these > properties at all, because it was the dtbTool who was parsing them. Not sure when that was the case, maybe with very old arm32 bootloaders in the times before I did development on Qualcomm devices. > So > in any case either your device works fine without these properties or > you have to use dtbTool, right? To the best of my idea, wrong :( Unless the vendor modified the LK/XBL code on their own, it looks for a "best match" (but if it's not a precise match, it won't even bother trying to boot, just fyi..), meaning it tries to go through a list of SoC ID and revision pairs (msm-id), board IDs (board-id) and PMIC id+rev pairs (pmic-id) and if no match is found, it doesn't even exit the bootloader and says something like "no dtbs found". And hence, they are absolutely necessary one way or another. Konrad > >> One solution is to chainload another, (n+1)-stage bootloader, but this is >> not ideal, as: >> >> 1) the stock bootloader can boot Linux just fine on most devices (except >> for single exceptions, where beloved OEMs didn't implement arm64 booting or >> something) >> >> 2) the boot chain on MSM is already 3- or 4- stage and adding to that will >> only create an unnecessary mess >> >> 3) the job of kernel people is not to break userspace. If the >> device can not even exit bootloader after a kernel upgrade, it's a big >> failure. > The job of kernel people is to follow bindings and since they were > introduced 7 years ago, I would say there was plenty of time for that. > > If the dtbTool support for the bindings is there, then there is no > breakage, because you had to use dtbTool before so you have to use now. > >> If you *really really really* want these either gone or documented, we can >> for example use them in the SOCID driver, read the values from DTB and >> compare against what SMEM has to say and for example print a warning when >> there are inconsistencies or use it as a fallback when it fails for any >> reason, such as using a newer SoC on an older kernel, without updates >> for SOCID read (which are sometimes necessary, which was the case for 8450 >> recently, iirc). >> >> My stance is to just leave them as is, as moving them anywhere, or removing >> them at all will cause unnecessary mess and waste time that could have been >> spent on more glaring issues.. >> >> Konrad > > Best regards, > Krzysztof