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 X-Spam-Level: X-Spam-Status: No, score=-9.4 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,NICE_REPLY_A, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 27C1FC48BE6 for ; Wed, 16 Jun 2021 21:03:28 +0000 (UTC) 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 mail.kernel.org (Postfix) with ESMTPS id 0C6426109D for ; Wed, 16 Jun 2021 21:03:26 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 0C6426109D Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 5D77B801D7; Wed, 16 Jun 2021 23:03:24 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=gmail.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=gmail.com header.i=@gmail.com header.b="CVNX4jXa"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id AB8308020E; Wed, 16 Jun 2021 23:03:22 +0200 (CEST) Received: from mail-ed1-x52c.google.com (mail-ed1-x52c.google.com [IPv6:2a00:1450:4864:20::52c]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 3669980092 for ; Wed, 16 Jun 2021 23:03:19 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=ivo.g.dimitrov.75@gmail.com Received: by mail-ed1-x52c.google.com with SMTP id z12so980222edc.1 for ; Wed, 16 Jun 2021 14:03:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=KclkY2m4wXVQ0j27QK14R2CWH8Tq+BqY4jKMHNwdfRk=; b=CVNX4jXaPNMNN1LRM2KJJpL7mv4HQk/6cv/b/0HIjlIwg5i07jT5q+mWwFYviQWL+d RFSPr1LBpZSbrOYCT7ed2oD9Crhd4WDWLYHgwQg9wWRFN0giTSF3ynyiHNMEYZfdrlp7 Mijrhttx2NZBsy10gWMMAwQMunxCfWTaTL5/tNWq6W75N36/yN9VgcVijTAi6oF3hXf0 sf0sWurVqV0MCaEbyru0cL5flILrbJwVVkTjwXKnw8gh4NKPCcF7jrCY4GYoKEokGku8 KwS9xQ/0D5Bh2pG+F4a72922kGHTPVwvaA3CjlpIevwTo612y8lYLL936G6Pp35/Z2j/ 5TGQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=KclkY2m4wXVQ0j27QK14R2CWH8Tq+BqY4jKMHNwdfRk=; b=bAxzsAj3LQVoy7ozC+5p9XsWLatxmPu0S/tnKi3efn2W5u16QP2/f29IH/b1wO72Ty LXNW/yaz1xKCVGL5WGg5Ut62TaghzOa49izFzYls2245/dPrfIhqZysP8iE3vOIkR08g ZwZPIaMVibsfyAOHrgZZa0NeFyI6Sbm1X1jZBB2NBF0SaXhmyps6hOWeC+WAbwKceDjn cPLyRZM4JLCONmhWlUI62BQCRu1vczmXd8AdsNHu3nv6MmVlQHkATfTR8TnjqewVX0IA nk5buUl68kXDxFQJmnqtPavfjPPQbsZlyXZisYQREp8M05Mbwl8OH55zLqzOSb9fFLB3 amwA== X-Gm-Message-State: AOAM530OADctxuIt7iO5M8MFtk/Q9j1rF1qo5WvI8rK8tpkKgzsLFx8q KT/6eCJYlAmUGaLEOG83kXE= X-Google-Smtp-Source: ABdhPJwaxaBHzU/XJ10UfSqJ7Qgai7MnziMjFabykcNFn8/nUVQYETVapZDX1tfw1uNL2qOtEwS06A== X-Received: by 2002:a50:9345:: with SMTP id n5mr1985747eda.289.1623877398793; Wed, 16 Jun 2021 14:03:18 -0700 (PDT) Received: from [192.168.1.10] ([46.249.74.23]) by smtp.googlemail.com with ESMTPSA id fl21sm2280897ejc.79.2021.06.16.14.03.17 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 16 Jun 2021 14:03:18 -0700 (PDT) Subject: Re: [maemo-leste] [PATCH] arm: Remove nokia_rx51 board To: Tom Rini Cc: =?UTF-8?Q?Pali_Roh=c3=a1r?= , maemo-leste@lists.dyne.org, u-boot@lists.denx.de, Merlijn Wajer References: <20210519132748.mgzyukuvfmlx3uch@pali> <20210519155203.GZ17669@bill-the-cat> <20210521144418.GI17669@bill-the-cat> <20210521213645.2y5dawkvr6wfaymy@pali> <20210615123436.GH9516@bill-the-cat> <5848e9c9-4dab-00cc-07dc-ffa57b9417cd@gmail.com> <20210616121008.GR9516@bill-the-cat> <20210616121313.GS9516@bill-the-cat> <20210616173702.GW9516@bill-the-cat> From: Ivaylo Dimitrov Message-ID: Date: Thu, 17 Jun 2021 00:03:15 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0 Thunderbird/60.6.1 MIME-Version: 1.0 In-Reply-To: <20210616173702.GW9516@bill-the-cat> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-GB Content-Transfer-Encoding: 8bit X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.34 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.2 at phobos.denx.de X-Virus-Status: Clean Hi Tom, On 16.06.21 г. 20:37 ч., Tom Rini wrote: > On Wed, Jun 16, 2021 at 08:25:28PM +0300, Ivaylo Dimitrov wrote: >> Hi, >> >> On 16.06.21 г. 15:13 ч., Tom Rini wrote: >>> On Wed, Jun 16, 2021 at 08:10:08AM -0400, Tom Rini wrote: >>>> On Wed, Jun 16, 2021 at 09:02:16AM +0300, Ivaylo Dimitrov wrote: >>>>> Hi, >>>>> >>>>> On 15.06.21 г. 15:34 ч., Tom Rini wrote: >>>>>> On Tue, Jun 15, 2021 at 08:40:30AM +0300, Ivaylo Dimitrov wrote: >>>>>>> Hi, >>>>>>> >>>>>>> On 22.05.21 г. 0:36 ч., Pali Rohár wrote: >>>>>>>> On Friday 21 May 2021 10:44:18 Tom Rini wrote: >>>>>>>>> On Wed, May 19, 2021 at 11:52:03AM -0400, Tom Rini wrote: >>>>>>>>>> On Wed, May 19, 2021 at 03:27:48PM +0200, Pali Rohár wrote: >>>>>>>>>> >>>>>>>>>>> On Tuesday 18 May 2021 21:26:40 Tom Rini wrote: >>>>>>>>>>>> This board has not been converted to CONFIG_DM_USB by the deadline. >>>>>>>>>>>> Remove it. >>>>>>>>>>> >>>>>>>>>>> I'm very disappointed that you want to remove Nokia N900 from U-Boot. >>>>>>>>>>> >>>>>>>>>>> I was waiting waiting half of year because other developers did not >>>>>>>>>>> react to issues which were introduced and neither to patches which I >>>>>>>>>>> sent (+ trying to remind open issues). And also I was waiting another >>>>>>>>>>> half of year until other N900 related patches were merged. So the whole >>>>>>>>>>> slowdown was not caused by me, why it is taking so long. >>>>>>>>>>> >>>>>>>>>>> Now there is still one N900 DM related patch waiting for review. I'm >>>>>>>>>>> converting code step by step. >>>>>>>>>>> >>>>>>>>>>> So the ball is not on my side. >>>>>>>>>> >>>>>>>>>> So, what patch(es) need to be applied to get DM_USB enabled? Thanks. >>>>>>>>> >>>>>>>>> I don't see any open patches from you that look related to enabling >>>>>>>>> DM_USB on the platform. If you want to disable USB on the platform for >>>>>>>>> now instead, that's fine too. >>>>>>>> >>>>>>> >>>>>>> I tried to migrate the latest master to DM_USB, but unfortunately the >>>>>>> results are pretty much sad - adding OF_CONTROL (which is a prerequisite to >>>>>>> have DM_USB IIUC) and OF_BOARD (so binary to be compiled), adds ~100k to the >>>>>>> size of the u-boot binary, so it becomes 370284 bytes. Given that we have >>>>>>> less than 256k of storage space for the u-boot, the produced binary cannot >>>>>>> be used on n900 the same way current (no DM_USB) binary is used. >>>>>>> >>>>>>> As I see it, there are not much options left - u-boot on N900 is not SPL, so >>>>>>> we can't use OF_PLATDATA, which in turn always links libfdt. >>>>>>> Also, if I read the code (usb-uclass.c) correctly, enabling DM_USB requires >>>>>>> the board to be converted to DT and this is way bigger change. >>>>>>> >>>>>>> Please advice on how to proceed. >>>>>> >>>>>> Please post your WIP patches, thanks. >>>>>> >>>>> >>>>> Sorry, I am not sure I understand what patches you want me to post: >>>>> >>>>> WDT patch has already been sent couple of months ago - >>>>> https://lists.denx.de/pipermail/u-boot/2021-March/443868.html >>>>> Do you want it to be rebased and resend? >>>>> >>>>> DM_USB, I just started writing one and I immediately hit the OF_CONTROL >>>>> requirement. Enabling OF_CONTROL requires a full blown migration to DT, >>>>> which is a huge task and not really equal to "Please update the board to use >>>>> CONFIG_DM_USB...". Without OF_CONTROL, I simply get link failures: >>>>> >>>>> /usr/lib/gcc-cross/arm-linux-gnueabi/8/../../../../arm-linux-gnueabi/bin/ld: >>>>> /usr/lib/gcc-cross/arm-linux-gnueabi/8/../../../../arm-linux-gnueabi/bin/ld: >>>>> DWARF error: could not find abbrev number 3998 >>>>> /tmp/cc0BOqms.ltrans0.ltrans.o: in function `usb_child_post_bind': >>>>> :(.text+0x5672): undefined reference to >>>>> `ofnode_read_u32_default' >>>>> /usr/lib/gcc-cross/arm-linux-gnueabi/8/../../../../arm-linux-gnueabi/bin/ld: >>>>> :(.text+0x568c): undefined reference to >>>>> `ofnode_read_u32_default' >>>>> /usr/lib/gcc-cross/arm-linux-gnueabi/8/../../../../arm-linux-gnueabi/bin/ld: >>>>> /tmp/cc0BOqms.ltrans0.ltrans.o: in function `usb_scan_device': >>>>> :(.text+0x6c84): undefined reference to `ofnode_first_subnode' >>>>> /usr/lib/gcc-cross/arm-linux-gnueabi/8/../../../../arm-linux-gnueabi/bin/ld: >>>>> :(.text+0x6c96): undefined reference to `ofnode_read_u32' >>>>> /usr/lib/gcc-cross/arm-linux-gnueabi/8/../../../../arm-linux-gnueabi/bin/ld: >>>>> :(.text+0x6ca4): undefined reference to `ofnode_next_subnode' >>>>> /usr/lib/gcc-cross/arm-linux-gnueabi/8/../../../../arm-linux-gnueabi/bin/ld: >>>>> /tmp/cc0BOqms.ltrans0.ltrans.o:(.u_boot_list_2_uclass_driver_2_usb+0x8): >>>>> undefined reference to `dm_scan_fdt_dev' >>>>> /usr/lib/gcc-cross/arm-linux-gnueabi/8/../../../../arm-linux-gnueabi/bin/ld: >>>>> /tmp/cc0BOqms.ltrans0.ltrans.o:(.u_boot_list_2_uclass_driver_2_usb_hub+0x8): >>>>> undefined reference to `dm_scan_fdt_dev' >>>>> >>>>> Fixing those requires enabling of OF_CONTROL and this in turn means the >>>>> board must be migrated to DT, unless I am missing something. That's why my >>>>> "please advice..." stance. >>>> >>>> Please post the patches that bring you to the above link errors, yes, >>>> thanks. >>> >>> To be clearer, finish up a patch that completes the migration but is too >>> large to install on the hardware so that others can take a look. >> >> I am not sure I understand that - a patch that completes the migration to >> DM_USB cannot be done ATM as the binary does not link without OF_CONTROL. >> And I am not going to enable OF_CONTROL as this means I will have to migrate >> everything to DT. That's why I enable DM_USB only - see reply to the other >> mail. > > My advise is to provide a linkable but not runnable (or, only runnable > in QEMU, the problem is the fixed layout of the actual device flash, > right?) patch so that we can figure out how and what needs to be tuned > where so that we can see what to do about this platform. > What about the following patch (once you confirm I am on the right track, I will send a proper patch as well). Enabling thumb is a must, otherwise binary does not fit. With the below changes code compiles and runs on a real HW: diff --git a/common/usb_hub.c b/common/usb_hub.c index ba11a188ca..c6b042a684 100644 --- a/common/usb_hub.c +++ b/common/usb_hub.c @@ -956,7 +956,9 @@ U_BOOT_DRIVER(usb_generic_hub) = { UCLASS_DRIVER(usb_hub) = { .id = UCLASS_USB_HUB, .name = "usb_hub", +#if CONFIG_IS_ENABLED(OF_CONTROL) && !CONFIG_IS_ENABLED(OF_PLATDATA) .post_bind = dm_scan_fdt_dev, +#endif .post_probe = usb_hub_post_probe, .child_pre_probe = usb_child_pre_probe, .per_child_auto = sizeof(struct usb_device), diff --git a/configs/nokia_rx51_defconfig b/configs/nokia_rx51_defconfig index 3548aab0e1..daaf6690ef 100644 --- a/configs/nokia_rx51_defconfig +++ b/configs/nokia_rx51_defconfig @@ -1,5 +1,5 @@ CONFIG_ARM=y -# CONFIG_SYS_THUMB_BUILD is not set +CONFIG_SYS_THUMB_BUILD=y CONFIG_ARCH_OMAP2PLUS=y CONFIG_SYS_TEXT_BASE=0x80008000 CONFIG_NR_DRAM_BANKS=2 @@ -61,6 +61,10 @@ CONFIG_CONS_INDEX=3 CONFIG_SYS_NS16550=y CONFIG_SPI=y CONFIG_USB=y +CONFIG_DM_USB=y +CONFIG_OF_LIBFDT=y +CONFIG_OF_LIBFDT_OVERLAY=n +CONFIG_EFI_LOADER=n CONFIG_USB_MUSB_UDC=y CONFIG_USB_OMAP3=y CONFIG_CFB_CONSOLE=y diff --git a/drivers/core/Makefile b/drivers/core/Makefile index 5edd4e4135..e7213143c4 100644 --- a/drivers/core/Makefile +++ b/drivers/core/Makefile @@ -2,7 +2,7 @@ # # Copyright (c) 2013 Google, Inc -obj-y += device.o fdtaddr.o lists.o root.o uclass.o util.o +obj-y += device.o fdtaddr.o lists.o root.o uclass.o util.o ofnode.o obj-$(CONFIG_$(SPL_TPL_)ACPIGEN) += acpi.o obj-$(CONFIG_DEVRES) += devres.o obj-$(CONFIG_$(SPL_)DM_DEVICE_REMOVE) += device-remove.o @@ -15,6 +15,6 @@ obj-$(CONFIG_$(SPL_)OF_LIVE) += of_access.o of_addr.o ifndef CONFIG_DM_DEV_READ_INLINE obj-$(CONFIG_OF_CONTROL) += read.o endif -obj-$(CONFIG_OF_CONTROL) += of_extra.o ofnode.o read_extra.o +obj-$(CONFIG_OF_CONTROL) += of_extra.o read_extra.o ccflags-$(CONFIG_DM_DEBUG) += -DDEBUG diff --git a/drivers/usb/host/usb-uclass.c b/drivers/usb/host/usb-uclass.c index e3b616c326..71dc578550 100644 --- a/drivers/usb/host/usb-uclass.c +++ b/drivers/usb/host/usb-uclass.c @@ -770,6 +770,7 @@ int usb_detect_change(void) static int usb_child_post_bind(struct udevice *dev) { +#if CONFIG_IS_ENABLED(OF_CONTROL) && !CONFIG_IS_ENABLED(OF_PLATDATA) struct usb_dev_plat *plat = dev_get_parent_plat(dev); int val; @@ -787,7 +788,7 @@ static int usb_child_post_bind(struct udevice *dev) plat->id.match_flags |= USB_DEVICE_ID_MATCH_INT_CLASS; plat->id.bInterfaceClass = val; } - +#endif return 0; } @@ -848,7 +849,9 @@ UCLASS_DRIVER(usb) = { .id = UCLASS_USB, .name = "usb", .flags = DM_UC_FLAG_SEQ_ALIAS, +#if CONFIG_IS_ENABLED(OF_CONTROL) && !CONFIG_IS_ENABLED(OF_PLATDATA) .post_bind = dm_scan_fdt_dev, +#endif .priv_auto = sizeof(struct usb_uclass_priv), .per_child_auto = sizeof(struct usb_device), .per_device_auto = sizeof(struct usb_bus_priv),