From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wr0-x233.google.com (mail-wr0-x233.google.com [IPv6:2a00:1450:400c:c0c::233]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 4170621A6F106 for ; Wed, 14 Jun 2017 10:04:41 -0700 (PDT) Received: by mail-wr0-x233.google.com with SMTP id 77so9178168wrb.1 for ; Wed, 14 Jun 2017 10:05:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=qfKZvDYR2FUps9c/4YlmtFAxKUiRfm33pg8bqglLGxQ=; b=VXJRLW8ePxYxRLm3blrFHkeaLzMuCI8EIpZNkausoUn/2mcd9B1GxbeQsg39u0MSEh vizP98FbTWiE8S8qlhY0g+GFtmcHB6IJ8Rehx0RtHYf4wWP6yIMiYLlYFwOFWTJWxdA0 bgqOUsHrUaZJQPUAruV0dt/Tv9LXTvjZEgeoU= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to:user-agent; bh=qfKZvDYR2FUps9c/4YlmtFAxKUiRfm33pg8bqglLGxQ=; b=GqI/AG2MPzn1+1XvRIEYfAWYr61dlK4/k4sTtnhV5DsS3HBpRbNutwpPM9ANdLCXGZ l7MzuP/rQCD/Br9AX9UpqPq6/mrADw0gIiw3Ly7yU0uMddnQUDOsagRwNH/FfgB40pFX KEohO0GAW1ekxZOSxdDJAo0mFgOqSynS/DmLPCC9YqOmeIEnuwno77YaRQEwri2GUn42 f3AQW9QvAb/xu57bIm+ByL7y7l54r6EcZf5Sg8toz+df0JgwqZYsv+6LxVP5WglkJwUr B9nEq+ABmfvEJM+RlSItm4/YcVi3XZmVl73+oyliwhJDPwQ3iKvbPNpez0gYKRO12ZTW QcSQ== X-Gm-Message-State: AKS2vOx23TjWph0MPw3AsDqu6el9G0AAlfdTTRSncAZWSaSH1u7r/8aK ZTK62eJF9LZ/cMBO X-Received: by 10.223.173.23 with SMTP id p23mr744099wrc.56.1497459955230; Wed, 14 Jun 2017 10:05:55 -0700 (PDT) Received: from bivouac.eciton.net (bivouac.eciton.net. [2a00:1098:0:86:1000:23:0:2]) by smtp.gmail.com with ESMTPSA id 139sm620852wmw.15.2017.06.14.10.05.54 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 14 Jun 2017 10:05:54 -0700 (PDT) Date: Wed, 14 Jun 2017 18:05:52 +0100 From: Leif Lindholm To: "Kinney, Michael D" Cc: "Yao, Jiewen" , "edk2-devel@lists.01.org" , Ryan Harkin , Ard Biesheuvel , Chenhui Sun , Andrew Fish , Alan Ott , "Richardson, Brian" , "Duran, Leo" , "haojian.zhuang@linaro.org" , Linaro UEFI , Heyi Guo Message-ID: <20170614170552.GQ26676@bivouac.eciton.net> References: <20170503225539.GQ1657@bivouac.eciton.net> <74D8A39837DF1E4DA445A8C0B3885C503A939E61@shsmsx102.ccr.corp.intel.com> <20170607145815.GE7556@bivouac.eciton.net> MIME-Version: 1.0 In-Reply-To: User-Agent: Mutt/1.5.23 (2014-03-12) Subject: Re: [RFC] migration of OpenPlatformPkg to tianocore X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Jun 2017 17:04:41 -0000 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Hi Mike, Yes, this way I am able to build all of my packages! Many thanks! This also works with the simplified PACKAGES_PATH usage model I had initially been trying for (just point to edk2-platforms and edk2-non-osi top level directories). I have pushed updated and slightly cleaned up versions to devel-OpenPlatformPkg branches on edk2-platforms and edk2-non-osi. I'm working on updated helper scripts in my uefi-tools repository and some documentation for this, and will post a new thread when I have this ready. / Leif On Tue, Jun 13, 2017 at 11:13:08PM +0000, Kinney, Michael D wrote: > Hi Leif, > > I pulled the latest versions of the repos and I was able to complete > a build with no errors and without using symbolic links. > > The change I made is to set WORKSPACE to the directory immediately > above the repos and set PACKAGES_PATH to directories that contain the > packages required for the platform to build. > > This is the same technique used to build QuarkPlatformPkg that uses > content from both the edk2 and the edk2-non-osi repos. See the > Readme.md in the QuarkPlatformPkg with instructions for setting up > the build env for Linux and Windows for an example. > > https://github.com/tianocore/edk2/tree/master/QuarkPlatformPkg > > I wrote a small shell script that I put in the directory above the > repos to setup the build environment for the JunoPkg platform. > > export GCC5_AARCH64_PREFIX=aarch64-linux-gnu- > > export WORKSPACE=$PWD > > export PACKAGES_PATH=\ > $WORKSPACE/edk2:\ > $WORKSPACE/edk2-platforms/Platform/ARM:\ > $WORKSPACE/edk2-non-osi > > cd edk2 > make -C BaseTools > . edksetup.sh BaseTools > > build -a AARCH64 -t GCC5 -p JunoPkg/ArmJuno.dsc > > === end of build log === > Generate Region at Offset 0x0 > Region Size = 0xF8000 > Region Name = FV > > Generating FVMAIN_COMPACT FV > #### > Generating FVMAIN FV > #################################### > ######################################## > ######################################## > ######################################## > ################################ > Generate Region at Offset 0x0 > Region Size = 0xF8000 > Region Name = FV > > GUID cross reference file can be found at /home/mdkinney/GitHub/tianocore/Build/ArmJuno/DEBUG_GCC5/FV/Guid.xref > > FV Space Information > FVMAIN_COMPACT [94%Full] 1015808 total, 956200 used, 59608 free > FVMAIN [99%Full] 8237696 total, 8237688 used, 8 free > > - Done - > Build end time: 18:49:57, Jun.13 2017 > Build total time: 00:04:22 > ======================== > > > If you want to support building any of the platforms, then > PACKAGES_PATH can be set as follows: > > export PACKAGES_PATH=\ > $WORKSPACE/edk2:\ > $WORKSPACE/edk2-platforms/Silicon/Hisilicon:\ > $WORKSPACE/edk2-platforms/Silicon/AMD:\ > $WORKSPACE/edk2-platforms/Platform/Hisilicon:\ > $WORKSPACE/edk2-platforms/Platform/Marvell:\ > $WORKSPACE/edk2-platforms/Platform/ARM:\ > $WORKSPACE/edk2-non-osi/Silicon/Intel:\ > $WORKSPACE/edk2-non-osi/Silicon/AMD/Styx: > > Best regards, > > Mike > > -----Original Message----- > From: Leif Lindholm [mailto:leif.lindholm@linaro.org] > Sent: Wednesday, June 7, 2017 7:58 AM > To: Yao, Jiewen > Cc: edk2-devel@lists.01.org; Ryan Harkin ; Ard Biesheuvel ; Chenhui Sun ; Andrew Fish ; Alan Ott ; Richardson, Brian ; Duran, Leo ; haojian.zhuang@linaro.org; Linaro UEFI ; Kinney, Michael D ; Heyi Guo > Subject: Re: [edk2] [RFC] migration of OpenPlatformPkg to tianocore > > Hi all, > > OK, so I have now updated both edk2-non-osi and edk2-platforms > (devel-OpenPlatformPkg branches) with package renaming, and updating > .dsc/.fdf files to . > > It appears the problems I'm facing are mainly caused by the GenFds > stage not seeing a view consistent with the actual compilation stage. > > To demonstrate, I build the Juno platform: > $ . edksetup.sh > $ make -C BaseTools > $ PACKAGES_PATH=/work/git/edk2-platforms/Platform/ARM \ > GCC5_AARCH64_PREFIX=aarch64-linux-gnu- build -n 9 -a AARCH64 \ > -t GCC5 -p JunoPkg/ArmJuno.dsc -b RELEASE > > This build fails with: > --- > Fd File Name:BL33_AP_UEFI > > Generate Region at Offset 0x0 > Region Size = 0xF8000 > Region Name = FV > > Generating FVMAIN_COMPACT FV > #### > Generating FVMAIN FV > > > GenFds.py... > : error F003: Output file for RAW section could not be found for > JunoPkg/AcpiTables/AcpiTables.inf > > > > build.py... > : error 7000: Failed to execute command > GenFds -f /work/git/edk2-platforms/Platform/ARM/JunoPkg/ArmJuno.fdf > --conf=/work/git/edk2/Conf -o > /work/git/edk2/Build/ArmJuno/RELEASE_GCC5 -t GCC5 -b RELEASE -p > /work/git/edk2-platforms/Platform/ARM/JunoPkg/ArmJuno.dsc -a > AARCH64 -D "EFI_SOURCE=/work/git/edk2/EdkCompatibilityPkg" -D > "EDK_SOURCE=/work/git/edk2/EdkCompatibilityPkg" -D > "TOOL_CHAIN_TAG=GCC5" -D "TOOLCHAIN=GCC5" -D "TARGET=RELEASE" -D > "FAMILY=GCC" -D "WORKSPACE=/work/git/edk2" -D > "EDK_TOOLS_PATH=/work/git/edk2/BaseTools" -D "ARCH=AARCH64" -D > "ECP_SOURCE=/work/git/edk2/EdkCompatibilityPkg" [/work/git/edk2] > > - Failed - > --- > , but if I add the symlink > ln -s edk2-platforms/Platform/ARM/JunoPkg/ Build/ArmJuno/RELEASE_GCC5/AARCH64/ > it completes successfully on the next pass. > > Same when building VExpressPkg/ArmVExpress-FVP-AArch64.dsc > ln -s edk2-platforms/Platform/ARM/VExpressPkg \ > Build/ArmVExpress-FVP-AArch64/RELEASE_GCC5/AARCH64/ > resolves the build error. > > > Similarly, when I build the Overdrive/Overdrive.dsc, using: > $ PACKAGES_PATH=/work/git/edk2-platforms/Platform/AMD:/work/git/edk2-platforms/Silicon/AMD:/work/git/edk2-non-osi/Silicon/AMD/Styx:/work/git/edk2-non-osi/Platform/AMD \ > GCC5_AARCH64_PREFIX=aarch64-linux-gnu- build -n 9 -a AARCH64 -t GCC5 > -p OverdriveBoard/OverdriveBoard.dsc -b RELEASE > this fails with > --- > Fd File Name:STYX_ROM > > Generate Region at Offset 0x0 > Region Size = 0x200000 > Region File Name = > /work/git/edk2/../edk2-non-osi/Platform/AMD/OverdriveBoard/PreUefiFirmware.bin > > Generate Region at Offset 0x200000 > Region Size = 0x260000 > Region Name = FV > > Generating STYX_EFI FV > ################Return Value = 2 > GenFw: ERROR 0001: Error opening file > > /work/git/edk2/Build/Overdrive/RELEASE_GCC5/AARCH64/StyxPkg/Drivers/PlatInitPei/PlatInitPei/OUTPUT/PlatInitPei.efi > > > > GenFds.py... > ### ['GenFw', '-t', '-o', > ### '/work/git/edk2/Build/Overdrive/RELEASE_GCC5/FV/Ffs/769694a4-2572-4f29-a5bb-33d7df7be001PlatInitPei/769694a4-2572-4f29-a5bb-33d7df7be001Te.raw', > ### '/work/git/edk2/Build/Overdrive/RELEASE_GCC5/AARCH64/StyxPkg/Drivers/PlatInitPei/PlatInitPei/OUTPUT/PlatInitPei.efi'] > : error 7000: Failed to generate firmware image > > > > build.py... > : error 7000: Failed to execute command > GenFds -f > /work/git/edk2-platforms/Platform/AMD/OverdriveBoard/OverdriveBoard.fdf > --conf=/work/git/edk2/Conf -o > /work/git/edk2/Build/Overdrive/RELEASE_GCC5 -t GCC5 -b RELEASE -p > /work/git/edk2-platforms/Platform/AMD/OverdriveBoard/OverdriveBoard.dsc > -a AARCH64 -D "EFI_SOURCE=/work/git/edk2/EdkCompatibilityPkg" -D > "EDK_SOURCE=/work/git/edk2/EdkCompatibilityPkg" -D > "TOOL_CHAIN_TAG=GCC5" -D "TOOLCHAIN=GCC5" -D "TARGET=RELEASE" -D > "FAMILY=GCC" -D "WORKSPACE=/work/git/edk2" -D > "FIRMWARE_VER=b941c34" -D "EDK_TOOLS_PATH=/work/git/edk2/BaseTools" > -D "ARCH=AARCH64" -D > "ECP_SOURCE=/work/git/edk2/EdkCompatibilityPkg" [/work/git/edk2] > > - Failed - > --- > > Again, resolved by > ln -s edk2-platforms/Silicon/AMD/StyxPkg/ Build/Overdrive/RELEASE_GCC5/AARCH64/ > > Am I doing something wrong here? Are there any magic runes that could > help out? > > / > Leif > > On Fri, May 05, 2017 at 01:45:51PM +0000, Yao, Jiewen wrote: > > HI Leif > > It is great that you are adding more platform to edk2-platforms. > > > > We (Intel) also have plan to add more boards there. In general, we are very close on having silicon and platform folder. > > > > I have a quick look. One minor suggestions here: > > Take Arm folder as example. (I assume Juno is one package, and VExpress is the other package.) > > Can we name Juno to be JunoPkg, and VExpress to be VExpressPkg ? > > We do not add "Pkg" to a folder. And we usually add "Pkg" suffix to a package. > > > > In general, I think it is a very good start. > > I may review the content in more detail and provide more feedback. > > > > > > Thank you > > Yao Jiewen > > > > > > From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of Leif Lindholm > > Sent: Thursday, May 4, 2017 6:56 AM > > To: edk2-devel@lists.01.org > > Cc: Ryan Harkin ; Ard Biesheuvel ; Chenhui Sun ; Andrew Fish ; Alan Ott ; Richardson, Brian ; Duran, Leo ; haojian.zhuang@linaro.org; Linaro UEFI ; Kinney, Michael D ; Heyi Guo > > Subject: [edk2] [RFC] migration of OpenPlatformPkg to tianocore > > > > Hi all, > > > > As some of you may be aware, I have been working around the lack of > > a clear upstreaming strategy for platform support by keeping such code > > in a dedicated repository I set up at Linaro for that purpose: > > https://git.linaro.org/uefi/OpenPlatformPkg.git > > > > During discussions at the last Seattle plugfest we finally agreed on > > the (theoretical) details of how to use the edk2-platforms repository. > > After that I promised to migrate OpenPlatformPkg across to the > > edk2-platforms and edk2-non-osi structure, with the explicit end goal > > from my side that this should become the master branch for each. > > > > And now, before the release of HURD 1.0, I have. > > > > Current limitations (that I can remember): > > - A few references to OpenPlatformPkg remain, in ways that do not > > appear to break any of the platform builds. Most likely this affects > > dead code, but in case it's been accidentally orphaned, I thought it > > best to > > - I have simply nuked all references to Ebl (used in _addition_ to the > > UEFI shell, which was never the intent) and the efi-toolkit > > ramdisk driver. > > - The Marvell Yukon driver that I sent out for review last week has > > not migrated anywhere, and so has been temporarily disabled > > Mike suggested I should > > - USB support on the LeMaker Cello board depends on the patch > > "OptionRomPkg: add firmware loader driver for Renesas PD72020x" > > sent out by Ard on 18th of April. > > - I have dropped some of the binary-only modules from OpenPlatformPkg, > > and contacted the platform owners with requests for modifications. > > - The git history is quite messy and will be cleaned up, but I wanted > > to keep the transition quite visible in the RFC. > > - I haven't filled anything into the Maintainers.txt files - I am in > > favour of moving to a fully machine-readable format with wildcards > > as Laszlo has proposed in the past, and think this would be an > > excellent point to have that discussion (which can be had separately > > for edk2-platforms and edk2-non-osi from edk2). > > - Few of the platforms complete the FV generation stage, and I've > > inserted a couple of silly hacks to get them to get as far as they > > do. I think that either I am missing some points of how > > PACKAGES_PATH is intended to work, or I'm simply hitting corner > > cases no one has come across before. I could really use some help > > debugging these issues. (examples below). > > > > The below depends on the 3-part series I sent out today for importing > > DwEmmcDxe and EfiTimeBaseLib from OpenPlatformPkg. But apart from > > that, I have uploaded branches called devel-OpenPlatformPkg to: > > > > https://github.com/tianocore/edk2-platforms/tree/devel-OpenPlatformPkg > > https://github.com/tianocore/edk2-non-osi/tree/devel-OpenPlatformPkg > > > > These branches _will_ be rebased occasionally until they get to a > > point where they can move out of devel- stage (and hopefully onto > > master). > > > > > > Build issue description > > ======================= > > So, one of the hopefully easier ones is what I'm seeing when trying to > > build the Juno platform: > > > > $ PACKAGES_PATH="/work/maint/edk2-platforms:/work/maint/edk2-non-osi" GCC5_AARCH64_PREFIX=aarch64-linux-gnu- build -a AARCH64 -t GCC5 -p Platform/ARM/Juno/ArmJuno.dsc -b RELEASE -n 9 > > > > results in: > > > > <<< > > GenFds.py... > > : error F003: Output file for RAW section could not be found for > > Platform/ARM/Juno/AcpiTables/AcpiTables.inf > > > > ### > > > > > > build.py... > > : error 7000: Failed to execute command > > GenFds -f /work/maint/edk2-platforms/Platform/ARM/Juno/ArmJuno.fdf --conf=/work/maint/edk2/Conf -o /work/maint/edk2/Build/ArmJuno/RELEASE_GCC5 -t GCC5 -b RELEASE -p /work/maint/edk2-platforms/Platform/ARM/Juno/ArmJuno.dsc -a AARCH64 -D "EFI_SOURCE=/work/maint/edk2/EdkCompatibilityPkg" -D "EDK_SOURCE=/work/maint/edk2/EdkCompatibilityPkg" -D "TOOL_CHAIN_TAG=GCC5" -D "TOOLCHAIN=GCC5" -D "TARGET=RELEASE" -D "FAMILY=GCC" -D "WORKSPACE=/work/maint/edk2" -D "EDK_TOOLS_PATH=/work/maint/edk2/BaseTools" -D "ARCH=AARCH64" -D "ECP_SOURCE=/work/maint/edk2/EdkCompatibilityPkg" > > [/work/maint/edk2] > > > > - Failed - > > >>> > > > > And when I copy and paste the above command manually, I get: > > > > <<< > > GenFds.py... > > /work/maint/edk2-platforms/Platform/ARM/Juno/ArmJuno.dsc(34): error > > 000E: File/directory not found in workspace > > /work/maint/edk2-platforms/Platform/ARM/Juno/Platform/ARM/VExpress/ArmVExpress.dsc.inc > > /work/maint/edk2/Platform/ARM/VExpress/ArmVExpress.dsc.inc > > >>> > > > > So, to an uniformed observer, it seems the portion > > !include Platform/ARM/VExpress/ArmVExpress.dsc.inc > > from ArmJuno.dsc > > gets expanded to "directory ArmJuno.dsc is in" + "Platform/ARM/VExpress/ArmVExpress.dsc.inc" > > whereas I was hoping for it to try to find a match for > > "Platform/ARM/VExpress/ArmVExpress.dsc.inc" along PACKAGES_PATH (and > > find one in edk2-platforms). > > > > I also have the impression that something similar is happening in > > ArmJuno.fdf for the line > > INF RuleOverride=ACPITABLE Platform/ARM/Juno/AcpiTables/AcpiTables.inf > > generating the error message from the original build command. > > > > But I'm not quite sure how to debug these issues (short of fully > > figuring out the innards of MultipleWorkspace.py, MetaFileParser.py > > and a few others). > > Any ideas of where to look, or even what is going on? > > Would these cases be expected to work? > > > > / > > Leif > > _______________________________________________ > > edk2-devel mailing list > > edk2-devel@lists.01.org > > https://lists.01.org/mailman/listinfo/edk2-devel