u-boot/common
John Rigby 758b39979d common/image.c fix length calculation in boot_relocate_fdt
boot_relocate_fdt is called on platforms with CONFIG_SYS_BOOTMAPSZ
defined to relocate the device tree blob to be inside the
boot map area between bootmap_base and bootmap_base+CONFIG_SYS_BOOTMAPSZ.

For the case where the blob needs to be relocated, space is
allocated inside the bootmap by calling lmb_alloc_base with
size passed in plus some padding:

    of_len = *of_size + CONFIG_SYS_FDT_PAD;

For the case where the blob is already inside the bounds of the boot map
area, lmb_reserve is called to reserve the the space where the blob is
already residing.  The calculation for this case is currently:

    of_len = (CONFIG_SYS_BOOTMAPSZ + bootmap_base) - (ulong)fdt_blob;

This is wrong because it reserves all the space in the boot map area
from the blob to the end ignoring completely the actual size. The
worst case is where the blob is at the beginning and the entire boot map
area get reserved. Fix this by changing the length calculation to this:

    of_len = *of_size + CONFIG_SYS_FDT_PAD;

This bug has likely never manifested itself because bootm has never
been called with the fdt blob already in the bootmap area.  In my
testing on an OMAP3 beagle board I initially worked around the bug
by simply moving the initial location of the fdt blob.  I have tested
with the new calculation with the fdt blob both inside and outside
the boot map area.

