Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
L
linux-davinci
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Redmine
Redmine
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
linux
linux-davinci
Commits
417345d8
Commit
417345d8
authored
Oct 29, 2007
by
Christoph Hellwig
Committed by
Ralf Baechle
Jan 29, 2008
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[MIPS] CFE: Make code remotely resemble Linux code.
Signed-off-by:
Ralf Baechle
<
ralf@linux-mips.org
>
parent
8b6c2324
Changes
4
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
167 additions
and
309 deletions
+167
-309
arch/mips/fw/cfe/cfe_api.c
arch/mips/fw/cfe/cfe_api.c
+57
-127
arch/mips/fw/cfe/cfe_api_int.h
arch/mips/fw/cfe/cfe_api_int.h
+91
-95
include/asm-mips/fw/cfe/cfe_api.h
include/asm-mips/fw/cfe/cfe_api.h
+12
-75
include/asm-mips/fw/cfe/cfe_error.h
include/asm-mips/fw/cfe/cfe_error.h
+7
-12
No files found.
arch/mips/fw/cfe/cfe_api.c
View file @
417345d8
This diff is collapsed.
Click to expand it.
arch/mips/fw/cfe/cfe_api_int.h
View file @
417345d8
...
...
@@ -15,28 +15,12 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
/* *********************************************************************
*
* Broadcom Common Firmware Environment (CFE)
*
* Device function prototypes File: cfe_api_int.h
*
* This header defines all internal types and macros for the
* library. This is stuff that's not exported to an app
* using the library.
*
* Authors: Mitch Lichtenberg, Chris Demetriou
*
********************************************************************* */
#ifndef CFE_API_INT_H
#define CFE_API_INT_H
/* *********************************************************************
* Constants
********************************************************************* */
/*
* Constants.
*/
#define CFE_CMD_FW_GETINFO 0
#define CFE_CMD_FW_RESTART 1
#define CFE_CMD_FW_BOOT 2
...
...
@@ -64,89 +48,101 @@
#define CFE_CMD_VENDOR_USE 0x8000
/* codes above this are for customer use */
/*
*********************************************************************
* Structures
*********************************************************************
*/
/*
* Structures.
*/
typedef
uint64_t
cfe_xuint_t
;
typedef
int64_t
cfe_xint_t
;
typedef
int64_t
cfe_xptr_t
;
/* eeek, signed "pointers" */
typedef
s64
cfe_xptr_t
;
typedef
struct
xiocb_buffer_s
{
cfe_xuint_t
buf_offset
;
/* offset on device (bytes) */
struct
xiocb_buffer
{
u64
buf_offset
;
/* offset on device (bytes) */
cfe_xptr_t
buf_ptr
;
/* pointer to a buffer */
cfe_xuint_t
buf_length
;
/* length of this buffer */
cfe_xuint_t
buf_retlen
;
/* returned length (for read ops) */
cfe_xuint_t
buf_ioctlcmd
;
/* IOCTL command (used only for IOCTLs) */
}
xiocb_buffer_t
;
#define buf_devflags buf_ioctlcmd
/* returned device info flags */
u64
buf_length
;
/* length of this buffer */
u64
buf_retlen
;
/* returned length (for read ops) */
u64
buf_ioctlcmd
;
/* IOCTL command (used only for IOCTLs) */
};
typedef
struct
xiocb_inpstat_s
{
cfe_xuint_t
inp_status
;
/* 1 means input available */
}
xiocb_inpstat_t
;
struct
xiocb_inpstat
{
u64
inp_status
;
/* 1 means input available */
};
typedef
struct
xiocb_envbuf_s
{
cfe_xint_t
enum_idx
;
/* 0-based enumeration index */
struct
xiocb_envbuf
{
s64
enum_idx
;
/* 0-based enumeration index */
cfe_xptr_t
name_ptr
;
/* name string buffer */
cfe_xint_t
name_length
;
/* size of name buffer */
s64
name_length
;
/* size of name buffer */
cfe_xptr_t
val_ptr
;
/* value string buffer */
cfe_xint_t
val_length
;
/* size of value string buffer */
}
xiocb_envbuf_t
;
typedef
struct
xiocb_cpuctl_s
{
cfe_xuint_t
cpu_number
;
/* cpu number to control */
cfe_xuint_t
cpu_command
;
/* command to issue to CPU */
cfe_xuint_t
start_addr
;
/* CPU start address */
cfe_xuint_t
gp_val
;
/* starting GP value */
cfe_xuint_t
sp_val
;
/* starting SP value */
cfe_xuint_t
a1_val
;
/* starting A1 value */
}
xiocb_cpuctl_t
;
typedef
struct
xiocb_time_s
{
cfe_xint_t
ticks
;
/* current time in ticks */
}
xiocb_time_t
;
typedef
struct
xiocb_exitstat_s
{
cfe_xint_t
status
;
}
xiocb_exitstat_t
;
typedef
struct
xiocb_meminfo_s
{
cfe_xint_t
mi_idx
;
/* 0-based enumeration index */
cfe_xint_t
mi_type
;
/* type of memory block */
cfe_xuint_t
mi_addr
;
/* physical start address */
cfe_xuint_t
mi_size
;
/* block size */
}
xiocb_meminfo_t
;
typedef
struct
xiocb_fwinfo_s
{
cfe_xint_t
fwi_version
;
/* major, minor, eco version */
cfe_xint_t
fwi_totalmem
;
/* total installed mem */
cfe_xint_t
fwi_flags
;
/* various flags */
cfe_xint_t
fwi_boardid
;
/* board ID */
cfe_xint_t
fwi_bootarea_va
;
/* VA of boot area */
cfe_xint_t
fwi_bootarea_pa
;
/* PA of boot area */
cfe_xint_t
fwi_bootarea_size
;
/* size of boot area */
cfe_xint_t
fwi_reserved1
;
cfe_xint_t
fwi_reserved2
;
cfe_xint_t
fwi_reserved3
;
}
xiocb_fwinfo_t
;
typedef
struct
cfe_xiocb_s
{
cfe_xuint_t
xiocb_fcode
;
/* IOCB function code */
cfe_xint_t
xiocb_status
;
/* return status */
cfe_xint_t
xiocb_handle
;
/* file/device handle */
cfe_xuint_t
xiocb_flags
;
/* flags for this IOCB */
cfe_xuint_t
xiocb_psize
;
/* size of parameter list */
s64
val_length
;
/* size of value string buffer */
};
struct
xiocb_cpuctl
{
u64
cpu_number
;
/* cpu number to control */
u64
cpu_command
;
/* command to issue to CPU */
u64
start_addr
;
/* CPU start address */
u64
gp_val
;
/* starting GP value */
u64
sp_val
;
/* starting SP value */
u64
a1_val
;
/* starting A1 value */
};
struct
xiocb_time
{
s64
ticks
;
/* current time in ticks */
};
struct
xiocb_exitstat
{
s64
status
;
};
struct
xiocb_meminfo
{
s64
mi_idx
;
/* 0-based enumeration index */
s64
mi_type
;
/* type of memory block */
u64
mi_addr
;
/* physical start address */
u64
mi_size
;
/* block size */
};
struct
xiocb_fwinfo
{
s64
fwi_version
;
/* major, minor, eco version */
s64
fwi_totalmem
;
/* total installed mem */
s64
fwi_flags
;
/* various flags */
s64
fwi_boardid
;
/* board ID */
s64
fwi_bootarea_va
;
/* VA of boot area */
s64
fwi_bootarea_pa
;
/* PA of boot area */
s64
fwi_bootarea_size
;
/* size of boot area */
s64
fwi_reserved1
;
s64
fwi_reserved2
;
s64
fwi_reserved3
;
};
struct
cfe_xiocb
{
u64
xiocb_fcode
;
/* IOCB function code */
s64
xiocb_status
;
/* return status */
s64
xiocb_handle
;
/* file/device handle */
u64
xiocb_flags
;
/* flags for this IOCB */
u64
xiocb_psize
;
/* size of parameter list */
union
{
xiocb_buffer_t
xiocb_buffer
;
/* buffer parameters */
xiocb_inpstat_t
xiocb_inpstat
;
/* input status parameters */
xiocb_envbuf_t
xiocb_envbuf
;
/* environment function parameters */
xiocb_cpuctl_t
xiocb_cpuctl
;
/* CPU control parameters */
xiocb_time_t
xiocb_time
;
/* timer parameters */
xiocb_meminfo_t
xiocb_meminfo
;
/* memory arena info parameters */
xiocb_fwinfo_t
xiocb_fwinfo
;
/* firmware information */
xiocb_exitstat_t
xiocb_exitstat
;
/* Exit Status */
/* buffer parameters */
struct
xiocb_buffer
xiocb_buffer
;
/* input status parameters */
struct
xiocb_inpstat
xiocb_inpstat
;
/* environment function parameters */
struct
xiocb_envbuf
xiocb_envbuf
;
/* CPU control parameters */
struct
xiocb_cpuctl
xiocb_cpuctl
;
/* timer parameters */
struct
xiocb_time
xiocb_time
;
/* memory arena info parameters */
struct
xiocb_meminfo
xiocb_meminfo
;
/* firmware information */
struct
xiocb_fwinfo
xiocb_fwinfo
;
/* Exit Status */
struct
xiocb_exitstat
xiocb_exitstat
;
}
plist
;
}
cfe_xiocb_t
;
};
#endif
/* CFE_API_INT_H */
#endif
/* CFE_API_INT_H */
include/asm-mips/fw/cfe/cfe_api.h
View file @
417345d8
...
...
@@ -15,49 +15,27 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
/* *********************************************************************
*
* Broadcom Common Firmware Environment (CFE)
*
* Device function prototypes File: cfe_api.h
*
* This file contains declarations for doing callbacks to
* cfe from an application. It should be the only header
* needed by the application to use this library
*
* Authors: Mitch Lichtenberg, Chris Demetriou
*
********************************************************************* */
/*
* Broadcom Common Firmware Environment (CFE)
*
* This file contains declarations for doing callbacks to
* cfe from an application. It should be the only header
* needed by the application to use this library
*
* Authors: Mitch Lichtenberg, Chris Demetriou
*/
#ifndef CFE_API_H
#define CFE_API_H
/*
* Apply customizations here for different OSes. These need to:
* * typedef uint64_t, int64_t, intptr_t, uintptr_t.
* * define cfe_strlen() if use of an existing function is desired.
* * define CFE_API_IMPL_NAMESPACE if API functions are to use
* names in the implementation namespace.
* Also, optionally, if the build environment does not do so automatically,
* CFE_API_* can be defined here as desired.
*/
/* Begin customization. */
#include <linux/types.h>
#include <linux/string.h>
typedef
long
intptr_t
;
#define cfe_strlen strlen
#define CFE_API_ALL
#define CFE_API_STRLEN_CUSTOM
/* End customization. */
/* *********************************************************************
* Constants
********************************************************************* */
/*
* Constants
*/
/* Seal indicating CFE's presence, passed to user program. */
#define CFE_EPTSEAL 0x43464531
...
...
@@ -108,55 +86,14 @@ typedef struct {
}
cfe_fwinfo_t
;
/*
* cfe_strlen is handled specially: If already defined, it has been
* overridden in this environment with a standard strlen-like function.
*/
#ifdef cfe_strlen
# define CFE_API_STRLEN_CUSTOM
#else
# ifdef CFE_API_IMPL_NAMESPACE
# define cfe_strlen(a) __cfe_strlen(a)
# endif
int
cfe_strlen
(
char
*
name
);
#endif
/*
* Defines and prototypes for functions which take no arguments.
*/
#ifdef CFE_API_IMPL_NAMESPACE
int64_t
__cfe_getticks
(
void
);
#define cfe_getticks() __cfe_getticks()
#else
int64_t
cfe_getticks
(
void
);
#endif
/*
* Defines and prototypes for the rest of the functions.
*/
#ifdef CFE_API_IMPL_NAMESPACE
#define cfe_close(a) __cfe_close(a)
#define cfe_cpu_start(a, b, c, d, e) __cfe_cpu_start(a, b, c, d, e)
#define cfe_cpu_stop(a) __cfe_cpu_stop(a)
#define cfe_enumenv(a, b, d, e, f) __cfe_enumenv(a, b, d, e, f)
#define cfe_enummem(a, b, c, d, e) __cfe_enummem(a, b, c, d, e)
#define cfe_exit(a, b) __cfe_exit(a, b)
#define cfe_flushcache(a) __cfe_cacheflush(a)
#define cfe_getdevinfo(a) __cfe_getdevinfo(a)
#define cfe_getenv(a, b, c) __cfe_getenv(a, b, c)
#define cfe_getfwinfo(a) __cfe_getfwinfo(a)
#define cfe_getstdhandle(a) __cfe_getstdhandle(a)
#define cfe_init(a, b) __cfe_init(a, b)
#define cfe_inpstat(a) __cfe_inpstat(a)
#define cfe_ioctl(a, b, c, d, e, f) __cfe_ioctl(a, b, c, d, e, f)
#define cfe_open(a) __cfe_open(a)
#define cfe_read(a, b, c) __cfe_read(a, b, c)
#define cfe_readblk(a, b, c, d) __cfe_readblk(a, b, c, d)
#define cfe_setenv(a, b) __cfe_setenv(a, b)
#define cfe_write(a, b, c) __cfe_write(a, b, c)
#define cfe_writeblk(a, b, c, d) __cfe_writeblk(a, b, c, d)
#endif
/* CFE_API_IMPL_NAMESPACE */
int
cfe_close
(
int
handle
);
int
cfe_cpu_start
(
int
cpu
,
void
(
*
fn
)
(
void
),
long
sp
,
long
gp
,
long
a1
);
int
cfe_cpu_stop
(
int
cpu
);
...
...
include/asm-mips/fw/cfe/cfe_error.h
View file @
417345d8
...
...
@@ -16,18 +16,13 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
/* *********************************************************************
*
* Broadcom Common Firmware Environment (CFE)
*
* Error codes File: cfe_error.h
*
* CFE's global error code list is here.
*
* Author: Mitch Lichtenberg
*
********************************************************************* */
/*
* Broadcom Common Firmware Environment (CFE)
*
* CFE's global error code list is here.
*
* Author: Mitch Lichtenberg
*/
#define CFE_OK 0
#define CFE_ERR -1
/* generic error */
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment