Hello Olivier and Expert,
I am trying to pass the non-contiguous physical memory map to kernel on ARMv8.
Can the UEFI pass non-contiguous physical memory area to the kernel?
I mean, Physical memory is divided into 0x80000000-0xFFFFFFFF(2GB) and 0x880000000- 0xFFFFFFFFF(30GB).
If possible, Could you explain how to describe in UEFI?
Otherwise, Could you let me know the reason?
Thanks,
thanks Olivier for the patches.
I am able to try these patches on our simulator for basic functionality.
i think, it is better to use ArmGicGetSupportedArchRevision to get the GIC
version in file
ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressSecLibRTSM/RTSMSec.c.
--- a/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressSecLibRTSM/RTSMSec.c
+++ b/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressSecLibRTSM/RTSMSec.c
@@ -56,7 +56,7 @@ ArmPlatformSecInitialize (
IN UINTN MpId
)
{
- UINT32 Identification;
+ ARM_GIC_ARCH_REVISION Revision;^M
// If it is not the primary core then there is nothing to do
if (!ArmPlatformIsPrimaryCore (MpId)) {
@@ -73,13 +73,12 @@ ArmPlatformSecInitialize (
MmioAndThenOr32 (SP810_CTRL_BASE + SP810_SYS_CTRL_REG,
~SP810_SYS_CTRL_TIMER3_EN, SP810_SYS_CTRL_TIMER3_TIMCLK);
// Read the GIC Identification Register
- Identification = ArmGicGetInterfaceIdentification (PcdGet32
(PcdGicInterruptInterfaceBase));
-
+ Revision = ArmGicGetSupportedArchRevision ();^M
// Check if we are GICv3
- if (ARM_GIC_ICCIIDR_GET_ARCH_VERSION(Identification) >= 0x3) {
+ if (Revision == ARM_GIC_ARCH_REVISION_3) {^M
InitializeGicV3 ();
}
-
+^M
return RETURN_SUCCESS;
}
btw, not able to apply your patches using git am, however able to apply
cleanly using patch command.
regards
ganapat
On Thu, Mar 27, 2014 at 10:32 PM, Olivier Martin <olivier.martin(a)arm.com>wrote:
> Please find the attached patches that should add GICv3 support to UEFI.
> This
> patchset has been validated on SVN rev15402 (27th March 2014).
> The testing and review have been limited (reason why these patches have not
> been pushed to EDK2 repository). I do not have any ETA.
>
> The GicDxe support GICv2 and GICv3 without requiring to be rebuilt.
> Feedbacks and comments are welcome.
>
>
> > -----Original Message-----
> > From: linaro-uefi-bounces(a)lists.linaro.org [mailto:linaro-uefi-
> > bounces(a)lists.linaro.org] On Behalf Of Olivier Martin
> > Sent: 17 March 2014 17:47
> > To: 'Ganapatrao Kulkarni'; Leif Lindholm
> > Cc: linaro-uefi(a)lists.linaro.org
> > Subject: Re: [Linaro-uefi] Any plans to support GICv3 on UEFI
> >
> > I started to work on a UEFI GICv3 driver last year. It is almost
> > working but
> > I had to switch to higher priority tasks since then.
> > I have the plan to clean and publish this driver soon. I would say by
> > then
> > of April, but I do not want to commit to any date.
> > If it is blocking you then I can send an early version of the patch.
> >
> > Olivier
> >
> > > -----Original Message-----
> > > From: linaro-uefi-bounces(a)lists.linaro.org [mailto:linaro-uefi-
> > > bounces(a)lists.linaro.org] On Behalf Of Ganapatrao Kulkarni
> > > Sent: 15 March 2014 06:58
> > > To: Leif Lindholm
> > > Cc: linaro-uefi(a)lists.linaro.org
> > > Subject: Re: [Linaro-uefi] Any plans to support GICv3 on UEFI
> > >
> > > Thanks Leif
> > >
> > > On Sat, Mar 15, 2014 at 12:31 AM, Leif Lindholm
> > > <leif.lindholm(a)linaro.org> wrote:
> > > > Hi Ganapat,
> > > >
> > > > On Fri, Mar 14, 2014 at 08:01:34PM +0530, Ganapatrao Kulkarni
> > wrote:
> > > >> I am using git://git.linaro.org/uefi/linaro-edk2.git and i see the
> > > >> comments saying
> > > >> /* Initialize GICv3 to expose it as a GICv2 as UEFI does not
> > support
> > > >> GICv3 yet */
> > > >>
> > > >> Anyone is working/plan to add GICv3 driver?
> > > >
> > > > This is part of the architectural support, and pulled in that way
> > > > from Tianocore. It supports using a GICv3 in "legacy" GICv2 mode.
> > > >
> > > > I expect ARM will provide a non-legacy GICv3 driver at some point,
> > > > but I do not know the exact roadmap.
> > > >
> > > > Regards,
> > > >
> > > > Leif
> > >
> > > _______________________________________________
> > > Linaro-uefi mailing list
> > > Linaro-uefi(a)lists.linaro.org
> > > http://lists.linaro.org/mailman/listinfo/linaro-uefi
> >
> >
> >
> >
> >
> > _______________________________________________
> > Linaro-uefi mailing list
> > Linaro-uefi(a)lists.linaro.org
> > http://lists.linaro.org/mailman/listinfo/linaro-uefi
>
Hi Leif,
I have make a new multiboot support patch following your suggestion:
(1)break the multiboot-spcecific code out into a separate source file: multiboot.c
(2)use more generic terminology
(3)try to avoid change existing Linux loader
I have tested it locally, it works fine for me.
Please check the patch, and provide some suggestions.
Thank you very much! :-)
--
Best regards,
Fu Wei
LAVA Engineer From Red Hat
LAVA Team
Linaro.org | Open source software for ARM SoCs
Ph: +86 186 2020 4684 (mobile)
IRC: fuwei
Skype: tekkamanninja
Room 1512, Regus One Corporate Avenue,Level 15,
One Corporate Avenue,222 Hubin Road,Huangpu District,
Shanghai,China 200021
I always build a single UEFI binary for Foundation and FVP Base models by
defining ARM_FOUNDATION_FVP, so I guess I am now going to have problems
when I run on an AEMv8 4+4 model?
What would setting cores to 8 and clusters to 2 do to the Foundation
model? Would it work OK?
On 3 April 2014 21:04, <oliviermartin(a)users.sourceforge.net> wrote:
> Revision: 15430
> http://sourceforge.net/p/edk2/code/15430
> Author: oliviermartin
> Date: 2014-04-03 20:04:39 +0000 (Thu, 03 Apr 2014)
> Log Message:
> -----------
> ArmPlatformPkg/ArmVExpress-FVP-AArch64: Fixed number of cores and cluster
> for Base and Foundation models
>
> Contributed-under: TianoCore Contribution Agreement 1.0
> Signed-off-by: Olivier Martin <olivier.martin(a)arm.com>
>
> Modified Paths:
> --------------
> trunk/edk2/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-FVP-AArch64.dsc
>
> Modified:
> trunk/edk2/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-FVP-AArch64.dsc
> ===================================================================
> --- trunk/edk2/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-FVP-AArch64.dsc
> 2014-04-03 00:56:45 UTC (rev 15429)
> +++ trunk/edk2/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-FVP-AArch64.dsc
> 2014-04-03 20:04:39 UTC (rev 15430)
> @@ -1,5 +1,5 @@
> #
> -# Copyright (c) 2011-2013, ARM Limited. All rights reserved.
> +# Copyright (c) 2011-2014, ARM Limited. All rights reserved.
> #
> # This program and the accompanying materials
> # are licensed and made available under the terms and conditions of the
> BSD License
> @@ -80,8 +80,14 @@
> gArmPlatformTokenSpaceGuid.PcdFirmwareVendor|"ARM Fixed Virtual
> Platform"
> gEmbeddedTokenSpaceGuid.PcdEmbeddedPrompt|"ARM-FVP"
>
> +!ifndef ARM_FOUNDATION_FVP
> # Up to 8 cores on Base models. This works fine if model happens to
> have less.
> gArmPlatformTokenSpaceGuid.PcdCoreCount|8
> + gArmPlatformTokenSpaceGuid.PcdClusterCount|2
> +!else
> + # Up to 4 cores on Foundation models. This works fine if model happens
> to have less.
> + gArmPlatformTokenSpaceGuid.PcdCoreCount|4
> +!endif
>
> #
> # NV Storage PCDs. Use base of 0x0C000000 for NOR1
>
> This was sent by the SourceForge.net collaborative development platform,
> the world's largest Open Source development site.
>
>
>
> ------------------------------------------------------------------------------
> _______________________________________________
> edk2-commits mailing list
> edk2-commits(a)lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/edk2-commits
>
Hi guys,
Today, I re-tested the linaro-edk2 tree with ARM Trusted Firmware. So I report it below:
First of all, the repo and the branch status info is attached.
(1)compile linaro-edk2 using the latest uefi-tools (ALLPASS)
linaro-edk2/master(PASS)
linaro-edk2/release-prep(PASS)
linaro-edk2/release(PASS)
(2)compile the latest ARM Trusted Firmware with linaro-edk2 binarise (ALLPASS)
linaro-edk2/master(PASS)
linaro-edk2/release-prep(PASS)
linaro-edk2/release(PASS) -- useless, it can not work with ARM Trusted Firmware v0.3
(2)test all binaries
linaro-edk2/master(FAIL)
Boot successfully into uefi menu, but
(i)infinite "Synchronous Exception: ", can not boot kernel from virtblockdevice
(ii)the problems described in [Bug 1274126] still exist.
The test log is attached:linaro-edk2-master-20140404.log
linaro-edk2/release-prep(FAIL)
Boot successfully into uefi menu, but
(i)can not setup PXE boot
(ii)have not TFTP boot setup entrance
(iii)infinite "Synchronous Exception: ", can not boot kernel from virtblockdevice
(iii)can not setup dtb properly, can not boot kernel from virtblockdevice
The test log is attached:linaro-edk2-release-prep-20140404.log
*linaro-edk2/release(PASS) -- work with ARM Trusted Firmware v0.2*
Boot successfully into uefi menu and can boot kernel from virtblockdevice,
*But the problems described in [Bug 1274126] still exist.*
If you feel any test has some problem, please let me know, I will try again.
Thanks
--
Best regards,
Fu Wei
Enterprise Server Engineer From Red Hat
LEG Team
Linaro.org | Open source software for ARM SoCs
Ph: +86 186 2020 4684 (mobile)
IRC: fuwei
Skype: tekkamanninja
Room 1512, Regus One Corporate Avenue,Level 15,
One Corporate Avenue,222 Hubin Road,Huangpu District,
Shanghai,China 200021
Hello all,
Just so you know, both ARM Trusted Firmware (TF) and UEFI have changed.
The 13.03 release has TF code that is pre v0.3. Since v0.3, TF expects to
load all other bootloader stages from a "Firmware Image Package" (aka FIP).
This includes UEFI.
Also, the upstream UEFI code for FVP has changed. It is no longer built to
run from NOR flash at address zero, but instead, it runs from RAM.
This means that you cannot use the lastest TF with an old UEFI binary and
you cannot use the latest UEFI binary with the old TF.
I've updated the CI job for FVP's TF so that it now builds UEFI, then
builds TF, then build the FIP blob with the UEFI binary inside it.
Currently the job builds from the release-prep branch of linaro-edk2.git.
This actually contains the upstream Tianocore code at the moment, so it
will be missing a lot of the features you might want, like ethernet, or
Linaro's local-FDT mods.
I'll run another job after release-prep has been updated. And I'll have to
update the hwpack to include fip.bin and so on.
You can find the CI job here:
https://ci.linaro.org/jenkins/view/components/job/fvp-pre-boot/
With the output binaries here:
http://snapshots.linaro.org/components/kernel/fvp-pre-boot/38
And you can find the script here:
http://git.linaro.org/ci/fvp-pre-boot.git
The basic commands to build it all distil down to something like:
git clone git://git.linaro.org/uefi/linaro-edk2.git
cd linaro-edk2
uefi-build.sh fvp_minimal
export BL33=`pwd`/`find . -name FVP_AARCH64_EFI.fd`
cd ..
git clone git://git.linaro.org/arm/models/arm-trusted-firmware.git
cd arm-trusted-firmware
CROSS_COMPILE=aarch64-linux-gnu- make PLAT=${platform} all fip
Then you will have bl1.bin and fip.bin in build/fvp/release/.
When you launch the FVP model, you specify the bl1.bin as normal. However,
instead of passing the UEFI binary to the NOR Flash arg, you pass fip.bin,
eg:
-C bp.flashloader0.fname=<path to>/fip.bin
Hope that all helps.
Cheers,
Ryan.
-------- Original Message --------
Subject: Test result for linaro-edk2 tree
Date: Wed, 02 Apr 2014 13:15:56 +0800
From: Fu Wei <fu.wei(a)linaro.org>
Reply-To: Fu Wei <fu.wei(a)linaro.org>
Organization: Linaro
To: Leif Lindholm <leif.lindholm(a)linaro.org>
CC: anmar.oueja(a)linaro.org <anmar.oueja(a)linaro.org>, Ilias Biris <ilias.biris(a)linaro.org>
Hi guys,
Today, I tested the linaro-edk2 tree, and met some problem. So I report it below:
First of all, tree info :
------------------------------------
$ git remote show linaro-edk2
* remote linaro-edk2
Fetch URL: git://git.linaro.org/uefi/linaro-edk2.git
Push URL: git://git.linaro.org/uefi/linaro-edk2.git
HEAD branch: master
Remote branches:
linaro-topic-a5 tracked
linaro-topic-a9 tracked
master tracked
release tracked
release-prep tracked
tianocore-edk2 tracked
$ git log --oneline linaro-edk2/master
4533f02 Merge branch 'linaro-topic-tc2' into release-prep
b6782ab Merge branch 'linaro-topic-tc1' into release-prep
3eab5ef Merge branch 'linaro-topic-pxeboot' into release-prep
9bb8bcf Merge branch 'linaro-topic-panda' into release-prep
366381f Merge branch 'linaro-topic-misc' into release-prep
55fdc3a Merge branch 'linaro-topic-leg' into release-prep
e9ec942 Merge branch 'linaro-topic-fvp' into release-prep
9832fea Merge branch 'linaro-topic-bds' into release-prep
ebb9a3a Merge branch 'linaro-topic-arndale' into release-prep
59b3d2f Merge branch 'linaro-topic-a9' into release-prep
06f642c ArmPlatformPkg/ArmVExpressPkg: add acpi support
35560e5 arm: gic: Disable local interrupts on ExitBootServices()
123cf61 SMBIOS:VE: Add SMBIOS support for ARM VE models
e65c9f0 SMBIOS:ARM: Add SMBIOS base driver on ARM Platform
-----------------------------------
the uefi-tools info:
------------------------------------
$ git remote show origin
* remote origin
Fetch URL: git://git.linaro.org/arm/uefi/uefi-tools.git
Push URL: git://git.linaro.org/arm/uefi/uefi-tools.git
HEAD branch: master
Remote branches:
add-args tracked
boot-menu-arg tracked
master tracked
Local branch configured for 'git pull':
master merges with remote master
Local ref configured for 'git push':
master pushes to master (up to date)
$ git log --oneline
bd82729 remove unused and obsolete tools
16f279f Major update to build scripts.
c729af7 rtsm_common: add FVP A9 model
cb271b3 Align uefi-build.sh for current tree.
825f628 Fix uefi-build to work with updated upstream edksetup.sh
09738bd rtsm_common: add support for FVP A15 models
cc88db0 rtsm_common: update uefi links
-----------------------------------
(1) recompile linaro-edk2/master and linaro-edk2/release-prep (FAIL)
The part of the compile log is attached : uefi_test_build.error1.log
(2) recompile linaro-edk2/release (PASS)
(3) test linaro-edk2/release binary (FAIL on TFTP boot linux) (PASS on TFTP boot GRUB, not PXE)
*The problems described in [Bug 1274126] still exist.*
But I think it is not the tftp problem, maybe there are some problems on "loader"
(4) recompile linaro-edk2/release with the latest uefi-tools. (FAIL)
The latest uefi-tools means "After fffbbc3":
----------------------------------
[tekkamanninja@fuwei uefi-tools]$ git log origin/master --oneline
023efc2 More TOOLCHAIN debug
e6875fd Add debug to workout TOOLCHAIN issues
351ccd6 Add Juno build
*fffbbc3 uefi-build: update TOOLCHAIN configuration*
bd82729 remove unused and obsolete tools
16f279f Major update to build scripts.
c729af7 rtsm_common: add FVP A9 model
cb271b3 Align uefi-build.sh for current tree.
----------------------------------
(i) Unknown toolchain version '4.8.3'
The part of the compile log is attached : uefi_tools_build.error1.log
(ii) apply a patch to solve (i)
The patch is attached : uefi-tools_Unknown_toolchain_version.patch
(iii) [GCC48] not defined
The part of the compile log is attached : uefi_tools_build.error2.log
Those are all the tests I have tried. If you feel any test is in the wrong way, please let me know, I will try again.
--
Best regards,
Fu Wei
LAVA Engineer From Red Hat
LAVA Team
Linaro.org | Open source software for ARM SoCs
Ph: +86 186 2020 4684 (mobile)
IRC: fuwei
Skype: tekkamanninja
Room 1512, Regus One Corporate Avenue,Level 15,
One Corporate Avenue,222 Hubin Road,Huangpu District,
Shanghai,China 200021
On 3 April 2014 15:44, Olivier Martin <olivier.martin(a)arm.com> wrote:
>
> > -----Original Message-----
> > From: linaro-uefi-bounces(a)lists.linaro.org [mailto:linaro-uefi-
> > bounces(a)lists.linaro.org] On Behalf Of Fu Wei
> > Sent: 03 April 2014 15:32
> > To: Leif Lindholm
> > Cc: linaro-uefi
> > Subject: [Linaro-uefi] Test result for linaro-edk2 tree V2
> >
> > Hi guys,
> > Today, I re-tested the linaro-edk2 tree. So I report it below:
> >
> > First of all, the repo and the branch status info is attached.
> >
> > (1)compile using the latest uefi-tools (ALLPASS)
> > linaro-edk2/master(PASS)
> > linaro-edk2/release-prep(PASS)
> > linaro-edk2/release(PASS)
> >
> > But as I said in last test report, maybe we can add a clean function
> > in uefi-tools to avoid some compile issue.
> >
> > (2)test all binaries
> > linaro-edk2/master(FAIL)
> > linaro-edk2/release-prep(FAIL)
> >
> > The test result is below
> > --------------------
> > [tekkamanninja@fuwei ~]$ telnet 192.168.1.16 5000
> > Trying 192.168.1.16...
> > Connected to 192.168.1.16.
> > Escape character is '^]'.
> > Booting trusted firmware boot loader stage 1
> > Built : 14:39:42, Nov 22 2013
> > Booting trusted firmware boot loader stage 2
> > BL2 Built : 14:39:42, Nov 22 2013
> > Booting trusted firmware boot loader stage 3
> > BL31 Built : 14:39:43, Nov 22 2013
>
> Which version of the Trusted Firmware are you using? If it v0.3, have you
> heard about FIP and fip_create? If no, that is your issue ;-)
> See section 'Creating a Firmware Image Package' of
>
> https://github.com/ARM-software/arm-trusted-firmware/blob/master/docs/user-g
> uide.md
>
>
He is using v0.2. That's what the last release was.
The next release will probably be completely broken because of the need to
co-ordinate UEFI and TF.
> Which version of SVN version of the public EDK2 are you based?
>
>
> > (just stop here)
> > --------------------
> >
> > linaro-edk2/release(PASS)
> >
> > Boot successfully into uefi menu.
> > *But the problems described in [Bug 1274126] still exist.*
> >
> >
> > If you feel any test has some problem, please let me know, I will try
> > again.
> > Thanks :-)
> >
> > --
> > Best regards,
> >
> > Fu Wei
> > Enterprise Server Engineer From Red Hat
> > LEG Team
> > Linaro.org | Open source software for ARM SoCs
> > Ph: +86 186 2020 4684 (mobile)
> > IRC: fuwei
> > Skype: tekkamanninja
> > Room 1512, Regus One Corporate Avenue,Level 15,
> > One Corporate Avenue,222 Hubin Road,Huangpu District,
> > Shanghai,China 200021
>
>
>
>
> _______________________________________________
> Linaro-uefi mailing list
> Linaro-uefi(a)lists.linaro.org
> http://lists.linaro.org/mailman/listinfo/linaro-uefi
>
Hi guys,
Today, I re-tested the linaro-edk2 tree. So I report it below:
First of all, the repo and the branch status info is attached.
(1)compile using the latest uefi-tools (ALLPASS)
linaro-edk2/master(PASS)
linaro-edk2/release-prep(PASS)
linaro-edk2/release(PASS)
But as I said in last test report, maybe we can add a clean function in uefi-tools to avoid some compile issue.
(2)test all binaries
linaro-edk2/master(FAIL)
linaro-edk2/release-prep(FAIL)
The test result is below
--------------------
[tekkamanninja@fuwei ~]$ telnet 192.168.1.16 5000
Trying 192.168.1.16...
Connected to 192.168.1.16.
Escape character is '^]'.
Booting trusted firmware boot loader stage 1
Built : 14:39:42, Nov 22 2013
Booting trusted firmware boot loader stage 2
BL2 Built : 14:39:42, Nov 22 2013
Booting trusted firmware boot loader stage 3
BL31 Built : 14:39:43, Nov 22 2013
(just stop here)
--------------------
linaro-edk2/release(PASS)
Boot successfully into uefi menu.
*But the problems described in [Bug 1274126] still exist.*
If you feel any test has some problem, please let me know, I will try again.
Thanks :-)
--
Best regards,
Fu Wei
Enterprise Server Engineer From Red Hat
LEG Team
Linaro.org | Open source software for ARM SoCs
Ph: +86 186 2020 4684 (mobile)
IRC: fuwei
Skype: tekkamanninja
Room 1512, Regus One Corporate Avenue,Level 15,
One Corporate Avenue,222 Hubin Road,Huangpu District,
Shanghai,China 200021
thanks olivier and Leif.
ganapat
On Wed, Apr 2, 2014 at 11:08 PM, Olivier Martin <olivier.martin(a)arm.com>wrote:
> Hi Ganapat,
>
> The issue is actually in GetEnvironmentVariable(). The function should
> have copied the default value to reflect the behaviour of value loaded from
> RUNTIME_SERVICES.GetVariable().
>
> I fixed the issue in SVN rev 15427 (2nd April 2014).
>
> Thanks a lot for having reported the issue,
>
> Olivier
>
>
>
> *From:* linaro-uefi-bounces(a)lists.linaro.org [mailto:
> linaro-uefi-bounces(a)lists.linaro.org] *On Behalf Of *Ganapatrao Kulkarni
> *Sent:* 01 April 2014 06:57
> *To:* linaro-uefi(a)lists.linaro.org
> *Subject:* Re: [Linaro-uefi] ARM64: seeing FDT DevicePath node
> Corruption!!
>
>
>
> any comments?
>
>
>
>
>
> On Mon, Mar 24, 2014 at 5:10 PM, Ganapatrao Kulkarni <gpkulkarni(a)gmail.com>
> wrote:
>
> In my case, both variables DefaultFdtDevicePath and FdtDevicePath are
> holding the same address.
> this is because the function gRT->GetVariable (as called from
> GetEnvironmentVariable) returing status as 14(EFI_NOT_FOUND)
> and hence code setting FdtDevicePath same as DefaultFdtDevicePath
> (This is rootcause for the issue what i explained in previous email).
>
> IMHO, it is a potential bug to execute FreePool (DefaultFdtDevicePath)
> unconditionally.
>
> the probable fix could be,
>
> diff --git a/ArmPlatformPkg/Bds/BootOption.c
> b/ArmPlatformPkg/Bds/BootOption.c
> index edd193e..be93d28 100644
> --- a/ArmPlatformPkg/Bds/BootOption.c
> +++ b/ArmPlatformPkg/Bds/BootOption.c
> @@ -90,6 +90,7 @@ BootOptionStart (
> Status = GetEnvironmentVariable ((CHAR16 *)L"Fdt",
> &gArmGlobalVariableGuid,
> DefaultFdtDevicePath, &FdtDevicePathSize, (VOID
> **)&FdtDevicePath);
> ASSERT_EFI_ERROR(Status);
> + if (DefaultFdtDevicePath != FdtDevicePath)
> FreePool (DefaultFdtDevicePath);
> }
> Status = BdsBootLinuxFdt (BootOption->FilePathList,
>
>
> please comment?
>
> regards
> Ganapat
>
>
>
>
> On Sun, Mar 23, 2014 at 11:50 PM, Ganapatrao Kulkarni
> <gpkulkarni(a)gmail.com> wrote:
> > Hi,
> >
> > I am trying to port edk2 to our ARM64 platform simulator and seeing
> > strange behaviour.
> >
> > I see the content of FdtDevicePath is getting changed, after executing
> > the function
> > BdsLoadImage() to load the Linux Image file.
> > Because of this, when BdsLoadImage function is called to load the
> > fdt.dtb file, the execution goes in infinite loop.
> >
> > After debugging, i am seeing that, it is happenig due to corrution of
> > FDT device path.
> >
> > Before the BdsLoadImage() called to load Linux Image file,
> > the FDT device path(0xFBC8B918) content is valid, ie
> > DevicePathFdt->Type = 1.
> > DevicePathFdt ->SubType= 4.
> > DevicePathFdt->Lenght[0] = 20.
> >
> > After the Linux Image is loaded, it is changes as below,
> > DevicePathFdt->Type = 112
> > DevicePathFdt ->SubType= 111
> > DevicePathFdt->Lenght[0] = 100
> >
> > further debugging, i see this happening by below lines of code, in
> function
> > CoreLocateHandle(), MdeModulePkg/Core/Dxe/Hand/Locate.c
> >
> > //
> > // Increase the resulting buffer size, and if this handle
> > // fits return it
> > //
> > ResultSize += sizeof(Handle);
> > if (ResultSize <= *BufferSize) {
> > *ResultBuffer = Handle; <= this line is corrupting the
> > devicepath of FDT.
> > ResultBuffer += 1;
> > }
> > }
> >
> > Not able to understand what causing this corruption.
> > Any clue on what is going wrong?
> > Any suggestions for further debugging?
> >
> > BTW, I am using edk2 source from
> > git://git.linaro.org/uefi/linaro-edk2.git, branch master
> >
> >
> > thanks
> > Ganapat
>
>
>