diff options
author | Wolfgang Denk <wd@denx.de> | 2011-12-02 00:17:49 +0100 |
---|---|---|
committer | Wolfgang Denk <wd@denx.de> | 2011-12-02 00:17:49 +0100 |
commit | 7708d8b352e9e595f6f08afd3206af6495c7dc09 (patch) | |
tree | fb9811040b2b1f55c44fc7274473f2ef0847c19b /common | |
parent | d887ad54ca74063338bc3108beed0aa4f15d1f6b (diff) | |
parent | f008b17f8c2995996b5d100b71f8851d6f74a136 (diff) | |
download | u-boot-imx-7708d8b352e9e595f6f08afd3206af6495c7dc09.zip u-boot-imx-7708d8b352e9e595f6f08afd3206af6495c7dc09.tar.gz u-boot-imx-7708d8b352e9e595f6f08afd3206af6495c7dc09.tar.bz2 |
Merge branch 'master' of ssh://gemini/home/wd/git/u-boot/master
* 'master' of ssh://gemini/home/wd/git/u-boot/master:
board/emk/top860/top860.c: Fix GCC 4.6 build warning
board/sbc405/strataflash.c: Fix GCC 4.6 build warning
arch/powerpc/cpu/mpc86xx/cpu.c: Fix GCC 4.6 build warning
board/freescale/mpc8610hpcd/mpc8610hpcd.c: Fix GCC 4.6 build warning
board/mpl/common/flash.c: Fix GCC 4.6 build warning
post/board/lwmon5/gdc.c: Fix GCC 4.6 build warning
drivers/usb/host/sl811-hcd.c: Fix GCC 4.6 build warning
board/sandburst/common/flash.c: Fix GCC 4.6 build warning
DB64460: Fix GCC 4.6 build warnings
DB64360: Fix GCC 4.6 build warnings
board/cray/L1/flash.c: Fix GCC 4.6 build warning
drivers/block/sata_dwc.c: Fix GCC 4.6 build warning
board/amirix/ap1000/flash.c: Fix GCC 4.6 build warning
alpr board: Fix GCC 4.6 build warnings
image: Don't detect XIP images as overlapping.
image: Implement IH_TYPE_KERNEL_NOLOAD
ppc4xx: Add Io64 board support
ppc4xx: fix PMC440 painit command
ppc4xx: remove invalid access to PCI_BRDGOPT2 register
ppc4xx: use CONFIG_PCI_BOOTDELAY instead of private implementation
mpc85xx: support for Freescale COM Express P2020
arch/powerpc/cpu/mpc8xxx/ddr/interactive.c: Fix GCC 4.6 build warning
mpc85xx: support board-specific reset function
powerpc/85xx: verify the localbus device tree address before booting the OS
mpc8xxx: update module_type values from JEDEC DDR3 SPD Specification
powerpc/p3060qds: Add board related support for P3060QDS platform
powerpc/85xx: clean up and document the QE/FMAN microcode macros
powerpc/85xx: always implement the work-around for Erratum SATA_A001
powerpc/85xx: CONFIG_FSL_SATA_V2 should be defined in config_mpc85xx.h
powerpc/85xx: Add workaround for erratum A-003474
powerpc/85xx: fixup flexcan device tree clock-frequency
powerpc/85xx: Add workaround for erratum CPU-A003999
x86: Fix some bugs in the i8402 driver when no controller is present
x86: Make the i8042 driver checkpatch clean
x86: Wrap small helper functions from libgcc to avoid an ABI mismatch
x86: Import the glibc memset implementation
x86: Fix a few recently added bugs
x86: Don't relocate symbols which point to things that aren't relocated
x86: Fix how the location of the realmode and bios blobs are calculated
x86: Misc cleanups
x86: Misc PCI touchups
x86: Ensure IDT and GDT remain 16-byte aligned post relocation
x86: Provide more configuration granularity
x86: Add multiboot header
sc520: Create arch asm-offsets
x86: Punt cold- and warm-boot flags
cosmetic: checkpatch cleanup of board/eNET/*.c
cosmetic: checkpatch cleanup of arch/x86/lib/*.c
cosmetic: checkpatch cleanup of arch/x86/cpu/sc520/*.c
cosmetic: checkpatch cleanup of arch/x86/cpu/*.c
x86: Call hang() on unrecoverable exception
menu.c: use puts() instead of printf() where possible
MAKEALL: drop obsolete mx31pdk_nand target
dataflash: fix parameters order in write_dataflash()
hawkboard: Replace HAWKBOARD_KICK{0, 1}_UNLOCK defines
davinci_sonata: define CONFIG_MACH_TYPE for davinci_sonata board
davinci_schmoogie: define CONFIG_MACH_TYPE for davinci_schmoogie board
arm: a320evb: define mach-type in board config file
OMAP3: Use sdelay from arch/arm/cpu/armv7/syslib.c instead of cloning that.
Fix Stelian's email address
DIU: 1080P and 720P support
CFB: Fix font rendering on mx5 framebuffer
Diffstat (limited to 'common')
-rw-r--r-- | common/cmd_bdinfo.c | 3 | ||||
-rw-r--r-- | common/cmd_bootm.c | 14 | ||||
-rw-r--r-- | common/image.c | 1 |
3 files changed, 15 insertions, 3 deletions
diff --git a/common/cmd_bdinfo.c b/common/cmd_bdinfo.c index 688b238..6c48594 100644 --- a/common/cmd_bdinfo.c +++ b/common/cmd_bdinfo.c @@ -31,7 +31,8 @@ DECLARE_GLOBAL_DATA_PTR; static void print_num(const char *, ulong); -#if !(defined(CONFIG_ARM) || defined(CONFIG_M68K) || defined(CONFIG_SANDBOX)) \ +#if !(defined(CONFIG_ARM) || defined(CONFIG_M68K) || \ + defined(CONFIG_SANDBOX) || defined(CONFIG_X86)) \ || defined(CONFIG_CMD_NET) #define HAVE_PRINT_ETH static void print_eth(int idx); diff --git a/common/cmd_bootm.c b/common/cmd_bootm.c index b073f09..d5745b1 100644 --- a/common/cmd_bootm.c +++ b/common/cmd_bootm.c @@ -272,7 +272,13 @@ static int bootm_start(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[] return 1; } + if (images.os.type == IH_TYPE_KERNEL_NOLOAD) { + images.os.load = images.os.image_start; + images.ep += images.os.load; + } + if (((images.os.type == IH_TYPE_KERNEL) || + (images.os.type == IH_TYPE_KERNEL_NOLOAD) || (images.os.type == IH_TYPE_MULTI)) && (images.os.os == IH_OS_LINUX)) { /* find ramdisk */ @@ -314,6 +320,7 @@ static int bootm_load_os(image_info_t os, ulong *load_end, int boot_progress) ulong image_start = os.image_start; ulong image_len = os.image_len; __maybe_unused uint unc_len = CONFIG_SYS_BOOTM_LEN; + int no_overlap = 0; #if defined(CONFIG_LZMA) || defined(CONFIG_LZO) int ret; #endif /* defined(CONFIG_LZMA) || defined(CONFIG_LZO) */ @@ -324,6 +331,7 @@ static int bootm_load_os(image_info_t os, ulong *load_end, int boot_progress) case IH_COMP_NONE: if (load == blob_start || load == image_start) { printf(" XIP %s ... ", type_name); + no_overlap = 1; } else { printf(" Loading %s ... ", type_name); memmove_wd((void *)load, (void *)image_start, @@ -418,7 +426,7 @@ static int bootm_load_os(image_info_t os, ulong *load_end, int boot_progress) if (boot_progress) show_boot_progress(7); - if ((load < blob_end) && (*load_end > blob_start)) { + if (!no_overlap && (load < blob_end) && (*load_end > blob_start)) { debug("images.os.start = 0x%lX, images.os.end = 0x%lx\n", blob_start, blob_end); debug("images.os.load = 0x%lx, load_end = 0x%lx\n", load, @@ -796,7 +804,8 @@ static int fit_check_kernel(const void *fit, int os_noffset, int verify) } show_boot_progress(106); - if (!fit_image_check_type(fit, os_noffset, IH_TYPE_KERNEL)) { + if (!fit_image_check_type(fit, os_noffset, IH_TYPE_KERNEL) && + !fit_image_check_type(fit, os_noffset, IH_TYPE_KERNEL_NOLOAD)) { puts("Not a kernel image\n"); show_boot_progress(-106); return 0; @@ -874,6 +883,7 @@ static void *boot_get_kernel(cmd_tbl_t *cmdtp, int flag, int argc, /* get os_data and os_len */ switch (image_get_type(hdr)) { case IH_TYPE_KERNEL: + case IH_TYPE_KERNEL_NOLOAD: *os_data = image_get_data(hdr); *os_len = image_get_data_size(hdr); break; diff --git a/common/image.c b/common/image.c index 555d9d9..aacae5a 100644 --- a/common/image.c +++ b/common/image.c @@ -136,6 +136,7 @@ static const table_entry_t uimage_type[] = { { IH_TYPE_FIRMWARE, "firmware", "Firmware", }, { IH_TYPE_FLATDT, "flat_dt", "Flat Device Tree", }, { IH_TYPE_KERNEL, "kernel", "Kernel Image", }, + { IH_TYPE_KERNEL_NOLOAD, "kernel_noload", "Kernel Image (no loading done)", }, { IH_TYPE_KWBIMAGE, "kwbimage", "Kirkwood Boot Image",}, { IH_TYPE_IMXIMAGE, "imximage", "Freescale i.MX Boot Image",}, { IH_TYPE_INVALID, NULL, "Invalid Image", }, |