PCIe - No parport registered at "0x " . This is not Always an error.Continuing.

More
1 year 7 months ago - 1 year 7 months ago #324162 by unknown

The non-native parallel port is a parallelized serial port. The Linux kernel takes it as a serial PCIE port. That's where linuxcnc comes into conflict and raises the alarm. The older parallel port PCI expansion boards were neater and sent the OS the message (I'm a parallel port). This Generation does not, that is why this alarm appears that tells us (continue, it may not be a mistake). The issue is that linuxcnc starts in a messy way and I would like to solve it.
I'm not at all sure what you mean by a "parallelized serial port".
The chips used in these cards are multi function,some of them can be strapped to work as SPI ports. Or they can be configured for a combination of serial only or serial & parallel ports. The kernel does not take the board as a serial PCIE port. Whilst some do load the parport_serial driver that does not mean it is seen a just a serial PCIE port.
I have a multifunction card installed that uses the parport_serial drive
Code:
dmesg | grep parport [    9.596507] parport0: PC-style at 0x3000, irq 22 [PCSPP,TRISTATE]
As you can see it is recogonised as a parallel port at 0x3000.

Now for the serial part of the card, there is also an on board serial port at the "regular address"
Code:
dmesg | grep tty [ 0.000000] printk: legacy console [tty0] enabled [ 0.383862] 00:03: ttyS0 at I/O 0x3f8 (irq = 4, base_baud = 115200) is a 16550A [ 9.712793] 0000:06:0d.0: ttyS4 at I/O 0x3008 (irq = 22, base_baud = 115200) is a 16550A
As you can see it is recogonised as a serail port at 0x3008.

