X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=property%2Fnormal_emc_mode.c;h=55b1fa11de31856a28cf0d5b69fef95b24f5034e;hb=a7359e2fdf25ebe757fdbf54b0571cb85fdb3e10;hp=e364956f1a8a620cfb12e142273195b655ecf2c5;hpb=25b0d59d9acd91f1ee87dfcb9acc3d7654db4a95;p=profile%2Fmobile%2Fplatform%2Fkernel%2Fu-boot-tm1.git diff --git a/property/normal_emc_mode.c b/property/normal_emc_mode.c index e364956..55b1fa1 100644 --- a/property/normal_emc_mode.c +++ b/property/normal_emc_mode.c @@ -519,16 +519,25 @@ LOCAL int _boot_load_kernel_ramdisk_image(block_dev_desc_t * dev, char *bootmode uint32 size, offset; uint32 dt_img_adr; uint32 secure_boot_offset = 0; + disk_partition_t info; if (0 == memcmp(bootmode, RECOVERY_PART, strlen(RECOVERY_PART))) { partition = L"recovery"; debugf("enter recovery mode!\n"); + set_recovery_mode(1); } else { - partition = BOOT_PART; - debugf("Enter boot mode (partition name: %s)\n", partition); + partition = L""BOOT_PART; + debugf("Enter boot mode (partition name: %s)\n", w2c(partition)); } - if (!blk_data_read(0x2C00000, sizeof(*hdr), hdr)) { + if (get_partition_info_by_name(dev, partition, &info)) { + debugf("get partition %s info failed!\n", w2c(partition)); + return 0; + } + + offset = info.start * info.blksz; + + if (!blk_data_read(offset, sizeof(*hdr), hdr)) { debugf("%s:%s read error!\n", __FUNCTION__, w2c(partition)); return 0; } @@ -547,7 +556,7 @@ LOCAL int _boot_load_kernel_ramdisk_image(block_dev_desc_t * dev, char *bootmode debugf("bzImage size: %x\n", size); - if (!blk_data_read(0x2C00000, size, KERNEL_ADR - roundup(sizeof(*hdr), ALIGN_SIZE))) { + if (!blk_data_read(offset, size, KERNEL_ADR - roundup(sizeof(*hdr), ALIGN_SIZE))) { debugf("%s:%s kernel read error!\n", __FUNCTION__, w2c(partition)); return 0; } @@ -565,7 +574,12 @@ LOCAL int _boot_load_kernel_ramdisk_image(block_dev_desc_t * dev, char *bootmode #ifdef CONFIG_TIZEN #ifdef CONFIG_RAMDISK_BOOT { - load_ramdisk(PARTS_RAMDISK, RAMDISK_ADR, RAMDISK_SIZE_MB * 1024 * 1024); + char *ramdisk_part; + if (0 == memcmp(bootmode, RECOVERY_PART, strlen(RECOVERY_PART))) + ramdisk_part = PARTS_RAMDISK2; + else + ramdisk_part = PARTS_RAMDISK; + load_ramdisk(ramdisk_part, RAMDISK_ADR, RAMDISK_SIZE_MB * 1024 * 1024); } #endif /* CONFIG_RAMDISK_BOOT */ #else /* CONFIG_TIZEN */