public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
From: Michal Simek <monstr@seznam.cz>
To: u-boot@lists.denx.de
Subject: [U-Boot-Users] [PATCH] Adds support for Xilinx Uart Lite on ppc4xx
Date: Fri, 11 Jul 2008 08:57:19 +0200	[thread overview]
Message-ID: <4877044F.8020308@seznam.cz> (raw)
In-Reply-To: <aa76a2be0807101152w4993ef3ckddec30baf25f72a1@mail.gmail.com>


Hi Wolfgang and Ricardo,

> 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.

These files are ancient and they are added 4 years ago. I'll look at it if they
are use anywhere.

BTW in next merge open window I want to remove big bunch of code relate with
xilinx generic driver.

Michal


>     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
>>
> 
> 
> 

  parent reply	other threads:[~2008-07-11  6:57 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
2008-07-10 19:02                   ` Wolfgang Denk
2008-07-11  6:57                   ` Michal Simek [this message]
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=4877044F.8020308@seznam.cz \
    --to=monstr@seznam.cz \
    --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