[coreboot] [PATCH] Convert all Intel 440BX boards to Cache-as-RAM (CAR)

Eric W. Biederman ebiederm at xmission.com
Fri Oct 8 05:24:04 CEST 2010


Idwer Vollering <vidwer at gmail.com> writes:

> 2010/10/7 Stefan Reinauer <stefan.reinauer at coresystems.de>
>
>     On 10/6/10 2:27 PM, Idwer Vollering wrote:
>
>         2010/10/6 Uwe Hermann <uwe at hermann-uwe.de>
>
>             See patch.
>
>
>         Here is a fix for building on 32-bit platforms:
>
>         Index: src/northbridge/intel/i440bx/raminit.c
>         ===================================================================
>         --- src/northbridge/intel/i440bx/raminit.c      (revision 5917)
>         +++ src/northbridge/intel/i440bx/raminit.c      (working copy)
>         @@ -657,8 +657,8 @@
>          }
>
>          struct dimm_size {
>         -       unsigned long side1;
>         -       unsigned long side2;
>         +       uint32_t side1;
>         +       uint32_t side2;
>          };
>
>
>     What's that error?
>
>
> In file included from src/mainboard/asus/p2b/romstage.c:46:
> src/northbridge/intel/i440bx/raminit.c: In function ‘spd_get_dimm_size’:
> src/northbridge/intel/i440bx/raminit.c:717: error: format ‘%04x’ expects type
> ‘unsigned int’, but argument 3 has type ‘long unsigned int’
>  
>
>     It seems the above should be about the same on 32bit platforms, especially
>     it should be the same on 32bit platforms and 64bit platforms, since the
>     code is always compiled 32bit...
>     What did I miss?
>
>
> Should it be something else than uint32_t ? Plain int ?

%04lx?

uint32_t could be typedef'd to either unsigned long or unsigned on
a 32bit platform.  Using it is unlikely to deterministically solve
any printf format woes.

Eric




More information about the coreboot mailing list