gpu-viv: Integrate 6.4.3.p2 GPU kernel driver
authorXianzhong <xianzhong.li@nxp.com>
Mon, 29 Mar 2021 08:44:28 +0000 (16:44 +0800)
committerXianzhong <xianzhong.li@nxp.com>
Wed, 21 Apr 2021 10:48:01 +0000 (18:48 +0800)
Major accomplishments
*  Vulkan driver memory leak issue
*  Android11 NN1.3 CTS
*  OCL3.0 CTS(not fully pass yet)
*  Solved Antutu v8 Quality and unstable issue

Signed-off-by: Xianzhong <xianzhong.li@nxp.com>
31 files changed:
drivers/mxc/gpu-viv/Kbuild
drivers/mxc/gpu-viv/hal/kernel/arch/gc_hal_kernel_hardware.c
drivers/mxc/gpu-viv/hal/kernel/arch/gc_hal_kernel_hardware_func.c
drivers/mxc/gpu-viv/hal/kernel/arch/gc_hal_kernel_hardware_mc_fe.c
drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel.c
drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel.h
drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_command_vg.c
drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_mmu.c
drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_video_memory.c
drivers/mxc/gpu-viv/hal/kernel/inc/gc_feature_database.h
drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_base.h
drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_options.h
drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_profiler.h
drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_version.h
drivers/mxc/gpu-viv/hal/kernel/inc/shared/gc_hal_driver_shared.h
drivers/mxc/gpu-viv/hal/kernel/inc/shared/gc_hal_enum_shared.h
drivers/mxc/gpu-viv/hal/kernel/inc/shared/gc_hal_types_shared.h
drivers/mxc/gpu-viv/hal/os/linux/kernel/allocator/default/gc_hal_kernel_allocator_gfp.c
drivers/mxc/gpu-viv/hal/os/linux/kernel/allocator/default/gc_hal_kernel_allocator_user_memory.c
drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_allocator.c
drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_allocator.h
drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_debug.c
drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_device.c
drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_driver.c
drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_drm.c
drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_linux.h
drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c
drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_platform.h
drivers/mxc/gpu-viv/hal/os/linux/kernel/platform/default/gc_hal_kernel_platform_default.c
drivers/mxc/gpu-viv/hal/os/linux/kernel/platform/freescale/gc_hal_kernel_platform_imx.c
drivers/mxc/gpu-viv/hal/os/linux/kernel/platform/freescale/gc_hal_kernel_platform_imx.config

index 9d0cf64..afe6b54 100644 (file)
@@ -324,6 +324,7 @@ endif
 EXTRA_CFLAGS += -DHOST=\"$(HOST)\"
 
 EXTRA_CFLAGS += -DgcdENABLE_TRUST_APPLICATION=1
+EXTRA_CFLAGS += -DgcdSYS_HAS_SG_CHAIN=1
 
 obj-$(CONFIG_MXC_GPU_VIV) = $(MODULE_NAME).o
 
index 1ea0145..b78d87c 100644 (file)
@@ -1795,16 +1795,6 @@ _SetHardwareOptions(
         options->powerManagement = gcvTRUE;
     }
 
-    /* Disable profiler by default */
-    status = gckOS_QueryOption(Hardware->os, "gpuProfiler", &data);
-    options->gpuProfiler = (data != 0);
-
-    if (status == gcvSTATUS_NOT_SUPPORTED)
-    {
-        /* Disable profiler by default */
-        options->gpuProfiler= gcvFALSE;
-    }
-
     status = gckOS_QueryOption(Hardware->os, "mmu", &data);
     options->enableMMU = (data != 0);
 
@@ -8889,13 +8879,45 @@ gckHARDWARE_SetGpuProfiler(
                                   + 0x00100,
                                   data));
     }
