1.原厂修改msdc代码
This commit is contained in:
parent
260288c3cb
commit
413001226c
|
@ -110,11 +110,13 @@ DX_HANDLE Dx_GetObject(UINT32 DxClassType) // Query device object
|
|||
hDevice = (UINT32)(&gDevEmbMem7);
|
||||
} else if ((DxClassType & DX_TYPE_MASK) == DX_TYPE_EMBMEM8) {
|
||||
hDevice = (UINT32)(&gDevEmbMem8);
|
||||
DBG_ERR("DX_TYPE_EMBMEM8 hDevice = %lx\n", hDevice);
|
||||
}
|
||||
#endif
|
||||
#if !defined(_CARD1_NONE_)
|
||||
if ((DxClassType & DX_TYPE_MASK) == DX_TYPE_CARD1) {
|
||||
hDevice = (UINT32)(&gDevCARD1);
|
||||
DBG_ERR("DX_TYPE_CARD1 hDevice = %lx\n", hDevice);
|
||||
}
|
||||
#endif
|
||||
#if !defined(_CARD3_NONE_)
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
#include "DxCommon.h"
|
||||
#include "DxApi.h"
|
||||
#include "DrvExt.h"
|
||||
#include "emmc.h"
|
||||
|
||||
#if 0
|
||||
#include "Debug.h"
|
||||
|
@ -319,22 +320,26 @@ static UINT32 xDrvEmbMemGetcaps(UINT32 DxType, UINT32 CapID, UINT32 Param1)
|
|||
{
|
||||
UINT32 v = 0;
|
||||
if (CapID == STORAGE_CAPS_HANDLE) {
|
||||
const UINT32 Map[] = {
|
||||
STRG_OBJ_FW_RSV1,
|
||||
STRG_OBJ_FW_RSV2,
|
||||
STRG_OBJ_FW_RSV3,
|
||||
STRG_OBJ_FW_RSV4,
|
||||
STRG_OBJ_FW_RSV5,
|
||||
STRG_OBJ_FW_RSV6,
|
||||
STRG_OBJ_FW_RSV7,
|
||||
STRG_OBJ_PSTORE1,
|
||||
STRG_OBJ_FAT1
|
||||
};
|
||||
if (DxType >= sizeof(Map) / sizeof(Map[0])) {
|
||||
DBG_ERR("out of id: %d\r\n", DxType);
|
||||
return 0;
|
||||
}
|
||||
// const UINT32 Map[] = {
|
||||
// STRG_OBJ_FW_RSV1,
|
||||
// STRG_OBJ_FW_RSV2,
|
||||
// STRG_OBJ_FW_RSV3,
|
||||
// STRG_OBJ_FW_RSV4,
|
||||
// STRG_OBJ_FW_RSV5,
|
||||
// STRG_OBJ_FW_RSV6,
|
||||
// STRG_OBJ_FW_RSV7,
|
||||
// STRG_OBJ_PSTORE1,
|
||||
// STRG_OBJ_FAT1
|
||||
// };
|
||||
// if (DxType >= sizeof(Map) / sizeof(Map[0])) {
|
||||
// DBG_ERR("out of id: %d\r\n", DxType);
|
||||
// return 0;
|
||||
// }
|
||||
|
||||
|
||||
v = (UINT32)emmc_getStorageObject(STRG_OBJ_FAT1);
|
||||
|
||||
DBG_ERR("emmc_getStorageObject = %lx, type = %lu\n", v, ((PSTORAGE_OBJ)v)->uiStrgType);
|
||||
// v = (UINT32)EMB_GETSTRGOBJ(Map[DxType]);
|
||||
//speical case handle
|
||||
#if defined(__FREERTOS)
|
||||
|
|
|
@ -832,7 +832,7 @@
|
|||
// 2. enable FS_DX_TYPE_DRIVE_B as DX_TYPE_CARD2
|
||||
// 3. enable FS_MULTI_STRG_FUNC
|
||||
// 4. NETWORK = NETWORK_NONE (Both uITRON and eCos)
|
||||
#define FS_MULTI_STRG_FUNC DISABLE
|
||||
#define FS_MULTI_STRG_FUNC ENABLE
|
||||
//MULTI_DRIVE
|
||||
#if defined(_EMBMEM_EMMC_) && (FS_MULTI_STRG_FUNC==DISABLE)
|
||||
#define FS_DX_TYPE_DRIVE_A USER_DX_TYPE_EMBMEM_FAT
|
||||
|
|
|
@ -315,10 +315,10 @@ void System_OnStrgInit_FS(void)
|
|||
Pool.addr = mempool_filesys;
|
||||
#if (FS_MULTI_STRG_FUNC == ENABLE)
|
||||
MEM_RANGE Pool2;
|
||||
Pool.Size = POOL_SIZE_FS_BUFFER;
|
||||
Pool.size = POOL_SIZE_FILESYS;
|
||||
GxStrg_SetConfigEx(0, FILE_CFG_BUF, (UINT32)&Pool);
|
||||
Pool2.Addr = Pool.Addr + POOL_SIZE_FS_BUFFER;
|
||||
Pool2.Size = POOL_SIZE_FS_BUFFER;
|
||||
Pool2.addr = Pool.addr + POOL_SIZE_FILESYS;
|
||||
Pool2.size = POOL_SIZE_FILESYS;
|
||||
GxStrg_SetConfigEx(1, FILE_CFG_BUF, (UINT32)&Pool2);
|
||||
#if defined(_CPU2_LINUX_) && defined(_EMBMEM_EMMC_)
|
||||
// 3rd is for linux-pstore mounted by filesys
|
||||
|
@ -380,6 +380,16 @@ void System_OnStrgInit_FS(void)
|
|||
GxStrg_SetConfigEx(0, FILE_CFG_STRG_OBJECT, (UINT32)Dx_GetObject(DX_CLASS_STORAGE_EXT | FS_DX_TYPE_DRIVE_A));
|
||||
#endif
|
||||
|
||||
|
||||
#if (FS_MULTI_STRG_FUNC == ENABLE)
|
||||
emmc_set_dev_node("/dev/mmcblk1p1"); /* msdc strg obj */
|
||||
strncpy(mount_path, "/mnt/sd2", sizeof(mount_path) - 1);
|
||||
mount_path[sizeof(mount_path) - 1] = '\0';
|
||||
GxStrg_SetConfigEx(1, FILE_CFG_MOUNT_PATH, (UINT32)mount_path);
|
||||
GxStrg_SetConfigEx(1, FILE_CFG_STRG_OBJECT, (UINT32)Dx_GetObject(DX_CLASS_STORAGE_EXT | FS_DX_TYPE_DRIVE_B));
|
||||
#endif
|
||||
|
||||
|
||||
//#NT#2018/12/18#Philex Lin - begin
|
||||
// unused now
|
||||
#if 0
|
||||
|
@ -799,22 +809,24 @@ INT32 System_OnStrgInsert(VControl *pCtrl, UINT32 paramNum, UINT32 *paramArray)
|
|||
// Open DCF
|
||||
dcfParm.Drive = (stg_id == 0) ? 'A' : 'B';
|
||||
#if (FS_MULTI_STRG_FUNC)
|
||||
if (POOL_CNT_DCF_BUFFER !=2) {
|
||||
DBG_FATAL("POOL_CNT_DCF_BUFFER be 2 for FS_MULTI_STRG_FUNC.\r\n");
|
||||
} else {
|
||||
// if (POOL_CNT_DCF_BUFFER !=2) {
|
||||
// DBG_FATAL("POOL_CNT_DCF_BUFFER be 2 for FS_MULTI_STRG_FUNC.\r\n");
|
||||
// } else {
|
||||
switch(stg_id) {
|
||||
case 0:
|
||||
dcfParm.WorkbuffAddr = dma_getCacheAddr(OS_GetMempoolAddr(POOL_ID_DCF_BUFFER));
|
||||
// dcfParm.WorkbuffAddr = dma_getCacheAddr(OS_GetMempoolAddr(POOL_ID_DCF_BUFFER));
|
||||
dcfParm.WorkbuffAddr = mempool_dcf;
|
||||
break;
|
||||
case 1:
|
||||
dcfParm.WorkbuffAddr = dma_getCacheAddr(OS_GetMempoolAddr(POOL_ID_DCF_BUFFER)) + POOL_SIZE_DCF_BUFFER;
|
||||
// dcfParm.WorkbuffAddr = dma_getCacheAddr(OS_GetMempoolAddr(POOL_ID_DCF_BUFFER)) + POOL_SIZE_DCF_BUFFER;
|
||||
dcfParm.WorkbuffAddr = mempool_dcf + POOL_SIZE_DCF_BUFFER;
|
||||
break;
|
||||
default:
|
||||
DBG_ERR("unknown stg_id=%d\r\n", stg_id);
|
||||
dcfParm.WorkbuffAddr = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
// }
|
||||
#else
|
||||
|
||||
dcfParm.WorkbuffAddr = mempool_dcf;//dma_getCacheAddr(OS_GetMempoolAddr(POOL_ID_DCF_BUFFER));
|
||||
|
|
|
@ -185,7 +185,12 @@ void mempool_init(void)
|
|||
mempool_usbcmd_va = (UINT32)va;
|
||||
#endif
|
||||
#if (USE_DCF == ENABLE)
|
||||
|
||||
#if (FS_MULTI_STRG_FUNC)
|
||||
ret = vendor_common_mem_alloc_fixed_pool("dcf", &pa, (void **)&va, POOL_SIZE_DCF_BUFFER * 2, DDR_ID0);
|
||||
#else
|
||||
ret = vendor_common_mem_alloc_fixed_pool("dcf", &pa, (void **)&va, POOL_SIZE_DCF_BUFFER, DDR_ID0);
|
||||
#endif
|
||||
if (ret != HD_OK) {
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -152,10 +152,10 @@ ER AppInit_ModeUSBMSDC(void)
|
|||
MSDCInfo.msdc_vendor_cb = NULL;
|
||||
//#NT#2016/12/20#Niven Cho -begin
|
||||
//#NT#MULTI_DRIVE
|
||||
#if (FS_MULTI_STRG_FUNC == ENABLE)
|
||||
char *pDxName2 = NULL;
|
||||
DX_HANDLE pStrgDev2 = 0;
|
||||
#endif
|
||||
//#if (FS_MULTI_STRG_FUNC == ENABLE)
|
||||
// char *pDxName2 = NULL;
|
||||
// DX_HANDLE pStrgDev2 = 0;
|
||||
//#endif
|
||||
|
||||
pStrgDev = Dx_GetObject(DX_CLASS_STORAGE_EXT | FS_DX_TYPE_DRIVE_A);
|
||||
|
||||
|
@ -166,34 +166,42 @@ ER AppInit_ModeUSBMSDC(void)
|
|||
}
|
||||
#endif
|
||||
|
||||
#if (FS_MULTI_STRG_FUNC == ENABLE)
|
||||
pStrgDev = Dx_GetObject(DX_CLASS_STORAGE_EXT | FS_DX_TYPE_DRIVE_B);
|
||||
#endif
|
||||
//#if (FS_MULTI_STRG_FUNC == ENABLE)
|
||||
// pStrgDev = Dx_GetObject(DX_CLASS_STORAGE_EXT | FS_DX_TYPE_DRIVE_B);
|
||||
//#endif
|
||||
|
||||
MSDCInfo.pStrgHandle[0] = (PSTRG_TAB)Dx_Getcaps(pStrgDev, STORAGE_CAPS_HANDLE, 0);
|
||||
|
||||
if (Dx_GetInfo(pStrgDev, DX_INFO_NAME, &pDxName) != DX_OK) {
|
||||
pDxName = NULL;
|
||||
}
|
||||
DBG_DUMP("===>%s\r\n", pDxName);
|
||||
DBG_DUMP("handle = %lx, open = %lx, pDxName ===>%s, type=%lu, status=%lu\r\n", MSDCInfo.pStrgHandle[0], MSDCInfo.pStrgHandle[0]->Open, pDxName, MSDCInfo.pStrgHandle[0]->uiStrgType, MSDCInfo.pStrgHandle[0]->uiStrgStatus);
|
||||
|
||||
#if (FS_MULTI_STRG_FUNC == ENABLE)
|
||||
MSDCInfo.pStrgHandle[1] = pStrgDev2;
|
||||
|
||||
char *pDxName2 = NULL;
|
||||
DX_HANDLE pStrgDev2 = 0;
|
||||
|
||||
pStrgDev2 = Dx_GetObject(DX_CLASS_STORAGE_EXT | FS_DX_TYPE_DRIVE_B);
|
||||
MSDCInfo.pStrgHandle[1] = (PSTRG_TAB)Dx_Getcaps(pStrgDev2, STORAGE_CAPS_HANDLE, 0);
|
||||
|
||||
if (Dx_GetInfo(pStrgDev2, DX_INFO_NAME, &pDxName2) != DX_OK) {
|
||||
pDxName2 = NULL;
|
||||
}
|
||||
|
||||
DBG_DUMP("handle = %lx, open = %lx, pDxName2 ===>%s, type=%lu, status=%lu\r\n", MSDCInfo.pStrgHandle[1], MSDCInfo.pStrgHandle[1]->Open, pDxName2, MSDCInfo.pStrgHandle[1]->uiStrgType, MSDCInfo.pStrgHandle[1]->uiStrgStatus);
|
||||
#endif
|
||||
|
||||
#if (FS_MULTI_STRG_FUNC == ENABLE)
|
||||
MSDCInfo.pStrgHandle[1] = pStrgDev2;
|
||||
|
||||
if (Dx_GetInfo(pStrgDev2, DX_INFO_NAME, &pDxName2) != DX_OK) {
|
||||
pDxName2 = NULL;
|
||||
}
|
||||
#endif
|
||||
//#if (FS_MULTI_STRG_FUNC == ENABLE)
|
||||
// MSDCInfo.pStrgHandle[1] = pStrgDev2;
|
||||
//
|
||||
// if (Dx_GetInfo(pStrgDev2, DX_INFO_NAME, &pDxName2) != DX_OK) {
|
||||
// pDxName2 = NULL;
|
||||
// }
|
||||
//#endif
|
||||
|
||||
#if (FS_MULTI_STRG_FUNC == ENABLE)
|
||||
|
||||
MSDCInfo.msdc_storage_detCB[0] = (MSDC_StorageDet_CB)DrvCARD_DetStrgCard;
|
||||
MSDCInfo.msdc_strgLock_detCB[0] = (MSDC_StrgLockDet_CB)DrvCARD_DetStrgCardWP;
|
||||
MSDCInfo.msdc_storage_detCB[1] = NULL;
|
||||
|
@ -201,6 +209,14 @@ ER AppInit_ModeUSBMSDC(void)
|
|||
MSDCInfo.msdc_type[0] = MSDC_STRG;
|
||||
MSDCInfo.msdc_type[1] = MSDC_STRG;
|
||||
MSDCInfo.LUNs = 2;
|
||||
|
||||
// MSDCInfo.msdc_storage_detCB[0] = NULL;
|
||||
// MSDCInfo.msdc_strgLock_detCB[0] = NULL;
|
||||
// MSDCInfo.pStrgHandle[0] = MSDCInfo.pStrgHandle[1];
|
||||
// MSDCInfo.msdc_type[0] = MSDC_STRG;
|
||||
// MSDCInfo.LUNs = 1;
|
||||
|
||||
|
||||
#else
|
||||
if (pDxName == NULL || strcmp(pDxName, "Storage_EmbMem5") == 0) {
|
||||
MSDCInfo.msdc_storage_detCB[0] = NULL;
|
||||
|
|
Binary file not shown.
Loading…
Reference in New Issue
Block a user