@@ -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)) {
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user