MGS-6025: sync GPU kernel driver with 20201015 version

include gpu database update, clock debug and kernel fix

Signed-off-by: Xianzhong <xianzhong.li@nxp.com>
This commit is contained in:
Xianzhong 2020-10-16 10:20:28 +08:00
parent d3cc9b105b
commit b82adb38fd
13 changed files with 560 additions and 37 deletions

View File

@ -8252,6 +8252,8 @@ _PmSetPowerOnDirection(
requireInit = gcvTRUE;
/* FALLTHRU */
case gcvPOWER_SUSPEND:
/* Clock on. */
gcmkONERROR(_PmClockOn(Hardware, &requireInit));
@ -8336,6 +8338,8 @@ _PmSetPowerOffDirection(
break;
}
/* FALLTHRU */
case gcvPOWER_IDLE:
/* Stop. */
gcmkONERROR(gckCOMMAND_Stop(command));
@ -8350,6 +8354,8 @@ _PmSetPowerOffDirection(
break;
}
/* FALLTHRU */
case gcvPOWER_SUSPEND:
if(Hardware->kernel->threadInitialized == gcvTRUE)
{
@ -8446,6 +8452,7 @@ gckHARDWARE_SetPowerState(
case gcvPOWER_IDLE_TIMEOUT:
case gcvPOWER_SUSPEND_TIMEOUT:
timeout = gcvTRUE;
/* FALLTHRU */
case gcvPOWER_OFF_BROADCAST:
case gcvPOWER_IDLE_BROADCAST:
case gcvPOWER_SUSPEND_BROADCAST:
@ -15997,11 +16004,7 @@ gckHARDWARE_QueryFrequency(
mcStart = shStart = 0;
mcClk = shClk = 0;
status = gckOS_QueryOption(Hardware->os, "powerManagement", &powerManagement);
if (gcmIS_ERROR(status))
{
powerManagement = 0;
}
powerManagement = Hardware->options.powerManagement;
if (powerManagement)
{
@ -16094,4 +16097,197 @@ OnError:
return status;
}
/*******************************************************************************
**
** Set MC and SH clock
**
** Core : which core clock do you want to set
** mcScale: MC clock scale
** shScale: SH clock scale
*/
gceSTATUS
gckHARDWARE_SetClock(
IN gckHARDWARE Hardware,
IN gctUINT32 Core,
IN gctUINT32 MCScale,
IN gctUINT32 SHScale
)
{
gceSTATUS status;
gctUINT64 powerManagement = 0;
gctBOOL globalAcquired = gcvFALSE;
gctUINT32 org;
gctUINT32 core = Core;
gctUINT32 mcScale = MCScale;
gctUINT32 shScale = SHScale;
gcmkHEADER();
status = gckOS_QueryOption(Hardware->os, "powerManagement", &powerManagement);
if (gcmIS_ERROR(status))
{
powerManagement = 0;
}
if (powerManagement)
{
gcmkONERROR(gckHARDWARE_EnablePowerManagement(
Hardware, gcvFALSE
));
gcmkPRINT("Warning: Power management status will be changed forever!\n");
}
gcmkONERROR(gckHARDWARE_SetPowerState(
Hardware, gcvPOWER_ON_AUTO
));
/* Grab the global semaphore. */
gcmkONERROR(gckOS_AcquireSemaphore(
Hardware->os, Hardware->globalSemaphore
));
globalAcquired = gcvTRUE;
if (mcScale > 0 && mcScale <= 64)
{
gcmkONERROR(gckOS_ReadRegisterEx(Hardware->os, core, 0x00000, &org));
org = ((((gctUINT32) (org)) & ~(((gctUINT32) (((gctUINT32) ((((1 ?
8:2) - (0 ?
8:2) + 1) == 32) ?
~0U : (~(~0U << ((1 ?
8:2) - (0 ?
8:2) + 1))))))) << (0 ?
8:2))) | (((gctUINT32) ((gctUINT32) (mcScale) & ((gctUINT32) ((((1 ?
8:2) - (0 ?
8:2) + 1) == 32) ?
~0U : (~(~0U << ((1 ? 8:2) - (0 ? 8:2) + 1))))))) << (0 ? 8:2)));
/* Write the clock control register. */
gcmkONERROR(gckOS_WriteRegisterEx(Hardware->os, core,
0x00000,
((((gctUINT32) (org)) & ~(((gctUINT32) (((gctUINT32) ((((1 ?
9:9) - (0 ?
9:9) + 1) == 32) ?
~0U : (~(~0U << ((1 ?
9:9) - (0 ?
9:9) + 1))))))) << (0 ?
9:9))) | (((gctUINT32) ((gctUINT32) (1) & ((gctUINT32) ((((1 ?
9:9) - (0 ?
9:9) + 1) == 32) ?
~0U : (~(~0U << ((1 ? 9:9) - (0 ? 9:9) + 1))))))) << (0 ? 9:9)))));
/* Done loading the frequency scaler. */
gcmkONERROR(gckOS_WriteRegisterEx(Hardware->os, core,
0x00000,
((((gctUINT32) (org)) & ~(((gctUINT32) (((gctUINT32) ((((1 ?
9:9) - (0 ?
9:9) + 1) == 32) ?
~0U : (~(~0U << ((1 ?
9:9) - (0 ?
9:9) + 1))))))) << (0 ?
9:9))) | (((gctUINT32) ((gctUINT32) (0) & ((gctUINT32) ((((1 ?
9:9) - (0 ?
9:9) + 1) == 32) ?
~0U : (~(~0U << ((1 ? 9:9) - (0 ? 9:9) + 1))))))) << (0 ? 9:9)))));
/* Need to change 0x0010C when it is introduced. */
gcmkONERROR(gckOS_ReadRegisterEx(Hardware->os, core, 0x0010C, &org));
/* Never impact shader clk. */
org = 0x01020800 | (org & 0xFF);
gcmkONERROR(gckOS_WriteRegisterEx(Hardware->os, core, 0x0010C, org));
}
/* set SH clock */
if (shScale > 0 && shScale <= 64)
{
gcmkONERROR(gckOS_ReadRegisterEx(Hardware->os, core, 0x0010C, &org));
org = ((((gctUINT32) (org)) & ~(((gctUINT32) (((gctUINT32) ((((1 ?
7:1) - (0 ?
7:1) + 1) == 32) ?
~0U : (~(~0U << ((1 ?
7:1) - (0 ?
7:1) + 1))))))) << (0 ?
7:1))) | (((gctUINT32) ((gctUINT32) (shScale) & ((gctUINT32) ((((1 ?
7:1) - (0 ?
7:1) + 1) == 32) ?
~0U : (~(~0U << ((1 ? 7:1) - (0 ? 7:1) + 1))))))) << (0 ? 7:1)));
org = ((((gctUINT32) (org)) & ~(((gctUINT32) (((gctUINT32) ((((1 ?
16:16) - (0 ?
16:16) + 1) == 32) ?
~0U : (~(~0U << ((1 ?
16:16) - (0 ?
16:16) + 1))))))) << (0 ?
16:16))) | (((gctUINT32) ((gctUINT32) (0) & ((gctUINT32) ((((1 ?
16:16) - (0 ?
16:16) + 1) == 32) ?
~0U : (~(~0U << ((1 ? 16:16) - (0 ? 16:16) + 1))))))) << (0 ? 16:16)));
org = ((((gctUINT32) (org)) & ~(((gctUINT32) (((gctUINT32) ((((1 ?
17:17) - (0 ?
17:17) + 1) == 32) ?
~0U : (~(~0U << ((1 ?
17:17) - (0 ?
17:17) + 1))))))) << (0 ?
17:17))) | (((gctUINT32) ((gctUINT32) (1) & ((gctUINT32) ((((1 ?
17:17) - (0 ?
17:17) + 1) == 32) ?
~0U : (~(~0U << ((1 ? 17:17) - (0 ? 17:17) + 1))))))) << (0 ? 17:17)));
/* Write the clock control register. */
gcmkONERROR(gckOS_WriteRegisterEx(Hardware->os, core,
0x0010C,
((((gctUINT32) (org)) & ~(((gctUINT32) (((gctUINT32) ((((1 ?
0:0) - (0 ?
0:0) + 1) == 32) ?
~0U : (~(~0U << ((1 ?
0:0) - (0 ?
0:0) + 1))))))) << (0 ?
0:0))) | (((gctUINT32) ((gctUINT32) (1) & ((gctUINT32) ((((1 ?
0:0) - (0 ?
0:0) + 1) == 32) ?
~0U : (~(~0U << ((1 ? 0:0) - (0 ? 0:0) + 1))))))) << (0 ? 0:0)))));
/* Done loading the frequency scaler. */
gcmkONERROR(gckOS_WriteRegisterEx(Hardware->os, core,
0x0010C,
((((gctUINT32) (org)) & ~(((gctUINT32) (((gctUINT32) ((((1 ?
0:0) - (0 ?
0:0) + 1) == 32) ?
~0U : (~(~0U << ((1 ?
0:0) - (0 ?
0:0) + 1))))))) << (0 ?
0:0))) | (((gctUINT32) ((gctUINT32) (0) & ((gctUINT32) ((((1 ?
0:0) - (0 ?
0:0) + 1) == 32) ?
~0U : (~(~0U << ((1 ? 0:0) - (0 ? 0:0) + 1))))))) << (0 ? 0:0)))));
}
/* Release the global semaphore. */
gcmkONERROR(gckOS_ReleaseSemaphore(
Hardware->os, Hardware->globalSemaphore
));
globalAcquired = gcvFALSE;
gcmkFOOTER_NO();
return gcvSTATUS_OK;
OnError:
if (globalAcquired)
{
/* Release the global semaphore. */
gcmkVERIFY_OK(gckOS_ReleaseSemaphore(
Hardware->os, Hardware->globalSemaphore
));
}
gcmkFOOTER_NO();
return status;
}

View File

@ -301,6 +301,14 @@ gckHARDWARE_QueryFrequency(
IN gckHARDWARE Hardware
);
gceSTATUS
gckHARDWARE_SetClock(
IN gckHARDWARE Hardware,
IN gctUINT32 Core,
IN gctUINT32 MCScale,
IN gctUINT32 SHScale
);
#define gcmkWRITE_MEMORY(logical, data) \
do { \
gcmkVERIFY_OK(gckOS_WriteMemory(os, logical, data)); \

View File

@ -636,35 +636,31 @@ gckASYNC_FE_Execute(
IN gctUINT32 Bytes
)
{
gceSTATUS status;
gceSTATUS status = gcvSTATUS_OK;
status = gckOS_WriteRegisterEx(
gcmkHEADER_ARG("Hardware=%p Address=%x Bytes=%lu", Hardware, Address, Bytes);
gcmkONERROR(gckOS_WriteRegisterEx(
Hardware->os,
Hardware->core,
0x007DC,
Address
);
if (gcmIS_ERROR(status))
{
return status;
}
));
gckOS_MemoryBarrier(
gcmkONERROR(gckOS_MemoryBarrier(
Hardware->os,
gcvNULL
);
));
status = gckOS_WriteRegisterEx(
gcmkONERROR(gckOS_WriteRegisterEx(
Hardware->os,
Hardware->core,
0x007E0,
Address + Bytes
);
if (gcmIS_ERROR(status))
{
return status;
}
));
return gcvSTATUS_OK;
OnError:
gcmkFOOTER();
return status;
}

View File

@ -53,7 +53,7 @@
*****************************************************************************/
/*Auto created on 2020-09-03 15:12*/
/*Auto created on 2020-09-27 10:38*/
#ifndef _gc_feature_database_h_
#define _gc_feature_database_h_
@ -117,6 +117,7 @@ typedef struct
gctUINT32 NN_INIMAGE_OFFSET_BITS;
gctUINT32 TP_REORDER_INIMAGE_SIZE;
gctUINT32 TPLite_CoreCount;
gctUINT32 NN_PREPROCESSOR_MAX_SEGMENT_PER_CYCLE;
gctUINT32 NNFP16_XYDP_X;
gctUINT32 NNFP16_XYDP_Y;
gctUINT32 NNFP16_ZDP;
@ -530,6 +531,7 @@ typedef struct
gctUINT32 ENDIAN_CONTROL:1;
gctUINT32 G2D_RGB_PLANAR:1;
gctUINT32 G2D_DEC400EX:1;
gctUINT32 G2D_YUV420_101010:1;
gctUINT32 SH_VX2_FLOATING_MAD_FIX:1;
gctUINT32 TS_FC_VULKAN_SUPPORT:1;
gctUINT32 MSAA_FLOAT_64BIT:1;
@ -674,6 +676,8 @@ typedef struct
gctUINT32 NN_SUPPORT_DUMMY_TILE:1;
gctUINT32 NN_SUPPORT_KERNEL_1BYTE_ALIGN:1;
gctUINT32 NN_1x1_NON_POOLING_PACKING:1;
gctUINT32 NN_SUPPORT_BOTH_CONV_NATIVE_STRIDE2_AND_POOLING:1;
gctUINT32 NN_SUPPORT_CONV1x1_AND_NATIVE_CONV_STRIDE2:1;
gctUINT32 NN_MP_INTER_CONNECT_RING:1;
gctUINT32 NN_SUPPORT_BATCH:1;
gctUINT32 NN_2D_AVERAGE_OUTPUT:1;
@ -737,6 +741,7 @@ typedef struct
gctUINT32 TP_FC_KERNEL_STREAM_MUST_LESS_THAN_OR_EQUAL_TO_64BYTE_WHEN_1BYTE_ALGINE_FIX:1;
gctUINT32 NN_KERNEL_1x1_NO_PAD_FIX:1;
gctUINT32 NN_DEPTHWISE_AFTER_16BIT_LAYER_LIMIT_FIX:1;
gctUINT32 TP_NOT_FULL_USE_CACHE_LINE_FIX:1;
gctUINT32 SH_MOVAI_MOVAR_UNUSED_COMPONENTS_WRITE_DIRTY_DATA_FIX:1;
gctUINT32 NN_INTERLEVE8:1;
gctUINT32 NN_FP16_ALU:1;
@ -813,6 +818,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_VALUE_NN_INIMAGE_OFFSET_BITS */
0x0, /* gcFEATURE_VALUE_TP_REORDER_INIMAGE_SIZE */
0x0, /* gcFEATURE_VALUE_TPLite_CoreCount */
0x0, /* gcFEATURE_VALUE_NN_PREPROCESSOR_MAX_SEGMENT_PER_CYCLE */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_X */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_Y */
0x0, /* gcFEATURE_VALUE_NNFP16_ZDP */
@ -1226,6 +1232,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_ENDIAN_CONTROL */
0x0, /* gcFEATURE_BIT_G2D_RGB_PLANAR */
0x0, /* gcFEATURE_BIT_G2D_DEC400EX */
0x0, /* gcFEATURE_BIT_G2D_YUV420_101010 */
0x0, /* gcFEATURE_BIT_SH_VX2_FLOATING_MAD_FIX */
0x0, /* gcFEATURE_BIT_TS_FC_VULKAN_SUPPORT */
0x0, /* gcFEATURE_BIT_MSAA_FLOAT_64BIT */
@ -1370,6 +1377,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_NN_SUPPORT_DUMMY_TILE */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_KERNEL_1BYTE_ALIGN */
0x0, /* gcFEATURE_BIT_NN_1x1_NON_POOLING_PACKING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_BOTH_CONV_NATIVE_STRIDE2_AND_POOLING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_CONV1x1_AND_NATIVE_CONV_STRIDE2 */
0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */
0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */
@ -1433,6 +1442,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_TP_FC_KERNEL_STREAM_MUST_LESS_THAN_OR_EQUAL_TO_64BYTE_WHEN_1BYTE_ALGINE_FIX */
0x0, /* gcFEATURE_BIT_NN_KERNEL_1x1_NO_PAD_FIX */
0x0, /* gcFEATURE_BIT_NN_DEPTHWISE_AFTER_16BIT_LAYER_LIMIT_FIX */
0x0, /* gcFEATURE_BIT_TP_NOT_FULL_USE_CACHE_LINE_FIX */
0x1, /* gcFEATURE_BIT_SH_MOVAI_MOVAR_UNUSED_COMPONENTS_WRITE_DIRTY_DATA_FIX */
0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */
0x0, /* gcFEATURE_BIT_NN_FP16_ALU */
@ -1507,6 +1517,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_VALUE_NN_INIMAGE_OFFSET_BITS */
0x0, /* gcFEATURE_VALUE_TP_REORDER_INIMAGE_SIZE */
0x0, /* gcFEATURE_VALUE_TPLite_CoreCount */
0x0, /* gcFEATURE_VALUE_NN_PREPROCESSOR_MAX_SEGMENT_PER_CYCLE */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_X */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_Y */
0x0, /* gcFEATURE_VALUE_NNFP16_ZDP */
@ -1920,6 +1931,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_ENDIAN_CONTROL */
0x0, /* gcFEATURE_BIT_G2D_RGB_PLANAR */
0x0, /* gcFEATURE_BIT_G2D_DEC400EX */
0x0, /* gcFEATURE_BIT_G2D_YUV420_101010 */
0x0, /* gcFEATURE_BIT_SH_VX2_FLOATING_MAD_FIX */
0x0, /* gcFEATURE_BIT_TS_FC_VULKAN_SUPPORT */
0x0, /* gcFEATURE_BIT_MSAA_FLOAT_64BIT */
@ -2064,6 +2076,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_NN_SUPPORT_DUMMY_TILE */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_KERNEL_1BYTE_ALIGN */
0x0, /* gcFEATURE_BIT_NN_1x1_NON_POOLING_PACKING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_BOTH_CONV_NATIVE_STRIDE2_AND_POOLING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_CONV1x1_AND_NATIVE_CONV_STRIDE2 */
0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */
0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */
@ -2127,6 +2141,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_TP_FC_KERNEL_STREAM_MUST_LESS_THAN_OR_EQUAL_TO_64BYTE_WHEN_1BYTE_ALGINE_FIX */
0x0, /* gcFEATURE_BIT_NN_KERNEL_1x1_NO_PAD_FIX */
0x0, /* gcFEATURE_BIT_NN_DEPTHWISE_AFTER_16BIT_LAYER_LIMIT_FIX */
0x0, /* gcFEATURE_BIT_TP_NOT_FULL_USE_CACHE_LINE_FIX */
0x1, /* gcFEATURE_BIT_SH_MOVAI_MOVAR_UNUSED_COMPONENTS_WRITE_DIRTY_DATA_FIX */
0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */
0x0, /* gcFEATURE_BIT_NN_FP16_ALU */
@ -2201,6 +2216,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_VALUE_NN_INIMAGE_OFFSET_BITS */
0x0, /* gcFEATURE_VALUE_TP_REORDER_INIMAGE_SIZE */
0x0, /* gcFEATURE_VALUE_TPLite_CoreCount */
0x0, /* gcFEATURE_VALUE_NN_PREPROCESSOR_MAX_SEGMENT_PER_CYCLE */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_X */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_Y */
0x0, /* gcFEATURE_VALUE_NNFP16_ZDP */
@ -2614,6 +2630,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_ENDIAN_CONTROL */
0x0, /* gcFEATURE_BIT_G2D_RGB_PLANAR */
0x0, /* gcFEATURE_BIT_G2D_DEC400EX */
0x0, /* gcFEATURE_BIT_G2D_YUV420_101010 */
0x0, /* gcFEATURE_BIT_SH_VX2_FLOATING_MAD_FIX */
0x0, /* gcFEATURE_BIT_TS_FC_VULKAN_SUPPORT */
0x0, /* gcFEATURE_BIT_MSAA_FLOAT_64BIT */
@ -2758,6 +2775,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_NN_SUPPORT_DUMMY_TILE */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_KERNEL_1BYTE_ALIGN */
0x0, /* gcFEATURE_BIT_NN_1x1_NON_POOLING_PACKING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_BOTH_CONV_NATIVE_STRIDE2_AND_POOLING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_CONV1x1_AND_NATIVE_CONV_STRIDE2 */
0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */
0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */
@ -2821,6 +2840,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_TP_FC_KERNEL_STREAM_MUST_LESS_THAN_OR_EQUAL_TO_64BYTE_WHEN_1BYTE_ALGINE_FIX */
0x0, /* gcFEATURE_BIT_NN_KERNEL_1x1_NO_PAD_FIX */
0x0, /* gcFEATURE_BIT_NN_DEPTHWISE_AFTER_16BIT_LAYER_LIMIT_FIX */
0x0, /* gcFEATURE_BIT_TP_NOT_FULL_USE_CACHE_LINE_FIX */
0x1, /* gcFEATURE_BIT_SH_MOVAI_MOVAR_UNUSED_COMPONENTS_WRITE_DIRTY_DATA_FIX */
0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */
0x0, /* gcFEATURE_BIT_NN_FP16_ALU */
@ -2895,6 +2915,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_VALUE_NN_INIMAGE_OFFSET_BITS */
0x0, /* gcFEATURE_VALUE_TP_REORDER_INIMAGE_SIZE */
0x0, /* gcFEATURE_VALUE_TPLite_CoreCount */
0x0, /* gcFEATURE_VALUE_NN_PREPROCESSOR_MAX_SEGMENT_PER_CYCLE */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_X */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_Y */
0x0, /* gcFEATURE_VALUE_NNFP16_ZDP */
@ -3308,6 +3329,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_ENDIAN_CONTROL */
0x0, /* gcFEATURE_BIT_G2D_RGB_PLANAR */
0x0, /* gcFEATURE_BIT_G2D_DEC400EX */
0x0, /* gcFEATURE_BIT_G2D_YUV420_101010 */
0x0, /* gcFEATURE_BIT_SH_VX2_FLOATING_MAD_FIX */
0x0, /* gcFEATURE_BIT_TS_FC_VULKAN_SUPPORT */
0x0, /* gcFEATURE_BIT_MSAA_FLOAT_64BIT */
@ -3452,6 +3474,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_NN_SUPPORT_DUMMY_TILE */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_KERNEL_1BYTE_ALIGN */
0x0, /* gcFEATURE_BIT_NN_1x1_NON_POOLING_PACKING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_BOTH_CONV_NATIVE_STRIDE2_AND_POOLING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_CONV1x1_AND_NATIVE_CONV_STRIDE2 */
0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */
0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */
@ -3515,6 +3539,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_TP_FC_KERNEL_STREAM_MUST_LESS_THAN_OR_EQUAL_TO_64BYTE_WHEN_1BYTE_ALGINE_FIX */
0x0, /* gcFEATURE_BIT_NN_KERNEL_1x1_NO_PAD_FIX */
0x0, /* gcFEATURE_BIT_NN_DEPTHWISE_AFTER_16BIT_LAYER_LIMIT_FIX */
0x0, /* gcFEATURE_BIT_TP_NOT_FULL_USE_CACHE_LINE_FIX */
0x1, /* gcFEATURE_BIT_SH_MOVAI_MOVAR_UNUSED_COMPONENTS_WRITE_DIRTY_DATA_FIX */
0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */
0x0, /* gcFEATURE_BIT_NN_FP16_ALU */
@ -3589,6 +3614,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_VALUE_NN_INIMAGE_OFFSET_BITS */
0x0, /* gcFEATURE_VALUE_TP_REORDER_INIMAGE_SIZE */
0x0, /* gcFEATURE_VALUE_TPLite_CoreCount */
0x0, /* gcFEATURE_VALUE_NN_PREPROCESSOR_MAX_SEGMENT_PER_CYCLE */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_X */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_Y */
0x0, /* gcFEATURE_VALUE_NNFP16_ZDP */
@ -4002,6 +4028,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_ENDIAN_CONTROL */
0x0, /* gcFEATURE_BIT_G2D_RGB_PLANAR */
0x0, /* gcFEATURE_BIT_G2D_DEC400EX */
0x0, /* gcFEATURE_BIT_G2D_YUV420_101010 */
0x0, /* gcFEATURE_BIT_SH_VX2_FLOATING_MAD_FIX */
0x0, /* gcFEATURE_BIT_TS_FC_VULKAN_SUPPORT */
0x0, /* gcFEATURE_BIT_MSAA_FLOAT_64BIT */
@ -4146,6 +4173,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_NN_SUPPORT_DUMMY_TILE */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_KERNEL_1BYTE_ALIGN */
0x0, /* gcFEATURE_BIT_NN_1x1_NON_POOLING_PACKING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_BOTH_CONV_NATIVE_STRIDE2_AND_POOLING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_CONV1x1_AND_NATIVE_CONV_STRIDE2 */
0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */
0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */
@ -4209,6 +4238,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_TP_FC_KERNEL_STREAM_MUST_LESS_THAN_OR_EQUAL_TO_64BYTE_WHEN_1BYTE_ALGINE_FIX */
0x0, /* gcFEATURE_BIT_NN_KERNEL_1x1_NO_PAD_FIX */
0x0, /* gcFEATURE_BIT_NN_DEPTHWISE_AFTER_16BIT_LAYER_LIMIT_FIX */
0x0, /* gcFEATURE_BIT_TP_NOT_FULL_USE_CACHE_LINE_FIX */
0x1, /* gcFEATURE_BIT_SH_MOVAI_MOVAR_UNUSED_COMPONENTS_WRITE_DIRTY_DATA_FIX */
0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */
0x0, /* gcFEATURE_BIT_NN_FP16_ALU */
@ -4283,6 +4313,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_VALUE_NN_INIMAGE_OFFSET_BITS */
0x0, /* gcFEATURE_VALUE_TP_REORDER_INIMAGE_SIZE */
0x0, /* gcFEATURE_VALUE_TPLite_CoreCount */
0x0, /* gcFEATURE_VALUE_NN_PREPROCESSOR_MAX_SEGMENT_PER_CYCLE */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_X */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_Y */
0x0, /* gcFEATURE_VALUE_NNFP16_ZDP */
@ -4696,6 +4727,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_ENDIAN_CONTROL */
0x0, /* gcFEATURE_BIT_G2D_RGB_PLANAR */
0x0, /* gcFEATURE_BIT_G2D_DEC400EX */
0x0, /* gcFEATURE_BIT_G2D_YUV420_101010 */
0x0, /* gcFEATURE_BIT_SH_VX2_FLOATING_MAD_FIX */
0x0, /* gcFEATURE_BIT_TS_FC_VULKAN_SUPPORT */
0x0, /* gcFEATURE_BIT_MSAA_FLOAT_64BIT */
@ -4840,6 +4872,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_NN_SUPPORT_DUMMY_TILE */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_KERNEL_1BYTE_ALIGN */
0x0, /* gcFEATURE_BIT_NN_1x1_NON_POOLING_PACKING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_BOTH_CONV_NATIVE_STRIDE2_AND_POOLING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_CONV1x1_AND_NATIVE_CONV_STRIDE2 */
0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */
0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */
@ -4903,6 +4937,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_TP_FC_KERNEL_STREAM_MUST_LESS_THAN_OR_EQUAL_TO_64BYTE_WHEN_1BYTE_ALGINE_FIX */
0x0, /* gcFEATURE_BIT_NN_KERNEL_1x1_NO_PAD_FIX */
0x0, /* gcFEATURE_BIT_NN_DEPTHWISE_AFTER_16BIT_LAYER_LIMIT_FIX */
0x0, /* gcFEATURE_BIT_TP_NOT_FULL_USE_CACHE_LINE_FIX */
0x1, /* gcFEATURE_BIT_SH_MOVAI_MOVAR_UNUSED_COMPONENTS_WRITE_DIRTY_DATA_FIX */
0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */
0x0, /* gcFEATURE_BIT_NN_FP16_ALU */
@ -4977,6 +5012,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_VALUE_NN_INIMAGE_OFFSET_BITS */
0x0, /* gcFEATURE_VALUE_TP_REORDER_INIMAGE_SIZE */
0x0, /* gcFEATURE_VALUE_TPLite_CoreCount */
0x0, /* gcFEATURE_VALUE_NN_PREPROCESSOR_MAX_SEGMENT_PER_CYCLE */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_X */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_Y */
0x0, /* gcFEATURE_VALUE_NNFP16_ZDP */
@ -5390,6 +5426,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_ENDIAN_CONTROL */
0x0, /* gcFEATURE_BIT_G2D_RGB_PLANAR */
0x0, /* gcFEATURE_BIT_G2D_DEC400EX */
0x0, /* gcFEATURE_BIT_G2D_YUV420_101010 */
0x0, /* gcFEATURE_BIT_SH_VX2_FLOATING_MAD_FIX */
0x0, /* gcFEATURE_BIT_TS_FC_VULKAN_SUPPORT */
0x0, /* gcFEATURE_BIT_MSAA_FLOAT_64BIT */
@ -5534,6 +5571,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_NN_SUPPORT_DUMMY_TILE */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_KERNEL_1BYTE_ALIGN */
0x0, /* gcFEATURE_BIT_NN_1x1_NON_POOLING_PACKING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_BOTH_CONV_NATIVE_STRIDE2_AND_POOLING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_CONV1x1_AND_NATIVE_CONV_STRIDE2 */
0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */
0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */
@ -5597,6 +5636,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_TP_FC_KERNEL_STREAM_MUST_LESS_THAN_OR_EQUAL_TO_64BYTE_WHEN_1BYTE_ALGINE_FIX */
0x0, /* gcFEATURE_BIT_NN_KERNEL_1x1_NO_PAD_FIX */
0x0, /* gcFEATURE_BIT_NN_DEPTHWISE_AFTER_16BIT_LAYER_LIMIT_FIX */
0x0, /* gcFEATURE_BIT_TP_NOT_FULL_USE_CACHE_LINE_FIX */
0x1, /* gcFEATURE_BIT_SH_MOVAI_MOVAR_UNUSED_COMPONENTS_WRITE_DIRTY_DATA_FIX */
0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */
0x0, /* gcFEATURE_BIT_NN_FP16_ALU */
@ -5671,6 +5711,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_VALUE_NN_INIMAGE_OFFSET_BITS */
0x0, /* gcFEATURE_VALUE_TP_REORDER_INIMAGE_SIZE */
0x0, /* gcFEATURE_VALUE_TPLite_CoreCount */
0x0, /* gcFEATURE_VALUE_NN_PREPROCESSOR_MAX_SEGMENT_PER_CYCLE */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_X */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_Y */
0x0, /* gcFEATURE_VALUE_NNFP16_ZDP */
@ -6084,6 +6125,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_ENDIAN_CONTROL */
0x0, /* gcFEATURE_BIT_G2D_RGB_PLANAR */
0x0, /* gcFEATURE_BIT_G2D_DEC400EX */
0x0, /* gcFEATURE_BIT_G2D_YUV420_101010 */
0x0, /* gcFEATURE_BIT_SH_VX2_FLOATING_MAD_FIX */
0x0, /* gcFEATURE_BIT_TS_FC_VULKAN_SUPPORT */
0x0, /* gcFEATURE_BIT_MSAA_FLOAT_64BIT */
@ -6228,6 +6270,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_NN_SUPPORT_DUMMY_TILE */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_KERNEL_1BYTE_ALIGN */
0x0, /* gcFEATURE_BIT_NN_1x1_NON_POOLING_PACKING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_BOTH_CONV_NATIVE_STRIDE2_AND_POOLING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_CONV1x1_AND_NATIVE_CONV_STRIDE2 */
0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */
0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */
@ -6291,6 +6335,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_TP_FC_KERNEL_STREAM_MUST_LESS_THAN_OR_EQUAL_TO_64BYTE_WHEN_1BYTE_ALGINE_FIX */
0x0, /* gcFEATURE_BIT_NN_KERNEL_1x1_NO_PAD_FIX */
0x0, /* gcFEATURE_BIT_NN_DEPTHWISE_AFTER_16BIT_LAYER_LIMIT_FIX */
0x0, /* gcFEATURE_BIT_TP_NOT_FULL_USE_CACHE_LINE_FIX */
0x1, /* gcFEATURE_BIT_SH_MOVAI_MOVAR_UNUSED_COMPONENTS_WRITE_DIRTY_DATA_FIX */
0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */
0x0, /* gcFEATURE_BIT_NN_FP16_ALU */
@ -6365,6 +6410,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_VALUE_NN_INIMAGE_OFFSET_BITS */
0x0, /* gcFEATURE_VALUE_TP_REORDER_INIMAGE_SIZE */
0x0, /* gcFEATURE_VALUE_TPLite_CoreCount */
0x0, /* gcFEATURE_VALUE_NN_PREPROCESSOR_MAX_SEGMENT_PER_CYCLE */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_X */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_Y */
0x0, /* gcFEATURE_VALUE_NNFP16_ZDP */
@ -6778,6 +6824,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_ENDIAN_CONTROL */
0x0, /* gcFEATURE_BIT_G2D_RGB_PLANAR */
0x0, /* gcFEATURE_BIT_G2D_DEC400EX */
0x0, /* gcFEATURE_BIT_G2D_YUV420_101010 */
0x0, /* gcFEATURE_BIT_SH_VX2_FLOATING_MAD_FIX */
0x0, /* gcFEATURE_BIT_TS_FC_VULKAN_SUPPORT */
0x0, /* gcFEATURE_BIT_MSAA_FLOAT_64BIT */
@ -6922,6 +6969,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_NN_SUPPORT_DUMMY_TILE */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_KERNEL_1BYTE_ALIGN */
0x0, /* gcFEATURE_BIT_NN_1x1_NON_POOLING_PACKING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_BOTH_CONV_NATIVE_STRIDE2_AND_POOLING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_CONV1x1_AND_NATIVE_CONV_STRIDE2 */
0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */
0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */
@ -6985,6 +7034,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_TP_FC_KERNEL_STREAM_MUST_LESS_THAN_OR_EQUAL_TO_64BYTE_WHEN_1BYTE_ALGINE_FIX */
0x0, /* gcFEATURE_BIT_NN_KERNEL_1x1_NO_PAD_FIX */
0x0, /* gcFEATURE_BIT_NN_DEPTHWISE_AFTER_16BIT_LAYER_LIMIT_FIX */
0x0, /* gcFEATURE_BIT_TP_NOT_FULL_USE_CACHE_LINE_FIX */
0x1, /* gcFEATURE_BIT_SH_MOVAI_MOVAR_UNUSED_COMPONENTS_WRITE_DIRTY_DATA_FIX */
0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */
0x0, /* gcFEATURE_BIT_NN_FP16_ALU */
@ -7059,6 +7109,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_VALUE_NN_INIMAGE_OFFSET_BITS */
0x0, /* gcFEATURE_VALUE_TP_REORDER_INIMAGE_SIZE */
0x0, /* gcFEATURE_VALUE_TPLite_CoreCount */
0x0, /* gcFEATURE_VALUE_NN_PREPROCESSOR_MAX_SEGMENT_PER_CYCLE */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_X */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_Y */
0x0, /* gcFEATURE_VALUE_NNFP16_ZDP */
@ -7472,6 +7523,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_ENDIAN_CONTROL */
0x0, /* gcFEATURE_BIT_G2D_RGB_PLANAR */
0x0, /* gcFEATURE_BIT_G2D_DEC400EX */
0x0, /* gcFEATURE_BIT_G2D_YUV420_101010 */
0x0, /* gcFEATURE_BIT_SH_VX2_FLOATING_MAD_FIX */
0x0, /* gcFEATURE_BIT_TS_FC_VULKAN_SUPPORT */
0x0, /* gcFEATURE_BIT_MSAA_FLOAT_64BIT */
@ -7616,6 +7668,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_NN_SUPPORT_DUMMY_TILE */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_KERNEL_1BYTE_ALIGN */
0x0, /* gcFEATURE_BIT_NN_1x1_NON_POOLING_PACKING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_BOTH_CONV_NATIVE_STRIDE2_AND_POOLING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_CONV1x1_AND_NATIVE_CONV_STRIDE2 */
0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */
0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */
@ -7679,6 +7733,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_TP_FC_KERNEL_STREAM_MUST_LESS_THAN_OR_EQUAL_TO_64BYTE_WHEN_1BYTE_ALGINE_FIX */
0x0, /* gcFEATURE_BIT_NN_KERNEL_1x1_NO_PAD_FIX */
0x0, /* gcFEATURE_BIT_NN_DEPTHWISE_AFTER_16BIT_LAYER_LIMIT_FIX */
0x0, /* gcFEATURE_BIT_TP_NOT_FULL_USE_CACHE_LINE_FIX */
0x1, /* gcFEATURE_BIT_SH_MOVAI_MOVAR_UNUSED_COMPONENTS_WRITE_DIRTY_DATA_FIX */
0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */
0x0, /* gcFEATURE_BIT_NN_FP16_ALU */
@ -7753,6 +7808,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_VALUE_NN_INIMAGE_OFFSET_BITS */
0x0, /* gcFEATURE_VALUE_TP_REORDER_INIMAGE_SIZE */
0x0, /* gcFEATURE_VALUE_TPLite_CoreCount */
0x0, /* gcFEATURE_VALUE_NN_PREPROCESSOR_MAX_SEGMENT_PER_CYCLE */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_X */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_Y */
0x0, /* gcFEATURE_VALUE_NNFP16_ZDP */
@ -8166,6 +8222,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_ENDIAN_CONTROL */
0x0, /* gcFEATURE_BIT_G2D_RGB_PLANAR */
0x0, /* gcFEATURE_BIT_G2D_DEC400EX */
0x0, /* gcFEATURE_BIT_G2D_YUV420_101010 */
0x0, /* gcFEATURE_BIT_SH_VX2_FLOATING_MAD_FIX */
0x0, /* gcFEATURE_BIT_TS_FC_VULKAN_SUPPORT */
0x0, /* gcFEATURE_BIT_MSAA_FLOAT_64BIT */
@ -8310,6 +8367,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_NN_SUPPORT_DUMMY_TILE */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_KERNEL_1BYTE_ALIGN */
0x0, /* gcFEATURE_BIT_NN_1x1_NON_POOLING_PACKING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_BOTH_CONV_NATIVE_STRIDE2_AND_POOLING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_CONV1x1_AND_NATIVE_CONV_STRIDE2 */
0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */
0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */
@ -8373,6 +8432,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_TP_FC_KERNEL_STREAM_MUST_LESS_THAN_OR_EQUAL_TO_64BYTE_WHEN_1BYTE_ALGINE_FIX */
0x0, /* gcFEATURE_BIT_NN_KERNEL_1x1_NO_PAD_FIX */
0x0, /* gcFEATURE_BIT_NN_DEPTHWISE_AFTER_16BIT_LAYER_LIMIT_FIX */
0x0, /* gcFEATURE_BIT_TP_NOT_FULL_USE_CACHE_LINE_FIX */
0x1, /* gcFEATURE_BIT_SH_MOVAI_MOVAR_UNUSED_COMPONENTS_WRITE_DIRTY_DATA_FIX */
0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */
0x0, /* gcFEATURE_BIT_NN_FP16_ALU */
@ -8447,6 +8507,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_VALUE_NN_INIMAGE_OFFSET_BITS */
0x0, /* gcFEATURE_VALUE_TP_REORDER_INIMAGE_SIZE */
0x0, /* gcFEATURE_VALUE_TPLite_CoreCount */
0x0, /* gcFEATURE_VALUE_NN_PREPROCESSOR_MAX_SEGMENT_PER_CYCLE */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_X */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_Y */
0x0, /* gcFEATURE_VALUE_NNFP16_ZDP */
@ -8860,6 +8921,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_ENDIAN_CONTROL */
0x0, /* gcFEATURE_BIT_G2D_RGB_PLANAR */
0x0, /* gcFEATURE_BIT_G2D_DEC400EX */
0x0, /* gcFEATURE_BIT_G2D_YUV420_101010 */
0x0, /* gcFEATURE_BIT_SH_VX2_FLOATING_MAD_FIX */
0x0, /* gcFEATURE_BIT_TS_FC_VULKAN_SUPPORT */
0x0, /* gcFEATURE_BIT_MSAA_FLOAT_64BIT */
@ -9004,6 +9066,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_NN_SUPPORT_DUMMY_TILE */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_KERNEL_1BYTE_ALIGN */
0x0, /* gcFEATURE_BIT_NN_1x1_NON_POOLING_PACKING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_BOTH_CONV_NATIVE_STRIDE2_AND_POOLING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_CONV1x1_AND_NATIVE_CONV_STRIDE2 */
0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */
0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */
@ -9067,6 +9131,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_TP_FC_KERNEL_STREAM_MUST_LESS_THAN_OR_EQUAL_TO_64BYTE_WHEN_1BYTE_ALGINE_FIX */
0x0, /* gcFEATURE_BIT_NN_KERNEL_1x1_NO_PAD_FIX */
0x0, /* gcFEATURE_BIT_NN_DEPTHWISE_AFTER_16BIT_LAYER_LIMIT_FIX */
0x0, /* gcFEATURE_BIT_TP_NOT_FULL_USE_CACHE_LINE_FIX */
0x1, /* gcFEATURE_BIT_SH_MOVAI_MOVAR_UNUSED_COMPONENTS_WRITE_DIRTY_DATA_FIX */
0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */
0x0, /* gcFEATURE_BIT_NN_FP16_ALU */
@ -9141,6 +9206,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_VALUE_NN_INIMAGE_OFFSET_BITS */
0x0, /* gcFEATURE_VALUE_TP_REORDER_INIMAGE_SIZE */
0x0, /* gcFEATURE_VALUE_TPLite_CoreCount */
0x0, /* gcFEATURE_VALUE_NN_PREPROCESSOR_MAX_SEGMENT_PER_CYCLE */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_X */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_Y */
0x0, /* gcFEATURE_VALUE_NNFP16_ZDP */
@ -9554,6 +9620,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_ENDIAN_CONTROL */
0x0, /* gcFEATURE_BIT_G2D_RGB_PLANAR */
0x0, /* gcFEATURE_BIT_G2D_DEC400EX */
0x0, /* gcFEATURE_BIT_G2D_YUV420_101010 */
0x0, /* gcFEATURE_BIT_SH_VX2_FLOATING_MAD_FIX */
0x0, /* gcFEATURE_BIT_TS_FC_VULKAN_SUPPORT */
0x0, /* gcFEATURE_BIT_MSAA_FLOAT_64BIT */
@ -9698,6 +9765,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_NN_SUPPORT_DUMMY_TILE */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_KERNEL_1BYTE_ALIGN */
0x0, /* gcFEATURE_BIT_NN_1x1_NON_POOLING_PACKING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_BOTH_CONV_NATIVE_STRIDE2_AND_POOLING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_CONV1x1_AND_NATIVE_CONV_STRIDE2 */
0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */
0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */
@ -9761,6 +9830,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_TP_FC_KERNEL_STREAM_MUST_LESS_THAN_OR_EQUAL_TO_64BYTE_WHEN_1BYTE_ALGINE_FIX */
0x0, /* gcFEATURE_BIT_NN_KERNEL_1x1_NO_PAD_FIX */
0x0, /* gcFEATURE_BIT_NN_DEPTHWISE_AFTER_16BIT_LAYER_LIMIT_FIX */
0x0, /* gcFEATURE_BIT_TP_NOT_FULL_USE_CACHE_LINE_FIX */
0x1, /* gcFEATURE_BIT_SH_MOVAI_MOVAR_UNUSED_COMPONENTS_WRITE_DIRTY_DATA_FIX */
0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */
0x0, /* gcFEATURE_BIT_NN_FP16_ALU */
@ -9835,6 +9905,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_VALUE_NN_INIMAGE_OFFSET_BITS */
0x0, /* gcFEATURE_VALUE_TP_REORDER_INIMAGE_SIZE */
0x0, /* gcFEATURE_VALUE_TPLite_CoreCount */
0x0, /* gcFEATURE_VALUE_NN_PREPROCESSOR_MAX_SEGMENT_PER_CYCLE */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_X */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_Y */
0x0, /* gcFEATURE_VALUE_NNFP16_ZDP */
@ -10248,6 +10319,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_ENDIAN_CONTROL */
0x0, /* gcFEATURE_BIT_G2D_RGB_PLANAR */
0x0, /* gcFEATURE_BIT_G2D_DEC400EX */
0x0, /* gcFEATURE_BIT_G2D_YUV420_101010 */
0x0, /* gcFEATURE_BIT_SH_VX2_FLOATING_MAD_FIX */
0x0, /* gcFEATURE_BIT_TS_FC_VULKAN_SUPPORT */
0x0, /* gcFEATURE_BIT_MSAA_FLOAT_64BIT */
@ -10392,6 +10464,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_NN_SUPPORT_DUMMY_TILE */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_KERNEL_1BYTE_ALIGN */
0x0, /* gcFEATURE_BIT_NN_1x1_NON_POOLING_PACKING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_BOTH_CONV_NATIVE_STRIDE2_AND_POOLING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_CONV1x1_AND_NATIVE_CONV_STRIDE2 */
0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */
0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */
@ -10455,6 +10529,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_TP_FC_KERNEL_STREAM_MUST_LESS_THAN_OR_EQUAL_TO_64BYTE_WHEN_1BYTE_ALGINE_FIX */
0x0, /* gcFEATURE_BIT_NN_KERNEL_1x1_NO_PAD_FIX */
0x0, /* gcFEATURE_BIT_NN_DEPTHWISE_AFTER_16BIT_LAYER_LIMIT_FIX */
0x0, /* gcFEATURE_BIT_TP_NOT_FULL_USE_CACHE_LINE_FIX */
0x1, /* gcFEATURE_BIT_SH_MOVAI_MOVAR_UNUSED_COMPONENTS_WRITE_DIRTY_DATA_FIX */
0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */
0x0, /* gcFEATURE_BIT_NN_FP16_ALU */
@ -10529,6 +10604,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_VALUE_NN_INIMAGE_OFFSET_BITS */
0x0, /* gcFEATURE_VALUE_TP_REORDER_INIMAGE_SIZE */
0x0, /* gcFEATURE_VALUE_TPLite_CoreCount */
0x0, /* gcFEATURE_VALUE_NN_PREPROCESSOR_MAX_SEGMENT_PER_CYCLE */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_X */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_Y */
0x0, /* gcFEATURE_VALUE_NNFP16_ZDP */
@ -10942,6 +11018,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_ENDIAN_CONTROL */
0x0, /* gcFEATURE_BIT_G2D_RGB_PLANAR */
0x0, /* gcFEATURE_BIT_G2D_DEC400EX */
0x0, /* gcFEATURE_BIT_G2D_YUV420_101010 */
0x0, /* gcFEATURE_BIT_SH_VX2_FLOATING_MAD_FIX */
0x0, /* gcFEATURE_BIT_TS_FC_VULKAN_SUPPORT */
0x0, /* gcFEATURE_BIT_MSAA_FLOAT_64BIT */
@ -11086,6 +11163,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_NN_SUPPORT_DUMMY_TILE */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_KERNEL_1BYTE_ALIGN */
0x0, /* gcFEATURE_BIT_NN_1x1_NON_POOLING_PACKING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_BOTH_CONV_NATIVE_STRIDE2_AND_POOLING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_CONV1x1_AND_NATIVE_CONV_STRIDE2 */
0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */
0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */
@ -11149,6 +11228,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_TP_FC_KERNEL_STREAM_MUST_LESS_THAN_OR_EQUAL_TO_64BYTE_WHEN_1BYTE_ALGINE_FIX */
0x0, /* gcFEATURE_BIT_NN_KERNEL_1x1_NO_PAD_FIX */
0x0, /* gcFEATURE_BIT_NN_DEPTHWISE_AFTER_16BIT_LAYER_LIMIT_FIX */
0x0, /* gcFEATURE_BIT_TP_NOT_FULL_USE_CACHE_LINE_FIX */
0x1, /* gcFEATURE_BIT_SH_MOVAI_MOVAR_UNUSED_COMPONENTS_WRITE_DIRTY_DATA_FIX */
0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */
0x0, /* gcFEATURE_BIT_NN_FP16_ALU */
@ -11223,6 +11303,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_VALUE_NN_INIMAGE_OFFSET_BITS */
0x0, /* gcFEATURE_VALUE_TP_REORDER_INIMAGE_SIZE */
0x0, /* gcFEATURE_VALUE_TPLite_CoreCount */
0x0, /* gcFEATURE_VALUE_NN_PREPROCESSOR_MAX_SEGMENT_PER_CYCLE */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_X */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_Y */
0x0, /* gcFEATURE_VALUE_NNFP16_ZDP */
@ -11636,6 +11717,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_ENDIAN_CONTROL */
0x0, /* gcFEATURE_BIT_G2D_RGB_PLANAR */
0x0, /* gcFEATURE_BIT_G2D_DEC400EX */
0x0, /* gcFEATURE_BIT_G2D_YUV420_101010 */
0x0, /* gcFEATURE_BIT_SH_VX2_FLOATING_MAD_FIX */
0x0, /* gcFEATURE_BIT_TS_FC_VULKAN_SUPPORT */
0x0, /* gcFEATURE_BIT_MSAA_FLOAT_64BIT */
@ -11780,6 +11862,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_NN_SUPPORT_DUMMY_TILE */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_KERNEL_1BYTE_ALIGN */
0x0, /* gcFEATURE_BIT_NN_1x1_NON_POOLING_PACKING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_BOTH_CONV_NATIVE_STRIDE2_AND_POOLING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_CONV1x1_AND_NATIVE_CONV_STRIDE2 */
0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */
0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */
@ -11843,6 +11927,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_TP_FC_KERNEL_STREAM_MUST_LESS_THAN_OR_EQUAL_TO_64BYTE_WHEN_1BYTE_ALGINE_FIX */
0x0, /* gcFEATURE_BIT_NN_KERNEL_1x1_NO_PAD_FIX */
0x0, /* gcFEATURE_BIT_NN_DEPTHWISE_AFTER_16BIT_LAYER_LIMIT_FIX */
0x0, /* gcFEATURE_BIT_TP_NOT_FULL_USE_CACHE_LINE_FIX */
0x1, /* gcFEATURE_BIT_SH_MOVAI_MOVAR_UNUSED_COMPONENTS_WRITE_DIRTY_DATA_FIX */
0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */
0x0, /* gcFEATURE_BIT_NN_FP16_ALU */
@ -11917,6 +12002,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_VALUE_NN_INIMAGE_OFFSET_BITS */
0x0, /* gcFEATURE_VALUE_TP_REORDER_INIMAGE_SIZE */
0x0, /* gcFEATURE_VALUE_TPLite_CoreCount */
0x0, /* gcFEATURE_VALUE_NN_PREPROCESSOR_MAX_SEGMENT_PER_CYCLE */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_X */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_Y */
0x0, /* gcFEATURE_VALUE_NNFP16_ZDP */
@ -12330,6 +12416,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_ENDIAN_CONTROL */
0x0, /* gcFEATURE_BIT_G2D_RGB_PLANAR */
0x0, /* gcFEATURE_BIT_G2D_DEC400EX */
0x0, /* gcFEATURE_BIT_G2D_YUV420_101010 */
0x0, /* gcFEATURE_BIT_SH_VX2_FLOATING_MAD_FIX */
0x0, /* gcFEATURE_BIT_TS_FC_VULKAN_SUPPORT */
0x0, /* gcFEATURE_BIT_MSAA_FLOAT_64BIT */
@ -12474,6 +12561,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_NN_SUPPORT_DUMMY_TILE */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_KERNEL_1BYTE_ALIGN */
0x0, /* gcFEATURE_BIT_NN_1x1_NON_POOLING_PACKING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_BOTH_CONV_NATIVE_STRIDE2_AND_POOLING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_CONV1x1_AND_NATIVE_CONV_STRIDE2 */
0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */
0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */
@ -12537,6 +12626,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_TP_FC_KERNEL_STREAM_MUST_LESS_THAN_OR_EQUAL_TO_64BYTE_WHEN_1BYTE_ALGINE_FIX */
0x0, /* gcFEATURE_BIT_NN_KERNEL_1x1_NO_PAD_FIX */
0x0, /* gcFEATURE_BIT_NN_DEPTHWISE_AFTER_16BIT_LAYER_LIMIT_FIX */
0x0, /* gcFEATURE_BIT_TP_NOT_FULL_USE_CACHE_LINE_FIX */
0x1, /* gcFEATURE_BIT_SH_MOVAI_MOVAR_UNUSED_COMPONENTS_WRITE_DIRTY_DATA_FIX */
0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */
0x0, /* gcFEATURE_BIT_NN_FP16_ALU */
@ -12611,6 +12701,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_VALUE_NN_INIMAGE_OFFSET_BITS */
0x0, /* gcFEATURE_VALUE_TP_REORDER_INIMAGE_SIZE */
0x0, /* gcFEATURE_VALUE_TPLite_CoreCount */
0x0, /* gcFEATURE_VALUE_NN_PREPROCESSOR_MAX_SEGMENT_PER_CYCLE */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_X */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_Y */
0x0, /* gcFEATURE_VALUE_NNFP16_ZDP */
@ -13024,6 +13115,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_ENDIAN_CONTROL */
0x0, /* gcFEATURE_BIT_G2D_RGB_PLANAR */
0x0, /* gcFEATURE_BIT_G2D_DEC400EX */
0x0, /* gcFEATURE_BIT_G2D_YUV420_101010 */
0x0, /* gcFEATURE_BIT_SH_VX2_FLOATING_MAD_FIX */
0x0, /* gcFEATURE_BIT_TS_FC_VULKAN_SUPPORT */
0x0, /* gcFEATURE_BIT_MSAA_FLOAT_64BIT */
@ -13168,6 +13260,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_NN_SUPPORT_DUMMY_TILE */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_KERNEL_1BYTE_ALIGN */
0x0, /* gcFEATURE_BIT_NN_1x1_NON_POOLING_PACKING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_BOTH_CONV_NATIVE_STRIDE2_AND_POOLING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_CONV1x1_AND_NATIVE_CONV_STRIDE2 */
0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */
0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */
@ -13231,6 +13325,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_TP_FC_KERNEL_STREAM_MUST_LESS_THAN_OR_EQUAL_TO_64BYTE_WHEN_1BYTE_ALGINE_FIX */
0x0, /* gcFEATURE_BIT_NN_KERNEL_1x1_NO_PAD_FIX */
0x0, /* gcFEATURE_BIT_NN_DEPTHWISE_AFTER_16BIT_LAYER_LIMIT_FIX */
0x0, /* gcFEATURE_BIT_TP_NOT_FULL_USE_CACHE_LINE_FIX */
0x1, /* gcFEATURE_BIT_SH_MOVAI_MOVAR_UNUSED_COMPONENTS_WRITE_DIRTY_DATA_FIX */
0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */
0x0, /* gcFEATURE_BIT_NN_FP16_ALU */
@ -13305,6 +13400,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_VALUE_NN_INIMAGE_OFFSET_BITS */
0x0, /* gcFEATURE_VALUE_TP_REORDER_INIMAGE_SIZE */
0x0, /* gcFEATURE_VALUE_TPLite_CoreCount */
0x0, /* gcFEATURE_VALUE_NN_PREPROCESSOR_MAX_SEGMENT_PER_CYCLE */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_X */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_Y */
0x0, /* gcFEATURE_VALUE_NNFP16_ZDP */
@ -13718,6 +13814,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_ENDIAN_CONTROL */
0x0, /* gcFEATURE_BIT_G2D_RGB_PLANAR */
0x0, /* gcFEATURE_BIT_G2D_DEC400EX */
0x0, /* gcFEATURE_BIT_G2D_YUV420_101010 */
0x0, /* gcFEATURE_BIT_SH_VX2_FLOATING_MAD_FIX */
0x0, /* gcFEATURE_BIT_TS_FC_VULKAN_SUPPORT */
0x1, /* gcFEATURE_BIT_MSAA_FLOAT_64BIT */
@ -13862,6 +13959,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_NN_SUPPORT_DUMMY_TILE */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_KERNEL_1BYTE_ALIGN */
0x0, /* gcFEATURE_BIT_NN_1x1_NON_POOLING_PACKING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_BOTH_CONV_NATIVE_STRIDE2_AND_POOLING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_CONV1x1_AND_NATIVE_CONV_STRIDE2 */
0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */
0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */
@ -13925,6 +14024,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_TP_FC_KERNEL_STREAM_MUST_LESS_THAN_OR_EQUAL_TO_64BYTE_WHEN_1BYTE_ALGINE_FIX */
0x0, /* gcFEATURE_BIT_NN_KERNEL_1x1_NO_PAD_FIX */
0x0, /* gcFEATURE_BIT_NN_DEPTHWISE_AFTER_16BIT_LAYER_LIMIT_FIX */
0x0, /* gcFEATURE_BIT_TP_NOT_FULL_USE_CACHE_LINE_FIX */
0x1, /* gcFEATURE_BIT_SH_MOVAI_MOVAR_UNUSED_COMPONENTS_WRITE_DIRTY_DATA_FIX */
0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */
0x0, /* gcFEATURE_BIT_NN_FP16_ALU */
@ -13999,6 +14099,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_VALUE_NN_INIMAGE_OFFSET_BITS */
0x0, /* gcFEATURE_VALUE_TP_REORDER_INIMAGE_SIZE */
0x0, /* gcFEATURE_VALUE_TPLite_CoreCount */
0x0, /* gcFEATURE_VALUE_NN_PREPROCESSOR_MAX_SEGMENT_PER_CYCLE */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_X */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_Y */
0x0, /* gcFEATURE_VALUE_NNFP16_ZDP */
@ -14412,6 +14513,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_ENDIAN_CONTROL */
0x0, /* gcFEATURE_BIT_G2D_RGB_PLANAR */
0x0, /* gcFEATURE_BIT_G2D_DEC400EX */
0x0, /* gcFEATURE_BIT_G2D_YUV420_101010 */
0x0, /* gcFEATURE_BIT_SH_VX2_FLOATING_MAD_FIX */
0x0, /* gcFEATURE_BIT_TS_FC_VULKAN_SUPPORT */
0x1, /* gcFEATURE_BIT_MSAA_FLOAT_64BIT */
@ -14556,6 +14658,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_NN_SUPPORT_DUMMY_TILE */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_KERNEL_1BYTE_ALIGN */
0x0, /* gcFEATURE_BIT_NN_1x1_NON_POOLING_PACKING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_BOTH_CONV_NATIVE_STRIDE2_AND_POOLING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_CONV1x1_AND_NATIVE_CONV_STRIDE2 */
0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */
0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */
@ -14619,6 +14723,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_TP_FC_KERNEL_STREAM_MUST_LESS_THAN_OR_EQUAL_TO_64BYTE_WHEN_1BYTE_ALGINE_FIX */
0x0, /* gcFEATURE_BIT_NN_KERNEL_1x1_NO_PAD_FIX */
0x0, /* gcFEATURE_BIT_NN_DEPTHWISE_AFTER_16BIT_LAYER_LIMIT_FIX */
0x0, /* gcFEATURE_BIT_TP_NOT_FULL_USE_CACHE_LINE_FIX */
0x1, /* gcFEATURE_BIT_SH_MOVAI_MOVAR_UNUSED_COMPONENTS_WRITE_DIRTY_DATA_FIX */
0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */
0x0, /* gcFEATURE_BIT_NN_FP16_ALU */
@ -14693,6 +14798,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_VALUE_NN_INIMAGE_OFFSET_BITS */
0x0, /* gcFEATURE_VALUE_TP_REORDER_INIMAGE_SIZE */
0x0, /* gcFEATURE_VALUE_TPLite_CoreCount */
0x0, /* gcFEATURE_VALUE_NN_PREPROCESSOR_MAX_SEGMENT_PER_CYCLE */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_X */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_Y */
0x0, /* gcFEATURE_VALUE_NNFP16_ZDP */
@ -15106,6 +15212,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_ENDIAN_CONTROL */
0x0, /* gcFEATURE_BIT_G2D_RGB_PLANAR */
0x0, /* gcFEATURE_BIT_G2D_DEC400EX */
0x0, /* gcFEATURE_BIT_G2D_YUV420_101010 */
0x0, /* gcFEATURE_BIT_SH_VX2_FLOATING_MAD_FIX */
0x0, /* gcFEATURE_BIT_TS_FC_VULKAN_SUPPORT */
0x0, /* gcFEATURE_BIT_MSAA_FLOAT_64BIT */
@ -15250,6 +15357,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_NN_SUPPORT_DUMMY_TILE */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_KERNEL_1BYTE_ALIGN */
0x0, /* gcFEATURE_BIT_NN_1x1_NON_POOLING_PACKING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_BOTH_CONV_NATIVE_STRIDE2_AND_POOLING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_CONV1x1_AND_NATIVE_CONV_STRIDE2 */
0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */
0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */
@ -15313,6 +15422,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_TP_FC_KERNEL_STREAM_MUST_LESS_THAN_OR_EQUAL_TO_64BYTE_WHEN_1BYTE_ALGINE_FIX */
0x0, /* gcFEATURE_BIT_NN_KERNEL_1x1_NO_PAD_FIX */
0x0, /* gcFEATURE_BIT_NN_DEPTHWISE_AFTER_16BIT_LAYER_LIMIT_FIX */
0x0, /* gcFEATURE_BIT_TP_NOT_FULL_USE_CACHE_LINE_FIX */
0x1, /* gcFEATURE_BIT_SH_MOVAI_MOVAR_UNUSED_COMPONENTS_WRITE_DIRTY_DATA_FIX */
0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */
0x0, /* gcFEATURE_BIT_NN_FP16_ALU */
@ -15331,7 +15441,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
/* gc7000ULN_v123 */
{
0x7000, /* ChipID */
0x6203, /* ChipRevision */
0x6204, /* ChipRevision */
0x70003, /* ProductID */
0x0, /* EcoID */
0x11, /* CustomerID */
@ -15387,6 +15497,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_VALUE_NN_INIMAGE_OFFSET_BITS */
0x0, /* gcFEATURE_VALUE_TP_REORDER_INIMAGE_SIZE */
0x0, /* gcFEATURE_VALUE_TPLite_CoreCount */
0x0, /* gcFEATURE_VALUE_NN_PREPROCESSOR_MAX_SEGMENT_PER_CYCLE */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_X */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_Y */
0x0, /* gcFEATURE_VALUE_NNFP16_ZDP */
@ -15800,6 +15911,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_ENDIAN_CONTROL */
0x0, /* gcFEATURE_BIT_G2D_RGB_PLANAR */
0x0, /* gcFEATURE_BIT_G2D_DEC400EX */
0x0, /* gcFEATURE_BIT_G2D_YUV420_101010 */
0x0, /* gcFEATURE_BIT_SH_VX2_FLOATING_MAD_FIX */
0x0, /* gcFEATURE_BIT_TS_FC_VULKAN_SUPPORT */
0x0, /* gcFEATURE_BIT_MSAA_FLOAT_64BIT */
@ -15944,6 +16056,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_NN_SUPPORT_DUMMY_TILE */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_KERNEL_1BYTE_ALIGN */
0x0, /* gcFEATURE_BIT_NN_1x1_NON_POOLING_PACKING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_BOTH_CONV_NATIVE_STRIDE2_AND_POOLING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_CONV1x1_AND_NATIVE_CONV_STRIDE2 */
0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */
0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */
@ -16007,6 +16121,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_TP_FC_KERNEL_STREAM_MUST_LESS_THAN_OR_EQUAL_TO_64BYTE_WHEN_1BYTE_ALGINE_FIX */
0x0, /* gcFEATURE_BIT_NN_KERNEL_1x1_NO_PAD_FIX */
0x0, /* gcFEATURE_BIT_NN_DEPTHWISE_AFTER_16BIT_LAYER_LIMIT_FIX */
0x0, /* gcFEATURE_BIT_TP_NOT_FULL_USE_CACHE_LINE_FIX */
0x1, /* gcFEATURE_BIT_SH_MOVAI_MOVAR_UNUSED_COMPONENTS_WRITE_DIRTY_DATA_FIX */
0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */
0x0, /* gcFEATURE_BIT_NN_FP16_ALU */
@ -16081,6 +16196,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_VALUE_NN_INIMAGE_OFFSET_BITS */
0x0, /* gcFEATURE_VALUE_TP_REORDER_INIMAGE_SIZE */
0x0, /* gcFEATURE_VALUE_TPLite_CoreCount */
0x0, /* gcFEATURE_VALUE_NN_PREPROCESSOR_MAX_SEGMENT_PER_CYCLE */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_X */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_Y */
0x0, /* gcFEATURE_VALUE_NNFP16_ZDP */
@ -16494,6 +16610,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_ENDIAN_CONTROL */
0x0, /* gcFEATURE_BIT_G2D_RGB_PLANAR */
0x0, /* gcFEATURE_BIT_G2D_DEC400EX */
0x0, /* gcFEATURE_BIT_G2D_YUV420_101010 */
0x0, /* gcFEATURE_BIT_SH_VX2_FLOATING_MAD_FIX */
0x0, /* gcFEATURE_BIT_TS_FC_VULKAN_SUPPORT */
0x0, /* gcFEATURE_BIT_MSAA_FLOAT_64BIT */
@ -16638,6 +16755,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_NN_SUPPORT_DUMMY_TILE */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_KERNEL_1BYTE_ALIGN */
0x0, /* gcFEATURE_BIT_NN_1x1_NON_POOLING_PACKING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_BOTH_CONV_NATIVE_STRIDE2_AND_POOLING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_CONV1x1_AND_NATIVE_CONV_STRIDE2 */
0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */
0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */
@ -16701,6 +16820,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_TP_FC_KERNEL_STREAM_MUST_LESS_THAN_OR_EQUAL_TO_64BYTE_WHEN_1BYTE_ALGINE_FIX */
0x0, /* gcFEATURE_BIT_NN_KERNEL_1x1_NO_PAD_FIX */
0x0, /* gcFEATURE_BIT_NN_DEPTHWISE_AFTER_16BIT_LAYER_LIMIT_FIX */
0x0, /* gcFEATURE_BIT_TP_NOT_FULL_USE_CACHE_LINE_FIX */
0x1, /* gcFEATURE_BIT_SH_MOVAI_MOVAR_UNUSED_COMPONENTS_WRITE_DIRTY_DATA_FIX */
0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */
0x0, /* gcFEATURE_BIT_NN_FP16_ALU */
@ -16775,6 +16895,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_VALUE_NN_INIMAGE_OFFSET_BITS */
0x0, /* gcFEATURE_VALUE_TP_REORDER_INIMAGE_SIZE */
0x0, /* gcFEATURE_VALUE_TPLite_CoreCount */
0x0, /* gcFEATURE_VALUE_NN_PREPROCESSOR_MAX_SEGMENT_PER_CYCLE */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_X */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_Y */
0x0, /* gcFEATURE_VALUE_NNFP16_ZDP */
@ -17188,6 +17309,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_ENDIAN_CONTROL */
0x0, /* gcFEATURE_BIT_G2D_RGB_PLANAR */
0x0, /* gcFEATURE_BIT_G2D_DEC400EX */
0x0, /* gcFEATURE_BIT_G2D_YUV420_101010 */
0x0, /* gcFEATURE_BIT_SH_VX2_FLOATING_MAD_FIX */
0x0, /* gcFEATURE_BIT_TS_FC_VULKAN_SUPPORT */
0x1, /* gcFEATURE_BIT_MSAA_FLOAT_64BIT */
@ -17332,6 +17454,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_NN_SUPPORT_DUMMY_TILE */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_KERNEL_1BYTE_ALIGN */
0x0, /* gcFEATURE_BIT_NN_1x1_NON_POOLING_PACKING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_BOTH_CONV_NATIVE_STRIDE2_AND_POOLING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_CONV1x1_AND_NATIVE_CONV_STRIDE2 */
0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */
0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */
@ -17395,6 +17519,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_TP_FC_KERNEL_STREAM_MUST_LESS_THAN_OR_EQUAL_TO_64BYTE_WHEN_1BYTE_ALGINE_FIX */
0x0, /* gcFEATURE_BIT_NN_KERNEL_1x1_NO_PAD_FIX */
0x0, /* gcFEATURE_BIT_NN_DEPTHWISE_AFTER_16BIT_LAYER_LIMIT_FIX */
0x0, /* gcFEATURE_BIT_TP_NOT_FULL_USE_CACHE_LINE_FIX */
0x1, /* gcFEATURE_BIT_SH_MOVAI_MOVAR_UNUSED_COMPONENTS_WRITE_DIRTY_DATA_FIX */
0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */
0x0, /* gcFEATURE_BIT_NN_FP16_ALU */
@ -17469,6 +17594,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_VALUE_NN_INIMAGE_OFFSET_BITS */
0x0, /* gcFEATURE_VALUE_TP_REORDER_INIMAGE_SIZE */
0x0, /* gcFEATURE_VALUE_TPLite_CoreCount */
0x0, /* gcFEATURE_VALUE_NN_PREPROCESSOR_MAX_SEGMENT_PER_CYCLE */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_X */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_Y */
0x0, /* gcFEATURE_VALUE_NNFP16_ZDP */
@ -17882,6 +18008,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_ENDIAN_CONTROL */
0x0, /* gcFEATURE_BIT_G2D_RGB_PLANAR */
0x0, /* gcFEATURE_BIT_G2D_DEC400EX */
0x0, /* gcFEATURE_BIT_G2D_YUV420_101010 */
0x0, /* gcFEATURE_BIT_SH_VX2_FLOATING_MAD_FIX */
0x0, /* gcFEATURE_BIT_TS_FC_VULKAN_SUPPORT */
0x1, /* gcFEATURE_BIT_MSAA_FLOAT_64BIT */
@ -18026,6 +18153,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_NN_SUPPORT_DUMMY_TILE */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_KERNEL_1BYTE_ALIGN */
0x0, /* gcFEATURE_BIT_NN_1x1_NON_POOLING_PACKING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_BOTH_CONV_NATIVE_STRIDE2_AND_POOLING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_CONV1x1_AND_NATIVE_CONV_STRIDE2 */
0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */
0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */
@ -18089,6 +18218,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_TP_FC_KERNEL_STREAM_MUST_LESS_THAN_OR_EQUAL_TO_64BYTE_WHEN_1BYTE_ALGINE_FIX */
0x0, /* gcFEATURE_BIT_NN_KERNEL_1x1_NO_PAD_FIX */
0x0, /* gcFEATURE_BIT_NN_DEPTHWISE_AFTER_16BIT_LAYER_LIMIT_FIX */
0x0, /* gcFEATURE_BIT_TP_NOT_FULL_USE_CACHE_LINE_FIX */
0x1, /* gcFEATURE_BIT_SH_MOVAI_MOVAR_UNUSED_COMPONENTS_WRITE_DIRTY_DATA_FIX */
0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */
0x0, /* gcFEATURE_BIT_NN_FP16_ALU */
@ -18163,6 +18293,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_VALUE_NN_INIMAGE_OFFSET_BITS */
0x0, /* gcFEATURE_VALUE_TP_REORDER_INIMAGE_SIZE */
0x0, /* gcFEATURE_VALUE_TPLite_CoreCount */
0x0, /* gcFEATURE_VALUE_NN_PREPROCESSOR_MAX_SEGMENT_PER_CYCLE */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_X */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_Y */
0x0, /* gcFEATURE_VALUE_NNFP16_ZDP */
@ -18576,7 +18707,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_ENDIAN_CONTROL */
0x0, /* gcFEATURE_BIT_G2D_RGB_PLANAR */
0x0, /* gcFEATURE_BIT_G2D_DEC400EX */
0x0, /* gcFEATURE_BIT_SH_VX2_FLOATING_MAD_FIX */
0x0, /* gcFEATURE_BIT_G2D_YUV420_101010 */
0x1, /* gcFEATURE_BIT_SH_VX2_FLOATING_MAD_FIX */
0x0, /* gcFEATURE_BIT_TS_FC_VULKAN_SUPPORT */
0x1, /* gcFEATURE_BIT_MSAA_FLOAT_64BIT */
0x0, /* gcFEATURE_BIT_INDIRECT_COMPUTE_ZERODIM_FIX */
@ -18720,6 +18852,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_NN_SUPPORT_DUMMY_TILE */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_KERNEL_1BYTE_ALIGN */
0x0, /* gcFEATURE_BIT_NN_1x1_NON_POOLING_PACKING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_BOTH_CONV_NATIVE_STRIDE2_AND_POOLING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_CONV1x1_AND_NATIVE_CONV_STRIDE2 */
0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */
0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */
@ -18783,6 +18917,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_TP_FC_KERNEL_STREAM_MUST_LESS_THAN_OR_EQUAL_TO_64BYTE_WHEN_1BYTE_ALGINE_FIX */
0x0, /* gcFEATURE_BIT_NN_KERNEL_1x1_NO_PAD_FIX */
0x0, /* gcFEATURE_BIT_NN_DEPTHWISE_AFTER_16BIT_LAYER_LIMIT_FIX */
0x0, /* gcFEATURE_BIT_TP_NOT_FULL_USE_CACHE_LINE_FIX */
0x1, /* gcFEATURE_BIT_SH_MOVAI_MOVAR_UNUSED_COMPONENTS_WRITE_DIRTY_DATA_FIX */
0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */
0x0, /* gcFEATURE_BIT_NN_FP16_ALU */
@ -18857,6 +18992,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_VALUE_NN_INIMAGE_OFFSET_BITS */
0x0, /* gcFEATURE_VALUE_TP_REORDER_INIMAGE_SIZE */
0x0, /* gcFEATURE_VALUE_TPLite_CoreCount */
0x0, /* gcFEATURE_VALUE_NN_PREPROCESSOR_MAX_SEGMENT_PER_CYCLE */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_X */
0x0, /* gcFEATURE_VALUE_NNFP16_XYDP_Y */
0x0, /* gcFEATURE_VALUE_NNFP16_ZDP */
@ -19270,7 +19406,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_ENDIAN_CONTROL */
0x0, /* gcFEATURE_BIT_G2D_RGB_PLANAR */
0x0, /* gcFEATURE_BIT_G2D_DEC400EX */
0x0, /* gcFEATURE_BIT_SH_VX2_FLOATING_MAD_FIX */
0x0, /* gcFEATURE_BIT_G2D_YUV420_101010 */
0x1, /* gcFEATURE_BIT_SH_VX2_FLOATING_MAD_FIX */
0x1, /* gcFEATURE_BIT_TS_FC_VULKAN_SUPPORT */
0x1, /* gcFEATURE_BIT_MSAA_FLOAT_64BIT */
0x0, /* gcFEATURE_BIT_INDIRECT_COMPUTE_ZERODIM_FIX */
@ -19327,13 +19464,13 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_NN_MIRROR_BORDER */
0x0, /* gcFEATURE_BIT_AI_GPU */
0x0, /* gcFEATURE_BIT_EVIS_NO_ABSDIFF */
0x0, /* gcFEATURE_BIT_EVIS_NO_BITREPLACE */
0x0, /* gcFEATURE_BIT_EVIS_NO_BOXFILTER */
0x0, /* gcFEATURE_BIT_EVIS_NO_CORDIAC */
0x0, /* gcFEATURE_BIT_EVIS_NO_DP32 */
0x0, /* gcFEATURE_BIT_EVIS_NO_FILTER */
0x0, /* gcFEATURE_BIT_EVIS_NO_IADD */
0x0, /* gcFEATURE_BIT_EVIS_NO_SELECTADD */
0x1, /* gcFEATURE_BIT_EVIS_NO_BITREPLACE */
0x1, /* gcFEATURE_BIT_EVIS_NO_BOXFILTER */
0x1, /* gcFEATURE_BIT_EVIS_NO_CORDIAC */
0x1, /* gcFEATURE_BIT_EVIS_NO_DP32 */
0x1, /* gcFEATURE_BIT_EVIS_NO_FILTER */
0x1, /* gcFEATURE_BIT_EVIS_NO_IADD */
0x1, /* gcFEATURE_BIT_EVIS_NO_SELECTADD */
0x0, /* gcFEATURE_BIT_EVIS_LERP_7OUTPUT */
0x0, /* gcFEATURE_BIT_EVIS_ACCSQ_8OUTPUT */
0x1, /* gcFEATURE_BIT_EVIS_VX2 */
@ -19414,6 +19551,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_NN_SUPPORT_DUMMY_TILE */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_KERNEL_1BYTE_ALIGN */
0x0, /* gcFEATURE_BIT_NN_1x1_NON_POOLING_PACKING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_BOTH_CONV_NATIVE_STRIDE2_AND_POOLING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_CONV1x1_AND_NATIVE_CONV_STRIDE2 */
0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */
0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */
@ -19477,6 +19616,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_TP_FC_KERNEL_STREAM_MUST_LESS_THAN_OR_EQUAL_TO_64BYTE_WHEN_1BYTE_ALGINE_FIX */
0x0, /* gcFEATURE_BIT_NN_KERNEL_1x1_NO_PAD_FIX */
0x0, /* gcFEATURE_BIT_NN_DEPTHWISE_AFTER_16BIT_LAYER_LIMIT_FIX */
0x0, /* gcFEATURE_BIT_TP_NOT_FULL_USE_CACHE_LINE_FIX */
0x1, /* gcFEATURE_BIT_SH_MOVAI_MOVAR_UNUSED_COMPONENTS_WRITE_DIRTY_DATA_FIX */
0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */
0x0, /* gcFEATURE_BIT_NN_FP16_ALU */
@ -19551,6 +19691,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x5, /* gcFEATURE_VALUE_NN_INIMAGE_OFFSET_BITS */
0x200, /* gcFEATURE_VALUE_TP_REORDER_INIMAGE_SIZE */
0x0, /* gcFEATURE_VALUE_TPLite_CoreCount */
0x8, /* gcFEATURE_VALUE_NN_PREPROCESSOR_MAX_SEGMENT_PER_CYCLE */
0x1, /* gcFEATURE_VALUE_NNFP16_XYDP_X */
0x1, /* gcFEATURE_VALUE_NNFP16_XYDP_Y */
0x1, /* gcFEATURE_VALUE_NNFP16_ZDP */
@ -19964,6 +20105,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_ENDIAN_CONTROL */
0x0, /* gcFEATURE_BIT_G2D_RGB_PLANAR */
0x0, /* gcFEATURE_BIT_G2D_DEC400EX */
0x0, /* gcFEATURE_BIT_G2D_YUV420_101010 */
0x0, /* gcFEATURE_BIT_SH_VX2_FLOATING_MAD_FIX */
0x0, /* gcFEATURE_BIT_TS_FC_VULKAN_SUPPORT */
0x0, /* gcFEATURE_BIT_MSAA_FLOAT_64BIT */
@ -20108,6 +20250,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_NN_SUPPORT_DUMMY_TILE */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_KERNEL_1BYTE_ALIGN */
0x0, /* gcFEATURE_BIT_NN_1x1_NON_POOLING_PACKING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_BOTH_CONV_NATIVE_STRIDE2_AND_POOLING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_CONV1x1_AND_NATIVE_CONV_STRIDE2 */
0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */
0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */
@ -20171,6 +20315,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x1, /* gcFEATURE_BIT_TP_FC_KERNEL_STREAM_MUST_LESS_THAN_OR_EQUAL_TO_64BYTE_WHEN_1BYTE_ALGINE_FIX */
0x0, /* gcFEATURE_BIT_NN_KERNEL_1x1_NO_PAD_FIX */
0x0, /* gcFEATURE_BIT_NN_DEPTHWISE_AFTER_16BIT_LAYER_LIMIT_FIX */
0x0, /* gcFEATURE_BIT_TP_NOT_FULL_USE_CACHE_LINE_FIX */
0x0, /* gcFEATURE_BIT_SH_MOVAI_MOVAR_UNUSED_COMPONENTS_WRITE_DIRTY_DATA_FIX */
0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */
0x0, /* gcFEATURE_BIT_NN_FP16_ALU */
@ -20245,6 +20390,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x5, /* gcFEATURE_VALUE_NN_INIMAGE_OFFSET_BITS */
0x200, /* gcFEATURE_VALUE_TP_REORDER_INIMAGE_SIZE */
0x0, /* gcFEATURE_VALUE_TPLite_CoreCount */
0x8, /* gcFEATURE_VALUE_NN_PREPROCESSOR_MAX_SEGMENT_PER_CYCLE */
0x1, /* gcFEATURE_VALUE_NNFP16_XYDP_X */
0x1, /* gcFEATURE_VALUE_NNFP16_XYDP_Y */
0x1, /* gcFEATURE_VALUE_NNFP16_ZDP */
@ -20658,6 +20804,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_ENDIAN_CONTROL */
0x0, /* gcFEATURE_BIT_G2D_RGB_PLANAR */
0x0, /* gcFEATURE_BIT_G2D_DEC400EX */
0x0, /* gcFEATURE_BIT_G2D_YUV420_101010 */
0x0, /* gcFEATURE_BIT_SH_VX2_FLOATING_MAD_FIX */
0x0, /* gcFEATURE_BIT_TS_FC_VULKAN_SUPPORT */
0x0, /* gcFEATURE_BIT_MSAA_FLOAT_64BIT */
@ -20802,6 +20949,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x0, /* gcFEATURE_BIT_NN_SUPPORT_DUMMY_TILE */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_KERNEL_1BYTE_ALIGN */
0x0, /* gcFEATURE_BIT_NN_1x1_NON_POOLING_PACKING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_BOTH_CONV_NATIVE_STRIDE2_AND_POOLING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_CONV1x1_AND_NATIVE_CONV_STRIDE2 */
0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */
0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */
0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */
@ -20865,6 +21014,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
0x1, /* gcFEATURE_BIT_TP_FC_KERNEL_STREAM_MUST_LESS_THAN_OR_EQUAL_TO_64BYTE_WHEN_1BYTE_ALGINE_FIX */
0x0, /* gcFEATURE_BIT_NN_KERNEL_1x1_NO_PAD_FIX */
0x0, /* gcFEATURE_BIT_NN_DEPTHWISE_AFTER_16BIT_LAYER_LIMIT_FIX */
0x0, /* gcFEATURE_BIT_TP_NOT_FULL_USE_CACHE_LINE_FIX */
0x0, /* gcFEATURE_BIT_SH_MOVAI_MOVAR_UNUSED_COMPONENTS_WRITE_DIRTY_DATA_FIX */
0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */
0x0, /* gcFEATURE_BIT_NN_FP16_ALU */

View File

@ -693,6 +693,8 @@ typedef enum _gceFEATURE
gcvFEATURE_NN_FLOAT32_IO,
gcvFEATURE_TP_FLOAT32_IO,
gcvFEATURE_BIT_USC_INDIVIDUAL_PORT_WRT_EARLY_EVICT_DATA_CORRUPT_FIX,
gcvFEATURE_BIT_NN_TP_INSTR_COMPLETE_IN_SAME_CYCLE_WITH_WAIT_EVENT_FIX,
/* Insert features above this comment only. */
gcvFEATURE_COUNT /* Not a feature. */

View File

@ -456,7 +456,12 @@ _DmaMapUser(
gcmkONERROR(gcvSTATUS_OUT_OF_MEMORY);
}
#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 9, 0)
down_write(&current->mm->mmap_lock);
#else
down_write(&current->mm->mmap_sem);
#endif
do
{
struct vm_area_struct *vma = find_vma(current->mm, (unsigned long)userLogical);
@ -478,7 +483,12 @@ _DmaMapUser(
MdlMap->vma = vma;
}
while (gcvFALSE);
#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 9, 0)
up_write(&current->mm->mmap_lock);
#else
up_write(&current->mm->mmap_sem);
#endif
OnError:
if (gcmIS_ERROR(status) && userLogical)

View File

@ -1068,7 +1068,12 @@ _GFPMapUser(
gcmkONERROR(gcvSTATUS_OUT_OF_MEMORY);
}
#if LINUX_VERSION_CODE >= KERNEL_VERSION (5,9,0)
down_write(&current->mm->mmap_lock);
#else
down_write(&current->mm->mmap_sem);
#endif
do
{
struct vm_area_struct *vma = find_vma(current->mm, (unsigned long)userLogical);
@ -1088,7 +1093,12 @@ _GFPMapUser(
MdlMap->vma = vma;
}
while (gcvFALSE);
#if LINUX_VERSION_CODE >= KERNEL_VERSION (5,9,0)
up_write(&current->mm->mmap_lock);
#else
up_write(&current->mm->mmap_sem);
#endif
if (gcmIS_SUCCESS(status))
{

View File

@ -348,7 +348,12 @@ reserved_mem_map_user(
gcmkONERROR(gcvSTATUS_OUT_OF_MEMORY);
}
#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 9, 0)
down_write(&current->mm->mmap_lock);
#else
down_write(&current->mm->mmap_sem);
#endif
do
{
struct vm_area_struct *vma = find_vma(current->mm, (unsigned long)userLogical);
@ -370,7 +375,12 @@ reserved_mem_map_user(
MdlMap->vma = vma;
}
while (gcvFALSE);
#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 9, 0)
up_write(&current->mm->mmap_lock);
#else
up_write(&current->mm->mmap_sem);
#endif
OnError:
if (gcmIS_ERROR(status) && userLogical)

View File

@ -141,7 +141,11 @@ static int import_page_map(struct um_desc *um,
if (!pages)
return -ENOMEM;
#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 9, 0)
down_read(&current->mm->mmap_lock);
#else
down_read(&current->mm->mmap_sem);
#endif
result = get_user_pages(
#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 6, 0)
@ -159,7 +163,11 @@ static int import_page_map(struct um_desc *um,
pages,
NULL);
#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 9, 0)
up_read(&current->mm->mmap_lock);
#else
up_read(&current->mm->mmap_sem);
#endif
if (result < page_count)
{
@ -240,9 +248,15 @@ static int import_pfn_map(struct um_desc *um,
if (!current->mm)
return -ENOTTY;
#if LINUX_VERSION_CODE >= KERNEL_VERSION (5,9,0)
down_read(&current->mm->mmap_lock);
vma = find_vma(current->mm, addr);
up_read(&current->mm->mmap_lock);
#else
down_read(&current->mm->mmap_sem);
vma = find_vma(current->mm, addr);
up_read(&current->mm->mmap_sem);
#endif
if (!vma)
return -ENOTTY;
@ -264,6 +278,9 @@ static int import_pfn_map(struct um_desc *um,
{
spinlock_t *ptl;
pgd_t *pgd;
#if LINUX_VERSION_CODE >= KERNEL_VERSION (5,9,0)
p4d_t *p4d;
#endif
pud_t *pud;
pmd_t *pmd;
pte_t *pte;
@ -278,8 +295,16 @@ static int import_pfn_map(struct um_desc *um,
#elif (defined(CONFIG_CPU_CSKYV2)) \
&& LINUX_VERSION_CODE >= KERNEL_VERSION (4,11,0)
pud = pud_offset((p4d_t*)pgd, addr);
#else
#if LINUX_VERSION_CODE >= KERNEL_VERSION (5,9,0)
p4d = p4d_offset(pgd, addr);
if (p4d_none(READ_ONCE(*p4d)))
goto err;
pud = pud_offset(p4d, addr);
#else
pud = pud_offset(pgd, addr);
#endif
#endif
if (pud_none(*pud) || pud_bad(*pud))
goto err;

View File

@ -444,7 +444,12 @@ _CMAFSLMapUser(
gcmkONERROR(gcvSTATUS_OUT_OF_MEMORY);
}
#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 9, 0)
down_write(&current->mm->mmap_lock);
#else
down_write(&current->mm->mmap_sem);
#endif
do
{
struct vm_area_struct *vma = find_vma(current->mm, (unsigned long)userLogical);
@ -465,7 +470,12 @@ _CMAFSLMapUser(
MdlMap->vma = vma;
}
while (gcvFALSE);
#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 9, 0)
up_write(&current->mm->mmap_lock);
#else
up_write(&current->mm->mmap_sem);
#endif
OnError:
if (gcmIS_ERROR(status) && userLogical && !IS_ERR(userLogical))

View File

@ -1018,7 +1018,6 @@ _DumpState(
** Idle: Time GPU stays in gcvPOWER_IDLE.
** Suspend: Time GPU stays in gcvPOWER_SUSPEND.
*/
static int dumpCore = 0;
static int
@ -1377,6 +1376,80 @@ static int gc_clk_show(struct seq_file* m, void* data)
return 0;
}
static gctUINT32 clkScale[2] = {0, 0};
static int _set_clk(const char* buf)
{
gckHARDWARE hardware;
gckGALDEVICE device = galDevice;
gctINT n, j, k;
gctBOOL isSpace = gcvFALSE;
char data[20];
memset(data, 0, 20);
n = j = k = 0;
while (gcvTRUE)
{
if ((buf[k] >= '0') && (buf[k] <= '9'))
{
if (isSpace)
{
data[n++] = ' ';
isSpace = gcvFALSE;
}
data[n++] = buf[k];
}
else if (buf[k] == ' ')
{
if (n > 0)
{
isSpace = gcvTRUE;
}
}
else if (buf[k] == '\n')
{
break;
}
else
{
printk("Error: command format must be this: echo \"0 32 32\" > /sys/kernel/debug/gc/clk\n");
return 0;
}
k++;
if (k >= 20)
{
break;
}
}
sscanf(data, "%d %d %d", &dumpCore, &clkScale[0], &clkScale[1]);
printk("Change core:%d MC scale:%d SH scale:%d\n", dumpCore, clkScale[0], clkScale[1]);
if (device->kernels[dumpCore])
{
hardware = device->kernels[dumpCore]->hardware;
gckHARDWARE_SetClock(hardware, dumpCore, clkScale[0], clkScale[1]);
}
else
{
printk("Error: invalid core\n");
}
return 0;
}
static int gc_clk_write(const char __user *buf, size_t count, void* data)
{
_set_clk(buf);
return count;
}
static gcsINFO InfoList[] =
{
{"info", gc_info_show},
@ -1389,7 +1462,7 @@ static gcsINFO InfoList[] =
{"vidmem", gc_vidmem_show_old, gc_vidmem_write},
{"vidmem64x", gc_vidmem_show, gc_vidmem_write},
{"dump_trigger", gc_dump_trigger_show, gc_dump_trigger_write},
{"clk", gc_clk_show},
{"clk", gc_clk_show, gc_clk_write},
};
static gceSTATUS
@ -2030,7 +2103,9 @@ gckGALDEVICE_Construct(
gcmkONERROR(gcvSTATUS_OUT_OF_RESOURCES);
}
#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,5,0)
#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,9,0)
device->registerBases[i] = (gctPOINTER)ioremap(physical, device->requestedRegisterMemSizes[i]);
#elif LINUX_VERSION_CODE >= KERNEL_VERSION(5,5,0)
device->registerBases[i] = (gctPOINTER)memremap(physical, device->requestedRegisterMemSizes[i], MEMREMAP_WT);
#else
device->registerBases[i] = (gctPOINTER)ioremap_nocache(physical, device->requestedRegisterMemSizes[i]);
@ -2509,7 +2584,7 @@ gckGALDEVICE_Destroy(
/* Unmap register memory. */
if (Device->requestedRegisterMemBases[i] != 0)
{
#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,5,0)
#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,5,0) && LINUX_VERSION_CODE < KERNEL_VERSION(5,9,0)
memunmap(Device->registerBases[i]);
#else
iounmap(Device->registerBases[i]);

View File

@ -441,6 +441,9 @@ _QueryProcessPageTable(
struct vm_area_struct *vma;
spinlock_t *ptl;
pgd_t *pgd;
#if LINUX_VERSION_CODE >= KERNEL_VERSION (5,9,0)
p4d_t *p4d;
#endif
pud_t *pud;
pmd_t *pmd;
pte_t *pte;
@ -448,9 +451,15 @@ _QueryProcessPageTable(
if (!current->mm)
return gcvSTATUS_NOT_FOUND;
#if LINUX_VERSION_CODE >= KERNEL_VERSION (5,9,0)
down_read(&current->mm->mmap_lock);
vma = find_vma(current->mm, logical);
up_read(&current->mm->mmap_lock);
#else
down_read(&current->mm->mmap_sem);
vma = find_vma(current->mm, logical);
up_read(&current->mm->mmap_sem);
#endif
/* To check if mapped to user. */
if (!vma)
@ -466,8 +475,16 @@ _QueryProcessPageTable(
#elif (defined(CONFIG_CPU_CSKYV2)) \
&& LINUX_VERSION_CODE >= KERNEL_VERSION (4,11,0)
pud = pud_offset((p4d_t*)pgd, logical);
#else
#if LINUX_VERSION_CODE >= KERNEL_VERSION (5,9,0)
p4d = p4d_offset(pgd, logical);
if (p4d_none(READ_ONCE(*p4d)))
return gcvSTATUS_NOT_FOUND;
pud = pud_offset(p4d, logical);
#else
pud = pud_offset(pgd, logical);
#endif
#endif
if (pud_none(*pud) || pud_bad(*pud))
return gcvSTATUS_NOT_FOUND;
@ -2307,7 +2324,9 @@ gckOS_MapPhysical(
{
/* Map memory as cached memory. */
request_mem_region(physical, Bytes, "MapRegion");
#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,5,0)
#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,9,0)
logical = ioremap(physical, Bytes);
#elif LINUX_VERSION_CODE >= KERNEL_VERSION(5,5,0)
logical = (gctPOINTER) memremap(physical, Bytes, MEMREMAP_WT);
#else
logical = (gctPOINTER) ioremap_nocache(physical, Bytes);

View File

@ -1200,6 +1200,7 @@ free_priv(void)
}
static int set_clock(int gpu, int enable);
static int set_power(int gpu, int enable);
#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,10,0)
static void imx6sx_optimize_qosc_for_GPU(void)
@ -1214,6 +1215,7 @@ static void imx6sx_optimize_qosc_for_GPU(void)
src_base = of_iomap(np, 0);
WARN_ON(!src_base);
set_power(gcvCORE_MAJOR, 1);
set_clock(gcvCORE_MAJOR, 1);
writel_relaxed(0, src_base); /* Disable clkgate & soft_rst */
@ -1223,6 +1225,8 @@ static void imx6sx_optimize_qosc_for_GPU(void)
writel_relaxed(0x0f000822, src_base+0x1400+0xe0); /* Set Read QoS 8 for gpu */
set_clock(gcvCORE_MAJOR, 0);
set_power(gcvCORE_MAJOR, 0);
return;
}
#endif
@ -1474,7 +1478,11 @@ static inline int set_power(int gpu, int enable)
#ifdef CONFIG_PM
pm_runtime_get_sync(priv->pmdev[gpu]);
if(priv->pm_qos_core == gpu) {
#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,9,0)
cpu_latency_qos_add_request(&priv->pm_qos, 0);
#else
pm_qos_add_request(&(priv->pm_qos), PM_QOS_CPU_DMA_LATENCY, 0);
#endif
}
#endif
@ -1542,7 +1550,11 @@ static inline int set_power(int gpu, int enable)
#ifdef CONFIG_PM
pm_runtime_put_sync(priv->pmdev[gpu]);
if(priv->pm_qos_core == gpu) {
#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,9,0)
cpu_latency_qos_remove_request(&priv->pm_qos);
#else
pm_qos_remove_request(&(priv->pm_qos));
#endif
}
#endif