----- Origineel bericht ----- Van: Tobias Klauser <tklauser@xxxxxxxxxx> Datum: maandag, maart 15, 2010 10:21 Onderwerp: Re: [Nios2-dev] [PATCHv3 1/2] serial: Add driver for the Altera JTAG UART Aan: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> Cc: nios2-dev@xxxxxxxxxxxxxxxxxxxx, gregkh@xxxxxxx, linux-kernel@xxxxxxxxxxxxxxx, linux-serial@xxxxxxxxxxxxxxx > On 2010-03-12 at 21:48:35 +0100, Andrew Morton > <akpm@xxxxxxxxxxxxxxxxxxxx> wrote: > > On Fri, 5 Mar 2010 17:52:22 +0100 > > Tobias Klauser <tklauser@xxxxxxxxxx> wrote: > > > > > Add an UART driver for the JTAG UART component available as a SOPC > > > (System on Programmable Chip) component for Altera FPGAs. > > > > > > ... > > > > > > --- a/drivers/serial/Kconfig > > > +++ b/drivers/serial/Kconfig > > > @@ -1490,4 +1490,25 @@ config SERIAL_GRLIB_GAISLER_APBUART_CONSOLE > > > help > > > Support for running a console on the GRLIB APBUART > > > > > > +config SERIAL_ALTERA_JTAGUART > > > + bool "Altera JTAG UART support" > > > + select SERIAL_CORE > > > + help > > > + This driver supports the Altera JTAG UART port. > > > + > > > +config SERIAL_ALTERA_JTAGUART_CONSOLE > > > + bool "Altera JTAG UART console support" > > > + depends on SERIAL_ALTERA_JTAGUART > > > + select SERIAL_CORE_CONSOLE > > > + help > > > + Enable a Altera JTAG UART port to be the system console. > > > + > > > +config SERIAL_ALTERA_JTAGUART_CONSOLE_BYPASS > > > + bool "Bypass output when no connection" > > > + depends on SERIAL_ALTERA_JTAGUART_CONSOLE > > > + select SERIAL_CORE_CONSOLE > > > + help > > > + Bypass console output and keep going even if there is no > > > + JTAG terminal connection with the host. > > > > So this driver will be available on all CPU architectures. > > > > I'm guessing that the hardware _isn't_ available on all CPU > > architectures? Maybe that's wrong. > > In principle it is available on all CPU. I can think of a hardware > component with an Altera FPGA containing this UART. But at the moment > no > such implementation is known to me and the UART is only usable on the > nios2 CPU architecture (which is not in mainline yet - we're planning > to change that, submitting the arch-sepcific drivers is the first step > towards this). > We are actually working on a project without a Nios2 where a PCIe core connected to a powerPC is the avalon-master. So I'm in favor of not getting everything too nios2 specific. > > If this hardware is only available on certain CPUs then we face > > tradeoffs. By making it universally available, the code gets better > > compile tesst coverage and that can detect problems (usually minor > > ones). otoh, it can increase your maintenance load a bit, and adds > a > > risk that people will ship unusable kernel modules and will see > > increased build times. I have no particular opinion either way. > > I'd like to have this universally available if no one objects. It'd be > nice to get better test coverage and I don't really mind the additional > maintanance load. AFAICS other UART driver are only available on one > single architecture too, so I hoped it would be fine to go the same way > with the altera_{jtag,}uart drivers. > > > > endmenu > > > diff --git a/drivers/serial/Makefile b/drivers/serial/Makefile > > > index 5548fe7..6228b6e 100644 > > > --- a/drivers/serial/Makefile > > > +++ b/drivers/serial/Makefile > > > @@ -82,3 +82,4 @@ obj-$(CONFIG_KGDB_SERIAL_CONSOLE) += kgdboc.o > > > obj-$(CONFIG_SERIAL_QE) += ucc_uart.o > > > obj-$(CONFIG_SERIAL_TIMBERDALE) += timbuart.o > > > obj-$(CONFIG_SERIAL_GRLIB_GAISLER_APBUART) += apbuart.o > > > +obj-$(CONFIG_SERIAL_ALTERA_JTAGUART) += altera_jtaguart.o > > > diff --git a/drivers/serial/altera_jtaguart.c b/drivers/serial/altera_jtaguart.c > > > new file mode 100644 > > > index 0000000..f9b49b5 > > > --- /dev/null > > > +++ b/drivers/serial/altera_jtaguart.c > > > @@ -0,0 +1,504 @@ > > > +/* > > > + * altera_jtaguart.c -- Altera JTAG UART driver > > > + * > > > + * Based on mcf.c -- Freescale ColdFire UART driver > > > + * > > > + * (C) Copyright 2003-2007, Greg Ungerer <gerg@xxxxxxxxxxxx> > > > + * (C) Copyright 2008, Thomas Chou <thomas@xxxxxxxxxxxxx> > > > + * (C) Copyright 2010, Tobias Klauser <tklauser@xxxxxxxxxx> > > > + * > > > + * 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. > > > + */ > > > + > > > +#include <linux/kernel.h> > > > +#include <linux/init.h> > > > +#include <linux/interrupt.h> > > > +#include <linux/module.h> > > > +#include <linux/console.h> > > > +#include <linux/tty.h> > > > +#include <linux/tty_flip.h> > > > +#include <linux/serial.h> > > > +#include <linux/serial_core.h> > > > +#include <linux/platform_device.h> > > > +#include <linux/io.h> > > > +#include <linux/altera_jtaguart.h> > > > > Does it make sense to put altera_jtaguart.h into include/linux? Could > > we put it in drivers/serial/? > > It is stored in include/linux and not in drivers/serial because we need > to include it from arch/nios2 for the platform device setup. Including > <linux/altera_jtaguart.h> looks nicer than including > "../drivers/serial/altera_jtaguart.h". The same holds true for the > altera_uart driver. > > Thanks a lot, > Tobias > _______________________________________________ > Nios2-dev mailing list > Nios2-dev@xxxxxxxxxxxxxxxxxxxx > http://sopc.et.ntust.edu.tw/cgi-bin/mailman/listinfo/nios2-dev -- To unsubscribe from this list: send the line "unsubscribe linux-serial" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html