From: Seung-Woo Kim Date: Wed, 25 Jan 2017 04:20:39 +0000 (+0900) Subject: tizen: add ramdisk bootmode with ramdisk config option X-Git-Tag: accepted/tizen/mobile/20170306.102415~5 X-Git-Url: http://review.tizen.org/git/?p=profile%2Fmobile%2Fplatform%2Fkernel%2Fu-boot-tm1.git;a=commitdiff_plain;h=25b0d59d9acd91f1ee87dfcb9acc3d7654db4a95 tizen: add ramdisk bootmode with ramdisk config option This patch adds ramdisk bootmode with ramdisk boot config option. Change-Id: Ic9b571b4eb7c09805b7f567fa9ffa5ec08fe51de Signed-off-by: Seung-Woo Kim --- diff --git a/include/normal_mode.h b/include/normal_mode.h index 2b2ab25..bd4beba 100644 --- a/include/normal_mode.h +++ b/include/normal_mode.h @@ -53,6 +53,7 @@ extern unsigned char raw_header[8192]; #define VLX_TAG_ADDR 0x82000100 #define DT_ADR 0x85400000 #define RAMDISK_ADR 0x85500000 +#define RAMDISK_SIZE_MB 8 #if defined (CONFIG_SPX30G) #define COOPERATE_PROCESSOR_RESET_ADDR 0x402b00b0 diff --git a/property/normal_emc_mode.c b/property/normal_emc_mode.c index d4fdecb..e364956 100644 --- a/property/normal_emc_mode.c +++ b/property/normal_emc_mode.c @@ -560,6 +560,15 @@ LOCAL int _boot_load_kernel_ramdisk_image(block_dev_desc_t * dev, char *bootmode debugf("%s:dt load error!\n", __FUNCTION__); return 0; } + + +#ifdef CONFIG_TIZEN +#ifdef CONFIG_RAMDISK_BOOT + { + load_ramdisk(PARTS_RAMDISK, RAMDISK_ADR, RAMDISK_SIZE_MB * 1024 * 1024); + } +#endif /* CONFIG_RAMDISK_BOOT */ +#else /* CONFIG_TIZEN */ #ifdef CONFIG_SDRAMDISK { int sd_ramdisk_size = 0; @@ -574,6 +583,7 @@ LOCAL int _boot_load_kernel_ramdisk_image(block_dev_desc_t * dev, char *bootmode hdr->ramdisk_size = sd_ramdisk_size; } #endif +#endif /* CONFIG_TIZEN */ return 1; } diff --git a/property/normal_mode.c b/property/normal_mode.c index 2bd31af..3ef7204 100644 --- a/property/normal_mode.c +++ b/property/normal_mode.c @@ -172,15 +172,18 @@ int fdt_fixup_for_tizen(void *fdt) /* Tizen default cmdline: mem */ ptr += sprintf(ptr, CMDLINE_DEFAULT_TIZEN); +#ifdef CONFIG_RAMDISK_BOOT + ptr += sprintf(ptr, " root=/dev/ram0 rw initrd=0x%x,%dM", + RAMDISK_ADR, RAMDISK_SIZE_MB); +#else val = tizen_get_part_num(PARTS_ROOTFS); ptr += sprintf(ptr, " root=/dev/mmcblk0p%d ro rootfstype=ext4 rootwait", val); + ptr += sprintf(ptr, " initrd=0x%x,0x%x", RAMDISK_ADR, 0); +#endif ptr += sprintf(ptr, " lcd_id=ID%06x", load_lcd_id_to_kernel()); ptr += sprintf(ptr, " lcd_base=%x", CONFIG_FB_RAM_BASE); - /* check ramdisk_size */ - ptr += sprintf(ptr, " initrd=0x%x,0x%x", RAMDISK_ADR, 0); - ptr += sprintf(ptr, " mtp_offset=%s", load_mtp_offset_to_kernel()); ptr += sprintf(ptr, " elvss_offset=0x%x", load_elvss_offset_to_kernel()); ptr += sprintf(ptr, " hbm_offset=%s", load_hbm_offset_to_kernel()); @@ -197,7 +200,11 @@ int fdt_fixup_for_tizen(void *fdt) break; case PM_STATE_NORMAL: default: +#ifdef CONFIG_RAMDISK_BOOT + ptr += sprintf(ptr, " bootmode=ramdisk"); +#else ptr += sprintf(ptr, " bootmode=normal"); +#endif } thor_save_env("normal"); diff --git a/property/tizen_misc.c b/property/tizen_misc.c index a881d17..263c476 100644 --- a/property/tizen_misc.c +++ b/property/tizen_misc.c @@ -775,6 +775,11 @@ static int load_binary_to_addr(char *name, unsigned int addr, unsigned int size) return 0; } +int load_ramdisk(char *name, unsigned int base_addr, unsigned int size) +{ + return load_binary_to_addr(name, base_addr, size); +} + int check_board_signature(char *fname, unsigned int dn_addr, unsigned int size) { struct sig_header bh_target;