Skip to content

Commit 4964ce0

Browse files
committed
Merge tag 'JH7110_515_SDK_v5.2.0' into vf2-515-devel
Note: From this version, the IMG DDK will be upgraded to 1.19.
2 parents d22d8cc + b39db4c commit 4964ce0

506 files changed

Lines changed: 87878 additions & 13657 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

drivers/gpu/drm/img/img-rogue/config_kernel.h

Lines changed: 51 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
#define RGX_BNC_CONFIG_KM_HEADER "configs/rgxconfig_km_36.V.54.182.h"
1515
//#define PDUMP
1616
#define PVRSRV_NEED_PVR_DPF
17-
#define PVRSRV_NEED_PVR_ASSERT
17+
//#define PVRSRV_NEED_PVR_ASSERT
1818
#define SUPPORT_RGXTQ_BRIDGE
1919
#define PVRSRV_POISON_ON_ALLOC_VALUE 0xd9
2020
#define PVRSRV_POISON_ON_FREE_VALUE 0x63
@@ -59,7 +59,7 @@
5959
#define PVRSRV_APPHINT_HWPERFFWBUFSIZEINKB 2048
6060
#define PVRSRV_APPHINT_HWPERFHOSTBUFSIZEINKB 2048
6161
#define PVRSRV_APPHINT_HWPERFHOSTTHREADTIMEOUTINMS 50
62-
#define PVRSRV_APPHINT_TFBCCOMPRESSIONCONTROLGROUP 0
62+
6363
#define PVRSRV_APPHINT_TFBCCOMPRESSIONCONTROLSCHEME 0
6464
#define PVRSRV_APPHINT_JONESDISABLEMASK 0
6565
#define PVRSRV_APPHINT_NEWFILTERINGMODE 1
@@ -160,3 +160,52 @@
160160
#define PVRSRV_RGX_LOG2_CLIENT_CCB_MAX_SIZE_TDM 17
161161
#define PVRSRV_RGX_LOG2_CLIENT_CCB_MAX_SIZE_RDM 15
162162
#define SUPPORT_BUFFER_SYNC 1
163+
164+
#define DRIVER0_SECURITY_SUPPORT 0
165+
#define DRIVER1_SECURITY_SUPPORT 0
166+
#define DRIVER2_SECURITY_SUPPORT 0
167+
#define DRIVER3_SECURITY_SUPPORT 0
168+
#define DRIVER4_SECURITY_SUPPORT 0
169+
#define DRIVER5_SECURITY_SUPPORT 0
170+
#define DRIVER6_SECURITY_SUPPORT 0
171+
#define DRIVER7_SECURITY_SUPPORT 0
172+
173+
#define PVRSRV_APPHINT_CHECKPOINTPOOLINITLOG2 7
174+
#define PVRSRV_APPHINT_CHECKPOINTPOOLMAXLOG2 8
175+
176+
#define PVRSRV_APPHINT_DEVMEM_HISTORY_BUFSIZE_LOG2 11
177+
#define PVRSRV_APPHINT_DEVMEM_HISTORY_MAX_ENTRIES 10000
178+
179+
#define PVRSRV_APPHINT_ENABLESPUCLOCKGATING IMG_FALSE
180+
#define PVRSRV_APPHINT_PHYSHEAPMINMEMONCONNECTION 0
181+
182+
#define PVRSRV_APPHINT_TFBCCOMPRESSIONCONTROLGROUP 1
183+
184+
#define PVRSRV_USE_LINUX_CONFIG_INIT_ON_ALLOC 1
185+
186+
#define RGX_DRIVERID_0_DEFAULT_ISOLATION_GROUP 0
187+
#define RGX_DRIVERID_0_DEFAULT_PRIORITY (1 - 0)
188+
#define RGX_DRIVERID_1_DEFAULT_ISOLATION_GROUP 0
189+
#define RGX_DRIVERID_1_DEFAULT_PRIORITY (1 - 1)
190+
#define RGX_DRIVERID_2_DEFAULT_ISOLATION_GROUP 0
191+
#define RGX_DRIVERID_2_DEFAULT_PRIORITY (1 - 2)
192+
#define RGX_DRIVERID_3_DEFAULT_ISOLATION_GROUP 0
193+
#define RGX_DRIVERID_3_DEFAULT_PRIORITY (1 - 3)
194+
#define RGX_DRIVERID_4_DEFAULT_ISOLATION_GROUP 0
195+
#define RGX_DRIVERID_4_DEFAULT_PRIORITY (1 - 4)
196+
#define RGX_DRIVERID_5_DEFAULT_ISOLATION_GROUP 0
197+
#define RGX_DRIVERID_5_DEFAULT_PRIORITY (1 - 5)
198+
#define RGX_DRIVERID_6_DEFAULT_ISOLATION_GROUP 0
199+
#define RGX_DRIVERID_6_DEFAULT_PRIORITY (1 - 6)
200+
#define RGX_DRIVERID_7_DEFAULT_ISOLATION_GROUP 0
201+
#define RGX_DRIVERID_7_DEFAULT_PRIORITY (1 - 7)
202+
203+
#define RGX_FW_HEAP_OSID_ASSIGNMENT RGX_FW_HEAP_USES_FIRMWARE_OSID
204+
#define RGX_FW_HEAP_USES_DEDICATED_OSID 2
205+
#define RGX_FW_HEAP_USES_FIRMWARE_OSID 0
206+
#define RGX_FW_HEAP_USES_HOST_OSID 1
207+
#define RGX_FW_PHYSHEAP_MINMEM_ON_CONNECTION 512
208+
209+
#define RGX_NUM_DRIVERS_SUPPORTED 1
210+
#define RGX_VZ_CONNECTION_TIMEOUT_US 60000000
211+
#define SUPPORT_RGXKICKSYNC_BRIDGE

