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 C48C0C77B73 for ; Wed, 19 Apr 2023 12:34:15 +0000 (UTC) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 373428626B; Wed, 19 Apr 2023 14:34:13 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=quarantine dis=none) header.from=suse.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; unprotected) header.d=suse.com header.i=@suse.com header.b="XiCNgWDm"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id EE3B785BD0; Wed, 19 Apr 2023 14:34:11 +0200 (CEST) Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05on20614.outbound.protection.outlook.com [IPv6:2a01:111:f400:7e1a::614]) (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 055B985CA1 for ; Wed, 19 Apr 2023 14:34:08 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=quarantine dis=none) header.from=suse.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=mbrugger@suse.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Hn+Jh7jBrZP2FEr8getY7GSKMRuJAS1v9FhpH+PYxYjfTOo67hDZqbAnFLviPopsiw/UCml4ix6E2vjA32L5v6z0HdGMCkgKLKFx+RbUwrZfybKHWp7CT+EMnMPn6LHdQ/I/h72cE7ldocdkpIv+8i7NURtMVjQuq0sSG2FDdT9dBxdfU0hcvdPttmadaXQ3J51XAVmjUe1ekZQXmJxI9k90CV0VDmYNwiIkC5P69F/XqGyBsBX5S4U0HMnGHE61h78jTqCp4qDcbwPOz2Alyp/q3TH2fNbhqONXOXF3Zskf0/yHw5tRK15+8IGPjIF3Ks3yUZ2kj4TyPbdvQ2xFlg== 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=mjCM8VWic9kwrtbogs1FhRHSW3+udLVmsrV52E4aVYA=; b=DTFXPxIlNirjkiclh8/xjLhxbcyjlz4BZN2I9RMGQvUjCR8yYhPPj8IFHc45Uw4ZVQPKKoxsLcKhfuNRNuRWwPHdY+cmSacXNKc7jawpmxmOMlv16zIwpHZoC/0cKPbzuFcl1hxhJkyfaD9ZQBX5ahn0JapTlP5oqV4KgCkCjlBQ51aDcIRfDGYNBcMXURCf0RejVs6KxlMuFPaigD3zPyLJ6Dwcuz1uRSvgI0qClTrX8uJ6cr+m7MiWlydYXXbumgI7KfWSOGjKZLL1WeYKYe1Qur+QbgV68wl7L2o02IWS0/Lasp+tZ3RkZuvJQfh2rJtuzFpYTLGpCvIFt2lT3g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=mjCM8VWic9kwrtbogs1FhRHSW3+udLVmsrV52E4aVYA=; b=XiCNgWDmkDJ+JhQcwulQ5VuHtUm2Rdmg+Yf4JXxyoi0wBRdx2cf89yOCINq8mmiRQWU06b/P55081YzC44u7wjbvBWq26uVvjXSgtSh2/3jS+GI0Ozqs0mnpuf+zUdwdhiOqk8RfCewjhNMvV983WX0YdnBaPcW6hx8xf9ICxQG8yP5E+FaqkwYmzWiROU/lfeHJDfUOyOpRCsoTbVz7XYuB8kSkH0/wamFzO1mBNoOGfXAcqbs8rG6u515BC4zZ7BdfewvXq2SrylznvYoLOzBe/CwFOIzOkKkBPlii/ukQq4z9zDP5sRDdjH2Gc6b2dGOM49ReMaeneNm495ir9w== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Received: from VI1PR04MB5070.eurprd04.prod.outlook.com (2603:10a6:803:57::16) by VE1PR04MB7247.eurprd04.prod.outlook.com (2603:10a6:800:1a2::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6319.22; Wed, 19 Apr 2023 12:34:05 +0000 Received: from VI1PR04MB5070.eurprd04.prod.outlook.com ([fe80::4fcd:4d1d:14ec:1ea0]) by VI1PR04MB5070.eurprd04.prod.outlook.com ([fe80::4fcd:4d1d:14ec:1ea0%7]) with mapi id 15.20.6298.045; Wed, 19 Apr 2023 12:34:05 +0000 Message-ID: Date: Wed, 19 Apr 2023 14:34:03 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.6.1 Subject: Re: [RFC] riscv: visionfive2: use OF_BOARD_SETUP Content-Language: en-US To: Torsten Duwe , yanhong wang Cc: u-boot@lists.denx.de, Rick Chen , Leo , Lukasz Majewski , Sean Anderson , Lee Kuan Lim , Jianlong Huang , Emil Renner Berthing References: <20230419112801.GA1907@lst.de> From: Matthias Brugger In-Reply-To: <20230419112801.GA1907@lst.de> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-ClientProxiedBy: FR2P281CA0148.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:98::6) To VI1PR04MB5070.eurprd04.prod.outlook.com (2603:10a6:803:57::16) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VI1PR04MB5070:EE_|VE1PR04MB7247:EE_ X-MS-Office365-Filtering-Correlation-Id: 7db49e22-632f-40cc-7220-08db40d25cfb X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: TcT7jkDtrmXdcqIr5cdRvMwIbjKDbQFg/hGIlgBbAt6gVHNu+GQgcbXKz0ohLqneyPFmpeeXnHTYY+I9Yn7cofw8xom6yeegbpabrKfbCMDmCL4rWQ8AUTIrTm3NHPlymaSLe4UTPAaF8oQ6BC/7V7AszeQzfRjxics9ocH7LKJODmiAv4r9XR2Bt3okk554gSBcCNrXtTqPJGxtLCuDH+dBuKMhXopat8P1OVypHZC8pcourdajtEokrLE2hcSuTdIypFf6JGYIk4+ALVqNpbIKfUsnq7WWvco6GjPrmQIn79bSFc2cJ3hk+FReOhE99BQKN1l65vEo1K5i3QhWZbyGcxUqVqwzgAfducBYZ3Zl4eSDxKW9rguNlw01KyJHj3dEIPw4a9wpbKgj4I1aEa9aZwSvO0HSXP4gEULz1GbdXmGqDvLwdWZUiXdxk586AhcVP2P7AtKPARGSigsVFNvbt++AR7kfN5ABkCDceZHZ2+s/kuJWaZv+eNrMABbS+nr61PBRMHju6S2GAhKz6DVceFeifvRFN7DnPCjdb94qWppvi6kcAzOF54+xXk8n9pK5bqHEvWh4XArTzcCyMIvR4FO7bfr6RiwlY9lZhcLyu+rB6HQOWJEZ7AuoWMnVgKUHT6AdEOSBSx1kNEfESQ== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:VI1PR04MB5070.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230028)(366004)(396003)(39850400004)(346002)(136003)(376002)(451199021)(110136005)(54906003)(36756003)(31696002)(86362001)(478600001)(41300700001)(8936002)(8676002)(38100700002)(7416002)(5660300002)(2906002)(66476007)(66556008)(66946007)(4326008)(316002)(53546011)(6506007)(6512007)(26005)(186003)(6486002)(2616005)(31686004)(45980500001)(43740500002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?MkNiMGZ6akgyaUVjZDBWOXJNK3dha2ZIYllYR3A5NU9PUzRSdUxQdi91ZkdC?= =?utf-8?B?ZGxaUjBRSU9TN3k5Rzd4L2swVkl2YjJKSy85QnFYZGkyL2lhZ01CYlRML3Nh?= =?utf-8?B?blJHYnFYVUgycUk2cWhwemZweC9QMVN1UHgyRW5kclRQOE1wY1ozLzFjWWZa?= =?utf-8?B?Qlo3aEFwaFdnRnRSQWVuakRueFl5bXhzUUw4VUFXQUUrdkFPTDlMQ3hwalFN?= =?utf-8?B?N0dVa2M5TW15cjN1dzFyRFd6V0hWYTd2SDNhR1kxR211Uks5ZFdNNGlGeEdC?= =?utf-8?B?SzZ1RGMwM25JZXJtd3Mrc2g1dmtUOFFTdWZ0UnhZcVdVYzR4MGVBbDZVVDhy?= =?utf-8?B?RTIvbEtYSVRIUTVmRzhVOHVGemZvK2JDc2srdlJPa2FBVHl2UWtiTmViZE1C?= =?utf-8?B?enRwYi9MRjNrV1BvY01qOCtub0tJbVQvQWVxdEsxNXpWaTVhek5aU25td016?= =?utf-8?B?Q3ZYaGM4YllBaWs2K1hCbGltclJKTlp2Unl6R0xhZW1Qa1ZQc0tEeVdhKzNJ?= =?utf-8?B?L1JoNDZwN29HSWlGRWNPb0lLa3pNTi9qRURGTGJWckcvWmVORjkwdWE5RW02?= =?utf-8?B?NHA4enJHYWxlN3N0ZGQ4WGJPYW5sR3RSNURKZ2orNmdBalgrZEpmRjNGNFpl?= =?utf-8?B?dE1SOTM4cjBFNHBzZ1NGUkJnUVhrbkVrVWp0L3piZTU3WUhKTGJ5bTRRdXFz?= =?utf-8?B?WjY0M3lSbmwrdm13WlBXUUw0WEdwckpQK0txRXJGRHNGbTVYdUhhWG01SkxD?= =?utf-8?B?bm9Ra05tdU5sZ3VmUHZuQ0lXRWZFYzdmL1Z3b0FQYkVIVWpQOE04VmVYZHNB?= =?utf-8?B?OEc5OXJYU0QyVjV6dlNTTng3a0c2UjM3alBxZms1bnU3TzJtT1g5SWljYUY5?= =?utf-8?B?S0xHc2R3MDBVR0YxS3dZSUJUeWR2K0g2MXVacndFUG5SVXoydlRheWFVcGtw?= =?utf-8?B?enNUTkJrWDI3NmFxaEphYTRnUkpad2dzSDIybkJ2dHZ6dDllWWZpYitwREVL?= =?utf-8?B?dzJIa1htUEtwRVllVEtvQ2dnL3NQMkVNdEVMc3dlazVqMGVRK1k3Q2xqQUR4?= =?utf-8?B?dC9aZGFYa0RaSU9oaEcrWXQzZ2pFeVZVOXNkTUlvTGtidWtWWTltK1QzUE9D?= =?utf-8?B?M2dVblJTaEhzVkpRVzBtTlF0eEFQREpITkxwT3p2WUx4UFpsdEFKUit6c1Rl?= =?utf-8?B?K3BvTEM4cmVRdHJOdWQ5bVVOZjFQQXNFdE5jLy8xcEdjUDFySjBqaXRydXJw?= =?utf-8?B?MU04andqYWVkc2R3N1Q2ek5TdlBIUmdOQW9lYVBDbkU2UUM0d0NheUJXQWly?= =?utf-8?B?NTVha3RmTU91Q1RXM01Vd1F4QXdlbTljMXZuQWdzVXd5TUszaDFKYkp6eko4?= =?utf-8?B?eHF1UFJFQ1I5T0YxMmlwMm5oN2c4NENKVHBwOFlLUjVvVUdIMU5kbksxMWQr?= =?utf-8?B?a2FTb1dXbndaR3Ztc3ZqcmVublM3RzVvdVoxa01QanBzK3M0QTFQR1lldkEr?= =?utf-8?B?UjdXbjZwYllFL04zNVAxdnEwQUpEQlRqQnozM3VzRkx0SmpobzBNdmFDOFZs?= =?utf-8?B?OTJQZDduRFMvYmRqUGpxRXFDb054dElnaS94eTZybWJscHZOc2JQOVp1YjNL?= =?utf-8?B?cGxwaUs0Q2E4b1Izb3ZCYzE4RlJQZTc4QmZzK3BuYVZST2hmUmFPZEFHazVl?= =?utf-8?B?dnJ0WHpENTRtSExpSDdGYXEwWEJRMmZuTm80aFo2Y21KRnFqL0FXNkdvK24z?= =?utf-8?B?V1FUZXJnU3pBLzdsRXNXSWFUbzdNQnlnTy9tZmJjRU04dDRMTW1OUlVlMzJi?= =?utf-8?B?NnFxTHdFRjJMOGhRUm9jT0R0RnNGaE5RWFJ0Z1FzNEJmVHU3WEI1cjkvZnUv?= =?utf-8?B?NkR6RkJ6THp0ZjBtTXVkVkJOcE05ZldFZzJYU3VzWU5kR2RkbWVha0V4RWVk?= =?utf-8?B?Qmt5azJQcFNBUVFBQ3NTMDQvY2VYYkdmVXpSTXlmV0RabEg0MG1UdnlLdmFD?= =?utf-8?B?dEpYaUVIZjk4NjBQcEJUVHdNNW1mQzhJMEZIeGtBaHgxUGFqY01ScTFNMGww?= =?utf-8?B?WTFQWThwVXFsUCtacDBlaEhzUVRNV0RMRDlmelZtN2hna0pTNGtzUGtEdFQx?= =?utf-8?Q?Og1mPq86uT4dQ0RTMUTMbEItl?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7db49e22-632f-40cc-7220-08db40d25cfb X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5070.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Apr 2023 12:34:05.2514 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 7CiCT+Xt8Mtt2TXiwCODOgIErtp02NbPIvELW0xfa6SU/LSFbOYvbiIJRpCU6vRPUGa8QS/LXvgyZH4EU6aAig== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1PR04MB7247 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 19/04/2023 13:28, Torsten Duwe wrote: > U-Boot already has a mechanism to fix up the DT before OS boot. > This avoids the excessive duplication of data and work proposed > by the explicit separation of 1.2a and 1.3b board revisions. It > will also, to a good degree, improve the user experience, as > pointed out by Matthias. > > The defconfig changes required (in diffconfig format) are > > -I2C n > -NET_RANDOM_ETHADDR y > +CMD_I2C y > +CMD_MISC y > +DM_I2C y > +I2C_EEPROM y > +MISC y > +MISC_INIT_R y > +OF_BOARD_SETUP y > +SPL_DM_I2C n > +SPL_MISC n > +SYS_I2C_DW y > +SYS_I2C_EEPROM_ADDR 0x0 > > along with the patch below. It has the neat side effect of providing > the network with the proper MAC addresses ;) > > I take advantage of the fact that I²C-5 is also required to talk to the > PMIC, so it must already be initialised by OpenSBI. All that's required > is to declare the EEPROM and to pull in the drivers. > > This is only a proof of concept; let me know if you like it and I can > add the other 12 DT patches to adjust_for_rev13b(), or maybe start with > 1.3b as the default and go the other way, or something in between. > > The last hunk, to the i2c Makefile, is IMHO an independent fix, because > the implication PCI => ACPI in designware_i2c_pci is invalid, and the > VisionFive2 config proves it. Use this quick hack for now. > Looks like a neat approach to enable a signle U-Boot binary to boot on both platforms. Thanks for investigating this. > Signed-off-by: Torsten Duwe > > --- > diff --git a/arch/riscv/dts/jh7110-starfive-visionfive-2.dtsi b/arch/riscv/dts/jh7110-starfive-visionfive-2.dtsi > index ff9df56ec2..fd3a1d057a 100644 > --- a/arch/riscv/dts/jh7110-starfive-visionfive-2.dtsi > +++ b/arch/riscv/dts/jh7110-starfive-visionfive-2.dtsi > @@ -119,6 +119,12 @@ > pinctrl-names = "default"; > pinctrl-0 = <&i2c5_pins>; > status = "okay"; > + > + eeprom@50 { > + compatible = "atmel,24c04"; > + reg = <0x50>; > + pagesize = <0x10>; > + }; > }; > > &i2c6 { > diff --git a/board/starfive/visionfive2/starfive_visionfive2.c b/board/starfive/visionfive2/starfive_visionfive2.c > index 613fe793c4..d7f846a357 100644 > --- a/board/starfive/visionfive2/starfive_visionfive2.c > +++ b/board/starfive/visionfive2/starfive_visionfive2.c > @@ -7,6 +7,10 @@ > #include > #include > #include > +#include > +#include > +#include > +#include > #include > > #define JH7110_L2_PREFETCHER_BASE_ADDR 0x2030000 > @@ -38,3 +42,62 @@ int board_init(void) > > return 0; > } > + > +#ifdef CONFIG_MISC_INIT_R As this is will be enabled for the board config I think we don't need the ifedef. > +int misc_init_r(void) > +{ > + int ret = 0; > + > +#ifdef CONFIG_I2C_EEPROM > + struct udevice *dev; > + char mac_addr[6]; > + unsigned char pcb_rev, BOM; > + > + ret = uclass_first_device_err(UCLASS_I2C_EEPROM, &dev); > + if (ret) > + goto out; > + > + if (eth_env_get_enetaddr("ethaddr", mac_addr) == 0) { > + int i; > + for (i=0; i<2; i++) { > + ret = i2c_eeprom_read(dev, 0x78+6*i, mac_addr, 6); > + if (!ret && is_valid_ethaddr(mac_addr)) > + eth_env_set_enetaddr_by_index("eth", i, mac_addr); > + } > + } > + > + ret = i2c_eeprom_read(dev, 0x76, &pcb_rev, 1); > + if (!ret) > + env_set_hex("board_revision", pcb_rev); > + > + ret = i2c_eeprom_read(dev, 0x77, &BOM, 1); > + > + out: > +#endif > + return ret; > +} > +#endif > + > +#ifdef CONFIG_OF_BOARD_SETUP Same here. Regards, Matthias > +static void adjust_for_rev13b(void * fdt) > +{ > + do_fixup_by_path(fdt, "/soc/ethernet@16040000", > + "phy-mode", "rgmii-id", 9, 0); > + /* > + ... other fixups ... > + > + */ > +} > + > +int ft_board_setup(void *fdt, struct bd_info *bdip) > +{ > + unsigned char pcb_rev = 0; > + > + pcb_rev = env_get_hex("board_revision", pcb_rev); > + if (pcb_rev >= 0xB2) { > + printf("Adjusting FDT for v1.3B board rev\n"); > + adjust_for_rev13b(fdt); > + } > + return 0; > +} > +#endif > diff --git a/drivers/i2c/Makefile b/drivers/i2c/Makefile > index 99545df2e5..828856e40d 100644 > --- a/drivers/i2c/Makefile > +++ b/drivers/i2c/Makefile > @@ -19,8 +19,10 @@ obj-$(CONFIG_SYS_I2C_CA) += i2c-cortina.o > obj-$(CONFIG_SYS_I2C_DAVINCI) += davinci_i2c.o > obj-$(CONFIG_SYS_I2C_DW) += designware_i2c.o > ifdef CONFIG_PCI > +ifdef CONFIG_ACPIGEN > obj-$(CONFIG_SYS_I2C_DW) += designware_i2c_pci.o > endif > +endif > obj-$(CONFIG_SYS_I2C_FSL) += fsl_i2c.o > obj-$(CONFIG_SYS_I2C_IHS) += ihs_i2c.o > obj-$(CONFIG_SYS_I2C_INTEL) += intel_i2c.o