• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt-6.x.4708/linux/linux-2.6/arch/mips/fw/cfe/
1/*
2 * Copyright (C) 2000, 2001, 2002 Broadcom Corporation
3 *
4 * This program is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU General Public License
6 * as published by the Free Software Foundation; either version 2
7 * of the License, or (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write to the Free Software
16 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
17 */
18#ifndef CFE_API_INT_H
19#define CFE_API_INT_H
20
21/*
22 * Constants.
23 */
24#define CFE_CMD_FW_GETINFO	0
25#define CFE_CMD_FW_RESTART	1
26#define CFE_CMD_FW_BOOT		2
27#define CFE_CMD_FW_CPUCTL	3
28#define CFE_CMD_FW_GETTIME      4
29#define CFE_CMD_FW_MEMENUM	5
30#define CFE_CMD_FW_FLUSHCACHE	6
31
32#define CFE_CMD_DEV_GETHANDLE	9
33#define CFE_CMD_DEV_ENUM	10
34#define CFE_CMD_DEV_OPEN	11
35#define CFE_CMD_DEV_INPSTAT	12
36#define CFE_CMD_DEV_READ	13
37#define CFE_CMD_DEV_WRITE	14
38#define CFE_CMD_DEV_IOCTL	15
39#define CFE_CMD_DEV_CLOSE	16
40#define CFE_CMD_DEV_GETINFO	17
41
42#define CFE_CMD_ENV_ENUM	20
43#define CFE_CMD_ENV_GET		22
44#define CFE_CMD_ENV_SET		23
45#define CFE_CMD_ENV_DEL		24
46
47#define CFE_CMD_MAX		32
48
49#define CFE_CMD_VENDOR_USE	0x8000	/* codes above this are for customer use */
50
51/*
52 * Structures.
53 */
54
55/* eeek, signed "pointers" */
56typedef s64 cfe_xptr_t;
57
58struct xiocb_buffer {
59	u64 buf_offset;		/* offset on device (bytes) */
60	cfe_xptr_t  buf_ptr;		/* pointer to a buffer */
61	u64 buf_length;		/* length of this buffer */
62	u64 buf_retlen;		/* returned length (for read ops) */
63	u64 buf_ioctlcmd;	/* IOCTL command (used only for IOCTLs) */
64};
65
66struct xiocb_inpstat {
67	u64 inp_status;		/* 1 means input available */
68};
69
70struct xiocb_envbuf {
71	s64 enum_idx;		/* 0-based enumeration index */
72	cfe_xptr_t name_ptr;		/* name string buffer */
73	s64 name_length;		/* size of name buffer */
74	cfe_xptr_t val_ptr;		/* value string buffer */
75	s64 val_length;		/* size of value string buffer */
76};
77
78struct xiocb_cpuctl {
79	u64 cpu_number;		/* cpu number to control */
80	u64 cpu_command;	/* command to issue to CPU */
81	u64 start_addr;		/* CPU start address */
82	u64 gp_val;		/* starting GP value */
83	u64 sp_val;		/* starting SP value */
84	u64 a1_val;		/* starting A1 value */
85};
86
87struct xiocb_time {
88	s64 ticks;		/* current time in ticks */
89};
90
91struct xiocb_exitstat{
92	s64 status;
93};
94
95struct xiocb_meminfo {
96	s64 mi_idx;		/* 0-based enumeration index */
97	s64 mi_type;		/* type of memory block */
98	u64 mi_addr;		/* physical start address */
99	u64 mi_size;		/* block size */
100};
101
102struct xiocb_fwinfo {
103	s64 fwi_version;		/* major, minor, eco version */
104	s64 fwi_totalmem;	/* total installed mem */
105	s64 fwi_flags;		/* various flags */
106	s64 fwi_boardid;		/* board ID */
107	s64 fwi_bootarea_va;	/* VA of boot area */
108	s64 fwi_bootarea_pa;	/* PA of boot area */
109	s64 fwi_bootarea_size;	/* size of boot area */
110	s64 fwi_reserved1;
111	s64 fwi_reserved2;
112	s64 fwi_reserved3;
113};
114
115struct cfe_xiocb {
116	u64 xiocb_fcode;	/* IOCB function code */
117	s64 xiocb_status;	/* return status */
118	s64 xiocb_handle;	/* file/device handle */
119	u64 xiocb_flags;	/* flags for this IOCB */
120	u64 xiocb_psize;	/* size of parameter list */
121	union {
122		/* buffer parameters */
123		struct xiocb_buffer xiocb_buffer;
124
125		/* input status parameters */
126		struct xiocb_inpstat xiocb_inpstat;
127
128		/* environment function parameters */
129		struct xiocb_envbuf xiocb_envbuf;
130
131		/* CPU control parameters */
132		struct xiocb_cpuctl xiocb_cpuctl;
133
134		/* timer parameters */
135		struct xiocb_time xiocb_time;
136
137		/* memory arena info parameters */
138		struct xiocb_meminfo xiocb_meminfo;
139
140		/* firmware information */
141		struct xiocb_fwinfo xiocb_fwinfo;
142
143		/* Exit Status */
144		struct xiocb_exitstat xiocb_exitstat;
145	} plist;
146};
147
148#endif /* CFE_API_INT_H */
149