On 21 June 2013 10:51, Olivier Martin <olivier.martin(a)arm.com> wrote:
> If you want to use PEI Core (EDK2_SKIP_PEICORE=0) in CTA15-A7, you would
> need to add support ... Which is not the case today!
> Have a look at the macro EDK2_SKIP_PEICORE usage in RTSM-A9x4 DSC and FDF
> file.
Oh, I don't want to add support ;-) but I was using this patch a long
time ago when I was attempting to do such crazy things due to various
bugs we found interacting with Boot Monitor, etc...
So I ended up keeping this patch, even though it is never used.
But as you say, the skip support isn't there, so perhaps I should just
drop this one?
>
>> -----Original Message-----
>> From: Ryan Harkin [mailto:ryan.harkin@linaro.org]
>> Sent: 21 June 2013 09:05
>> To: ryan.harkin(a)linaro.org; edk2-devel(a)lists.sourceforge.net;
>> patches(a)linaro.org; boot-architecture(a)lists.linaro.org; Olivier Martin
>> Subject: [PATCH 2/9] ArmPlatformPkg/ArmVExpressPkg: CTA15-A7: Allow
>> EDK2_SKIP_PEICORE to be specified at build time
>>
>> The original BSP for TC2 hard codes EDK2_SKIP_PEICORE=1, but this
>> change
>> allows the user to over-ride the value at build time.
>>
>> Signed-off-by: Ryan Harkin <ryan.harkin(a)linaro.org>
>> ---
>> .../ArmVExpressPkg/ArmVExpress-CTA15-A7.dsc | 2 ++
>> 1 file changed, 2 insertions(+)
>>
>> diff --git a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA15-A7.dsc
>> b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA15-A7.dsc
>> index c8b637a..58e1689 100644
>> --- a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA15-A7.dsc
>> +++ b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA15-A7.dsc
>> @@ -30,7 +30,9 @@
>> BUILD_TARGETS = DEBUG|RELEASE
>> SKUID_IDENTIFIER = DEFAULT
>> FLASH_DEFINITION =
>> ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA15-A7.fdf
>> +!ifndef $(EDK2_SKIP_PEICORE)
>> DEFINE EDK2_SKIP_PEICORE=1
>> +!endif
>>
>> !include ArmPlatformPkg/ArmVExpressPkg/ArmVExpress.dsc.inc
>>
>> --
>> 1.7.9.5
>>
>
>
>
>
>
> _______________________________________________
> boot-architecture mailing list
> boot-architecture(a)lists.linaro.org
> http://lists.linaro.org/mailman/listinfo/boot-architecture
This patch is needed to fixup some builds, such as Versatile Express A5,
otherwise they hang on boot due to the first instruction being zero.
Signed-off-by: Ryan Harkin <ryan.harkin(a)linaro.org>
---
BaseTools/Source/C/GenFv/GenFv.c | 7 +---
BaseTools/Source/C/GenFv/GenFvInternalLib.c | 48 +++++++++++----------------
2 files changed, 21 insertions(+), 34 deletions(-)
diff --git a/BaseTools/Source/C/GenFv/GenFv.c b/BaseTools/Source/C/GenFv/GenFv.c
index fa86d00..a68c7b8 100644
--- a/BaseTools/Source/C/GenFv/GenFv.c
+++ b/BaseTools/Source/C/GenFv/GenFv.c
@@ -623,12 +623,7 @@ Returns:
);
} else {
VerboseMsg ("Create Fv image and its map file");
- //
- // Will take rebase action at below situation:
- // 1. ForceRebase Flag specified to TRUE;
- // 2. ForceRebase Flag not specified, BaseAddress greater than zero.
- //
- if (((mFvDataInfo.BaseAddress > 0) && (mFvDataInfo.ForceRebase == -1)) || (mFvDataInfo.ForceRebase == 1)) {
+ if (mFvDataInfo.BaseAddressSet) {
VerboseMsg ("FvImage Rebase Address is 0x%llX", (unsigned long long) mFvDataInfo.BaseAddress);
}
//
diff --git a/BaseTools/Source/C/GenFv/GenFvInternalLib.c b/BaseTools/Source/C/GenFv/GenFvInternalLib.c
index c01e504..d143040 100644
--- a/BaseTools/Source/C/GenFv/GenFvInternalLib.c
+++ b/BaseTools/Source/C/GenFv/GenFvInternalLib.c
@@ -506,6 +506,7 @@ Returns:
EFI_STATUS
AddPadFile (
+ IN FV_INFO *FvInfo,
IN OUT MEMORY_FILE *FvImage,
IN UINT32 DataAlignment,
IN VOID *FvEnd,
@@ -537,6 +538,8 @@ Returns:
{
EFI_FFS_FILE_HEADER *PadFile;
UINTN PadFileSize;
+ UINTN PadFileOffset;
+ UINTN ExtHeaderSize;
//
// Verify input parameters.
@@ -559,32 +562,29 @@ Returns:
// This is the earliest possible valid offset (current plus pad file header
// plus the next file header)
//
- PadFileSize = (UINTN) FvImage->CurrentFilePointer - (UINTN) FvImage->FileImage + (sizeof (EFI_FFS_FILE_HEADER) * 2);
+ // The padding is added into its own FFS file (which requires a header) added before the aligned file:
+ // | ... FV data before AlignedFile ... | Pad File FFS Header | Padding | AlignedFile FFS Header (+ ExtHeader) | AlignedData
//
- // Add whatever it takes to get to the next aligned address
+ // Calculate the Offset of the Pad File from the beginning of the FV file
//
- while ((PadFileSize % DataAlignment) != 0) {
- PadFileSize++;
- }
- //
- // Subtract the next file header size
- //
- PadFileSize -= sizeof (EFI_FFS_FILE_HEADER);
-
- //
- // Subtract the starting offset to get size
- //
- PadFileSize -= (UINTN) FvImage->CurrentFilePointer - (UINTN) FvImage->FileImage;
+ PadFileOffset = (UINTN) FvImage->CurrentFilePointer - (UINTN) FvImage->FileImage;
//
- // Append extension header size
+ // Get the size of the extension header if exists
//
if (ExtHeader != NULL) {
- PadFileSize = PadFileSize + ExtHeader->ExtHeaderSize;
+ ExtHeaderSize = ExtHeader->ExtHeaderSize;
+ } else {
+ ExtHeaderSize = 0;
}
//
+ // Calculate the Size of the Padding to ensure the alignment of the data of the Next file
+ //
+ PadFileSize = DataAlignment - ((FvInfo->BaseAddress + PadFileOffset + sizeof (EFI_FFS_FILE_HEADER) + ExtHeaderSize) & (DataAlignment - 1));
+
+ //
// Verify that we have enough space for the file header
//
if (((UINTN) FvImage->CurrentFilePointer + PadFileSize) > (UINTN) FvEnd) {
@@ -1115,7 +1115,7 @@ Returns:
//
// Add pad file if necessary
//
- Status = AddPadFile (FvImage, 1 << CurrentFileAlignment, *VtfFileImage, NULL);
+ Status = AddPadFile (FvInfo, FvImage, 1 << CurrentFileAlignment, *VtfFileImage, NULL);
if (EFI_ERROR (Status)) {
Error (NULL, 0, 4002, "Resource", "FV space is full, could not add pad file for data alignment property.");
free (FileBuffer);
@@ -2304,7 +2304,7 @@ Returns:
//
// Add FV Extended Header contents to the FV as a PAD file
//
- AddPadFile (&FvImageMemoryFile, 4, VtfFileImage, FvExtHeader);
+ AddPadFile (&mFvDataInfo, &FvImageMemoryFile, 4, VtfFileImage, FvExtHeader);
//
// Fv Extension header change update Fv Header Check sum
@@ -2825,19 +2825,11 @@ Returns:
PeFileBuffer = NULL;
//
- // Don't need to relocate image when BaseAddress is zero and no ForceRebase Flag specified.
+ // Don't need to relocate image when BaseAddress is not set.
//
- if ((FvInfo->BaseAddress == 0) && (FvInfo->ForceRebase == -1)) {
+ if (FvInfo->BaseAddressSet == FALSE) {
return EFI_SUCCESS;
}
-
- //
- // If ForceRebase Flag specified to FALSE, will always not take rebase action.
- //
- if (FvInfo->ForceRebase == 0) {
- return EFI_SUCCESS;
- }
-
XipBase = FvInfo->BaseAddress + XipOffset;
--
1.7.9.5
Hi all,
Following on the previous patch, here is the armv7 UEFI runtime services
support, documented on
https://wiki.linaro.org/LEG/Engineering/Kernel/UEFI/RuntimeServices
(Do note - GRUB boot is currently the only way to actually get the
UEFI system table into the kernel.)
The patches were based off linux-linaro-tracking, and when I tried building
for upstream 3.10-rc6 it failed due to a couple of header file changes.
I will address that during cleanup before upstream submission later this
week. Oh, and there is an accidental remaining edit of an x86 ifdef in
init/main.c. That will be fixed tomorrow.
Again, early reviewing would be appreciated.
/
Leif
Hi all,
This is my first, monolithic, stab at an early_ioremap for ARMv7 - taken
straight from the head of
http://git.linaro.org/gitweb?p=people/leiflindholm/linux-uefi-runtime-servi…
I'll be cleaning up, splitting up, documenting and see if I can get it
working on non-LPAE in time, and then send it upstream later this week.
Early reviewing would be much appreciated.
/
Leif
Hi Oliver,
Sorry for the missing information. I am using version 7.1.63 of the A15
fast model. I'm using the ArmVExpress-RTSM-A15_MPCore.dsc dsc file,and
building against the linaro-tracking-2013.05 branch of the uefi-next
repository. I have been making some changes, mostly debug related.
I had made the following changes to the DSC file:
gArmPlatformTokenSpaceGuid.PcdCoreCount|1
gArmPlatformTokenSpaceGuid.PcdSendSgiToBringUpSecondaryCores|FALSE
This was running fine on a single core until I started removing some debug
prints.
Roy
On 12 June 2013 02:10, Olivier Martin <olivier.martin(a)arm.com> wrote:
> Hello Roy,****
>
> ** **
>
> Which platform are you referring to? Which EDK2 DSC file are you using for
> your UEFI firmware?****
>
> ** **
>
> Thanks,****
>
> Olivier****
>
> ** **
>
> *From:* boot-architecture-bounces(a)lists.linaro.org [mailto:
> boot-architecture-bounces(a)lists.linaro.org] *On Behalf Of *Roy Franz
> *Sent:* 12 June 2013 03:03
> *To:* boot-architecture(a)lists.linaro.org
> *Subject:* Possible race condition in multi-core EDK2****
>
> ** **
>
> ** **
>
> I've been working with the DEBUG build of EDK2, and thought I had changed
> the configuration to be 'proper' for a single core, and it ran fine on a
> single core simulation. As I started removing debug prints, I started
> getting simulator seg faults. I confirmed that the difference between
> running and crashing versions were simply debug prints.****
>
> Changing the simulation to simulator 2 cores resolved the problem. I
> suspect that there may be a race condition or some other multi-core
> detection bug that causes this crash.****
>
> ** **
>
> I don't plan to investigate this further at this point - just wanted to
> report this as I was surprised to find that a debug print being removed
> would cause the simulator to crash.****
>
> ** **
>
> Roy****
>
> ** **
>
> ** **
>
> _______________________________________________
> boot-architecture mailing list
> boot-architecture(a)lists.linaro.org
> http://lists.linaro.org/mailman/listinfo/boot-architecture
>
>
On 12 June 2013 13:07, Olivier Martin <olivier.martin(a)arm.com> wrote:
> Here is a copy of what I sent to Ryan earlier:
>
>
> Unfortunately, I cannot remove the ArmPlatformLib from PL390Gic INF file
> even if it build in most cases.
> The reason is PL390GicSec now uses ArmPlatformIsPrimaryCore() that is
> implemented by ArmPlatformLib library.
> If one day one module uses PL390GicSec but does not depend itself on
> ArmPlatformLib then there is no reason why the engineer should add
> ArmPlatformLib to the INF file of this new module to solve PL390GicSec
> dependency.
>
> A reason why it could fail would be you are using a different ArmPlatformLib
> implementation than the one you are thinking.
> A way to check that is to generate the build report:
> build -A ARM -p ... -t ... -y report.log
> And check which libraries are used by each module.
>
> Actually, I am planning to rename 'PL390GicDxe' into 'ArmGicDxe' that will
> follow the 'ARM Generic Interrupt Controller Architecture Specification'.
>
> Cheers,
> Olivier
>
Thanks Olivier!
I didn't see this before I replied to your email!
This patch will be dropped. We need to find a proper solution for
Arndale. I *guess* it should just involve reworking the platform
DSC/FDF/etc. files in [PATCH 1/2] to include the right things?
>
>
>> -----Original Message-----
>> From: boot-architecture-bounces(a)lists.linaro.org [mailto:boot-
>> architecture-bounces(a)lists.linaro.org] On Behalf Of Ryan Harkin
>> Sent: 12 June 2013 12:03
>> To: ryan.harkin(a)linaro.org; boot-architecture(a)lists.linaro.org
>> Subject: [PATCH 2/2] ArmPkg/PL390Gic: remove ArmPlatformLib from inf
>> file
>>
>> The PL390 GIC driver was including ArmPlatform in PL390GicSecLib.inf.
>>
>> This change is fine as it, however, when the Arndale platfom is fixed
>> to
>> remove its duplicated PL390 GIC driver, it hangs unless this library is
>> removed.
>>
>> Signed-off-by: Ryan Harkin <ryan.harkin(a)linaro.org>
>> ---
>> ArmPkg/Drivers/PL390Gic/PL390GicSecLib.inf | 1 -
>> 1 file changed, 1 deletion(-)
>>
>> diff --git a/ArmPkg/Drivers/PL390Gic/PL390GicSecLib.inf
>> b/ArmPkg/Drivers/PL390Gic/PL390GicSecLib.inf
>> index 205e503..5851bfe 100644
>> --- a/ArmPkg/Drivers/PL390Gic/PL390GicSecLib.inf
>> +++ b/ArmPkg/Drivers/PL390Gic/PL390GicSecLib.inf
>> @@ -31,7 +31,6 @@
>>
>> [LibraryClasses]
>> ArmLib
>> - ArmPlatformLib
>> DebugLib
>> IoLib
>> PcdLib
>> --
>> 1.7.9.5
>>
>>
>> _______________________________________________
>> boot-architecture mailing list
>> boot-architecture(a)lists.linaro.org
>> http://lists.linaro.org/mailman/listinfo/boot-architecture
>
>
>
>
>
> _______________________________________________
> boot-architecture mailing list
> boot-architecture(a)lists.linaro.org
> http://lists.linaro.org/mailman/listinfo/boot-architecture
These two patches will remove the GIC driver from the Arndale BSP, instead using the official GIC driver from the upstream tree:
[PATCH 1/2] Samsung/Arndale: remove GIC400 driver
[PATCH 2/2] ArmPkg/PL390Gic: remove ArmPlatformLib from inf file
I've already sent the second patch to Olivier for review, but as far as I can see, ArmPlatformLib is incuded in the PL390 sec lib, but it isn't needed.
Including it when booting on Arndale hangs the board. I'm guessing there are two issues:
1) if it isn't needed, we can remove it
2) but it shouldn't crash Arndale if it is included, so Arndale is most likely doing something wrong and we should probably work out what that is.
However, the general act of replacing Arndale's clone of the GIC driver seems safe. Arndale appears to have simply cloned an old version of the driver without modification. However, a couple of the bit masks may be different, so perhaps there is an underlying problem that I have not discovered?
Hence, a review by a few other people is really important.
Regards,
Ryan.
In-Reply-To:
I've been working with the DEBUG build of EDK2, and thought I had changed
the configuration to be 'proper' for a single core, and it ran fine on a
single core simulation. As I started removing debug prints, I started
getting simulator seg faults. I confirmed that the difference between
running and crashing versions were simply debug prints.
Changing the simulation to simulator 2 cores resolved the problem. I
suspect that there may be a race condition or some other multi-core
detection bug that causes this crash.
I don't plan to investigate this further at this point - just wanted to
report this as I was surprised to find that a debug print being removed
would cause the simulator to crash.
Roy
Hey all,
After my chat with Leif chat on Thurs, one thing I thought about was
bash completion for uefi-build.sh.
Turns out it's quite easy! I just pushed this commit to
uefi-tools.git [1]. It's quite dumb in that you can autocomplete
"DEBUG" or "RELEASE" even without the "-b" parameter, but hey, it
makes my life easier :-)
Cheers,
Ryan.
commit dc3ba99d46ecb87c529a475d5ff6b840cd2f7c8d
Author: Ryan Harkin <ryan.harkin(a)linaro.org>
Date: Tue Jun 11 13:00:12 2013 +0100
uefi-build: add bash completion script
Copy this script into the bash completion directory to easy entering
parameters:
$ sudo cp uefi-build.sh.bash_completion \
/etc/bash_completion.d/uefi-build.sh
Signed-off-by: Ryan Harkin <ryan.harkin(a)linaro.org>
diff --git a/uefi-build.sh.bash_completion b/uefi-build.sh.bash_completion
new file mode 100644
index 0000000..f0a5305
--- /dev/null
+++ b/uefi-build.sh.bash_completion
@@ -0,0 +1,24 @@
+# bash completion for uefi-build.sh
+# copy this file to /etc/bash_completion.d/uefi-build.s
+
+have uefi-build.sh &&
+_uefi-build.sh()
+{
+ local cur prev
+
+ COMPREPLY=()
+ _get_comp_words_by_ref -n = cur
+
+ _expand || return 0
+
+ COMPREPLY=( $( compgen -W '--help -b --build RELEASE DEBUG a5 a9
tc1 tc2 panda origen arndale rtsm_a9x4 rtsm_a15x1 rtsm_a15mpcore
rtsm_aarch6
+} &&
+complete -F _uefi-build.sh uefi-build.sh
+
+# Local variables:
+# mode: shell-script
+# sh-basic-offset: 4
+# sh-indent-comment: t
+# indent-tabs-mode: nil
+# End:
+# ex: ts=4 sw=4 et filetype=sh
[1] http://git.linaro.org/gitweb?p=arm/uefi/uefi-tools.git;a=summary
[PATCH 1/2] TC1: Fix TC1 build for latest upstream changes
[PATCH 2/2] VEA5: Fix A5 build for latest upstream changes
The two platforms are relatively simple to fix because they follow the
TC2 and A9 BSPs very closely. Perhaps close enough to some more code
to be moved to common areas ;-)
These examples will show you the simple steps you will need to take to
get your BSP working.
However, your BSP may be using old functionality that my BSPs were not.
The main change to watch out for is the deletion of the macro
IS_PRIMARY_CORE() which has been replaced with a function that the BSP
must provide. The change came about with this commit:
--------------------------------------------------------------------------------
commit bebda7ceec3d3024c76b3c2ed0c9b4e502a13d61
Author: oliviermartin <oliviermartin@6f19259b-4bc3-4df7-8a09-765794883524>
Date: Fri May 10 12:41:27 2013 +0000
ArmPlatformPkg/ArmPlatformLib: Added support for ArmPlatformIsPrimaryCore()
Checking if a core if the primary/boot core used to be done with the macro
IS_PRIMARY_CORE().
Some platforms exposes configuration registers to change the primary core.
Replacing the macro IS_PRIMARY_CORE() by ArmPlatformIsPrimaryCore() allows
some flexibility in the way to check the primary core.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Olivier Martin <olivier.martin(a)arm.com>
Reviewed-by: Leif Lindholm <leif.lindholm(a)linaro.org>
Acked-by: Ryan Harkin <ryan.harkin(a)linaro.org>
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@14344 6f19259b-4bc3-4df7-8a09-765794883524
--------------------------------------------------------------------------------
My examples provide this function in a way that works for them, however,
your platforms may use different mechanisms. I have no specific code
that was using the IS_PRIMARY_CORE() macro, so these patches will not
give an example of how you deal with those changes, but Olivier's
original patch should help a lot there.
Regards,
Ryan.
[1] https://git.linaro.org/gitweb?p=arm/uefi/uefi-next.git;a=summary
Hello UEFI folks,
I spent the day with Leif going through maintainer stuff and together
we produced the 2013.06 iteration of the Linaro UEFI tree [1].
Highlights include:
- A5, TC1, Panda, Origen and Arndale no longer build
(I will be fixing A5 and TC1 as part of -rc2, unless something
else urgent comes in and needs an -rc2)
- The -menu and -local-fdt topics have been merged into one -bds topic
to simplify upstreaming, reviewing and merging
- All topics are rebased to the latest Tianocore upstream code
- Some of our patches have made it upstream - yay! - and thus have
been removed from our topic branches
- There are more patches that we think are ready to go upstream now.
I'll start this after -rc2
Regards,
Ryan.
[1] https://git.linaro.org/gitweb?p=arm/uefi/uefi-next.git;a=summary
Hi Ryan,
Thanks for the patch system and I will follow the
same methodology.
BR,
Steve
On 4 June 2013 10:50, Ryan Harkin <ryan.harkin(a)linaro.org> wrote:
> Hi Steve,
>
> Further to our phone call, I pushed out my patch system git repo:
>
> ssh://
> linaro-private.git.linaro.org/srv/linaro-private.git.linaro.org/uefi/patche…
>
> Hope it helps!
>
> Cheers,
> Ryan.
>
> On 3 June 2013 16:23, Steven Kinney <steven.kinney(a)linaro.org> wrote:
> > Hi Ryan,
> >
> > I am focusing on maintainer tasks today and tomorrow;
> > before I start on 64-bit SCT integration. I talked to Grant on my
> one-on-one
> > Friday and he suggested applying the patches within a local repository,
> > maybe within my git.linaro.org folder, and working with you regarding
> > merging and other GIT tasks. Of course, if you have ant suggestions to
> > start getting me up so that I can be more of use to you, please let me
> know.
> > Also, Grant wanted me to start giving suggestions regarding the coding,
> and
> > I see some areas that can be commented on, but I would like to make sure
> we
> > are in sync before I start yammering on commented out code blocks and
> such.
> >
> > Anyway, I look forward to learning about this area and
> > will ping you from time to time over the next few days to get some
> specific
> > advice. Thanks for you patience and help!
> >
> > BR,
> >
> > Steve
>
[cc'ing the boot architecture list; this conversation should be in public]
On Wed, May 29, 2013 at 11:19 AM, Leif Lindholm
<leif.lindholm(a)linaro.org> wrote:
> Hi Yi,
>
> On 28 May 2013 15:52, Li Yi <yi.li(a)linaro.org> wrote:
>> just modify linux loader , add SMBIOS address information into fdt. then
>> I will modify the dmidecode to parse the /dev/devicetree to find SMBIOS
>> table pointer. Maybe this way can skip grub and kernel's modification.
>
> Ok, yes, that should work.
>
>> the only problem I care about is the address wrote into fdt ,it is a
>> real physical address, does dmidecode (tool) can read this address ,and do
>> the right thing? it need to be proved.
>
> Yes - UEFI is guaranteed to run with a 1:1 mapping, so the address you see it
> at in the UEFI linux loader is the physical address.
>
>> Grant: if kernel will use the SMBIOS's region memory, can I reserve the
>> 64M memory from the top total ,then kernel will know it's reserved ,will not
>> use the region again ,right?
>
> That should be enough.
Yes, but you shouldn't even need to do that. I just looked at the
LinuxLoader code, in particular the UEFI FDT code, and I've noticed
that the reserved regions should already be set up. Look in
ArmPkg/Library/BdsLib/BdsLinuxFdt.c, about line 420. The function
PrepareFdt() retrieves the UEFI memory map and calls fdt_add_mem_rsv()
for each region.
It does use the function IsLinuxReservedRegion() to filter the
regions, so if SMBIOS uses a different region type then you'll need to
add that type to the list.
So, if I'm correct, it should be sufficient to merely enable SMBIOS
support in UEFI and the kernel will automatically mark the SMBIOS
region as reserved. You can verify this by adding "memblock=debug" to
the kernel command line and looking at the kernel boot output. You'll
see something like this:
memblock_reserve: [0x00000000008400-0x0000000042e98c]
arm_memblock_init+0x4c/0x150
memblock_reserve: [0x00000004000000-0x0000000452f400]
arm_memblock_init+0xcc/0x150
memblock_reserve: [0x00000000004000-0x00000000008000]
arm_memblock_init+0xf0/0x150
memblock_reserve: [0x00000004530000-0x00000004537350]
arm_dt_memblock_reserve+0x30/0xb0
MEMBLOCK configuration:
memory size = 0x8000000 reserved size = 0x960cdc
memory.cnt = 0x1
memory[0x0] [0x00000000000000-0x00000007ffffff], 0x8000000 bytes
reserved.cnt = 0x4
reserved[0x0] [0x00000000004000-0x00000000007fff], 0x4000 bytes
reserved[0x1] [0x00000000008400-0x0000000042e98b], 0x42658c bytes
reserved[0x2] [0x00000004000000-0x0000000452f3ff], 0x52f400 bytes
reserved[0x3] [0x00000004530000-0x0000000453734f], 0x7350 bytes
Memory policy: ECC disabled, Data cache writeback
memblock_reserve: [0x00000007fff000-0x00000008000000]
memblock_alloc_base_nid+0x68/0x84
memblock_reserve: [0x00000007ffe000-0x00000007fff000]
memblock_alloc_base_nid+0x68/0x84
memblock_reserve: [0x00000007ffdf10-0x00000007ffe000]
memblock_alloc_base_nid+0x68/0x84
memblock_reserve: [0x00000007ffc000-0x00000007ffd000]
memblock_alloc_base_nid+0x68/0x84
memblock_reserve: [0x00000007ffb000-0x00000007ffc000]
memblock_alloc_base_nid+0x68/0x84
memblock_reserve: [0x00000007ffa000-0x00000007ffb000]
memblock_alloc_base_nid+0x68/0x84
Note: this only works with the UEFI LinuxLoader. The GRUB code doesn't
currently add the UEFI reserved regions to the FDT reserved map.
g.
Hi Roy,
Here are some very quick notes on what I found on writing UEFI applications.
I found a library called "gnuefi" which allows building EFI
applications apart from the Tianocore build tree. It looks
interesting, but has not been ported to ARM. I don't yet know if it is
worthwhile pursuing.
http://gnu-efi.sourceforge.net/
As mentioned, the Linux kernel has an EFI stub already. I could tell
you which files to look at, but really just doing a "git grep
EFI_STUB" in the kernel tree will show you all the files that you need
to care about. :-)
You'll need to figure out how to get a UEFI PE-COFF header into the
LInux kernel zImage wrapper. It shouldn't be too hard. You'll need to
look at the startup code in arch/arm/boot/compressed/head.S. The
PE-COFF header will need to go somewhere after the start: label. You
should be able to see the existing LInux kernel "header" (not much of
a header, more of a magic number) about 10 lines down from the start
label.
That's all I can write at the moment. We can talk more tomorrow.
g.
Terse information, more engineering notes than documentation, and
links to sources can be found at:
https://wiki.linaro.org/LEG/Engineering/Kernel/UEFI/RuntimeServices
Contains a few known bugs, and will need some fundamental
discussions/reengineering, but lets us start experimenting.
/
Leif
To boot linux kernel using TFTP in Arndale.
Following is the steps:
1. Apply the patches 13.03 branch. (on top of Olivers Ethernet
patches,If Olivier's patches doesn't apply, then do it manually)
2. Compile and boot as usual.
3. Wait till USB initialization and then do as shown below:
The default boot selection will start in 1 seconds
UsbEnumeratePort: Device Connect/Disconnect Normally
UsbEnumeratePort: Device Connect/Disconnect Normally
UsbEnumeratePort: Device Connect/Disconnect Normally
EhcExecTransfer: transfer failed with 8
EhcControlTransfer: error - Device Error, transfer - 8
0x9F6BDA90: Allocate pNicDevice, 792 bytes
0x9F4DCD10: Allocated timer
Installed: gEfiCallerIdGuid on 0x9F4DE390
Installed: gEfiSimpleNetworkProtocolGuid on 0x9F4DE390
MnpSyncSendPacket: No network cable detected.
MnpSyncSendPacket: No network cable detected.
MnpSyncSendPacket: No network cable detected.
MnpSyncSendPacket: No network cable detected.
ERROR: Did not find Linux kernel.
[1] SD-MMC Booting
-
PciRoot(0x0)/Pci(0x0,0x0)/USB(0x2,0x0)/USB(0x1,0x0)/USB(0x3,0x0)/IPv4(192.168.1.1)/uImage
- Arguments: root=/dev/mmcblk1p2 rw rootwait
console=ttySAC2,115200n8 init --no-log
- LoaderType: Linux kernel with global FDT
-----------------------
Global FDT Config
-
VenHw(3A02E7FE-0649-4FB4-BE4F-A862CA1872A9)/HD(2,MBR,0x000039F9,0x2000,0x1A000)/exynos5250-arndale.dtb
-----------------------
[a] Boot Manager
[b] Shell
Start: a
[1] Add Boot Device Entry
[2] Update Boot Device Entry
[3] Remove Boot Device Entry
[4] Update FDT path
[5] Return to main menu
Choice: 1
Installed Fat filesystem on 9E63E190
[1] boot (51 MB)
-
VenHw(3A02E7FE-0649-4FB4-BE4F-A862CA1872A9)/HD(2,MBR,0x000039F9,0x2000,0x1A000)
[2] VenHw(B615F1F5-5088-43CD-809C-A16E52487D00)
- VenHw(B615F1F5-5088-43CD-809C-A16E52487D00)
[3] PXE on MAC Address: 00:40:5C:26:0A:5B
- PciRoot(0x0)/Pci(0x0,0x0)/USB(0x2,0x0)/USB(0x1,0x0)/USB(0x3,0x0)
[4] TFTP on MAC Address: 00:40:5C:26:0A:5B
- PciRoot(0x0)/Pci(0x0,0x0)/USB(0x2,0x0)/USB(0x1,0x0)/USB(0x3,0x0)
Select the Boot Device: 4
Get the IP address from DHCP: [y/n] y
Get the TFTP server IP address: 192.168.1.1
File path of the EFI Application or the kernel : uImage
Is an EFI Application? [y/n] n
Boot Type: [a] ATAGS, [g] Global FDT or [l] Local FDT? [a/g/l] g
Add an initrd: [y/n] n
Arguments to pass to the binary: root=/dev/mmcblk1p2 rw rootwait
console=ttySAC2,115200n8 init --no-log
Description for this new Entry: tftp
[1] Add Boot Device Entry
[2] Update Boot Device Entry
[3] Remove Boot Device Entry
[4] Update FDT path
[5] Return to main menu
Choice: 5
[1] SD-MMC Booting
-
PciRoot(0x0)/Pci(0x0,0x0)/USB(0x2,0x0)/USB(0x1,0x0)/USB(0x3,0x0)/IPv4(192.168.1.1)/uImage
- Arguments: root=/dev/mmcblk1p2 rw rootwait
console=ttySAC2,115200n8 init --no-log
- LoaderType: Linux kernel with global FDT
[2] tftp
-
PciRoot(0x0)/Pci(0x0,0x0)/USB(0x2,0x0)/USB(0x1,0x0)/USB(0x3,0x0)/IPv4(192.168.1.1)/uImage
- Arguments: root=/dev/mmcblk1p2 rw rootwait
console=ttySAC2,115200n8 init --no-log
- LoaderType: Linux kernel with global FDT
-----------------------
Global FDT Config
-
VenHw(3A02E7FE-0649-4FB4-BE4F-A862CA1872A9)/HD(2,MBR,0x000039F9,0x2000,0x1A000)/exynos5250-arndale.dtb
-----------------------
[a] Boot Manager
[b] Shell
Start: 2
Hello.
I'm trying to boot Ubuntu using PXE from U-Boot on the Samsung
XE303C12-A01US Chromebook. I would like to understand better the point 5 of
the tutorial here :
https://wiki.linaro.org/Boards/Arndale/Setup/PXEBoot
it says : "At the u-boot prompt, set the environmental variables "serverip"
and "ipaddr" as per the board and host PC configuration. Now set the
following environmental variables as mentioned..."
the problem is that the Samsung XE303C12-A01US does not have a serial port
and I can't stop the u-boot booting and set the enviromental variables
manually. I would like to know how can I embed them inside u-boot. Also
because there is not a configuration file like boot.cmd/boot.scr like there
is on the pandaboard that can be used to pass the parameters. Thanks.
--
Mario.
This is to let you know that the migration of lists.linaro.org has been
successfully completed.
As per the email I sent on Wednesday, it may take some time for the new
address of the server to be seen by your computer. You can check this by
trying to connect to the web site:
http://lists.linaro.org/
If you are able to connect and you do not get an error, this means you are
connecting to the new server and you can send email to the lists.
If you experience any problems after the weekend and you find that you
still cannot connect to the server, please reply to this email to let us
know.
Regards
Philip
IT Services Manager
Linaro
Hi,
First of all I'm not sure if this is the right list to post this, but
I thought boot-architecture might be the best list to post.
Currently we have one hwpack for PandaBoard4430 and PandaBoardES 4460
which means that when we install the hwpack on PandaBoardES the kernel
thinks it is running on PandaBoard 4430.
However there is a HW difference between the two boards:
Audio routing is different (for capture path).
Also the hdmi pin muxing need to be different (according to the DTS files).
I can see two ways of dealing with the different versions:
1. create separate hwpacks for the revisions where only the included
DTB file is different:
PandaBoard 4430: omap4-panda.dtb
PandaBoardES: omap4-panda-es.dtb
2. Or to have single hwpack for Panda:
With the included patch in u-boot
Include both omap4-panda.dtb and omap4-panda-es.dtb files to the boot partition.
Modify the boot.txt to load different dtb based on the board:
if is_pandaES; then
setenv bootcmd "fatload mmc 0:1 0x80200000 uImage; fatload mmc 0:1
0x81600000 uInitrd; fatload mmc 0:1 0x815f0000 omap4-panda-es.dtb;
bootm 0x80200000 0x81600000 0x815f0000";
else
setenv bootcmd "fatload mmc 0:1 0x80200000 uImage; fatload mmc 0:1
0x81600000 uInitrd; fatload mmc 0:1 0x815f0000 omap4-panda.dtb; bootm
0x80200000 0x81600000 0x815f0000";
fi;
For audio we need to tell the difference between the two revision and
this is done via different DTB blob.
Thank you,
Péter
Hello
You are receiving this email because you are subscribed to one or more
mailing lists provided by the lists.linaro.org server.
IT Services are announcing planned maintenance for this server scheduled
for *Friday 15th March 2013, starting at 2pm GMT*. The purpose of the work
is to move the service to another server. There will be some disruption
during this maintenance.
In order to ensure that you do not accidentally try to use the service
while it is being moved, the current server will be shut down at 2pm.
A further email will be sent on Friday afternoon to confirm that the
migration of the service is completed. However, due to the way servers are
found, it may take a while before your computer is able to connect to the
relocated service.
After the old server has been shut down, email sent to any of the lists
will be queued, but it is possible that the sending server will still
trying to deliver the email to the old server rather than the new one when
it is started.
It is therefore *strongly* recommended that you do not send any email to an
@lists.linaro.org email address until you can connect to the new service,
which you will be able to test by trying to use a web browser to connect to
http://lists.linaro.org after you receive the email confirming that the
migration has been completed. Since the old service will be shut down, if
you are able to connect, you can be sure you have connected to the new
service.
If by Monday you are still unable to connect to the service or you are not
able to send email to an @lists.linaro.org email address, please send an
email to its(a)linaro.org.
Thank you.
Regards
Philip
IT Services Manager
Linaro