From: Marek Vasut Date: Wed, 14 May 2014 22:20:54 +0000 (+0200) Subject: Merge remote-tracking branch 'u-boot/master' into test X-Git-Tag: v2014.07-rc2~10^2~7 X-Git-Url: https://git.kernelconcepts.de/?p=karo-tx-uboot.git;a=commitdiff_plain;h=4180b3dba25c2c28cc4502f1c9f1cbad2a9972b8;hp=-c Merge remote-tracking branch 'u-boot/master' into test --- 4180b3dba25c2c28cc4502f1c9f1cbad2a9972b8 diff --combined README index 8114f79e66,5f895520e8..d8fcd95f94 --- a/README +++ b/README @@@ -264,6 -264,17 +264,17 @@@ e.g. "make cogent_mpc8xx_config". And a directory according to the instructions in cogent/README. + Sandbox Environment: + -------------------- + + U-Boot can be built natively to run on a Linux host using the 'sandbox' + board. This allows feature development which is not board- or architecture- + specific to be undertaken on a native platform. The sandbox is also used to + run some of U-Boot's tests. + + See board/sandbox/sandbox/README.sandbox for more details. + + Configuration Options: ---------------------- @@@ -440,6 -451,12 +451,12 @@@ The following options need to be config supported, core will start to execute uboot when wakes up. - Generic CPU options: + CONFIG_SYS_GENERIC_GLOBAL_DATA + Defines global data is initialized in generic board board_init_f(). + If this macro is defined, global data is created and cleared in + generic board board_init_f(). Without this macro, architecture/board + should initialize global data before calling board_init_f(). + CONFIG_SYS_BIG_ENDIAN, CONFIG_SYS_LITTLE_ENDIAN Defines the endianess of the CPU. Implementation of those @@@ -740,6 -757,10 +757,10 @@@ boot loader that has already initialized the UART. Define this variable to flush the UART at init time. + CONFIG_SERIAL_HW_FLOW_CONTROL + + Define this variable to enable hw flow control in serial driver. + Current user of this option is drivers/serial/nsl16550.c driver - Console Interface: Depending on board, define exactly one serial port @@@ -1558,28 -1579,6 +1579,28 @@@ entering dfuMANIFEST state. Host waits this timeout, before sending again an USB request to the device. +- USB Device Android Fastboot support: + CONFIG_CMD_FASTBOOT + This enables the command "fastboot" which enables the Android + fastboot mode for the platform's USB device. Fastboot is a USB + protocol for downloading images, flashing and device control + used on Android devices. + See doc/README.android-fastboot for more information. + + CONFIG_ANDROID_BOOT_IMAGE + This enables support for booting images which use the Android + image format header. + + CONFIG_USB_FASTBOOT_BUF_ADDR + The fastboot protocol requires a large memory buffer for + downloads. Define this to the starting RAM address to use for + downloaded images. + + CONFIG_USB_FASTBOOT_BUF_SIZE + The fastboot protocol requires a large memory buffer for + downloads. This buffer should be as large as possible for a + platform. Define this to the size available RAM for fastboot. + - Journaling Flash filesystem support: CONFIG_JFFS2_NAND, CONFIG_JFFS2_NAND_OFF, CONFIG_JFFS2_NAND_SIZE, CONFIG_JFFS2_NAND_DEV @@@ -3297,6 -3296,10 +3318,10 @@@ FIT uImage format supports MMC, NAND and YMODEM loading of U-Boot and NAND NAND loading of the Linux Kernel. + CONFIG_SPL_OS_BOOT + Enable booting directly to an OS from SPL. + See also: doc/README.falcon + CONFIG_SPL_DISPLAY_PRINT For ARM, enable an optional function to print more information about the running system. @@@ -3372,6 -3375,10 +3397,10 @@@ Support for NAND boot using simple NAND drivers that expose the cmd_ctrl() interface. + CONFIG_SPL_MTD_SUPPORT + Support for the MTD subsystem within SPL. Useful for + environment on NAND support within SPL. + CONFIG_SPL_MPC8XXX_INIT_DDR_SUPPORT Set for the SPL on PPC mpc8xxx targets, support for drivers/ddr/fsl/libddr.o in SPL binary. @@@ -4534,6 -4541,11 +4563,11 @@@ Low Level (hardware related) configurat - CONFIG_SPL_AM33XX_ENABLE_RTC32K_OSC: Enables the RTC32K OSC on AM33xx based plattforms + - CONFIG_SYS_NAND_NO_SUBPAGE_WRITE + Option to disable subpage write in NAND driver + driver that uses this: + drivers/mtd/nand/davinci_nand.c + Freescale QE/FMAN Firmware Support: ----------------------------------- diff --combined common/cmd_bootm.c index 993b906c70,e683af3691..34b4b583ba --- a/common/cmd_bootm.c +++ b/common/cmd_bootm.c @@@ -222,7 -222,6 +222,7 @@@ static int bootm_find_os(cmd_tbl_t *cmd char * const argv[]) { const void *os_hdr; + bool ep_found = false; /* get kernel image header, start address and length */ os_hdr = boot_get_kernel(cmdtp, flag, argc, argv, @@@ -274,18 -273,6 +274,18 @@@ return 1; } break; +#endif +#ifdef CONFIG_ANDROID_BOOT_IMAGE + case IMAGE_FORMAT_ANDROID: + images.os.type = IH_TYPE_KERNEL; + images.os.comp = IH_COMP_NONE; + images.os.os = IH_OS_LINUX; + images.ep = images.os.load; + ep_found = true; + + images.os.end = android_image_get_end(os_hdr); + images.os.load = android_image_get_kload(os_hdr); + break; #endif default: puts("ERROR: unknown image format type!\n"); @@@ -306,7 -293,7 +306,7 @@@ return 1; } #endif - } else { + } else if (!ep_found) { puts("Could not find kernel entry point!\n"); return 1; } @@@ -401,7 -388,7 +401,7 @@@ static int bootm_load_os(bootm_headers_ image_buf = map_sysmem(image_start, image_len); switch (comp) { case IH_COMP_NONE: - if (load == blob_start || load == image_start) { + if (load == image_start) { printf(" XIP %s ... ", type_name); no_overlap = 1; } else { @@@ -1014,14 -1001,6 +1014,14 @@@ static const void *boot_get_kernel(cmd_ images->fit_uname_cfg = fit_uname_config; images->fit_noffset_os = os_noffset; break; +#endif +#ifdef CONFIG_ANDROID_BOOT_IMAGE + case IMAGE_FORMAT_ANDROID: + printf("## Booting Android Image at 0x%08lx ...\n", img_addr); + if (android_image_get_kernel((void *)img_addr, images->verify, + os_data, os_len)) + return NULL; + break; #endif default: printf("Wrong Image Format for %s command\n", cmdtp->name); diff --combined common/image.c index 7ff27d75c3,fcc5a9c3e1..fa4864d24c --- a/common/image.c +++ b/common/image.c @@@ -125,6 -125,7 +125,7 @@@ static const table_entry_t uimage_type[ { IH_TYPE_FILESYSTEM, "filesystem", "Filesystem Image", }, { IH_TYPE_FIRMWARE, "firmware", "Firmware", }, { IH_TYPE_FLATDT, "flat_dt", "Flat Device Tree", }, + { IH_TYPE_GPIMAGE, "gpimage", "TI Keystone SPL Image",}, { IH_TYPE_KERNEL, "kernel", "Kernel Image", }, { IH_TYPE_KERNEL_NOLOAD, "kernel_noload", "Kernel Image (no loading done)", }, { IH_TYPE_KWBIMAGE, "kwbimage", "Kirkwood Boot Image",}, @@@ -659,12 -660,10 +660,12 @@@ int genimg_get_format(const void *img_a if (image_check_magic(hdr)) format = IMAGE_FORMAT_LEGACY; #if defined(CONFIG_FIT) || defined(CONFIG_OF_LIBFDT) - else { - if (fdt_check_header(img_addr) == 0) - format = IMAGE_FORMAT_FIT; - } + else if (fdt_check_header(img_addr) == 0) + format = IMAGE_FORMAT_FIT; +#endif +#ifdef CONFIG_ANDROID_BOOT_IMAGE + else if (android_image_check_header(img_addr) == 0) + format = IMAGE_FORMAT_ANDROID; #endif return format; @@@ -934,15 -933,7 +935,15 @@@ int boot_get_ramdisk(int argc, char * c (ulong)images->legacy_hdr_os); image_multi_getimg(images->legacy_hdr_os, 1, &rd_data, &rd_len); - } else { + } +#ifdef CONFIG_ANDROID_BOOT_IMAGE + else if ((genimg_get_format(images) == IMAGE_FORMAT_ANDROID) && + (!android_image_get_ramdisk((void *)images->os.start, + &rd_data, &rd_len))) { + /* empty */ + } +#endif + else { /* * no initrd image */ diff --combined include/configs/omap3_beagle.h index be39b7c0a0,fae0e6ffcb..a5b7a400cd --- a/include/configs/omap3_beagle.h +++ b/include/configs/omap3_beagle.h @@@ -12,19 -12,22 +12,22 @@@ #ifndef __CONFIG_H #define __CONFIG_H + #define CONFIG_NR_DRAM_BANKS 2 /* CS1 may or may not be populated */ + /* - * High Level Configuration Options + * 1MB into the SDRAM to allow for SPL's bss at the beginning of SDRAM + * 64 bytes before this address should be set aside for u-boot.img's + * header. That is 0x800FFFC0--0x80100000 should not be used for any + * other needs. We use this rather than the inherited defines from + * ti_armv7_common.h for backwards compatibility. */ - #define CONFIG_OMAP 1 /* in a TI OMAP core */ - #define CONFIG_OMAP34XX 1 /* which is a 34XX */ - #define CONFIG_OMAP3_BEAGLE 1 /* working with BEAGLE */ - #define CONFIG_OMAP_GPIO - #define CONFIG_OMAP_COMMON - - #define CONFIG_SDRC /* The chip has SDRC controller */ + #define CONFIG_SYS_TEXT_BASE 0x80100000 + #define CONFIG_SPL_BSS_START_ADDR 0x80000000 + #define CONFIG_SPL_BSS_MAX_SIZE (512 << 10) /* 512 KB */ + #define CONFIG_SYS_SPL_MALLOC_START 0x80208000 + #define CONFIG_SYS_SPL_MALLOC_SIZE 0x100000 - #include /* get chip and board defs */ - #include + #include /* * Display CPU and Board information @@@ -32,57 -35,10 +35,10 @@@ #define CONFIG_DISPLAY_CPUINFO 1 #define CONFIG_DISPLAY_BOARDINFO 1 - /* Clock Defines */ - #define V_OSCK 26000000 /* Clock output from T2 */ - #define V_SCLK (V_OSCK >> 1) - #define CONFIG_MISC_INIT_R - #define CONFIG_OF_LIBFDT - #define CONFIG_CMD_BOOTZ - - #define CONFIG_CMDLINE_TAG 1 /* enable passing of ATAGs */ - #define CONFIG_SETUP_MEMORY_TAGS 1 - #define CONFIG_INITRD_TAG 1 #define CONFIG_REVISION_TAG 1 - - /* - * Size of malloc() pool - */ - #define CONFIG_ENV_SIZE (128 << 10) /* 128 KiB */ - /* Sector */ - #define CONFIG_SYS_MALLOC_LEN (CONFIG_ENV_SIZE + (128 << 10)) - - /* - * Hardware drivers - */ - - /* - * NS16550 Configuration - */ - #define V_NS16550_CLK 48000000 /* 48MHz (APLL96/2) */ - - #define CONFIG_SYS_NS16550 - #define CONFIG_SYS_NS16550_SERIAL - #define CONFIG_SYS_NS16550_REG_SIZE (-4) - #define CONFIG_SYS_NS16550_CLK V_NS16550_CLK - - /* - * select serial console configuration - */ - #define CONFIG_CONS_INDEX 3 - #define CONFIG_SYS_NS16550_COM3 OMAP34XX_UART3 - #define CONFIG_SERIAL3 3 /* UART3 on Beagle Rev 2 */ - - /* allow to overwrite serial and ethaddr */ #define CONFIG_ENV_OVERWRITE - #define CONFIG_BAUDRATE 115200 - #define CONFIG_SYS_BAUDRATE_TABLE {4800, 9600, 19200, 38400, 57600,\ - 115200} - #define CONFIG_GENERIC_MMC 1 - #define CONFIG_MMC 1 - #define CONFIG_OMAP_HSMMC 1 - #define CONFIG_DOS_PARTITION 1 /* Status LED */ #define CONFIG_STATUS_LED 1 @@@ -110,16 -66,6 +66,16 @@@ #define CONFIG_TWL4030_USB 1 #define CONFIG_USB_ETHER #define CONFIG_USB_ETHER_RNDIS +#define CONFIG_USB_GADGET +#define CONFIG_USB_GADGET_VBUS_DRAW 0 +#define CONFIG_USBDOWNLOAD_GADGET +#define CONFIG_G_DNL_VENDOR_NUM 0x0451 +#define CONFIG_G_DNL_PRODUCT_NUM 0xd022 +#define CONFIG_G_DNL_MANUFACTURER "TI" +#define CONFIG_CMD_FASTBOOT +#define CONFIG_ANDROID_BOOT_IMAGE +#define CONFIG_USB_FASTBOOT_BUF_ADDR CONFIG_SYS_LOAD_ADDR +#define CONFIG_USB_FASTBOOT_BUF_SIZE 0x07000000 /* USB EHCI */ #define CONFIG_CMD_USB @@@ -144,44 -90,23 +100,23 @@@ #define CONFIG_CMD_ASKENV #define CONFIG_CMD_CACHE - #define CONFIG_CMD_EXT2 /* EXT2 Support */ - #define CONFIG_CMD_FAT /* FAT support */ - #define CONFIG_CMD_FS_GENERIC /* Generic FS support */ - #define CONFIG_CMD_MTDPARTS /* Enable MTD parts commands */ - #define CONFIG_MTD_DEVICE /* needed for mtdparts commands */ + #define MTDIDS_DEFAULT "nand0=nand" #define MTDPARTS_DEFAULT "mtdparts=nand:512k(x-loader),"\ "1920k(u-boot),128k(u-boot-env),"\ "4m(kernel),-(fs)" - #define CONFIG_CMD_I2C /* I2C serial bus support */ - #define CONFIG_CMD_MMC /* MMC support */ #define CONFIG_USB_STORAGE /* USB storage support */ #define CONFIG_CMD_NAND /* NAND support */ #define CONFIG_CMD_LED /* LED support */ - #define CONFIG_CMD_NET /* bootp, tftpboot, rarpboot */ - #define CONFIG_CMD_NFS /* NFS support */ - #define CONFIG_CMD_PING - #define CONFIG_CMD_DHCP #define CONFIG_CMD_SETEXPR /* Evaluate expressions */ #define CONFIG_CMD_GPIO /* Enable gpio command */ - #undef CONFIG_CMD_FLASH /* flinfo, erase, protect */ - #undef CONFIG_CMD_FPGA /* FPGA configuration Support */ - #undef CONFIG_CMD_IMI /* iminfo */ - #undef CONFIG_CMD_IMLS /* List all found images */ - - #define CONFIG_SYS_NO_FLASH - #define CONFIG_SYS_I2C - #define CONFIG_SYS_OMAP24_I2C_SPEED 100000 - #define CONFIG_SYS_OMAP24_I2C_SLAVE 1 - #define CONFIG_SYS_I2C_OMAP34XX #define CONFIG_VIDEO_OMAP3 /* DSS Support */ /* * TWL4030 */ - #define CONFIG_TWL4030_POWER 1 #define CONFIG_TWL4030_LED 1 /* @@@ -189,17 -114,9 +124,9 @@@ */ #define CONFIG_SYS_NAND_QUIET_TEST 1 #define CONFIG_NAND_OMAP_GPMC - #define CONFIG_SYS_NAND_ADDR NAND_BASE /* physical address */ - /* to access nand */ - #define CONFIG_SYS_NAND_BASE NAND_BASE /* physical address */ - /* to access nand at */ - /* CS0 */ #define CONFIG_SYS_MAX_NAND_DEVICE 1 /* Max number of NAND */ /* devices */ - /* Environment information */ - #define CONFIG_BOOTDELAY 3 - #define CONFIG_EXTRA_ENV_SETTINGS \ "loadaddr=0x80200000\0" \ "rdaddr=0x81000000\0" \ @@@ -320,45 -237,13 +247,13 @@@ "run mmcbootz; " \ "fi; " \ - #define CONFIG_AUTO_COMPLETE 1 - /* - * Miscellaneous configurable options - */ - #define CONFIG_SYS_LONGHELP /* undef to save memory */ - #define CONFIG_SYS_HUSH_PARSER /* use "hush" command parser */ - #define CONFIG_SYS_PROMPT "OMAP3 beagleboard.org # " - #define CONFIG_SYS_CBSIZE 512 /* Console I/O Buffer Size */ - /* Print Buffer Size */ - #define CONFIG_SYS_PBSIZE (CONFIG_SYS_CBSIZE + \ - sizeof(CONFIG_SYS_PROMPT) + 16) - #define CONFIG_SYS_MAXARGS 32 /* max number of command args */ - /* Boot Argument Buffer Size */ - #define CONFIG_SYS_BARGSIZE (CONFIG_SYS_CBSIZE) - - #define CONFIG_SYS_ALT_MEMTEST 1 - #define CONFIG_SYS_MEMTEST_START (0x82000000) /* memtest */ - /* defaults */ - #define CONFIG_SYS_MEMTEST_END (0x87FFFFFF) /* 128MB */ - #define CONFIG_SYS_MEMTEST_SCRATCH (0x81000000) /* dummy address */ - - #define CONFIG_SYS_LOAD_ADDR (OMAP34XX_SDRC_CS0) /* default */ - /* load address */ - /* * OMAP3 has 12 GP timers, they can be driven by the system clock * (12/13/16.8/19.2/38.4MHz) or by 32KHz clock. We use 13MHz (V_SCLK). * This rate is divided by a local divisor. */ - #define CONFIG_SYS_TIMERBASE (OMAP34XX_GPT2) #define CONFIG_SYS_PTV 2 /* Divisor: 2^(PTV+1) => 8 */ - /*----------------------------------------------------------------------- - * Physical Memory Map - */ - #define CONFIG_NR_DRAM_BANKS 2 /* CS1 may or may not be populated */ - #define PHYS_SDRAM_1 OMAP34XX_SDRC_CS0 - #define PHYS_SDRAM_2 OMAP34XX_SDRC_CS1 - /*----------------------------------------------------------------------- * FLASH and environment organization */ @@@ -369,8 -254,6 +264,6 @@@ #define PISMO1_NAND_SIZE GPMC_SIZE_128M #define PISMO1_ONEN_SIZE GPMC_SIZE_128M - #define CONFIG_SYS_MONITOR_LEN (256 << 10) /* Reserve 2 sectors */ - #if defined(CONFIG_CMD_NAND) #define CONFIG_SYS_FLASH_BASE PISMO1_NAND_BASE #endif @@@ -380,6 -263,7 +273,7 @@@ #define CONFIG_SYS_ONENAND_BASE ONENAND_MAP #define CONFIG_ENV_IS_IN_NAND 1 + #define CONFIG_ENV_SIZE (128 << 10) /* 128 KiB */ #define ONENAND_ENV_OFFSET 0x260000 /* environment starts here */ #define SMNAND_ENV_OFFSET 0x260000 /* environment starts here */ @@@ -387,49 -271,12 +281,12 @@@ #define CONFIG_ENV_OFFSET SMNAND_ENV_OFFSET #define CONFIG_ENV_ADDR SMNAND_ENV_OFFSET - #define CONFIG_SYS_SDRAM_BASE PHYS_SDRAM_1 - #define CONFIG_SYS_INIT_RAM_ADDR 0x4020f800 - #define CONFIG_SYS_INIT_RAM_SIZE 0x800 - #define CONFIG_SYS_INIT_SP_ADDR (CONFIG_SYS_INIT_RAM_ADDR + \ - CONFIG_SYS_INIT_RAM_SIZE - \ - GENERATED_GBL_DATA_SIZE) - #define CONFIG_OMAP3_SPI #define CONFIG_SYS_CACHELINE_SIZE 64 /* Defines for SPL */ - #define CONFIG_SPL - #define CONFIG_SPL_FRAMEWORK - #define CONFIG_SPL_NAND_SIMPLE - #define CONFIG_SPL_TEXT_BASE 0x40200800 - #define CONFIG_SPL_MAX_SIZE (54 * 1024) /* 8 KB for stack */ - #define CONFIG_SPL_STACK LOW_LEVEL_SRAM_STACK - - #define CONFIG_SPL_BSS_START_ADDR 0x80000000 - #define CONFIG_SPL_BSS_MAX_SIZE 0x80000 /* 512 KB */ - - #define CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR 0x300 /* address 0x60000 */ - #define CONFIG_SYS_U_BOOT_MAX_SIZE_SECTORS 0x200 /* 256 KB */ - #define CONFIG_SYS_MMC_SD_FAT_BOOT_PARTITION 1 - #define CONFIG_SPL_FAT_LOAD_PAYLOAD_NAME "u-boot.img" - - #define CONFIG_SPL_BOARD_INIT - #define CONFIG_SPL_LIBCOMMON_SUPPORT - #define CONFIG_SPL_LIBDISK_SUPPORT - #define CONFIG_SPL_I2C_SUPPORT - #define CONFIG_SPL_LIBGENERIC_SUPPORT - #define CONFIG_SPL_MMC_SUPPORT - #define CONFIG_SPL_FAT_SUPPORT - #define CONFIG_SPL_SERIAL_SUPPORT - #define CONFIG_SPL_NAND_SUPPORT - #define CONFIG_SPL_NAND_BASE - #define CONFIG_SPL_NAND_DRIVERS - #define CONFIG_SPL_NAND_ECC - #define CONFIG_SPL_GPIO_SUPPORT - #define CONFIG_SPL_POWER_SUPPORT #define CONFIG_SPL_OMAP3_ID_NAND - #define CONFIG_SPL_LDSCRIPT "$(CPUDIR)/omap-common/u-boot-spl.lds" /* NAND boot config */ #define CONFIG_SYS_NAND_5_ADDR_CYCLE @@@ -443,17 -290,6 +300,6 @@@ #define CONFIG_SYS_NAND_ECCSIZE 512 #define CONFIG_SYS_NAND_ECCBYTES 3 #define CONFIG_NAND_OMAP_ECCSCHEME OMAP_ECC_HAM1_CODE_HW - #define CONFIG_SYS_NAND_U_BOOT_START CONFIG_SYS_TEXT_BASE #define CONFIG_SYS_NAND_U_BOOT_OFFS 0x80000 - /* - * 1MB into the SDRAM to allow for SPL's bss at the beginning of SDRAM - * 64 bytes before this address should be set aside for u-boot.img's - * header. That is 0x800FFFC0--0x80100000 should not be used for any - * other needs. - */ - #define CONFIG_SYS_TEXT_BASE 0x80100000 - #define CONFIG_SYS_SPL_MALLOC_START 0x80208000 - #define CONFIG_SYS_SPL_MALLOC_SIZE 0x100000 - #endif /* __CONFIG_H */ diff --combined include/image.h index e1f92979a4,b27877870b..18861686cc --- a/include/image.h +++ b/include/image.h @@@ -224,6 -224,7 +224,7 @@@ struct lmb #define IH_TYPE_KERNEL_NOLOAD 14 /* OS Kernel Image, can run from any load address */ #define IH_TYPE_PBLIMAGE 15 /* Freescale PBL Boot Image */ #define IH_TYPE_MXSIMAGE 16 /* Freescale MXSBoot Image */ + #define IH_TYPE_GPIMAGE 17 /* TI Keystone GPHeader Image */ /* * Compression Types @@@ -412,7 -413,6 +413,7 @@@ enum fit_load_op #define IMAGE_FORMAT_INVALID 0x00 #define IMAGE_FORMAT_LEGACY 0x01 /* legacy image_header based format */ #define IMAGE_FORMAT_FIT 0x02 /* new, libfdt based format */ +#define IMAGE_FORMAT_ANDROID 0x03 /* Android boot image */ int genimg_get_format(const void *img_addr); int genimg_has_config(bootm_headers_t *images); @@@ -1031,16 -1031,4 +1032,16 @@@ static inline int fit_image_check_targe #endif /* CONFIG_FIT_VERBOSE */ #endif /* CONFIG_FIT */ +#if defined(CONFIG_ANDROID_BOOT_IMAGE) +struct andr_img_hdr; +int android_image_check_header(const struct andr_img_hdr *hdr); +int android_image_get_kernel(const struct andr_img_hdr *hdr, int verify, + ulong *os_data, ulong *os_len); +int android_image_get_ramdisk(const struct andr_img_hdr *hdr, + ulong *rd_data, ulong *rd_len); +ulong android_image_get_end(const struct andr_img_hdr *hdr); +ulong android_image_get_kload(const struct andr_img_hdr *hdr); + +#endif /* CONFIG_ANDROID_BOOT_IMAGE */ + #endif /* __IMAGE_H__ */