The device doesn't say "I'm a parallel port" the kernel loads the driver depending on the devices PCIID
Code:
modinfo parport_serial filename: /lib/modules/6.8.0-55-generic/kernel/drivers/parport/parport_serial.ko.zst license: GPL description: Driver for common parallel+serial multi-I/O PCI cards author: Tim Waugh <twaugh@redhat.com> srcversion: A846D47B63100191101D385 alias: pci:v0000135Ad0000402Csv*sd*bc*sc*i* alias: pci:v0000135Ad00000DA0sv*sd*bc*sc*i* alias: pci:v0000135Ad00000982sv*sd*bc*sc*i* alias: pci:v0000135Ad00000981sv*sd*bc*sc*i* alias: pci:v0000135Ad00000E61sv*sd*bc*sc*i* alias: pci:v0000135Ad00000863sv*sd*bc*sc*i* alias: pci:v0000135Ad00000862sv*sd*bc*sc*i* alias: pci:v0000135Ad00000861sv*sd*bc*sc*i* alias: pci:v0000135Ad00000BC2sv*sd*bc*sc*i* alias: pci:v0000135Ad00000BC1sv*sd*bc*sc*i* alias: pci:v00001FD4d00001999sv00001FD4sd00000104bc*sc*i* alias: pci:v00001FD4d00001999sv00001FD4sd00000102bc*sc*i* alias: pci:v00001FD4d00001999sv00001FD4sd00000101bc*sc*i* alias: pci:v00001FD4d00001999sv00001FD4sd00000100bc*sc*i* alias: pci:v0000135Ad00004100sv*sd*bc*sc*i* alias: pci:v00001C00d00003250sv00001C00sd00003250bc*sc*i* alias: pci:v00001C00d00003050sv00001C00sd00003050bc*sc*i* alias: pci:v00004348d00007053sv00004348sd00003253bc*sc*i* alias: pci:v00004348d00005053sv*sd*bc*sc*i* alias: pci:v00001409d00007168sv00001409sd0000D079bc*sc*i* alias: pci:v00001409d00007168sv00001409sd0000C079bc*sc*i* alias: pci:v00001409d00007168sv00001409sd0000B079bc*sc*i* alias: pci:v00001409d00007168sv00001409sd0000A079bc*sc*i* alias: pci:v00001409d00007168sv00001409sd00009079bc*sc*i* alias: pci:v00001409d00007168sv00001409sd00008079bc*sc*i* alias: pci:v00001409d00007168sv00001409sd00007079bc*sc*i* alias: pci:v00001409d00007168sv00001409sd00006079bc*sc*i* alias: pci:v00001409d00007168sv00001409sd00005085bc*sc*i* alias: pci:v00001409d00007168sv00001409sd00005079bc*sc*i* alias: pci:v00001409d00007168sv00001409sd00005078bc*sc*i* alias: pci:v00001409d00007168sv00001409sd00004096bc*sc*i* alias: pci:v00001409d00007168sv00001409sd00004095bc*sc*i* alias: pci:v00001409d00007168sv00001409sd00004089bc*sc*i* alias: pci:v00001409d00007168sv00001409sd00004088bc*sc*i* alias: pci:v00001409d00007168sv00001409sd00004085bc*sc*i* alias: pci:v00001409d00007168sv00001409sd00004079bc*sc*i* alias: pci:v00001409d00007168sv00001409sd00004078bc*sc*i* alias: pci:v0000131Fd00002062sv*sd*bc*sc*i* alias: pci:v0000131Fd00002061sv*sd*bc*sc*i* alias: pci:v0000131Fd00002060sv*sd*bc*sc*i* alias: pci:v0000131Fd00002012sv*sd*bc*sc*i* alias: pci:v0000131Fd00002011sv*sd*bc*sc*i* alias: pci:v0000131Fd00002010sv*sd*bc*sc*i* alias: pci:v0000131Fd00002042sv*sd*bc*sc*i* alias: pci:v0000131Fd00002041sv*sd*bc*sc*i* alias: pci:v0000131Fd00002040sv*sd*bc*sc*i* alias: pci:v0000131Fd00001036sv*sd*bc*sc*i* alias: pci:v0000131Fd00001035sv*sd*bc*sc*i* alias: pci:v0000131Fd00001034sv*sd*bc*sc*i* alias: pci:v0000131Fd00001012sv*sd*bc*sc*i* alias: pci:v0000131Fd00001011sv*sd*bc*sc*i* alias: pci:v0000131Fd00001010sv*sd*bc*sc*i* alias: pci:v000014DBd00002162sv*sd*bc*sc*i* alias: pci:v000014DBd00002161sv*sd*bc*sc*i* alias: pci:v000014DBd00002160sv*sd*bc*sc*i* alias: pci:v000014DBd00002142sv*sd*bc*sc*i* alias: pci:v000014DBd00002141sv*sd*bc*sc*i* alias: pci:v000014DBd00002140sv*sd*bc*sc*i* alias: pci:v000014DBd00002112sv*sd*bc*sc*i* alias: pci:v000014DBd00002111sv*sd*bc*sc*i* alias: pci:v000014DBd00002110sv*sd*bc*sc*i* alias: pci:v00009710d00009912sv0000A000sd00002000bc*sc*i* alias: pci:v00009710d00009900sv0000A000sd00003020bc*sc*i* alias: pci:v00009710d00009900sv0000A000sd00003012bc*sc*i* alias: pci:v00009710d00009900sv0000A000sd00003011bc*sc*i* alias: pci:v00009710d00009855sv*sd*bc*sc*i* alias: pci:v00009710d00009855sv00001000sd00000022bc*sc*i* alias: pci:v00009710d00009855sv00001000sd00000020bc*sc*i* alias: pci:v00009710d00009845sv*sd*bc*sc*i* alias: pci:v00009710d00009835sv*sd*bc*sc*i* alias: pci:v00009710d00009745sv*sd*bc*sc*i* alias: pci:v00009710d00009735sv*sd*bc*sc*i* alias: pci:v000014D2d00008021sv*sd*bc*sc*i* alias: pci:v000014D2d00008011sv*sd*bc*sc*i*
As you can see the this is the list of ID it is loaded for.

The message comes from /src/rtapi/uspace_rtapi_parport.cc
Last edit: 1 year 7 months ago by unknown.
The following user(s) said Thank You: tommylight

