[U-Boot-Users] [PATCH] Adds support for Xilinx Uart Lite on ppc4xx

Michal Simek monstr at seznam.cz
Fri Jul 11 08:30:54 CEST 2008


100% NACK.


> Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda at uam.es>
> ---
>  include/asm-ppc/arch-ppc4xx/xbasic_types.h |  301 ++++++++++++++++++++++++++++
>  include/asm-ppc/arch-ppc4xx/xio.h          |   63 ++++++
>  include/asm-ppc/arch-ppc4xx/xuartlite_l.h  |  256 +++++++++++++++++++++++
>  include/asm-ppc/serial_xuartlite.h         |   25 +++
>  4 files changed, 645 insertions(+), 0 deletions(-)
>  create mode 100644 include/asm-ppc/arch-ppc4xx/xbasic_types.h
>  create mode 100644 include/asm-ppc/arch-ppc4xx/xio.h
>  create mode 100644 include/asm-ppc/arch-ppc4xx/xuartlite_l.h
>  create mode 100644 include/asm-ppc/serial_xuartlite.h
> 
> diff --git a/include/asm-ppc/arch-ppc4xx/xbasic_types.h b/include/asm-ppc/arch-ppc4xx/xbasic_types.h
> new file mode 100644
> index 0000000..25012e6
> --- /dev/null
> +++ b/include/asm-ppc/arch-ppc4xx/xbasic_types.h
> @@ -0,0 +1,301 @@
> +/******************************************************************************
> +*
> +*     Author: Xilinx, Inc.
> +*
> +*
> +*     This program is free software; you can redistribute it and/or modify it
> +*     under the terms of the GNU General Public License as published by the
> +*     Free Software Foundation; either version 2 of the License, or (at your
> +*     option) any later version.
> +*
> +*
> +*     XILINX IS PROVIDING THIS DESIGN, CODE, OR INFORMATION "AS IS" AS A
> +*     COURTESY TO YOU. BY PROVIDING THIS DESIGN, CODE, OR INFORMATION AS
> +*     ONE POSSIBLE IMPLEMENTATION OF THIS FEATURE, APPLICATION OR STANDARD,
> +*     XILINX IS MAKING NO REPRESENTATION THAT THIS IMPLEMENTATION IS FREE
> +*     FROM ANY CLAIMS OF INFRINGEMENT, AND YOU ARE RESPONSIBLE FOR OBTAINING
> +*     ANY THIRD PARTY RIGHTS YOU MAY REQUIRE FOR YOUR IMPLEMENTATION.
> +*     XILINX EXPRESSLY DISCLAIMS ANY WARRANTY WHATSOEVER WITH RESPECT TO
> +*     THE ADEQUACY OF THE IMPLEMENTATION, INCLUDING BUT NOT LIMITED TO ANY
> +*     WARRANTIES OR REPRESENTATIONS THAT THIS IMPLEMENTATION IS FREE FROM
> +*     CLAIMS OF INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND
> +*     FITNESS FOR A PARTICULAR PURPOSE.
> +*
> +*
> +*     Xilinx hardware products are not intended for use in life support
> +*     appliances, devices, or systems. Use in such applications is
> +*     expressly prohibited.
> +*
> +*
> +*     (c) Copyright 2002-2003 Xilinx Inc.
> +*     All rights reserved.
> +*
> +*
> +*     You should have received a copy of the GNU General Public License along
> +*     with this program; if not, write to the Free Software Foundation, Inc.,
> +*     675 Mass Ave, Cambridge, MA 02139, USA.
> +*
> +******************************************************************************/
> +/*****************************************************************************/
> +/**
> +*
> +* @file xbasic_types.h
> +*
> +* This file contains basic types for Xilinx software IP.  These types do not
> +* follow the standard naming convention with respect to using the component
> +* name in front of each name because they are considered to be primitives.
> +*
> +* @note
> +*
> +* This file contains items which are architecture dependent.
> +*
> +* <pre>
> +* MODIFICATION HISTORY:
> +*
> +* Ver	 Who	Date	Changes
> +* ----- ---- -------- -----------------------------------------------
> +* 1.00a rmm  12/14/01 First release
> +*	rmm  05/09/03 Added "xassert always" macros to rid ourselves of diab
> +*		      compiler warnings
> +* </pre>
> +*
> +******************************************************************************/
> +
> +#ifndef XBASIC_TYPES_H		/* prevent circular inclusions */
> +#define XBASIC_TYPES_H		/* by using protection macros */
> +
> +/***************************** Include Files *********************************/
> +
> +/************************** Constant Definitions *****************************/
> +
> +#ifndef TRUE
> +#define TRUE 1
> +#endif
> +#ifndef FALSE
> +#define FALSE 0
> +#endif
> +
> +#ifndef NULL
> +#define NULL 0
> +#endif
> +/** Null */
> +
> +#define XCOMPONENT_IS_READY	0x11111111	/* component has been initialized */
> +#define XCOMPONENT_IS_STARTED	0x22222222	/* component has been started */
> +
> +/* the following constants and declarations are for unit test purposes and are
> + * designed to be used in test applications.
> + */
> +#define XTEST_PASSED	0
> +#define XTEST_FAILED	1
> +
> +#define XASSERT_NONE	 0
> +#define XASSERT_OCCURRED 1
> +
> +extern unsigned int XAssertStatus;
> +extern void XAssert(char *, int);
> +
> +/**************************** Type Definitions *******************************/
> +
> +/** @name Primitive types
> + * These primitive types are created for transportability.
> + * They are dependent upon the target architecture.
> + * @{
> + */
> +#include <linux/types.h>
> +
> +typedef struct {
> +	u32 Upper;
> +	u32 Lower;
> +} Xuint64;
> +
> +/* Xilinx's unsigned integer types */
> +typedef u32 Xuint32;
> +typedef u16 Xuint16;
> +typedef u8 Xuint8;
> +
> +/* and signed integer types */
> +typedef s32 Xint32;
> +typedef s16 Xint16;
> +typedef s8 Xint8;
> +
> +#ifndef NULL
> +#define NULL 0
> +#endif
> +
> +typedef unsigned long Xboolean;
> +#define XNULL	NULL
> +
> +#define XTRUE	1
> +#define XFALSE	0
> +
> +/*@}*/
> +
> +/**
> + * This data type defines an interrupt handler for a device.
> + * The argument points to the instance of the component
> + */
> +typedef void (*XInterruptHandler) (void *InstancePtr);
> +
> +/**
> + * This data type defines a callback to be invoked when an
> + * assert occurs. The callback is invoked only when asserts are enabled
> + */
> +typedef void (*XAssertCallback) (char *FilenamePtr, int LineNumber);
> +
> +/***************** Macros (Inline Functions) Definitions *********************/
> +
> +/*****************************************************************************/
> +/**
> +* Return the most significant half of the 64 bit data type.
> +*
> +* @param x is the 64 bit word.
> +*
> +* @return
> +*
> +* The upper 32 bits of the 64 bit word.
> +*
> +* @note
> +*
> +* None.
> +*
> +******************************************************************************/
> +#define XUINT64_MSW(x) ((x).Upper)
> +
> +/*****************************************************************************/
> +/**
> +* Return the least significant half of the 64 bit data type.
> +*
> +* @param x is the 64 bit word.
> +*
> +* @return
> +*
> +* The lower 32 bits of the 64 bit word.
> +*
> +* @note
> +*
> +* None.
> +*
> +******************************************************************************/
> +#define XUINT64_LSW(x) ((x).Lower)
> +
> +#ifndef NDEBUG
> +
> +/*****************************************************************************/
> +/**
> +* This assert macro is to be used for functions that do not return anything
> +* (void). This in conjunction with the XWaitInAssert boolean can be used to
> +* accomodate tests so that asserts which fail allow execution to continue.
> +*
> +* @param expression is the expression to evaluate. If it evaluates to false,
> +*	 the assert occurs.
> +*
> +* @return
> +*
> +* Returns void unless the XWaitInAssert variable is true, in which case
> +* no return is made and an infinite loop is entered.
> +*
> +* @note
> +*
> +* None.
> +*
> +******************************************************************************/
> +#define XASSERT_VOID(expression)			\
> +{							\
> +	if (expression) {				\
> +		XAssertStatus = XASSERT_NONE;		\
> +	} else {					\
> +		XAssert(__FILE__, __LINE__);		\
> +		XAssertStatus = XASSERT_OCCURRED;	\
> +		return;					\
> +	}						\
> +}
> +
> +/*****************************************************************************/
> +/**
> +* This assert macro is to be used for functions that do return a value. This in
> +* conjunction with the XWaitInAssert boolean can be used to accomodate tests so
> +* that asserts which fail allow execution to continue.
> +*
> +* @param expression is the expression to evaluate. If it evaluates to false,
> +*	 the assert occurs.
> +*
> +* @return
> +*
> +* Returns 0 unless the XWaitInAssert variable is true, in which case
> +* no return is made and an infinite loop is entered.
> +*
> +* @note
> +*
> +* None.
> +*
> +******************************************************************************/
> +#define XASSERT_NONVOID(expression)			\
> +{							\
> +	if (expression) {				\
> +		XAssertStatus = XASSERT_NONE;		\
> +	} else {					\
> +		XAssert(__FILE__, __LINE__);		\
> +		XAssertStatus = XASSERT_OCCURRED;	\
> +		return 0;				\
> +	}						\
> +}
> +
> +/*****************************************************************************/
> +/**
> +* Always assert. This assert macro is to be used for functions that do not
> +* return anything (void). Use for instances where an assert should always
> +* occur.
> +*
> +* @return
> +*
> +* Returns void unless the XWaitInAssert variable is true, in which case
> +* no return is made and an infinite loop is entered.
> +*
> +* @note
> +*
> +* None.
> +*
> +******************************************************************************/
> +#define XASSERT_VOID_ALWAYS()				\
> +{							\
> +	XAssert(__FILE__, __LINE__);			\
> +	XAssertStatus = XASSERT_OCCURRED;		\
> +	return;						\
> +}
> +
> +/*****************************************************************************/
> +/**
> +* Always assert. This assert macro is to be used for functions that do return
> +* a value. Use for instances where an assert should always occur.
> +*
> +* @return
> +*
> +* Returns void unless the XWaitInAssert variable is true, in which case
> +* no return is made and an infinite loop is entered.
> +*
> +* @note
> +*
> +* None.
> +*
> +******************************************************************************/
> +#define XASSERT_NONVOID_ALWAYS()			\
> +{							\
> +	XAssert(__FILE__, __LINE__);			\
> +	XAssertStatus = XASSERT_OCCURRED;		\
> +	return 0;					\
> +}
> +
> +#else
> +
> +#define XASSERT_VOID(expression)
> +#define XASSERT_VOID_ALWAYS()
> +#define XASSERT_NONVOID(expression)
> +#define XASSERT_NONVOID_ALWAYS()
> +#endif
> +
> +/************************** Function Prototypes ******************************/
> +
> +void XAssertSetCallback(XAssertCallback Routine);
> +
> +#endif	/* end of protection macro */
> diff --git a/include/asm-ppc/arch-ppc4xx/xio.h b/include/asm-ppc/arch-ppc4xx/xio.h
> new file mode 100644
> index 0000000..7eed327
> --- /dev/null
> +++ b/include/asm-ppc/arch-ppc4xx/xio.h
> @@ -0,0 +1,63 @@
> +/*
> + * xio.h
> + *
> + * Defines XIo functions for Xilinx OCP in terms of Linux primitives
> + *
> + * Author: MontaVista Software, Inc.
> + *         source at mvista.com
> + *
> + * 2002 (c) MontaVista, Software, Inc.  This file is licensed under the terms
> + * of the GNU General Public License version 2.  This program is licensed
> + * "as is" without any warranty of any kind, whether express or implied.
> + */
> +
> +#ifndef XIO_H
> +#define XIO_H
> +
> +#include "xbasic_types.h"
> +#include <asm/io.h>
> +
> +typedef u32 XIo_Address;
> +
> +extern inline u8
> +XIo_In8(XIo_Address InAddress)
> +{
> +	return (u8) in_8((volatile unsigned char *) InAddress);
> +}
> +extern inline u16
> +XIo_In16(XIo_Address InAddress)
> +{
> +	return (u16) in_be16((volatile unsigned short *) InAddress);
> +}
> +extern inline u32
> +XIo_In32(XIo_Address InAddress)
> +{
> +	return (u32) in_be32((volatile unsigned *) InAddress);
> +}
> +extern inline void
> +XIo_Out8(XIo_Address OutAddress, u8 Value)
> +{
> +	out_8((volatile unsigned char *) OutAddress, Value);
> +}
> +extern inline void
> +XIo_Out16(XIo_Address OutAddress, u16 Value)
> +{
> +	out_be16((volatile unsigned short *) OutAddress, Value);
> +}
> +extern inline void
> +XIo_Out32(XIo_Address OutAddress, u32 Value)
> +{
> +	out_be32((volatile unsigned *) OutAddress, Value);
> +}
> +
> +#define XIo_ToLittleEndian16(s,d) (*(u16*)(d) = cpu_to_le16((u16)(s)))
> +#define XIo_ToLittleEndian32(s,d) (*(u32*)(d) = cpu_to_le32((u32)(s)))
> +#define XIo_ToBigEndian16(s,d) (*(u16*)(d) = cpu_to_be16((u16)(s)))
> +#define XIo_ToBigEndian32(s,d) (*(u32*)(d) = cpu_to_be32((u32)(s)))
> +
> +#define XIo_FromLittleEndian16(s,d) (*(u16*)(d) = le16_to_cpu((u16)(s)))
> +#define XIo_FromLittleEndian32(s,d) (*(u32*)(d) = le32_to_cpu((u32)(s)))
> +#define XIo_FromBigEndian16(s,d) (*(u16*)(d) = be16_to_cpu((u16)(s)))
> +#define XIo_FromBigEndian32(s,d) (*(u32*)(d) = be32_to_cpu((u32)(s)))
> +
> +#endif				/* XIO_H */
> diff --git a/include/asm-ppc/arch-ppc4xx/xuartlite_l.h b/include/asm-ppc/arch-ppc4xx/xuartlite_l.h
> new file mode 100644
> index 0000000..b381a0d
> --- /dev/null
> +++ b/include/asm-ppc/arch-ppc4xx/xuartlite_l.h
> @@ -0,0 +1,256 @@
> +/*****************************************************************************
> +*
> +*	XILINX IS PROVIDING THIS DESIGN, CODE, OR INFORMATION "AS IS"
> +*	AS A COURTESY TO YOU, SOLELY FOR USE IN DEVELOPING PROGRAMS AND
> +*	SOLUTIONS FOR XILINX DEVICES.  BY PROVIDING THIS DESIGN, CODE,
> +*	OR INFORMATION AS ONE POSSIBLE IMPLEMENTATION OF THIS FEATURE,
> +*	APPLICATION OR STANDARD, XILINX IS MAKING NO REPRESENTATION
> +*	THAT THIS IMPLEMENTATION IS FREE FROM ANY CLAIMS OF INFRINGEMENT,
> +*	AND YOU ARE RESPONSIBLE FOR OBTAINING ANY RIGHTS YOU MAY REQUIRE
> +*	FOR YOUR IMPLEMENTATION.  XILINX EXPRESSLY DISCLAIMS ANY
> +*	WARRANTY WHATSOEVER WITH RESPECT TO THE ADEQUACY OF THE
> +*	IMPLEMENTATION, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OR
> +*	REPRESENTATIONS THAT THIS IMPLEMENTATION IS FREE FROM CLAIMS OF
> +*	INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
> +*	FOR A PARTICULAR PURPOSE.
> +*
> +*	(c) Copyright 2002 Xilinx Inc.
> +*	All rights reserved.
> +*
> +*****************************************************************************/
> +/****************************************************************************/
> +/**
> +*
> +* @file xuartlite_l.h
> +*
> +* This header file contains identifiers and low-level driver functions (or
> +* macros) that can be used to access the device.  High-level driver functions
> +* are defined in xuartlite.h.
> +*
> +* <pre>
> +* MODIFICATION HISTORY:
> +*
> +* Ver	Who  Date     Changes
> +* ----- ---- -------- -----------------------------------------------
> +* 1.00b rpm  04/25/02 First release
> +* </pre>
> +*
> +*****************************************************************************/
> +
> +#ifndef XUARTLITE_L_H /* prevent circular inclusions */
> +#define XUARTLITE_L_H /* by using protection macros */
> +
> +/***************************** Include Files ********************************/
> +
> +#include "xbasic_types.h"
> +#include "xio.h"
> +
> +/************************** Constant Definitions ****************************/
> +
> +/* UART Lite register offsets */
> +
> +#define XUL_RX_FIFO_OFFSET		0   /* receive FIFO, read only */
> +#define XUL_TX_FIFO_OFFSET		4   /* transmit FIFO, write only */
> +#define XUL_STATUS_REG_OFFSET		8   /* status register, read only */
> +#define XUL_CONTROL_REG_OFFSET		12  /* control register, write only */
> +
> +/* control register bit positions */
> +
> +#define XUL_CR_ENABLE_INTR		0x10	/* enable interrupt */
> +#define XUL_CR_FIFO_RX_RESET		0x02	/* reset receive FIFO */
> +#define XUL_CR_FIFO_TX_RESET		0x01	/* reset transmit FIFO */
> +
> +/* status register bit positions */
> +
> +#define XUL_SR_PARITY_ERROR		0x80
> +#define XUL_SR_FRAMING_ERROR		0x40
> +#define XUL_SR_OVERRUN_ERROR		0x20
> +#define XUL_SR_INTR_ENABLED		0x10	/* interrupt enabled */
> +#define XUL_SR_TX_FIFO_FULL		0x08	/* transmit FIFO full */
> +#define XUL_SR_TX_FIFO_EMPTY		0x04	/* transmit FIFO empty */
> +#define XUL_SR_RX_FIFO_FULL		0x02	/* receive FIFO full */
> +#define XUL_SR_RX_FIFO_VALID_DATA	0x01	/* data in receive FIFO */
> +
> +/* the following constant specifies the size of the FIFOs, the size of the
> + * FIFOs includes the transmitter and receiver such that it is the total number
> + * of bytes that the UART can buffer
> + */
> +#define XUL_FIFO_SIZE		    16
> +
> +/* Stop bits are fixed at 1. Baud, parity, and data bits are fixed on a
> + * per instance basis
> + */
> +#define XUL_STOP_BITS		    1
> +
> +/* Parity definitions
> + */
> +#define XUL_PARITY_NONE		    0
> +#define XUL_PARITY_ODD		    1
> +#define XUL_PARITY_EVEN		    2
> +
> +/**************************** Type Definitions ******************************/
> +
> +/***************** Macros (Inline Functions) Definitions ********************/
> +
> +/*****************************************************************************
> +*
> +* Low-level driver macros and functions. The list below provides signatures
> +* to help the user use the macros.
> +*
> +* void XUartLite_mSetControlReg(u32 BaseAddress, u32 Mask)
> +* u32 XUartLite_mGetControlReg(u32 BaseAddress)
> +* u32 XUartLite_mGetStatusReg(u32 BaseAddress)
> +*
> +* Xboolean XUartLite_mIsReceiveEmpty(u32 BaseAddress)
> +* Xboolean XUartLite_mIsTransmitFull(u32 BaseAddress)
> +* Xboolean XUartLite_mIsIntrEnabled(u32 BaseAddress)
> +*
> +* void XUartLite_mEnableIntr(u32 BaseAddress)
> +* void XUartLite_mDisableIntr(u32 BaseAddress)
> +*
> +* void XUartLite_SendByte(u32 BaseAddress, u8 Data);
> +* u8 XUartLite_RecvByte(u32 BaseAddress);
> +*
> +*****************************************************************************/
> +
> +/****************************************************************************/
> +/**
> +*
> +* Set the contents of the control register. Use the XUL_CR_* constants defined
> +* above to create the bit-mask to be written to the register.
> +*
> +* @param    BaseAddress is the base address of the device
> +* @param    Mask is the 32-bit value to write to the control register
> +*
> +* @return   None.
> +*
> +* @note	    None.
> +*
> +*****************************************************************************/
> +#define XUartLite_mSetControlReg(BaseAddress, Mask) \
> +		    XIo_Out32((BaseAddress) + XUL_CONTROL_REG_OFFSET, (Mask))
> +
> +
> +/****************************************************************************/
> +/**
> +*
> +* Get the contents of the control register. Use the XUL_CR_* constants defined
> +* above to interpret the bit-mask returned.
> +*
> +* @param    BaseAddress is the	base address of the device
> +*
> +* @return   A 32-bit value representing the contents of the control register.
> +*
> +* @note	    None.
> +*
> +*****************************************************************************/
> +#define XUartLite_mGetControlReg(BaseAddress) \
> +		    XIo_In32((BaseAddress) + XUL_CONTROL_REG_OFFSET)
> +
> +
> +/****************************************************************************/
> +/**
> +*
> +* Get the contents of the status register. Use the XUL_SR_* constants defined
> +* above to interpret the bit-mask returned.
> +*
> +* @param    BaseAddress is the	base address of the device
> +*
> +* @return   A 32-bit value representing the contents of the status register.
> +*
> +* @note	    None.
> +*
> +*****************************************************************************/
> +#define XUartLite_mGetStatusReg(BaseAddress) \
> +		    XIo_In32((BaseAddress) + XUL_STATUS_REG_OFFSET)
> +
> +
> +/****************************************************************************/
> +/**
> +*
> +* Check to see if the receiver has data.
> +*
> +* @param    BaseAddress is the	base address of the device
> +*
> +* @return   XTRUE if the receiver is empty, XFALSE if there is data present.
> +*
> +* @note	    None.
> +*
> +*****************************************************************************/
> +#define XUartLite_mIsReceiveEmpty(BaseAddress) \
> +	  (!(XUartLite_mGetStatusReg((BaseAddress)) & XUL_SR_RX_FIFO_VALID_DATA))
> +
> +
> +/****************************************************************************/
> +/**
> +*
> +* Check to see if the transmitter is full.
> +*
> +* @param    BaseAddress is the	base address of the device
> +*
> +* @return   XTRUE if the transmitter is full, XFALSE otherwise.
> +*
> +* @note	    None.
> +*
> +*****************************************************************************/
> +#define XUartLite_mIsTransmitFull(BaseAddress) \
> +		(XUartLite_mGetStatusReg((BaseAddress)) & XUL_SR_TX_FIFO_FULL)
> +
> +
> +/****************************************************************************/
> +/**
> +*
> +* Check to see if the interrupt is enabled.
> +*
> +* @param    BaseAddress is the	base address of the device
> +*
> +* @return   XTRUE if the interrupt is enabled, XFALSE otherwise.
> +*
> +* @note	    None.
> +*
> +*****************************************************************************/
> +#define XUartLite_mIsIntrEnabled(BaseAddress) \
> +		(XUartLite_mGetStatusReg((BaseAddress)) & XUL_SR_INTR_ENABLED)
> +
> +
> +/****************************************************************************/
> +/**
> +*
> +* Enable the device interrupt. Preserve the contents of the control register.
> +*
> +* @param    BaseAddress is the	base address of the device
> +*
> +* @return   None.
> +*
> +* @note	    None.
> +*
> +*****************************************************************************/
> +#define XUartLite_mEnableIntr(BaseAddress) \
> +	       XUartLite_mSetControlReg((BaseAddress), \
> +		   XUartLite_mGetControlReg((BaseAddress)) | XUL_CR_ENABLE_INTR)
> +
> +
> +/****************************************************************************/
> +/**
> +*
> +* Disable the device interrupt. Preserve the contents of the control register.
> +*
> +* @param    BaseAddress is the	base address of the device
> +*
> +* @return   None.
> +*
> +* @note	    None.
> +*
> +*****************************************************************************/
> +#define XUartLite_mDisableIntr(BaseAddress) \
> +	      XUartLite_mSetControlReg((BaseAddress), \
> +		  XUartLite_mGetControlReg((BaseAddress)) & ~XUL_CR_ENABLE_INTR)
> +
> +
> +/************************** Function Prototypes *****************************/
> +
> +void XUartLite_SendByte(u32 BaseAddress, u8 Data);
> +u8 XUartLite_RecvByte(u32 BaseAddress);
> +
> +
> +#endif		  /* end of protection macro */
> diff --git a/include/asm-ppc/serial_xuartlite.h b/include/asm-ppc/serial_xuartlite.h
> new file mode 100644
> index 0000000..6cd1e83
> --- /dev/null
> +++ b/include/asm-ppc/serial_xuartlite.h
> @@ -0,0 +1,25 @@
> +/*
> + * (C) Copyright 2004 Atmark Techno, Inc.
> + *
> + * Yasushi SHOJI <yashi at atmark-techno.com>
> + *
> + * See file CREDITS for list of people who contributed to this
> + * project.
> + *
> + * This program is free software; you can redistribute it and/or
> + * modify it under the terms of the GNU General Public License as
> + * published by the Free Software Foundation; either version 2 of
> + * the License, or (at your option) any later version.
> + *
> + * This program is distributed in the hope that it will be useful,
> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> + * GNU General Public License for more details.
> + *
> + * You should have received a copy of the GNU General Public License
> + * along with this program; if not, write to the Free Software
> + * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
> + * MA 02111-1307 USA
> + */
> +
> +#include <asm/arch/xuartlite_l.h>




More information about the U-Boot mailing list