diff options
Diffstat (limited to 'roms/u-boot/include/asm-generic')
| -rw-r--r-- | roms/u-boot/include/asm-generic/errno.h | 139 | ||||
| -rw-r--r-- | roms/u-boot/include/asm-generic/global_data.h | 104 | ||||
| -rw-r--r-- | roms/u-boot/include/asm-generic/gpio.h | 185 | ||||
| -rw-r--r-- | roms/u-boot/include/asm-generic/ioctl.h | 105 | ||||
| -rw-r--r-- | roms/u-boot/include/asm-generic/sections.h | 89 | ||||
| -rw-r--r-- | roms/u-boot/include/asm-generic/signal.h | 101 | ||||
| -rw-r--r-- | roms/u-boot/include/asm-generic/u-boot.h | 135 | ||||
| -rw-r--r-- | roms/u-boot/include/asm-generic/unaligned.h | 23 | 
8 files changed, 881 insertions, 0 deletions
diff --git a/roms/u-boot/include/asm-generic/errno.h b/roms/u-boot/include/asm-generic/errno.h new file mode 100644 index 00000000..523defba --- /dev/null +++ b/roms/u-boot/include/asm-generic/errno.h @@ -0,0 +1,139 @@ +/* + * U-boot - errno.h Error number defines + * + * Copyright (c) 2005-2007 Analog Devices Inc. + * + * SPDX-License-Identifier:	GPL-2.0+ + */ + +#ifndef _GENERIC_ERRNO_H +#define _GENERIC_ERRNO_H + +#define	EPERM		1	/* Operation not permitted */ +#define	ENOENT		2	/* No such file or directory */ +#define	ESRCH		3	/* No such process */ +#define	EINTR		4	/* Interrupted system call */ +#define	EIO		5	/* I/O error */ +#define	ENXIO		6	/* No such device or address */ +#define	E2BIG		7	/* Argument list too long */ +#define	ENOEXEC		8	/* Exec format error */ +#define	EBADF		9	/* Bad file number */ +#define	ECHILD		10	/* No child processes */ +#define	EAGAIN		11	/* Try again */ +#define	ENOMEM		12	/* Out of memory */ +#define	EACCES		13	/* Permission denied */ +#define	EFAULT		14	/* Bad address */ +#define	ENOTBLK		15	/* Block device required */ +#define	EBUSY		16	/* Device or resource busy */ +#define	EEXIST		17	/* File exists */ +#define	EXDEV		18	/* Cross-device link */ +#define	ENODEV		19	/* No such device */ +#define	ENOTDIR		20	/* Not a directory */ +#define	EISDIR		21	/* Is a directory */ +#define	EINVAL		22	/* Invalid argument */ +#define	ENFILE		23	/* File table overflow */ +#define	EMFILE		24	/* Too many open files */ +#define	ENOTTY		25	/* Not a typewriter */ +#define	ETXTBSY		26	/* Text file busy */ +#define	EFBIG		27	/* File too large */ +#define	ENOSPC		28	/* No space left on device */ +#define	ESPIPE		29	/* Illegal seek */ +#define	EROFS		30	/* Read-only file system */ +#define	EMLINK		31	/* Too many links */ +#define	EPIPE		32	/* Broken pipe */ +#define	EDOM		33	/* Math argument out of domain of func */ +#define	ERANGE		34	/* Math result not representable */ +#define	EDEADLK		35	/* Resource deadlock would occur */ +#define	ENAMETOOLONG	36	/* File name too long */ +#define	ENOLCK		37	/* No record locks available */ +#define	ENOSYS		38	/* Function not implemented */ +#define	ENOTEMPTY	39	/* Directory not empty */ +#define	ELOOP		40	/* Too many symbolic links encountered */ +#define	EWOULDBLOCK	EAGAIN	/* Operation would block */ +#define	ENOMSG		42	/* No message of desired type */ +#define	EIDRM		43	/* Identifier removed */ +#define	ECHRNG		44	/* Channel number out of range */ +#define	EL2NSYNC	45	/* Level 2 not synchronized */ +#define	EL3HLT		46	/* Level 3 halted */ +#define	EL3RST		47	/* Level 3 reset */ +#define	ELNRNG		48	/* Link number out of range */ +#define	EUNATCH		49	/* Protocol driver not attached */ +#define	ENOCSI		50	/* No CSI structure available */ +#define	EL2HLT		51	/* Level 2 halted */ +#define	EBADE		52	/* Invalid exchange */ +#define	EBADR		53	/* Invalid request descriptor */ +#define	EXFULL		54	/* Exchange full */ +#define	ENOANO		55	/* No anode */ +#define	EBADRQC		56	/* Invalid request code */ +#define	EBADSLT		57	/* Invalid slot */ + +#define	EDEADLOCK	EDEADLK + +#define	EBFONT		59	/* Bad font file format */ +#define	ENOSTR		60	/* Device not a stream */ +#define	ENODATA		61	/* No data available */ +#define	ETIME		62	/* Timer expired */ +#define	ENOSR		63	/* Out of streams resources */ +#define	ENONET		64	/* Machine is not on the network */ +#define	ENOPKG		65	/* Package not installed */ +#define	EREMOTE		66	/* Object is remote */ +#define	ENOLINK		67	/* Link has been severed */ +#define	EADV		68	/* Advertise error */ +#define	ESRMNT		69	/* Srmount error */ +#define	ECOMM		70	/* Communication error on send */ +#define	EPROTO		71	/* Protocol error */ +#define	EMULTIHOP	72	/* Multihop attempted */ +#define	EDOTDOT		73	/* RFS specific error */ +#define	EBADMSG		74	/* Not a data message */ +#define	EOVERFLOW	75	/* Value too large for defined data type */ +#define	ENOTUNIQ	76	/* Name not unique on network */ +#define	EBADFD		77	/* File descriptor in bad state */ +#define	EREMCHG		78	/* Remote address changed */ +#define	ELIBACC		79	/* Can not access a needed shared library */ +#define	ELIBBAD		80	/* Accessing a corrupted shared library */ +#define	ELIBSCN		81	/* .lib section in a.out corrupted */ +#define	ELIBMAX		82	/* Attempting to link in too many shared libraries */ +#define	ELIBEXEC	83	/* Cannot exec a shared library directly */ +#define	EILSEQ		84	/* Illegal byte sequence */ +#define	ERESTART	85	/* Interrupted system call should be restarted */ +#define	ESTRPIPE	86	/* Streams pipe error */ +#define	EUSERS		87	/* Too many users */ +#define	ENOTSOCK	88	/* Socket operation on non-socket */ +#define	EDESTADDRREQ	89	/* Destination address required */ +#define	EMSGSIZE	90	/* Message too long */ +#define	EPROTOTYPE	91	/* Protocol wrong type for socket */ +#define	ENOPROTOOPT	92	/* Protocol not available */ +#define	EPROTONOSUPPORT	93	/* Protocol not supported */ +#define	ESOCKTNOSUPPORT	94	/* Socket type not supported */ +#define	EOPNOTSUPP	95	/* Operation not supported on transport endpoint */ +#define	EPFNOSUPPORT	96	/* Protocol family not supported */ +#define	EAFNOSUPPORT	97	/* Address family not supported by protocol */ +#define	EADDRINUSE	98	/* Address already in use */ +#define	EADDRNOTAVAIL	99	/* Cannot assign requested address */ +#define	ENETDOWN	100	/* Network is down */ +#define	ENETUNREACH	101	/* Network is unreachable */ +#define	ENETRESET	102	/* Network dropped connection because of reset */ +#define	ECONNABORTED	103	/* Software caused connection abort */ +#define	ECONNRESET	104	/* Connection reset by peer */ +#define	ENOBUFS		105	/* No buffer space available */ +#define	EISCONN		106	/* Transport endpoint is already connected */ +#define	ENOTCONN	107	/* Transport endpoint is not connected */ +#define	ESHUTDOWN	108	/* Cannot send after transport endpoint shutdown */ +#define	ETOOMANYREFS	109	/* Too many references: cannot splice */ +#define	ETIMEDOUT	110	/* Connection timed out */ +#define	ECONNREFUSED	111	/* Connection refused */ +#define	EHOSTDOWN	112	/* Host is down */ +#define	EHOSTUNREACH	113	/* No route to host */ +#define	EALREADY	114	/* Operation already in progress */ +#define	EINPROGRESS	115	/* Operation now in progress */ +#define	ESTALE		116	/* Stale NFS file handle */ +#define	EUCLEAN		117	/* Structure needs cleaning */ +#define	ENOTNAM		118	/* Not a XENIX named type file */ +#define	ENAVAIL		119	/* No XENIX semaphores available */ +#define	EISNAM		120	/* Is a named type file */ +#define	EREMOTEIO	121	/* Remote I/O error */ +#define	EDQUOT		122	/* Quota exceeded */ +#define	ENOMEDIUM	123	/* No medium found */ +#define	EMEDIUMTYPE	124	/* Wrong medium type */ + +#endif diff --git a/roms/u-boot/include/asm-generic/global_data.h b/roms/u-boot/include/asm-generic/global_data.h new file mode 100644 index 00000000..e98b661e --- /dev/null +++ b/roms/u-boot/include/asm-generic/global_data.h @@ -0,0 +1,104 @@ +/* + * Copyright (c) 2012 The Chromium OS Authors. + * (C) Copyright 2002-2010 + * Wolfgang Denk, DENX Software Engineering, wd@denx.de. + * + * SPDX-License-Identifier:	GPL-2.0+ + */ + +#ifndef __ASM_GENERIC_GBL_DATA_H +#define __ASM_GENERIC_GBL_DATA_H +/* + * The following data structure is placed in some memory which is + * available very early after boot (like DPRAM on MPC8xx/MPC82xx, or + * some locked parts of the data cache) to allow for a minimum set of + * global variables during system initialization (until we have set + * up the memory controller so that we can use RAM). + * + * Keep it *SMALL* and remember to set GENERATED_GBL_DATA_SIZE > sizeof(gd_t) + * + * Each architecture has its own private fields. For now all are private + */ + +#ifndef __ASSEMBLY__ +#include <linux/list.h> + +typedef struct global_data { +	bd_t *bd; +	unsigned long flags; +	unsigned int baudrate; +	unsigned long cpu_clk;	/* CPU clock in Hz!		*/ +	unsigned long bus_clk; +	/* We cannot bracket this with CONFIG_PCI due to mpc5xxx */ +	unsigned long pci_clk; +	unsigned long mem_clk; +#if defined(CONFIG_LCD) || defined(CONFIG_VIDEO) +	unsigned long fb_base;	/* Base address of framebuffer mem */ +#endif +#if defined(CONFIG_POST) || defined(CONFIG_LOGBUFFER) +	unsigned long post_log_word;  /* Record POST activities */ +	unsigned long post_log_res; /* success of POST test */ +	unsigned long post_init_f_time;  /* When post_init_f started */ +#endif +#ifdef CONFIG_BOARD_TYPES +	unsigned long board_type; +#endif +	unsigned long have_console;	/* serial_init() was called */ +#ifdef CONFIG_PRE_CONSOLE_BUFFER +	unsigned long precon_buf_idx;	/* Pre-Console buffer index */ +#endif +#ifdef CONFIG_MODEM_SUPPORT +	unsigned long do_mdm_init; +	unsigned long be_quiet; +#endif +	unsigned long env_addr;	/* Address  of Environment struct */ +	unsigned long env_valid;	/* Checksum of Environment valid? */ + +	unsigned long ram_top;	/* Top address of RAM used by U-Boot */ + +	unsigned long relocaddr;	/* Start address of U-Boot in RAM */ +	phys_size_t ram_size;	/* RAM size */ +	unsigned long mon_len;	/* monitor len */ +	unsigned long irq_sp;		/* irq stack pointer */ +	unsigned long start_addr_sp;	/* start_addr_stackpointer */ +	unsigned long reloc_off; +	struct global_data *new_gd;	/* relocated global data */ + +#ifdef CONFIG_DM +	struct device	*dm_root;	/* Root instance for Driver Model */ +	struct list_head uclass_root;	/* Head of core tree */ +#endif + +	const void *fdt_blob;	/* Our device tree, NULL if none */ +	void *new_fdt;		/* Relocated FDT */ +	unsigned long fdt_size;	/* Space reserved for relocated FDT */ +	void **jt;		/* jump table */ +	char env_buf[32];	/* buffer for getenv() before reloc. */ +#ifdef CONFIG_TRACE +	void		*trace_buff;	/* The trace buffer */ +#endif +#if defined(CONFIG_SYS_I2C) +	int		cur_i2c_bus;	/* current used i2c bus */ +#endif +#ifdef CONFIG_SYS_I2C_MXC +	void *srdata[10]; +#endif +	unsigned long timebase_h; +	unsigned long timebase_l; +	struct arch_global_data arch;	/* architecture-specific data */ +} gd_t; +#endif + +/* + * Global Data Flags + */ +#define GD_FLG_RELOC		0x00001	/* Code was relocated to RAM	   */ +#define GD_FLG_DEVINIT		0x00002	/* Devices have been initialized   */ +#define GD_FLG_SILENT		0x00004	/* Silent mode			   */ +#define GD_FLG_POSTFAIL		0x00008	/* Critical POST test failed	   */ +#define GD_FLG_POSTSTOP		0x00010	/* POST seqeunce aborted	   */ +#define GD_FLG_LOGINIT		0x00020	/* Log Buffer has been initialized */ +#define GD_FLG_DISABLE_CONSOLE	0x00040	/* Disable console (in & out)	   */ +#define GD_FLG_ENV_READY	0x00080	/* Env. imported into hash table   */ + +#endif /* __ASM_GENERIC_GBL_DATA_H */ diff --git a/roms/u-boot/include/asm-generic/gpio.h b/roms/u-boot/include/asm-generic/gpio.h new file mode 100644 index 00000000..e325df40 --- /dev/null +++ b/roms/u-boot/include/asm-generic/gpio.h @@ -0,0 +1,185 @@ +/* + * Copyright (c) 2011 The Chromium OS Authors. + * Copyright (c) 2011, NVIDIA Corp. All rights reserved. + * SPDX-License-Identifier:	GPL-2.0+ + */ + +#ifndef _ASM_GENERIC_GPIO_H_ +#define _ASM_GENERIC_GPIO_H_ + +/* + * Generic GPIO API for U-Boot + * + * GPIOs are numbered from 0 to GPIO_COUNT-1 which value is defined + * by the SOC/architecture. + * + * Each GPIO can be an input or output. If an input then its value can + * be read as 0 or 1. If an output then its value can be set to 0 or 1. + * If you try to write an input then the value is undefined. If you try + * to read an output, barring something very unusual,  you will get + * back the value of the output that you previously set. + * + * In some cases the operation may fail, for example if the GPIO number + * is out of range, or the GPIO is not available because its pin is + * being used by another function. In that case, functions may return + * an error value of -1. + */ + +/** + * Request a gpio. This should be called before any of the other functions + * are used on this gpio. + * + * @param gp	GPIO number + * @param label	User label for this GPIO + * @return 0 if ok, -1 on error + */ +int gpio_request(unsigned gpio, const char *label); + +/** + * Stop using the GPIO.  This function should not alter pin configuration. + * + * @param gpio	GPIO number + * @return 0 if ok, -1 on error + */ +int gpio_free(unsigned gpio); + +/** + * Make a GPIO an input. + * + * @param gpio	GPIO number + * @return 0 if ok, -1 on error + */ +int gpio_direction_input(unsigned gpio); + +/** + * Make a GPIO an output, and set its value. + * + * @param gpio	GPIO number + * @param value	GPIO value (0 for low or 1 for high) + * @return 0 if ok, -1 on error + */ +int gpio_direction_output(unsigned gpio, int value); + +/** + * Get a GPIO's value. This will work whether the GPIO is an input + * or an output. + * + * @param gpio	GPIO number + * @return 0 if low, 1 if high, -1 on error + */ +int gpio_get_value(unsigned gpio); + +/** + * Set an output GPIO's value. The GPIO must already be an output or + * this function may have no effect. + * + * @param gpio	GPIO number + * @param value	GPIO value (0 for low or 1 for high) + * @return 0 if ok, -1 on error + */ +int gpio_set_value(unsigned gpio, int value); + +/* State of a GPIO, as reported by get_state() */ +enum { +	GPIOF_INPUT = 0, +	GPIOF_OUTPUT, +	GPIOF_UNKNOWN, +}; + +struct device; + +/** + * struct struct dm_gpio_ops - Driver model GPIO operations + * + * Refer to functions above for description. These function largely copy + * the old API. + * + * This is trying to be close to Linux GPIO API. Once the U-Boot uses the + * new DM GPIO API, this should be really easy to flip over to the Linux + * GPIO API-alike interface. + * + * Akso it would be useful to standardise additional functions like + * pullup, slew rate and drive strength. + * + * gpio_request)( and gpio_free() are optional - if NULL then they will + * not be called. + * + * Note that @offset is the offset from the base GPIO of the device. So + * offset 0 is the device's first GPIO and offset o-1 is the last GPIO, + * where o is the number of GPIO lines controlled by the device. A device + * is typically used to control a single bank of GPIOs. Within complex + * SoCs there may be many banks and therefore many devices all referring + * to the different IO addresses within the SoC. + * + * The uclass combines all GPIO devices togther to provide a consistent + * numbering from 0 to n-1, where n is the number of GPIOs in total across + * all devices. Be careful not to confuse offset with gpio in the parameters. + */ +struct dm_gpio_ops { +	int (*request)(struct device *dev, unsigned offset, const char *label); +	int (*free)(struct device *dev, unsigned offset); +	int (*direction_input)(struct device *dev, unsigned offset); +	int (*direction_output)(struct device *dev, unsigned offset, +				int value); +	int (*get_value)(struct device *dev, unsigned offset); +	int (*set_value)(struct device *dev, unsigned offset, int value); +	int (*get_function)(struct device *dev, unsigned offset); +	int (*get_state)(struct device *dev, unsigned offset, char *state, +			 int maxlen); +}; + +/** + * struct gpio_dev_priv - information about a device used by the uclass + * + * The uclass combines all active GPIO devices into a unified numbering + * scheme. To do this it maintains some private information aobut each + * device. + * + * To implement driver model support in your GPIO driver, add a probe + * handler, and set @gpio_count and @bank_name correctly in that handler. + * This tells the uclass the name of the GPIO bank and the number of GPIOs + * it contains. + * + * @bank_name: Name of the GPIO device (e.g 'a' means GPIOs will be called + * 'A0', 'A1', etc. + * @gpio_count: Number of GPIOs in this device + * @gpio_base: Base GPIO number for this device. For the first active device + * this will be 0; the numbering for others will follow sequentially so that + * @gpio_base for device 1 will equal the number of GPIOs in device 0. + */ +struct gpio_dev_priv { +	const char *bank_name; +	unsigned gpio_count; +	unsigned gpio_base; +}; + +/* Access the GPIO operations for a device */ +#define gpio_get_ops(dev)	((struct dm_gpio_ops *)(dev)->driver->ops) + +/** + * gpio_get_bank_info - Return information about a GPIO bank/device + * + * This looks up a device and returns both its GPIO base name and the number + * of GPIOs it controls. + * + * @dev: Device to look up + * @offset_count: Returns number of GPIOs within this bank + * @return bank name of this device + */ +const char *gpio_get_bank_info(struct device *dev, int *offset_count); + +/** + * gpio_lookup_name - Look up a GPIO name and return its details + * + * This is used to convert a named GPIO into a device, offset and GPIO + * number. + * + * @name: GPIO name to look up + * @devp: Returns pointer to device which contains this GPIO + * @offsetp: Returns the offset number within this device + * @gpiop: Returns the absolute GPIO number, numbered from 0 + */ +int gpio_lookup_name(const char *name, struct device **devp, +		     unsigned int *offsetp, unsigned int *gpiop); + +#endif	/* _ASM_GENERIC_GPIO_H_ */ diff --git a/roms/u-boot/include/asm-generic/ioctl.h b/roms/u-boot/include/asm-generic/ioctl.h new file mode 100644 index 00000000..15828b2d --- /dev/null +++ b/roms/u-boot/include/asm-generic/ioctl.h @@ -0,0 +1,105 @@ +#ifndef _ASM_GENERIC_IOCTL_H +#define _ASM_GENERIC_IOCTL_H + +/* ioctl command encoding: 32 bits total, command in lower 16 bits, + * size of the parameter structure in the lower 14 bits of the + * upper 16 bits. + * Encoding the size of the parameter structure in the ioctl request + * is useful for catching programs compiled with old versions + * and to avoid overwriting user space outside the user buffer area. + * The highest 2 bits are reserved for indicating the ``access mode''. + * NOTE: This limits the max parameter size to 16kB -1 ! + */ + +/* + * The following is for compatibility across the various Linux + * platforms.  The generic ioctl numbering scheme doesn't really enforce + * a type field.  De facto, however, the top 8 bits of the lower 16 + * bits are indeed used as a type field, so we might just as well make + * this explicit here.  Please be sure to use the decoding macros + * below from now on. + */ +#define _IOC_NRBITS	8 +#define _IOC_TYPEBITS	8 + +/* + * Let any architecture override either of the following before + * including this file. + */ + +#ifndef _IOC_SIZEBITS +# define _IOC_SIZEBITS	14 +#endif + +#ifndef _IOC_DIRBITS +# define _IOC_DIRBITS	2 +#endif + +#define _IOC_NRMASK	((1 << _IOC_NRBITS)-1) +#define _IOC_TYPEMASK	((1 << _IOC_TYPEBITS)-1) +#define _IOC_SIZEMASK	((1 << _IOC_SIZEBITS)-1) +#define _IOC_DIRMASK	((1 << _IOC_DIRBITS)-1) + +#define _IOC_NRSHIFT	0 +#define _IOC_TYPESHIFT	(_IOC_NRSHIFT+_IOC_NRBITS) +#define _IOC_SIZESHIFT	(_IOC_TYPESHIFT+_IOC_TYPEBITS) +#define _IOC_DIRSHIFT	(_IOC_SIZESHIFT+_IOC_SIZEBITS) + +/* + * Direction bits, which any architecture can choose to override + * before including this file. + */ + +#ifndef _IOC_NONE +# define _IOC_NONE	0U +#endif + +#ifndef _IOC_WRITE +# define _IOC_WRITE	1U +#endif + +#ifndef _IOC_READ +# define _IOC_READ	2U +#endif + +#define _IOC(dir,type,nr,size) \ +	(((dir)  << _IOC_DIRSHIFT) | \ +	 ((type) << _IOC_TYPESHIFT) | \ +	 ((nr)   << _IOC_NRSHIFT) | \ +	 ((size) << _IOC_SIZESHIFT)) + +#ifdef __KERNEL__ +/* provoke compile error for invalid uses of size argument */ +extern unsigned int __invalid_size_argument_for_IOC; +#define _IOC_TYPECHECK(t) \ +	((sizeof(t) == sizeof(t[1]) && \ +	  sizeof(t) < (1 << _IOC_SIZEBITS)) ? \ +	  sizeof(t) : __invalid_size_argument_for_IOC) +#else +#define _IOC_TYPECHECK(t) (sizeof(t)) +#endif + +/* used to create numbers */ +#define _IO(type,nr)		_IOC(_IOC_NONE,(type),(nr),0) +#define _IOR(type,nr,size)	_IOC(_IOC_READ,(type),(nr),(_IOC_TYPECHECK(size))) +#define _IOW(type,nr,size)	_IOC(_IOC_WRITE,(type),(nr),(_IOC_TYPECHECK(size))) +#define _IOWR(type,nr,size)	_IOC(_IOC_READ|_IOC_WRITE,(type),(nr),(_IOC_TYPECHECK(size))) +#define _IOR_BAD(type,nr,size)	_IOC(_IOC_READ,(type),(nr),sizeof(size)) +#define _IOW_BAD(type,nr,size)	_IOC(_IOC_WRITE,(type),(nr),sizeof(size)) +#define _IOWR_BAD(type,nr,size)	_IOC(_IOC_READ|_IOC_WRITE,(type),(nr),sizeof(size)) + +/* used to decode ioctl numbers.. */ +#define _IOC_DIR(nr)		(((nr) >> _IOC_DIRSHIFT) & _IOC_DIRMASK) +#define _IOC_TYPE(nr)		(((nr) >> _IOC_TYPESHIFT) & _IOC_TYPEMASK) +#define _IOC_NR(nr)		(((nr) >> _IOC_NRSHIFT) & _IOC_NRMASK) +#define _IOC_SIZE(nr)		(((nr) >> _IOC_SIZESHIFT) & _IOC_SIZEMASK) + +/* ...and for the drivers/sound files... */ + +#define IOC_IN		(_IOC_WRITE << _IOC_DIRSHIFT) +#define IOC_OUT		(_IOC_READ << _IOC_DIRSHIFT) +#define IOC_INOUT	((_IOC_WRITE|_IOC_READ) << _IOC_DIRSHIFT) +#define IOCSIZE_MASK	(_IOC_SIZEMASK << _IOC_SIZESHIFT) +#define IOCSIZE_SHIFT	(_IOC_SIZESHIFT) + +#endif /* _ASM_GENERIC_IOCTL_H */ diff --git a/roms/u-boot/include/asm-generic/sections.h b/roms/u-boot/include/asm-generic/sections.h new file mode 100644 index 00000000..458952fb --- /dev/null +++ b/roms/u-boot/include/asm-generic/sections.h @@ -0,0 +1,89 @@ +/* + * Copyright (c) 2011 The Chromium OS Authors. + * + * SPDX-License-Identifier:	GPL-2.0+ + */ + +/* Taken from Linux kernel, commit f56c3196 */ + +#ifndef _ASM_GENERIC_SECTIONS_H_ +#define _ASM_GENERIC_SECTIONS_H_ + +/* References to section boundaries */ + +extern char _text[], _stext[], _etext[]; +extern char _data[], _sdata[], _edata[]; +extern char __bss_start[], __bss_stop[]; +extern char __init_begin[], __init_end[]; +extern char _sinittext[], _einittext[]; +extern char _end[], _init[]; +extern char __per_cpu_load[], __per_cpu_start[], __per_cpu_end[]; +extern char __kprobes_text_start[], __kprobes_text_end[]; +extern char __entry_text_start[], __entry_text_end[]; +extern char __initdata_begin[], __initdata_end[]; +extern char __start_rodata[], __end_rodata[]; + +/* Start and end of .ctors section - used for constructor calls. */ +extern char __ctors_start[], __ctors_end[]; + +/* function descriptor handling (if any).  Override + * in asm/sections.h */ +#ifndef dereference_function_descriptor +#define dereference_function_descriptor(p) (p) +#endif + +/* random extra sections (if any).  Override + * in asm/sections.h */ +#ifndef arch_is_kernel_text +static inline int arch_is_kernel_text(unsigned long addr) +{ +	return 0; +} +#endif + +#ifndef arch_is_kernel_data +static inline int arch_is_kernel_data(unsigned long addr) +{ +	return 0; +} +#endif + +/* U-Boot-specific things begin here */ + +/* Start of U-Boot text region */ +extern char __text_start[]; + +/* This marks the end of the text region which must be relocated */ +extern char __image_copy_end[]; + +/* + * This is the U-Boot entry point - prior to relocation it should be same + * as __text_start + */ +extern void _start(void); + +/* + * ARM defines its symbols as char[]. Other arches define them as ulongs. + */ +#ifdef CONFIG_ARM + +extern char __bss_start[]; +extern char __bss_end[]; +extern char __image_copy_start[]; +extern char __image_copy_end[]; +extern char __rel_dyn_start[]; +extern char __rel_dyn_end[]; + +#else /* don't use offsets: */ + +/* Exports from the Linker Script */ +extern ulong __data_end; +extern ulong __rel_dyn_start; +extern ulong __rel_dyn_end; +extern ulong __bss_end; + +extern ulong _TEXT_BASE;	/* code start */ + +#endif + +#endif /* _ASM_GENERIC_SECTIONS_H_ */ diff --git a/roms/u-boot/include/asm-generic/signal.h b/roms/u-boot/include/asm-generic/signal.h new file mode 100644 index 00000000..af939478 --- /dev/null +++ b/roms/u-boot/include/asm-generic/signal.h @@ -0,0 +1,101 @@ +#ifndef __ASM_GENERIC_SIGNAL_H +#define __ASM_GENERIC_SIGNAL_H + +#include <linux/types.h> + +#define _NSIG		64 +#define _NSIG_BPW	BITS_PER_LONG +#define _NSIG_WORDS	(_NSIG / _NSIG_BPW) + +#define SIGHUP		 1 +#define SIGINT		 2 +#define SIGQUIT		 3 +#define SIGILL		 4 +#define SIGTRAP		 5 +#define SIGABRT		 6 +#define SIGIOT		 6 +#define SIGBUS		 7 +#define SIGFPE		 8 +#define SIGKILL		 9 +#define SIGUSR1		10 +#define SIGSEGV		11 +#define SIGUSR2		12 +#define SIGPIPE		13 +#define SIGALRM		14 +#define SIGTERM		15 +#define SIGSTKFLT	16 +#define SIGCHLD		17 +#define SIGCONT		18 +#define SIGSTOP		19 +#define SIGTSTP		20 +#define SIGTTIN		21 +#define SIGTTOU		22 +#define SIGURG		23 +#define SIGXCPU		24 +#define SIGXFSZ		25 +#define SIGVTALRM	26 +#define SIGPROF		27 +#define SIGWINCH	28 +#define SIGIO		29 +#define SIGPOLL		SIGIO +/* +#define SIGLOST		29 +*/ +#define SIGPWR		30 +#define SIGSYS		31 +#define	SIGUNUSED	31 + +/* These should not be considered constants from userland.  */ +#define SIGRTMIN	32 +#ifndef SIGRTMAX +#define SIGRTMAX	_NSIG +#endif + +/* + * SA_FLAGS values: + * + * SA_ONSTACK indicates that a registered stack_t will be used. + * SA_RESTART flag to get restarting signals (which were the default long ago) + * SA_NOCLDSTOP flag to turn off SIGCHLD when children stop. + * SA_RESETHAND clears the handler when the signal is delivered. + * SA_NOCLDWAIT flag on SIGCHLD to inhibit zombies. + * SA_NODEFER prevents the current signal from being masked in the handler. + * + * SA_ONESHOT and SA_NOMASK are the historical Linux names for the Single + * Unix names RESETHAND and NODEFER respectively. + */ +#define SA_NOCLDSTOP	0x00000001 +#define SA_NOCLDWAIT	0x00000002 +#define SA_SIGINFO	0x00000004 +#define SA_ONSTACK	0x08000000 +#define SA_RESTART	0x10000000 +#define SA_NODEFER	0x40000000 +#define SA_RESETHAND	0x80000000 + +#define SA_NOMASK	SA_NODEFER +#define SA_ONESHOT	SA_RESETHAND + +/* + * New architectures should not define the obsolete + *	SA_RESTORER	0x04000000 + */ + +/* + * sigaltstack controls + */ +#define SS_ONSTACK	1 +#define SS_DISABLE	2 + +#define MINSIGSTKSZ	2048 +#define SIGSTKSZ	8192 + +#ifndef __ASSEMBLY__ +typedef struct { +	unsigned long sig[_NSIG_WORDS]; +} sigset_t; + +/* not actually used, but required for linux/syscalls.h */ + +#endif /* __ASSEMBLY__ */ + +#endif /* _ASM_GENERIC_SIGNAL_H */ diff --git a/roms/u-boot/include/asm-generic/u-boot.h b/roms/u-boot/include/asm-generic/u-boot.h new file mode 100644 index 00000000..62cb1eab --- /dev/null +++ b/roms/u-boot/include/asm-generic/u-boot.h @@ -0,0 +1,135 @@ +/* + * Copyright (c) 2011 The Chromium OS Authors. + * + * (C) Copyright 2000 - 2002 + * Wolfgang Denk, DENX Software Engineering, wd@denx.de. + * + * SPDX-License-Identifier:	GPL-2.0+ + ******************************************************************** + * NOTE: This header file defines an interface to U-Boot. Including + * this (unmodified) header file in another file is considered normal + * use of U-Boot, and does *not* fall under the heading of "derived + * work". + ******************************************************************** + */ + +#ifndef __ASM_GENERIC_U_BOOT_H__ +#define __ASM_GENERIC_U_BOOT_H__ + +/* + * Board information passed to Linux kernel from U-Boot + * + * include/asm-ppc/u-boot.h + */ + +#ifndef __ASSEMBLY__ + +typedef struct bd_info { +	unsigned long	bi_memstart;	/* start of DRAM memory */ +	phys_size_t	bi_memsize;	/* size	 of DRAM memory in bytes */ +	unsigned long	bi_flashstart;	/* start of FLASH memory */ +	unsigned long	bi_flashsize;	/* size	 of FLASH memory */ +	unsigned long	bi_flashoffset; /* reserved area for startup monitor */ +	unsigned long	bi_sramstart;	/* start of SRAM memory */ +	unsigned long	bi_sramsize;	/* size	 of SRAM memory */ +#ifdef CONFIG_ARM +	unsigned long	bi_arm_freq; /* arm frequency */ +	unsigned long	bi_dsp_freq; /* dsp core frequency */ +	unsigned long	bi_ddr_freq; /* ddr frequency */ +#endif +#if defined(CONFIG_5xx) || defined(CONFIG_8xx) || defined(CONFIG_MPC8260) \ +	|| defined(CONFIG_E500) || defined(CONFIG_MPC86xx) +	unsigned long	bi_immr_base;	/* base of IMMR register */ +#endif +#if defined(CONFIG_MPC5xxx) +	unsigned long	bi_mbar_base;	/* base of internal registers */ +#endif +#if defined(CONFIG_MPC83xx) +	unsigned long	bi_immrbar; +#endif +	unsigned long	bi_bootflags;	/* boot / reboot flag (Unused) */ +	unsigned long	bi_ip_addr;	/* IP Address */ +	unsigned char	bi_enetaddr[6];	/* OLD: see README.enetaddr */ +	unsigned short	bi_ethspeed;	/* Ethernet speed in Mbps */ +	unsigned long	bi_intfreq;	/* Internal Freq, in MHz */ +	unsigned long	bi_busfreq;	/* Bus Freq, in MHz */ +#if defined(CONFIG_CPM2) +	unsigned long	bi_cpmfreq;	/* CPM_CLK Freq, in MHz */ +	unsigned long	bi_brgfreq;	/* BRG_CLK Freq, in MHz */ +	unsigned long	bi_sccfreq;	/* SCC_CLK Freq, in MHz */ +	unsigned long	bi_vco;		/* VCO Out from PLL, in MHz */ +#endif +#if defined(CONFIG_MPC512X) +	unsigned long	bi_ipsfreq;	/* IPS Bus Freq, in MHz */ +#endif /* CONFIG_MPC512X */ +#if defined(CONFIG_MPC5xxx) +	unsigned long	bi_ipbfreq;	/* IPB Bus Freq, in MHz */ +	unsigned long	bi_pcifreq;	/* PCI Bus Freq, in MHz */ +#endif +#if defined(CONFIG_405)   || \ +		defined(CONFIG_405GP) || \ +		defined(CONFIG_405EP) || \ +		defined(CONFIG_405EZ) || \ +		defined(CONFIG_405EX) || \ +		defined(CONFIG_440) +	unsigned char	bi_s_version[4];	/* Version of this structure */ +	unsigned char	bi_r_version[32];	/* Version of the ROM (AMCC) */ +	unsigned int	bi_procfreq;	/* CPU (Internal) Freq, in Hz */ +	unsigned int	bi_plb_busfreq;	/* PLB Bus speed, in Hz */ +	unsigned int	bi_pci_busfreq;	/* PCI Bus speed, in Hz */ +	unsigned char	bi_pci_enetaddr[6];	/* PCI Ethernet MAC address */ +#endif +#if defined(CONFIG_HYMOD) +	hymod_conf_t	bi_hymod_conf;	/* hymod configuration information */ +#endif + +#ifdef CONFIG_HAS_ETH1 +	unsigned char   bi_enet1addr[6];	/* OLD: see README.enetaddr */ +#endif +#ifdef CONFIG_HAS_ETH2 +	unsigned char	bi_enet2addr[6];	/* OLD: see README.enetaddr */ +#endif +#ifdef CONFIG_HAS_ETH3 +	unsigned char   bi_enet3addr[6];	/* OLD: see README.enetaddr */ +#endif +#ifdef CONFIG_HAS_ETH4 +	unsigned char   bi_enet4addr[6];	/* OLD: see README.enetaddr */ +#endif +#ifdef CONFIG_HAS_ETH5 +	unsigned char   bi_enet5addr[6];	/* OLD: see README.enetaddr */ +#endif + +#if defined(CONFIG_405GP) || defined(CONFIG_405EP) || \ +		defined(CONFIG_405EZ) || defined(CONFIG_440GX) || \ +		defined(CONFIG_440EP) || defined(CONFIG_440GR) || \ +		defined(CONFIG_440EPX) || defined(CONFIG_440GRX) || \ +		defined(CONFIG_460EX) || defined(CONFIG_460GT) +	unsigned int	bi_opbfreq;		/* OPB clock in Hz */ +	int		bi_iic_fast[2];		/* Use fast i2c mode */ +#endif +#if defined(CONFIG_4xx) +#if defined(CONFIG_440GX) || \ +		defined(CONFIG_460EX) || defined(CONFIG_460GT) +	int		bi_phynum[4];           /* Determines phy mapping */ +	int		bi_phymode[4];          /* Determines phy mode */ +#elif defined(CONFIG_405EP) || defined(CONFIG_405EX) || defined(CONFIG_440) +	int		bi_phynum[2];           /* Determines phy mapping */ +	int		bi_phymode[2];          /* Determines phy mode */ +#else +	int		bi_phynum[1];           /* Determines phy mapping */ +	int		bi_phymode[1];          /* Determines phy mode */ +#endif +#endif /* defined(CONFIG_4xx) */ +	ulong	        bi_arch_number;	/* unique id for this board */ +	ulong	        bi_boot_params;	/* where this board expects params */ +#ifdef CONFIG_NR_DRAM_BANKS +	struct {			/* RAM configuration */ +		ulong start; +		ulong size; +	} bi_dram[CONFIG_NR_DRAM_BANKS]; +#endif /* CONFIG_NR_DRAM_BANKS */ +} bd_t; + +#endif /* __ASSEMBLY__ */ + +#endif	/* __ASM_GENERIC_U_BOOT_H__ */ diff --git a/roms/u-boot/include/asm-generic/unaligned.h b/roms/u-boot/include/asm-generic/unaligned.h new file mode 100644 index 00000000..fd025509 --- /dev/null +++ b/roms/u-boot/include/asm-generic/unaligned.h @@ -0,0 +1,23 @@ +#ifndef _GENERIC_UNALIGNED_H +#define _GENERIC_UNALIGNED_H + +#include <asm/byteorder.h> + +#include <linux/unaligned/le_byteshift.h> +#include <linux/unaligned/be_byteshift.h> +#include <linux/unaligned/generic.h> + +/* + * Select endianness + */ +#if defined(__LITTLE_ENDIAN) +#define get_unaligned	__get_unaligned_le +#define put_unaligned	__put_unaligned_le +#elif defined(__BIG_ENDIAN) +#define get_unaligned	__get_unaligned_be +#define put_unaligned	__put_unaligned_be +#else +#error invalid endian +#endif + +#endif  | 
