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 <[EMAIL PROTECTED]> wrote: >> In message <[EMAIL PROTECTED]> 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 >>> + >>> +/[EMAIL PROTECTED]/ >>> + >>> +/** >>> + * 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: [EMAIL PROTECTED] >> 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 >> > > > ------------------------------------------------------------------------- Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW! Studies have shown that voting for your favorite open source project, along with a healthy diet, reduces your potential for chronic lameness and boredom. Vote Now at http://www.sourceforge.net/community/cca08 _______________________________________________ U-Boot-Users mailing list U-Boot-Users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/u-boot-users