hc
2024-01-05 071106ecf68c401173c58808b1cf5f68cc50d390
kernel/arch/parisc/include/asm/pdcpat.h
....@@ -67,6 +67,10 @@
6767 #define PDC_PAT_CHASSIS_READ_LOG 1L /* Read Log Entry */
6868
6969
70
+/* PDC PAT COMPLEX */
71
+
72
+#define PDC_PAT_COMPLEX 66L
73
+
7074 /* PDC PAT CPU -- CPU configuration within the protection domain */
7175
7276 #define PDC_PAT_CPU 67L
....@@ -173,6 +177,16 @@
173177 /* PDC PAT PD */
174178 #define PDC_PAT_PD 74L /* Protection Domain Info */
175179 #define PDC_PAT_PD_GET_ADDR_MAP 0L /* Get Address Map */
180
+#define PDC_PAT_PD_GET_PDC_INTERF_REV 1L /* Get PDC Interface Revisions */
181
+
182
+#define PDC_PAT_CAPABILITY_BIT_PDC_SERIALIZE (1UL << 0)
183
+#define PDC_PAT_CAPABILITY_BIT_PDC_POLLING (1UL << 1)
184
+#define PDC_PAT_CAPABILITY_BIT_PDC_NBC (1UL << 2) /* non-blocking calls */
185
+#define PDC_PAT_CAPABILITY_BIT_PDC_UFO (1UL << 3)
186
+#define PDC_PAT_CAPABILITY_BIT_PDC_IODC_32 (1UL << 4)
187
+#define PDC_PAT_CAPABILITY_BIT_PDC_IODC_64 (1UL << 5)
188
+#define PDC_PAT_CAPABILITY_BIT_PDC_HPMC_RENDEZ (1UL << 6)
189
+#define PDC_PAT_CAPABILITY_BIT_SIMULTANEOUS_PTLB (1UL << 7)
176190
177191 /* PDC_PAT_PD_GET_ADDR_MAP entry types */
178192 #define PAT_MEMORY_DESCRIPTOR 1
....@@ -186,6 +200,14 @@
186200 #define PAT_MEMUSE_GI 128
187201 #define PAT_MEMUSE_GNI 129
188202
203
+/* PDC PAT REGISTER TOC */
204
+#define PDC_PAT_REGISTER_TOC 75L
205
+#define PDC_PAT_TOC_REGISTER_VECTOR 0L /* Register TOC Vector */
206
+#define PDC_PAT_TOC_READ_VECTOR 1L /* Read TOC Vector */
207
+
208
+/* PDC PAT SYSTEM_INFO */
209
+#define PDC_PAT_SYSTEM_INFO 76L
210
+/* PDC_PAT_SYSTEM_INFO uses the same options as PDC_SYSTEM_INFO function. */
189211
190212 #ifndef __ASSEMBLY__
191213 #include <linux/types.h>
....@@ -297,18 +319,29 @@
297319 ** PDC_PAT_CELL_GET_INFO return block
298320 */
299321 typedef struct pdc_pat_cell_info_rtn_block {
300
- unsigned long cpu_info;
301
- unsigned long cell_info;
302
- unsigned long cell_location;
303
- unsigned long reo_location;
304
- unsigned long mem_size;
305
- unsigned long dimm_status;
306322 unsigned long pdc_rev;
307
- unsigned long fabric_info0;
308
- unsigned long fabric_info1;
309
- unsigned long fabric_info2;
310
- unsigned long fabric_info3;
311
- unsigned long reserved[21];
323
+ unsigned long capabilities; /* see PDC_PAT_CAPABILITY_BIT_* */
324
+ unsigned long reserved0[2];
325
+ unsigned long cell_info; /* 0x20 */
326
+ unsigned long cell_phys_location;
327
+ unsigned long cpu_info;
328
+ unsigned long cpu_speed;
329
+ unsigned long io_chassis_phys_location;
330
+ unsigned long cell_io_information;
331
+ unsigned long reserved1[2];
332
+ unsigned long io_slot_info_size; /* 0x60 */
333
+ struct {
334
+ unsigned long header, info0, info1;
335
+ unsigned long phys_loc, hw_path;
336
+ } io_slot[16];
337
+ unsigned long cell_mem_size; /* 0x2e8 */
338
+ unsigned long cell_dimm_info_size;
339
+ unsigned long dimm_info[16];
340
+ unsigned long fabric_info_size; /* 0x3f8 */
341
+ struct { /* 0x380 */
342
+ unsigned long fabric_info_xbc_port;
343
+ unsigned long rc_attached_to_xbc;
344
+ } xbc[8*4];
312345 } pdc_pat_cell_info_rtn_block_t;
313346
314347
....@@ -326,12 +359,19 @@
326359
327360 extern int pdc_pat_chassis_send_log(unsigned long status, unsigned long data);
328361 extern int pdc_pat_cell_get_number(struct pdc_pat_cell_num *cell_info);
329
-extern int pdc_pat_cell_module(unsigned long *actcnt, unsigned long ploc, unsigned long mod, unsigned long view_type, void *mem_addr);
362
+extern int pdc_pat_cell_info(struct pdc_pat_cell_info_rtn_block *info,
363
+ unsigned long *actcnt, unsigned long offset,
364
+ unsigned long cell_number);
365
+extern int pdc_pat_cell_module(unsigned long *actcnt, unsigned long ploc,
366
+ unsigned long mod, unsigned long view_type, void *mem_addr);
330367 extern int pdc_pat_cell_num_to_loc(void *, unsigned long);
331368
332369 extern int pdc_pat_cpu_get_number(struct pdc_pat_cpu_num *cpu_info, unsigned long hpa);
333370
334
-extern int pdc_pat_pd_get_addr_map(unsigned long *actual_len, void *mem_addr, unsigned long count, unsigned long offset);
371
+extern int pdc_pat_pd_get_addr_map(unsigned long *actual_len, void *mem_addr,
372
+ unsigned long count, unsigned long offset);
373
+extern int pdc_pat_pd_get_pdc_revisions(unsigned long *legacy_rev,
374
+ unsigned long *pat_rev, unsigned long *pdc_cap);
335375
336376 extern int pdc_pat_io_pci_cfg_read(unsigned long pci_addr, int pci_size, u32 *val);
337377 extern int pdc_pat_io_pci_cfg_write(unsigned long pci_addr, int pci_size, u32 val);