# Long slow death of the serial port.



## Phishfry (Jul 6, 2018)

I am a long time serial port user and while I may not fully understand all the mechanics I have the serial port address's impaled in my brain.

com1=ttys0 0x3f8 irq4
com2=ttys1 0x2f8 irq3
com3=ttys2 0x3e8 irq4
com4=ttys3 0x2e8 irq3
These were controlled in later hardware by 16550 and that moved to South Bridge silicone even later.

Well I have my first box that has UART2 on PCI bus with a strange address. There is no UART0 or UART1. So I am assuming that beginning with Haswell that Intel ditched the 16550 support? Maybe this is just an odd box or chipset. I don't have much hardware newer than Haswell.

What are everyone's experience? I need to check `dmesg|grep uart` on my Skylake Xeon to see if it uses 16550.


----------



## Phishfry (Jul 6, 2018)

The Haswell I have must be an odd board. My Skylake has regular serial ports:

```
uart0: <16550 or compatible> port 0x3f8-0x3ff irq 4 flags 0x10 on acpi0
uart1: <16550 or compatible> port 0x2f8-0x2ff irq 3 on acpi0
```


----------



## kpedersen (Jul 6, 2018)

I am a big fan of serial ports. I find USB far too complex to write software for.

In general, I always have to use USB UART devices because I do much of my development work on my laptops. For my uses they work well but there are apparently issues with flushing buffers in certain situations (I luckily have yet to encounter) etc..

I did actually think that serial was lost on standard PCs but it is good to hear hardware as recent as Skylake has them


----------



## ShelLuser (Jul 6, 2018)

I've operated a BBS for a long time _and_ I enjoyed tinkering. From the top of your head eh? Well, I can do one "lower leveled": Tx / Rx (transmit/receive), carrier detect, data ready, request to send, the minus & ground pins (I think we had ground too) and almost forgot: clear to send.

Hmm, reminds me of Terminate. We had several very nice serial console programs, I had a favorite which name I now totally forgot, but then came Terminate (so I think)...

Ok, this is the part where I cheated (Wikipedia) but I found it!  It was ProComm which I really enjoyed to use but then I discovered Terminate which _completely_ changed the way I worked with BBS systems.


----------



## Phishfry (Jul 6, 2018)

I was a unicomm guy!! I loved that basic comm program.


----------



## Phishfry (Jul 6, 2018)

When I dig deeper into the Haswell I see that Serial Redirection is different. It uses COM0= ISA Serial Port and COM1=SOL/iAMT

I will never forget the first time a BBS sysadmin came popping in on me asking what I was looking for.
Immediately I gave it the ATHO as it sent shivers down my spine thinking that someone was watching my every move.


----------



## obsigna (Jul 6, 2018)

kpedersen said:


> ...
> I did actually think that serial was lost on standard PCs but it is good to hear hardware as recent as Skylake has them



My Kabylake 1151 MicroATX board still got a serial port, although it does not got a rear connector, it comes only as pin socket on the board.

```
CPU: Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz (4200.16-MHz K8-class CPU)
...
uart0: <16550 or compatible> port 0x3f8-0x3ff irq 4 flags 0x10 on acpi0
```

For me the parallel port is more interesting, because theoretically we may be able to use this for 8 lines of digital I/O. This is on my list for exploration.


```
...
ppc1: <Parallel port> port 0x378-0x37f,0x778-0x77f irq 5 drq 3 on acpi0
...
```


----------



## Phishfry (Jul 6, 2018)

I was wrong. I do have UART0 and UART1. They were in another section of dmesg.
UART2 looks to be the Serial over LAN/iAMT.

```
uart2: <Intel Lynx Point KT Controller> port 0xf0a0-0xf0a7 mem 0xf7626000-0xf7626fff irq 19 at device 22.3 on pci0
uart0: <16550 or compatible> port 0x3f8-0x3ff irq 4 flags 0x10 on acpi0
uart0: console (115200,n,8,1)
uart1: <16550 or compatible> port 0x2f8-0x2ff irq 3 on acpi0
```


----------



## Phishfry (Jul 6, 2018)

obsigna said:


> For me the parallel port is more interesting,


It is also still popular for the guys with homebrew Linux CNC controllers, like many of the supported Mach3 control boards.
USB is just too unreliable.
https://www.geckodrive.com/g540.html


----------



## cynwulf (Jul 6, 2018)

RS232 is far from dead.  Barcode printers / POS still relies on it.  The parallel port has started to disappear there though.

I still use it at work, have tons of straight through and crossover cables, gender changers, both 9 and 25 pin and a lot of the USB -> RS232 controllers still hanging around and in use.


----------



## ronaldlees (Jul 6, 2018)

cynwulf said:


> RS232 is far from dead.  Barcode printers / POS still relies on it.  The parallel port has started to disappear there though.
> 
> I still use it at work, have tons of straight through and crossover cables, gender changers, both 9 and 25 pin and a lot of the USB -> RS232 controllers still hanging around and in use.



Good riddance to that parallel port: those big ugly cables are even uglier than my little ugly cables, which are ugly enough.  I do have one old HP5L printer that simply refuses to die, and it needs that type of cable.  I have only one PC (an oldie) that can service the printer.  When it dies, I guess they go as a combo to the bin.


----------



## Nicola Mingotti (Jul 6, 2018)

In my opinion the serial is still the most usefull port for troubleshooting. I hope it will fade away in a distant future. I use it constantly for the following:

1] BeagleBones
2] access network servers which are misbehaving (well, often i misbehaved
writing the pf.conf)

Then, other less frequent stuff:

*] A couple of days ago I helped troubleshoot a large automatic machinery named Amada. There, the main PLC comunicates with 2 desktops via serial.

*] If i remember well when i was sysadmin we were configuring the Cisco(s) via serial.
Also, all computer in the PCFarm where cabled via serial to a central switch. (I admit that thing was really cranky).  

Bye


----------



## fernandel (Jul 6, 2018)

ShelLuser said:


> I've operated a BBS for a long time _and_ I enjoyed tinkering. From the top of your head eh? Well, I can do one "lower leveled": Tx / Rx (transmit/receive), carrier detect, data ready, request to send, the minus & ground pins (I think we had ground too) and almost forgot: clear to send.
> 
> Hmm, reminds me of Terminate. We had several very nice serial console programs, I had a favorite which name I now totally forgot, but then came Terminate (so I think)...
> 
> Ok, this is the part where I cheated (Wikipedia) but I found it!  It was ProComm which I really enjoyed to use but then I discovered Terminate which _completely_ changed the way I worked with BBS systems.



...and I was a user of few of them. I had this time OS2 on my 286 with 2MB of RAM and 50 MB Quantum HD . And StarrOffice was the office...
Many times I downloaded updates fot OS.
Tempi passati


----------