Signed-off-by: John Rigby <john.rigby@linaro.org>
2010-10-18 22:49:47 +02:00
..
bedbug.c common: Move conditional compilation to Makefile 2008-08-13 01:40:38 +02:00
cmd_ambapp.c various cmd_* files: fixed layout a little bit 2010-08-09 01:07:37 +02:00
cmd_bdinfo.c x86: Remove bi_env from do_bdinfo 2010-10-07 20:03:17 +11:00
cmd_bedbug.c cmd_usage(): simplify return code handling 2010-07-24 20:43:57 +02:00
cmd_bmp.c ARM: add relocation support 2010-09-19 19:29:53 +02:00
cmd_boot.c cmd_usage(): simplify return code handling 2010-07-24 20:43:57 +02:00
cmd_bootldr.c various cmd_* files: fixed layout a little bit 2010-08-09 01:07:37 +02:00
cmd_bootm.c Add support for operating system OSE 2010-09-28 14:42:26 +02:00
cmd_cache.c cmd_usage(): simplify return code handling 2010-07-24 20:43:57 +02:00
cmd_console.c Make sure that argv[] argument pointers are not modified. 2010-07-04 23:55:42 +02:00
cmd_cplbinfo.c various cmd_* files: fixed layout a little bit 2010-08-09 01:07:37 +02:00
cmd_cramfs.c various cmd_* files: remove the command name from the help message 2010-08-09 01:06:34 +02:00
cmd_dataflash_mmc_mux.c various cmd_* files: remove the command name from the help message 2010-08-09 01:06:34 +02:00
cmd_date.c Make sure that argv[] argument pointers are not modified. 2010-07-04 23:55:42 +02:00
cmd_dcr.c cmd_usage(): simplify return code handling 2010-07-24 20:43:57 +02:00
cmd_df.c cmd_usage(): simplify return code handling 2010-07-24 20:43:57 +02:00
cmd_diag.c Make sure that argv[] argument pointers are not modified. 2010-07-04 23:55:42 +02:00
cmd_display.c led_display: split led display support into generic and hw-dependent parts 2010-10-12 22:44:33 +02:00
cmd_dtt.c Make sure that argv[] argument pointers are not modified. 2010-07-04 23:55:42 +02:00
cmd_echo.c Make sure that argv[] argument pointers are not modified. 2010-07-04 23:55:42 +02:00
cmd_eeprom.c cmd_usage(): simplify return code handling 2010-07-24 20:43:57 +02:00
cmd_elf.c cmd_elf: add an option for loading ELFs according to PHDRs 2010-10-06 22:42:14 +02:00
cmd_exit.c Make sure that argv[] argument pointers are not modified. 2010-07-04 23:55:42 +02:00
cmd_ext2.c cmd_usage(): simplify return code handling 2010-07-24 20:43:57 +02:00
cmd_fat.c fs/fat: Big code cleanup. 2010-07-24 20:54:46 +02:00
cmd_fdc.c cmd_usage(): simplify return code handling 2010-07-24 20:43:57 +02:00
cmd_fdos.c cmd_usage(): simplify return code handling 2010-07-24 20:43:57 +02:00
cmd_fdt.c cmd_usage(): simplify return code handling 2010-07-24 20:43:57 +02:00
cmd_flash.c CONFIG_CMD_JFFS2 is not necessary to use mtdparts on erase & protect on/off 2010-10-12 21:02:55 +02:00
cmd_fpga.c cmd_usage(): simplify return code handling 2010-07-24 20:43:57 +02:00
cmd_help.c Make sure that argv[] argument pointers are not modified. 2010-07-04 23:55:42 +02:00
cmd_i2c.c ARM: add relocation support 2010-09-19 19:29:53 +02:00
cmd_ide.c Remove HMI10 board support 2010-09-19 21:28:25 +02:00
cmd_immap.c Make sure that argv[] argument pointers are not modified. 2010-07-04 23:55:42 +02:00
cmd_irq.c cmd_usage(): simplify return code handling 2010-07-24 20:43:57 +02:00
cmd_itest.c cmd_usage(): simplify return code handling 2010-07-24 20:43:57 +02:00
cmd_jffs2.c Make sure that argv[] argument pointers are not modified. 2010-07-04 23:55:42 +02:00
cmd_license.c various cmd_* files: fixed layout a little bit 2010-08-09 01:07:37 +02:00
cmd_load.c cmd_usage(): simplify return code handling 2010-07-24 20:43:57 +02:00
cmd_log.c cmd_usage(): simplify return code handling 2010-07-24 20:43:57 +02:00
cmd_mac.c Make sure that argv[] argument pointers are not modified. 2010-07-04 23:55:42 +02:00
cmd_mem.c cp/cmp: Add WATCHDOG_RESET in copy and compare loop 2010-10-12 22:50:19 +02:00
cmd_mfsl.c cmd_usage(): simplify return code handling 2010-07-24 20:43:57 +02:00
cmd_mgdisk.c various cmd_* files: remove the command name from the help message 2010-08-09 01:06:34 +02:00
cmd_mii.c miiphy: constify device name 2010-08-09 11:52:29 -07:00
cmd_misc.c cmd_usage(): simplify return code handling 2010-07-24 20:43:57 +02:00
cmd_mmc.c cmd_mmc: use common usage function 2010-09-21 21:37:08 +02:00
cmd_mp.c cmd_usage(): simplify return code handling 2010-07-24 20:43:57 +02:00
cmd_mtdparts.c Followup fixes on the mtdparts spread patchset 2010-10-11 15:11:01 -05:00
cmd_nand.c Fix warning in nand unlock command 2010-10-18 14:54:08 -05:00
cmd_net.c rarp: Condtionally compile rarp support 2010-10-11 23:00:29 -07:00
cmd_nvedit.c env: fix cmd_env_sub fct pointers if CONFIG_RELOC_FIXUP_WORKS is not defined 2010-10-06 22:34:30 +02:00
cmd_onenand.c cmd_usage(): simplify return code handling 2010-07-24 20:43:57 +02:00
cmd_otp.c Blackfin: otp: fix build after constification of args[] 2010-10-02 16:00:40 -04:00
cmd_pci.c cmd_usage(): simplify return code handling 2010-07-24 20:43:57 +02:00
cmd_pcmcia.c Make sure that argv[] argument pointers are not modified. 2010-07-04 23:55:42 +02:00
cmd_portio.c cmd_usage(): simplify return code handling 2010-07-24 20:43:57 +02:00
cmd_reginfo.c mpc85xx: Add reginfo command 2010-07-16 10:55:09 -05:00
cmd_reiser.c cmd_usage(): simplify return code handling 2010-07-24 20:43:57 +02:00
cmd_sata.c cmd_usage(): simplify return code handling 2010-07-24 20:43:57 +02:00
cmd_scsi.c cmd_usage(): simplify return code handling 2010-07-24 20:43:57 +02:00
cmd_setexpr.c cmd_usage(): simplify return code handling 2010-07-24 20:43:57 +02:00
cmd_sf.c cmd_usage(): simplify return code handling 2010-07-24 20:43:57 +02:00
cmd_source.c Make sure that argv[] argument pointers are not modified. 2010-07-04 23:55:42 +02:00
cmd_spi.c sspi: add options to specify bus and mode 2010-10-06 20:50:38 -04:00
cmd_spibootldr.c various cmd_* files: fixed layout a little bit 2010-08-09 01:07:37 +02:00
cmd_strings.c various cmd_* files: fixed layout a little bit 2010-08-09 01:07:37 +02:00
cmd_terminal.c Make sure that argv[] argument pointers are not modified. 2010-07-04 23:55:42 +02:00
cmd_test.c Make sure that argv[] argument pointers are not modified. 2010-07-04 23:55:42 +02:00
cmd_tsi148.c TSI148: Fix argument parsing 2010-10-12 23:31:10 +02:00
cmd_ubi.c various cmd_* files: fixed layout a little bit 2010-08-09 01:07:37 +02:00
cmd_ubifs.c various cmd_* files: fixed layout a little bit 2010-08-09 01:07:37 +02:00
cmd_universe.c Make sure that argv[] argument pointers are not modified. 2010-07-04 23:55:42 +02:00
cmd_usb.c Fixed clobbered output of the "help usb" command 2010-08-12 16:40:00 +02:00
cmd_version.c Make sure that argv[] argument pointers are not modified. 2010-07-04 23:55:42 +02:00
cmd_vfd.c cmd_usage(): simplify return code handling 2010-07-24 20:43:57 +02:00
cmd_ximg.c various cmd_* files: fixed layout a little bit 2010-08-09 01:07:37 +02:00
cmd_yaffs2.c Make sure that argv[] argument pointers are not modified. 2010-07-04 23:55:42 +02:00
command.c relocation: fixup cmdtable 2010-09-19 19:29:51 +02:00
console.c Make *printf() return "int" instead of "void" 2010-07-04 23:51:49 +02:00
ddr_spd.c Enabled support for Rev 1.3 SPD for DDR2 DIMMs 2010-05-12 04:54:30 -05:00
dlmalloc.c dlmalloc.c: Fix gcc alias warning 2010-10-18 22:44:31 +02:00
dlmalloc.src * Code cleanup: 2003-06-27 21:31:46 +00:00
env_common.c env: don't set to default env twice when use CONFIG_ENV_IS_NOWHERE 2010-10-12 21:31:04 +02:00
env_dataflash.c New implementation for internal handling of environment variables. 2010-09-19 19:29:48 +02:00
env_eeprom.c New implementation for internal handling of environment variables. 2010-09-19 19:29:48 +02:00
env_embedded.c Revert "env: only build env_embedded and envcrc when needed" 2009-10-27 20:46:31 +01:00
env_flash.c New implementation for internal handling of environment variables. 2010-09-19 19:29:48 +02:00
env_mgdisk.c New implementation for internal handling of environment variables. 2010-09-19 19:29:48 +02:00
env_mmc.c Merge branch 'master' of git://git.denx.de/u-boot-arm 2010-10-17 20:25:05 +02:00
env_nand.c New implementation for internal handling of environment variables. 2010-09-19 19:29:48 +02:00
env_nowhere.c New implementation for internal handling of environment variables. 2010-09-19 19:29:48 +02:00
env_nvram.c New implementation for internal handling of environment variables. 2010-09-19 19:29:48 +02:00
env_onenand.c New implementation for internal handling of environment variables. 2010-09-19 19:29:48 +02:00
env_sf.c New implementation for internal handling of environment variables. 2010-09-19 19:29:48 +02:00
exports.c Remove support for CONFIG_HAS_UID and "forceenv" command 2010-09-19 19:29:47 +02:00
fdt_support.c common/fdt_support.c: fix compile error 2010-10-13 20:25:33 +02:00
flash.c cfi_flash: Simplify dynamic flash bank number detection 2010-09-20 15:08:51 +02:00
hush.c cmd_usage(): simplify return code handling 2010-07-24 20:43:57 +02:00
hwconfig.c hwconfig: Add some unit tests 2010-06-29 22:24:48 +02:00
image.c common/image.c fix length calculation in boot_relocate_fdt 2010-10-18 22:49:47 +02:00
iomux.c stdio/device: rework function naming convention 2009-07-18 00:27:46 +02:00
kallsyms.c Add support for Linux-like kallsysms 2009-06-12 20:45:48 +02:00
kgdb.c Make sure that argv[] argument pointers are not modified. 2010-07-04 23:55:42 +02:00
kgdb_stubs.c kgdb: add default generic stubs 2010-01-18 00:23:00 +01:00
lcd.c Enable PXAFB for PXA27X and PXA3XX 2010-07-14 22:41:39 +02:00
lynxkdi.c Fix implicit declaration of function 'eth_[gs]etenv_enetaddr' 2009-03-28 20:16:16 +01:00
main.c Replace MAX_CMDBUF_SIZE references with CONFIG_SYS_CBSIZE 2010-10-06 23:02:37 +02:00
Makefile Save environment data to mmc. 2010-09-19 17:47:29 +02:00
memsize.c Sequential accesses to non-existent memory must be synchronized, 2006-11-06 17:06:36 +01:00
miiphyutil.c miiphy: leverage current_mii cache more 2010-08-09 11:52:30 -07:00
modem.c make MODEM SUPPORT generic instead of duplicate it 2009-06-12 20:45:47 +02:00
s_record.c Initial revision 2002-08-17 09:36:01 +00:00
serial.c serial.c: Fix build breakage introduced with commit e3c78c9b 2010-10-06 22:35:49 +02:00
stdio.c Remove unused CONFIG_SERIAL_SOFTWARE_FIFO feature 2010-09-23 09:02:05 +02:00
system_map.c Add support for Linux-like kallsysms 2009-06-12 20:45:48 +02:00
update.c rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
usb.c USB: usb_control_msg wait for driver ISR to set status. 2010-02-03 22:06:59 +01:00
usb_kbd.c USB Consolidate descriptor definitions 2009-12-20 12:47:37 +01:00
usb_storage.c usb: Add support for multiple-LUN mass storage devices 2010-10-13 12:07:58 +02:00
xyzModem.c common: fix 'dummy' is used uninitialized in this function warning 2009-07-19 21:37:02 +02:00