blob: 42df9cb0da62c6197dff2bfb2b8da81d7fdf9968 [file] [log] [blame]
rjw6c1fd8f2022-11-30 14:33:01 +08001#ifndef _CACHE_DPDL2_H
2#define _CACHE_DPDL2_H
3
4#include "kal_general_types.h"
5#include "dl2cmgr.h"
6
7
8
9/*****************************************************************************
10 * Symbol/Type Definition *
11 *****************************************************************************/
12typedef enum {
13 SIZE_None = 0,
14 L2CACHE_Size_32KB, L2CACHE_Size_64KB, L2CACHE_Size_96KB, L2CACHE_Size_128KB, L2CACHE_Size_160KB,
15 L2CACHE_Size_192KB, L2CACHE_Size_224KB, L2CACHE_Size_256KB, L2CACHE_Size_288KB, L2CACHE_Size_320KB,
16 L2CACHE_Size_352KB, L2CACHE_Size_384KB, L2CACHE_Size_416KB, L2CACHE_Size_448KB, L2CACHE_Size_480KB,
17 L2CACHE_Size_512KB, L2CACHE_Size_544KB, L2CACHE_Size_576KB, L2CACHE_Size_608KB, L2CACHE_Size_640KB,
18 L2CACHE_Size_672KB, L2CACHE_Size_704KB, L2CACHE_Size_736KB, L2CACHE_Size_768KB, L2CACHE_Size_800KB,
19 L2CACHE_Size_832KB, L2CACHE_Size_864KB, L2CACHE_Size_896KB, L2CACHE_Size_928KB, L2CACHE_Size_960KB,
20 L2CACHE_Size_992KB, L2CACHE_Size_1024KB, L2CACHE_Size_1056KB, L2CACHE_Size_1088KB, L2CACHE_Size_1120KB,
21 L2CACHE_Size_1152KB, L2CACHE_Size_1184KB, L2CACHE_Size_1216KB, L2CACHE_Size_1248KB, L2CACHE_Size_1280KB,
22 L2CACHE_Size_1312KB, L2CACHE_Size_1344KB, L2CACHE_Size_1376KB, L2CACHE_Size_1408KB, L2CACHE_Size_1440KB,
23 L2CACHE_Size_1472KB, L2CACHE_Size_1504KB, L2CACHE_Size_1536KB, L2CACHE_Size_1568KB, L2CACHE_Size_1600KB,
24 L2CACHE_Size_1632KB, L2CACHE_Size_1664KB, L2CACHE_Size_1696KB, L2CACHE_Size_1728KB, L2CACHE_Size_1760KB,
25 L2CACHE_Size_1792KB, L2CACHE_Size_1824KB, L2CACHE_Size_1856KB, L2CACHE_Size_1888KB, L2CACHE_Size_1920KB,
26 L2CACHE_Size_1952KB, L2CACHE_Size_1984KB, L2CACHE_Size_2016KB, L2CACHE_Size_2048KB = 64,
27
28 L2CACHE_Size_Min = L2CACHE_Size_32KB,
29 L2CACHE_Size_Max = L2CACHE_Size_2048KB,
30} DPDL2_SIZE;
31
32typedef enum {
33 CASE_None = 0,
34
35 PDN_Fail = 0x10,
36 PDN_Case = 0x10,
37 PDN_1Way = 0x11,
38 PDN_2Way = 0x12,
39 PDN_3Way = 0x13,
40 PDN_4Way = 0x14,
41 PDN_5Way = 0x15,
42 PDN_6Way = 0x16,
43 PDN_7Way = 0x17,
44 PDN_8Way = 0x18,
45
46 PO_Fail = 0x20,
47 PO_Case = 0x20,
48 PO_1Way = 0x21,
49 PO_2Way = 0x22,
50 PO_3Way = 0x23,
51 PO_4Way = 0x24,
52 PO_5Way = 0x25,
53 PO_6Way = 0x26,
54 PO_7Way = 0x27,
55 PO_8Way = 0x28,
56
57 PDN_Aborted_Case = 0x30,
58 PDN_Aborted_PO_1Way = 0x31,
59 PDN_Aborted_PO_2Way = 0x32,
60 PDN_Aborted_PO_3Way = 0x33,
61 PDN_Aborted_PO_4Way = 0x34,
62 PDN_Aborted_PO_5Way = 0x35,
63 PDN_Aborted_PO_6Way = 0x36,
64 PDN_Aborted_PO_7Way = 0x37,
65 PDN_Aborted_PO_8Way = 0x38,
66
67
68 CASE_Mask = 0xF0,
69 CASE_Fail = 0xFF,
70} DPDL2_RETURN_CASE;
71
72typedef enum {
73 STATUS_None = 0,
74 PDN_Processing = 1,
75 PDN_Done = 2,
76 PO_Processing = 3,
77 PO_Done = 4,
78} DPDL2_STATUS;
79
80
81/*******************************************************************************
82 * function prototypes
83 *******************************************************************************/
84
85extern DPDL2_RETURN_CASE dpdl2_change_l2cache_size(DPDL2_SIZE l2cache_size);
86extern DPDL2_STATUS dpdl2_query_status(void);
87extern DPDL2_SIZE dpdl2_query_po_l2cache_size(void);
88extern kal_uint32 lock_l2cache_excludeway(kal_uint32 addr, kal_uint32 len, dl2cm_section_id lock_section);
89extern void dpdl2_polling_status_done(void);
90
91#endif /* _CACHE_DPDL2_H */