Re: [PATCH] 8250_pci: Prevent Exar/RTD Boards from binding.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, 2015-11-13 at 14:26 -0500, Peter Hurley wrote:
> On 11/13/2015 02:02 PM, Rob Groner wrote:
> > On Fri, 2015-11-13 at 13:43 -0500, Peter Hurley wrote:
> >> On 11/13/2015 11:39 AM, Rob Groner wrote:
> >>> On Fri, 2015-11-13 at 17:06 +0100, Soeren Grunewald wrote:
> >>>> Hi Rob,
> >>>>
> >>>> Unless you need the 8250_pci driver in early boot as console e.g for 
> >>>> onboard devices, it might be a solution to build 8250_pci as module.
> >>>>
> >>>> Then you can blacklist it e.g. via kernel argument modprobe.blacklist= 
> >>>> 8250_pci or 8250_pci.disable=1. Later in the boot process you load the 
> >>>> Exar driver and afterwards the 8250_pci manually.
> >>>>
> >>>> But I guess you already thought about this too. So your solution seems 
> >>>> pretty obvious to solve your issues.
> >>>
> >>> I did try making the 8250_pci modular instead of built-in.  It ended up
> >>> having the same problems that trying "unbind" did (I mentioned that in
> >>> another response), but even if it did work, then it still comes back to
> >>> having to rebuild the kernel.  I'm trying to avoid having that be the
> >>> workaround.
> >>>
> >>>> Anyway, I find Sudip's argument also extremely reasonable and I totally 
> >>>> agree that adding RS485 support for exar chips as for the Fintek chips 
> >>>> is the way to go. Which raises the question how to implement the non 
> >>>> standard functionality mentioned by Sudip? And is this functionality 
> >>>> really needed?
> >>>
> >>> I may not be understanding fully, as I don't know about the Fintek
> >>> chips, but whatever we end up doing won't add RS485 support for the Exar
> >>> chip.  The XR17V35x chips don't have RS232/RS422/RS485 capability,
> >>> that's all provided by other parts on the board.  In our particular
> >>> case, those parts that are configured to provide RS485/etc are
> >>> configured using the GPIO lines of the Exar chip.  So, we need access to
> >>> the GPIO of the Exar chip to configure the board.  But any other board
> >>> out there with this same Exar chip will do nothing if you tell it to
> >>> twiddle the GPIO lines in the same way.  Well, it might do SOMETHING if
> >>> they happen to also be using the GPIO lines...but I doubt they're using
> >>> them in the same way we are.
> >>
> >> So how does your userspace discover that it is actually talking to
> >> your board and not some other Exar board using those GPIO lines?
> >>
> > 
> > When executing the example, you're supposed to pass it the first serial
> > device of the board (there are 8 total).  The configuration example we
> > provide with the board naturally assumes you're using it with our board.
> > As such, it checks for the presence of some values stored in the EEPROM
> > (revision, user-defined message, etc), mainly as a check that everything
> > is working as it should be.
> > 
> > If the user wanted to, they could remove those checks and execute the
> > reconfiguration calls anyway (ex. to change from RS232 to RS485).  If
> > they did that with a non-RTD board that had the Exar XR17V35x chipset on
> > it, and had the Exar driver inserted, then (as far as I know) it would
> > end up toggling the GPIO lines of the Exar chip.  The final result of
> > doing that depends on what the non-RTD board does with those GPIO lines.
> > So far as I know, we're the only ones that use them to configure the
> > recv/trans on the board.  Other manufacturers might use the GPIO for
> > other things, or nothing.
> > 
> > Configuring the board in this manner was solely a design decision on our
> > knows nothing about it.  It was a means for us to get away from relying
> > on jumpers for configuration.
> > 
> > I hope I answered your question.
> 
> Sort of; what we need to know is if there is a reliable, non-destructive
> method of h/w probing to id your board(s).
> 
> For example, are the pci subsystem vendor and device id fields valid
> and uniquely identify your board?  If so, we can use the 8250_pci
> quirk mechanism to fork into your board-specific init.
> From there is how RS485 support would be added.
> 
> Regards,
> Peter Hurley

Oh, I see.  Yes, the subvendor and subdevice IDs can be used to reliably
determine that it is our card.  The vendor and device IDs will be
Exar's.

Rob G.




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



[Index of Archives]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Linux PPP]     [Linux FS]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Linmodem]     [Device Mapper]     [Linux Kernel for ARM]

  Powered by Linux