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 mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id C93A7C433EF for ; Fri, 22 Oct 2021 12:37:53 +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 E5D6A60F4F for ; Fri, 22 Oct 2021 12:37:52 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org E5D6A60F4F Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=denx.de Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=lists.denx.de Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 00187834B5; Fri, 22 Oct 2021 14:37:50 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=denx.de Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=denx.de; s=phobos-20191101; t=1634906271; bh=bDIb6lBQT/B3AiL3EmcbZtGadM809BBYZPPe2bMtlt8=; h=Subject:To:Cc:References:From:Date:In-Reply-To:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From; b=kgWDerYGQNED2gRnfKGfJhako9B9DoUB8DDtrLX7CExO7TCsALBiZkt0hg2OS8n5X tAsWPfQADdpNcLht495jh+gjGtU0BtoKLqk9UBft2ZyWyQKwEWUmhY3d0GPoOptyVP HdwMTw81GkwfzH82rMM8nDSI1HbXU2XuqGyMHFmJHaKprkH/z2QdEOfUgvA+zZU2mi gMWjHivbtOcmBrLfD6xvjaMcaFMP+Sjf4GFKU/3NHvmzeZ6daaCefkmNkIg3GF/EW2 7cmAWJGqBnb8hWIu15Anlr64zVhKs5q+Y6OcUVgYxiOkO0V7/j9n8kP6cZTptvM0KY iyCuexkrNuong== Received: from [IPv6:2001:a61:60de:6501:5850:5cd1:f7c7:65b9] (unknown [IPv6:2001:a61:60de:6501:5850:5cd1:f7c7:65b9]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: sbabic@denx.de) by phobos.denx.de (Postfix) with ESMTPSA id BE3B083311; Fri, 22 Oct 2021 14:37:47 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=denx.de; s=phobos-20191101; t=1634906268; bh=bDIb6lBQT/B3AiL3EmcbZtGadM809BBYZPPe2bMtlt8=; h=Subject:To:Cc:References:From:Date:In-Reply-To:From; b=uc4MttQS9DyAomtiF5PMKrwXL3jimAVZulAHYJTWx7HBfp3v1EPd/5EEdw3Pc2RRZ 2aJLUD3ih3qKHGYz6tD+prcB3hzfkFYapcBeDPAtDgfKXoIMJqzOThv4i8jDKaBik/ uBrV/Rptt3YICft32e8L8cdWvoRi4NqN1Dv/cThzTiXZ8iRmmkQw60zZpaDCzICyW4 j+mjQ00OmUPUnylN8tVc35wn5AOAFv3to4wr2bVhK7c814HmFAVsGY7xbfuwEBsfOS eYBxrsyiWudCH8DbaCEUKCHnF4QqiAYQp7yVzuHydf4FUeNzHoQVqv0gDTPsC4njGD mNiw6vsfh6/6A== Subject: Re: [PATCH v6 2/2] board: kontron: pitx-imx8m: Add Kontron pitx-imx8m board support To: Heiko Thiery , Stefano Babic , Simon Glass Cc: u-boot@lists.denx.de, Fabio Estevam , "NXP i . MX U-Boot Team" , Peng Fan , Ye Li , Patrick Wildt , Michael Walle , =?UTF-8?Q?Thomas_Sch=c3=a4fer?= References: <20211014180824.10681-1-heiko.thiery@gmail.com> <20211014180824.10681-2-heiko.thiery@gmail.com> From: Stefano Babic Message-ID: Date: Fri, 22 Oct 2021 14:37:47 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.13.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: de-DE Content-Transfer-Encoding: 7bit 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 Heiko, On 22.10.21 10:19, Heiko Thiery wrote: > Hi Stefano, Hi Simon, > > Am Do., 21. Okt. 2021 um 15:57 Uhr schrieb Heiko Thiery > : >> >> Hi Stefano, Hi Simon, >> >> >> Am Do., 21. Okt. 2021 um 15:29 Uhr schrieb Stefano Babic : >>> >>> On 21.10.21 15:17, Heiko Thiery wrote: >>>> Hi Stefano, >>>> >>>> >>>> Am Do., 21. Okt. 2021 um 13:31 Uhr schrieb Stefano Babic : >>>>> >>>>> Hi Heiko, >>>>> >>>>> On 14.10.21 20:08, Heiko Thiery wrote: >>>>>> The Kontron pitx-imx8m is an NXP i.MX8MQ based board in the pITX >>>>>> form factor. >>>>>> >>>>> >>>>> There is still something using binman that does not work with CI. >>>>> Without CI, we load all firmware including signed_hdmi_imx8m.bin. >>>>> >>>>> But on CI, file is not loaded, but instead of warnings, build for this >>>>> board fails with : >>>>> >>>>> +Image 'main-section' is missing external blobs and is non-functional: >>>>> blob-ext@1 blob-ext@2 blob-ext@3 blob-ext@4 >>>>> +binman: Error 1 running 'mkimage -d ./mkimage.spl.mkimage -n >>>>> spl/u-boot-spl.cfgout -T imx8mimage -e 0x7e1000 >>>>> ./mkimage-out.spl.mkimage': signed_hdmi_imx8m.bin: Can't open: No such >>>>> file or directory >>>>> + >>>>> >>>>> Could you take a look ? >>>> >>>> Sure. Could you point me to the right CI configuration? >>>> >>> >>> Configuration is in .gitlab-ci.yml. For thsi board, buildman is called >>> as part of aarch64 target, that is >>> >>> buildman -o /tmp -P -E -W arm -x aarch64 >>> >>>> I need to understand how the required imx-firmware files are copied to >>>> the u-boot dir. This seems to work already for e. g. the imx8mm >>>> boards. These require the lpdd* train fw files. >> >> Here we seem to hit an issue with the CI. blobs (lpddr*) are required >> for the imx8mm boards. Binman reports the missing files only as a >> warning and buildman does not care about that: >> ---- >> +WARNING 'mkimage.flash.mkimage' not found, resulting binary is not-functional >> ---- >> >> With the imx8mq boards switching to binman we also need an additional >> fw part (signed_hdmi_imx8m.bin). But other than the lpddr firmware as >> blob the signed_hmdi'_imx8m.bin is passed to mkimage and mkimage exits >> with an error. Thats leads to the error: >> ---- >> binman: Error 1 running 'mkimage -d ./mkimage.spl.mkimage -n >> spl/u-boot-spl.cfgout -T imx8mimage -e 0x7e1000 >> ./mkimage-out.spl.mkimage': signed_hdmi_imx8m.bin: Can't open: No such >> file or directory >> ---- >> >> Currently I do not have an idea how to handle that. Anyone else? > > I thought about it a little and did a quick hack. What do you think > about dummy files being generated for buildman? I had quite the same idea... > I had buildman > generate the blobs needed by binman. So at least the build runs > through successfully. But it should be checked if files are present - I guess there are people relying on buildman to produce the functional bootloader, and a dummy file cannot overwrite the right one if present. > I don't know yet how to integrate this sensibly > into buildman or if this is useful for the maintainers at all. But > this would get rid of the warnings and errors that come from binman. > > > diff --git a/tools/buildman/board.py b/tools/buildman/board.py > index 447aaabea8..cf270c8b72 100644 > --- a/tools/buildman/board.py > +++ b/tools/buildman/board.py > @@ -96,6 +96,28 @@ class Board: > self.vendor, self.soc, self.options] > self.build_it = False > > + def create_dummy_files(self, work_dir): > + import configparser > + import os > + > + settings = configparser.SafeConfigParser() > + config_fname = '%s/.buildman/' % os.getenv('HOME') > + if os.path.exists(config_fname): > + settings.read(config_fname) > + > + if self.target == "kontron_pitx_imx8m": > + > + dummy_files = ['bl31.bin', > + 'signed_hdmi_imx8m.bin', > + 'lpddr4_pmu_train_1d_imem.bin', > + 'lpddr4_pmu_train_1d_dmem.bin', > + 'lpddr4_pmu_train_2d_imem.bin', > + 'lpddr4_pmu_train_2d_dmem.bin' > + ] > + for dummy_file in dummy_files: > + dummy = os.path.join(work_dir, 'build', dummy_file) > + with open(dummy, "wb") as out: > + out.truncate(1024) > > class Boards: > """Manage a list of boards.""" > diff --git a/tools/buildman/builderthread.py b/tools/buildman/builderthread.py > index 48128cf673..dee7d9b0fe 100644 > --- a/tools/buildman/builderthread.py > +++ b/tools/buildman/builderthread.py > @@ -475,6 +475,7 @@ class BuilderThread(threading.Thread): > """ > brd = job.board > work_dir = self.builder.GetThreadDir(self.thread_num) > + brd.create_dummy_files(work_dir) > self.toolchain = None > if job.commits: > # Run 'make board_defconfig' on the first commit > Best regards, Stefano -- ===================================================================== DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic@denx.de =====================================================================