From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alexey Brodkin Date: Mon, 16 Nov 2015 17:25:54 +0000 Subject: [U-Boot] [PATCH v5] Fix board init code to respect the C runtime environment In-Reply-To: <1447690927-18871-1-git-send-email-albert.u.boot@aribaud.net> References: <1447690927-18871-1-git-send-email-albert.u.boot@aribaud.net> Message-ID: <1447694754.6240.31.camel@synopsys.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hi Albert, On Mon, 2015-11-16 at 17:22 +0100, Albert ARIBAUD wrote: > board_init_f_mem() alters the C runtime environment's > stack it is actually already using. This is not a valid > behaviour within a C runtime environment. > > Split board_init_f_mem into C functions which do not alter > their own stack and always behave properly with respect to > their C runtime environment. > > Signed-off-by: Albert ARIBAUD > --- > Cc:ing custodians for all architectures which this > patch affects. > > This patch has been build-tested for all there > architectures, and run-tested on ARM OpenRD Client. > > For NIOS2, this patch contains all manual v1 and v2 > fixes by Thomas. > > For x86, this patch contains all manual v2 fixes by Bin. > > Changes in v5: > - Reword commit message (including summary/subject) > - Reword comments in ARC code > > Changes in v4: > - Add comments on reserving GD at the lowest location > - Add comments on post-incrementing base for each "chunk" > > Changes in v3: > - Rebase after commit 9ac4fc82 > - Simplify malloc conditional as per commit 9ac4fc82 > - Fix NIOS2 return value register (r2, not r4) > - Fix x86 subl argument inversion > - Group allocations in a single function > - Group initializations in a single function > > Changes in v2: > - Fix all checkpatch issues > - Fix board_init_f_malloc prototype mismatch > - Fix board_init_[f_]xxx typo in NIOS2 > - Fix aarch64 asm 'sub' syntax error > > arch/arc/lib/start.S | 16 +++--- > arch/arm/lib/crt0.S | 6 ++- > arch/arm/lib/crt0_64.S | 6 ++- > arch/microblaze/cpu/start.S | 4 +- > arch/nios2/cpu/start.S | 13 +++-- > arch/powerpc/cpu/ppc4xx/start.S | 10 ++-- > arch/x86/cpu/start.S | 5 +- > arch/x86/lib/fsp/fsp_common.c | 4 +- > common/init/board_init.c | 108 +++++++++++++++++++++++++++++++++++----- > include/common.h | 33 +++++------- > 10 files changed, 146 insertions(+), 59 deletions(-) Looks good to me now, thanks! -Alexey