!586 liteos补丁能力支持

Merge pull request !586 from jason_gitee/master
This commit is contained in:
openharmony_ci
2021-08-31 08:16:31 +00:00
committed by Gitee
8 changed files with 82 additions and 15 deletions

View File

@@ -81,6 +81,17 @@ STATIC INT32 AddEmmcParts(INT32 rootAddr, INT32 rootSize, INT32 userAddr, INT32
return LOS_NOK;
}
#ifdef LOSCFG_PLATFORM_PATCHFS
UINT64 patchStartCnt = userAddr / EMMC_SEC_SIZE;
UINT64 patchSizeCnt = PATCH_SIZE / EMMC_SEC_SIZE;
ret = add_mmc_partition(emmc, patchStartCnt, patchSizeCnt);
if (ret != LOS_OK) {
PRINT_ERR("Failed to add mmc patch partition!\n");
return LOS_NOK;
}
userAddr += PATCH_SIZE;
#endif
UINT64 storageStartCnt = userAddr / EMMC_SEC_SIZE;
UINT64 storageSizeCnt = userSize / EMMC_SEC_SIZE;
UINT64 userdataStartCnt = storageStartCnt + storageSizeCnt;
@@ -235,6 +246,35 @@ STATIC INT32 MountPartitions(CHAR *fsType, UINT32 mountFlags)
return ret;
}
#ifdef LOSCFG_STORAGE_EMMC
#ifdef LOSCFG_PLATFORM_PATCHFS
/* Mount patch */
ret = mkdir(PATCH_DIR_NAME, DEFAULT_MOUNT_DIR_MODE);
if ((ret != LOS_OK) && ((err = get_errno()) != EEXIST)) {
PRINT_ERR("Failed to mkdir %s, errno %d: %s\n", PATCH_DIR_NAME, err, strerror(err));
return ret;
}
ret = mount(PATCH_DEV_NAME, PATCH_DIR_NAME, fsType, 0, DEFAULT_MOUNT_DATA);
if ((ret != LOS_OK) && ((err = get_errno()) == ENOTSUP)) {
ret = format(PATCH_DEV_NAME, 0, FM_FAT32);
if (ret != LOS_OK) {
PRINT_ERR("Failed to format %s\n", PATCH_DEV_NAME);
return ret;
}
ret = mount(PATCH_DEV_NAME, PATCH_DIR_NAME, fsType, 0, DEFAULT_MOUNT_DATA);
if (ret != LOS_OK) {
err = get_errno();
}
}
if (ret != LOS_OK) {
PRINT_ERR("Failed to mount %s, errno %d: %s\n", PATCH_DIR_NAME, err, strerror(err));
return ret;
}
#endif
#endif
/* Mount userfs */
ret = mkdir(STORAGE_DIR_NAME, DEFAULT_MOUNT_DIR_MODE);
if ((ret != LOS_OK) && ((err = get_errno()) != EEXIST)) {

View File

@@ -38,6 +38,9 @@
#define STORAGE_DIR_NAME "/storage"
#ifdef LOSCFG_STORAGE_EMMC
#define USERDATA_DIR_NAME "/userdata"
#ifdef LOSCFG_PLATFORM_PATCHFS
#define PATCH_DIR_NAME "/patch"
#endif
#endif
#define DEFAULT_MOUNT_DIR_MODE 0755
#define DEFAULT_MOUNT_DATA NULL
@@ -64,11 +67,20 @@
#define USERFS_SIZE (CFIFLASH_CAPACITY - ROOTFS_ADDR - ROOTFS_SIZE)
#elif defined (LOSCFG_STORAGE_EMMC)
#define ROOT_DEV_NAME "/dev/mmcblk0p0"
#ifdef LOSCFG_PLATFORM_PATCHFS
#define PATCH_DEV_NAME "/dev/mmcblk0p1"
#define USER_DEV_NAME "/dev/mmcblk0p2"
#define USERDATA_DEV_NAME "/dev/mmcblk0p3"
#else
#define USER_DEV_NAME "/dev/mmcblk0p1"
#define USERDATA_DEV_NAME "/dev/mmcblk0p2"
#endif
#define ROOTFS_ADDR 0xA00000
#define ROOTFS_SIZE 0x1400000
#define USERFS_SIZE 0x3200000
#ifdef LOSCFG_PLATFORM_PATCHFS
#define PATCH_SIZE 0x200000
#endif
#ifdef DEFAULT_MOUNT_DIR_MODE
#undef DEFAULT_MOUNT_DIR_MODE
#endif