drivers/gpu/drm/img/img-rogue/config_kernel.mk

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,3 +50,9 @@ override SUPPORT_NATIVE_FENCE_SYNC := 1
5050
override SUPPORT_DMA_FENCE := 1
5151
override SUPPORT_BUFFER_SYNC := 1
5252
override DEFINE_X86_FEATURE_LA57 := 1
53+
override DEFINE_X86_FEATURE_LA57 := 1
54+
55+
override RGX_NUM_OS_SUPPORTED := 1
56+
override RGX_FW_HEAP_OSID_ASSIGNMENT := RGX_FW_HEAP_USES_FIRMWARE_OSID
57+
override RGX_NUM_DRIVERS_SUPPORTED := 1
58+
override SUPPORT_RGXKICKSYNC_BRIDGE := 1

drivers/gpu/drm/img/img-rogue/generated/rogue/cache_bridge/server_cache_bridge.c

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -87,9 +87,7 @@ PVRSRVBridgeCacheOpQueue(IMG_UINT32 ui32DispatchTableEntry,
8787

8888
IMG_UINT32 ui32NextOffset = 0;
8989
IMG_BYTE *pArrayArgsBuffer = NULL;
90-
#if !defined(INTEGRITY_OS)
9190
IMG_BOOL bHaveEnoughSpace = IMG_FALSE;
92-
#endif
9391

9492
IMG_UINT32 ui32BufferSize = 0;
9593
IMG_UINT64 ui64BufferSize =
@@ -116,7 +114,6 @@ PVRSRVBridgeCacheOpQueue(IMG_UINT32 ui32DispatchTableEntry,
116114

117115
if (ui32BufferSize != 0)
118116
{
119-
#if !defined(INTEGRITY_OS)
120117
/* Try to use remainder of input buffer for copies if possible, word-aligned for safety. */
121118
IMG_UINT32 ui32InBufferOffset =
122119
PVR_ALIGN(sizeof(*psCacheOpQueueIN), sizeof(unsigned long));
@@ -132,7 +129,6 @@ PVRSRVBridgeCacheOpQueue(IMG_UINT32 ui32DispatchTableEntry,
132129
pArrayArgsBuffer = &pInputBuffer[ui32InBufferOffset];
133130
}
134131
else
135-
#endif
136132
{
137133
pArrayArgsBuffer = OSAllocMemNoStats(ui32BufferSize);
138134

@@ -284,7 +280,7 @@ PVRSRVBridgeCacheOpQueue(IMG_UINT32 ui32DispatchTableEntry,
284280
{
285281

286282
/* Unreference the previously looked up handle */
287-
if (psPMRInt[i])
283+
if (psPMRInt && psPMRInt[i])
288284
{
289285
PVRSRVReleaseHandleUnlocked(psConnection->psHandleBase,
290286
hPMRInt2[i],
@@ -301,11 +297,7 @@ PVRSRVBridgeCacheOpQueue(IMG_UINT32 ui32DispatchTableEntry,
301297
PVR_ASSERT(ui32BufferSize == ui32NextOffset);
302298
#endif /* PVRSRV_NEED_PVR_ASSERT */
303299

304-
#if defined(INTEGRITY_OS)
305-
if (pArrayArgsBuffer)
306-
#else
307300
if (!bHaveEnoughSpace && pArrayArgsBuffer)
308-
#endif
309301
OSFreeMemNoStats(pArrayArgsBuffer);
310302

311303
return 0;

drivers/gpu/drm/img/img-rogue/generated/rogue/devicememhistory_bridge/client_devicememhistory_direct_bridge.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
5151
#include "img_defs.h"
5252
#include "devicemem_typedefs.h"
5353

54+
#include "pmr.h"
5455
#include "devicemem_history_server.h"
5556

5657
IMG_INTERNAL PVRSRV_ERROR BridgeDevicememHistoryMap(IMG_HANDLE hBridge,

drivers/gpu/drm/img/img-rogue/generated/rogue/devicememhistory_bridge/server_devicememhistory_bridge.c

Lines changed: 20 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
4545

4646
#include "img_defs.h"
4747

48+
#include "pmr.h"
4849
#include "devicemem_history_server.h"
4950

5051
#include "common_devicememhistory_bridge.h"
@@ -89,9 +90,7 @@ PVRSRVBridgeDevicememHistoryMap(IMG_UINT32 ui32DispatchTableEntry,
8990

9091
IMG_UINT32 ui32NextOffset = 0;
9192
IMG_BYTE *pArrayArgsBuffer = NULL;
92-
#if !defined(INTEGRITY_OS)
9393
IMG_BOOL bHaveEnoughSpace = IMG_FALSE;
94-
#endif
9594

9695
IMG_UINT32 ui32BufferSize = 0;
9796
IMG_UINT64 ui64BufferSize = ((IMG_UINT64) DEVMEM_ANNOTATION_MAX_LEN * sizeof(IMG_CHAR)) + 0;
@@ -106,7 +105,6 @@ PVRSRVBridgeDevicememHistoryMap(IMG_UINT32 ui32DispatchTableEntry,
106105

107106
if (ui32BufferSize != 0)
108107
{
109-
#if !defined(INTEGRITY_OS)
110108
/* Try to use remainder of input buffer for copies if possible, word-aligned for safety. */
111109
IMG_UINT32 ui32InBufferOffset =
112110
PVR_ALIGN(sizeof(*psDevicememHistoryMapIN), sizeof(unsigned long));
@@ -122,7 +120,6 @@ PVRSRVBridgeDevicememHistoryMap(IMG_UINT32 ui32DispatchTableEntry,
122120
pArrayArgsBuffer = &pInputBuffer[ui32InBufferOffset];
123121
}
124122
else
125-
#endif
126123
{
127124
pArrayArgsBuffer = OSAllocMemNoStats(ui32BufferSize);
128125

@@ -199,11 +196,7 @@ PVRSRVBridgeDevicememHistoryMap(IMG_UINT32 ui32DispatchTableEntry,
199196
PVR_ASSERT(ui32BufferSize == ui32NextOffset);
200197
#endif /* PVRSRV_NEED_PVR_ASSERT */
201198

202-
#if defined(INTEGRITY_OS)
203-
if (pArrayArgsBuffer)
204-
#else
205199
if (!bHaveEnoughSpace && pArrayArgsBuffer)
206-
#endif
207200
OSFreeMemNoStats(pArrayArgsBuffer);
208201

209202
return 0;
@@ -231,9 +224,7 @@ PVRSRVBridgeDevicememHistoryUnmap(IMG_UINT32 ui32DispatchTableEntry,
231224

232225
IMG_UINT32 ui32NextOffset = 0;
233226
IMG_BYTE *pArrayArgsBuffer = NULL;
234-
#if !defined(INTEGRITY_OS)
235227
IMG_BOOL bHaveEnoughSpace = IMG_FALSE;
236-
#endif
237228

238229
IMG_UINT32 ui32BufferSize = 0;
239230
IMG_UINT64 ui64BufferSize = ((IMG_UINT64) DEVMEM_ANNOTATION_MAX_LEN * sizeof(IMG_CHAR)) + 0;
@@ -248,7 +239,6 @@ PVRSRVBridgeDevicememHistoryUnmap(IMG_UINT32 ui32DispatchTableEntry,
248239

249240
if (ui32BufferSize != 0)
250241
{
251-
#if !defined(INTEGRITY_OS)
252242
/* Try to use remainder of input buffer for copies if possible, word-aligned for safety. */
253243
IMG_UINT32 ui32InBufferOffset =
254244
PVR_ALIGN(sizeof(*psDevicememHistoryUnmapIN), sizeof(unsigned long));
@@ -264,7 +254,6 @@ PVRSRVBridgeDevicememHistoryUnmap(IMG_UINT32 ui32DispatchTableEntry,
264254
pArrayArgsBuffer = &pInputBuffer[ui32InBufferOffset];
265255
}
266256
else
267-
#endif
268257
{
269258
pArrayArgsBuffer = OSAllocMemNoStats(ui32BufferSize);
270259

@@ -341,11 +330,7 @@ PVRSRVBridgeDevicememHistoryUnmap(IMG_UINT32 ui32DispatchTableEntry,
341330
PVR_ASSERT(ui32BufferSize == ui32NextOffset);
342331
#endif /* PVRSRV_NEED_PVR_ASSERT */
343332

344-
#if defined(INTEGRITY_OS)
345-
if (pArrayArgsBuffer)
346-
#else
347333
if (!bHaveEnoughSpace && pArrayArgsBuffer)
348-
#endif
349334
OSFreeMemNoStats(pArrayArgsBuffer);
350335

351336
return 0;
@@ -371,9 +356,7 @@ PVRSRVBridgeDevicememHistoryMapVRange(IMG_UINT32 ui32DispatchTableEntry,
371356

372357
IMG_UINT32 ui32NextOffset = 0;
373358
IMG_BYTE *pArrayArgsBuffer = NULL;
374-
#if !defined(INTEGRITY_OS)
375359
IMG_BOOL bHaveEnoughSpace = IMG_FALSE;
376-
#endif
377360

378361
IMG_UINT32 ui32BufferSize = 0;
379362
IMG_UINT64 ui64BufferSize = ((IMG_UINT64) DEVMEM_ANNOTATION_MAX_LEN * sizeof(IMG_CHAR)) + 0;
@@ -388,7 +371,6 @@ PVRSRVBridgeDevicememHistoryMapVRange(IMG_UINT32 ui32DispatchTableEntry,
388371

389372
if (ui32BufferSize != 0)
390373
{
391-
#if !defined(INTEGRITY_OS)
392374
/* Try to use remainder of input buffer for copies if possible, word-aligned for safety. */
393375
IMG_UINT32 ui32InBufferOffset =
394376
PVR_ALIGN(sizeof(*psDevicememHistoryMapVRangeIN), sizeof(unsigned long));
@@ -404,7 +386,6 @@ PVRSRVBridgeDevicememHistoryMapVRange(IMG_UINT32 ui32DispatchTableEntry,
404386
pArrayArgsBuffer = &pInputBuffer[ui32InBufferOffset];
405387
}
406388
else
407-
#endif
408389
{
409390
pArrayArgsBuffer = OSAllocMemNoStats(ui32BufferSize);
410391

@@ -454,11 +435,7 @@ PVRSRVBridgeDevicememHistoryMapVRange(IMG_UINT32 ui32DispatchTableEntry,
454435
PVR_ASSERT(ui32BufferSize == ui32NextOffset);
455436
#endif /* PVRSRV_NEED_PVR_ASSERT */
456437

457-
#if defined(INTEGRITY_OS)
458-
if (pArrayArgsBuffer)
459-
#else
460438
if (!bHaveEnoughSpace && pArrayArgsBuffer)
461-
#endif
462439
OSFreeMemNoStats(pArrayArgsBuffer);
463440

464441
return 0;
@@ -484,9 +461,7 @@ PVRSRVBridgeDevicememHistoryUnmapVRange(IMG_UINT32 ui32DispatchTableEntry,
484461

485462
IMG_UINT32 ui32NextOffset = 0;
486463
IMG_BYTE *pArrayArgsBuffer = NULL;
487-
#if !defined(INTEGRITY_OS)
488464
IMG_BOOL bHaveEnoughSpace = IMG_FALSE;
489-
#endif
490465

491466
IMG_UINT32 ui32BufferSize = 0;
492467
IMG_UINT64 ui64BufferSize = ((IMG_UINT64) DEVMEM_ANNOTATION_MAX_LEN * sizeof(IMG_CHAR)) + 0;
@@ -501,7 +476,6 @@ PVRSRVBridgeDevicememHistoryUnmapVRange(IMG_UINT32 ui32DispatchTableEntry,
501476

502477
if (ui32BufferSize != 0)
503478
{
504-
#if !defined(INTEGRITY_OS)
505479
/* Try to use remainder of input buffer for copies if possible, word-aligned for safety. */
506480
IMG_UINT32 ui32InBufferOffset =
507481
PVR_ALIGN(sizeof(*psDevicememHistoryUnmapVRangeIN), sizeof(unsigned long));
@@ -518,7 +492,6 @@ PVRSRVBridgeDevicememHistoryUnmapVRange(IMG_UINT32 ui32DispatchTableEntry,
518492
pArrayArgsBuffer = &pInputBuffer[ui32InBufferOffset];
519493
}
520494
else
521-
#endif
522495
{
523496
pArrayArgsBuffer = OSAllocMemNoStats(ui32BufferSize);
524497

@@ -570,18 +543,18 @@ PVRSRVBridgeDevicememHistoryUnmapVRange(IMG_UINT32 ui32DispatchTableEntry,
570543
PVR_ASSERT(ui32BufferSize == ui32NextOffset);
571544
#endif /* PVRSRV_NEED_PVR_ASSERT */
572545

573-
#if defined(INTEGRITY_OS)
574-
if (pArrayArgsBuffer)
575-
#else
576546
if (!bHaveEnoughSpace && pArrayArgsBuffer)
577-
#endif
578547
OSFreeMemNoStats(pArrayArgsBuffer);
579548

580549
return 0;
581550
}
582551

583552
static_assert(DEVMEM_ANNOTATION_MAX_LEN <= IMG_UINT32_MAX,
584553
"DEVMEM_ANNOTATION_MAX_LEN must not be larger than IMG_UINT32_MAX");
554+
static_assert(PMR_MAX_SUPPORTED_4K_PAGE_COUNT <= IMG_UINT32_MAX,
555+
"PMR_MAX_SUPPORTED_4K_PAGE_COUNT must not be larger than IMG_UINT32_MAX");
556+
static_assert(PMR_MAX_SUPPORTED_4K_PAGE_COUNT <= IMG_UINT32_MAX,
557+
"PMR_MAX_SUPPORTED_4K_PAGE_COUNT must not be larger than IMG_UINT32_MAX");
585558

586559
static IMG_INT
587560
PVRSRVBridgeDevicememHistorySparseChange(IMG_UINT32 ui32DispatchTableEntry,
@@ -604,9 +577,7 @@ PVRSRVBridgeDevicememHistorySparseChange(IMG_UINT32 ui32DispatchTableEntry,
604577

605578
IMG_UINT32 ui32NextOffset = 0;
606579
IMG_BYTE *pArrayArgsBuffer = NULL;
607-
#if !defined(INTEGRITY_OS)
608580
IMG_BOOL bHaveEnoughSpace = IMG_FALSE;
609-
#endif
610581

611582
IMG_UINT32 ui32BufferSize = 0;
612583
IMG_UINT64 ui64BufferSize =
@@ -616,6 +587,21 @@ PVRSRVBridgeDevicememHistorySparseChange(IMG_UINT32 ui32DispatchTableEntry,
616587
((IMG_UINT64) psDevicememHistorySparseChangeIN->ui32FreePageCount *
617588
sizeof(IMG_UINT32)) + 0;
618589

590+
if (unlikely
591+
(psDevicememHistorySparseChangeIN->ui32AllocPageCount >
592+
PMR_MAX_SUPPORTED_4K_PAGE_COUNT))
593+
{
594+
psDevicememHistorySparseChangeOUT->eError = PVRSRV_ERROR_BRIDGE_ARRAY_SIZE_TOO_BIG;
595+
goto DevicememHistorySparseChange_exit;
596+
}
597+
598+
if (unlikely
599+
(psDevicememHistorySparseChangeIN->ui32FreePageCount > PMR_MAX_SUPPORTED_4K_PAGE_COUNT))
600+
{
601+
psDevicememHistorySparseChangeOUT->eError = PVRSRV_ERROR_BRIDGE_ARRAY_SIZE_TOO_BIG;
602+
goto DevicememHistorySparseChange_exit;
603+
}
604+
619605
if (ui64BufferSize > IMG_UINT32_MAX)
620606
{
621607
psDevicememHistorySparseChangeOUT->eError = PVRSRV_ERROR_BRIDGE_BUFFER_TOO_SMALL;
@@ -626,7 +612,6 @@ PVRSRVBridgeDevicememHistorySparseChange(IMG_UINT32 ui32DispatchTableEntry,
626612

627613
if (ui32BufferSize != 0)
628614
{
629-
#if !defined(INTEGRITY_OS)
630615
/* Try to use remainder of input buffer for copies if possible, word-aligned for safety. */
631616
IMG_UINT32 ui32InBufferOffset =
632617
PVR_ALIGN(sizeof(*psDevicememHistorySparseChangeIN), sizeof(unsigned long));
@@ -643,7 +628,6 @@ PVRSRVBridgeDevicememHistorySparseChange(IMG_UINT32 ui32DispatchTableEntry,
643628
pArrayArgsBuffer = &pInputBuffer[ui32InBufferOffset];
644629
}
645630
else
646-
#endif
647631
{
648632
pArrayArgsBuffer = OSAllocMemNoStats(ui32BufferSize);
649633

@@ -771,11 +755,7 @@ PVRSRVBridgeDevicememHistorySparseChange(IMG_UINT32 ui32DispatchTableEntry,
771755
PVR_ASSERT(ui32BufferSize == ui32NextOffset);
772756
#endif /* PVRSRV_NEED_PVR_ASSERT */
773757

774-
#if defined(INTEGRITY_OS)
775-
if (pArrayArgsBuffer)
776-
#else
777758
if (!bHaveEnoughSpace && pArrayArgsBuffer)
778-
#endif
779759
OSFreeMemNoStats(pArrayArgsBuffer);
780760

781761
return 0;

0 commit comments

Comments
 (0)