u-boot/common
Simon Glass 74d0186766 Introduce board_init_f_mem() to handle early memory layout
At present on some architectures we set up the following before calling
board_init_f():

   - global_data
   - stack
   - early malloc memory

Adding the code to support early malloc and global data setup to every
arch's assembler start-up is a pain. Also this code is not actually
architecture-specific. We can use common code for all architectures and
with a bit of care we can write this code in C.

Add a new function to deal with this. It should be called after memory
is available, with a pointer to the top of the area that should be used
before relocation. The function will set things up and return the lowest
memory address that it allocated/used. That can then be set as the top
of the stack.

Note that on some archs this function will use the stack, so the stack
pointer should be set to same value as is pased to board_init_f_mem().
A margin of 128 bytes will be left for this stack, so that it is not
overwritten. This means that 64 bytes is wasted by this early call.
This is not strictly necessary on several more modern archs, so we could
remove this at the cost of some arch-dependent code.

With this function there is no-longer any need for the assembler code to
zero global_data or set up the early malloc pointers.

Signed-off-by: Simon Glass <sjg@chromium.org>
2015-02-12 10:35:29 -07:00
..
spl spl: Change printf to puts for "Unsupported boot-device" 2015-01-28 16:58:01 -05:00
aboot.c aboot: fix block addressing for don't care chunk type 2014-10-27 17:54:09 -04:00
autoboot.c autoboot: add its own header 2014-07-18 17:53:24 -04:00
bedbug.c Consolidate bool type 2013-04-01 16:33:52 -04:00
board_f.c Introduce board_init_f_mem() to handle early memory layout 2015-02-12 10:35:29 -07:00
board_info.c generic-board: show model name in board_init_f() too 2015-01-29 17:09:49 -07:00
board_r.c microblaze: Move architecture to use generic board init 2015-02-09 15:11:56 +01:00
bootm_os.c image: bootm: Add OpenRTOS image type 2015-01-14 11:37:39 -05:00
bootm.c bootm: Factor out common parts of image decompression code 2015-01-14 11:35:43 -05:00
bootretry.c Rename bootretry functions and remove #ifdefs 2014-05-29 17:49:00 -04:00
bootstage.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
bouncebuf.c Fix a few printf argument verification warnings 2014-09-15 13:32:55 -04:00
cli_hush.c Revert "hush: fix segfault on syntax error" 2014-11-24 12:06:06 -05:00
cli_readline.c Move bootretry code into bootretry.c and clean up 2014-05-29 17:48:21 -04:00
cli_simple.c cli: Export cli_simple_process_macros for use outside of cli_simple 2014-08-21 12:01:13 -04:00
cli.c cli: hush: Adjust 'run' command to run each line of the env var 2014-10-27 11:03:33 -04:00
cmd_aes.c aes: Add 'aes' command to access AES-128-CBC 2014-03-21 16:43:58 -04:00
cmd_ambapp.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
cmd_bdinfo.c bdinfo: Show information about fdt blob via bdinfo 2015-02-09 15:13:05 +01:00
cmd_bedbug.c Use run_command_repeatable() 2014-06-11 16:25:47 -04:00
cmd_blob.c crypto/fsl: Add command for encapsulating/decapsulating blobs 2014-10-16 14:20:40 -07:00
cmd_bmp.c Coding Style cleanup: replace leading SPACEs by TABs 2013-10-14 16:06:54 -04:00
cmd_boot.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
cmd_bootldr.c Blackfin: bootldr: use common defines 2011-04-08 00:44:27 -04:00
cmd_bootm.c common: bootm: Document fake bootm sub-command 2015-01-29 13:38:42 -05:00
cmd_bootmenu.c Remove unnecessary use of hush header file 2014-05-29 17:45:31 -04:00
cmd_bootstage.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
cmd_cache.c common: commands: make commands static 2014-07-18 17:53:23 -04:00
cmd_cbfs.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
cmd_clk.c common: Add new clk command 2014-02-04 16:32:20 +01:00
cmd_console.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
cmd_cplbinfo.c various cmd_* files: fixed layout a little bit 2010-08-09 01:07:37 +02:00
cmd_cramfs.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
cmd_dataflash_mmc_mux.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
cmd_date.c Merge branch 'master' of git://git.denx.de/u-boot-i2c 2013-07-24 09:50:24 -04:00
cmd_dcr.c Add cli_ prefix to readline functions 2014-05-29 17:45:31 -04:00
cmd_demo.c dm: Prevent "demo hello" and "demo status" segfaults 2015-02-12 10:35:29 -07:00
cmd_dfu.c usb, g_dnl: generalize DFU detach functions 2014-12-18 12:26:05 +01:00
cmd_diag.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
cmd_disk.c bootm: make use of legacy image format configurable 2014-06-05 14:44:56 -04:00
cmd_display.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
cmd_dtt.c Coding Style cleanup: remove trailing white space 2013-10-14 16:06:53 -04:00
cmd_echo.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
cmd_eeprom.c Revert "common, env: Fix support for environment in i2c eeprom" 2014-10-27 11:04:00 -04:00
cmd_elf.c linux/kernel.h: sync min, max, min3, max3 macros with Linux 2014-11-23 06:48:30 -05:00
cmd_exit.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
cmd_ext2.c Fix help text of ext2load and fatload. 2014-07-22 07:44:25 -04:00
cmd_ext4.c ext4: Prepare API change for files greater than 2GB 2014-11-23 06:49:04 -05:00
cmd_fastboot.c fastboot: add support for continue command 2014-12-18 12:26:06 +01:00
cmd_fat.c fat: Prepare API change for files greater than 2GB 2014-11-23 06:49:04 -05:00
cmd_fdc.c bootm: make use of legacy image format configurable 2014-06-05 14:44:56 -04:00
cmd_fdt.c cmd_fdt: fix working_fdt is set to wrong value 2015-01-05 15:13:28 -05:00
cmd_fitupd.c common/cmd_fitupd.c: restore corrupted file 2014-11-07 16:27:08 -05:00
cmd_flash.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
cmd_fpga.c fpga: Extend dump description 2015-01-30 09:19:17 -05:00
cmd_fpgad.c common: Fix cmd_fpgad addressing 2014-11-19 08:48:41 +01:00
cmd_fs_uuid.c fs: make it possible to read the filesystem UUID 2014-11-23 06:49:01 -05:00
cmd_fs.c fs: Add command to retrieve the filesystem type 2015-01-29 13:36:54 -05:00
cmd_fuse.c cmd_fuse: return CMD_RET_FAILURE on error 2014-12-08 09:35:43 -05:00
cmd_gettime.c cmd: Fix gettime command help 2015-01-30 09:19:16 -05:00
cmd_gpio.c Merge git://git.denx.de/u-boot-dm 2014-10-26 14:03:08 -04:00
cmd_gpt.c cmd:gpt: randomly generate each partition uuid if undefined 2014-04-02 16:36:06 -04:00
cmd_hash.c Fix hash verification 2014-12-29 16:31:24 -05:00
cmd_help.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
cmd_i2c.c dm: i2c: Provide an offset length parameter where needed 2015-01-29 17:09:53 -07:00
cmd_ide.c common: cmd_ide: use __weak and add prototypes 2014-07-22 07:44:26 -04:00
cmd_immap.c powerpc: mpc8260: consolidate CONFIG_MPC8260 and CONFIG_8260 2014-03-07 10:59:06 -05:00
cmd_ini.c SPDX-License-Identifier: convert BSD-3-Clause files 2013-08-19 15:45:35 -04:00
cmd_io.c common/cmd_io.c: Fix incorrect help for iod/iow 2014-10-27 17:54:09 -04:00
cmd_iotrace.c Add an I/O tracing feature 2014-06-20 11:54:29 -06:00
cmd_irq.c Coding Style cleanup: remove trailing white space 2013-10-14 16:06:53 -04:00
cmd_itest.c Fix itest mask overflow 2014-06-05 14:38:38 -04:00
cmd_jffs2.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
cmd_ldrinfo.c Blackfin: ldrinfo: new command 2011-04-08 00:44:27 -04:00
cmd_led.c Coding Style cleanup: remove trailing white space 2013-10-14 16:06:53 -04:00
cmd_license.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
cmd_load.c Export redesign 2015-01-29 17:09:57 -07:00
cmd_log.c stdio: Pass device pointer to stdio methods 2014-07-23 14:07:23 +01:00
cmd_lzmadec.c Add lzmadec command 2014-03-22 14:47:22 -06:00
cmd_mac.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
cmd_md5sum.c sandbox: Use md5sum and fatwrite to enable testing of fs commands 2014-11-23 06:49:04 -05:00
cmd_mdio.c net: add support for extended registers to mdio command 2013-11-22 16:50:52 -06:00
cmd_mem.c sandbox: Fix warnings due to 64-bit printf() strings 2014-11-26 20:25:39 -07:00
cmd_mfsl.c common: fsl: Fix broken SPDX-License-Identifier change 2013-10-16 09:24:38 -04:00
cmd_mii.c common: cmd_mii: fix printf format warning 2014-07-18 17:53:24 -04:00
cmd_misc.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
cmd_mmc_spi.c mmc: Split mmc struct, rework mmc initialization (v2) 2014-03-24 12:58:56 +02:00
cmd_mmc.c mmc: extend mmcinfo output to show partition write reliability settings 2015-01-19 17:41:51 +02:00
cmd_mp.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
cmd_mtdparts.c Fix a few printf argument verification warnings 2014-09-15 13:32:55 -04:00
cmd_nand.c cmd_nand: Update (nand_info_t*)nand after arg_off(_size) call 2014-09-24 18:30:29 -04:00
cmd_net.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
cmd_nvedit.c Add option -r to env import to allow import of text files with CRLF as line endings 2014-07-22 07:44:26 -04:00
cmd_onenand.c mtd: resync with Linux-3.7.1 2013-05-31 17:12:03 -05:00
cmd_otp.c Add the function 'confirm_yesno' for interactive 2014-05-23 11:53:05 +03:00
cmd_part.c part: let list put the list in an environment variable 2015-01-29 13:36:54 -05:00
cmd_pci.c pci: Honour pci_skip_dev() 2014-11-23 06:49:01 -05:00
cmd_pcmcia.c powerpc: mpc824x: remove MPC824X cpu support 2015-01-05 12:08:55 -05:00
cmd_portio.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
cmd_pxe.c pxe: Ensure we don't overflow bootargs 2014-10-10 09:44:21 -04:00
cmd_read.c Add a command to read raw blocks from a partition 2012-12-11 13:17:33 -07:00
cmd_reginfo.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
cmd_reiser.c cmd_reiser: normalize 'file not found' errors 2013-11-08 15:25:13 -05:00
cmd_sandbox.c sandbox: Correct ordering of 'sb save' commands 2015-01-14 11:35:43 -05:00
cmd_sata.c cmd_sata: implement sata stop command 2014-11-24 12:00:00 +01:00
cmd_scsi.c scsi: bootstage: Measure time taken to scan the bus 2015-02-06 12:07:38 -07:00
cmd_setexpr.c Coding Style cleanup: remove trailing white space 2013-10-14 16:06:53 -04:00
cmd_sf.c linux/kernel.h: sync min, max, min3, max3 macros with Linux 2014-11-23 06:48:30 -05:00
cmd_sha1sum.c includes: move openssl headers to include/u-boot 2014-06-19 11:19:04 -04:00
cmd_softswitch.c blackfin: bf609: add softswitch config command 2013-05-13 16:26:12 +08:00
cmd_sound.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
cmd_source.c common: commands: make commands static 2014-07-18 17:53:23 -04:00
cmd_spi.c dm: spi: Adjust cmd_spi to work with driver model 2014-10-22 10:36:47 -06:00
cmd_spibootldr.c various cmd_* files: fixed layout a little bit 2010-08-09 01:07:37 +02:00
cmd_spl.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
cmd_strings.c Convert cmd_usage() calls in common to use a return value 2012-03-06 21:09:46 +01:00
cmd_terminal.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
cmd_test.c cmd_test: implement -e test for file existence 2014-02-19 09:47:34 -05:00
cmd_thordown.c thor: defer parsing of device string to IO backend 2014-08-09 11:17:00 -04:00
cmd_time.c cmd_time: do not show ticks 2014-05-12 15:19:46 -04:00
cmd_tpm.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
cmd_trace.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
cmd_tsi148.c Coding Style cleanup: remove trailing white space 2013-10-14 16:06:53 -04:00
cmd_ubi.c mtd, ubi, ubifs: resync with Linux-3.14 2014-08-25 19:25:55 -04:00
cmd_ubifs.c mtd, ubi, ubifs: resync with Linux-3.14 2014-08-25 19:25:55 -04:00
cmd_universe.c Coding Style cleanup: remove trailing white space 2013-10-14 16:06:53 -04:00
cmd_unzip.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
cmd_usb_mass_storage.c ums: allow the user to specify the device type 2014-05-08 10:38:29 +02:00
cmd_usb.c USB: make "usb start" start usb only once 2015-01-18 12:31:35 +01:00
cmd_version.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
cmd_ximg.c common: add cache flush to imxtract function 2015-01-29 13:38:39 -05:00
cmd_yaffs2.c u-boot: Update yaffs2 file system 2012-08-09 23:39:18 +02:00
cmd_zfs.c cmd_zfs: normalize 'file not found' errors 2013-11-08 15:25:13 -05:00
cmd_zip.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
command.c common: command: trivial coding style fixes 2014-10-27 17:54:12 -04:00
console.c Export redesign 2015-01-29 17:09:57 -07:00
cros_ec.c dm: cros_ec: Add support for driver model 2014-10-22 10:36:53 -06:00
ddr_spd.c driver/ddr/fsl: Add DDR4 support to Freescale DDR driver 2014-04-22 17:58:48 -07:00
dlmalloc.c dm: Split the simple malloc() implementation into its own file 2014-11-21 08:12:28 +01:00
dlmalloc.src Consolidate bool type 2013-04-01 16:33:52 -04:00
edid.c edid: Add an edid_check_checksum() helper function 2015-01-14 14:56:38 +01:00
env_attr.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
env_callback.c common, env: optimize boottime 2014-01-14 09:01:06 -05:00
env_common.c Add option -r to env import to allow import of text files with CRLF as line endings 2014-07-22 07:44:26 -04:00
env_dataflash.c env: Add env_export() wrapper 2014-03-21 16:43:59 -04:00
env_eeprom.c env_eeprom: Assign default environment during board_init_f 2014-06-05 14:44:56 -04:00
env_embedded.c nand_spl: remove nand_spl infrastructure 2014-06-05 17:01:59 -04:00
env_fat.c fat: Prepare API change for files greater than 2GB 2014-11-23 06:49:04 -05:00
env_flags.c common, env: optimize boottime 2014-01-14 09:01:06 -05:00
env_flash.c env_flash.c: Drop unused variables 2014-04-17 17:44:36 -04:00
env_mmc.c env_mmc: correct fini partition to match init partition 2014-10-03 17:26:50 +03:00
env_nand.c linux/kernel.h: sync min, max, min3, max3 macros with Linux 2014-11-23 06:48:30 -05:00
env_nowhere.c Coding Style cleanup: remove trailing white space 2013-10-14 16:06:53 -04:00
env_nvram.c env: Add env_export() wrapper 2014-03-21 16:43:59 -04:00
env_onenand.c env: Add env_export() wrapper 2014-03-21 16:43:59 -04:00
env_remote.c Coding Style cleanup: remove trailing white space 2013-10-14 16:06:53 -04:00
env_sf.c dm: Add spi.h header to a few files 2014-10-22 10:36:47 -06:00
env_ubi.c env: Add env_export() wrapper 2014-03-21 16:43:59 -04:00
exports.c Export redesign 2015-01-29 17:09:57 -07:00
fb_mmc.c fastboot: handle flash write to GPT partitions 2014-12-18 12:26:06 +01:00
fdt_support.c Merge branch 'sandbox' of git://git.denx.de/u-boot-x86 2014-12-04 09:24:05 -05:00
flash.c mpc8xx: remove SPD823TS board support 2015-01-05 12:08:51 -05:00
hash.c Use hash.c in mkimage 2015-01-29 17:09:59 -07:00
hwconfig.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
image-android.c image: Fix Android boot image support 2014-10-27 17:54:12 -04:00
image-fdt.c fdt: Allow non-FDT kernels to boot when CONFIG_OF_LIBFDT is defined 2014-12-08 09:35:47 -05:00
image-fit.c dumpimage: fit: extract FIT images 2015-01-29 13:38:41 -05:00
image-sig.c rsa: Use checksum algorithms from struct hash_algo 2015-01-29 17:09:59 -07:00
image.c imagetool: make the image_save_datafile() available to all image types 2015-01-29 13:38:41 -05:00
iomux.c Coding Style cleanup: remove trailing white space 2013-10-14 16:06:53 -04:00
iotrace.c Add an I/O tracing feature 2014-06-20 11:54:29 -06:00
kallsyms.c Add support for Linux-like kallsysms 2009-06-12 20:45:48 +02:00
Kconfig commands: add more command entries in Kconfig 2014-11-23 06:49:03 -05:00
kgdb_stubs.c kgdb: add default generic stubs 2010-01-18 00:23:00 +01:00
kgdb.c kgdb: Remove first_entry for kgdb 2014-09-16 12:23:56 -04:00
lcd_console.c lcd_console: remove unused defines 2015-01-10 17:54:23 +01:00
lcd_simplefb.c lcd: dt: extract simplefb support 2015-02-10 13:31:26 +01:00
lcd.c lcd: split splash code into its own function 2015-02-10 13:31:58 +01:00
lynxkdi.c checkpatch whitespace cleanups 2011-10-22 01:13:35 +02:00
main.c common: main.c: make show_boot_progress __weak 2014-07-18 17:53:23 -04:00
Makefile Merge branch 'master' of git://git.denx.de/u-boot-video 2015-02-10 10:41:54 -05:00
malloc_simple.c malloc_simple: Return NULL on malloc failure rather then calling panic() 2015-02-12 10:35:29 -07:00
memsize.c common/memsize.c: Coding style cleanup 2015-01-14 11:35:43 -05:00
menu.c misc: use __weak 2014-10-25 07:01:59 -04:00
miiphyutil.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
modem.c modem.c: Switch to debug() from dbg found in common/console.c 2014-10-25 07:27:37 -04:00
s_record.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
splash_source.c common: convert compulab splash load code to common code 2015-01-29 17:44:08 +01:00
splash.c lcd: split splash code into its own function 2015-02-10 13:31:58 +01:00
stdio.c stdio: Fix memleak on stdio_deregister 2014-11-04 06:04:00 +01:00
system_map.c Add support for Linux-like kallsysms 2009-06-12 20:45:48 +02:00
update.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
usb_hub.c linux/kernel.h: sync min, max, min3, max3 macros with Linux 2014-11-23 06:48:30 -05:00
usb_kbd.c usb: Fix usb_kbd_deregister when console-muxing is used 2015-01-18 12:31:36 +01:00
usb_storage.c usb_storage: blacklist Enclosure Service Devices 2014-11-08 12:03:35 +01:00
usb.c musb-new: Fix reset sequence when in host mode 2015-01-18 12:31:36 +01:00
xyzModem.c common/xyzModem.c: move empty statements to newline 2014-06-11 16:27:06 -04:00