From: Albert ARIBAUD <albert.u.boot@aribaud.net>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v3 2/8] board_init_f_mem(): Don't require memset()
Date: Mon, 19 Oct 2015 07:21:54 +0200 [thread overview]
Message-ID: <20151019072154.6b33962d@lilith> (raw)
In-Reply-To: <CAPnjgZ3SejtaS1jGcBxt7BjLdjGPfwHTBdALn9HrqjczWPd7qw@mail.gmail.com>
Hello Simon,
On Sun, 18 Oct 2015 14:38:06 -0600, Simon Glass <sjg@chromium.org>
wrote:
> Hi Albert,
>
> On 18 October 2015 at 10:28, Albert ARIBAUD <albert.u.boot@aribaud.net> wrote:
> > Hello Simon,
> >
> > On Sat, 17 Oct 2015 15:06:55 -0600, Simon Glass <sjg@chromium.org>
> > wrote:
> >> Unfortunately memset() is not always available, so provide a substitute when
> >> needed.
> >>
> >> Signed-off-by: Simon Glass <sjg@chromium.org>
> >> ---
> >>
> >> Changes in v3: None
> >> Changes in v2:
> >> - Add comments as to why this is needed, deal with arch-specific memset()
> >>
> >> common/init/board_init.c | 18 ++++++++++++++++++
> >> 1 file changed, 18 insertions(+)
> >>
> >> diff --git a/common/init/board_init.c b/common/init/board_init.c
> >> index e7ebca7..c113a80 100644
> >> --- a/common/init/board_init.c
> >> +++ b/common/init/board_init.c
> >> @@ -11,6 +11,16 @@
> >>
> >> DECLARE_GLOBAL_DATA_PTR;
> >>
> >> +/*
> >> + * It isn't trivial to figure out whether memcpy() exists. The arch-specific
> >> + * memcpy() is not normally available in SPL due to code size.
> >> + */
> >> +#if !defined(CONFIG_SPL_BUILD) || \
> >> + (defined(CONFIG_SPL_LIBGENERIC_SUPPORT) && \
> >> + !defined(CONFIG_USE_ARCH_MEMSET))
> >> +#define _USE_MEMCPY
> >> +#endif
> >> +
> >> /* Unfortunately x86 can't compile this code as gd cannot be assigned */
> >> #ifndef CONFIG_X86
> >> __weak void arch_setup_gd(struct global_data *gd_ptr)
> >> @@ -22,6 +32,9 @@ __weak void arch_setup_gd(struct global_data *gd_ptr)
> >> ulong board_init_f_mem(ulong top)
> >> {
> >> struct global_data *gd_ptr;
> >> +#ifndef _USE_MEMCPY
> >> + int *ptr, *end;
> >> +#endif
> >>
> >> /* Leave space for the stack we are running with now */
> >> top -= 0x40;
> >> @@ -29,7 +42,12 @@ ulong board_init_f_mem(ulong top)
> >> top -= sizeof(struct global_data);
> >> top = ALIGN(top, 16);
> >> gd_ptr = (struct global_data *)top;
> >> +#ifdef _USE_MEMCPY
> >> memset(gd_ptr, '\0', sizeof(*gd));
> >> +#else
> >> + for (ptr = (int *)gd_ptr, end = (int *)(gd_ptr + 1); ptr < end; )
> >
> > Nitpick here: There is little point in naming a variable just for
> > it to be set and used once. Without 'end', the compiler will be just as
> > fine if ptr is directly tested against (int *)(gd_ptr + 1), and human
> > readers won't wonder why 'end' was created.
>
> Well it makes it clear that the ptr goes from the start to the end.
> But it's probably clear enough just doing what you suggest, so I can
> change it.
Please do, thanks!
Amicalement,
--
Albert.
next prev parent reply other threads:[~2015-10-19 5:21 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-10-17 21:06 [U-Boot] [PATCH v3 0/8] arm: Tidy up early init Simon Glass
2015-10-17 21:06 ` [U-Boot] [PATCH v3 1/8] Move board_init_f_mem() into a common location Simon Glass
2015-10-17 21:06 ` [U-Boot] [PATCH v3 2/8] board_init_f_mem(): Don't require memset() Simon Glass
2015-10-18 16:28 ` Albert ARIBAUD
2015-10-18 20:38 ` Simon Glass
2015-10-19 5:21 ` Albert ARIBAUD [this message]
2015-10-17 21:06 ` [U-Boot] [PATCH v3 3/8] board_init_f_mem(): Don't create an unused early malloc() area Simon Glass
2015-10-17 21:06 ` [U-Boot] [PATCH v3 4/8] arm: Switch aarch64 to using generic global_data setup Simon Glass
2015-10-17 21:06 ` [U-Boot] [PATCH v3 5/8] arm: Switch 32-bit ARM " Simon Glass
2015-10-17 21:06 ` [U-Boot] [PATCH v3 6/8] microblaze: Add a TODO to call board_init_f_mem() Simon Glass
2015-10-17 21:07 ` [U-Boot] [PATCH v3 7/8] zynq: Move SPL console init out of board_init_f() Simon Glass
2015-10-18 16:36 ` Albert ARIBAUD
2015-10-18 20:37 ` Simon Glass
2015-10-19 5:15 ` Albert ARIBAUD
2015-10-17 21:07 ` [U-Boot] [PATCH v3 8/8] Revert "ARM: zynq: disable CONFIG_SYS_MALLOC_F to fix MMC boot" Simon Glass
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20151019072154.6b33962d@lilith \
--to=albert.u.boot@aribaud.net \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.