18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-or-later */ 28c2ecf20Sopenharmony_ci/* 38c2ecf20Sopenharmony_ci * Copyright (C) 2000, 2001, 2002 Broadcom Corporation 48c2ecf20Sopenharmony_ci */ 58c2ecf20Sopenharmony_ci#ifndef CFE_API_INT_H 68c2ecf20Sopenharmony_ci#define CFE_API_INT_H 78c2ecf20Sopenharmony_ci 88c2ecf20Sopenharmony_ci/* 98c2ecf20Sopenharmony_ci * Constants. 108c2ecf20Sopenharmony_ci */ 118c2ecf20Sopenharmony_ci#define CFE_CMD_FW_GETINFO 0 128c2ecf20Sopenharmony_ci#define CFE_CMD_FW_RESTART 1 138c2ecf20Sopenharmony_ci#define CFE_CMD_FW_BOOT 2 148c2ecf20Sopenharmony_ci#define CFE_CMD_FW_CPUCTL 3 158c2ecf20Sopenharmony_ci#define CFE_CMD_FW_GETTIME 4 168c2ecf20Sopenharmony_ci#define CFE_CMD_FW_MEMENUM 5 178c2ecf20Sopenharmony_ci#define CFE_CMD_FW_FLUSHCACHE 6 188c2ecf20Sopenharmony_ci 198c2ecf20Sopenharmony_ci#define CFE_CMD_DEV_GETHANDLE 9 208c2ecf20Sopenharmony_ci#define CFE_CMD_DEV_ENUM 10 218c2ecf20Sopenharmony_ci#define CFE_CMD_DEV_OPEN 11 228c2ecf20Sopenharmony_ci#define CFE_CMD_DEV_INPSTAT 12 238c2ecf20Sopenharmony_ci#define CFE_CMD_DEV_READ 13 248c2ecf20Sopenharmony_ci#define CFE_CMD_DEV_WRITE 14 258c2ecf20Sopenharmony_ci#define CFE_CMD_DEV_IOCTL 15 268c2ecf20Sopenharmony_ci#define CFE_CMD_DEV_CLOSE 16 278c2ecf20Sopenharmony_ci#define CFE_CMD_DEV_GETINFO 17 288c2ecf20Sopenharmony_ci 298c2ecf20Sopenharmony_ci#define CFE_CMD_ENV_ENUM 20 308c2ecf20Sopenharmony_ci#define CFE_CMD_ENV_GET 22 318c2ecf20Sopenharmony_ci#define CFE_CMD_ENV_SET 23 328c2ecf20Sopenharmony_ci#define CFE_CMD_ENV_DEL 24 338c2ecf20Sopenharmony_ci 348c2ecf20Sopenharmony_ci#define CFE_CMD_MAX 32 358c2ecf20Sopenharmony_ci 368c2ecf20Sopenharmony_ci#define CFE_CMD_VENDOR_USE 0x8000 /* codes above this are for customer use */ 378c2ecf20Sopenharmony_ci 388c2ecf20Sopenharmony_ci/* 398c2ecf20Sopenharmony_ci * Structures. 408c2ecf20Sopenharmony_ci */ 418c2ecf20Sopenharmony_ci 428c2ecf20Sopenharmony_ci/* eeek, signed "pointers" */ 438c2ecf20Sopenharmony_citypedef s64 cfe_xptr_t; 448c2ecf20Sopenharmony_ci 458c2ecf20Sopenharmony_cistruct xiocb_buffer { 468c2ecf20Sopenharmony_ci u64 buf_offset; /* offset on device (bytes) */ 478c2ecf20Sopenharmony_ci cfe_xptr_t buf_ptr; /* pointer to a buffer */ 488c2ecf20Sopenharmony_ci u64 buf_length; /* length of this buffer */ 498c2ecf20Sopenharmony_ci u64 buf_retlen; /* returned length (for read ops) */ 508c2ecf20Sopenharmony_ci u64 buf_ioctlcmd; /* IOCTL command (used only for IOCTLs) */ 518c2ecf20Sopenharmony_ci}; 528c2ecf20Sopenharmony_ci 538c2ecf20Sopenharmony_cistruct xiocb_inpstat { 548c2ecf20Sopenharmony_ci u64 inp_status; /* 1 means input available */ 558c2ecf20Sopenharmony_ci}; 568c2ecf20Sopenharmony_ci 578c2ecf20Sopenharmony_cistruct xiocb_envbuf { 588c2ecf20Sopenharmony_ci s64 enum_idx; /* 0-based enumeration index */ 598c2ecf20Sopenharmony_ci cfe_xptr_t name_ptr; /* name string buffer */ 608c2ecf20Sopenharmony_ci s64 name_length; /* size of name buffer */ 618c2ecf20Sopenharmony_ci cfe_xptr_t val_ptr; /* value string buffer */ 628c2ecf20Sopenharmony_ci s64 val_length; /* size of value string buffer */ 638c2ecf20Sopenharmony_ci}; 648c2ecf20Sopenharmony_ci 658c2ecf20Sopenharmony_cistruct xiocb_cpuctl { 668c2ecf20Sopenharmony_ci u64 cpu_number; /* cpu number to control */ 678c2ecf20Sopenharmony_ci u64 cpu_command; /* command to issue to CPU */ 688c2ecf20Sopenharmony_ci u64 start_addr; /* CPU start address */ 698c2ecf20Sopenharmony_ci u64 gp_val; /* starting GP value */ 708c2ecf20Sopenharmony_ci u64 sp_val; /* starting SP value */ 718c2ecf20Sopenharmony_ci u64 a1_val; /* starting A1 value */ 728c2ecf20Sopenharmony_ci}; 738c2ecf20Sopenharmony_ci 748c2ecf20Sopenharmony_cistruct xiocb_time { 758c2ecf20Sopenharmony_ci s64 ticks; /* current time in ticks */ 768c2ecf20Sopenharmony_ci}; 778c2ecf20Sopenharmony_ci 788c2ecf20Sopenharmony_cistruct xiocb_exitstat{ 798c2ecf20Sopenharmony_ci s64 status; 808c2ecf20Sopenharmony_ci}; 818c2ecf20Sopenharmony_ci 828c2ecf20Sopenharmony_cistruct xiocb_meminfo { 838c2ecf20Sopenharmony_ci s64 mi_idx; /* 0-based enumeration index */ 848c2ecf20Sopenharmony_ci s64 mi_type; /* type of memory block */ 858c2ecf20Sopenharmony_ci u64 mi_addr; /* physical start address */ 868c2ecf20Sopenharmony_ci u64 mi_size; /* block size */ 878c2ecf20Sopenharmony_ci}; 888c2ecf20Sopenharmony_ci 898c2ecf20Sopenharmony_cistruct xiocb_fwinfo { 908c2ecf20Sopenharmony_ci s64 fwi_version; /* major, minor, eco version */ 918c2ecf20Sopenharmony_ci s64 fwi_totalmem; /* total installed mem */ 928c2ecf20Sopenharmony_ci s64 fwi_flags; /* various flags */ 938c2ecf20Sopenharmony_ci s64 fwi_boardid; /* board ID */ 948c2ecf20Sopenharmony_ci s64 fwi_bootarea_va; /* VA of boot area */ 958c2ecf20Sopenharmony_ci s64 fwi_bootarea_pa; /* PA of boot area */ 968c2ecf20Sopenharmony_ci s64 fwi_bootarea_size; /* size of boot area */ 978c2ecf20Sopenharmony_ci s64 fwi_reserved1; 988c2ecf20Sopenharmony_ci s64 fwi_reserved2; 998c2ecf20Sopenharmony_ci s64 fwi_reserved3; 1008c2ecf20Sopenharmony_ci}; 1018c2ecf20Sopenharmony_ci 1028c2ecf20Sopenharmony_cistruct cfe_xiocb { 1038c2ecf20Sopenharmony_ci u64 xiocb_fcode; /* IOCB function code */ 1048c2ecf20Sopenharmony_ci s64 xiocb_status; /* return status */ 1058c2ecf20Sopenharmony_ci s64 xiocb_handle; /* file/device handle */ 1068c2ecf20Sopenharmony_ci u64 xiocb_flags; /* flags for this IOCB */ 1078c2ecf20Sopenharmony_ci u64 xiocb_psize; /* size of parameter list */ 1088c2ecf20Sopenharmony_ci union { 1098c2ecf20Sopenharmony_ci /* buffer parameters */ 1108c2ecf20Sopenharmony_ci struct xiocb_buffer xiocb_buffer; 1118c2ecf20Sopenharmony_ci 1128c2ecf20Sopenharmony_ci /* input status parameters */ 1138c2ecf20Sopenharmony_ci struct xiocb_inpstat xiocb_inpstat; 1148c2ecf20Sopenharmony_ci 1158c2ecf20Sopenharmony_ci /* environment function parameters */ 1168c2ecf20Sopenharmony_ci struct xiocb_envbuf xiocb_envbuf; 1178c2ecf20Sopenharmony_ci 1188c2ecf20Sopenharmony_ci /* CPU control parameters */ 1198c2ecf20Sopenharmony_ci struct xiocb_cpuctl xiocb_cpuctl; 1208c2ecf20Sopenharmony_ci 1218c2ecf20Sopenharmony_ci /* timer parameters */ 1228c2ecf20Sopenharmony_ci struct xiocb_time xiocb_time; 1238c2ecf20Sopenharmony_ci 1248c2ecf20Sopenharmony_ci /* memory arena info parameters */ 1258c2ecf20Sopenharmony_ci struct xiocb_meminfo xiocb_meminfo; 1268c2ecf20Sopenharmony_ci 1278c2ecf20Sopenharmony_ci /* firmware information */ 1288c2ecf20Sopenharmony_ci struct xiocb_fwinfo xiocb_fwinfo; 1298c2ecf20Sopenharmony_ci 1308c2ecf20Sopenharmony_ci /* Exit Status */ 1318c2ecf20Sopenharmony_ci struct xiocb_exitstat xiocb_exitstat; 1328c2ecf20Sopenharmony_ci } plist; 1338c2ecf20Sopenharmony_ci}; 1348c2ecf20Sopenharmony_ci 1358c2ecf20Sopenharmony_ci#endif /* CFE_API_INT_H */ 136