[U-Boot-Users] [PATCH 1/2] microblaze: Clean uartlite driver

Ricardo ricardo.ribalda at gmail.com
Fri Jul 11 11:07:28 CEST 2008


Hi Michal

I have been unable to use your patch:


patching file include/asm-microblaze/io.h
ricardo at aragorn:~/curro/ml507/software/u-boot-ppc4xx$ patch -p1
</tmp/uart2.diff
patching file drivers/serial/serial_xuartlite.c
Hunk #1 FAILED at 1.
Hunk #2 FAILED at 15.
Hunk #3 FAILED at 25.
Hunk #4 FAILED at 54.
Hunk #5 FAILED at 69.
5 out of 5 hunks FAILED -- saving rejects to file
drivers/serial/serial_xuartlite.c.rej


What brach of u-boot shall I use.


    regards

On Fri, Jul 11, 2008 at 10:10 AM,  <monstr at seznam.cz> wrote:
> From: Michal Simek <monstr at monstr.eu>
>
> Redesign uartlite driver to in_be32 and out_be32 macros
> Fix missing header in io.h
>
> Signed-off-by: Michal Simek <monstr at monstr.eu>
> ---
>  drivers/serial/serial_xuartlite.c |   37 +++++++++++++++++++++----------------
>  include/asm-microblaze/io.h       |    2 ++
>  2 files changed, 23 insertions(+), 16 deletions(-)
>
> diff --git a/drivers/serial/serial_xuartlite.c b/drivers/serial/serial_xuartlite.c
> index d678ab6..5c41a1c 100644
> --- a/drivers/serial/serial_xuartlite.c
> +++ b/drivers/serial/serial_xuartlite.c
> @@ -1,6 +1,8 @@
>  /*
> - * (C) Copyright 2004 Atmark Techno, Inc.
> + * (C) Copyright 2008 Michal Simek <monstr at monstr.eu>
> + * Clean driver and add xilinx constant from header file
>  *
> + * (C) Copyright 2004 Atmark Techno, Inc.
>  * Yasushi SHOJI <yashi at atmark-techno.com>
>  *
>  * See file CREDITS for list of people who contributed to this
> @@ -13,7 +15,7 @@
>  *
>  * This program is distributed in the hope that it will be useful,
>  * but WITHOUT ANY WARRANTY; without even the implied warranty of
> - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.         See the
> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
>  * GNU General Public License for more details.
>  *
>  * You should have received a copy of the GNU General Public License
> @@ -23,19 +25,21 @@
>  */
>
>  #include <config.h>
> +#include <asm/io.h>
>
>  #ifdef CONFIG_XILINX_UARTLITE
>
> -#include <asm/serial_xuartlite.h>
> +#define RX_FIFO_OFFSET         0 /* receive FIFO, read only */
> +#define TX_FIFO_OFFSET         4 /* transmit FIFO, write only */
> +#define STATUS_REG_OFFSET      8 /* status register, read only */
>
> -/* FIXME: we should convert these to in32 and out32 */
> -#define IO_WORD(offset)             (*(volatile unsigned long *)(offset))
> -#define IO_SERIAL(offset)    IO_WORD(CONFIG_SERIAL_BASE + (offset))
> +#define SR_TX_FIFO_FULL                0x08 /* transmit FIFO full */
> +#define SR_RX_FIFO_VALID_DATA  0x01 /* data in receive FIFO */
> +#define SR_RX_FIFO_FULL                0x02 /* receive FIFO full */
>
> -#define IO_SERIAL_RX_FIFO   IO_SERIAL(XUL_RX_FIFO_OFFSET)
> -#define IO_SERIAL_TX_FIFO   IO_SERIAL(XUL_TX_FIFO_OFFSET)
> -#define IO_SERIAL_STATUS    IO_SERIAL(XUL_STATUS_REG_OFFSET)
> -#define IO_SERIAL_CONTROL   IO_SERIAL(XUL_CONTROL_REG_OFFSET)
> +#define UARTLITE_STATUS                (CONFIG_SERIAL_BASE + STATUS_REG_OFFSET)
> +#define UARTLITE_TX_FIFO       (CONFIG_SERIAL_BASE + TX_FIFO_OFFSET)
> +#define UARTLITE_RX_FIFO       (CONFIG_SERIAL_BASE + RX_FIFO_OFFSET)
>
>  int serial_init(void)
>  {
> @@ -50,9 +54,10 @@ void serial_setbrg(void)
>
>  void serial_putc(const char c)
>  {
> -       if (c == '\n') serial_putc('\r');
> -       while (IO_SERIAL_STATUS & XUL_SR_TX_FIFO_FULL);
> -       IO_SERIAL_TX_FIFO = (unsigned char) (c & 0xff);
> +       if (c == '\n')
> +               serial_putc('\r');
> +       while (in_be32(UARTLITE_STATUS) & SR_TX_FIFO_FULL);
> +       out_be32(UARTLITE_TX_FIFO, (unsigned char) (c & 0xff));
>  }
>
>  void serial_puts(const char * s)
> @@ -64,13 +69,13 @@ void serial_puts(const char * s)
>
>  int serial_getc(void)
>  {
> -       while (!(IO_SERIAL_STATUS & XUL_SR_RX_FIFO_VALID_DATA));
> -       return IO_SERIAL_RX_FIFO & 0xff;
> +       while (!(in_be32(UARTLITE_STATUS) & SR_RX_FIFO_VALID_DATA));
> +       return in_be32(UARTLITE_RX_FIFO) & 0xff;
>  }
>
>  int serial_tstc(void)
>  {
> -       return (IO_SERIAL_STATUS & XUL_SR_RX_FIFO_VALID_DATA);
> +       return (in_be32(UARTLITE_STATUS) & SR_RX_FIFO_VALID_DATA);
>  }
>
>  #endif /* CONFIG_MICROBLZE */
> diff --git a/include/asm-microblaze/io.h b/include/asm-microblaze/io.h
> index aa37a60..8804724 100644
> --- a/include/asm-microblaze/io.h
> +++ b/include/asm-microblaze/io.h
> @@ -16,6 +16,8 @@
>  #ifndef __MICROBLAZE_IO_H__
>  #define __MICROBLAZE_IO_H__
>
> +#include <asm/types.h>
> +
>  #define IO_SPACE_LIMIT 0xFFFFFFFF
>
>  #define readb(addr) \
> --
> 1.5.4.GIT
>
>
> -------------------------------------------------------------------------
> 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 at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/u-boot-users
>



-- 
Ricardo Ribalda
http://www.eps.uam.es/~rribalda/




More information about the U-Boot mailing list