Blame view

include/api_public.h 2.48 KB
4549e789c   Tom Rini   SPDX: Convert all...
1
  /* SPDX-License-Identifier: GPL-2.0+ OR BSD-2-Clause */
e7a85f268   Rafal Jaworowski   API: Add (c) and ...
2
3
4
5
  /*
   * (C) Copyright 2007-2008 Semihalf
   *
   * Written by: Rafal Jaworowski <raj@semihalf.com>
e7a85f268   Rafal Jaworowski   API: Add (c) and ...
6
   */
500856eb1   Rafal Jaworowski   API for external ...
7
8
9
10
11
12
13
14
  #ifndef _API_PUBLIC_H_
  #define _API_PUBLIC_H_
  
  #define API_EINVAL		1	/* invalid argument(s)	*/
  #define API_ENODEV		2	/* no device		*/
  #define API_ENOMEM		3	/* no memory		*/
  #define API_EBUSY		4	/* busy, occupied etc.	*/
  #define API_EIO			5	/* I/O error		*/
923aa4812   Rafal Jaworowski   API: Improve glue...
15
  #define API_ESYSC		6	/* syscall error	*/
500856eb1   Rafal Jaworowski   API for external ...
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
  
  typedef	int (*scp_t)(int, int *, ...);
  
  #define API_SIG_VERSION	1
  #define API_SIG_MAGIC	"UBootAPI"
  #define API_SIG_MAGLEN	8
  
  struct api_signature {
  	char		magic[API_SIG_MAGLEN];	/* magic string */
  	uint16_t	version;		/* API version */
  	uint32_t	checksum;		/* checksum of this sig struct */
  	scp_t		syscall;		/* entry point to the API */
  };
  
  enum {
  	API_RSVD = 0,
  	API_GETC,
  	API_PUTC,
  	API_TSTC,
  	API_PUTS,
  	API_RESET,
  	API_GET_SYS_INFO,
  	API_UDELAY,
  	API_GET_TIMER,
  	API_DEV_ENUM,
  	API_DEV_OPEN,
  	API_DEV_CLOSE,
  	API_DEV_READ,
  	API_DEV_WRITE,
  	API_ENV_ENUM,
  	API_ENV_GET,
  	API_ENV_SET,
a2a5729fc   Che-Liang Chiou   api: export LCD d...
48
49
50
  	API_DISPLAY_GET_INFO,
  	API_DISPLAY_DRAW_BITMAP,
  	API_DISPLAY_CLEAR,
500856eb1   Rafal Jaworowski   API for external ...
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
  	API_MAXCALL
  };
  
  #define MR_ATTR_FLASH	0x0001
  #define MR_ATTR_DRAM	0x0002
  #define MR_ATTR_SRAM	0x0003
  
  struct mem_region {
  	unsigned long	start;
  	unsigned long	size;
  	int		flags;
  };
  
  struct sys_info {
  	unsigned long		clk_bus;
  	unsigned long		clk_cpu;
  	unsigned long		bar;
  	struct mem_region	*mr;
  	int			mr_no;	/* number of memory regions */
  };
6d0f6bcf3   Jean-Christophe PLAGNIOL-VILLARD   rename CFG_ macro...
71
72
  #undef CONFIG_SYS_64BIT_LBA
  #ifdef CONFIG_SYS_64BIT_LBA
500856eb1   Rafal Jaworowski   API for external ...
73
74
75
76
77
78
79
80
81
82
83
84
85
86
  typedef	u_int64_t lbasize_t;
  #else
  typedef unsigned long lbasize_t;
  #endif
  typedef unsigned long lbastart_t;
  
  #define DEV_TYP_NONE	0x0000
  #define DEV_TYP_NET	0x0001
  
  #define DEV_TYP_STOR	0x0002
  #define DT_STOR_IDE	0x0010
  #define DT_STOR_SCSI	0x0020
  #define DT_STOR_USB	0x0040
  #define DT_STOR_MMC	0x0080
f2302d443   Stefan Roese   Fix merge problems
87
  #define DT_STOR_SATA	0x0100
500856eb1   Rafal Jaworowski   API for external ...
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
  
  #define DEV_STA_CLOSED	0x0000		/* invalid, closed */
  #define DEV_STA_OPEN	0x0001		/* open i.e. active */
  
  struct device_info {
  	int	type;
  	void	*cookie;
  
  	union {
  		struct {
  			lbasize_t	block_count;	/* no of blocks */
  			unsigned long	block_size;	/* size of one block */
  		} storage;
  
  		struct {
  			unsigned char	hwaddr[6];
  		} net;
  	} info;
  #define di_stor info.storage
  #define di_net info.net
  
  	int	state;
  };
a2a5729fc   Che-Liang Chiou   api: export LCD d...
111
112
113
114
115
116
117
118
119
120
121
122
  #define DISPLAY_TYPE_LCD	0x0001
  #define DISPLAY_TYPE_VIDEO	0x0002
  
  struct display_info {
  	int type;
  	/* screen size in pixels */
  	int pixel_width;
  	int pixel_height;
  	/* screen size in rows and columns of text */
  	int screen_rows;
  	int screen_cols;
  };
500856eb1   Rafal Jaworowski   API for external ...
123
  #endif /* _API_PUBLIC_H_ */