From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Chou Date: Sun, 29 Nov 2015 14:13:30 +0800 Subject: [U-Boot] [PATCH v7 1/2] Fix board init code to respect the C runtime environment In-Reply-To: <1448470593-23998-1-git-send-email-albert.u.boot@aribaud.net> References: <1448470593-23998-1-git-send-email-albert.u.boot@aribaud.net> Message-ID: <565A978A.8080204@wytron.com.tw> 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 2015?11?26? 00:56, 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 > --- > Copying custodians for all architectures which this > patch affects. > > This patch has been build-tested for all affected > architectures except NIOS2, 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 v7: None > Changes in v6: > - Switch from size- to address-based reservation > - Add comments on gdp_tr vs gd use wrt arch_setup_gd. > - Clarify that this is about the *early* malloc arena > > 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 | 12 +++-- > arch/arm/lib/crt0.S | 3 +- > arch/arm/lib/crt0_64.S | 4 +- > arch/microblaze/cpu/start.S | 4 +- > arch/nios2/cpu/start.S | 14 ++++-- > arch/powerpc/cpu/ppc4xx/start.S | 6 ++- > arch/x86/cpu/start.S | 3 +- > arch/x86/lib/fsp/fsp_common.c | 4 +- > common/init/board_init.c | 109 ++++++++++++++++++++++++++++++++++++---- > include/common.h | 34 ++++++------- > 10 files changed, 144 insertions(+), 49 deletions(-) > Acked-by: Thomas Chou