Re: kern/134878: [puc] [patch] Add support for Oxford OXPCIe954 and OXPCIe958 PCI Express chips

View: New views
3 Messages — Rating Filter:   Alert me  

Re: kern/134878: [puc] [patch] Add support for Oxford OXPCIe954 and OXPCIe958 PCI Express chips

by Bill Lortz :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

The following reply was made to PR kern/134878; it has been noted by GNATS.

From: "Bill Lortz" <blortz@...>
To: <bug-followup@...>, <david@...>
Cc:  
Subject: Re: kern/134878: [puc] [patch] Add support for Oxford OXPCIe954 and OXPCIe958 PCI Express chips
Date: Sun, 8 Nov 2009 11:02:46 -0800

 This is a multi-part message in MIME format.
 
 ------=_NextPart_000_01B3_01CA6063.01402410
 Content-Type: text/plain;
  charset="us-ascii"
 Content-Transfer-Encoding: 7bit
 
 I have the FreeTech PCI-e mini card with 1 serial and 1 parallel port (part
 #PEX1S1PMINI) that claims to use the Oxford OXPCIe952 chip.   The computer
 is a FITPC2 (Intel Atom-based computer).
 
 
 
 After applying the puc patch, enabling puc in the kernel and re-compiling,
 the card is recognized, but no driver was assigned.
 
 
 
 I ran a pciconf -lv to list the pci devices and found the chip id's didn't
 match anything in the patched driver.
 
 
 
 So, I changed an entry in the patched code for the 952 chip from "0x1415,
 0x15d"   to "0x1415, 0xc11b" so that it matched the output from the pciconf.
 Since I was only interested in the serial function, I didn't try to patch
 for the parallel port function.    After recompiling the kernel it worked
 and assigned a device driver to the UART.
 
 
 
 I wasn't comfortable in my patch to add a new table entry, so that is why I
 changed an existing entry.   I suspect the proper patch would be to add a
 new table entry.     I've included the output from my "pciconf" that shows
 the pci card and chip ids for both the serial and parallel ports.   Notice
 that it assigned a device puc0 to the UART.
 
 
 
 
 
 none3@pci0:3:0:0:       class=0x070102 card=0xc1181415 chip=0xc1181415
 rev=0x00 hdr=0x00
 
     vendor     = 'Oxford Semiconductor Ltd'
 
     class      = simple comms
 
     subclass   = parallel port
 
 puc0@pci0:3:0:3:        class=0x070002 card=0xc11b1415 chip=0xc11b1415
 rev=0x00 hdr=0x00
 
     vendor     = 'Oxford Semiconductor Ltd'
 
     class      = simple comms
 
     subclass   = UART
 
 
 
 I'm very new to FreeBSD and am not sure if I approached notification of my
 findings in the correct way by submitting this followup.   In any case, I
 hope it is helpful since I assume it is hard for the developers to test on
 every combination of computer and card.
 
 
 
 If a new patch is released, I'd be happy to test it out.
 
 
 
 Bill Lortz
 
 
 
 
 ------=_NextPart_000_01B3_01CA6063.01402410
 Content-Type: text/html;
  charset="us-ascii"
 Content-Transfer-Encoding: quoted-printable
 
 <html xmlns:v=3D"urn:schemas-microsoft-com:vml" =
 xmlns:o=3D"urn:schemas-microsoft-com:office:office" =
 xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
 xmlns:x=3D"urn:schemas-microsoft-com:office:excel" =
 xmlns:p=3D"urn:schemas-microsoft-com:office:powerpoint" =
 xmlns:a=3D"urn:schemas-microsoft-com:office:access" =
 xmlns:dt=3D"uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" =
 xmlns:s=3D"uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882" =
 xmlns:rs=3D"urn:schemas-microsoft-com:rowset" xmlns:z=3D"#RowsetSchema" =
 xmlns:b=3D"urn:schemas-microsoft-com:office:publisher" =
 xmlns:ss=3D"urn:schemas-microsoft-com:office:spreadsheet" =
 xmlns:c=3D"urn:schemas-microsoft-com:office:component:spreadsheet" =
 xmlns:odc=3D"urn:schemas-microsoft-com:office:odc" =
 xmlns:oa=3D"urn:schemas-microsoft-com:office:activation" =
 xmlns:html=3D"http://www.w3.org/TR/REC-html40" =
 xmlns:q=3D"http://schemas.xmlsoap.org/soap/envelope/" =
 xmlns:rtc=3D"http://microsoft.com/officenet/conferencing" =
 xmlns:D=3D"DAV:" xmlns:Repl=3D"http://schemas.microsoft.com/repl/" =
 xmlns:mt=3D"http://schemas.microsoft.com/sharepoint/soap/meetings/" =
 xmlns:x2=3D"http://schemas.microsoft.com/office/excel/2003/xml" =
 xmlns:ppda=3D"http://www.passport.com/NameSpace.xsd" =
 xmlns:ois=3D"http://schemas.microsoft.com/sharepoint/soap/ois/" =
 xmlns:dir=3D"http://schemas.microsoft.com/sharepoint/soap/directory/" =
 xmlns:ds=3D"http://www.w3.org/2000/09/xmldsig#" =
 xmlns:dsp=3D"http://schemas.microsoft.com/sharepoint/dsp" =
 xmlns:udc=3D"http://schemas.microsoft.com/data/udc" =
 xmlns:xsd=3D"http://www.w3.org/2001/XMLSchema" =
 xmlns:sub=3D"http://schemas.microsoft.com/sharepoint/soap/2002/1/alerts/"=
  xmlns:ec=3D"http://www.w3.org/2001/04/xmlenc#" =
 xmlns:sp=3D"http://schemas.microsoft.com/sharepoint/" =
 xmlns:sps=3D"http://schemas.microsoft.com/sharepoint/soap/" =
 xmlns:xsi=3D"http://www.w3.org/2001/XMLSchema-instance" =
 xmlns:udcs=3D"http://schemas.microsoft.com/data/udc/soap" =
 xmlns:udcxf=3D"http://schemas.microsoft.com/data/udc/xmlfile" =
 xmlns:udcp2p=3D"http://schemas.microsoft.com/data/udc/parttopart" =
 xmlns:wf=3D"http://schemas.microsoft.com/sharepoint/soap/workflow/" =
 xmlns:dsss=3D"http://schemas.microsoft.com/office/2006/digsig-setup" =
 xmlns:dssi=3D"http://schemas.microsoft.com/office/2006/digsig" =
 xmlns:mdssi=3D"http://schemas.openxmlformats.org/package/2006/digital-sig=
 nature" =
 xmlns:mver=3D"http://schemas.openxmlformats.org/markup-compatibility/2006=
 " xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" =
 xmlns:mrels=3D"http://schemas.openxmlformats.org/package/2006/relationshi=
 ps" xmlns:spwp=3D"http://microsoft.com/sharepoint/webpartpages" =
 xmlns:ex12t=3D"http://schemas.microsoft.com/exchange/services/2006/types"=
  =
 xmlns:ex12m=3D"http://schemas.microsoft.com/exchange/services/2006/messag=
 es" =
 xmlns:pptsl=3D"http://schemas.microsoft.com/sharepoint/soap/SlideLibrary/=
 " =
 xmlns:spsl=3D"http://microsoft.com/webservices/SharePointPortalServer/Pub=
 lishedLinksService" xmlns:Z=3D"urn:schemas-microsoft-com:" =
 xmlns:st=3D"" xmlns=3D"http://www.w3.org/TR/REC-html40">
 
 <head>
 <meta http-equiv=3DContent-Type content=3D"text/html; =
 charset=3Dus-ascii">
 <meta name=3DGenerator content=3D"Microsoft Word 12 (filtered medium)">
 <style>
 <!--
  /* Font Definitions */
  @font-face
  {font-family:"Cambria Math";
  panose-1:2 4 5 3 5 4 6 3 2 4;}
 @font-face
  {font-family:Calibri;
  panose-1:2 15 5 2 2 2 4 3 2 4;}
  /* Style Definitions */
  p.MsoNormal, li.MsoNormal, div.MsoNormal
  {margin:0in;
  margin-bottom:.0001pt;
  font-size:11.0pt;
  font-family:"Calibri","sans-serif";}
 a:link, span.MsoHyperlink
  {mso-style-priority:99;
  color:blue;
  text-decoration:underline;}
 a:visited, span.MsoHyperlinkFollowed
  {mso-style-priority:99;
  color:purple;
  text-decoration:underline;}
 span.EmailStyle17
  {mso-style-type:personal-compose;
  font-family:"Calibri","sans-serif";
  color:windowtext;}
 .MsoChpDefault
  {mso-style-type:export-only;}
 @page Section1
  {size:8.5in 11.0in;
  margin:1.0in 1.0in 1.0in 1.0in;}
 div.Section1
  {page:Section1;}
 -->
 </style>
 <!--[if gte mso 9]><xml>
  <o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
 </xml><![endif]--><!--[if gte mso 9]><xml>
  <o:shapelayout v:ext=3D"edit">
   <o:idmap v:ext=3D"edit" data=3D"1" />
  </o:shapelayout></xml><![endif]-->
 </head>
 
 <body lang=3DEN-US link=3Dblue vlink=3Dpurple>
 
 <div class=3DSection1>
 
 <p class=3DMsoNormal>I have the FreeTech PCI-e mini card with 1 serial =
 and 1
 parallel port (part #PEX1S1PMINI) that claims to use the Oxford =
 OXPCIe952 chip.  
 The computer is a FITPC2 (Intel Atom-based computer).<o:p></o:p></p>
 
 <p class=3DMsoNormal><o:p> </o:p></p>
 
 <p class=3DMsoNormal>After applying the puc patch, enabling puc in the =
 kernel and
 re-compiling, the card is recognized, but no driver was assigned. =
 <o:p></o:p></p>
 
 <p class=3DMsoNormal><o:p> </o:p></p>
 
 <p class=3DMsoNormal>I ran a pciconf –lv to list the pci devices =
 and found
 the chip id’s didn’t match anything in the patched =
 driver.<o:p></o:p></p>
 
 <p class=3DMsoNormal><o:p> </o:p></p>
 
 <p class=3DMsoNormal>So, I changed an entry in the patched code for the =
 952 chip from
 “0x1415, 0x15d”   to “0x1415, 0xc11b” =
 so that
 it matched the output from the pciconf.   Since I was only =
 interested
 in the serial function, I didn’t try to patch for the parallel =
 port
 function.    After recompiling the kernel it worked and =
 assigned
 a device driver to the UART.<o:p></o:p></p>
 
 <p class=3DMsoNormal><o:p> </o:p></p>
 
 <p class=3DMsoNormal>I wasn’t comfortable in my patch to add a new =
 table
 entry, so that is why I changed an existing entry.   I suspect =
 the
 proper patch would be to add a new table entry.     =
 I’ve
 included the output from my “pciconf” that shows the pci =
 card and
 chip ids for both the serial and parallel ports.   Notice that =
 it
 assigned a device puc0 to the UART.<o:p></o:p></p>
 
 <p class=3DMsoNormal><o:p> </o:p></p>
 
 <p class=3DMsoNormal><o:p> </o:p></p>
 
 <p =
 class=3DMsoNormal>none3@pci0:3:0:0:      
 class=3D0x070102 card=3D0xc1181415 chip=3D0xc1181415 rev=3D0x00 =
 hdr=3D0x00<o:p></o:p></p>
 
 <p class=3DMsoNormal>    vendor     =
 =3D 'Oxford
 Semiconductor Ltd'<o:p></o:p></p>
 
 <p class=3DMsoNormal>    =
 class      =3D
 simple comms<o:p></o:p></p>
 
 <p class=3DMsoNormal>    subclass   =3D =
 parallel port<o:p></o:p></p>
 
 <p =
 class=3DMsoNormal>puc0@pci0:3:0:3:      &nb=
 sp;
 class=3D0x070002 card=3D0xc11b1415 chip=3D0xc11b1415 rev=3D0x00 =
 hdr=3D0x00<o:p></o:p></p>
 
 <p class=3DMsoNormal>    vendor     =
 =3D 'Oxford
 Semiconductor Ltd'<o:p></o:p></p>
 
 <p class=3DMsoNormal>    =
 class      =3D
 simple comms<o:p></o:p></p>
 
 <p class=3DMsoNormal>    subclass   =3D =
 UART<o:p></o:p></p>
 
 <p class=3DMsoNormal><o:p> </o:p></p>
 
 <p class=3DMsoNormal>I’m very new to FreeBSD and am not sure if I
 approached notification of my findings in the correct way by submitting =
 this
 followup.   In any case, I hope it is helpful since I assume =
 it is
 hard for the developers to test on every combination of computer and =
 card.<o:p></o:p></p>
 
 <p class=3DMsoNormal><o:p> </o:p></p>
 
 <p class=3DMsoNormal>If a new patch is released, I’d be happy to =
 test it
 out.<o:p></o:p></p>
 
 <p class=3DMsoNormal><o:p> </o:p></p>
 
 <p class=3DMsoNormal>Bill Lortz<o:p></o:p></p>
 
 <p class=3DMsoNormal><o:p> </o:p></p>
 
 </div>
 
 </body>
 
 </html>
 
 ------=_NextPart_000_01B3_01CA6063.01402410--
 
_______________________________________________
freebsd-bugs@... mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-bugs
To unsubscribe, send any mail to "freebsd-bugs-unsubscribe@..."

Parent Message unknown Re: kern/134878: [puc] [patch] Add support for Oxford OXPCIe954 and OXPCIe958 PCI Express chips

by David Wood-6 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

The following reply was made to PR kern/134878; it has been noted by GNATS.

From: David Wood <david@...>
To: blortz@...
Cc: bug-followup@...
Subject: Re: kern/134878: [puc] [patch] Add support for Oxford OXPCIe954 and OXPCIe958 PCI Express chips
Date: Mon, 9 Nov 2009 21:44:57 +0000

 Hi Bill,
 
 Thanks for your follow-up for my patch.
 
 In message <01b201ca60a6$0f633d00$2e29b700$@net>, Bill Lortz
 <blortz@...> writes
 >I have the FreeTech PCI-e mini card with 1 serial and 1 parallel port (part
 >#PEX1S1PMINI) that claims to use the Oxford OXPCIe952 chip.   The computer
 >is a FITPC2 (Intel Atom-based computer).
 
  From the device ID you give, it's definitely OXPCIe952 based.
 
 
 >After applying the puc patch, enabling puc in the kernel and re-compiling,
 >the card is recognized, but no driver was assigned.
 >
 >I ran a pciconf -lv to list the pci devices and found the chip id's didn't
 >match anything in the patched driver.
 
 Correct; the current version of the patch only attempts to support the
 OXPCIe952 when it's configured as two serial ports.
 
 
 >So, I changed an entry in the patched code for the 952 chip from "0x1415,
 >0x15d"   to "0x1415, 0xc11b" so that it matched the output from the pciconf.
 >Since I was only interested in the serial function, I didn't try to patch
 >for the parallel port function.    After recompiling the kernel it worked
 >and assigned a device driver to the UART.
 
 Great! I suspect that you'd rather the card used the OXPCIe952 to offer
 two serial ports rather than one serial and one parallel port. At the
 moment, mini PCI Express cards are not that common and I couldn't find
 one that had two serial ports.
 
 
 >I wasn't comfortable in my patch to add a new table entry, so that is why I
 >changed an existing entry.   I suspect the proper patch would be to add a
 >new table entry.     I've included the output from my "pciconf" that shows
 >the pci card and chip ids for both the serial and parallel ports.   Notice
 >that it assigned a device puc0 to the UART.
 
 The OXPCIe952 can be used in many different configurations. The patch as
 it currently stands only supports the '2 native UARTs' function of the
 OXPCIe952, but on re-reading the data sheet, I realise that the patch
 should also support the '1 native UART' function that your card is
 offering.
 
 
 I'll check the hex arithmetic again before updating the patch, but I
 believe that the relevant entries for '1 native UART' are:
 
 0x1415, 0xc11b (function 3)
 0x1415, 0xc11f (function 3)
 0x1415, 0xc138 (function 0)
 0x1415, 0xc13d (function 1)
 
 This means that there's actually four table entries to add.
 
 
 My patch doesn't attempt to add support OXPCIe952 legacy UARTs or
 parallel ports; I don't have any suitable hardware to test with.
 
 
 
 >none3@pci0:3:0:0:       class=0x070102 card=0xc1181415 chip=0xc1181415
 >rev=0x00 hdr=0x00
 >
 >    vendor     = 'Oxford Semiconductor Ltd'
 >
 >    class      = simple comms
 >
 >    subclass   = parallel port
 >
 >puc0@pci0:3:0:3:        class=0x070002 card=0xc11b1415 chip=0xc11b1415
 >rev=0x00 hdr=0x00
 >
 >    vendor     = 'Oxford Semiconductor Ltd'
 >
 >    class      = simple comms
 >
 >    subclass   = UART
 
 
 That looks correct - there's no support for the parallel port, though it
 shouldn't be that hard to add.
 
 OXPCIe952 legacy UARTs and parallel ports should be much more
 straightforward than the native UARTs that the current patch supports.
 They may just need table entries, though I haven't checked too
 carefully. It's hard to write drivers for hardware that you don't have.
 
 
 Most importantly, does the serial port work with your amended patch?
 
 Does /var/run/dmesg.boot contain a line:
 puc0: 1 UARTs detected
 
 
 >I'm very new to FreeBSD and am not sure if I approached notification of my
 >findings in the correct way by submitting this followup.
 
 You did the right thing by replying to me and cc'ing
 bug-followup@...
 
 The only suggestion I have is to send plain text emails; GNATS makes a
 bit of a mess of HTML as you can see at
 http://www.freebsd.org/cgi/query-pr.cgi?pr=134878
 
 
 >In any case, I
 >hope it is helpful since I assume it is hard for the developers to test on
 >every combination of computer and card.
 
 Indeed. My main aim was to support my OXPCIe954 based card, but I wanted
 to support other cards in the family where possible.
 
 
 >If a new patch is released, I'd be happy to test it out.
 
 I'll attempt to update the patch some time this week to cover the '1
 native UART' functions on the OXPCIe952, which will mean the patch
 supports your serial port.
 
 I may also have a go at the parallel port and legacy UART functions.
 Could you test the parallel port if I attempt to support it, or have you
 not got any parallel devices? I suspect that most people have left
 parallel port devices behind by now - printers have used USB for many
 years.
 
 
 I'm also planning to revisit the patch to attempt to add support for
 MSI-X on these Oxford UARTs, though that requires changing some of the
 main puc code, not just pucdata.c. I want to use my OXPCIe954 based card
 for NTP master clocks - using MSI-X offers the prospect of reducing
 interrupt latency and jitter. It's just a matter of finding the
 necessary time.
 
 
 
 Best wishes,
 
 
 
 
 David
 --
 David Wood
 david@...
_______________________________________________
freebsd-bugs@... mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-bugs
To unsubscribe, send any mail to "freebsd-bugs-unsubscribe@..."

Parent Message unknown RE: kern/134878: [puc] [patch] Add support for Oxford OXPCIe954 and OXPCIe958 PCI Express chips

by Bill Lortz :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

The following reply was made to PR kern/134878; it has been noted by GNATS.

From: "Bill Lortz" <blortz@...>
To: "'David Wood'" <david@...>
Cc: <bug-followup@...>
Subject: RE: kern/134878: [puc] [patch] Add support for Oxford OXPCIe954 and OXPCIe958 PCI Express chips
Date: Mon, 9 Nov 2009 22:57:39 -0800

 David:
 
 I'm glad to hear that I wasn't way off base.
 
 To answer your questions:
 
 
 
 > Most importantly, does the serial port work with your amended patch?
 
 > Does /var/run/dmesg.boot contain a line:
 > puc0: 1 UARTs detected
 
 Yes, the serial port works great.  I'm using with NTPD and have a GPS PPS
 signal from a Garmin 18x LVC GPS on pin 1 (DSR) along with TX/RX and GND on
 the appropriate pins.  NTPD and the kernel are seeing the PPS signal and
 receiving a NMEA data just fine.   I don't know if NTPD tries to transmit
 anything though, so it is possible the transmit function isn't working and I
 don't know it.   If you'd like me to test that specifically, I can probably
 find something else to plug in besides the GPS and try it out - even a null
 modem to another PC might work.
 
 The relevant lines in dmesg.boot are:
 
 pci3: <ACPI PCI bus> on pcib2
 pci3: <simple comms, parallel port> at device 0.0 (no driver attached)puc0:
 <Oxford Semiconductor OXPCIe952 UARTs (function 1)> mem
 0xd8200000-0xd8203fff,0xd8600000-0xd87fffff,0xd8400000-0xd85fffff irq 16 at
 device 0.3 on pci3
 puc0: 1 UARTs detected
 puc0: [FILTER]
 uart2: <16950 or compatible> on puc0
 
 I do remember seeing some sort of weird message when I did the verbose boot
 logging.   Something about assigning a memory block and some conflict with
 an entry (sorry about being so vague).   If you do have time to come up with
 an updated patch, I'll try both unknowns: "transmitting" and to get the
 message from the verbose boot log for you.
 
 The device names in /dev that it created didn't match anything I saw online,
 but I took a chance and used them in NTPD which worked.  The names it
 created were: /dev/cuau2 /dev/cuau2.init /dev/cuau2.lock /dev/ttyu2
 /dev/ttyu2.init /dev/ttyu2.lock
 I used the /dev/cuau2 for NTPD by using some symbolic links.
 
 
 
 >You did the right thing by replying to me and cc'ing
 >bug-followup@...
 
 >The only suggestion I have is to send plain text emails; GNATS makes a
 >bit of a mess of HTML as you can see at
 >http://www.freebsd.org/cgi/query-pr.cgi?pr=134878
 
 Yes.   I actually searched on google by the patch id and some other words
 and found the "Current FreeBSD problem reports" page.   I clicked on the
 followup link and it wound up launching Microsoft Outlook with the correct
 "to:" and "cc:" elements.    I didn't realize that it was sending HTML also
 until (with horror) I saw my reply on that case with all the HTML garbage
 afterwards.   On this message, Outlook is claiming to send Plain Text.
 We'll see... :)
 
 
 >I may also have a go at the parallel port and legacy UART functions.
 >Could you test the parallel port if I attempt to support it, or have you
 >not got any parallel devices? I suspect that most people have left
 >parallel port devices behind by now - printers have used USB for many
 >years.
 
 Sure.   I'll have to open the computer case and temporarily attach the
 parallel port cable to the card.   I'll probably have to pick up the right
 kind of adapter cable, but I think that I have a couple of printers around
 that can accept parallel.   If not at home, I do at work.
 
 
 >I'm also planning to revisit the patch to attempt to add support for
 >MSI-X on these Oxford UARTs, though that requires changing some of the
 >main puc code, not just pucdata.c. I want to use my OXPCIe954 based card
 >for NTP master clocks - using MSI-X offers the prospect of reducing
 >interrupt latency and jitter. It's just a matter of finding the
 >necessary time.
 
 That sounds like something that would help my little NTPD/GPS clock setup.
 Let me know if there is anything I can help you with.  
 
 
 
 Bill
 
_______________________________________________
freebsd-bugs@... mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-bugs
To unsubscribe, send any mail to "freebsd-bugs-unsubscribe@..."