+    else
+    {
+        gctUINT32 data = 0;
+
+        /* enable clock gating when disable profile. */
+        gcmkVERIFY_OK(
+            gckOS_ReadRegisterEx(Hardware->os,
+                                 Hardware->core,
+                                 Hardware->powerBaseAddress +
+                                 0x00100,
+                                 &data));
+
+        data = ((((gctUINT32) (data)) & ~(((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)));
 
-    Hardware->options.gpuProfiler= GpuProfiler;
+        gcmkVERIFY_OK(
+            gckOS_WriteRegisterEx(Hardware->os,
+                                  Hardware->core,
+                                  Hardware->powerBaseAddress
+                                  + 0x00100,
+                                  data));
+    }
 
     if (GpuProfiler == gcvTRUE)
     {
         Hardware->waitCount = 200 * 100;
     }
+    else
+    {
+        Hardware->waitCount = 200;
+    }
 
     /* Success. */
     gcmkFOOTER_NO();
@@ -15954,7 +15976,6 @@ gckHARDWARE_ExitQueryClock(
 
         if (!shCycle)
         {
-            /*TODO: [VIV] Query SH cycle not support for old chips */
             *ShClk = *McClk;
             return gcvSTATUS_OK;
         }
index 675f648..f592da8 100644 (file)
@@ -3760,7 +3760,7 @@ _FuncInit_MMU(IN gcsFUNCTION_EXECUTION_PTR Execution)
     mode = gcvMMU_MODE_4K;
 #endif
 
-    flags |= gcvALLOC_FLAG_4GB_ADDR;
+    flags |= gcvALLOC_FLAG_4GB_ADDR | gcvALLOC_FLAG_4K_PAGES;
 
 #if gcdENABLE_CACHEABLE_COMMAND_BUFFER
     flags |= gcvALLOC_FLAG_CACHEABLE;
index 6d537d0..d194710 100644 (file)
@@ -761,15 +761,26 @@ gckMCFE_Execute(
     IN gctUINT32 Bytes
     )
 {
+    gceSTATUS status;
     gctUINT32 regBase;
     gcsMCFE_DESCRIPTOR *desc;
-    gcsMCFE_CHANNEL * channel  = &Hardware->mcFE->channels[ChannelId];
-    gcsMCFE_RING_BUF * ringBuf = Priority ? &channel->priRingBuf
-                              : &channel->stdRingBuf;
+    gckMCFE mcFE = Hardware->mcFE;
+    gcsMCFE_CHANNEL * channel  = gcvNULL;
+    gcsMCFE_RING_BUF * ringBuf = gcvNULL;
+
+    gcmkHEADER_ARG("Hardware=0x%x Priority=0x%x ChannelId=%u Address=%x Bytes=%u",
+                     Hardware, Priority, ChannelId, Address, Bytes);
+
+    /* ChannelId should be valid. */
+    gcmkASSERT(mcFE && ChannelId < mcFE->channelCount);
+
+    channel = &mcFE->channels[ChannelId];
 
     /* No priority channel in system channel by design. */
     gcmkASSERT(!(channel->binding == gcvMCFE_CHANNEL_SYSTEM && Priority == 1));
 
+    ringBuf = Priority ? &channel->priRingBuf : &channel->stdRingBuf;
+
     while (_NextPtr(ringBuf->writePtr) == ringBuf->readPtr)
     {
         gctUINT32 data;
@@ -814,11 +825,11 @@ gckMCFE_Execute(
                     ringBuf->ringBufAddress + ringBuf->writePtr * 8,
                     8);
 
-    gcmkVERIFY_OK(gckVIDMEM_NODE_CleanCache(Hardware->kernel,
-                                            ringBuf->ringBufVideoMem,
-                                            0,
-                                            desc,
-                                            8));
+    gcmkONERROR(gckVIDMEM_NODE_CleanCache(Hardware->kernel,
+                                          ringBuf->ringBufVideoMem,
+                                          0,
+                                          desc,
+                                          8));
 
     ringBuf->writePtr = _NextPtr(ringBuf->writePtr);
 
@@ -827,12 +838,20 @@ gckMCFE_Execute(
                    desc->start, desc->end, Bytes,
                    Priority ? "Pri" : "Std", ChannelId);
 
-    gcmkVERIFY_OK(gckOS_WriteRegisterEx(Hardware->os,
-                                        Hardware->core,
-                                        regBase + ChannelId * 4,
-                                        ringBuf->writePtr));
+    gcmkONERROR(gckOS_WriteRegisterEx(Hardware->os,
+                                      Hardware->core,
+                                      regBase + ChannelId * 4,
+                                      ringBuf->writePtr));
 
+    /* Success. */
+    gcmkFOOTER_NO();
     return gcvSTATUS_OK;
+
+OnError:
+    /* Return the status. */
+    gcmkFOOTER();
+    return status;
+
 }
 
 gceSTATUS
@@ -847,12 +866,18 @@ gckMCFE_HardwareIdle(
     gctUINT32 readPtr;
     gctUINT32 ChannelId = 0;
     gctBOOL Priority = gcvFALSE;
-    gcsMCFE_CHANNEL * channel  = &Hardware->mcFE->channels[ChannelId];
-    gcsMCFE_RING_BUF * ringBuf = Priority ? &channel->priRingBuf
-                              : &channel->stdRingBuf;
+    gckMCFE mcFE = Hardware->mcFE;
+    gcsMCFE_CHANNEL * channel  = gcvNULL;
+    gcsMCFE_RING_BUF * ringBuf = gcvNULL;
 
     gcmkHEADER();
 
+    /* ChannelId should be valid. */
+    gcmkASSERT(mcFE && ChannelId < mcFE->channelCount);
+
+    channel = &mcFE->channels[ChannelId];
+    ringBuf = Priority ? &channel->priRingBuf : &channel->stdRingBuf;
+
     *isIdle = gcvTRUE;
 
     /* Read idle register. */
index 6d8c1d7..81a8625 100644 (file)
@@ -702,8 +702,9 @@ gckKERNEL_Construct(
 
 #if VIVANTE_PROFILER
     /* Initialize profile setting */
-    kernel->profileEnable = gcvFALSE;
-    kernel->profileCleanRegister = gcvTRUE;
+    kernel->profiler.profileEnable = gcvFALSE;
+    kernel->profiler.profileMode = gcvPROFILER_PROBE_MODE;
+    kernel->profiler.profileCleanRegister = gcvTRUE;
 #endif
 
 #if gcdLINUX_SYNC_FILE
@@ -1411,9 +1412,6 @@ _AllocateLinearMemory(
     gckOS_QueryOption(Kernel->os, "allMapInOne", &mappingInOne);
     if (mappingInOne == 0)
     {
-        /* TODO: it should page align if driver uses dynamic mapping for mapped user memory.
-         * it should be adjusted with different os.
-         */
         alignment = gcmALIGN(alignment, 4096);
     }
 
@@ -2562,10 +2560,12 @@ _Commit(
         kernel = Device->map[HwType].kernels[subCommit->coreId];
     }
 
-    if (!kernel->hardware->options.gpuProfiler || !kernel->profileEnable)
+#if VIVANTE_PROFILER
+    if (!kernel->profiler.profileEnable || (kernel->profiler.profileMode != gcvPROFILER_AHB_MODE))
     {
         return gcvSTATUS_OK;
     }
+#endif
 
     do
     {
@@ -2613,8 +2613,9 @@ _Commit(
             kernel = Device->map[HwType].kernels[subCommit->coreId];
         }
 
-        if ((kernel->hardware->options.gpuProfiler == gcvTRUE) &&
-            (kernel->profileEnable == gcvTRUE))
+#if VIVANTE_PROFILER
+        if ((kernel->profiler.profileEnable == gcvTRUE) &&
+            (kernel->profiler.profileMode == gcvPROFILER_AHB_MODE))
         {
             gcmkONERROR(gckCOMMAND_Stall(kernel->command, gcvTRUE));
 
@@ -2625,6 +2626,7 @@ _Commit(
                             kernel->command->currContext));
             }
         }
+#endif
 
         next = subCommit->next;
 
@@ -5696,7 +5698,7 @@ gckDEVICE_Profiler_Dispatch(
         gcmkONERROR(
             gckHARDWARE_QueryContextProfile(
                 kernel->hardware,
-                kernel->profileCleanRegister,
+                kernel->profiler.profileCleanRegister,
                 gcmNAME_TO_PTR(Interface->u.RegisterProfileData_part1.context),
                 &Interface->u.RegisterProfileData_part1.Counters,
                 gcvNULL));
@@ -5709,7 +5711,7 @@ gckDEVICE_Profiler_Dispatch(
         gcmkONERROR(
             gckHARDWARE_QueryContextProfile(
                 kernel->hardware,
-                kernel->profileCleanRegister,
+                kernel->profiler.profileCleanRegister,
                 gcmNAME_TO_PTR(Interface->u.RegisterProfileData_part2.context),
                 gcvNULL,
                 &Interface->u.RegisterProfileData_part2.Counters));
@@ -5719,33 +5721,44 @@ gckDEVICE_Profiler_Dispatch(
 
     case gcvHAL_GET_PROFILE_SETTING:
         /* Get profile setting */
-        Interface->u.GetProfileSetting.enable = kernel->profileEnable;
+        Interface->u.GetProfileSetting.enable = kernel->profiler.profileEnable;
+
+        Interface->u.GetProfileSetting.profileMode = kernel->profiler.profileMode;
 
         status = gcvSTATUS_OK;
         break;
 
     case gcvHAL_SET_PROFILE_SETTING:
         /* Set profile setting */
-        if(kernel->hardware->options.gpuProfiler)
+        kernel->profiler.profileEnable = Interface->u.SetProfileSetting.enable;
+
+        if(kernel->profiler.profileEnable)
         {
-            kernel->profileEnable = Interface->u.SetProfileSetting.enable;
+            kernel->profiler.profileMode = Interface->u.SetProfileSetting.profileMode;
 
-            if (kernel->profileEnable)
+            gcmkONERROR(gckHARDWARE_SetGpuProfiler(
+                kernel->hardware,
+                gcvTRUE
+                ));
+
+            if (kernel->profiler.profileMode == gcvPROFILER_AHB_MODE)
             {
                 gcmkONERROR(gckHARDWARE_InitProfiler(kernel->hardware));
             }
         }
         else
         {
-            status = gcvSTATUS_NOT_SUPPORTED;
-            break;
+            gcmkONERROR(gckHARDWARE_SetGpuProfiler(
+                kernel->hardware,
+                gcvFALSE
+                ));
         }
 
         status = gcvSTATUS_OK;
         break;
 
     case gcvHAL_READ_PROFILER_REGISTER_SETTING:
-        kernel->profileCleanRegister = Interface->u.SetProfilerRegisterClear.bclear;
+        kernel->profiler.profileCleanRegister = Interface->u.SetProfilerRegisterClear.bclear;
         status = gcvSTATUS_OK;
         break;
 
index 98dd98a..72eca46 100644 (file)
@@ -567,10 +567,7 @@ struct _gckKERNEL
     gctPOINTER                  atomClients;
 
 #if VIVANTE_PROFILER
-    /* Enable profiling */
-    gctBOOL                     profileEnable;
-    /* Clear profile register or not*/
-    gctBOOL                     profileCleanRegister;
+    gckPROFILER                 profiler;
 #endif
 
 #ifdef QNX_SINGLE_THREADED_DEBUGGING
@@ -1281,12 +1278,12 @@ typedef struct _gcsVIDMEM_BLOCK
 
     /* 1M page count. */
     gctUINT32                   pageCount;
+    gctUINT32                   fixedPageCount;
 
     /* Gpu virtual base of this video memory heap. */
     gctUINT32                   addresses[gcvHARDWARE_NUM_TYPES];
     gctPOINTER                  pageTables[gcvHARDWARE_NUM_TYPES];
 
-    /* TODO: */
     gceVIDMEM_TYPE              type;
 
     /* Virtual chunk. */
index e408fec..6fe2a23 100644 (file)
@@ -3815,9 +3815,7 @@ gckVGCOMMAND_Commit(
                 if (EntryCount - entriesQueued == 0)
                 {
                     /* Modify the last command buffer's routines to handle
-                       tasks if any.
-                       Be sure the kernel entry have been advanced and control
-                       functions initialized. */
+                       tasks if any.*/
                     if (haveFETasks && controlIndex == 1)
                     {
                         if (previousExecuted)
index b7d1316..44cc48a 100644 (file)
@@ -2970,7 +2970,6 @@ gckMMU_DumpAddressSpace(
 {
     gctUINT i;
     gctUINT next;
-    /* TODO: */
     gcsADDRESS_AREA_PTR area = &Mmu->dynamicArea4K;
     gctUINT32_PTR map = area->mapLogical;
     gctBOOL used = gcvFALSE;
index 19d68b8..6d34316 100644 (file)
@@ -273,12 +273,6 @@ gckVIDMEM_Construct(
     gcmkVERIFY_ARGUMENT(Bytes > 0);
     gcmkVERIFY_ARGUMENT(Memory != gcvNULL);
 
-    if (BankSize == 0)
-    {
-        /* set two banks in 16:1 */
-        BankSize = Bytes >> 4;
-    }
-
     gcmkSAFECASTSIZET(heapBytes, Bytes);
     gcmkSAFECASTSIZET(bankSize, BankSize);
 
@@ -370,11 +364,6 @@ gckVIDMEM_Construct(
         /* Mark sentinel. */
         memory->sentinel[i].VidMem.bytes = 0;
 
-        if (bankSize == (heapBytes >> 4))
-        {
-            bankSize = heapBytes;
-        }
-
         /* Adjust address for next bank. */
         base += bytes;
         heapBytes   -= bytes;
@@ -385,23 +374,23 @@ gckVIDMEM_Construct(
     memory->mapping[gcvVIDMEM_TYPE_COLOR_BUFFER]    = banks - 1;
     memory->mapping[gcvVIDMEM_TYPE_BITMAP]          = banks - 1;
 
-    if (banks > 7) --banks;
+    if (banks > 1) --banks;
     memory->mapping[gcvVIDMEM_TYPE_DEPTH_BUFFER]    = banks - 1;
     memory->mapping[gcvVIDMEM_TYPE_HZ_BUFFER]       = banks - 1;
 
-    if (banks > 6) --banks;
+    if (banks > 1) --banks;
     memory->mapping[gcvVIDMEM_TYPE_TEXTURE]         = banks - 1;
 
-    if (banks > 5) --banks;
+    if (banks > 1) --banks;
     memory->mapping[gcvVIDMEM_TYPE_VERTEX_BUFFER]   = banks - 1;
 
-    if (banks > 4) --banks;
+    if (banks > 1) --banks;
     memory->mapping[gcvVIDMEM_TYPE_INDEX_BUFFER]    = banks - 1;
 
-    if (banks > 3) --banks;
+    if (banks > 1) --banks;
     memory->mapping[gcvVIDMEM_TYPE_TILE_STATUS]     = banks - 1;
 
-    if (banks > 2) --banks;
+    if (banks > 1) --banks;
     memory->mapping[gcvVIDMEM_TYPE_COMMAND]         = banks - 1;
 
     if (banks > 1) --banks;
@@ -781,6 +770,9 @@ gckVIDMEM_AllocateLinear(
         static time_t last_slog_time;
         int do_slog_now = 0;
         time_t this_slog_time = time(NULL);
+        gctUINT32 pid = 0;
+
+        gcmkVERIFY_OK(gckOS_GetProcessID(&pid));
 
         if (Memory->freeBytes < lowwaterFPC) {
             if (Memory->freeBytes < slogLowWaterFPC) {
@@ -795,8 +787,9 @@ gckVIDMEM_AllocateLinear(
 
         if (do_slog_now) {
             last_slog_time = this_slog_time;
-            slogf(_SLOGC_GRAPHICS_GL, _SLOG_INFO, "%s: Memory->freeBytes = %u, lowest Memory->freeBytes = %u",
-                    __FUNCTION__, (unsigned) Memory->freeBytes, (unsigned) lowwaterFPC);
+            slogf(_SLOGC_GRAPHICS_GL, _SLOG_INFO, "%s: Memory->freeBytes = %u, lowest Memory->freeBytes = %u. "
+                    "Handling message from pid: %u. Requested bytes: %zu",
+                    __FUNCTION__, (unsigned) Memory->freeBytes, (unsigned) lowwaterFPC, pid, Bytes);
         }
     }
 #endif
@@ -1405,10 +1398,27 @@ gckVIDMEM_MapVidMemBlock(
                               &VidMemBlock->addresses[hwType]);
     if (gcmIS_ERROR(status))
     {
+        gctSIZE_T pageCount = VidMemBlock->pageCount;
+
+        /* If physical address is not aligned. */
+        if (physAddr & (gcd1M_PAGE_SIZE - 1))
+        {
+            if (VidMemBlock->contiguous)
+            {
+                pageCount++;
+            }
+            else
+            {
+                gcmkONERROR(gcvSTATUS_NOT_SUPPORTED);
+            }
+        }
+
+        VidMemBlock->fixedPageCount = (gctUINT32)pageCount;
+
         /* Allocate pages inside the MMU. */
         gcmkONERROR(
             gckMMU_AllocatePagesEx(Kernel->mmu,
-                                   VidMemBlock->pageCount,
+                                   pageCount,
                                    VidMemBlock->type,
                                    gcvPAGE_TYPE_1M,
                                    VidMemBlock->secure,
@@ -1422,7 +1432,7 @@ gckVIDMEM_MapVidMemBlock(
                 gckOS_Map1MPages(os,
                                  Kernel->core,
                                  VidMemBlock->physical,
-                                 VidMemBlock->pageCount,
+                                 pageCount,
                                  VidMemBlock->addresses[hwType],
                                  VidMemBlock->pageTables[hwType],
                                  gcvTRUE,
@@ -1452,7 +1462,7 @@ OnError:
                              gcvPAGE_TYPE_1M,
                              VidMemBlock->addresses[hwType],
                              VidMemBlock->pageTables[hwType],
-                             VidMemBlock->pageCount));
+                             VidMemBlock->fixedPageCount));
 
         VidMemBlock->pageTables[hwType] = gcvNULL;
     }
@@ -1483,7 +1493,7 @@ _UnmapVidMemBlock(
                              gcvPAGE_TYPE_1M,
                              VidMemBlock->addresses[HwType],
                              VidMemBlock->pageTables[HwType],
-                             VidMemBlock->pageCount));
+                             VidMemBlock->fixedPageCount));
 
         VidMemBlock->pageTables[HwType] = gcvNULL;
     }
@@ -3332,11 +3342,19 @@ gckVIDMEM_NODE_Lock(
     gceSTATUS status;
     gckOS os = Kernel->os;
     gctBOOL acquired = gcvFALSE;
-    gcuVIDMEM_NODE_PTR node = NodeObject->node;
-    gckVIDMEM_BLOCK vidMemBlock = node->VirtualChunk.parent;
+    gcuVIDMEM_NODE_PTR node;
+    gckVIDMEM_BLOCK vidMemBlock;
 
     gcmkHEADER_ARG("NodeObject=%p", NodeObject);
 
+    if (gcvNULL == NodeObject)
+    {
+        gcmkONERROR(gcvSTATUS_INVALID_OBJECT);
+    }
+
+    node = NodeObject->node;
+    vidMemBlock = node->VirtualChunk.parent;
+
     /* Grab the mutex. */
     gcmkONERROR(gckOS_AcquireMutex(os, NodeObject->mutex, gcvINFINITE));
     acquired = gcvTRUE;
index 53f50ed..eb6edf5 100644 (file)
@@ -53,7 +53,7 @@
 *****************************************************************************/
 
 
-/*Auto created on 2020-12-14 17:31*/
+/*Auto created on 2021-03-05 22:36*/
 #ifndef _gc_feature_database_h_
 #define _gc_feature_database_h_
 
@@ -103,6 +103,7 @@ typedef struct
     gctUINT32 G2D_DEC400_MINOR;
     gctUINT32 NNMadPerCore;
     gctUINT32 NNCoreCount;
+    gctUINT32 NN_ACTIVE_CORE_COUNT;
     gctUINT32 NNCoreCount_INT8;
     gctUINT32 NNCoreCount_INT16;
     gctUINT32 NNCoreCount_FLOAT16;
@@ -148,6 +149,7 @@ typedef struct
     gctUINT32 MAX_TILE_X_SIZE;
     gctUINT32 NN_CLUSTER_NUM_FOR_POWER_CONTROL;
     gctUINT32 NN_IN_LINES_PER_CYCLE;
+    gctUINT32 VIP_CLUSTER_COUNT;
     gctUINT32 REG_FastClear:1;
     gctUINT32 REG_SpecialAntiAliasing:1;
     gctUINT32 REG_Pipe3D:1;
@@ -549,7 +551,12 @@ typedef struct
     gctUINT32 LDST_CONV_4ROUNDING_MODES:1;
     gctUINT32 FULL_PACK_MODE_SUPPORT:1;
     gctUINT32 DEPTH_FLOAT32_SUPPORT:1;
+    gctUINT32 GPU_INSPECTOR_COUNTERS:1;
     gctUINT32 FP32_TO_FP16_CONV_FIX:1;
+    gctUINT32 IMGLD_COMP_COUNT_FIX:1;
+    gctUINT32 IMGLD_WIDTH_LT16_FIX:1;
+    gctUINT32 TX_FILTER_ROUND_FIX:1;
+    gctUINT32 SH_FP32_FMA_SUPPORT:1;
     gctUINT32 VG_TS_CULLING:1;
     gctUINT32 VG_FP25:1;
     gctUINT32 VG_AYUV_INPUT_OUTPUT:1;
@@ -656,6 +663,9 @@ typedef struct
     gctUINT32 PRELU_LEAKLY_RELU_CLAMP:1;
     gctUINT32 TPLITE_BFLOAT16:1;
     gctUINT32 PREPROCESS_IMG_BUF_640BYTE_LIMIT:1;
+    gctUINT32 NN_POST_OUT_SUPPORT_FP16:1;
+    gctUINT32 NN_POST_OUT_SUPPORT_BF16:1;
+    gctUINT32 NN_POST_OUT_SUPPORT_FP32:1;
     gctUINT32 TP_KERNEL_1BYTE_ALGIN:1;
     gctUINT32 BFLOAT_COEF_COMPRESSION_ZERO_COEFBIT14_INVERSE:1;
     gctUINT32 NN_COMPRESSION_BYPASSS:1;
@@ -682,6 +692,8 @@ typedef struct
     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 TP_REMOVE_FC:1;
+    gctUINT32 VIP_REMOVE_MMU:1;
     gctUINT32 NN_MP_INTER_CONNECT_RING:1;
     gctUINT32 NN_SUPPORT_BATCH:1;
     gctUINT32 NN_2D_AVERAGE_OUTPUT:1;
@@ -742,14 +754,27 @@ typedef struct
     gctUINT32 NN_WASTE_COEF_READ_WRITE_BANDWIDTH_128BYTE_VIPSRAM_IN_FULL_PATIAL_CACHE_MODE_FIX:1;
     gctUINT32 NN_IN_TILE_DATA_IS_ALL_PAD_FIX:1;
     gctUINT32 NN_TP_INSTR_COMPLETE_IN_SAME_CYCLE_WITH_WAIT_EVENT_FIX:1;
+    gctUINT32 CORE_IMAGE_TRANSER_NOT_EFFICIENT_BETWEEN_PARTITION_FIX:1;
     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 BURST_COLLECT_CONSUMES_MC_DATA_WIDTH_PER_CYCLE_FIX:1;
-    gctUINT32 TP_ASSYM_INT8_BUG_FIX:1;
-    gctUINT32 NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_BUG_FIX:1;
+    gctUINT32 TP_ASSYM_INT8_FIX:1;
+    gctUINT32 NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_FIX:1;
+    gctUINT32 NN_2ND_IMG_BASE_ADDR_FIX:1;
+    gctUINT32 NN_TP_SYSTEM_FIX:1;
+    gctUINT32 NN_INTILE_YSIZE_128_LIMIT_FIX:1;
+    gctUINT32 SH_CLOCK_GATOR_IDLE_CONDITON_FIX:1;
+    gctUINT32 NN_BURST_COLLECTER_LAST_FLAG_FIX:1;
+    gctUINT32 NN_2ND_IMG_SMALL_3D_TILE_FIX:1;
+    gctUINT32 NN_TILE_YSIZE_127_LIMITATION_FIX:1;
+    gctUINT32 NN_CONV_1D_16BIT_FORMAT_INTILE_SIZE_LIMITATION_FIX:1;
+    gctUINT32 NN_VIPSRAM_DOUBLE_BUFFER_FIX:1;
+    gctUINT32 NN_JD_DIRECT_MODE_FIX:1;
+    gctUINT32 NN_KERNEL_DIRECT_WRONG_PUSH_FIX:1;
+    gctUINT32 HI_DEFAULT_ENABLE_REORDER_FIX:1;
     gctUINT32 NN_INTERLEVE8:1;
     gctUINT32 NN_FP16_ALU:1;
     gctUINT32 NN_INT16_ALU:1;
@@ -811,6 +836,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_VALUE_G2D_DEC400_MINOR */
         0x0, /* gcFEATURE_VALUE_NNMadPerCore */
         0x0, /* gcFEATURE_VALUE_NNCoreCount */
+        0x0, /* gcFEATURE_VALUE_NN_ACTIVE_CORE_COUNT */
         0x0, /* gcFEATURE_VALUE_NNCoreCount_INT8 */
         0x0, /* gcFEATURE_VALUE_NNCoreCount_INT16 */
         0x0, /* gcFEATURE_VALUE_NNCoreCount_FLOAT16 */
@@ -856,6 +882,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_VALUE_MAX_TILE_X_SIZE */
         0x0, /* gcFEATURE_VALUE_NN_CLUSTER_NUM_FOR_POWER_CONTROL */
         0x0, /* gcFEATURE_VALUE_NN_IN_LINES_PER_CYCLE */
+        0x0, /* gcFEATURE_VALUE_VIP_CLUSTER_COUNT */
         0x0, /* gcFEATURE_BIT_REG_FastClear */
         0x1, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */
         0x0, /* gcFEATURE_BIT_REG_Pipe3D */
@@ -1257,7 +1284,12 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_LDST_CONV_4ROUNDING_MODES */
         0x0, /* gcFEATURE_BIT_FULL_PACK_MODE_SUPPORT */
         0x0, /* gcFEATURE_BIT_DEPTH_FLOAT32_SUPPORT */
+        0x0, /* gcFEATURE_BIT_GPU_INSPECTOR_COUNTERS */
         0x0, /* gcFEATURE_BIT_FP32_TO_FP16_CONV_FIX */
+        0x0, /* gcFEATURE_BIT_IMGLD_COMP_COUNT_FIX */
+        0x0, /* gcFEATURE_BIT_IMGLD_WIDTH_LT16_FIX */
+        0x0, /* gcFEATURE_BIT_TX_FILTER_ROUND_FIX */
+        0x0, /* gcFEATURE_BIT_SH_FP32_FMA_SUPPORT */
         0x0, /* gcFEATURE_BIT_VG_TS_CULLING */
         0x0, /* gcFEATURE_BIT_VG_FP25 */
         0x0, /* gcFEATURE_BIT_VG_AYUV_INPUT_OUTPUT */
@@ -1364,6 +1396,9 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_PRELU_LEAKLY_RELU_CLAMP */
         0x0, /* gcFEATURE_BIT_TPLITE_BFLOAT16 */
         0x0, /* gcFEATURE_BIT_PREPROCESS_IMG_BUF_640BYTE_LIMIT */
+        0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP16 */
+        0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_BF16 */
+        0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP32 */
         0x0, /* gcFEATURE_BIT_TP_KERNEL_1BYTE_ALGIN */
         0x0, /* gcFEATURE_BIT_BFLOAT_COEF_COMPRESSION_ZERO_COEFBIT14_INVERSE */
         0x0, /* gcFEATURE_BIT_NN_COMPRESSION_BYPASSS */
@@ -1390,6 +1425,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         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_TP_REMOVE_FC */
+        0x0, /* gcFEATURE_BIT_VIP_REMOVE_MMU */
         0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */
         0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */
         0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */
@@ -1450,14 +1487,27 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_NN_WASTE_COEF_READ_WRITE_BANDWIDTH_128BYTE_VIPSRAM_IN_FULL_PATIAL_CACHE_MODE_FIX */
         0x0, /* gcFEATURE_BIT_NN_IN_TILE_DATA_IS_ALL_PAD_FIX */
         0x0, /* gcFEATURE_BIT_NN_TP_INSTR_COMPLETE_IN_SAME_CYCLE_WITH_WAIT_EVENT_FIX */
+        0x0, /* gcFEATURE_BIT_CORE_IMAGE_TRANSER_NOT_EFFICIENT_BETWEEN_PARTITION_FIX */
         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 */
         0x1, /* gcFEATURE_BIT_BURST_COLLECT_CONSUMES_MC_DATA_WIDTH_PER_CYCLE_FIX */
-        0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_BUG_FIX */
-        0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_BUG_FIX */
+        0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_FIX */
+        0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_FIX */
+        0x0, /* gcFEATURE_BIT_NN_2ND_IMG_BASE_ADDR_FIX */
+        0x0, /* gcFEATURE_BIT_NN_TP_SYSTEM_FIX */
+        0x0, /* gcFEATURE_BIT_NN_INTILE_YSIZE_128_LIMIT_FIX */
+        0x0, /* gcFEATURE_BIT_SH_CLOCK_GATOR_IDLE_CONDITON_FIX */
+        0x0, /* gcFEATURE_BIT_NN_BURST_COLLECTER_LAST_FLAG_FIX */
+        0x0, /* gcFEATURE_BIT_NN_2ND_IMG_SMALL_3D_TILE_FIX */
+        0x0, /* gcFEATURE_BIT_NN_TILE_YSIZE_127_LIMITATION_FIX */
+        0x0, /* gcFEATURE_BIT_NN_CONV_1D_16BIT_FORMAT_INTILE_SIZE_LIMITATION_FIX */
+        0x0, /* gcFEATURE_BIT_NN_VIPSRAM_DOUBLE_BUFFER_FIX */
+        0x0, /* gcFEATURE_BIT_NN_JD_DIRECT_MODE_FIX */
+        0x0, /* gcFEATURE_BIT_NN_KERNEL_DIRECT_WRONG_PUSH_FIX */
+        0x0, /* gcFEATURE_BIT_HI_DEFAULT_ENABLE_REORDER_FIX */
         0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */
         0x0, /* gcFEATURE_BIT_NN_FP16_ALU */
         0x0, /* gcFEATURE_BIT_NN_INT16_ALU */
@@ -1517,6 +1567,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_VALUE_G2D_DEC400_MINOR */
         0x0, /* gcFEATURE_VALUE_NNMadPerCore */
         0x0, /* gcFEATURE_VALUE_NNCoreCount */
+        0x0, /* gcFEATURE_VALUE_NN_ACTIVE_CORE_COUNT */
         0x0, /* gcFEATURE_VALUE_NNCoreCount_INT8 */
         0x0, /* gcFEATURE_VALUE_NNCoreCount_INT16 */
         0x0, /* gcFEATURE_VALUE_NNCoreCount_FLOAT16 */
@@ -1562,6 +1613,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_VALUE_MAX_TILE_X_SIZE */
         0x0, /* gcFEATURE_VALUE_NN_CLUSTER_NUM_FOR_POWER_CONTROL */
         0x0, /* gcFEATURE_VALUE_NN_IN_LINES_PER_CYCLE */
+        0x0, /* gcFEATURE_VALUE_VIP_CLUSTER_COUNT */
         0x0, /* gcFEATURE_BIT_REG_FastClear */
         0x1, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */
         0x0, /* gcFEATURE_BIT_REG_Pipe3D */
@@ -1963,7 +2015,12 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_LDST_CONV_4ROUNDING_MODES */
         0x0, /* gcFEATURE_BIT_FULL_PACK_MODE_SUPPORT */
         0x0, /* gcFEATURE_BIT_DEPTH_FLOAT32_SUPPORT */
+        0x0, /* gcFEATURE_BIT_GPU_INSPECTOR_COUNTERS */
         0x0, /* gcFEATURE_BIT_FP32_TO_FP16_CONV_FIX */
+        0x0, /* gcFEATURE_BIT_IMGLD_COMP_COUNT_FIX */
+        0x0, /* gcFEATURE_BIT_IMGLD_WIDTH_LT16_FIX */
+        0x0, /* gcFEATURE_BIT_TX_FILTER_ROUND_FIX */
+        0x0, /* gcFEATURE_BIT_SH_FP32_FMA_SUPPORT */
         0x0, /* gcFEATURE_BIT_VG_TS_CULLING */
         0x0, /* gcFEATURE_BIT_VG_FP25 */
         0x0, /* gcFEATURE_BIT_VG_AYUV_INPUT_OUTPUT */
@@ -2070,6 +2127,9 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_PRELU_LEAKLY_RELU_CLAMP */
         0x0, /* gcFEATURE_BIT_TPLITE_BFLOAT16 */
         0x0, /* gcFEATURE_BIT_PREPROCESS_IMG_BUF_640BYTE_LIMIT */
+        0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP16 */
+        0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_BF16 */
+        0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP32 */
         0x0, /* gcFEATURE_BIT_TP_KERNEL_1BYTE_ALGIN */
         0x0, /* gcFEATURE_BIT_BFLOAT_COEF_COMPRESSION_ZERO_COEFBIT14_INVERSE */
         0x0, /* gcFEATURE_BIT_NN_COMPRESSION_BYPASSS */
@@ -2096,6 +2156,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         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_TP_REMOVE_FC */
+        0x0, /* gcFEATURE_BIT_VIP_REMOVE_MMU */
         0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */
         0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */
         0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */
@@ -2156,14 +2218,27 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_NN_WASTE_COEF_READ_WRITE_BANDWIDTH_128BYTE_VIPSRAM_IN_FULL_PATIAL_CACHE_MODE_FIX */
         0x0, /* gcFEATURE_BIT_NN_IN_TILE_DATA_IS_ALL_PAD_FIX */
         0x0, /* gcFEATURE_BIT_NN_TP_INSTR_COMPLETE_IN_SAME_CYCLE_WITH_WAIT_EVENT_FIX */
+        0x0, /* gcFEATURE_BIT_CORE_IMAGE_TRANSER_NOT_EFFICIENT_BETWEEN_PARTITION_FIX */
         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 */
         0x1, /* gcFEATURE_BIT_BURST_COLLECT_CONSUMES_MC_DATA_WIDTH_PER_CYCLE_FIX */
-        0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_BUG_FIX */
-        0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_BUG_FIX */
+        0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_FIX */
+        0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_FIX */
+        0x0, /* gcFEATURE_BIT_NN_2ND_IMG_BASE_ADDR_FIX */
+        0x0, /* gcFEATURE_BIT_NN_TP_SYSTEM_FIX */
+        0x0, /* gcFEATURE_BIT_NN_INTILE_YSIZE_128_LIMIT_FIX */
+        0x0, /* gcFEATURE_BIT_SH_CLOCK_GATOR_IDLE_CONDITON_FIX */
+        0x0, /* gcFEATURE_BIT_NN_BURST_COLLECTER_LAST_FLAG_FIX */
+        0x0, /* gcFEATURE_BIT_NN_2ND_IMG_SMALL_3D_TILE_FIX */
+        0x0, /* gcFEATURE_BIT_NN_TILE_YSIZE_127_LIMITATION_FIX */
+        0x0, /* gcFEATURE_BIT_NN_CONV_1D_16BIT_FORMAT_INTILE_SIZE_LIMITATION_FIX */
+        0x0, /* gcFEATURE_BIT_NN_VIPSRAM_DOUBLE_BUFFER_FIX */
+        0x0, /* gcFEATURE_BIT_NN_JD_DIRECT_MODE_FIX */
+        0x0, /* gcFEATURE_BIT_NN_KERNEL_DIRECT_WRONG_PUSH_FIX */
+        0x0, /* gcFEATURE_BIT_HI_DEFAULT_ENABLE_REORDER_FIX */
         0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */
         0x0, /* gcFEATURE_BIT_NN_FP16_ALU */
         0x0, /* gcFEATURE_BIT_NN_INT16_ALU */
@@ -2223,6 +2298,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_VALUE_G2D_DEC400_MINOR */
         0x0, /* gcFEATURE_VALUE_NNMadPerCore */
         0x0, /* gcFEATURE_VALUE_NNCoreCount */
+        0x0, /* gcFEATURE_VALUE_NN_ACTIVE_CORE_COUNT */
         0x0, /* gcFEATURE_VALUE_NNCoreCount_INT8 */
         0x0, /* gcFEATURE_VALUE_NNCoreCount_INT16 */
         0x0, /* gcFEATURE_VALUE_NNCoreCount_FLOAT16 */
@@ -2268,6 +2344,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_VALUE_MAX_TILE_X_SIZE */
         0x0, /* gcFEATURE_VALUE_NN_CLUSTER_NUM_FOR_POWER_CONTROL */
         0x0, /* gcFEATURE_VALUE_NN_IN_LINES_PER_CYCLE */
+        0x0, /* gcFEATURE_VALUE_VIP_CLUSTER_COUNT */
         0x0, /* gcFEATURE_BIT_REG_FastClear */
         0x1, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */
         0x0, /* gcFEATURE_BIT_REG_Pipe3D */
@@ -2669,7 +2746,12 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_LDST_CONV_4ROUNDING_MODES */
         0x0, /* gcFEATURE_BIT_FULL_PACK_MODE_SUPPORT */
         0x0, /* gcFEATURE_BIT_DEPTH_FLOAT32_SUPPORT */
+        0x0, /* gcFEATURE_BIT_GPU_INSPECTOR_COUNTERS */
         0x0, /* gcFEATURE_BIT_FP32_TO_FP16_CONV_FIX */
+        0x0, /* gcFEATURE_BIT_IMGLD_COMP_COUNT_FIX */
+        0x0, /* gcFEATURE_BIT_IMGLD_WIDTH_LT16_FIX */
+        0x0, /* gcFEATURE_BIT_TX_FILTER_ROUND_FIX */
+        0x0, /* gcFEATURE_BIT_SH_FP32_FMA_SUPPORT */
         0x0, /* gcFEATURE_BIT_VG_TS_CULLING */
         0x0, /* gcFEATURE_BIT_VG_FP25 */
         0x0, /* gcFEATURE_BIT_VG_AYUV_INPUT_OUTPUT */
@@ -2776,6 +2858,9 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_PRELU_LEAKLY_RELU_CLAMP */
         0x0, /* gcFEATURE_BIT_TPLITE_BFLOAT16 */
         0x0, /* gcFEATURE_BIT_PREPROCESS_IMG_BUF_640BYTE_LIMIT */
+        0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP16 */
+        0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_BF16 */
+        0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP32 */
         0x0, /* gcFEATURE_BIT_TP_KERNEL_1BYTE_ALGIN */
         0x0, /* gcFEATURE_BIT_BFLOAT_COEF_COMPRESSION_ZERO_COEFBIT14_INVERSE */
         0x0, /* gcFEATURE_BIT_NN_COMPRESSION_BYPASSS */
@@ -2802,6 +2887,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         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_TP_REMOVE_FC */
+        0x0, /* gcFEATURE_BIT_VIP_REMOVE_MMU */
         0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */
         0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */
         0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */
@@ -2862,14 +2949,27 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_NN_WASTE_COEF_READ_WRITE_BANDWIDTH_128BYTE_VIPSRAM_IN_FULL_PATIAL_CACHE_MODE_FIX */
         0x0, /* gcFEATURE_BIT_NN_IN_TILE_DATA_IS_ALL_PAD_FIX */
         0x0, /* gcFEATURE_BIT_NN_TP_INSTR_COMPLETE_IN_SAME_CYCLE_WITH_WAIT_EVENT_FIX */
+        0x0, /* gcFEATURE_BIT_CORE_IMAGE_TRANSER_NOT_EFFICIENT_BETWEEN_PARTITION_FIX */
         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 */
         0x1, /* gcFEATURE_BIT_BURST_COLLECT_CONSUMES_MC_DATA_WIDTH_PER_CYCLE_FIX */
-        0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_BUG_FIX */
-        0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_BUG_FIX */
+        0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_FIX */
+        0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_FIX */
+        0x0, /* gcFEATURE_BIT_NN_2ND_IMG_BASE_ADDR_FIX */
+        0x0, /* gcFEATURE_BIT_NN_TP_SYSTEM_FIX */
+        0x0, /* gcFEATURE_BIT_NN_INTILE_YSIZE_128_LIMIT_FIX */
+        0x0, /* gcFEATURE_BIT_SH_CLOCK_GATOR_IDLE_CONDITON_FIX */
+        0x0, /* gcFEATURE_BIT_NN_BURST_COLLECTER_LAST_FLAG_FIX */
+        0x0, /* gcFEATURE_BIT_NN_2ND_IMG_SMALL_3D_TILE_FIX */
+        0x0, /* gcFEATURE_BIT_NN_TILE_YSIZE_127_LIMITATION_FIX */
+        0x0, /* gcFEATURE_BIT_NN_CONV_1D_16BIT_FORMAT_INTILE_SIZE_LIMITATION_FIX */
+        0x0, /* gcFEATURE_BIT_NN_VIPSRAM_DOUBLE_BUFFER_FIX */
+        0x0, /* gcFEATURE_BIT_NN_JD_DIRECT_MODE_FIX */
+        0x0, /* gcFEATURE_BIT_NN_KERNEL_DIRECT_WRONG_PUSH_FIX */
+        0x0, /* gcFEATURE_BIT_HI_DEFAULT_ENABLE_REORDER_FIX */
         0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */
         0x0, /* gcFEATURE_BIT_NN_FP16_ALU */
         0x0, /* gcFEATURE_BIT_NN_INT16_ALU */
@@ -2929,6 +3029,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_VALUE_G2D_DEC400_MINOR */
         0x0, /* gcFEATURE_VALUE_NNMadPerCore */
         0x0, /* gcFEATURE_VALUE_NNCoreCount */
+        0x0, /* gcFEATURE_VALUE_NN_ACTIVE_CORE_COUNT */
         0x0, /* gcFEATURE_VALUE_NNCoreCount_INT8 */
         0x0, /* gcFEATURE_VALUE_NNCoreCount_INT16 */
         0x0, /* gcFEATURE_VALUE_NNCoreCount_FLOAT16 */
@@ -2974,6 +3075,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_VALUE_MAX_TILE_X_SIZE */
         0x0, /* gcFEATURE_VALUE_NN_CLUSTER_NUM_FOR_POWER_CONTROL */
         0x0, /* gcFEATURE_VALUE_NN_IN_LINES_PER_CYCLE */
+        0x0, /* gcFEATURE_VALUE_VIP_CLUSTER_COUNT */
         0x0, /* gcFEATURE_BIT_REG_FastClear */
         0x0, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */
         0x0, /* gcFEATURE_BIT_REG_Pipe3D */
@@ -3375,7 +3477,12 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_LDST_CONV_4ROUNDING_MODES */
         0x0, /* gcFEATURE_BIT_FULL_PACK_MODE_SUPPORT */
         0x0, /* gcFEATURE_BIT_DEPTH_FLOAT32_SUPPORT */
+        0x0, /* gcFEATURE_BIT_GPU_INSPECTOR_COUNTERS */
         0x0, /* gcFEATURE_BIT_FP32_TO_FP16_CONV_FIX */
+        0x0, /* gcFEATURE_BIT_IMGLD_COMP_COUNT_FIX */
+        0x0, /* gcFEATURE_BIT_IMGLD_WIDTH_LT16_FIX */
+        0x0, /* gcFEATURE_BIT_TX_FILTER_ROUND_FIX */
+        0x0, /* gcFEATURE_BIT_SH_FP32_FMA_SUPPORT */
         0x0, /* gcFEATURE_BIT_VG_TS_CULLING */
         0x0, /* gcFEATURE_BIT_VG_FP25 */
         0x0, /* gcFEATURE_BIT_VG_AYUV_INPUT_OUTPUT */
@@ -3482,6 +3589,9 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_PRELU_LEAKLY_RELU_CLAMP */
         0x0, /* gcFEATURE_BIT_TPLITE_BFLOAT16 */
         0x0, /* gcFEATURE_BIT_PREPROCESS_IMG_BUF_640BYTE_LIMIT */
+        0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP16 */
+        0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_BF16 */
+        0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP32 */
         0x0, /* gcFEATURE_BIT_TP_KERNEL_1BYTE_ALGIN */
         0x0, /* gcFEATURE_BIT_BFLOAT_COEF_COMPRESSION_ZERO_COEFBIT14_INVERSE */
         0x0, /* gcFEATURE_BIT_NN_COMPRESSION_BYPASSS */
@@ -3508,6 +3618,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         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_TP_REMOVE_FC */
+        0x0, /* gcFEATURE_BIT_VIP_REMOVE_MMU */
         0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */
         0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */
         0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */
@@ -3568,14 +3680,27 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_NN_WASTE_COEF_READ_WRITE_BANDWIDTH_128BYTE_VIPSRAM_IN_FULL_PATIAL_CACHE_MODE_FIX */
         0x0, /* gcFEATURE_BIT_NN_IN_TILE_DATA_IS_ALL_PAD_FIX */
         0x0, /* gcFEATURE_BIT_NN_TP_INSTR_COMPLETE_IN_SAME_CYCLE_WITH_WAIT_EVENT_FIX */
+        0x0, /* gcFEATURE_BIT_CORE_IMAGE_TRANSER_NOT_EFFICIENT_BETWEEN_PARTITION_FIX */
         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 */
         0x1, /* gcFEATURE_BIT_BURST_COLLECT_CONSUMES_MC_DATA_WIDTH_PER_CYCLE_FIX */
-        0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_BUG_FIX */
-        0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_BUG_FIX */
+        0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_FIX */
+        0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_FIX */
+        0x0, /* gcFEATURE_BIT_NN_2ND_IMG_BASE_ADDR_FIX */
+        0x0, /* gcFEATURE_BIT_NN_TP_SYSTEM_FIX */
+        0x0, /* gcFEATURE_BIT_NN_INTILE_YSIZE_128_LIMIT_FIX */
+        0x0, /* gcFEATURE_BIT_SH_CLOCK_GATOR_IDLE_CONDITON_FIX */
+        0x0, /* gcFEATURE_BIT_NN_BURST_COLLECTER_LAST_FLAG_FIX */
+        0x0, /* gcFEATURE_BIT_NN_2ND_IMG_SMALL_3D_TILE_FIX */
+        0x0, /* gcFEATURE_BIT_NN_TILE_YSIZE_127_LIMITATION_FIX */
+        0x0, /* gcFEATURE_BIT_NN_CONV_1D_16BIT_FORMAT_INTILE_SIZE_LIMITATION_FIX */
+        0x0, /* gcFEATURE_BIT_NN_VIPSRAM_DOUBLE_BUFFER_FIX */
+        0x0, /* gcFEATURE_BIT_NN_JD_DIRECT_MODE_FIX */
+        0x0, /* gcFEATURE_BIT_NN_KERNEL_DIRECT_WRONG_PUSH_FIX */
+        0x0, /* gcFEATURE_BIT_HI_DEFAULT_ENABLE_REORDER_FIX */
         0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */
         0x0, /* gcFEATURE_BIT_NN_FP16_ALU */
         0x0, /* gcFEATURE_BIT_NN_INT16_ALU */
@@ -3635,6 +3760,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_VALUE_G2D_DEC400_MINOR */
         0x0, /* gcFEATURE_VALUE_NNMadPerCore */
         0x0, /* gcFEATURE_VALUE_NNCoreCount */
+        0x0, /* gcFEATURE_VALUE_NN_ACTIVE_CORE_COUNT */
         0x0, /* gcFEATURE_VALUE_NNCoreCount_INT8 */
         0x0, /* gcFEATURE_VALUE_NNCoreCount_INT16 */
         0x0, /* gcFEATURE_VALUE_NNCoreCount_FLOAT16 */
@@ -3680,6 +3806,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_VALUE_MAX_TILE_X_SIZE */
         0x0, /* gcFEATURE_VALUE_NN_CLUSTER_NUM_FOR_POWER_CONTROL */
         0x0, /* gcFEATURE_VALUE_NN_IN_LINES_PER_CYCLE */
+        0x0, /* gcFEATURE_VALUE_VIP_CLUSTER_COUNT */
         0x1, /* gcFEATURE_BIT_REG_FastClear */
         0x0, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */
         0x1, /* gcFEATURE_BIT_REG_Pipe3D */
@@ -4081,7 +4208,12 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_LDST_CONV_4ROUNDING_MODES */
         0x0, /* gcFEATURE_BIT_FULL_PACK_MODE_SUPPORT */
         0x0, /* gcFEATURE_BIT_DEPTH_FLOAT32_SUPPORT */
+        0x0, /* gcFEATURE_BIT_GPU_INSPECTOR_COUNTERS */
         0x0, /* gcFEATURE_BIT_FP32_TO_FP16_CONV_FIX */
+        0x0, /* gcFEATURE_BIT_IMGLD_COMP_COUNT_FIX */
+        0x0, /* gcFEATURE_BIT_IMGLD_WIDTH_LT16_FIX */
+        0x0, /* gcFEATURE_BIT_TX_FILTER_ROUND_FIX */
+        0x0, /* gcFEATURE_BIT_SH_FP32_FMA_SUPPORT */
         0x0, /* gcFEATURE_BIT_VG_TS_CULLING */
         0x0, /* gcFEATURE_BIT_VG_FP25 */
         0x0, /* gcFEATURE_BIT_VG_AYUV_INPUT_OUTPUT */
@@ -4188,6 +4320,9 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_PRELU_LEAKLY_RELU_CLAMP */
         0x0, /* gcFEATURE_BIT_TPLITE_BFLOAT16 */
         0x0, /* gcFEATURE_BIT_PREPROCESS_IMG_BUF_640BYTE_LIMIT */
+        0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP16 */
+        0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_BF16 */
+        0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP32 */
         0x0, /* gcFEATURE_BIT_TP_KERNEL_1BYTE_ALGIN */
         0x0, /* gcFEATURE_BIT_BFLOAT_COEF_COMPRESSION_ZERO_COEFBIT14_INVERSE */
         0x0, /* gcFEATURE_BIT_NN_COMPRESSION_BYPASSS */
@@ -4214,6 +4349,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         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_TP_REMOVE_FC */
+        0x0, /* gcFEATURE_BIT_VIP_REMOVE_MMU */
         0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */
         0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */
         0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */
@@ -4274,14 +4411,27 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_NN_WASTE_COEF_READ_WRITE_BANDWIDTH_128BYTE_VIPSRAM_IN_FULL_PATIAL_CACHE_MODE_FIX */
         0x0, /* gcFEATURE_BIT_NN_IN_TILE_DATA_IS_ALL_PAD_FIX */
         0x0, /* gcFEATURE_BIT_NN_TP_INSTR_COMPLETE_IN_SAME_CYCLE_WITH_WAIT_EVENT_FIX */
+        0x0, /* gcFEATURE_BIT_CORE_IMAGE_TRANSER_NOT_EFFICIENT_BETWEEN_PARTITION_FIX */
         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 */
         0x1, /* gcFEATURE_BIT_BURST_COLLECT_CONSUMES_MC_DATA_WIDTH_PER_CYCLE_FIX */
-        0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_BUG_FIX */
-        0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_BUG_FIX */
+        0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_FIX */
+        0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_FIX */
+        0x0, /* gcFEATURE_BIT_NN_2ND_IMG_BASE_ADDR_FIX */
+        0x0, /* gcFEATURE_BIT_NN_TP_SYSTEM_FIX */
+        0x0, /* gcFEATURE_BIT_NN_INTILE_YSIZE_128_LIMIT_FIX */
+        0x0, /* gcFEATURE_BIT_SH_CLOCK_GATOR_IDLE_CONDITON_FIX */
+        0x0, /* gcFEATURE_BIT_NN_BURST_COLLECTER_LAST_FLAG_FIX */
+        0x0, /* gcFEATURE_BIT_NN_2ND_IMG_SMALL_3D_TILE_FIX */
+        0x0, /* gcFEATURE_BIT_NN_TILE_YSIZE_127_LIMITATION_FIX */
+        0x0, /* gcFEATURE_BIT_NN_CONV_1D_16BIT_FORMAT_INTILE_SIZE_LIMITATION_FIX */
+        0x0, /* gcFEATURE_BIT_NN_VIPSRAM_DOUBLE_BUFFER_FIX */
+        0x0, /* gcFEATURE_BIT_NN_JD_DIRECT_MODE_FIX */
+        0x0, /* gcFEATURE_BIT_NN_KERNEL_DIRECT_WRONG_PUSH_FIX */
+        0x0, /* gcFEATURE_BIT_HI_DEFAULT_ENABLE_REORDER_FIX */
         0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */
         0x0, /* gcFEATURE_BIT_NN_FP16_ALU */
         0x0, /* gcFEATURE_BIT_NN_INT16_ALU */
@@ -4341,6 +4491,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_VALUE_G2D_DEC400_MINOR */
         0x0, /* gcFEATURE_VALUE_NNMadPerCore */
         0x0, /* gcFEATURE_VALUE_NNCoreCount */
+        0x0, /* gcFEATURE_VALUE_NN_ACTIVE_CORE_COUNT */
         0x0, /* gcFEATURE_VALUE_NNCoreCount_INT8 */
         0x0, /* gcFEATURE_VALUE_NNCoreCount_INT16 */
         0x0, /* gcFEATURE_VALUE_NNCoreCount_FLOAT16 */
@@ -4386,6 +4537,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_VALUE_MAX_TILE_X_SIZE */
         0x0, /* gcFEATURE_VALUE_NN_CLUSTER_NUM_FOR_POWER_CONTROL */
         0x0, /* gcFEATURE_VALUE_NN_IN_LINES_PER_CYCLE */
+        0x0, /* gcFEATURE_VALUE_VIP_CLUSTER_COUNT */
         0x0, /* gcFEATURE_BIT_REG_FastClear */
         0x1, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */
         0x0, /* gcFEATURE_BIT_REG_Pipe3D */
@@ -4787,7 +4939,12 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_LDST_CONV_4ROUNDING_MODES */
         0x0, /* gcFEATURE_BIT_FULL_PACK_MODE_SUPPORT */
         0x0, /* gcFEATURE_BIT_DEPTH_FLOAT32_SUPPORT */
+        0x0, /* gcFEATURE_BIT_GPU_INSPECTOR_COUNTERS */
         0x0, /* gcFEATURE_BIT_FP32_TO_FP16_CONV_FIX */
+        0x0, /* gcFEATURE_BIT_IMGLD_COMP_COUNT_FIX */
+        0x0, /* gcFEATURE_BIT_IMGLD_WIDTH_LT16_FIX */
+        0x0, /* gcFEATURE_BIT_TX_FILTER_ROUND_FIX */
+        0x0, /* gcFEATURE_BIT_SH_FP32_FMA_SUPPORT */
         0x0, /* gcFEATURE_BIT_VG_TS_CULLING */
         0x0, /* gcFEATURE_BIT_VG_FP25 */
         0x0, /* gcFEATURE_BIT_VG_AYUV_INPUT_OUTPUT */
@@ -4894,6 +5051,9 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_PRELU_LEAKLY_RELU_CLAMP */
         0x0, /* gcFEATURE_BIT_TPLITE_BFLOAT16 */
         0x0, /* gcFEATURE_BIT_PREPROCESS_IMG_BUF_640BYTE_LIMIT */
+        0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP16 */
+        0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_BF16 */
+        0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP32 */
         0x0, /* gcFEATURE_BIT_TP_KERNEL_1BYTE_ALGIN */
         0x0, /* gcFEATURE_BIT_BFLOAT_COEF_COMPRESSION_ZERO_COEFBIT14_INVERSE */
         0x0, /* gcFEATURE_BIT_NN_COMPRESSION_BYPASSS */
@@ -4920,6 +5080,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         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_TP_REMOVE_FC */
+        0x0, /* gcFEATURE_BIT_VIP_REMOVE_MMU */
         0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */
         0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */
         0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */
@@ -4980,14 +5142,27 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_NN_WASTE_COEF_READ_WRITE_BANDWIDTH_128BYTE_VIPSRAM_IN_FULL_PATIAL_CACHE_MODE_FIX */
         0x0, /* gcFEATURE_BIT_NN_IN_TILE_DATA_IS_ALL_PAD_FIX */
         0x0, /* gcFEATURE_BIT_NN_TP_INSTR_COMPLETE_IN_SAME_CYCLE_WITH_WAIT_EVENT_FIX */
+        0x0, /* gcFEATURE_BIT_CORE_IMAGE_TRANSER_NOT_EFFICIENT_BETWEEN_PARTITION_FIX */
         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 */
         0x1, /* gcFEATURE_BIT_BURST_COLLECT_CONSUMES_MC_DATA_WIDTH_PER_CYCLE_FIX */
-        0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_BUG_FIX */
-        0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_BUG_FIX */
+        0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_FIX */
+        0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_FIX */
+        0x0, /* gcFEATURE_BIT_NN_2ND_IMG_BASE_ADDR_FIX */
+        0x0, /* gcFEATURE_BIT_NN_TP_SYSTEM_FIX */
+        0x0, /* gcFEATURE_BIT_NN_INTILE_YSIZE_128_LIMIT_FIX */
+        0x0, /* gcFEATURE_BIT_SH_CLOCK_GATOR_IDLE_CONDITON_FIX */
+        0x0, /* gcFEATURE_BIT_NN_BURST_COLLECTER_LAST_FLAG_FIX */
+        0x0, /* gcFEATURE_BIT_NN_2ND_IMG_SMALL_3D_TILE_FIX */
+        0x0, /* gcFEATURE_BIT_NN_TILE_YSIZE_127_LIMITATION_FIX */
+        0x0, /* gcFEATURE_BIT_NN_CONV_1D_16BIT_FORMAT_INTILE_SIZE_LIMITATION_FIX */
+        0x0, /* gcFEATURE_BIT_NN_VIPSRAM_DOUBLE_BUFFER_FIX */
+        0x0, /* gcFEATURE_BIT_NN_JD_DIRECT_MODE_FIX */
+        0x0, /* gcFEATURE_BIT_NN_KERNEL_DIRECT_WRONG_PUSH_FIX */
+        0x0, /* gcFEATURE_BIT_HI_DEFAULT_ENABLE_REORDER_FIX */
         0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */
         0x0, /* gcFEATURE_BIT_NN_FP16_ALU */
         0x0, /* gcFEATURE_BIT_NN_INT16_ALU */
@@ -5047,6 +5222,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_VALUE_G2D_DEC400_MINOR */
         0x0, /* gcFEATURE_VALUE_NNMadPerCore */
         0x0, /* gcFEATURE_VALUE_NNCoreCount */
+        0x0, /* gcFEATURE_VALUE_NN_ACTIVE_CORE_COUNT */
         0x0, /* gcFEATURE_VALUE_NNCoreCount_INT8 */
         0x0, /* gcFEATURE_VALUE_NNCoreCount_INT16 */
         0x0, /* gcFEATURE_VALUE_NNCoreCount_FLOAT16 */
@@ -5092,6 +5268,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_VALUE_MAX_TILE_X_SIZE */
         0x0, /* gcFEATURE_VALUE_NN_CLUSTER_NUM_FOR_POWER_CONTROL */
         0x0, /* gcFEATURE_VALUE_NN_IN_LINES_PER_CYCLE */
+        0x0, /* gcFEATURE_VALUE_VIP_CLUSTER_COUNT */
         0x0, /* gcFEATURE_BIT_REG_FastClear */
         0x1, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */
         0x0, /* gcFEATURE_BIT_REG_Pipe3D */
@@ -5493,7 +5670,12 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_LDST_CONV_4ROUNDING_MODES */
         0x0, /* gcFEATURE_BIT_FULL_PACK_MODE_SUPPORT */
         0x0, /* gcFEATURE_BIT_DEPTH_FLOAT32_SUPPORT */
+        0x0, /* gcFEATURE_BIT_GPU_INSPECTOR_COUNTERS */
         0x0, /* gcFEATURE_BIT_FP32_TO_FP16_CONV_FIX */
+        0x0, /* gcFEATURE_BIT_IMGLD_COMP_COUNT_FIX */
+        0x1, /* gcFEATURE_BIT_IMGLD_WIDTH_LT16_FIX */
+        0x0, /* gcFEATURE_BIT_TX_FILTER_ROUND_FIX */
+        0x0, /* gcFEATURE_BIT_SH_FP32_FMA_SUPPORT */
         0x0, /* gcFEATURE_BIT_VG_TS_CULLING */
         0x0, /* gcFEATURE_BIT_VG_FP25 */
         0x0, /* gcFEATURE_BIT_VG_AYUV_INPUT_OUTPUT */
@@ -5600,6 +5782,9 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_PRELU_LEAKLY_RELU_CLAMP */
         0x0, /* gcFEATURE_BIT_TPLITE_BFLOAT16 */
         0x0, /* gcFEATURE_BIT_PREPROCESS_IMG_BUF_640BYTE_LIMIT */
+        0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP16 */
+        0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_BF16 */
+        0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP32 */
         0x0, /* gcFEATURE_BIT_TP_KERNEL_1BYTE_ALGIN */
         0x0, /* gcFEATURE_BIT_BFLOAT_COEF_COMPRESSION_ZERO_COEFBIT14_INVERSE */
         0x0, /* gcFEATURE_BIT_NN_COMPRESSION_BYPASSS */
@@ -5626,6 +5811,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         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_TP_REMOVE_FC */
+        0x0, /* gcFEATURE_BIT_VIP_REMOVE_MMU */
         0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */
         0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */
         0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */
@@ -5686,14 +5873,27 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_NN_WASTE_COEF_READ_WRITE_BANDWIDTH_128BYTE_VIPSRAM_IN_FULL_PATIAL_CACHE_MODE_FIX */
         0x0, /* gcFEATURE_BIT_NN_IN_TILE_DATA_IS_ALL_PAD_FIX */
         0x0, /* gcFEATURE_BIT_NN_TP_INSTR_COMPLETE_IN_SAME_CYCLE_WITH_WAIT_EVENT_FIX */
+        0x0, /* gcFEATURE_BIT_CORE_IMAGE_TRANSER_NOT_EFFICIENT_BETWEEN_PARTITION_FIX */
         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 */
         0x1, /* gcFEATURE_BIT_BURST_COLLECT_CONSUMES_MC_DATA_WIDTH_PER_CYCLE_FIX */
-        0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_BUG_FIX */
-        0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_BUG_FIX */
+        0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_FIX */
+        0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_FIX */
+        0x0, /* gcFEATURE_BIT_NN_2ND_IMG_BASE_ADDR_FIX */
+        0x0, /* gcFEATURE_BIT_NN_TP_SYSTEM_FIX */
+        0x0, /* gcFEATURE_BIT_NN_INTILE_YSIZE_128_LIMIT_FIX */
+        0x0, /* gcFEATURE_BIT_SH_CLOCK_GATOR_IDLE_CONDITON_FIX */
+        0x0, /* gcFEATURE_BIT_NN_BURST_COLLECTER_LAST_FLAG_FIX */
+        0x0, /* gcFEATURE_BIT_NN_2ND_IMG_SMALL_3D_TILE_FIX */
+        0x0, /* gcFEATURE_BIT_NN_TILE_YSIZE_127_LIMITATION_FIX */
+        0x0, /* gcFEATURE_BIT_NN_CONV_1D_16BIT_FORMAT_INTILE_SIZE_LIMITATION_FIX */
+        0x0, /* gcFEATURE_BIT_NN_VIPSRAM_DOUBLE_BUFFER_FIX */
+        0x0, /* gcFEATURE_BIT_NN_JD_DIRECT_MODE_FIX */
+        0x0, /* gcFEATURE_BIT_NN_KERNEL_DIRECT_WRONG_PUSH_FIX */
+        0x0, /* gcFEATURE_BIT_HI_DEFAULT_ENABLE_REORDER_FIX */
         0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */
         0x0, /* gcFEATURE_BIT_NN_FP16_ALU */
         0x0, /* gcFEATURE_BIT_NN_INT16_ALU */
@@ -5753,6 +5953,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_VALUE_G2D_DEC400_MINOR */
         0x0, /* gcFEATURE_VALUE_NNMadPerCore */
         0x0, /* gcFEATURE_VALUE_NNCoreCount */
+        0x0, /* gcFEATURE_VALUE_NN_ACTIVE_CORE_COUNT */
         0x0, /* gcFEATURE_VALUE_NNCoreCount_INT8 */
         0x0, /* gcFEATURE_VALUE_NNCoreCount_INT16 */
         0x0, /* gcFEATURE_VALUE_NNCoreCount_FLOAT16 */
@@ -5798,6 +5999,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_VALUE_MAX_TILE_X_SIZE */
         0x0, /* gcFEATURE_VALUE_NN_CLUSTER_NUM_FOR_POWER_CONTROL */
         0x0, /* gcFEATURE_VALUE_NN_IN_LINES_PER_CYCLE */
+        0x0, /* gcFEATURE_VALUE_VIP_CLUSTER_COUNT */
         0x0, /* gcFEATURE_BIT_REG_FastClear */
         0x1, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */
         0x0, /* gcFEATURE_BIT_REG_Pipe3D */
@@ -6199,7 +6401,12 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_LDST_CONV_4ROUNDING_MODES */
         0x0, /* gcFEATURE_BIT_FULL_PACK_MODE_SUPPORT */
         0x0, /* gcFEATURE_BIT_DEPTH_FLOAT32_SUPPORT */
+        0x0, /* gcFEATURE_BIT_GPU_INSPECTOR_COUNTERS */
         0x0, /* gcFEATURE_BIT_FP32_TO_FP16_CONV_FIX */
+        0x0, /* gcFEATURE_BIT_IMGLD_COMP_COUNT_FIX */
+        0x1, /* gcFEATURE_BIT_IMGLD_WIDTH_LT16_FIX */
+        0x0, /* gcFEATURE_BIT_TX_FILTER_ROUND_FIX */
+        0x0, /* gcFEATURE_BIT_SH_FP32_FMA_SUPPORT */
         0x0, /* gcFEATURE_BIT_VG_TS_CULLING */
         0x0, /* gcFEATURE_BIT_VG_FP25 */
         0x0, /* gcFEATURE_BIT_VG_AYUV_INPUT_OUTPUT */
@@ -6306,6 +6513,9 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_PRELU_LEAKLY_RELU_CLAMP */
         0x0, /* gcFEATURE_BIT_TPLITE_BFLOAT16 */
         0x0, /* gcFEATURE_BIT_PREPROCESS_IMG_BUF_640BYTE_LIMIT */
+        0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP16 */
+        0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_BF16 */
+        0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP32 */
         0x0, /* gcFEATURE_BIT_TP_KERNEL_1BYTE_ALGIN */
         0x0, /* gcFEATURE_BIT_BFLOAT_COEF_COMPRESSION_ZERO_COEFBIT14_INVERSE */
         0x0, /* gcFEATURE_BIT_NN_COMPRESSION_BYPASSS */
@@ -6332,6 +6542,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         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_TP_REMOVE_FC */
+        0x0, /* gcFEATURE_BIT_VIP_REMOVE_MMU */
         0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */
         0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */
         0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */
@@ -6392,14 +6604,27 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_NN_WASTE_COEF_READ_WRITE_BANDWIDTH_128BYTE_VIPSRAM_IN_FULL_PATIAL_CACHE_MODE_FIX */
         0x0, /* gcFEATURE_BIT_NN_IN_TILE_DATA_IS_ALL_PAD_FIX */
         0x0, /* gcFEATURE_BIT_NN_TP_INSTR_COMPLETE_IN_SAME_CYCLE_WITH_WAIT_EVENT_FIX */
+        0x0, /* gcFEATURE_BIT_CORE_IMAGE_TRANSER_NOT_EFFICIENT_BETWEEN_PARTITION_FIX */
         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 */
         0x1, /* gcFEATURE_BIT_BURST_COLLECT_CONSUMES_MC_DATA_WIDTH_PER_CYCLE_FIX */
-        0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_BUG_FIX */
-        0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_BUG_FIX */
+        0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_FIX */
+        0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_FIX */
+        0x0, /* gcFEATURE_BIT_NN_2ND_IMG_BASE_ADDR_FIX */
+        0x0, /* gcFEATURE_BIT_NN_TP_SYSTEM_FIX */
+        0x0, /* gcFEATURE_BIT_NN_INTILE_YSIZE_128_LIMIT_FIX */
+        0x0, /* gcFEATURE_BIT_SH_CLOCK_GATOR_IDLE_CONDITON_FIX */
+        0x0, /* gcFEATURE_BIT_NN_BURST_COLLECTER_LAST_FLAG_FIX */
+        0x0, /* gcFEATURE_BIT_NN_2ND_IMG_SMALL_3D_TILE_FIX */
+        0x0, /* gcFEATURE_BIT_NN_TILE_YSIZE_127_LIMITATION_FIX */
+        0x0, /* gcFEATURE_BIT_NN_CONV_1D_16BIT_FORMAT_INTILE_SIZE_LIMITATION_FIX */
+        0x0, /* gcFEATURE_BIT_NN_VIPSRAM_DOUBLE_BUFFER_FIX */
+        0x0, /* gcFEATURE_BIT_NN_JD_DIRECT_MODE_FIX */
+        0x0, /* gcFEATURE_BIT_NN_KERNEL_DIRECT_WRONG_PUSH_FIX */
+        0x0, /* gcFEATURE_BIT_HI_DEFAULT_ENABLE_REORDER_FIX */
         0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */
         0x0, /* gcFEATURE_BIT_NN_FP16_ALU */
         0x0, /* gcFEATURE_BIT_NN_INT16_ALU */
@@ -6459,6 +6684,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_VALUE_G2D_DEC400_MINOR */
         0x0, /* gcFEATURE_VALUE_NNMadPerCore */
         0x0, /* gcFEATURE_VALUE_NNCoreCount */
+        0x0, /* gcFEATURE_VALUE_NN_ACTIVE_CORE_COUNT */
         0x0, /* gcFEATURE_VALUE_NNCoreCount_INT8 */
         0x0, /* gcFEATURE_VALUE_NNCoreCount_INT16 */
         0x0, /* gcFEATURE_VALUE_NNCoreCount_FLOAT16 */
@@ -6504,6 +6730,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_VALUE_MAX_TILE_X_SIZE */
         0x0, /* gcFEATURE_VALUE_NN_CLUSTER_NUM_FOR_POWER_CONTROL */
         0x0, /* gcFEATURE_VALUE_NN_IN_LINES_PER_CYCLE */
+        0x0, /* gcFEATURE_VALUE_VIP_CLUSTER_COUNT */
         0x1, /* gcFEATURE_BIT_REG_FastClear */
         0x0, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */
         0x1, /* gcFEATURE_BIT_REG_Pipe3D */
@@ -6905,7 +7132,12 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_LDST_CONV_4ROUNDING_MODES */
         0x0, /* gcFEATURE_BIT_FULL_PACK_MODE_SUPPORT */
         0x0, /* gcFEATURE_BIT_DEPTH_FLOAT32_SUPPORT */
+        0x0, /* gcFEATURE_BIT_GPU_INSPECTOR_COUNTERS */
         0x0, /* gcFEATURE_BIT_FP32_TO_FP16_CONV_FIX */
+        0x0, /* gcFEATURE_BIT_IMGLD_COMP_COUNT_FIX */
+        0x0, /* gcFEATURE_BIT_IMGLD_WIDTH_LT16_FIX */
+        0x0, /* gcFEATURE_BIT_TX_FILTER_ROUND_FIX */
+        0x0, /* gcFEATURE_BIT_SH_FP32_FMA_SUPPORT */
         0x0, /* gcFEATURE_BIT_VG_TS_CULLING */
         0x0, /* gcFEATURE_BIT_VG_FP25 */
         0x0, /* gcFEATURE_BIT_VG_AYUV_INPUT_OUTPUT */
@@ -7012,6 +7244,9 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_PRELU_LEAKLY_RELU_CLAMP */
         0x0, /* gcFEATURE_BIT_TPLITE_BFLOAT16 */
         0x0, /* gcFEATURE_BIT_PREPROCESS_IMG_BUF_640BYTE_LIMIT */
+        0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP16 */
+        0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_BF16 */
+        0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP32 */
         0x0, /* gcFEATURE_BIT_TP_KERNEL_1BYTE_ALGIN */
         0x0, /* gcFEATURE_BIT_BFLOAT_COEF_COMPRESSION_ZERO_COEFBIT14_INVERSE */
         0x0, /* gcFEATURE_BIT_NN_COMPRESSION_BYPASSS */
@@ -7038,6 +7273,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         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_TP_REMOVE_FC */
+        0x0, /* gcFEATURE_BIT_VIP_REMOVE_MMU */
         0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */
         0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */
         0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */
@@ -7098,14 +7335,27 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_NN_WASTE_COEF_READ_WRITE_BANDWIDTH_128BYTE_VIPSRAM_IN_FULL_PATIAL_CACHE_MODE_FIX */
         0x0, /* gcFEATURE_BIT_NN_IN_TILE_DATA_IS_ALL_PAD_FIX */
         0x0, /* gcFEATURE_BIT_NN_TP_INSTR_COMPLETE_IN_SAME_CYCLE_WITH_WAIT_EVENT_FIX */
+        0x0, /* gcFEATURE_BIT_CORE_IMAGE_TRANSER_NOT_EFFICIENT_BETWEEN_PARTITION_FIX */
         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 */
         0x1, /* gcFEATURE_BIT_BURST_COLLECT_CONSUMES_MC_DATA_WIDTH_PER_CYCLE_FIX */
-        0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_BUG_FIX */
-        0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_BUG_FIX */
+        0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_FIX */
+        0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_FIX */
+        0x0, /* gcFEATURE_BIT_NN_2ND_IMG_BASE_ADDR_FIX */
+        0x0, /* gcFEATURE_BIT_NN_TP_SYSTEM_FIX */
+        0x0, /* gcFEATURE_BIT_NN_INTILE_YSIZE_128_LIMIT_FIX */
+        0x0, /* gcFEATURE_BIT_SH_CLOCK_GATOR_IDLE_CONDITON_FIX */
+        0x0, /* gcFEATURE_BIT_NN_BURST_COLLECTER_LAST_FLAG_FIX */
+        0x0, /* gcFEATURE_BIT_NN_2ND_IMG_SMALL_3D_TILE_FIX */
+        0x0, /* gcFEATURE_BIT_NN_TILE_YSIZE_127_LIMITATION_FIX */
+        0x0, /* gcFEATURE_BIT_NN_CONV_1D_16BIT_FORMAT_INTILE_SIZE_LIMITATION_FIX */
+        0x0, /* gcFEATURE_BIT_NN_VIPSRAM_DOUBLE_BUFFER_FIX */
+        0x0, /* gcFEATURE_BIT_NN_JD_DIRECT_MODE_FIX */
+        0x0, /* gcFEATURE_BIT_NN_KERNEL_DIRECT_WRONG_PUSH_FIX */
+        0x0, /* gcFEATURE_BIT_HI_DEFAULT_ENABLE_REORDER_FIX */
         0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */
         0x0, /* gcFEATURE_BIT_NN_FP16_ALU */
         0x0, /* gcFEATURE_BIT_NN_INT16_ALU */
@@ -7165,6 +7415,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_VALUE_G2D_DEC400_MINOR */
         0x0, /* gcFEATURE_VALUE_NNMadPerCore */
         0x0, /* gcFEATURE_VALUE_NNCoreCount */
+        0x0, /* gcFEATURE_VALUE_NN_ACTIVE_CORE_COUNT */
         0x0, /* gcFEATURE_VALUE_NNCoreCount_INT8 */
         0x0, /* gcFEATURE_VALUE_NNCoreCount_INT16 */
         0x0, /* gcFEATURE_VALUE_NNCoreCount_FLOAT16 */
@@ -7210,6 +7461,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_VALUE_MAX_TILE_X_SIZE */
         0x0, /* gcFEATURE_VALUE_NN_CLUSTER_NUM_FOR_POWER_CONTROL */
         0x0, /* gcFEATURE_VALUE_NN_IN_LINES_PER_CYCLE */
+        0x0, /* gcFEATURE_VALUE_VIP_CLUSTER_COUNT */
         0x1, /* gcFEATURE_BIT_REG_FastClear */
         0x0, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */
         0x1, /* gcFEATURE_BIT_REG_Pipe3D */
@@ -7611,7 +7863,12 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_LDST_CONV_4ROUNDING_MODES */
         0x0, /* gcFEATURE_BIT_FULL_PACK_MODE_SUPPORT */
         0x0, /* gcFEATURE_BIT_DEPTH_FLOAT32_SUPPORT */
+        0x0, /* gcFEATURE_BIT_GPU_INSPECTOR_COUNTERS */
         0x0, /* gcFEATURE_BIT_FP32_TO_FP16_CONV_FIX */
+        0x0, /* gcFEATURE_BIT_IMGLD_COMP_COUNT_FIX */
+        0x0, /* gcFEATURE_BIT_IMGLD_WIDTH_LT16_FIX */
+        0x0, /* gcFEATURE_BIT_TX_FILTER_ROUND_FIX */
+        0x0, /* gcFEATURE_BIT_SH_FP32_FMA_SUPPORT */
         0x0, /* gcFEATURE_BIT_VG_TS_CULLING */
         0x0, /* gcFEATURE_BIT_VG_FP25 */
         0x0, /* gcFEATURE_BIT_VG_AYUV_INPUT_OUTPUT */
@@ -7718,6 +7975,9 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_PRELU_LEAKLY_RELU_CLAMP */
         0x0, /* gcFEATURE_BIT_TPLITE_BFLOAT16 */
         0x0, /* gcFEATURE_BIT_PREPROCESS_IMG_BUF_640BYTE_LIMIT */
+        0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP16 */
+        0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_BF16 */
+        0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP32 */
         0x0, /* gcFEATURE_BIT_TP_KERNEL_1BYTE_ALGIN */
         0x0, /* gcFEATURE_BIT_BFLOAT_COEF_COMPRESSION_ZERO_COEFBIT14_INVERSE */
         0x0, /* gcFEATURE_BIT_NN_COMPRESSION_BYPASSS */
@@ -7744,6 +8004,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         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_TP_REMOVE_FC */
+        0x0, /* gcFEATURE_BIT_VIP_REMOVE_MMU */
         0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */
         0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */
         0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */
@@ -7804,14 +8066,27 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_NN_WASTE_COEF_READ_WRITE_BANDWIDTH_128BYTE_VIPSRAM_IN_FULL_PATIAL_CACHE_MODE_FIX */
         0x0, /* gcFEATURE_BIT_NN_IN_TILE_DATA_IS_ALL_PAD_FIX */
         0x0, /* gcFEATURE_BIT_NN_TP_INSTR_COMPLETE_IN_SAME_CYCLE_WITH_WAIT_EVENT_FIX */
+        0x0, /* gcFEATURE_BIT_CORE_IMAGE_TRANSER_NOT_EFFICIENT_BETWEEN_PARTITION_FIX */
         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 */
         0x1, /* gcFEATURE_BIT_BURST_COLLECT_CONSUMES_MC_DATA_WIDTH_PER_CYCLE_FIX */
-        0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_BUG_FIX */
-        0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_BUG_FIX */
+        0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_FIX */
+        0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_FIX */
+        0x0, /* gcFEATURE_BIT_NN_2ND_IMG_BASE_ADDR_FIX */
+        0x0, /* gcFEATURE_BIT_NN_TP_SYSTEM_FIX */
+        0x0, /* gcFEATURE_BIT_NN_INTILE_YSIZE_128_LIMIT_FIX */
+        0x0, /* gcFEATURE_BIT_SH_CLOCK_GATOR_IDLE_CONDITON_FIX */
+        0x0, /* gcFEATURE_BIT_NN_BURST_COLLECTER_LAST_FLAG_FIX */
+        0x0, /* gcFEATURE_BIT_NN_2ND_IMG_SMALL_3D_TILE_FIX */
+        0x0, /* gcFEATURE_BIT_NN_TILE_YSIZE_127_LIMITATION_FIX */
+        0x0, /* gcFEATURE_BIT_NN_CONV_1D_16BIT_FORMAT_INTILE_SIZE_LIMITATION_FIX */
+        0x0, /* gcFEATURE_BIT_NN_VIPSRAM_DOUBLE_BUFFER_FIX */
+        0x0, /* gcFEATURE_BIT_NN_JD_DIRECT_MODE_FIX */
+        0x0, /* gcFEATURE_BIT_NN_KERNEL_DIRECT_WRONG_PUSH_FIX */
+        0x0, /* gcFEATURE_BIT_HI_DEFAULT_ENABLE_REORDER_FIX */
         0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */
         0x0, /* gcFEATURE_BIT_NN_FP16_ALU */
         0x0, /* gcFEATURE_BIT_NN_INT16_ALU */
@@ -7871,6 +8146,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_VALUE_G2D_DEC400_MINOR */
         0x0, /* gcFEATURE_VALUE_NNMadPerCore */
         0x0, /* gcFEATURE_VALUE_NNCoreCount */
+        0x0, /* gcFEATURE_VALUE_NN_ACTIVE_CORE_COUNT */
         0x0, /* gcFEATURE_VALUE_NNCoreCount_INT8 */
         0x0, /* gcFEATURE_VALUE_NNCoreCount_INT16 */
         0x0, /* gcFEATURE_VALUE_NNCoreCount_FLOAT16 */
@@ -7916,6 +8192,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_VALUE_MAX_TILE_X_SIZE */
         0x0, /* gcFEATURE_VALUE_NN_CLUSTER_NUM_FOR_POWER_CONTROL */
         0x0, /* gcFEATURE_VALUE_NN_IN_LINES_PER_CYCLE */
+        0x0, /* gcFEATURE_VALUE_VIP_CLUSTER_COUNT */
         0x1, /* gcFEATURE_BIT_REG_FastClear */
         0x0, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */
         0x1, /* gcFEATURE_BIT_REG_Pipe3D */
@@ -8317,7 +8594,12 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_LDST_CONV_4ROUNDING_MODES */
         0x0, /* gcFEATURE_BIT_FULL_PACK_MODE_SUPPORT */
         0x0, /* gcFEATURE_BIT_DEPTH_FLOAT32_SUPPORT */
+        0x0, /* gcFEATURE_BIT_GPU_INSPECTOR_COUNTERS */
         0x0, /* gcFEATURE_BIT_FP32_TO_FP16_CONV_FIX */
+        0x0, /* gcFEATURE_BIT_IMGLD_COMP_COUNT_FIX */
+        0x0, /* gcFEATURE_BIT_IMGLD_WIDTH_LT16_FIX */
+        0x0, /* gcFEATURE_BIT_TX_FILTER_ROUND_FIX */
+        0x0, /* gcFEATURE_BIT_SH_FP32_FMA_SUPPORT */
         0x0, /* gcFEATURE_BIT_VG_TS_CULLING */
         0x0, /* gcFEATURE_BIT_VG_FP25 */
         0x0, /* gcFEATURE_BIT_VG_AYUV_INPUT_OUTPUT */
@@ -8424,6 +8706,9 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_PRELU_LEAKLY_RELU_CLAMP */
         0x0, /* gcFEATURE_BIT_TPLITE_BFLOAT16 */
         0x0, /* gcFEATURE_BIT_PREPROCESS_IMG_BUF_640BYTE_LIMIT */
+        0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP16 */
+        0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_BF16 */
+        0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP32 */
         0x0, /* gcFEATURE_BIT_TP_KERNEL_1BYTE_ALGIN */
         0x0, /* gcFEATURE_BIT_BFLOAT_COEF_COMPRESSION_ZERO_COEFBIT14_INVERSE */
         0x0, /* gcFEATURE_BIT_NN_COMPRESSION_BYPASSS */
@@ -8450,6 +8735,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         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_TP_REMOVE_FC */
+        0x0, /* gcFEATURE_BIT_VIP_REMOVE_MMU */
         0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */
         0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */
         0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */
@@ -8510,14 +8797,27 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_NN_WASTE_COEF_READ_WRITE_BANDWIDTH_128BYTE_VIPSRAM_IN_FULL_PATIAL_CACHE_MODE_FIX */
         0x0, /* gcFEATURE_BIT_NN_IN_TILE_DATA_IS_ALL_PAD_FIX */
         0x0, /* gcFEATURE_BIT_NN_TP_INSTR_COMPLETE_IN_SAME_CYCLE_WITH_WAIT_EVENT_FIX */
+        0x0, /* gcFEATURE_BIT_CORE_IMAGE_TRANSER_NOT_EFFICIENT_BETWEEN_PARTITION_FIX */
         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 */
         0x1, /* gcFEATURE_BIT_BURST_COLLECT_CONSUMES_MC_DATA_WIDTH_PER_CYCLE_FIX */
-        0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_BUG_FIX */
-        0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_BUG_FIX */
+        0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_FIX */
+        0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_FIX */
+        0x0, /* gcFEATURE_BIT_NN_2ND_IMG_BASE_ADDR_FIX */
+        0x0, /* gcFEATURE_BIT_NN_TP_SYSTEM_FIX */
+        0x0, /* gcFEATURE_BIT_NN_INTILE_YSIZE_128_LIMIT_FIX */
+        0x0, /* gcFEATURE_BIT_SH_CLOCK_GATOR_IDLE_CONDITON_FIX */
+        0x0, /* gcFEATURE_BIT_NN_BURST_COLLECTER_LAST_FLAG_FIX */
+        0x0, /* gcFEATURE_BIT_NN_2ND_IMG_SMALL_3D_TILE_FIX */
+        0x0, /* gcFEATURE_BIT_NN_TILE_YSIZE_127_LIMITATION_FIX */
+        0x0, /* gcFEATURE_BIT_NN_CONV_1D_16BIT_FORMAT_INTILE_SIZE_LIMITATION_FIX */
+        0x0, /* gcFEATURE_BIT_NN_VIPSRAM_DOUBLE_BUFFER_FIX */
+        0x0, /* gcFEATURE_BIT_NN_JD_DIRECT_MODE_FIX */
+        0x0, /* gcFEATURE_BIT_NN_KERNEL_DIRECT_WRONG_PUSH_FIX */
+        0x0, /* gcFEATURE_BIT_HI_DEFAULT_ENABLE_REORDER_FIX */
         0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */
         0x0, /* gcFEATURE_BIT_NN_FP16_ALU */
         0x0, /* gcFEATURE_BIT_NN_INT16_ALU */
@@ -8577,6 +8877,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_VALUE_G2D_DEC400_MINOR */
         0x0, /* gcFEATURE_VALUE_NNMadPerCore */
         0x0, /* gcFEATURE_VALUE_NNCoreCount */
+        0x0, /* gcFEATURE_VALUE_NN_ACTIVE_CORE_COUNT */
         0x0, /* gcFEATURE_VALUE_NNCoreCount_INT8 */
         0x0, /* gcFEATURE_VALUE_NNCoreCount_INT16 */
         0x0, /* gcFEATURE_VALUE_NNCoreCount_FLOAT16 */
@@ -8622,6 +8923,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_VALUE_MAX_TILE_X_SIZE */
         0x0, /* gcFEATURE_VALUE_NN_CLUSTER_NUM_FOR_POWER_CONTROL */
         0x0, /* gcFEATURE_VALUE_NN_IN_LINES_PER_CYCLE */
+        0x0, /* gcFEATURE_VALUE_VIP_CLUSTER_COUNT */
         0x1, /* gcFEATURE_BIT_REG_FastClear */
         0x0, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */
         0x1, /* gcFEATURE_BIT_REG_Pipe3D */
@@ -9023,7 +9325,12 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_LDST_CONV_4ROUNDING_MODES */
         0x0, /* gcFEATURE_BIT_FULL_PACK_MODE_SUPPORT */
         0x0, /* gcFEATURE_BIT_DEPTH_FLOAT32_SUPPORT */
+        0x0, /* gcFEATURE_BIT_GPU_INSPECTOR_COUNTERS */
         0x0, /* gcFEATURE_BIT_FP32_TO_FP16_CONV_FIX */
+        0x0, /* gcFEATURE_BIT_IMGLD_COMP_COUNT_FIX */
+        0x0, /* gcFEATURE_BIT_IMGLD_WIDTH_LT16_FIX */
+        0x0, /* gcFEATURE_BIT_TX_FILTER_ROUND_FIX */
+        0x0, /* gcFEATURE_BIT_SH_FP32_FMA_SUPPORT */
         0x0, /* gcFEATURE_BIT_VG_TS_CULLING */
         0x0, /* gcFEATURE_BIT_VG_FP25 */
         0x0, /* gcFEATURE_BIT_VG_AYUV_INPUT_OUTPUT */
@@ -9130,6 +9437,9 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_PRELU_LEAKLY_RELU_CLAMP */
         0x0, /* gcFEATURE_BIT_TPLITE_BFLOAT16 */
         0x0, /* gcFEATURE_BIT_PREPROCESS_IMG_BUF_640BYTE_LIMIT */
+        0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP16 */
+        0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_BF16 */
+        0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP32 */
         0x0, /* gcFEATURE_BIT_TP_KERNEL_1BYTE_ALGIN */
         0x0, /* gcFEATURE_BIT_BFLOAT_COEF_COMPRESSION_ZERO_COEFBIT14_INVERSE */
         0x0, /* gcFEATURE_BIT_NN_COMPRESSION_BYPASSS */
@@ -9156,6 +9466,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         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_TP_REMOVE_FC */
+        0x0, /* gcFEATURE_BIT_VIP_REMOVE_MMU */
         0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */
         0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */
         0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */
@@ -9216,14 +9528,27 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_NN_WASTE_COEF_READ_WRITE_BANDWIDTH_128BYTE_VIPSRAM_IN_FULL_PATIAL_CACHE_MODE_FIX */
         0x0, /* gcFEATURE_BIT_NN_IN_TILE_DATA_IS_ALL_PAD_FIX */
         0x0, /* gcFEATURE_BIT_NN_TP_INSTR_COMPLETE_IN_SAME_CYCLE_WITH_WAIT_EVENT_FIX */
+        0x0, /* gcFEATURE_BIT_CORE_IMAGE_TRANSER_NOT_EFFICIENT_BETWEEN_PARTITION_FIX */
         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 */
         0x1, /* gcFEATURE_BIT_BURST_COLLECT_CONSUMES_MC_DATA_WIDTH_PER_CYCLE_FIX */
-        0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_BUG_FIX */
-        0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_BUG_FIX */
+        0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_FIX */
+        0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_FIX */
+        0x0, /* gcFEATURE_BIT_NN_2ND_IMG_BASE_ADDR_FIX */
+        0x0, /* gcFEATURE_BIT_NN_TP_SYSTEM_FIX */
+        0x0, /* gcFEATURE_BIT_NN_INTILE_YSIZE_128_LIMIT_FIX */
+        0x0, /* gcFEATURE_BIT_SH_CLOCK_GATOR_IDLE_CONDITON_FIX */
+        0x0, /* gcFEATURE_BIT_NN_BURST_COLLECTER_LAST_FLAG_FIX */
+        0x0, /* gcFEATURE_BIT_NN_2ND_IMG_SMALL_3D_TILE_FIX */
+        0x0, /* gcFEATURE_BIT_NN_TILE_YSIZE_127_LIMITATION_FIX */
+        0x0, /* gcFEATURE_BIT_NN_CONV_1D_16BIT_FORMAT_INTILE_SIZE_LIMITATION_FIX */
+        0x0, /* gcFEATURE_BIT_NN_VIPSRAM_DOUBLE_BUFFER_FIX */
+        0x0, /* gcFEATURE_BIT_NN_JD_DIRECT_MODE_FIX */
+        0x0, /* gcFEATURE_BIT_NN_KERNEL_DIRECT_WRONG_PUSH_FIX */
+        0x0, /* gcFEATURE_BIT_HI_DEFAULT_ENABLE_REORDER_FIX */
         0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */
         0x0, /* gcFEATURE_BIT_NN_FP16_ALU */
         0x0, /* gcFEATURE_BIT_NN_INT16_ALU */
@@ -9283,6 +9608,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_VALUE_G2D_DEC400_MINOR */
         0x0, /* gcFEATURE_VALUE_NNMadPerCore */
         0x0, /* gcFEATURE_VALUE_NNCoreCount */
+        0x0, /* gcFEATURE_VALUE_NN_ACTIVE_CORE_COUNT */
         0x0, /* gcFEATURE_VALUE_NNCoreCount_INT8 */
         0x0, /* gcFEATURE_VALUE_NNCoreCount_INT16 */
         0x0, /* gcFEATURE_VALUE_NNCoreCount_FLOAT16 */
@@ -9328,6 +9654,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_VALUE_MAX_TILE_X_SIZE */
         0x0, /* gcFEATURE_VALUE_NN_CLUSTER_NUM_FOR_POWER_CONTROL */
         0x0, /* gcFEATURE_VALUE_NN_IN_LINES_PER_CYCLE */
+        0x0, /* gcFEATURE_VALUE_VIP_CLUSTER_COUNT */
         0x1, /* gcFEATURE_BIT_REG_FastClear */
         0x0, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */
         0x1, /* gcFEATURE_BIT_REG_Pipe3D */
@@ -9729,7 +10056,12 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_LDST_CONV_4ROUNDING_MODES */
         0x0, /* gcFEATURE_BIT_FULL_PACK_MODE_SUPPORT */
         0x0, /* gcFEATURE_BIT_DEPTH_FLOAT32_SUPPORT */
+        0x0, /* gcFEATURE_BIT_GPU_INSPECTOR_COUNTERS */
         0x0, /* gcFEATURE_BIT_FP32_TO_FP16_CONV_FIX */
+        0x0, /* gcFEATURE_BIT_IMGLD_COMP_COUNT_FIX */
+        0x0, /* gcFEATURE_BIT_IMGLD_WIDTH_LT16_FIX */
+        0x0, /* gcFEATURE_BIT_TX_FILTER_ROUND_FIX */
+        0x0, /* gcFEATURE_BIT_SH_FP32_FMA_SUPPORT */
         0x0, /* gcFEATURE_BIT_VG_TS_CULLING */
         0x0, /* gcFEATURE_BIT_VG_FP25 */
         0x0, /* gcFEATURE_BIT_VG_AYUV_INPUT_OUTPUT */
@@ -9836,6 +10168,9 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_PRELU_LEAKLY_RELU_CLAMP */
         0x0, /* gcFEATURE_BIT_TPLITE_BFLOAT16 */
         0x0, /* gcFEATURE_BIT_PREPROCESS_IMG_BUF_640BYTE_LIMIT */
+        0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP16 */
+        0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_BF16 */
+        0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP32 */
         0x0, /* gcFEATURE_BIT_TP_KERNEL_1BYTE_ALGIN */
         0x0, /* gcFEATURE_BIT_BFLOAT_COEF_COMPRESSION_ZERO_COEFBIT14_INVERSE */
         0x0, /* gcFEATURE_BIT_NN_COMPRESSION_BYPASSS */
@@ -9862,6 +10197,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         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_TP_REMOVE_FC */
+        0x0, /* gcFEATURE_BIT_VIP_REMOVE_MMU */
         0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */
         0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */
         0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */
@@ -9922,14 +10259,27 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_NN_WASTE_COEF_READ_WRITE_BANDWIDTH_128BYTE_VIPSRAM_IN_FULL_PATIAL_CACHE_MODE_FIX */
         0x0, /* gcFEATURE_BIT_NN_IN_TILE_DATA_IS_ALL_PAD_FIX */
         0x0, /* gcFEATURE_BIT_NN_TP_INSTR_COMPLETE_IN_SAME_CYCLE_WITH_WAIT_EVENT_FIX */
+        0x0, /* gcFEATURE_BIT_CORE_IMAGE_TRANSER_NOT_EFFICIENT_BETWEEN_PARTITION_FIX */
         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 */
         0x1, /* gcFEATURE_BIT_BURST_COLLECT_CONSUMES_MC_DATA_WIDTH_PER_CYCLE_FIX */
-        0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_BUG_FIX */
-        0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_BUG_FIX */
+        0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_FIX */
+        0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_FIX */
+        0x0, /* gcFEATURE_BIT_NN_2ND_IMG_BASE_ADDR_FIX */
+        0x0, /* gcFEATURE_BIT_NN_TP_SYSTEM_FIX */
+        0x0, /* gcFEATURE_BIT_NN_INTILE_YSIZE_128_LIMIT_FIX */
+        0x0, /* gcFEATURE_BIT_SH_CLOCK_GATOR_IDLE_CONDITON_FIX */
+        0x0, /* gcFEATURE_BIT_NN_BURST_COLLECTER_LAST_FLAG_FIX */
+        0x0, /* gcFEATURE_BIT_NN_2ND_IMG_SMALL_3D_TILE_FIX */
+        0x0, /* gcFEATURE_BIT_NN_TILE_YSIZE_127_LIMITATION_FIX */
+        0x0, /* gcFEATURE_BIT_NN_CONV_1D_16BIT_FORMAT_INTILE_SIZE_LIMITATION_FIX */
+        0x0, /* gcFEATURE_BIT_NN_VIPSRAM_DOUBLE_BUFFER_FIX */
+        0x0, /* gcFEATURE_BIT_NN_JD_DIRECT_MODE_FIX */
+        0x0, /* gcFEATURE_BIT_NN_KERNEL_DIRECT_WRONG_PUSH_FIX */
+        0x0, /* gcFEATURE_BIT_HI_DEFAULT_ENABLE_REORDER_FIX */
         0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */
         0x0, /* gcFEATURE_BIT_NN_FP16_ALU */
         0x0, /* gcFEATURE_BIT_NN_INT16_ALU */
@@ -9989,6 +10339,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_VALUE_G2D_DEC400_MINOR */
         0x0, /* gcFEATURE_VALUE_NNMadPerCore */
         0x0, /* gcFEATURE_VALUE_NNCoreCount */
+        0x0, /* gcFEATURE_VALUE_NN_ACTIVE_CORE_COUNT */
         0x0, /* gcFEATURE_VALUE_NNCoreCount_INT8 */
         0x0, /* gcFEATURE_VALUE_NNCoreCount_INT16 */
         0x0, /* gcFEATURE_VALUE_NNCoreCount_FLOAT16 */
@@ -10034,6 +10385,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_VALUE_MAX_TILE_X_SIZE */
         0x0, /* gcFEATURE_VALUE_NN_CLUSTER_NUM_FOR_POWER_CONTROL */
         0x0, /* gcFEATURE_VALUE_NN_IN_LINES_PER_CYCLE */
+        0x0, /* gcFEATURE_VALUE_VIP_CLUSTER_COUNT */
         0x1, /* gcFEATURE_BIT_REG_FastClear */
         0x0, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */
         0x1, /* gcFEATURE_BIT_REG_Pipe3D */
@@ -10435,7 +10787,12 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_LDST_CONV_4ROUNDING_MODES */
         0x0, /* gcFEATURE_BIT_FULL_PACK_MODE_SUPPORT */
         0x0, /* gcFEATURE_BIT_DEPTH_FLOAT32_SUPPORT */
+        0x0, /* gcFEATURE_BIT_GPU_INSPECTOR_COUNTERS */
         0x0, /* gcFEATURE_BIT_FP32_TO_FP16_CONV_FIX */
+        0x0, /* gcFEATURE_BIT_IMGLD_COMP_COUNT_FIX */
+        0x0, /* gcFEATURE_BIT_IMGLD_WIDTH_LT16_FIX */
+        0x0, /* gcFEATURE_BIT_TX_FILTER_ROUND_FIX */
+        0x0, /* gcFEATURE_BIT_SH_FP32_FMA_SUPPORT */
         0x0, /* gcFEATURE_BIT_VG_TS_CULLING */
         0x0, /* gcFEATURE_BIT_VG_FP25 */
         0x0, /* gcFEATURE_BIT_VG_AYUV_INPUT_OUTPUT */
@@ -10542,6 +10899,9 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_PRELU_LEAKLY_RELU_CLAMP */
         0x0, /* gcFEATURE_BIT_TPLITE_BFLOAT16 */
         0x0, /* gcFEATURE_BIT_PREPROCESS_IMG_BUF_640BYTE_LIMIT */
+        0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP16 */
+        0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_BF16 */
+        0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP32 */
         0x0, /* gcFEATURE_BIT_TP_KERNEL_1BYTE_ALGIN */
         0x0, /* gcFEATURE_BIT_BFLOAT_COEF_COMPRESSION_ZERO_COEFBIT14_INVERSE */
         0x0, /* gcFEATURE_BIT_NN_COMPRESSION_BYPASSS */
@@ -10568,6 +10928,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         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_TP_REMOVE_FC */
+        0x0, /* gcFEATURE_BIT_VIP_REMOVE_MMU */
         0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */
         0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */
         0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */
@@ -10628,14 +10990,27 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_NN_WASTE_COEF_READ_WRITE_BANDWIDTH_128BYTE_VIPSRAM_IN_FULL_PATIAL_CACHE_MODE_FIX */
         0x0, /* gcFEATURE_BIT_NN_IN_TILE_DATA_IS_ALL_PAD_FIX */
         0x0, /* gcFEATURE_BIT_NN_TP_INSTR_COMPLETE_IN_SAME_CYCLE_WITH_WAIT_EVENT_FIX */
+        0x0, /* gcFEATURE_BIT_CORE_IMAGE_TRANSER_NOT_EFFICIENT_BETWEEN_PARTITION_FIX */
         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 */
         0x1, /* gcFEATURE_BIT_BURST_COLLECT_CONSUMES_MC_DATA_WIDTH_PER_CYCLE_FIX */
-        0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_BUG_FIX */
-        0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_BUG_FIX */
+        0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_FIX */
+        0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_FIX */
+        0x0, /* gcFEATURE_BIT_NN_2ND_IMG_BASE_ADDR_FIX */
+        0x0, /* gcFEATURE_BIT_NN_TP_SYSTEM_FIX */
+        0x0, /* gcFEATURE_BIT_NN_INTILE_YSIZE_128_LIMIT_FIX */
+        0x0, /* gcFEATURE_BIT_SH_CLOCK_GATOR_IDLE_CONDITON_FIX */
+        0x0, /* gcFEATURE_BIT_NN_BURST_COLLECTER_LAST_FLAG_FIX */
+        0x0, /* gcFEATURE_BIT_NN_2ND_IMG_SMALL_3D_TILE_FIX */
+        0x0, /* gcFEATURE_BIT_NN_TILE_YSIZE_127_LIMITATION_FIX */
+        0x0, /* gcFEATURE_BIT_NN_CONV_1D_16BIT_FORMAT_INTILE_SIZE_LIMITATION_FIX */
+        0x0, /* gcFEATURE_BIT_NN_VIPSRAM_DOUBLE_BUFFER_FIX */
+        0x0, /* gcFEATURE_BIT_NN_JD_DIRECT_MODE_FIX */
+        0x0, /* gcFEATURE_BIT_NN_KERNEL_DIRECT_WRONG_PUSH_FIX */
+        0x0, /* gcFEATURE_BIT_HI_DEFAULT_ENABLE_REORDER_FIX */
         0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */
         0x0, /* gcFEATURE_BIT_NN_FP16_ALU */
         0x0, /* gcFEATURE_BIT_NN_INT16_ALU */
@@ -10695,6 +11070,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_VALUE_G2D_DEC400_MINOR */
         0x0, /* gcFEATURE_VALUE_NNMadPerCore */
         0x0, /* gcFEATURE_VALUE_NNCoreCount */
+        0x0, /* gcFEATURE_VALUE_NN_ACTIVE_CORE_COUNT */
         0x0, /* gcFEATURE_VALUE_NNCoreCount_INT8 */
         0x0, /* gcFEATURE_VALUE_NNCoreCount_INT16 */
         0x0, /* gcFEATURE_VALUE_NNCoreCount_FLOAT16 */
@@ -10740,6 +11116,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_VALUE_MAX_TILE_X_SIZE */
         0x0, /* gcFEATURE_VALUE_NN_CLUSTER_NUM_FOR_POWER_CONTROL */
         0x0, /* gcFEATURE_VALUE_NN_IN_LINES_PER_CYCLE */
+        0x0, /* gcFEATURE_VALUE_VIP_CLUSTER_COUNT */
         0x1, /* gcFEATURE_BIT_REG_FastClear */
         0x0, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */
         0x1, /* gcFEATURE_BIT_REG_Pipe3D */
@@ -11141,7 +11518,12 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_LDST_CONV_4ROUNDING_MODES */
         0x0, /* gcFEATURE_BIT_FULL_PACK_MODE_SUPPORT */
         0x0, /* gcFEATURE_BIT_DEPTH_FLOAT32_SUPPORT */
+        0x0, /* gcFEATURE_BIT_GPU_INSPECTOR_COUNTERS */
         0x0, /* gcFEATURE_BIT_FP32_TO_FP16_CONV_FIX */
+        0x0, /* gcFEATURE_BIT_IMGLD_COMP_COUNT_FIX */
+        0x0, /* gcFEATURE_BIT_IMGLD_WIDTH_LT16_FIX */
+        0x0, /* gcFEATURE_BIT_TX_FILTER_ROUND_FIX */
+        0x0, /* gcFEATURE_BIT_SH_FP32_FMA_SUPPORT */
         0x0, /* gcFEATURE_BIT_VG_TS_CULLING */
         0x0, /* gcFEATURE_BIT_VG_FP25 */
         0x0, /* gcFEATURE_BIT_VG_AYUV_INPUT_OUTPUT */
@@ -11248,6 +11630,9 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_PRELU_LEAKLY_RELU_CLAMP */
         0x0, /* gcFEATURE_BIT_TPLITE_BFLOAT16 */
         0x0, /* gcFEATURE_BIT_PREPROCESS_IMG_BUF_640BYTE_LIMIT */
+        0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP16 */
+        0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_BF16 */
+        0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP32 */
         0x0, /* gcFEATURE_BIT_TP_KERNEL_1BYTE_ALGIN */
         0x0, /* gcFEATURE_BIT_BFLOAT_COEF_COMPRESSION_ZERO_COEFBIT14_INVERSE */
         0x0, /* gcFEATURE_BIT_NN_COMPRESSION_BYPASSS */
@@ -11274,6 +11659,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         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_TP_REMOVE_FC */
+        0x0, /* gcFEATURE_BIT_VIP_REMOVE_MMU */
         0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */
         0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */
         0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */
@@ -11334,14 +11721,27 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_NN_WASTE_COEF_READ_WRITE_BANDWIDTH_128BYTE_VIPSRAM_IN_FULL_PATIAL_CACHE_MODE_FIX */
         0x0, /* gcFEATURE_BIT_NN_IN_TILE_DATA_IS_ALL_PAD_FIX */
         0x0, /* gcFEATURE_BIT_NN_TP_INSTR_COMPLETE_IN_SAME_CYCLE_WITH_WAIT_EVENT_FIX */
+        0x0, /* gcFEATURE_BIT_CORE_IMAGE_TRANSER_NOT_EFFICIENT_BETWEEN_PARTITION_FIX */
         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 */
         0x1, /* gcFEATURE_BIT_BURST_COLLECT_CONSUMES_MC_DATA_WIDTH_PER_CYCLE_FIX */
-        0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_BUG_FIX */
-        0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_BUG_FIX */
+        0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_FIX */
+        0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_FIX */
+        0x0, /* gcFEATURE_BIT_NN_2ND_IMG_BASE_ADDR_FIX */
+        0x0, /* gcFEATURE_BIT_NN_TP_SYSTEM_FIX */
+        0x0, /* gcFEATURE_BIT_NN_INTILE_YSIZE_128_LIMIT_FIX */
+        0x0, /* gcFEATURE_BIT_SH_CLOCK_GATOR_IDLE_CONDITON_FIX */
+        0x0, /* gcFEATURE_BIT_NN_BURST_COLLECTER_LAST_FLAG_FIX */
+        0x0, /* gcFEATURE_BIT_NN_2ND_IMG_SMALL_3D_TILE_FIX */
+        0x0, /* gcFEATURE_BIT_NN_TILE_YSIZE_127_LIMITATION_FIX */
+        0x0, /* gcFEATURE_BIT_NN_CONV_1D_16BIT_FORMAT_INTILE_SIZE_LIMITATION_FIX */
+        0x0, /* gcFEATURE_BIT_NN_VIPSRAM_DOUBLE_BUFFER_FIX */
+        0x0, /* gcFEATURE_BIT_NN_JD_DIRECT_MODE_FIX */
+        0x0, /* gcFEATURE_BIT_NN_KERNEL_DIRECT_WRONG_PUSH_FIX */
+        0x0, /* gcFEATURE_BIT_HI_DEFAULT_ENABLE_REORDER_FIX */
         0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */
         0x0, /* gcFEATURE_BIT_NN_FP16_ALU */
         0x0, /* gcFEATURE_BIT_NN_INT16_ALU */
@@ -11401,6 +11801,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_VALUE_G2D_DEC400_MINOR */
         0x0, /* gcFEATURE_VALUE_NNMadPerCore */
         0x0, /* gcFEATURE_VALUE_NNCoreCount */
+        0x0, /* gcFEATURE_VALUE_NN_ACTIVE_CORE_COUNT */
         0x0, /* gcFEATURE_VALUE_NNCoreCount_INT8 */
         0x0, /* gcFEATURE_VALUE_NNCoreCount_INT16 */
         0x0, /* gcFEATURE_VALUE_NNCoreCount_FLOAT16 */
@@ -11446,6 +11847,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_VALUE_MAX_TILE_X_SIZE */
         0x0, /* gcFEATURE_VALUE_NN_CLUSTER_NUM_FOR_POWER_CONTROL */
         0x0, /* gcFEATURE_VALUE_NN_IN_LINES_PER_CYCLE */
+        0x0, /* gcFEATURE_VALUE_VIP_CLUSTER_COUNT */
         0x1, /* gcFEATURE_BIT_REG_FastClear */
         0x0, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */
         0x1, /* gcFEATURE_BIT_REG_Pipe3D */
@@ -11847,7 +12249,12 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_LDST_CONV_4ROUNDING_MODES */
         0x0, /* gcFEATURE_BIT_FULL_PACK_MODE_SUPPORT */
         0x0, /* gcFEATURE_BIT_DEPTH_FLOAT32_SUPPORT */
+        0x0, /* gcFEATURE_BIT_GPU_INSPECTOR_COUNTERS */
         0x0, /* gcFEATURE_BIT_FP32_TO_FP16_CONV_FIX */
+        0x0, /* gcFEATURE_BIT_IMGLD_COMP_COUNT_FIX */
+        0x0, /* gcFEATURE_BIT_IMGLD_WIDTH_LT16_FIX */
+        0x0, /* gcFEATURE_BIT_TX_FILTER_ROUND_FIX */
+        0x0, /* gcFEATURE_BIT_SH_FP32_FMA_SUPPORT */
         0x0, /* gcFEATURE_BIT_VG_TS_CULLING */
         0x0, /* gcFEATURE_BIT_VG_FP25 */
         0x0, /* gcFEATURE_BIT_VG_AYUV_INPUT_OUTPUT */
@@ -11954,6 +12361,9 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_PRELU_LEAKLY_RELU_CLAMP */
         0x0, /* gcFEATURE_BIT_TPLITE_BFLOAT16 */
         0x0, /* gcFEATURE_BIT_PREPROCESS_IMG_BUF_640BYTE_LIMIT */
+        0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP16 */
+        0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_BF16 */
+        0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP32 */
         0x0, /* gcFEATURE_BIT_TP_KERNEL_1BYTE_ALGIN */
         0x0, /* gcFEATURE_BIT_BFLOAT_COEF_COMPRESSION_ZERO_COEFBIT14_INVERSE */
         0x0, /* gcFEATURE_BIT_NN_COMPRESSION_BYPASSS */
@@ -11980,6 +12390,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         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_TP_REMOVE_FC */
+        0x0, /* gcFEATURE_BIT_VIP_REMOVE_MMU */
         0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */
         0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */
         0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */
@@ -12040,14 +12452,27 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_NN_WASTE_COEF_READ_WRITE_BANDWIDTH_128BYTE_VIPSRAM_IN_FULL_PATIAL_CACHE_MODE_FIX */
         0x0, /* gcFEATURE_BIT_NN_IN_TILE_DATA_IS_ALL_PAD_FIX */
         0x0, /* gcFEATURE_BIT_NN_TP_INSTR_COMPLETE_IN_SAME_CYCLE_WITH_WAIT_EVENT_FIX */
+        0x0, /* gcFEATURE_BIT_CORE_IMAGE_TRANSER_NOT_EFFICIENT_BETWEEN_PARTITION_FIX */
         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 */
         0x1, /* gcFEATURE_BIT_BURST_COLLECT_CONSUMES_MC_DATA_WIDTH_PER_CYCLE_FIX */
-        0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_BUG_FIX */
-        0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_BUG_FIX */
+        0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_FIX */
+        0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_FIX */
+        0x0, /* gcFEATURE_BIT_NN_2ND_IMG_BASE_ADDR_FIX */
+        0x0, /* gcFEATURE_BIT_NN_TP_SYSTEM_FIX */
+        0x0, /* gcFEATURE_BIT_NN_INTILE_YSIZE_128_LIMIT_FIX */
+        0x0, /* gcFEATURE_BIT_SH_CLOCK_GATOR_IDLE_CONDITON_FIX */
+        0x0, /* gcFEATURE_BIT_NN_BURST_COLLECTER_LAST_FLAG_FIX */
+        0x0, /* gcFEATURE_BIT_NN_2ND_IMG_SMALL_3D_TILE_FIX */
+        0x0, /* gcFEATURE_BIT_NN_TILE_YSIZE_127_LIMITATION_FIX */
+        0x0, /* gcFEATURE_BIT_NN_CONV_1D_16BIT_FORMAT_INTILE_SIZE_LIMITATION_FIX */
+        0x0, /* gcFEATURE_BIT_NN_VIPSRAM_DOUBLE_BUFFER_FIX */
+        0x0, /* gcFEATURE_BIT_NN_JD_DIRECT_MODE_FIX */
+        0x0, /* gcFEATURE_BIT_NN_KERNEL_DIRECT_WRONG_PUSH_FIX */
+        0x0, /* gcFEATURE_BIT_HI_DEFAULT_ENABLE_REORDER_FIX */
         0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */
         0x0, /* gcFEATURE_BIT_NN_FP16_ALU */
         0x0, /* gcFEATURE_BIT_NN_INT16_ALU */
@@ -12107,6 +12532,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_VALUE_G2D_DEC400_MINOR */
         0x0, /* gcFEATURE_VALUE_NNMadPerCore */
         0x0, /* gcFEATURE_VALUE_NNCoreCount */
+        0x0, /* gcFEATURE_VALUE_NN_ACTIVE_CORE_COUNT */
         0x0, /* gcFEATURE_VALUE_NNCoreCount_INT8 */
         0x0, /* gcFEATURE_VALUE_NNCoreCount_INT16 */
         0x0, /* gcFEATURE_VALUE_NNCoreCount_FLOAT16 */
@@ -12152,6 +12578,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_VALUE_MAX_TILE_X_SIZE */
         0x0, /* gcFEATURE_VALUE_NN_CLUSTER_NUM_FOR_POWER_CONTROL */
         0x0, /* gcFEATURE_VALUE_NN_IN_LINES_PER_CYCLE */
+        0x0, /* gcFEATURE_VALUE_VIP_CLUSTER_COUNT */
         0x1, /* gcFEATURE_BIT_REG_FastClear */
         0x0, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */
         0x1, /* gcFEATURE_BIT_REG_Pipe3D */
@@ -12553,7 +12980,12 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_LDST_CONV_4ROUNDING_MODES */
         0x0, /* gcFEATURE_BIT_FULL_PACK_MODE_SUPPORT */
         0x0, /* gcFEATURE_BIT_DEPTH_FLOAT32_SUPPORT */
+        0x0, /* gcFEATURE_BIT_GPU_INSPECTOR_COUNTERS */
         0x0, /* gcFEATURE_BIT_FP32_TO_FP16_CONV_FIX */
+        0x0, /* gcFEATURE_BIT_IMGLD_COMP_COUNT_FIX */
+        0x0, /* gcFEATURE_BIT_IMGLD_WIDTH_LT16_FIX */
+        0x0, /* gcFEATURE_BIT_TX_FILTER_ROUND_FIX */
+        0x0, /* gcFEATURE_BIT_SH_FP32_FMA_SUPPORT */
         0x0, /* gcFEATURE_BIT_VG_TS_CULLING */
         0x0, /* gcFEATURE_BIT_VG_FP25 */
         0x0, /* gcFEATURE_BIT_VG_AYUV_INPUT_OUTPUT */
@@ -12660,6 +13092,9 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_PRELU_LEAKLY_RELU_CLAMP */
         0x0, /* gcFEATURE_BIT_TPLITE_BFLOAT16 */
         0x0, /* gcFEATURE_BIT_PREPROCESS_IMG_BUF_640BYTE_LIMIT */
+        0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP16 */
+        0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_BF16 */
+        0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP32 */
         0x0, /* gcFEATURE_BIT_TP_KERNEL_1BYTE_ALGIN */
         0x0, /* gcFEATURE_BIT_BFLOAT_COEF_COMPRESSION_ZERO_COEFBIT14_INVERSE */
         0x0, /* gcFEATURE_BIT_NN_COMPRESSION_BYPASSS */
@@ -12686,6 +13121,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         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_TP_REMOVE_FC */
+        0x0, /* gcFEATURE_BIT_VIP_REMOVE_MMU */
         0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */
         0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */
         0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */
@@ -12746,14 +13183,27 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_NN_WASTE_COEF_READ_WRITE_BANDWIDTH_128BYTE_VIPSRAM_IN_FULL_PATIAL_CACHE_MODE_FIX */
         0x0, /* gcFEATURE_BIT_NN_IN_TILE_DATA_IS_ALL_PAD_FIX */
         0x0, /* gcFEATURE_BIT_NN_TP_INSTR_COMPLETE_IN_SAME_CYCLE_WITH_WAIT_EVENT_FIX */
+        0x0, /* gcFEATURE_BIT_CORE_IMAGE_TRANSER_NOT_EFFICIENT_BETWEEN_PARTITION_FIX */
         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 */
         0x1, /* gcFEATURE_BIT_BURST_COLLECT_CONSUMES_MC_DATA_WIDTH_PER_CYCLE_FIX */
-        0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_BUG_FIX */
-        0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_BUG_FIX */
+        0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_FIX */
+        0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_FIX */
+        0x0, /* gcFEATURE_BIT_NN_2ND_IMG_BASE_ADDR_FIX */
+        0x0, /* gcFEATURE_BIT_NN_TP_SYSTEM_FIX */
+        0x0, /* gcFEATURE_BIT_NN_INTILE_YSIZE_128_LIMIT_FIX */
+        0x0, /* gcFEATURE_BIT_SH_CLOCK_GATOR_IDLE_CONDITON_FIX */
+        0x0, /* gcFEATURE_BIT_NN_BURST_COLLECTER_LAST_FLAG_FIX */
+        0x0, /* gcFEATURE_BIT_NN_2ND_IMG_SMALL_3D_TILE_FIX */
+        0x0, /* gcFEATURE_BIT_NN_TILE_YSIZE_127_LIMITATION_FIX */
+        0x0, /* gcFEATURE_BIT_NN_CONV_1D_16BIT_FORMAT_INTILE_SIZE_LIMITATION_FIX */
+        0x0, /* gcFEATURE_BIT_NN_VIPSRAM_DOUBLE_BUFFER_FIX */
+        0x0, /* gcFEATURE_BIT_NN_JD_DIRECT_MODE_FIX */
+        0x0, /* gcFEATURE_BIT_NN_KERNEL_DIRECT_WRONG_PUSH_FIX */
+        0x0, /* gcFEATURE_BIT_HI_DEFAULT_ENABLE_REORDER_FIX */
         0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */
         0x0, /* gcFEATURE_BIT_NN_FP16_ALU */
         0x0, /* gcFEATURE_BIT_NN_INT16_ALU */
@@ -12813,6 +13263,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_VALUE_G2D_DEC400_MINOR */
         0x0, /* gcFEATURE_VALUE_NNMadPerCore */
         0x0, /* gcFEATURE_VALUE_NNCoreCount */
+        0x0, /* gcFEATURE_VALUE_NN_ACTIVE_CORE_COUNT */
         0x0, /* gcFEATURE_VALUE_NNCoreCount_INT8 */
         0x0, /* gcFEATURE_VALUE_NNCoreCount_INT16 */
         0x0, /* gcFEATURE_VALUE_NNCoreCount_FLOAT16 */
@@ -12858,6 +13309,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_VALUE_MAX_TILE_X_SIZE */
         0x0, /* gcFEATURE_VALUE_NN_CLUSTER_NUM_FOR_POWER_CONTROL */
         0x0, /* gcFEATURE_VALUE_NN_IN_LINES_PER_CYCLE */
+        0x0, /* gcFEATURE_VALUE_VIP_CLUSTER_COUNT */
         0x1, /* gcFEATURE_BIT_REG_FastClear */
         0x0, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */
         0x1, /* gcFEATURE_BIT_REG_Pipe3D */
@@ -13259,7 +13711,12 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_LDST_CONV_4ROUNDING_MODES */
         0x0, /* gcFEATURE_BIT_FULL_PACK_MODE_SUPPORT */
         0x0, /* gcFEATURE_BIT_DEPTH_FLOAT32_SUPPORT */
+        0x0, /* gcFEATURE_BIT_GPU_INSPECTOR_COUNTERS */
         0x0, /* gcFEATURE_BIT_FP32_TO_FP16_CONV_FIX */
+        0x0, /* gcFEATURE_BIT_IMGLD_COMP_COUNT_FIX */
+        0x0, /* gcFEATURE_BIT_IMGLD_WIDTH_LT16_FIX */
+        0x0, /* gcFEATURE_BIT_TX_FILTER_ROUND_FIX */
+        0x0, /* gcFEATURE_BIT_SH_FP32_FMA_SUPPORT */
         0x0, /* gcFEATURE_BIT_VG_TS_CULLING */
         0x0, /* gcFEATURE_BIT_VG_FP25 */
         0x0, /* gcFEATURE_BIT_VG_AYUV_INPUT_OUTPUT */
@@ -13366,6 +13823,9 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_PRELU_LEAKLY_RELU_CLAMP */
         0x0, /* gcFEATURE_BIT_TPLITE_BFLOAT16 */
         0x0, /* gcFEATURE_BIT_PREPROCESS_IMG_BUF_640BYTE_LIMIT */
+        0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP16 */
+        0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_BF16 */
+        0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP32 */
         0x0, /* gcFEATURE_BIT_TP_KERNEL_1BYTE_ALGIN */
         0x0, /* gcFEATURE_BIT_BFLOAT_COEF_COMPRESSION_ZERO_COEFBIT14_INVERSE */
         0x0, /* gcFEATURE_BIT_NN_COMPRESSION_BYPASSS */
@@ -13392,6 +13852,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         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_TP_REMOVE_FC */
+        0x0, /* gcFEATURE_BIT_VIP_REMOVE_MMU */
         0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */
         0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */
         0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */
@@ -13452,14 +13914,27 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_NN_WASTE_COEF_READ_WRITE_BANDWIDTH_128BYTE_VIPSRAM_IN_FULL_PATIAL_CACHE_MODE_FIX */
         0x0, /* gcFEATURE_BIT_NN_IN_TILE_DATA_IS_ALL_PAD_FIX */
         0x0, /* gcFEATURE_BIT_NN_TP_INSTR_COMPLETE_IN_SAME_CYCLE_WITH_WAIT_EVENT_FIX */
+        0x0, /* gcFEATURE_BIT_CORE_IMAGE_TRANSER_NOT_EFFICIENT_BETWEEN_PARTITION_FIX */
         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 */
         0x1, /* gcFEATURE_BIT_BURST_COLLECT_CONSUMES_MC_DATA_WIDTH_PER_CYCLE_FIX */
-        0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_BUG_FIX */
-        0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_BUG_FIX */
+        0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_FIX */
+        0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_FIX */
+        0x0, /* gcFEATURE_BIT_NN_2ND_IMG_BASE_ADDR_FIX */
+        0x0, /* gcFEATURE_BIT_NN_TP_SYSTEM_FIX */
+        0x0, /* gcFEATURE_BIT_NN_INTILE_YSIZE_128_LIMIT_FIX */
+        0x0, /* gcFEATURE_BIT_SH_CLOCK_GATOR_IDLE_CONDITON_FIX */
+        0x0, /* gcFEATURE_BIT_NN_BURST_COLLECTER_LAST_FLAG_FIX */
+        0x0, /* gcFEATURE_BIT_NN_2ND_IMG_SMALL_3D_TILE_FIX */
+        0x0, /* gcFEATURE_BIT_NN_TILE_YSIZE_127_LIMITATION_FIX */
+        0x0, /* gcFEATURE_BIT_NN_CONV_1D_16BIT_FORMAT_INTILE_SIZE_LIMITATION_FIX */
+        0x0, /* gcFEATURE_BIT_NN_VIPSRAM_DOUBLE_BUFFER_FIX */
+        0x0, /* gcFEATURE_BIT_NN_JD_DIRECT_MODE_FIX */
+        0x0, /* gcFEATURE_BIT_NN_KERNEL_DIRECT_WRONG_PUSH_FIX */
+        0x0, /* gcFEATURE_BIT_HI_DEFAULT_ENABLE_REORDER_FIX */
         0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */
         0x0, /* gcFEATURE_BIT_NN_FP16_ALU */
         0x0, /* gcFEATURE_BIT_NN_INT16_ALU */
@@ -13519,6 +13994,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_VALUE_G2D_DEC400_MINOR */
         0x0, /* gcFEATURE_VALUE_NNMadPerCore */
         0x0, /* gcFEATURE_VALUE_NNCoreCount */
+        0x0, /* gcFEATURE_VALUE_NN_ACTIVE_CORE_COUNT */
         0x0, /* gcFEATURE_VALUE_NNCoreCount_INT8 */
         0x0, /* gcFEATURE_VALUE_NNCoreCount_INT16 */
         0x0, /* gcFEATURE_VALUE_NNCoreCount_FLOAT16 */
@@ -13564,6 +14040,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_VALUE_MAX_TILE_X_SIZE */
         0x0, /* gcFEATURE_VALUE_NN_CLUSTER_NUM_FOR_POWER_CONTROL */
         0x0, /* gcFEATURE_VALUE_NN_IN_LINES_PER_CYCLE */
+        0x0, /* gcFEATURE_VALUE_VIP_CLUSTER_COUNT */
         0x1, /* gcFEATURE_BIT_REG_FastClear */
         0x0, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */
         0x1, /* gcFEATURE_BIT_REG_Pipe3D */
@@ -13951,7 +14428,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         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 */
+        0x0, /* gcFEATURE_BIT_MSAA_FLOAT_64BIT */
         0x0, /* gcFEATURE_BIT_INDIRECT_COMPUTE_ZERODIM_FIX */
         0x0, /* gcFEATURE_BIT_Q_CHANNEL_SUPPORT */
         0x0, /* gcFEATURE_BIT_MMU_PAGE_DESCRIPTOR */
@@ -13965,7 +14442,12 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_LDST_CONV_4ROUNDING_MODES */
         0x0, /* gcFEATURE_BIT_FULL_PACK_MODE_SUPPORT */
         0x0, /* gcFEATURE_BIT_DEPTH_FLOAT32_SUPPORT */
+        0x0, /* gcFEATURE_BIT_GPU_INSPECTOR_COUNTERS */
         0x0, /* gcFEATURE_BIT_FP32_TO_FP16_CONV_FIX */
+        0x0, /* gcFEATURE_BIT_IMGLD_COMP_COUNT_FIX */
+        0x0, /* gcFEATURE_BIT_IMGLD_WIDTH_LT16_FIX */
+        0x0, /* gcFEATURE_BIT_TX_FILTER_ROUND_FIX */
+        0x0, /* gcFEATURE_BIT_SH_FP32_FMA_SUPPORT */
         0x0, /* gcFEATURE_BIT_VG_TS_CULLING */
         0x0, /* gcFEATURE_BIT_VG_FP25 */
         0x0, /* gcFEATURE_BIT_VG_AYUV_INPUT_OUTPUT */
@@ -14072,6 +14554,9 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_PRELU_LEAKLY_RELU_CLAMP */
         0x0, /* gcFEATURE_BIT_TPLITE_BFLOAT16 */
         0x0, /* gcFEATURE_BIT_PREPROCESS_IMG_BUF_640BYTE_LIMIT */
+        0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP16 */
+        0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_BF16 */
+        0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP32 */
         0x0, /* gcFEATURE_BIT_TP_KERNEL_1BYTE_ALGIN */
         0x0, /* gcFEATURE_BIT_BFLOAT_COEF_COMPRESSION_ZERO_COEFBIT14_INVERSE */
         0x0, /* gcFEATURE_BIT_NN_COMPRESSION_BYPASSS */
@@ -14098,6 +14583,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         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_TP_REMOVE_FC */
+        0x0, /* gcFEATURE_BIT_VIP_REMOVE_MMU */
         0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */
         0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */
         0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */
@@ -14158,14 +14645,27 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_NN_WASTE_COEF_READ_WRITE_BANDWIDTH_128BYTE_VIPSRAM_IN_FULL_PATIAL_CACHE_MODE_FIX */
         0x0, /* gcFEATURE_BIT_NN_IN_TILE_DATA_IS_ALL_PAD_FIX */
         0x0, /* gcFEATURE_BIT_NN_TP_INSTR_COMPLETE_IN_SAME_CYCLE_WITH_WAIT_EVENT_FIX */
+        0x0, /* gcFEATURE_BIT_CORE_IMAGE_TRANSER_NOT_EFFICIENT_BETWEEN_PARTITION_FIX */
         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 */
         0x1, /* gcFEATURE_BIT_BURST_COLLECT_CONSUMES_MC_DATA_WIDTH_PER_CYCLE_FIX */
-        0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_BUG_FIX */
-        0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_BUG_FIX */
+        0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_FIX */
+        0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_FIX */
+        0x0, /* gcFEATURE_BIT_NN_2ND_IMG_BASE_ADDR_FIX */
+        0x0, /* gcFEATURE_BIT_NN_TP_SYSTEM_FIX */
+        0x0, /* gcFEATURE_BIT_NN_INTILE_YSIZE_128_LIMIT_FIX */
+        0x0, /* gcFEATURE_BIT_SH_CLOCK_GATOR_IDLE_CONDITON_FIX */
+        0x0, /* gcFEATURE_BIT_NN_BURST_COLLECTER_LAST_FLAG_FIX */
+        0x0, /* gcFEATURE_BIT_NN_2ND_IMG_SMALL_3D_TILE_FIX */
+        0x0, /* gcFEATURE_BIT_NN_TILE_YSIZE_127_LIMITATION_FIX */
+        0x0, /* gcFEATURE_BIT_NN_CONV_1D_16BIT_FORMAT_INTILE_SIZE_LIMITATION_FIX */
+        0x0, /* gcFEATURE_BIT_NN_VIPSRAM_DOUBLE_BUFFER_FIX */
+        0x0, /* gcFEATURE_BIT_NN_JD_DIRECT_MODE_FIX */
+        0x0, /* gcFEATURE_BIT_NN_KERNEL_DIRECT_WRONG_PUSH_FIX */
+        0x0, /* gcFEATURE_BIT_HI_DEFAULT_ENABLE_REORDER_FIX */
         0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */
         0x0, /* gcFEATURE_BIT_NN_FP16_ALU */
         0x0, /* gcFEATURE_BIT_NN_INT16_ALU */
@@ -14225,6 +14725,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_VALUE_G2D_DEC400_MINOR */
         0x0, /* gcFEATURE_VALUE_NNMadPerCore */
         0x0, /* gcFEATURE_VALUE_NNCoreCount */
+        0x0, /* gcFEATURE_VALUE_NN_ACTIVE_CORE_COUNT */
         0x0, /* gcFEATURE_VALUE_NNCoreCount_INT8 */
         0x0, /* gcFEATURE_VALUE_NNCoreCount_INT16 */
         0x0, /* gcFEATURE_VALUE_NNCoreCount_FLOAT16 */
@@ -14270,6 +14771,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_VALUE_MAX_TILE_X_SIZE */
         0x0, /* gcFEATURE_VALUE_NN_CLUSTER_NUM_FOR_POWER_CONTROL */
         0x0, /* gcFEATURE_VALUE_NN_IN_LINES_PER_CYCLE */
+        0x0, /* gcFEATURE_VALUE_VIP_CLUSTER_COUNT */
         0x1, /* gcFEATURE_BIT_REG_FastClear */
         0x0, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */
         0x1, /* gcFEATURE_BIT_REG_Pipe3D */
@@ -14657,7 +15159,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         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 */
+        0x0, /* gcFEATURE_BIT_MSAA_FLOAT_64BIT */
         0x0, /* gcFEATURE_BIT_INDIRECT_COMPUTE_ZERODIM_FIX */
         0x0, /* gcFEATURE_BIT_Q_CHANNEL_SUPPORT */
         0x0, /* gcFEATURE_BIT_MMU_PAGE_DESCRIPTOR */
@@ -14671,7 +15173,12 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_LDST_CONV_4ROUNDING_MODES */
         0x0, /* gcFEATURE_BIT_FULL_PACK_MODE_SUPPORT */
         0x0, /* gcFEATURE_BIT_DEPTH_FLOAT32_SUPPORT */
+        0x0, /* gcFEATURE_BIT_GPU_INSPECTOR_COUNTERS */
         0x0, /* gcFEATURE_BIT_FP32_TO_FP16_CONV_FIX */
+        0x0, /* gcFEATURE_BIT_IMGLD_COMP_COUNT_FIX */
+        0x0, /* gcFEATURE_BIT_IMGLD_WIDTH_LT16_FIX */
+        0x0, /* gcFEATURE_BIT_TX_FILTER_ROUND_FIX */
+        0x0, /* gcFEATURE_BIT_SH_FP32_FMA_SUPPORT */
         0x0, /* gcFEATURE_BIT_VG_TS_CULLING */
         0x0, /* gcFEATURE_BIT_VG_FP25 */
         0x0, /* gcFEATURE_BIT_VG_AYUV_INPUT_OUTPUT */
@@ -14778,6 +15285,9 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_PRELU_LEAKLY_RELU_CLAMP */
         0x0, /* gcFEATURE_BIT_TPLITE_BFLOAT16 */
         0x0, /* gcFEATURE_BIT_PREPROCESS_IMG_BUF_640BYTE_LIMIT */
+        0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP16 */
+        0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_BF16 */
+        0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP32 */
         0x0, /* gcFEATURE_BIT_TP_KERNEL_1BYTE_ALGIN */
         0x0, /* gcFEATURE_BIT_BFLOAT_COEF_COMPRESSION_ZERO_COEFBIT14_INVERSE */
         0x0, /* gcFEATURE_BIT_NN_COMPRESSION_BYPASSS */
@@ -14804,6 +15314,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         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_TP_REMOVE_FC */
+        0x0, /* gcFEATURE_BIT_VIP_REMOVE_MMU */
         0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */
         0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */
         0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */
@@ -14864,14 +15376,27 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_NN_WASTE_COEF_READ_WRITE_BANDWIDTH_128BYTE_VIPSRAM_IN_FULL_PATIAL_CACHE_MODE_FIX */
         0x0, /* gcFEATURE_BIT_NN_IN_TILE_DATA_IS_ALL_PAD_FIX */
         0x0, /* gcFEATURE_BIT_NN_TP_INSTR_COMPLETE_IN_SAME_CYCLE_WITH_WAIT_EVENT_FIX */
+        0x0, /* gcFEATURE_BIT_CORE_IMAGE_TRANSER_NOT_EFFICIENT_BETWEEN_PARTITION_FIX */
         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 */
         0x1, /* gcFEATURE_BIT_BURST_COLLECT_CONSUMES_MC_DATA_WIDTH_PER_CYCLE_FIX */
-        0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_BUG_FIX */
-        0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_BUG_FIX */
+        0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_FIX */
+        0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_FIX */
+        0x0, /* gcFEATURE_BIT_NN_2ND_IMG_BASE_ADDR_FIX */
+        0x0, /* gcFEATURE_BIT_NN_TP_SYSTEM_FIX */
+        0x0, /* gcFEATURE_BIT_NN_INTILE_YSIZE_128_LIMIT_FIX */
+        0x0, /* gcFEATURE_BIT_SH_CLOCK_GATOR_IDLE_CONDITON_FIX */
+        0x0, /* gcFEATURE_BIT_NN_BURST_COLLECTER_LAST_FLAG_FIX */
+        0x0, /* gcFEATURE_BIT_NN_2ND_IMG_SMALL_3D_TILE_FIX */
+        0x0, /* gcFEATURE_BIT_NN_TILE_YSIZE_127_LIMITATION_FIX */
+        0x0, /* gcFEATURE_BIT_NN_CONV_1D_16BIT_FORMAT_INTILE_SIZE_LIMITATION_FIX */
+        0x0, /* gcFEATURE_BIT_NN_VIPSRAM_DOUBLE_BUFFER_FIX */
+        0x0, /* gcFEATURE_BIT_NN_JD_DIRECT_MODE_FIX */
+        0x0, /* gcFEATURE_BIT_NN_KERNEL_DIRECT_WRONG_PUSH_FIX */
+        0x0, /* gcFEATURE_BIT_HI_DEFAULT_ENABLE_REORDER_FIX */
         0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */
         0x0, /* gcFEATURE_BIT_NN_FP16_ALU */
         0x0, /* gcFEATURE_BIT_NN_INT16_ALU */
@@ -14931,6 +15456,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_VALUE_G2D_DEC400_MINOR */
         0x0, /* gcFEATURE_VALUE_NNMadPerCore */
         0x0, /* gcFEATURE_VALUE_NNCoreCount */
+        0x0, /* gcFEATURE_VALUE_NN_ACTIVE_CORE_COUNT */
         0x0, /* gcFEATURE_VALUE_NNCoreCount_INT8 */
         0x0, /* gcFEATURE_VALUE_NNCoreCount_INT16 */
         0x0, /* gcFEATURE_VALUE_NNCoreCount_FLOAT16 */
@@ -14976,6 +15502,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_VALUE_MAX_TILE_X_SIZE */
         0x0, /* gcFEATURE_VALUE_NN_CLUSTER_NUM_FOR_POWER_CONTROL */
         0x0, /* gcFEATURE_VALUE_NN_IN_LINES_PER_CYCLE */
+        0x0, /* gcFEATURE_VALUE_VIP_CLUSTER_COUNT */
         0x1, /* gcFEATURE_BIT_REG_FastClear */
         0x0, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */
         0x1, /* gcFEATURE_BIT_REG_Pipe3D */
@@ -15377,7 +15904,12 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_LDST_CONV_4ROUNDING_MODES */
         0x0, /* gcFEATURE_BIT_FULL_PACK_MODE_SUPPORT */
         0x0, /* gcFEATURE_BIT_DEPTH_FLOAT32_SUPPORT */
+        0x0, /* gcFEATURE_BIT_GPU_INSPECTOR_COUNTERS */
         0x0, /* gcFEATURE_BIT_FP32_TO_FP16_CONV_FIX */
+        0x0, /* gcFEATURE_BIT_IMGLD_COMP_COUNT_FIX */
+        0x0, /* gcFEATURE_BIT_IMGLD_WIDTH_LT16_FIX */
+        0x0, /* gcFEATURE_BIT_TX_FILTER_ROUND_FIX */
+        0x0, /* gcFEATURE_BIT_SH_FP32_FMA_SUPPORT */
         0x0, /* gcFEATURE_BIT_VG_TS_CULLING */
         0x0, /* gcFEATURE_BIT_VG_FP25 */
         0x0, /* gcFEATURE_BIT_VG_AYUV_INPUT_OUTPUT */
@@ -15484,6 +16016,9 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_PRELU_LEAKLY_RELU_CLAMP */
         0x0, /* gcFEATURE_BIT_TPLITE_BFLOAT16 */
         0x0, /* gcFEATURE_BIT_PREPROCESS_IMG_BUF_640BYTE_LIMIT */
+        0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP16 */
+        0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_BF16 */
+        0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP32 */
         0x0, /* gcFEATURE_BIT_TP_KERNEL_1BYTE_ALGIN */
         0x0, /* gcFEATURE_BIT_BFLOAT_COEF_COMPRESSION_ZERO_COEFBIT14_INVERSE */
         0x0, /* gcFEATURE_BIT_NN_COMPRESSION_BYPASSS */
@@ -15510,6 +16045,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         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_TP_REMOVE_FC */
+        0x0, /* gcFEATURE_BIT_VIP_REMOVE_MMU */
         0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */
         0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */
         0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */
@@ -15570,14 +16107,27 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_NN_WASTE_COEF_READ_WRITE_BANDWIDTH_128BYTE_VIPSRAM_IN_FULL_PATIAL_CACHE_MODE_FIX */
         0x0, /* gcFEATURE_BIT_NN_IN_TILE_DATA_IS_ALL_PAD_FIX */
         0x0, /* gcFEATURE_BIT_NN_TP_INSTR_COMPLETE_IN_SAME_CYCLE_WITH_WAIT_EVENT_FIX */
+        0x0, /* gcFEATURE_BIT_CORE_IMAGE_TRANSER_NOT_EFFICIENT_BETWEEN_PARTITION_FIX */
         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 */
         0x1, /* gcFEATURE_BIT_BURST_COLLECT_CONSUMES_MC_DATA_WIDTH_PER_CYCLE_FIX */
-        0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_BUG_FIX */
-        0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_BUG_FIX */
+        0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_FIX */
+        0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_FIX */
+        0x0, /* gcFEATURE_BIT_NN_2ND_IMG_BASE_ADDR_FIX */
+        0x0, /* gcFEATURE_BIT_NN_TP_SYSTEM_FIX */
+        0x0, /* gcFEATURE_BIT_NN_INTILE_YSIZE_128_LIMIT_FIX */
+        0x0, /* gcFEATURE_BIT_SH_CLOCK_GATOR_IDLE_CONDITON_FIX */
+        0x0, /* gcFEATURE_BIT_NN_BURST_COLLECTER_LAST_FLAG_FIX */
+        0x0, /* gcFEATURE_BIT_NN_2ND_IMG_SMALL_3D_TILE_FIX */
+        0x0, /* gcFEATURE_BIT_NN_TILE_YSIZE_127_LIMITATION_FIX */
+        0x0, /* gcFEATURE_BIT_NN_CONV_1D_16BIT_FORMAT_INTILE_SIZE_LIMITATION_FIX */
+        0x0, /* gcFEATURE_BIT_NN_VIPSRAM_DOUBLE_BUFFER_FIX */
+        0x0, /* gcFEATURE_BIT_NN_JD_DIRECT_MODE_FIX */
+        0x0, /* gcFEATURE_BIT_NN_KERNEL_DIRECT_WRONG_PUSH_FIX */
+        0x0, /* gcFEATURE_BIT_HI_DEFAULT_ENABLE_REORDER_FIX */
         0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */
         0x0, /* gcFEATURE_BIT_NN_FP16_ALU */
         0x0, /* gcFEATURE_BIT_NN_INT16_ALU */
@@ -15637,6 +16187,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_VALUE_G2D_DEC400_MINOR */
         0x0, /* gcFEATURE_VALUE_NNMadPerCore */
         0x0, /* gcFEATURE_VALUE_NNCoreCount */
+        0x0, /* gcFEATURE_VALUE_NN_ACTIVE_CORE_COUNT */
         0x0, /* gcFEATURE_VALUE_NNCoreCount_INT8 */
         0x0, /* gcFEATURE_VALUE_NNCoreCount_INT16 */
         0x0, /* gcFEATURE_VALUE_NNCoreCount_FLOAT16 */
@@ -15682,6 +16233,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_VALUE_MAX_TILE_X_SIZE */
         0x0, /* gcFEATURE_VALUE_NN_CLUSTER_NUM_FOR_POWER_CONTROL */
         0x0, /* gcFEATURE_VALUE_NN_IN_LINES_PER_CYCLE */
+        0x0, /* gcFEATURE_VALUE_VIP_CLUSTER_COUNT */
         0x1, /* gcFEATURE_BIT_REG_FastClear */
         0x0, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */
         0x1, /* gcFEATURE_BIT_REG_Pipe3D */
@@ -16083,7 +16635,12 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_LDST_CONV_4ROUNDING_MODES */
         0x0, /* gcFEATURE_BIT_FULL_PACK_MODE_SUPPORT */
         0x0, /* gcFEATURE_BIT_DEPTH_FLOAT32_SUPPORT */
+        0x0, /* gcFEATURE_BIT_GPU_INSPECTOR_COUNTERS */
         0x0, /* gcFEATURE_BIT_FP32_TO_FP16_CONV_FIX */
+        0x0, /* gcFEATURE_BIT_IMGLD_COMP_COUNT_FIX */
+        0x1, /* gcFEATURE_BIT_IMGLD_WIDTH_LT16_FIX */
+        0x0, /* gcFEATURE_BIT_TX_FILTER_ROUND_FIX */
+        0x0, /* gcFEATURE_BIT_SH_FP32_FMA_SUPPORT */
         0x0, /* gcFEATURE_BIT_VG_TS_CULLING */
         0x0, /* gcFEATURE_BIT_VG_FP25 */
         0x0, /* gcFEATURE_BIT_VG_AYUV_INPUT_OUTPUT */
@@ -16190,6 +16747,9 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_PRELU_LEAKLY_RELU_CLAMP */
         0x0, /* gcFEATURE_BIT_TPLITE_BFLOAT16 */
         0x0, /* gcFEATURE_BIT_PREPROCESS_IMG_BUF_640BYTE_LIMIT */
+        0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP16 */
+        0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_BF16 */
+        0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP32 */
         0x0, /* gcFEATURE_BIT_TP_KERNEL_1BYTE_ALGIN */
         0x0, /* gcFEATURE_BIT_BFLOAT_COEF_COMPRESSION_ZERO_COEFBIT14_INVERSE */
         0x0, /* gcFEATURE_BIT_NN_COMPRESSION_BYPASSS */
@@ -16216,6 +16776,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         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_TP_REMOVE_FC */
+        0x0, /* gcFEATURE_BIT_VIP_REMOVE_MMU */
         0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */
         0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */
         0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */
@@ -16276,14 +16838,27 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_NN_WASTE_COEF_READ_WRITE_BANDWIDTH_128BYTE_VIPSRAM_IN_FULL_PATIAL_CACHE_MODE_FIX */
         0x0, /* gcFEATURE_BIT_NN_IN_TILE_DATA_IS_ALL_PAD_FIX */
         0x0, /* gcFEATURE_BIT_NN_TP_INSTR_COMPLETE_IN_SAME_CYCLE_WITH_WAIT_EVENT_FIX */
+        0x0, /* gcFEATURE_BIT_CORE_IMAGE_TRANSER_NOT_EFFICIENT_BETWEEN_PARTITION_FIX */
         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 */
         0x1, /* gcFEATURE_BIT_BURST_COLLECT_CONSUMES_MC_DATA_WIDTH_PER_CYCLE_FIX */
-        0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_BUG_FIX */
-        0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_BUG_FIX */
+        0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_FIX */
+        0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_FIX */
+        0x0, /* gcFEATURE_BIT_NN_2ND_IMG_BASE_ADDR_FIX */
+        0x0, /* gcFEATURE_BIT_NN_TP_SYSTEM_FIX */
+        0x0, /* gcFEATURE_BIT_NN_INTILE_YSIZE_128_LIMIT_FIX */
+        0x0, /* gcFEATURE_BIT_SH_CLOCK_GATOR_IDLE_CONDITON_FIX */
+        0x0, /* gcFEATURE_BIT_NN_BURST_COLLECTER_LAST_FLAG_FIX */
+        0x0, /* gcFEATURE_BIT_NN_2ND_IMG_SMALL_3D_TILE_FIX */
+        0x0, /* gcFEATURE_BIT_NN_TILE_YSIZE_127_LIMITATION_FIX */
+        0x0, /* gcFEATURE_BIT_NN_CONV_1D_16BIT_FORMAT_INTILE_SIZE_LIMITATION_FIX */
+        0x0, /* gcFEATURE_BIT_NN_VIPSRAM_DOUBLE_BUFFER_FIX */
+        0x0, /* gcFEATURE_BIT_NN_JD_DIRECT_MODE_FIX */
+        0x0, /* gcFEATURE_BIT_NN_KERNEL_DIRECT_WRONG_PUSH_FIX */
+        0x0, /* gcFEATURE_BIT_HI_DEFAULT_ENABLE_REORDER_FIX */
         0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */
         0x0, /* gcFEATURE_BIT_NN_FP16_ALU */
         0x0, /* gcFEATURE_BIT_NN_INT16_ALU */
@@ -16343,6 +16918,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_VALUE_G2D_DEC400_MINOR */
         0x0, /* gcFEATURE_VALUE_NNMadPerCore */
         0x0, /* gcFEATURE_VALUE_NNCoreCount */
+        0x0, /* gcFEATURE_VALUE_NN_ACTIVE_CORE_COUNT */
         0x0, /* gcFEATURE_VALUE_NNCoreCount_INT8 */
         0x0, /* gcFEATURE_VALUE_NNCoreCount_INT16 */
         0x0, /* gcFEATURE_VALUE_NNCoreCount_FLOAT16 */
@@ -16388,6 +16964,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_VALUE_MAX_TILE_X_SIZE */
         0x0, /* gcFEATURE_VALUE_NN_CLUSTER_NUM_FOR_POWER_CONTROL */
         0x0, /* gcFEATURE_VALUE_NN_IN_LINES_PER_CYCLE */
+        0x0, /* gcFEATURE_VALUE_VIP_CLUSTER_COUNT */
         0x1, /* gcFEATURE_BIT_REG_FastClear */
         0x0, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */
         0x1, /* gcFEATURE_BIT_REG_Pipe3D */
@@ -16789,7 +17366,12 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_LDST_CONV_4ROUNDING_MODES */
         0x0, /* gcFEATURE_BIT_FULL_PACK_MODE_SUPPORT */
         0x0, /* gcFEATURE_BIT_DEPTH_FLOAT32_SUPPORT */
+        0x0, /* gcFEATURE_BIT_GPU_INSPECTOR_COUNTERS */
         0x0, /* gcFEATURE_BIT_FP32_TO_FP16_CONV_FIX */
+        0x0, /* gcFEATURE_BIT_IMGLD_COMP_COUNT_FIX */
+        0x1, /* gcFEATURE_BIT_IMGLD_WIDTH_LT16_FIX */
+        0x0, /* gcFEATURE_BIT_TX_FILTER_ROUND_FIX */
+        0x0, /* gcFEATURE_BIT_SH_FP32_FMA_SUPPORT */
         0x0, /* gcFEATURE_BIT_VG_TS_CULLING */
         0x0, /* gcFEATURE_BIT_VG_FP25 */
         0x0, /* gcFEATURE_BIT_VG_AYUV_INPUT_OUTPUT */
@@ -16896,6 +17478,9 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_PRELU_LEAKLY_RELU_CLAMP */
         0x0, /* gcFEATURE_BIT_TPLITE_BFLOAT16 */
         0x0, /* gcFEATURE_BIT_PREPROCESS_IMG_BUF_640BYTE_LIMIT */
+        0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP16 */
+        0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_BF16 */
+        0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP32 */
         0x0, /* gcFEATURE_BIT_TP_KERNEL_1BYTE_ALGIN */
         0x0, /* gcFEATURE_BIT_BFLOAT_COEF_COMPRESSION_ZERO_COEFBIT14_INVERSE */
         0x0, /* gcFEATURE_BIT_NN_COMPRESSION_BYPASSS */
@@ -16922,6 +17507,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         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_TP_REMOVE_FC */
+        0x0, /* gcFEATURE_BIT_VIP_REMOVE_MMU */
         0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */
         0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */
         0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */
@@ -16982,14 +17569,27 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_NN_WASTE_COEF_READ_WRITE_BANDWIDTH_128BYTE_VIPSRAM_IN_FULL_PATIAL_CACHE_MODE_FIX */
         0x0, /* gcFEATURE_BIT_NN_IN_TILE_DATA_IS_ALL_PAD_FIX */
         0x0, /* gcFEATURE_BIT_NN_TP_INSTR_COMPLETE_IN_SAME_CYCLE_WITH_WAIT_EVENT_FIX */
+        0x0, /* gcFEATURE_BIT_CORE_IMAGE_TRANSER_NOT_EFFICIENT_BETWEEN_PARTITION_FIX */
         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 */
         0x1, /* gcFEATURE_BIT_BURST_COLLECT_CONSUMES_MC_DATA_WIDTH_PER_CYCLE_FIX */
-        0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_BUG_FIX */
-        0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_BUG_FIX */
+        0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_FIX */
+        0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_FIX */
+        0x0, /* gcFEATURE_BIT_NN_2ND_IMG_BASE_ADDR_FIX */
+        0x0, /* gcFEATURE_BIT_NN_TP_SYSTEM_FIX */
+        0x0, /* gcFEATURE_BIT_NN_INTILE_YSIZE_128_LIMIT_FIX */
+        0x0, /* gcFEATURE_BIT_SH_CLOCK_GATOR_IDLE_CONDITON_FIX */
+        0x0, /* gcFEATURE_BIT_NN_BURST_COLLECTER_LAST_FLAG_FIX */
+        0x0, /* gcFEATURE_BIT_NN_2ND_IMG_SMALL_3D_TILE_FIX */
+        0x0, /* gcFEATURE_BIT_NN_TILE_YSIZE_127_LIMITATION_FIX */
+        0x0, /* gcFEATURE_BIT_NN_CONV_1D_16BIT_FORMAT_INTILE_SIZE_LIMITATION_FIX */
+        0x0, /* gcFEATURE_BIT_NN_VIPSRAM_DOUBLE_BUFFER_FIX */
+        0x0, /* gcFEATURE_BIT_NN_JD_DIRECT_MODE_FIX */
+        0x0, /* gcFEATURE_BIT_NN_KERNEL_DIRECT_WRONG_PUSH_FIX */
+        0x0, /* gcFEATURE_BIT_HI_DEFAULT_ENABLE_REORDER_FIX */
         0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */
         0x0, /* gcFEATURE_BIT_NN_FP16_ALU */
         0x0, /* gcFEATURE_BIT_NN_INT16_ALU */
@@ -17049,6 +17649,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_VALUE_G2D_DEC400_MINOR */
         0x0, /* gcFEATURE_VALUE_NNMadPerCore */
         0x0, /* gcFEATURE_VALUE_NNCoreCount */
+        0x0, /* gcFEATURE_VALUE_NN_ACTIVE_CORE_COUNT */
         0x0, /* gcFEATURE_VALUE_NNCoreCount_INT8 */
         0x0, /* gcFEATURE_VALUE_NNCoreCount_INT16 */
         0x0, /* gcFEATURE_VALUE_NNCoreCount_FLOAT16 */
@@ -17094,6 +17695,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_VALUE_MAX_TILE_X_SIZE */
         0x0, /* gcFEATURE_VALUE_NN_CLUSTER_NUM_FOR_POWER_CONTROL */
         0x0, /* gcFEATURE_VALUE_NN_IN_LINES_PER_CYCLE */
+        0x0, /* gcFEATURE_VALUE_VIP_CLUSTER_COUNT */
         0x1, /* gcFEATURE_BIT_REG_FastClear */
         0x0, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */
         0x1, /* gcFEATURE_BIT_REG_Pipe3D */
@@ -17495,7 +18097,12 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_LDST_CONV_4ROUNDING_MODES */
         0x0, /* gcFEATURE_BIT_FULL_PACK_MODE_SUPPORT */
         0x0, /* gcFEATURE_BIT_DEPTH_FLOAT32_SUPPORT */
+        0x0, /* gcFEATURE_BIT_GPU_INSPECTOR_COUNTERS */
         0x0, /* gcFEATURE_BIT_FP32_TO_FP16_CONV_FIX */
+        0x0, /* gcFEATURE_BIT_IMGLD_COMP_COUNT_FIX */
+        0x0, /* gcFEATURE_BIT_IMGLD_WIDTH_LT16_FIX */
+        0x0, /* gcFEATURE_BIT_TX_FILTER_ROUND_FIX */
+        0x0, /* gcFEATURE_BIT_SH_FP32_FMA_SUPPORT */
         0x0, /* gcFEATURE_BIT_VG_TS_CULLING */
         0x0, /* gcFEATURE_BIT_VG_FP25 */
         0x0, /* gcFEATURE_BIT_VG_AYUV_INPUT_OUTPUT */
@@ -17602,6 +18209,9 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_PRELU_LEAKLY_RELU_CLAMP */
         0x0, /* gcFEATURE_BIT_TPLITE_BFLOAT16 */
         0x0, /* gcFEATURE_BIT_PREPROCESS_IMG_BUF_640BYTE_LIMIT */
+        0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP16 */
+        0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_BF16 */
+        0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP32 */
         0x0, /* gcFEATURE_BIT_TP_KERNEL_1BYTE_ALGIN */
         0x0, /* gcFEATURE_BIT_BFLOAT_COEF_COMPRESSION_ZERO_COEFBIT14_INVERSE */
         0x0, /* gcFEATURE_BIT_NN_COMPRESSION_BYPASSS */
@@ -17628,6 +18238,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         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_TP_REMOVE_FC */
+        0x0, /* gcFEATURE_BIT_VIP_REMOVE_MMU */
         0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */
         0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */
         0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */
@@ -17688,14 +18300,27 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_NN_WASTE_COEF_READ_WRITE_BANDWIDTH_128BYTE_VIPSRAM_IN_FULL_PATIAL_CACHE_MODE_FIX */
         0x0, /* gcFEATURE_BIT_NN_IN_TILE_DATA_IS_ALL_PAD_FIX */
         0x0, /* gcFEATURE_BIT_NN_TP_INSTR_COMPLETE_IN_SAME_CYCLE_WITH_WAIT_EVENT_FIX */
+        0x0, /* gcFEATURE_BIT_CORE_IMAGE_TRANSER_NOT_EFFICIENT_BETWEEN_PARTITION_FIX */
         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 */
         0x1, /* gcFEATURE_BIT_BURST_COLLECT_CONSUMES_MC_DATA_WIDTH_PER_CYCLE_FIX */
-        0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_BUG_FIX */
-        0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_BUG_FIX */
+        0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_FIX */
+        0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_FIX */
+        0x0, /* gcFEATURE_BIT_NN_2ND_IMG_BASE_ADDR_FIX */
+        0x0, /* gcFEATURE_BIT_NN_TP_SYSTEM_FIX */
+        0x0, /* gcFEATURE_BIT_NN_INTILE_YSIZE_128_LIMIT_FIX */
+        0x0, /* gcFEATURE_BIT_SH_CLOCK_GATOR_IDLE_CONDITON_FIX */
+        0x0, /* gcFEATURE_BIT_NN_BURST_COLLECTER_LAST_FLAG_FIX */
+        0x0, /* gcFEATURE_BIT_NN_2ND_IMG_SMALL_3D_TILE_FIX */
+        0x0, /* gcFEATURE_BIT_NN_TILE_YSIZE_127_LIMITATION_FIX */
+        0x0, /* gcFEATURE_BIT_NN_CONV_1D_16BIT_FORMAT_INTILE_SIZE_LIMITATION_FIX */
+        0x0, /* gcFEATURE_BIT_NN_VIPSRAM_DOUBLE_BUFFER_FIX */
+        0x0, /* gcFEATURE_BIT_NN_JD_DIRECT_MODE_FIX */
+        0x0, /* gcFEATURE_BIT_NN_KERNEL_DIRECT_WRONG_PUSH_FIX */
+        0x0, /* gcFEATURE_BIT_HI_DEFAULT_ENABLE_REORDER_FIX */
         0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */
         0x0, /* gcFEATURE_BIT_NN_FP16_ALU */
         0x0, /* gcFEATURE_BIT_NN_INT16_ALU */
@@ -17755,6 +18380,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_VALUE_G2D_DEC400_MINOR */
         0x0, /* gcFEATURE_VALUE_NNMadPerCore */
         0x0, /* gcFEATURE_VALUE_NNCoreCount */
+        0x0, /* gcFEATURE_VALUE_NN_ACTIVE_CORE_COUNT */
         0x0, /* gcFEATURE_VALUE_NNCoreCount_INT8 */
         0x0, /* gcFEATURE_VALUE_NNCoreCount_INT16 */
         0x0, /* gcFEATURE_VALUE_NNCoreCount_FLOAT16 */
@@ -17800,6 +18426,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_VALUE_MAX_TILE_X_SIZE */
         0x0, /* gcFEATURE_VALUE_NN_CLUSTER_NUM_FOR_POWER_CONTROL */
         0x0, /* gcFEATURE_VALUE_NN_IN_LINES_PER_CYCLE */
+        0x0, /* gcFEATURE_VALUE_VIP_CLUSTER_COUNT */
         0x1, /* gcFEATURE_BIT_REG_FastClear */
         0x0, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */
         0x1, /* gcFEATURE_BIT_REG_Pipe3D */
@@ -18201,7 +18828,12 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_LDST_CONV_4ROUNDING_MODES */
         0x0, /* gcFEATURE_BIT_FULL_PACK_MODE_SUPPORT */
         0x0, /* gcFEATURE_BIT_DEPTH_FLOAT32_SUPPORT */
+        0x0, /* gcFEATURE_BIT_GPU_INSPECTOR_COUNTERS */
         0x0, /* gcFEATURE_BIT_FP32_TO_FP16_CONV_FIX */
+        0x0, /* gcFEATURE_BIT_IMGLD_COMP_COUNT_FIX */
+        0x0, /* gcFEATURE_BIT_IMGLD_WIDTH_LT16_FIX */
+        0x0, /* gcFEATURE_BIT_TX_FILTER_ROUND_FIX */
+        0x0, /* gcFEATURE_BIT_SH_FP32_FMA_SUPPORT */
         0x0, /* gcFEATURE_BIT_VG_TS_CULLING */
         0x0, /* gcFEATURE_BIT_VG_FP25 */
         0x0, /* gcFEATURE_BIT_VG_AYUV_INPUT_OUTPUT */
@@ -18308,6 +18940,9 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_PRELU_LEAKLY_RELU_CLAMP */
         0x0, /* gcFEATURE_BIT_TPLITE_BFLOAT16 */
         0x0, /* gcFEATURE_BIT_PREPROCESS_IMG_BUF_640BYTE_LIMIT */
+        0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP16 */
+        0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_BF16 */
+        0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP32 */
         0x0, /* gcFEATURE_BIT_TP_KERNEL_1BYTE_ALGIN */
         0x0, /* gcFEATURE_BIT_BFLOAT_COEF_COMPRESSION_ZERO_COEFBIT14_INVERSE */
         0x0, /* gcFEATURE_BIT_NN_COMPRESSION_BYPASSS */
@@ -18334,6 +18969,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         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_TP_REMOVE_FC */
+        0x0, /* gcFEATURE_BIT_VIP_REMOVE_MMU */
         0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */
         0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */
         0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */
@@ -18394,14 +19031,27 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_NN_WASTE_COEF_READ_WRITE_BANDWIDTH_128BYTE_VIPSRAM_IN_FULL_PATIAL_CACHE_MODE_FIX */
         0x0, /* gcFEATURE_BIT_NN_IN_TILE_DATA_IS_ALL_PAD_FIX */
         0x0, /* gcFEATURE_BIT_NN_TP_INSTR_COMPLETE_IN_SAME_CYCLE_WITH_WAIT_EVENT_FIX */
+        0x0, /* gcFEATURE_BIT_CORE_IMAGE_TRANSER_NOT_EFFICIENT_BETWEEN_PARTITION_FIX */
         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 */
         0x1, /* gcFEATURE_BIT_BURST_COLLECT_CONSUMES_MC_DATA_WIDTH_PER_CYCLE_FIX */
-        0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_BUG_FIX */
-        0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_BUG_FIX */
+        0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_FIX */
+        0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_FIX */
+        0x0, /* gcFEATURE_BIT_NN_2ND_IMG_BASE_ADDR_FIX */
+        0x0, /* gcFEATURE_BIT_NN_TP_SYSTEM_FIX */
+        0x0, /* gcFEATURE_BIT_NN_INTILE_YSIZE_128_LIMIT_FIX */
+        0x0, /* gcFEATURE_BIT_SH_CLOCK_GATOR_IDLE_CONDITON_FIX */
+        0x0, /* gcFEATURE_BIT_NN_BURST_COLLECTER_LAST_FLAG_FIX */
+        0x0, /* gcFEATURE_BIT_NN_2ND_IMG_SMALL_3D_TILE_FIX */
+        0x0, /* gcFEATURE_BIT_NN_TILE_YSIZE_127_LIMITATION_FIX */
+        0x0, /* gcFEATURE_BIT_NN_CONV_1D_16BIT_FORMAT_INTILE_SIZE_LIMITATION_FIX */
+        0x0, /* gcFEATURE_BIT_NN_VIPSRAM_DOUBLE_BUFFER_FIX */
+        0x0, /* gcFEATURE_BIT_NN_JD_DIRECT_MODE_FIX */
+        0x0, /* gcFEATURE_BIT_NN_KERNEL_DIRECT_WRONG_PUSH_FIX */
+        0x0, /* gcFEATURE_BIT_HI_DEFAULT_ENABLE_REORDER_FIX */
         0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */
         0x0, /* gcFEATURE_BIT_NN_FP16_ALU */
         0x0, /* gcFEATURE_BIT_NN_INT16_ALU */
@@ -18461,6 +19111,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_VALUE_G2D_DEC400_MINOR */
         0x0, /* gcFEATURE_VALUE_NNMadPerCore */
         0x0, /* gcFEATURE_VALUE_NNCoreCount */
+        0x0, /* gcFEATURE_VALUE_NN_ACTIVE_CORE_COUNT */
         0x0, /* gcFEATURE_VALUE_NNCoreCount_INT8 */
         0x0, /* gcFEATURE_VALUE_NNCoreCount_INT16 */
         0x0, /* gcFEATURE_VALUE_NNCoreCount_FLOAT16 */
@@ -18506,6 +19157,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_VALUE_MAX_TILE_X_SIZE */
         0x0, /* gcFEATURE_VALUE_NN_CLUSTER_NUM_FOR_POWER_CONTROL */
         0x0, /* gcFEATURE_VALUE_NN_IN_LINES_PER_CYCLE */
+        0x0, /* gcFEATURE_VALUE_VIP_CLUSTER_COUNT */
         0x1, /* gcFEATURE_BIT_REG_FastClear */
         0x0, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */
         0x1, /* gcFEATURE_BIT_REG_Pipe3D */
@@ -18907,7 +19559,12 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_LDST_CONV_4ROUNDING_MODES */
         0x0, /* gcFEATURE_BIT_FULL_PACK_MODE_SUPPORT */
         0x0, /* gcFEATURE_BIT_DEPTH_FLOAT32_SUPPORT */
+        0x0, /* gcFEATURE_BIT_GPU_INSPECTOR_COUNTERS */
         0x0, /* gcFEATURE_BIT_FP32_TO_FP16_CONV_FIX */
+        0x0, /* gcFEATURE_BIT_IMGLD_COMP_COUNT_FIX */
+        0x0, /* gcFEATURE_BIT_IMGLD_WIDTH_LT16_FIX */
+        0x0, /* gcFEATURE_BIT_TX_FILTER_ROUND_FIX */
+        0x0, /* gcFEATURE_BIT_SH_FP32_FMA_SUPPORT */
         0x0, /* gcFEATURE_BIT_VG_TS_CULLING */
         0x0, /* gcFEATURE_BIT_VG_FP25 */
         0x0, /* gcFEATURE_BIT_VG_AYUV_INPUT_OUTPUT */
@@ -19014,6 +19671,9 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_PRELU_LEAKLY_RELU_CLAMP */
         0x0, /* gcFEATURE_BIT_TPLITE_BFLOAT16 */
         0x0, /* gcFEATURE_BIT_PREPROCESS_IMG_BUF_640BYTE_LIMIT */
+        0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP16 */
+        0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_BF16 */
+        0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP32 */
         0x0, /* gcFEATURE_BIT_TP_KERNEL_1BYTE_ALGIN */
         0x0, /* gcFEATURE_BIT_BFLOAT_COEF_COMPRESSION_ZERO_COEFBIT14_INVERSE */
         0x0, /* gcFEATURE_BIT_NN_COMPRESSION_BYPASSS */
@@ -19040,6 +19700,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         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_TP_REMOVE_FC */
+        0x0, /* gcFEATURE_BIT_VIP_REMOVE_MMU */
         0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */
         0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */
         0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */
@@ -19100,14 +19762,27 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_NN_WASTE_COEF_READ_WRITE_BANDWIDTH_128BYTE_VIPSRAM_IN_FULL_PATIAL_CACHE_MODE_FIX */
         0x0, /* gcFEATURE_BIT_NN_IN_TILE_DATA_IS_ALL_PAD_FIX */
         0x0, /* gcFEATURE_BIT_NN_TP_INSTR_COMPLETE_IN_SAME_CYCLE_WITH_WAIT_EVENT_FIX */
+        0x0, /* gcFEATURE_BIT_CORE_IMAGE_TRANSER_NOT_EFFICIENT_BETWEEN_PARTITION_FIX */
         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 */
         0x1, /* gcFEATURE_BIT_BURST_COLLECT_CONSUMES_MC_DATA_WIDTH_PER_CYCLE_FIX */
-        0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_BUG_FIX */
-        0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_BUG_FIX */
+        0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_FIX */
+        0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_FIX */
+        0x0, /* gcFEATURE_BIT_NN_2ND_IMG_BASE_ADDR_FIX */
+        0x0, /* gcFEATURE_BIT_NN_TP_SYSTEM_FIX */
+        0x0, /* gcFEATURE_BIT_NN_INTILE_YSIZE_128_LIMIT_FIX */
+        0x0, /* gcFEATURE_BIT_SH_CLOCK_GATOR_IDLE_CONDITON_FIX */
+        0x0, /* gcFEATURE_BIT_NN_BURST_COLLECTER_LAST_FLAG_FIX */
+        0x0, /* gcFEATURE_BIT_NN_2ND_IMG_SMALL_3D_TILE_FIX */
+        0x0, /* gcFEATURE_BIT_NN_TILE_YSIZE_127_LIMITATION_FIX */
+        0x0, /* gcFEATURE_BIT_NN_CONV_1D_16BIT_FORMAT_INTILE_SIZE_LIMITATION_FIX */
+        0x0, /* gcFEATURE_BIT_NN_VIPSRAM_DOUBLE_BUFFER_FIX */
+        0x0, /* gcFEATURE_BIT_NN_JD_DIRECT_MODE_FIX */
+        0x0, /* gcFEATURE_BIT_NN_KERNEL_DIRECT_WRONG_PUSH_FIX */
+        0x0, /* gcFEATURE_BIT_HI_DEFAULT_ENABLE_REORDER_FIX */
         0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */
         0x0, /* gcFEATURE_BIT_NN_FP16_ALU */
         0x0, /* gcFEATURE_BIT_NN_INT16_ALU */
@@ -19167,6 +19842,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_VALUE_G2D_DEC400_MINOR */
         0x0, /* gcFEATURE_VALUE_NNMadPerCore */
         0x0, /* gcFEATURE_VALUE_NNCoreCount */
+        0x0, /* gcFEATURE_VALUE_NN_ACTIVE_CORE_COUNT */
         0x0, /* gcFEATURE_VALUE_NNCoreCount_INT8 */
         0x0, /* gcFEATURE_VALUE_NNCoreCount_INT16 */
         0x0, /* gcFEATURE_VALUE_NNCoreCount_FLOAT16 */
@@ -19212,6 +19888,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_VALUE_MAX_TILE_X_SIZE */
         0x0, /* gcFEATURE_VALUE_NN_CLUSTER_NUM_FOR_POWER_CONTROL */
         0x0, /* gcFEATURE_VALUE_NN_IN_LINES_PER_CYCLE */
+        0x0, /* gcFEATURE_VALUE_VIP_CLUSTER_COUNT */
         0x1, /* gcFEATURE_BIT_REG_FastClear */
         0x0, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */
         0x1, /* gcFEATURE_BIT_REG_Pipe3D */
@@ -19613,7 +20290,12 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_LDST_CONV_4ROUNDING_MODES */
         0x1, /* gcFEATURE_BIT_FULL_PACK_MODE_SUPPORT */
         0x1, /* gcFEATURE_BIT_DEPTH_FLOAT32_SUPPORT */
+        0x1, /* gcFEATURE_BIT_GPU_INSPECTOR_COUNTERS */
         0x1, /* gcFEATURE_BIT_FP32_TO_FP16_CONV_FIX */
+        0x1, /* gcFEATURE_BIT_IMGLD_COMP_COUNT_FIX */
+        0x0, /* gcFEATURE_BIT_IMGLD_WIDTH_LT16_FIX */
+        0x0, /* gcFEATURE_BIT_TX_FILTER_ROUND_FIX */
+        0x0, /* gcFEATURE_BIT_SH_FP32_FMA_SUPPORT */
         0x0, /* gcFEATURE_BIT_VG_TS_CULLING */
         0x0, /* gcFEATURE_BIT_VG_FP25 */
         0x0, /* gcFEATURE_BIT_VG_AYUV_INPUT_OUTPUT */
@@ -19720,6 +20402,9 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_PRELU_LEAKLY_RELU_CLAMP */
         0x0, /* gcFEATURE_BIT_TPLITE_BFLOAT16 */
         0x0, /* gcFEATURE_BIT_PREPROCESS_IMG_BUF_640BYTE_LIMIT */
+        0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP16 */
+        0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_BF16 */
+        0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP32 */
         0x0, /* gcFEATURE_BIT_TP_KERNEL_1BYTE_ALGIN */
         0x0, /* gcFEATURE_BIT_BFLOAT_COEF_COMPRESSION_ZERO_COEFBIT14_INVERSE */
         0x0, /* gcFEATURE_BIT_NN_COMPRESSION_BYPASSS */
@@ -19746,6 +20431,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         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_TP_REMOVE_FC */
+        0x0, /* gcFEATURE_BIT_VIP_REMOVE_MMU */
         0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */
         0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */
         0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */
@@ -19806,14 +20493,27 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_NN_WASTE_COEF_READ_WRITE_BANDWIDTH_128BYTE_VIPSRAM_IN_FULL_PATIAL_CACHE_MODE_FIX */
         0x0, /* gcFEATURE_BIT_NN_IN_TILE_DATA_IS_ALL_PAD_FIX */
         0x0, /* gcFEATURE_BIT_NN_TP_INSTR_COMPLETE_IN_SAME_CYCLE_WITH_WAIT_EVENT_FIX */
+        0x0, /* gcFEATURE_BIT_CORE_IMAGE_TRANSER_NOT_EFFICIENT_BETWEEN_PARTITION_FIX */
         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 */
         0x1, /* gcFEATURE_BIT_BURST_COLLECT_CONSUMES_MC_DATA_WIDTH_PER_CYCLE_FIX */
-        0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_BUG_FIX */
-        0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_BUG_FIX */
+        0x0, /* gcFEATURE_BIT_TP_ASSYM_INT8_FIX */
+        0x0, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_FIX */
+        0x0, /* gcFEATURE_BIT_NN_2ND_IMG_BASE_ADDR_FIX */
+        0x0, /* gcFEATURE_BIT_NN_TP_SYSTEM_FIX */
+        0x0, /* gcFEATURE_BIT_NN_INTILE_YSIZE_128_LIMIT_FIX */
+        0x0, /* gcFEATURE_BIT_SH_CLOCK_GATOR_IDLE_CONDITON_FIX */
+        0x0, /* gcFEATURE_BIT_NN_BURST_COLLECTER_LAST_FLAG_FIX */
+        0x0, /* gcFEATURE_BIT_NN_2ND_IMG_SMALL_3D_TILE_FIX */
+        0x0, /* gcFEATURE_BIT_NN_TILE_YSIZE_127_LIMITATION_FIX */
+        0x0, /* gcFEATURE_BIT_NN_CONV_1D_16BIT_FORMAT_INTILE_SIZE_LIMITATION_FIX */
+        0x0, /* gcFEATURE_BIT_NN_VIPSRAM_DOUBLE_BUFFER_FIX */
+        0x0, /* gcFEATURE_BIT_NN_JD_DIRECT_MODE_FIX */
+        0x0, /* gcFEATURE_BIT_NN_KERNEL_DIRECT_WRONG_PUSH_FIX */
+        0x0, /* gcFEATURE_BIT_HI_DEFAULT_ENABLE_REORDER_FIX */
         0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */
         0x0, /* gcFEATURE_BIT_NN_FP16_ALU */
         0x0, /* gcFEATURE_BIT_NN_INT16_ALU */
@@ -19873,6 +20573,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_VALUE_G2D_DEC400_MINOR */
         0x40, /* gcFEATURE_VALUE_NNMadPerCore */
         0x6, /* gcFEATURE_VALUE_NNCoreCount */
+        0x6, /* gcFEATURE_VALUE_NN_ACTIVE_CORE_COUNT */
         0x6, /* gcFEATURE_VALUE_NNCoreCount_INT8 */
         0x6, /* gcFEATURE_VALUE_NNCoreCount_INT16 */
         0x0, /* gcFEATURE_VALUE_NNCoreCount_FLOAT16 */
@@ -19918,6 +20619,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x40, /* gcFEATURE_VALUE_MAX_TILE_X_SIZE */
         0x1, /* gcFEATURE_VALUE_NN_CLUSTER_NUM_FOR_POWER_CONTROL */
         0x3, /* gcFEATURE_VALUE_NN_IN_LINES_PER_CYCLE */
+        0x1, /* gcFEATURE_VALUE_VIP_CLUSTER_COUNT */
         0x0, /* gcFEATURE_BIT_REG_FastClear */
         0x0, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */
         0x1, /* gcFEATURE_BIT_REG_Pipe3D */
@@ -20319,7 +21021,12 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_LDST_CONV_4ROUNDING_MODES */
         0x0, /* gcFEATURE_BIT_FULL_PACK_MODE_SUPPORT */
         0x0, /* gcFEATURE_BIT_DEPTH_FLOAT32_SUPPORT */
+        0x0, /* gcFEATURE_BIT_GPU_INSPECTOR_COUNTERS */
         0x0, /* gcFEATURE_BIT_FP32_TO_FP16_CONV_FIX */
+        0x0, /* gcFEATURE_BIT_IMGLD_COMP_COUNT_FIX */
+        0x1, /* gcFEATURE_BIT_IMGLD_WIDTH_LT16_FIX */
+        0x0, /* gcFEATURE_BIT_TX_FILTER_ROUND_FIX */
+        0x0, /* gcFEATURE_BIT_SH_FP32_FMA_SUPPORT */
         0x0, /* gcFEATURE_BIT_VG_TS_CULLING */
         0x0, /* gcFEATURE_BIT_VG_FP25 */
         0x0, /* gcFEATURE_BIT_VG_AYUV_INPUT_OUTPUT */
@@ -20426,6 +21133,9 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_PRELU_LEAKLY_RELU_CLAMP */
         0x0, /* gcFEATURE_BIT_TPLITE_BFLOAT16 */
         0x0, /* gcFEATURE_BIT_PREPROCESS_IMG_BUF_640BYTE_LIMIT */
+        0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP16 */
+        0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_BF16 */
+        0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP32 */
         0x0, /* gcFEATURE_BIT_TP_KERNEL_1BYTE_ALGIN */
         0x0, /* gcFEATURE_BIT_BFLOAT_COEF_COMPRESSION_ZERO_COEFBIT14_INVERSE */
         0x0, /* gcFEATURE_BIT_NN_COMPRESSION_BYPASSS */
@@ -20452,6 +21162,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         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_TP_REMOVE_FC */
+        0x0, /* gcFEATURE_BIT_VIP_REMOVE_MMU */
         0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */
         0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */
         0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */
@@ -20512,14 +21224,27 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_NN_WASTE_COEF_READ_WRITE_BANDWIDTH_128BYTE_VIPSRAM_IN_FULL_PATIAL_CACHE_MODE_FIX */
         0x1, /* gcFEATURE_BIT_NN_IN_TILE_DATA_IS_ALL_PAD_FIX */
         0x0, /* gcFEATURE_BIT_NN_TP_INSTR_COMPLETE_IN_SAME_CYCLE_WITH_WAIT_EVENT_FIX */
+        0x0, /* gcFEATURE_BIT_CORE_IMAGE_TRANSER_NOT_EFFICIENT_BETWEEN_PARTITION_FIX */
         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_BURST_COLLECT_CONSUMES_MC_DATA_WIDTH_PER_CYCLE_FIX */
-        0x1, /* gcFEATURE_BIT_TP_ASSYM_INT8_BUG_FIX */
-        0x1, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_BUG_FIX */
+        0x1, /* gcFEATURE_BIT_TP_ASSYM_INT8_FIX */
+        0x1, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_FIX */
+        0x1, /* gcFEATURE_BIT_NN_2ND_IMG_BASE_ADDR_FIX */
+        0x0, /* gcFEATURE_BIT_NN_TP_SYSTEM_FIX */
+        0x0, /* gcFEATURE_BIT_NN_INTILE_YSIZE_128_LIMIT_FIX */
+        0x1, /* gcFEATURE_BIT_SH_CLOCK_GATOR_IDLE_CONDITON_FIX */
+        0x1, /* gcFEATURE_BIT_NN_BURST_COLLECTER_LAST_FLAG_FIX */
+        0x1, /* gcFEATURE_BIT_NN_2ND_IMG_SMALL_3D_TILE_FIX */
+        0x0, /* gcFEATURE_BIT_NN_TILE_YSIZE_127_LIMITATION_FIX */
+        0x1, /* gcFEATURE_BIT_NN_CONV_1D_16BIT_FORMAT_INTILE_SIZE_LIMITATION_FIX */
+        0x1, /* gcFEATURE_BIT_NN_VIPSRAM_DOUBLE_BUFFER_FIX */
+        0x0, /* gcFEATURE_BIT_NN_JD_DIRECT_MODE_FIX */
+        0x1, /* gcFEATURE_BIT_NN_KERNEL_DIRECT_WRONG_PUSH_FIX */
+        0x1, /* gcFEATURE_BIT_HI_DEFAULT_ENABLE_REORDER_FIX */
         0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */
         0x0, /* gcFEATURE_BIT_NN_FP16_ALU */
         0x1, /* gcFEATURE_BIT_NN_INT16_ALU */
@@ -20579,6 +21304,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_VALUE_G2D_DEC400_MINOR */
         0x40, /* gcFEATURE_VALUE_NNMadPerCore */
         0x6, /* gcFEATURE_VALUE_NNCoreCount */
+        0x6, /* gcFEATURE_VALUE_NN_ACTIVE_CORE_COUNT */
         0x6, /* gcFEATURE_VALUE_NNCoreCount_INT8 */
         0x6, /* gcFEATURE_VALUE_NNCoreCount_INT16 */
         0x0, /* gcFEATURE_VALUE_NNCoreCount_FLOAT16 */
@@ -20624,6 +21350,7 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x40, /* gcFEATURE_VALUE_MAX_TILE_X_SIZE */
         0x1, /* gcFEATURE_VALUE_NN_CLUSTER_NUM_FOR_POWER_CONTROL */
         0x3, /* gcFEATURE_VALUE_NN_IN_LINES_PER_CYCLE */
+        0x1, /* gcFEATURE_VALUE_VIP_CLUSTER_COUNT */
         0x0, /* gcFEATURE_BIT_REG_FastClear */
         0x0, /* gcFEATURE_BIT_REG_SpecialAntiAliasing */
         0x1, /* gcFEATURE_BIT_REG_Pipe3D */
@@ -21025,7 +21752,12 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_LDST_CONV_4ROUNDING_MODES */
         0x0, /* gcFEATURE_BIT_FULL_PACK_MODE_SUPPORT */
         0x0, /* gcFEATURE_BIT_DEPTH_FLOAT32_SUPPORT */
+        0x0, /* gcFEATURE_BIT_GPU_INSPECTOR_COUNTERS */
         0x0, /* gcFEATURE_BIT_FP32_TO_FP16_CONV_FIX */
+        0x0, /* gcFEATURE_BIT_IMGLD_COMP_COUNT_FIX */
+        0x1, /* gcFEATURE_BIT_IMGLD_WIDTH_LT16_FIX */
+        0x0, /* gcFEATURE_BIT_TX_FILTER_ROUND_FIX */
+        0x0, /* gcFEATURE_BIT_SH_FP32_FMA_SUPPORT */
         0x0, /* gcFEATURE_BIT_VG_TS_CULLING */
         0x0, /* gcFEATURE_BIT_VG_FP25 */
         0x0, /* gcFEATURE_BIT_VG_AYUV_INPUT_OUTPUT */
@@ -21132,6 +21864,9 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x0, /* gcFEATURE_BIT_PRELU_LEAKLY_RELU_CLAMP */
         0x0, /* gcFEATURE_BIT_TPLITE_BFLOAT16 */
         0x0, /* gcFEATURE_BIT_PREPROCESS_IMG_BUF_640BYTE_LIMIT */
+        0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP16 */
+        0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_BF16 */
+        0x0, /* gcFEATURE_BIT_NN_POST_OUT_SUPPORT_FP32 */
         0x0, /* gcFEATURE_BIT_TP_KERNEL_1BYTE_ALGIN */
         0x0, /* gcFEATURE_BIT_BFLOAT_COEF_COMPRESSION_ZERO_COEFBIT14_INVERSE */
         0x0, /* gcFEATURE_BIT_NN_COMPRESSION_BYPASSS */
@@ -21158,6 +21893,8 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         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_TP_REMOVE_FC */
+        0x0, /* gcFEATURE_BIT_VIP_REMOVE_MMU */
         0x0, /* gcFEATURE_BIT_NN_MP_INTER_CONNECT_RING */
         0x0, /* gcFEATURE_BIT_NN_SUPPORT_BATCH */
         0x0, /* gcFEATURE_BIT_NN_2D_AVERAGE_OUTPUT */
@@ -21218,14 +21955,27 @@ static gcsFEATURE_DATABASE gChipInfo[] = {
         0x1, /* gcFEATURE_BIT_NN_WASTE_COEF_READ_WRITE_BANDWIDTH_128BYTE_VIPSRAM_IN_FULL_PATIAL_CACHE_MODE_FIX */
         0x1, /* gcFEATURE_BIT_NN_IN_TILE_DATA_IS_ALL_PAD_FIX */
         0x0, /* gcFEATURE_BIT_NN_TP_INSTR_COMPLETE_IN_SAME_CYCLE_WITH_WAIT_EVENT_FIX */
+        0x0, /* gcFEATURE_BIT_CORE_IMAGE_TRANSER_NOT_EFFICIENT_BETWEEN_PARTITION_FIX */
         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_BURST_COLLECT_CONSUMES_MC_DATA_WIDTH_PER_CYCLE_FIX */
-        0x1, /* gcFEATURE_BIT_TP_ASSYM_INT8_BUG_FIX */
-        0x1, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_BUG_FIX */
+        0x1, /* gcFEATURE_BIT_TP_ASSYM_INT8_FIX */
+        0x1, /* gcFEATURE_BIT_NN_PAD_SLICE_ERROR_WHEN_TRANSPSE_FIX */
+        0x1, /* gcFEATURE_BIT_NN_2ND_IMG_BASE_ADDR_FIX */
+        0x0, /* gcFEATURE_BIT_NN_TP_SYSTEM_FIX */
+        0x0, /* gcFEATURE_BIT_NN_INTILE_YSIZE_128_LIMIT_FIX */
+        0x1, /* gcFEATURE_BIT_SH_CLOCK_GATOR_IDLE_CONDITON_FIX */
+        0x1, /* gcFEATURE_BIT_NN_BURST_COLLECTER_LAST_FLAG_FIX */
+        0x1, /* gcFEATURE_BIT_NN_2ND_IMG_SMALL_3D_TILE_FIX */
+        0x0, /* gcFEATURE_BIT_NN_TILE_YSIZE_127_LIMITATION_FIX */
+        0x1, /* gcFEATURE_BIT_NN_CONV_1D_16BIT_FORMAT_INTILE_SIZE_LIMITATION_FIX */
+        0x1, /* gcFEATURE_BIT_NN_VIPSRAM_DOUBLE_BUFFER_FIX */
+        0x0, /* gcFEATURE_BIT_NN_JD_DIRECT_MODE_FIX */
+        0x1, /* gcFEATURE_BIT_NN_KERNEL_DIRECT_WRONG_PUSH_FIX */
+        0x1, /* gcFEATURE_BIT_HI_DEFAULT_ENABLE_REORDER_FIX */
         0x0, /* gcFEATURE_BIT_NN_INTERLEVE8 */
         0x0, /* gcFEATURE_BIT_NN_FP16_ALU */
         0x1, /* gcFEATURE_BIT_NN_INT16_ALU */
index e589de9..f0a6da7 100644 (file)
@@ -1594,6 +1594,7 @@ gceSTATUS
 gcoOS_SetProfileSetting(
         IN gcoOS Os,
         IN gctBOOL Enable,
+        IN gceProfilerMode ProfileMode,
         IN gctCONST_STRING FileName
         );
 #endif
index 7284e65..18ab00c 100644 (file)
@@ -326,15 +326,6 @@ This define enables the use of VM for gckCommand and fence buffers.
 #   define gcdENABLE_FSCALE_VAL_ADJUST          1
 #endif
 
-/*
-    gcdCAPTURE_ONLY_MODE
-        When non-zero, driver is built with capture only mode.
-        1) Set DDR address range in capture file with contiguousBase and contiguoutsSize.
-           Video memory allocation will go through reserved pool with capture only mode.
-        2) Set SRAM address range in capture file with sRAMBases, sRAMSizes and extSRAMBases, extSRAMSizes.
-           Video memory querion will go through reserved pool with capture only mode.
-        3) TODO: SRAM video memory allocation.
-*/
 #ifndef gcdCAPTURE_ONLY_MODE
 #   define gcdCAPTURE_ONLY_MODE                 0
 #endif
index 9b1bff7..85d77dd 100644 (file)
@@ -872,6 +872,16 @@ typedef struct _gcsPROBESTATES
     gctUINT32                   probeAddress;
 }gcsPROBESTATES;
 
+typedef struct _gckPROFILER
+{
+    /* Profile mode */
+    gceProfilerMode             profileMode;
+    /* Enable profiling */
+    gctBOOL                     profileEnable;
+    /* Clear profile register or not*/
+    gctBOOL                     profileCleanRegister;
+}gckPROFILER;
+
 /* Construct a Profiler object per context. */
 gceSTATUS
 gcoPROFILER_Construct(
index 3557882..98ccc40 100644 (file)
@@ -62,9 +62,9 @@
 
 #define gcvVERSION_PATCH        3
 
-#define gcvVERSION_BUILD     305572
+#define gcvVERSION_BUILD     336687
 
-#define gcvVERSION_STRING    "6.4.3.p1.305572"
+#define gcvVERSION_STRING    "6.4.3.p2.336687"
 
 #endif /* __gc_hal_version_h_ */
 
index a68cf59..4d8fbf0 100644 (file)
@@ -776,6 +776,8 @@ typedef struct _gcsHAL_GET_PROFILE_SETTING
 {
     /* Enable profiling */
     OUT gctBOOL                 enable;
+    /* Profile mode */
+    OUT gceProfilerMode         profileMode;
 }
 gcsHAL_GET_PROFILE_SETTING;
 
@@ -784,6 +786,8 @@ typedef struct _gcsHAL_SET_PROFILE_SETTING
 {
     /* Enable profiling */
     IN gctBOOL                  enable;
+    /* Profile mode */
+    IN gceProfilerMode          profileMode;
 }
 gcsHAL_SET_PROFILE_SETTING;
 
index 7086567..f32300b 100644 (file)
@@ -696,6 +696,9 @@ typedef enum _gceFEATURE
     gcvFEATURE_BIT_USC_INDIVIDUAL_PORT_WRT_EARLY_EVICT_DATA_CORRUPT_FIX,
     gcvFEATURE_BIT_NN_TP_INSTR_COMPLETE_IN_SAME_CYCLE_WITH_WAIT_EVENT_FIX,
 
+    gcvFEATURE_IMGLD_WIDTH_LT16_FIX,
+
+    gcFEATURE_BIT_IMGLD_COMP_COUNT_FIX,
     /* Insert features above this comment only. */
     gcvFEATURE_COUNT                /* Not a feature. */
 }
@@ -781,6 +784,7 @@ typedef enum _gceSURF_TYPE
     gcvSURF_3D                      = 0x200000, /* It's 3d surface */
     gcvSURF_DMABUF_EXPORTABLE       = 0x400000, /* master node can be exported as dma-buf fd */
     gcvSURF_CACHE_MODE_128          = 0x800000,
+    gcvSURF_TILED                   = 0x1000000, /* force create tile buffer, as we will convert it to supertile according to related hardware feature by default */
 
     gcvSURF_TEXTURE_LINEAR               = gcvSURF_TEXTURE
                                          | gcvSURF_LINEAR,
@@ -1912,6 +1916,13 @@ typedef enum _gceDUMP_BUFFER_TYPE
 }
 gceDUMP_BUFFER_TYPE;
 
+typedef enum _gceProfilerMode
+{
+    gcvPROFILER_PROBE_MODE = 0,
+    gcvPROFILER_AHB_MODE   = 1,
+}
+gceProfilerMode;
+
 #ifdef __cplusplus
 }
 #endif
index 48e47ca..ccbc446 100644 (file)
@@ -127,7 +127,11 @@ extern "C" {
 
 #if defined(ANDROID) && defined(__BIONIC_FORTIFY)
 #if defined(__clang__)
-#       define gcmINLINE            __inline__ __attribute__ ((always_inline)) __attribute__ ((gnu_inline))
+#if (__clang_major__ >= 10)
+#           define gcmINLINE            __inline__ __attribute__ ((always_inline))
+#       else
+#           define gcmINLINE            __inline__ __attribute__ ((always_inline)) __attribute__ ((gnu_inline))
+#       endif
 #   else
 #       define gcmINLINE            __inline__ __attribute__ ((always_inline)) __attribute__ ((gnu_inline)) __attribute__ ((artificial))
 #   endif
index 86dc819..4d5096e 100644 (file)
@@ -276,7 +276,7 @@ _NonContiguousAlloc(
         pages[i] = p;
     }
 
-    MdlPriv->contiguousPages = (struct page *)pages;
+    MdlPriv->nonContiguousPages = pages;
 
     gcmkFOOTER_ARG("pages=0x%X", pages);
     return gcvSTATUS_OK;
@@ -413,7 +413,7 @@ _NonContiguous1MPagesAlloc(
             gcmkONERROR(gcvSTATUS_OUT_OF_MEMORY);
         }
     }
-    MdlPriv->contiguousPages = (struct page *)pages;
+    MdlPriv->nonContiguousPages = pages;
 
     for (i = 0; i < numPages1M; i++)
     {
@@ -474,7 +474,11 @@ _GFPAlloc(
     gceSTATUS status;
     gctSIZE_T i = 0;
     gctBOOL contiguous = Flags & gcvALLOC_FLAG_CONTIGUOUS;
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 4, 0)
     u32 normal_gfp = __GFP_HIGH | __GFP_ATOMIC | __GFP_NORETRY | gcdNOWARN;
+#else
+    u32 normal_gfp = __GFP_HIGH | __GFP_NORETRY | gcdNOWARN;
+#endif
     u32 gfp = (contiguous ? normal_gfp : GFP_KERNEL) | __GFP_HIGHMEM | gcdNOWARN;
 
     struct gfp_alloc *priv = (struct gfp_alloc *)Allocator->privateData;
@@ -612,8 +616,7 @@ _GFPAlloc(
             }
         }
 
-#if LINUX_VERSION_CODE >= KERNEL_VERSION (3,6,0) \
-    && (defined(ARCH_HAS_SG_CHAIN) || defined(CONFIG_ARCH_HAS_SG_CHAIN))
+#if gcdSYS_HAS_SG_CHAIN
         result = sg_alloc_table_from_pages(&mdlPriv->sgt,
                     mdlPriv->nonContiguousPages, NumPages, 0,
                     NumPages << PAGE_SHIFT, GFP_KERNEL);
@@ -653,8 +656,7 @@ _GFPAlloc(
                 _NonContiguousFree(mdlPriv->nonContiguousPages, NumPages);
             }
 
-#if LINUX_VERSION_CODE >= KERNEL_VERSION (3,6,0) \
-    && (defined (ARCH_HAS_SG_CHAIN) || defined (CONFIG_ARCH_HAS_SG_CHAIN))
+#if gcdSYS_HAS_SG_CHAIN
             sg_free_table(&mdlPriv->sgt);
 #else
             kfree(mdlPriv->sgt.sgl);
@@ -815,8 +817,7 @@ _GFPFree(
         dma_unmap_sg(galcore_device, mdlPriv->sgt.sgl, mdlPriv->sgt.nents,
                 DMA_FROM_DEVICE);
 
-#if LINUX_VERSION_CODE >= KERNEL_VERSION (3,6,0) \
-    && (defined (ARCH_HAS_SG_CHAIN) || defined (CONFIG_ARCH_HAS_SG_CHAIN))
+#if gcdSYS_HAS_SG_CHAIN
         sg_free_table(&mdlPriv->sgt);
 #else
         kfree(mdlPriv->sgt.sgl);
index a21884d..d88879f 100644 (file)
@@ -93,7 +93,6 @@ struct um_desc
         struct
         {
             struct page **pages;
-            struct sg_table sgt;
         };
 
         /* UM_PFN_MAP. */
@@ -104,6 +103,8 @@ struct um_desc
         };
     };
 
+    struct sg_table sgt;
+
     /* contiguous chunks, does not include padding pages. */
     int chunk_count;
 
@@ -184,8 +185,7 @@ static int import_page_map(struct um_desc *um,
         }
     }
 
-#if LINUX_VERSION_CODE >= KERNEL_VERSION (3,6,0) \
-    && (defined(ARCH_HAS_SG_CHAIN) || defined(CONFIG_ARCH_HAS_SG_CHAIN))
+#if gcdSYS_HAS_SG_CHAIN
     result = sg_alloc_table_from_pages(&um->sgt, pages, page_count,
                     addr & ~PAGE_MASK, size, GFP_KERNEL | gcdNOWARN);
 
@@ -214,8 +214,7 @@ static int import_page_map(struct um_desc *um,
     return 0;
 
 error:
-#if LINUX_VERSION_CODE >= KERNEL_VERSION (3,6,0) \
-    && (defined(ARCH_HAS_SG_CHAIN) || defined(CONFIG_ARCH_HAS_SG_CHAIN))
+#if gcdSYS_HAS_SG_CHAIN
     sg_free_table(&um->sgt);
 #else
     kfree(um->sgt.sgl);
@@ -236,6 +235,9 @@ static int import_pfn_map(struct um_desc *um,
     struct vm_area_struct *vma;
     unsigned long *pfns;
     int *refs;
+    struct page **pages = gcvNULL;
+    int result = 0;
+    size_t pageCount = 0;
 
     if (!current->mm)
         return -ENOTTY;
@@ -260,6 +262,14 @@ static int import_pfn_map(struct um_desc *um,
         return -ENOMEM;
     }
 
+    pages = kzalloc(pfn_count * sizeof(void *), GFP_KERNEL | gcdNOWARN);
+    if (!pages)
+    {
+        kfree(pfns);
+        kfree(refs);
+        return -ENOMEM;
+    }
+
     for (i = 0; i < pfn_count; i++)
     {
         spinlock_t *ptl;
@@ -300,11 +310,6 @@ static int import_pfn_map(struct um_desc *um,
             goto err;
 
         pte = pte_offset_map_lock(current->mm, pmd, addr, &ptl);
-        if (!pte)
-        {
-            spin_unlock(ptl);
-            goto err;
-        }
 
         if (!pte_present(*pte))
         {
@@ -325,6 +330,8 @@ static int import_pfn_map(struct um_desc *um,
         {
             struct page *page = pfn_to_page(pfns[i]);
             refs[i] = get_page_unless_zero(page);
+            pages[i] = page;
+            pageCount++;
         }
     }
 
@@ -337,6 +344,41 @@ static int import_pfn_map(struct um_desc *um,
         }
     }
 
+    if (pageCount == pfn_count)
+    {
+#if gcdSYS_HAS_SG_CHAIN
+        result = sg_alloc_table_from_pages(&um->sgt, pages, pfn_count,
+                        addr & ~PAGE_MASK, pfn_count * PAGE_SIZE, GFP_KERNEL | gcdNOWARN);
+
+#else
+        result = alloc_sg_list_from_pages(&um->sgt.sgl, pages, pfn_count,
+                        addr & ~PAGE_MASK, pfn_count * PAGE_SIZE, &um->sgt.nents);
+
+        um->sgt.orig_nents = um->sgt.nents;
+#endif
+        if (unlikely(result < 0))
+        {
+            printk("[galcore]: %s: sg_alloc_table_from_pages failed\n", __FUNCTION__);
+            goto err;
+        }
+
+        result = dma_map_sg(galcore_device, um->sgt.sgl, um->sgt.nents, DMA_TO_DEVICE);
+
+        if (unlikely(result != um->sgt.nents))
+        {
+#if gcdSYS_HAS_SG_CHAIN
+            sg_free_table(&um->sgt);
+#else
+            kfree(um->sgt.sgl);
+#endif
+            printk("[galcore]: %s: dma_map_sg failed\n", __FUNCTION__);
+            goto err;
+        }
+    }
+
+    kfree(pages);
+    pages = gcvNULL;
+
     um->type = UM_PFN_MAP;
     um->pfns = pfns;
     um->refs = refs;
@@ -349,6 +391,9 @@ err:
     if (refs)
         kfree(refs);
 
+    if (pages)
+        kfree(pages);
+
     return -ENOTTY;
 }
 
@@ -364,7 +409,7 @@ _Import(
     gceSTATUS status = gcvSTATUS_OK;
     unsigned long vm_flags = 0;
     struct vm_area_struct *vma = NULL;
-    gctSIZE_T start, end, memory;
+    unsigned long start, end, memory;
     int result = 0;
 
     gctSIZE_T extraPage;
@@ -377,7 +422,7 @@ _Import(
     gcmkVERIFY_ARGUMENT(Memory != gcvNULL || Physical != ~0ULL);
     gcmkVERIFY_ARGUMENT(Size > 0);
 
-    memory = (Physical != gcvINVALID_PHYSICAL_ADDRESS) ? Physical : (gctSIZE_T)Memory;
+    memory = untagged_addr((unsigned long)Memory);
 
 #if LINUX_VERSION_CODE >= KERNEL_VERSION (5,4,0)
     memory = untagged_addr(memory);
@@ -409,11 +454,9 @@ _Import(
         return gcvSTATUS_INVALID_ARGUMENT;
     }
 
-    memory = (gctSIZE_T)Memory;
-
     if (memory)
     {
-        gctSIZE_T vaddr = memory;
+        unsigned long vaddr = memory;
 
         for (i = 0; i < pageCount; i++)
         {
@@ -621,8 +664,7 @@ static void release_page_map(struct um_desc *um)
 
     dma_unmap_sg(galcore_device, um->sgt.sgl, um->sgt.nents, DMA_FROM_DEVICE);
 
-#if LINUX_VERSION_CODE >= KERNEL_VERSION (3,6,0) \
-    && (defined(ARCH_HAS_SG_CHAIN) || defined(CONFIG_ARCH_HAS_SG_CHAIN))
+#if gcdSYS_HAS_SG_CHAIN
     sg_free_table(&um->sgt);
 #else
     kfree(um->sgt.sgl);
@@ -763,7 +805,7 @@ _UserMemoryCache(
     struct um_desc *um = Mdl->priv;
     enum dma_data_direction dir;
 
-    if (um->type != UM_PAGE_MAP)
+    if (um->type == UM_PHYSICAL_MAP)
     {
         _MemoryBarrier();
         return gcvSTATUS_OK;
index d788c3a..83f006d 100644 (file)
@@ -178,8 +178,7 @@ gckOS_FreeAllocators(
     return gcvSTATUS_OK;
 }
 
-#if LINUX_VERSION_CODE < KERNEL_VERSION (3,6,0) \
-    || (!defined (ARCH_HAS_SG_CHAIN) && !defined (CONFIG_ARCH_HAS_SG_CHAIN))
+#if !gcdSYS_HAS_SG_CHAIN
 
 #if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,23)
 static inline void sg_set_page(struct scatterlist *sg, struct page *page,
index e6f1d24..0d54779 100644 (file)
@@ -561,8 +561,7 @@ OnError:
     return status;
 }
 
-#if LINUX_VERSION_CODE < KERNEL_VERSION (3,6,0) \
-    || (!defined (ARCH_HAS_SG_CHAIN) && !defined (CONFIG_ARCH_HAS_SG_CHAIN))
+#if !gcdSYS_HAS_SG_CHAIN
 int
 alloc_sg_list_from_pages(
     struct scatterlist **sgl,
index 8b02897..086416d 100644 (file)
@@ -953,9 +953,6 @@ gckOS_DebugStatus2Name(
 ***** Kernel Dump **************************************************************
 *******************************************************************************/
 
-/*
- * TODO: Dump to file is only valid in linux currently.
- */
 #ifndef gcmkDUMP_STRING
 #  define gcmkDUMP_STRING(os, s)    gcmkOUTPUT_STRING((s))
 #endif
index a6aba6e..e444f58 100644 (file)
@@ -1449,7 +1449,24 @@ static int _set_clk(const char* buf)
 
 static int gc_clk_write(const char __user *buf, size_t count, void* data)
 {
-    _set_clk(buf);
+    size_t ret;
+    char _buf[100];
+
+    memset((void*)_buf, 0, 100);
+
+    if (count > 100)
+    {
+        printk("Error: input buffer too large\n");
+    }
+
+    ret = copy_from_user(_buf, buf, count);
+    if (ret != 0)
+    {
+        printk("Error: lost data: %d\n", (int)ret);
+        return ret;
+    }
+
+    _set_clk(_buf);
 
     return count;
 }
@@ -2234,11 +2251,6 @@ gckGALDEVICE_Construct(
                 Args->gpu3DMinClock
                 ));
 #endif
-
-            gcmkONERROR(gckHARDWARE_SetGpuProfiler(
-                device->kernels[i]->hardware,
-                Args->gpuProfiler
-                ));
         }
         else
         {
index 2883ef8..7f6f2ac 100644 (file)
@@ -168,10 +168,6 @@ static int powerManagement = 1;
 module_param(powerManagement, int, 0644);
 MODULE_PARM_DESC(powerManagement, "Disable auto power saving if set it to 0, enabled by default");
 
-static int gpuProfiler = 0;
-module_param(gpuProfiler, int, 0644);
-MODULE_PARM_DESC(gpuProfiler, "Enable profiling support, disabled by default");
-
 static ulong baseAddress = 0;
 module_param(baseAddress, ulong, 0644);
 MODULE_PARM_DESC(baseAddress, "Only used for old MMU, set it to 0 if memory which can be accessed by GPU falls into 0 - 2G, otherwise set it to 0x80000000");
@@ -419,7 +415,6 @@ _InitModuleParam(
     p->smallBatch      = smallBatch;
 
     p->stuckDump   = stuckDump;
-    p->gpuProfiler = gpuProfiler;
 
     p->deviceType  = type;
     p->showArgs    = showArgs;
@@ -539,7 +534,6 @@ _SyncModuleParam(
     smallBatch      = p->smallBatch;
 
     stuckDump   = p->stuckDump;
-    gpuProfiler = p->gpuProfiler;
 
     type        = p->deviceType;
     showArgs    = p->showArgs;
@@ -608,7 +602,6 @@ gckOS_DumpParam(
     printk("  physSize          = 0x%08lX\n", physSize);
     printk("  recovery          = %d\n",      recovery);
     printk("  stuckDump         = %d\n",      stuckDump);
-    printk("  gpuProfiler       = %d\n",      gpuProfiler);
     printk("  userClusterMask   = 0x%x\n",    userClusterMask);
     printk("  GPU smallBatch    = %d\n",      smallBatch);
     printk("  allMapInOne       = %d\n",      allMapInOne);
@@ -1048,9 +1041,16 @@ static struct file_operations driver_fops =
     .open       = drv_open,
     .release    = drv_release,
     .unlocked_ioctl = drv_ioctl,
+
+#if LINUX_VERSION_CODE <= KERNEL_VERSION(5,8,18)
+
 #ifdef HAVE_COMPAT_IOCTL
     .compat_ioctl = drv_ioctl,
 #endif
+
+#else
+    .compat_ioctl = drv_ioctl,
+#endif
 };
 
 static struct miscdevice gal_device = {
index df8dcf4..60a76e6 100644 (file)
@@ -82,6 +82,17 @@ struct viv_gem_object {
     gctBOOL               cacheable;
 };
 
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,11,0)
+void viv_gem_free_object(struct drm_gem_object *gem_obj);
+struct dma_buf *viv_gem_prime_export(struct drm_gem_object *gem_obj,
+                int flags);
+
+static const struct drm_gem_object_funcs viv_gem_object_funcs = {
+    .free = viv_gem_free_object,
+    .export = viv_gem_prime_export,
+};
+#endif
+
 #if LINUX_VERSION_CODE >= KERNEL_VERSION(5,4,0)
 struct dma_buf *viv_gem_prime_export(struct drm_gem_object *gem_obj,
                 int flags)
@@ -141,6 +152,9 @@ struct drm_gem_object *viv_gem_prime_import(struct drm_device *drm,
     /* ioctl output */
     gem_obj = kzalloc(sizeof(struct viv_gem_object), GFP_KERNEL);
     drm_gem_private_object_init(drm, gem_obj, dmabuf->size);
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,11,0)
+    gem_obj->funcs = &viv_gem_object_funcs;
+#endif
     viv_obj = container_of(gem_obj, struct viv_gem_object, base);
     viv_obj->node_handle = iface.u.WrapUserMemory.node;
     viv_obj->node_object = nodeObject;
@@ -224,6 +238,9 @@ static int viv_ioctl_gem_create(struct drm_device *drm, void *data,
     /* ioctl output */
     gem_obj = kzalloc(sizeof(struct viv_gem_object), GFP_KERNEL);
     drm_gem_private_object_init(drm, gem_obj, (size_t)alignSize);
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,11,0)
+    gem_obj->funcs = &viv_gem_object_funcs;
+#endif
     ret = drm_gem_handle_create(file, gem_obj, &args->handle);
 
     viv_obj = container_of(gem_obj, struct viv_gem_object, base);
@@ -799,14 +816,18 @@ static struct drm_driver viv_drm_driver = {
 #endif
     .open = viv_drm_open,
     .postclose = viv_drm_postclose,
+#if LINUX_VERSION_CODE < KERNEL_VERSION(5,11,0)
 #if LINUX_VERSION_CODE >= KERNEL_VERSION(4,7,0)
     .gem_free_object_unlocked = viv_gem_free_object,
 #else
     .gem_free_object    = viv_gem_free_object,
+#endif
 #endif
     .prime_handle_to_fd = drm_gem_prime_handle_to_fd,
     .prime_fd_to_handle = drm_gem_prime_fd_to_handle,
+#if LINUX_VERSION_CODE < KERNEL_VERSION(5,11,0)
     .gem_prime_export   = viv_gem_prime_export,
+#endif
     .gem_prime_import   = viv_gem_prime_import,
     .ioctls             = viv_ioctls,
     .num_ioctls         = DRM_VIV_NUM_IOCTLS,
index d803cb2..09f0011 100644 (file)
 #define current_mm_mmap_sem current->mm->mmap_sem
 #endif
 
+#ifndef untagged_addr
+#define untagged_addr(addr) (addr)
+#endif
+
 extern struct device *galcore_device;
 
 /******************************************************************************\
index c0b7b71..bba9150 100644 (file)
@@ -492,12 +492,6 @@ _QueryProcessPageTable(
             return gcvSTATUS_NOT_FOUND;
 
         pte = pte_offset_map_lock(current->mm, pmd, logical, &ptl);
-        if (!pte)
-        {
-            spin_unlock(ptl);
-            return gcvSTATUS_NOT_FOUND;
-        }
-
         if (!pte_present(*pte))
         {
             pte_unmap_unlock(pte, ptl);
@@ -3452,7 +3446,7 @@ gckOS_MapPagesEx(
     while (PageCount-- > 0)
     {
         gctUINT i;
-        gctPHYS_ADDR_T phys = ~0U;
+        gctPHYS_ADDR_T phys = ~0ULL;
 
         gcmALLOCATOR_Physical(allocator, mdl, offset, &phys);
 
@@ -3610,7 +3604,6 @@ gckOS_Map1MPages(
     PLINUX_MDL mdl;
     gctUINT32* table;
     gctUINT32  offset = 0;
-
     gctSIZE_T bytes = PageCount * 4;
     gckALLOCATOR allocator;
 
@@ -3657,7 +3650,7 @@ gckOS_Map1MPages(
 
     while (PageCount-- > 0)
     {
-        gctPHYS_ADDR_T phys = ~0U;
+        gctPHYS_ADDR_T phys = ~0ULL;
 
         gcmALLOCATOR_Physical(allocator, mdl, offset, &phys);
 
@@ -3673,14 +3666,15 @@ gckOS_Map1MPages(
         }
 
         /* Get the start physical of 1M page. */
-        phys &= ~((1 << 20) - 1);
+        phys &= ~(gcd1M_PAGE_SIZE - 1);
 
-        gcmkONERROR(
-            gckMMU_SetPage(Os->device->kernels[Core]->mmu,
+        gcmkONERROR(gckMMU_SetPage(
+            Os->device->kernels[Core]->mmu,
             phys,
             gcvPAGE_TYPE_1M,
             Writable,
-            table++));
+            table++
+            ));
 
         offset += gcd1M_PAGE_SIZE;
     }
@@ -7248,10 +7242,6 @@ gckOS_QueryOption(
     {
         *Value = 0;
     }
-    else if (!strcmp(Option, "gpuProfiler"))
-    {
-        *Value = device->args.gpuProfiler;
-    }
     else if (!strcmp(Option, "userClusterMask"))
     {
         *Value = device->args.userClusterMask;
index 3289848..d155899 100644 (file)
@@ -113,7 +113,6 @@ typedef struct _gcsMODULE_PARAMETERS
 
     /* Debug or other information. */
     gctUINT                 stuckDump;
-    gctINT                  gpuProfiler;
 
     /* device type, 0 for char device, 1 for misc device. */
     gctUINT                 deviceType;
@@ -300,7 +299,6 @@ struct _gcsPLATFORM
     const char *name;
     gcsPLATFORM_OPERATIONS* ops;
 
-    /* TODO: Remove AXI-SRAM size from feature database. */
     gckDEVICE dev;
 
     /* PLATFORM specific flags */
index daf2205..fb8fe8d 100644 (file)
@@ -290,7 +290,6 @@ _GetGPUPhysical(
     gctPHYS_ADDR_T sram_gpu_base = pcie_platform->pcie_info[0].sram_gpu_bases[0];
     uint32_t sram_size = pcie_platform->pcie_info[0].sram_sizes[0];
 
-    /* TODO: We should always set axi sram size by insmod parameters, never from feature database. */
     if (!sram_size && Platform->dev && Platform->dev->extSRAMSizes[0])
     {
         sram_size = Platform->dev->extSRAMSizes[0];
index 3e6c75a..97e88a9 100644 (file)
@@ -113,7 +113,7 @@ static sc_ipc_t gpu_ipcHandle;
 #include <linux/pm_runtime.h>
 #include <linux/regulator/consumer.h>
 
-#ifdef CONFIG_DEVICE_THERMAL
+#if IS_ENABLED(CONFIG_DEVICE_THERMAL)
 #if LINUX_VERSION_CODE >= KERNEL_VERSION(3,10,0)
 #    include <linux/device_cooling.h>
 #    define REG_THERMAL_NOTIFIER(a) register_devfreq_cooling_notifier(a);
@@ -906,7 +906,6 @@ static inline int get_power_imx8_subsystem(struct device *pdev)
         }
 
 #if defined(CONFIG_ANDROID) && LINUX_VERSION_CODE < KERNEL_VERSION(4,9,0)
-        /* TODO: freescale BSP issue in some platform like imx8dv. */
         clk_prepare(clk_core);
         clk_set_rate(clk_core, 800000000);
         clk_unprepare(clk_core);
@@ -1848,6 +1847,9 @@ int gckPLATFORM_Init(struct platform_driver *pdrv,
 #endif
 
     *platform = &imx_platform;
+#ifdef GALCORE_BUILD_BY
+    printk("module built by %s at %s", GALCORE_BUILD_BY, GALCORE_BUILD_TM);
+#endif
     return 0;
 }
 
index fa4fb51..6396755 100644 (file)
@@ -27,3 +27,8 @@ EXTRA_CFLAGS += -DgcdGPU_2D_TIMEOUT=20000
 EXTRA_CFLAGS += -DNO_DMA_COHERENT=1
 EXTRA_CFLAGS += -DgcdSYS_FREE_MEMORY_LIMIT=51200
 
+ifeq ($(CONFIG_MXC_GPU_VIV),m)
+GALCORE_BUILD_TM =\"$(shell date)\"
+EXTRA_CFLAGS += -DGALCORE_BUILD_BY=\"$(shell whoami)\"
+EXTRA_CFLAGS += -DGALCORE_BUILD_TM="${GALCORE_BUILD_TM}"
+endif