[U-Boot] [PATCH] common/memsize: panic if maxsize is not power of two
Tom Rini
trini at konsulko.com
Fri Oct 11 17:08:29 UTC 2019
On Fri, Aug 30, 2019 at 03:21:40PM +0800, Iru Cai wrote:
> The memory write and recover loop in get_ram_size() work correctly
> only if maxsize is power of two, otherwise the function will return a
> small size.
>
> Signed-off-by: Iru Cai <mytbk920423 at gmail.com>
> ---
> common/memsize.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/common/memsize.c b/common/memsize.c
> index 13b0047786..f627149a05 100644
> --- a/common/memsize.c
> +++ b/common/memsize.c
> @@ -33,6 +33,10 @@ long get_ram_size(long *base, long maxsize)
> long size;
> int i = 0;
>
> + if ((maxsize & (maxsize - 1)) != 0) {
> + panic("maxsize must be power of 2!");
> + }
> +
> for (cnt = (maxsize / sizeof(long)) >> 1; cnt > 0; cnt >>= 1) {
> addr = base + cnt; /* pointer arith! */
> sync();
The first problem is that this causes cl-som-imx7 to fail to link due to
missing a reference to reset_cpu(). The second problem is, we're
increasing everyone with a new string included. Is this a problem that
can really be found outside of development (and so caught and memory
init fixed) or is something else going on here? Thanks!
--
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20191011/9381ce2b/attachment.sig>
More information about the U-Boot
mailing list