Please Log in or Create an account to join the conversation.

More
1 year 7 months ago #324165 by PCW
I'd probably just change:

        rtapi_print_msg(RTAPI_MSG_ERR, "No parport registered at 0x%x. "
                    "This is not always an error. Continuing.\n", base);

to

        rtapi_print_msg(RTAPI_MSG_WARN, "No parport registered at 0x%x. "
                    "This is not always an error. Continuing.\n", base);

 
The following user(s) said Thank You: tommylight

Please Log in or Create an account to join the conversation.

More
1 year 7 months ago #324238 by RobotMatic


I attach 2 images of different boards Pcie.La board that has Kernel Driver parport_serial(Linuxcnc boots clean without the alarm in question). The board that has the Kernel Driver Serial (Triggers the Alarm in question). Both plates work perfectly.
I insist on the concept of a parallelized serial port. The PCEI architecture is serial and the expansion boards are responsible for parallelizing so that we can have an LPT port at the end. LinuxCNC should contemplate this situation to boot clean without the alarm. Because everything works perfectly.
The following user(s) said Thank You: tommylight

Please Log in or Create an account to join the conversation.

More
1 year 7 months ago #324240 by unknown
By your definition of the PCIe being serial, no arguments there, it would be better described as a serialised parallel port. Generally any PCIe card would be described as a serialised device.
A more correct definition is a parallel/serial chip with a PCIe interface. Mesa sells PCIe motion control cards, would you call them serialised motion control cards ? What about GPUs, multilaned serialised devices ? Or look at the RPi 5 with the new RP interface chip, the GPIOs are on this chip which is connected via the PCIe bus, are they part of your serialised definition ?
Generally most people would look at the end point, not the bus of the computer. It's just easier to increase the speed of a serial bus compared to a parallel bus on a PCB. Trace length really comes into play, reflection, termination and many other things are more difficult routing wise with high speed parallel buses.

With regards to the chips used I think you would get a better understanding if you had a look at the data sheets. You'd be surprised the actual functions that these cards can perform. Some go further than just serial or parallel.

As PCW mentioned a change in the definition of the message would sort this out. If you feel strongly enough this should be changed, mention this on the Linuxcnc GitHub, as this is where changes to the code get done.
The following user(s) said Thank You: tommylight

Please Log in or Create an account to join the conversation.

More
1 year 7 months ago #324241 by RobotMatic
the point is that Linuxcnc does not find a parallel port, it finds a port that it can use but the kernel driver defines it as serial, it does not matter what is the capacity of the micro that uses the PCIE board, nor does it interest all the capabilities that you mention. Linuxcnc does not know how to solve the situation and gives us an alarm with a dual message, everything works perfectly, we are the ones who have to follow. I'm asking if you can somehow eliminate this situation of alarm or Dual message, I'm not trying to discuss technology, Nothing in the cpus works in Parallel, everything is serial, if you think differently perfect, I have no problem with that, but please don't deviate the reason why this thread was created in the forum. Thanks a lot.

Please Log in or Create an account to join the conversation.

More
1 year 7 months ago #324242 by tommylight
No "serialized parallel" or "parallel serialized" no no noooooooo! :)
I really do not like labeling stuff at random like that, it is a parallel port interface running on a PCI-E bus, not the same thing and absolutely not something to be mixed at random.
The one with serial ports is an UART running on a PCI-E bus, nothing in common except the "serial" part.
-
Watching RoboMatic's pictures it just dawned on me, the normal PCI ports use one of the 16 IRQ's (FYI PC has 16 IRQ from 0-15) but this in the picture is 16 and still shows like a normal IRQ, so i wonder.... but the other one is IRQ32 and in a group of IOMMU so it has no memory address.
Also most probably lack of DMA access might be triggering the warning...
This needs more testing, whenever i get a chance, and whenever i get more PCI-E ones as i am out of those for now.
The following user(s) said Thank You: RobotMatic

Please Log in or Create an account to join the conversation.

Time to create page: 0.080 seconds
Powered by Kunena Forum