Patchwork [U-Boot] Fix wrong >4G filtering

login
register
mail settings
Submitter Vladimir 'φ-coder/phcoder' Serbinenko
Date April 7, 2013, 3:33 p.m.
Message ID <516191E2.8040403@gmail.com>
Download mbox | patch
Permalink /patch/234508/
State Changes Requested
Delegated to: Simon Glass
Headers show

Comments

Vladimir 'φ-coder/phcoder' Serbinenko - April 7, 2013, 3:33 p.m.
Filtering of >4G chunks is wrong and one of such chunks can be improperly declared
as usable ram top after being cut down to 4G, so uboot tries to relocate to ROM.
Simon Glass - April 15, 2013, 11:51 p.m.
On Sun, Apr 7, 2013 at 8:33 AM, Vladimir 'φ-coder/phcoder' Serbinenko
<phcoder@gmail.com> wrote:
> Filtering of >4G chunks is wrong and one of such chunks can be improperly declared
> as usable ram top after being cut down to 4G, so uboot tries to relocate to ROM.
>

With commit message re-formatted to 80cols, applied to x86/master, thank you.
Simon Glass - April 16, 2013, 8:03 p.m.
+Tom

Hi Vladimir,

On Mon, Apr 15, 2013 at 4:51 PM, Simon Glass <sjg@chromium.org> wrote:
> On Sun, Apr 7, 2013 at 8:33 AM, Vladimir 'φ-coder/phcoder' Serbinenko
> <phcoder@gmail.com> wrote:
>> Filtering of >4G chunks is wrong and one of such chunks can be improperly declared
>> as usable ram top after being cut down to 4G, so uboot tries to relocate to ROM.
>>
>
> With commit message re-formatted to 80cols, applied to x86/master, thank you.

My mistake - this is missing a signoff, and also should not have a
Nickname in your email.

Can you please resend this patch with these problems fixed?

Regards,
Simon

Patch

diff --git a/arch/x86/cpu/coreboot/sdram.c b/arch/x86/cpu/coreboot/sdram.c
index 786009c..3b8dd5e 100644
--- a/arch/x86/cpu/coreboot/sdram.c
+++ b/arch/x86/cpu/coreboot/sdram.c
@@ -77,8 +77,11 @@  ulong board_get_usable_ram_top(ulong total_size)
 			continue;
 
 		/* Filter memory over 4GB. */
+		if (start > 0xffffffffULL)
+			continue;
 		if (end > 0xffffffffULL)
-			end = 0x100000000ULL;
+			end = 0xffffffffULL;
+
 		/* Skip this region if it's too small. */
 		if (end - start < total_size)
 			continue;