Tool/software: Linux
Hi,
I'm trying to initialize QMSS. In the example code provided by TI to create the virtual memory map they are taking very large block size. I want to know how the size of QMSS_CFG_BLK_SZ and QMSS_DATA_BLK_SZ is taken. On what factor size of it depends and what is the minimum size that can be used to successfully initialize QMSS. How the block size will affect the qmss initialization.
This code is taken from below path of PDK package.
ti/pdk_keystone2_3_01_04_07/packages/ti/drv/qmss/example/InfraDmaSC/src/armv7/linux/fw_main.c
Code sample:
#define QMSS_CFG_BASE_ADDR CSL_QMSS_CFG_BASE
#define QMSS_CFG_BLK_SZ (0x00200000)
#define QMSS_DATA_BASE_ADDR CSL_QMSS_DATA_BASE
#define QMSS_DATA_BLK_SZ (0x00100000)
/* QMSS CFG Regs */
fw_qmssCfgVaddr = fw_memMap((void*)QMSS_CFG_BASE_ADDR,
QMSS_CFG_BLK_SZ);
if (!fw_qmssCfgVaddr)
{
printf("ERROR: Failed to map QMSS CFG registers\n");
return (-1);
}
#ifdef EXT_DEBUG
printf("main:QMSS_CFG_BASE_ADDR:0x%p Memory mapped at address %p.\n",(void*)QMSS_CFG_BASE_ADDR, fw_qmssCfgVaddr);
#endif
/* QMSS DATA Regs */
fw_qmssDataVaddr = fw_memMap((void*)QMSS_DATA_BASE_ADDR,
QMSS_DATA_BLK_SZ);
if (!fw_qmssDataVaddr)
{
printf("ERROR: Failed to map QMSS DATA registers\n");
return (-1);
}
#ifdef EXT_DEBUG
printf("main:QMSS_DATA_BASE_ADDR:0x%p Memory mapped at address %p.\n",(void*)QMSS_DATA_BASE_ADDR, fw_qmssDataVaddr);
#endif
Regards,
Shwetha M