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 <[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 > -- Ricardo Ribalda http://www.eps.uam.es/~rribalda/ ------------------------------------------------------------------------- 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