From: Ricardo Ribalda Delgado <ricardo.ribalda@uam.es>
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:52:39 +0200 [thread overview]
Message-ID: <aa76a2be0807101152w4993ef3ckddec30baf25f72a1@mail.gmail.com> (raw)
In-Reply-To: <20080710184153.E64B4248FE@gemini.denx.de>
Hello again
This files already exist on the u-boot tree. They are located in
include/asm-microblaze and include/asm-microblaze/arch-microblaze .
They give support to a simple uart which can also be used on the
powerpc, I have just copied them from one directory to another.
This files have been provided by Xilinx, and they are the same in
all the OS and boot loaders, I don't think they break any GPL
license,
Best regards and sorry for the coding style.... I am correcting it.
On Thu, Jul 10, 2008 at 8:41 PM, Wolfgang Denk <wd@denx.de> wrote:
> 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
>
--
Ricardo Ribalda
http://www.eps.uam.es/~rribalda/
next prev parent reply other threads:[~2008-07-10 18:52 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
2008-07-10 18:52 ` Ricardo Ribalda Delgado [this message]
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=aa76a2be0807101152w4993ef3ckddec30baf25f72a1@mail.gmail.com \
--to=ricardo.ribalda@uam.es \
--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