From: Wolfgang Denk <wd@denx.de>
To: u-boot@lists.denx.de
Subject: [U-Boot-Users] [PATCH] Adds support for Xilinx Uart Lite on ppc4xx
Date: Thu, 10 Jul 2008 20:41:53 +0200 [thread overview]
Message-ID: <20080710184153.E64B4248FE@gemini.denx.de> (raw)
In-Reply-To: Your message of "Thu, 10 Jul 2008 19:53:27 +0200." <1215712408-23567-8-git-send-email-ricardo.ribalda@uam.es>
In message <1215712408-23567-8-git-send-email-ricardo.ribalda@uam.es> you wrote:
>
> +* 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.
This is IMHO in contradiction to the GPL clause above.
> +* Xilinx hardware products are not intended for use in life support
> +* appliances, devices, or systems. Use in such applications is
> +* expressly prohibited.
This restriction is IMHO in contradiction to the GPL clause above.
...
> +#define XCOMPONENT_IS_READY 0x11111111 /* component has been initialized */
> +#define XCOMPONENT_IS_STARTED 0x22222222 /* component has been started */
Lines too long.
> +/* 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 */
And all this stuff is really, really needed in this boot loader ?
Really?
> --- /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.
GPL header missing.
...
> +#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 */
Lines too long. See also rest of your patches!
Best regards,
Wolfgang Denk
--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
That Microsoft, the Trabant of the operating system world, may be
glancing over the Berlin Wall at the Audis and BMWs and Mercedes. In
their own universe Trabants and Ladas were mainstream too...
-- Evan Leibovitch
next prev parent reply other threads:[~2008-07-10 18:41 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-07-10 17:53 [U-Boot-Users] Support for the ML507 Xilinx Board Ricardo Ribalda Delgado
2008-07-10 17:53 ` [U-Boot-Users] [PATCH] -Support fot the ADT7640 Monitor chip Ricardo Ribalda Delgado
2008-07-10 17:53 ` [U-Boot-Users] [PATCH] I2C Dummy Driver Ricardo Ribalda Delgado
[not found] ` <1215712408-23567-4-git-send-email-ricardo.ribalda@uam.es>
[not found] ` <1215712408-23567-5-git-send-email-ricardo.ribalda@uam.es>
[not found] ` <1215712408-23567-6-git-send-email-ricardo.ribalda@uam.es>
2008-07-10 17:53 ` [U-Boot-Users] [PATCH] Adds support for the PPC440x5 Processor on Virtex5 FX Ricardo Ribalda Delgado
2008-07-10 17:53 ` [U-Boot-Users] [PATCH] Adds support for Xilinx Uart Lite on ppc4xx Ricardo Ribalda Delgado
2008-07-10 18:41 ` Wolfgang Denk [this message]
2008-07-10 18:52 ` Ricardo Ribalda Delgado
2008-07-10 19:02 ` Wolfgang Denk
2008-07-11 6:57 ` Michal Simek
2008-07-11 6:30 ` Michal Simek
2008-07-11 7:12 ` Wolfgang Denk
2008-07-10 18:36 ` [U-Boot-Users] [PATCH] Adds support for the PPC440x5 Processor on Virtex5 FX Wolfgang Denk
2008-07-10 18:45 ` Ricardo Ribalda Delgado
2008-07-10 18:11 ` [U-Boot-Users] [PATCH] I2C Dummy Driver Jerry Van Baren
2008-07-10 20:03 ` Wolfgang Denk
2008-07-10 21:02 ` Ricardo Ribalda Delgado
2008-07-11 6:59 ` Michal Simek
2008-07-11 9:03 ` Andre Schwarz
2008-07-11 6:30 ` Michal Simek
2008-07-10 18:10 ` [U-Boot-Users] [PATCH] -Support fot the ADT7640 Monitor chip Jerry Van Baren
2008-07-10 18:16 ` Ricardo Ribalda Delgado
2008-07-10 18:32 ` Ricardo Ribalda Delgado
2008-07-10 18:57 ` Wolfgang Denk
2008-07-10 19:58 ` Wolfgang Denk
2008-07-10 21:04 ` Ricardo Ribalda Delgado
2008-07-11 6:49 ` Michal Simek
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20080710184153.E64B4248FE@gemini.denx.de \
--to=wd@denx.de \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox