# Intel PCI Serial Port - no driver attached



## Mitrandir (Mar 4, 2012)

Hello,

Intel AMT "Serial over LAN" does not work in FreeBSD (... and in all *NIX).

```
no driver attached -> ttyuX not added
```
 

Links:
http://lists.freebsd.org/pipermail/freebsd-stable/2007-March/033504.html - not solved.
http://lists.freebsd.org/pipermail/freebsd-stable/2010-June/057494.html - not solved.
http://sourceforge.net/projects/openamt/ - Linux HECI-driver project. Not SOL driver! :\

Issuing a `# pciconf` results in FreeBSD 8.X (device puc & uart included):

```
none1@pci0:0:3:3:       class=0x070002 card=0x10048086 chip=0x2e178086 rev=0x03 hdr=0x00
vendor     = 'Intel Corporation'
device     = 'Intel PCI Serial Port (CC_0700)'
class      = simple comms
subclass   = UART
```

Issuing a `# pciconf` results in FreeBSD 9.X (device puc & uart included):

```
none1@pci0:0:3:3:       class=0x070002 card=0x10048086 chip=0x2e178086 rev=0x03 hdr=0x00
vendor     = 'Intel Corporation'
device     = '4 Series Chipset Serial KT Controller'
class      = simple comms
subclass   = UART
```
'4 Series Chipset Serial KT Controller' - WTF?! 

Ubuntu info:

```
*-communication:1
             description: Serial controller
             product: 4 Series Chipset Serial KT Controller
             vendor: Intel Corporation
             physical id: 3.3
             bus info: pci@0000:00:03.3
             version: 03
             width: 32 bits
             clock: 66MHz
             capabilities: pm msi 16550 bus_master cap_list
             configuration: driver=serial latency=0
             resources: irq:17 ioport:ecb8(size=8) memory:fdfda000-fdfdafff
```

Linux - find in all version sources:

```
Device "0x2e17" not found.
```

`# ndisgen` Windows SOL driver (from MEI_AMT_ALLOS_6.1.0.1042_PV, 2009 _or_ from LMS_SOL_AllOS_5.4.0.1065_PV, 2007) - not possible.


FreeBSD change source:
/sys/dev/puc/pucdata.c

```
{   0x8086, 0x2e17, 0x8086, 0x1004,
	    "Intel PCI Serial Port (CC_0700)",
	    DEFAULT_RCLK,
	    PUC_PORT_1S, 0x10, 0, 0,
	},
```
*N*o effect... 

*P*oint me in the right direction?

*T*hank you very much!


----------



## Uniballer (Mar 4, 2012)

Mitrandir said:
			
		

> *P*oint me in the right direction?



I guess you could try to find the necessary technical info and write a driver for your existing card, but I would find/buy a card with a known working driver.


----------



## Mitrandir (Mar 4, 2012)

Uniballer said:
			
		

> I guess you could try to find the necessary technical info and write a driver for your existing card, but I would find/buy a card with a known working driver.


This is not "existing card". This is integrated Intel AMT SOL device for remove serial port administration. :stud
Technology "Intel AMT" has over 10 years - Windows drivers found always, *NIX just do not understand the value of its use.

I could pay for a FreeBSD kernel-specialist or driver-specialist for the development of...


----------



## Mitrandir (Mar 4, 2012)

"Integrated Intel AMT SOL device" to many MotherBoard.
Technology has no analogue.


----------



## wblock@ (Mar 4, 2012)

Some searching found http://freebsd.1045724.n5.nabble.co...erial-over-Lan-port-in-FreeBSD-td3971984.html
So try sysutils/ipmitool and maybe also comms/amtterm.


----------



## Mitrandir (Mar 5, 2012)

wblock@ said:
			
		

> Some searching found http://freebsd.1045724.n5.nabble.co...erial-over-Lan-port-in-FreeBSD-td3971984.html
> So try sysutils/ipmitool and maybe also comms/amtterm.


WOW!!! Big Thanks!
Your link ===> http://linux.die.net/man/7/amt-howto ===>


> If you have activated AMT and SOL the linux kernel should see an additional serial port, like this on my machine:
> `# dmesg | grep ttyS2`
> 
> ```
> ...


Intel AMT SOL work in Linux. (I was wrong, because the device-code not found in sources Linux.)

But FreeBSD "additional serial port" not added to system: not added device puc to uartX and not added uartX to ttyuX!

'Intel PCI Serial Port (CC_0700)' no driver attached ===>

```
none1@pci0:0:3:3:       class=0x070002 card=0x10048086 chip=0x2e178086 rev=0x03 hdr=0x00
```
but should be ===>
	
	



```
uart0@pci0:0:3:3:       class=0x070002 card=0x10048086 chip=0x2e178086 rev=0x03 hdr=0x00
```
Is Problem!


----------



## wblock@ (Mar 5, 2012)

Just to be clear: you've already run `kldload ipmi` and `ipmitool sol`?  (Untested, pretty sure none of my systems have IPMI.)


----------



## Mitrandir (Mar 6, 2012)

wblock@ said:
			
		

> Just to be clear: you've already run `kldload ipmi` and `ipmitool sol`?  (Untested, pretty sure none of my systems have IPMI.)


IPMI Serial over LAN driver (extended LAN interface) and Intel AMT hardware SOL - this is different technology.
Ð’ut yes :stud, I first checked ipmitool and found that IPMI has no relation to the Intel AMT. 

PCI serial port found in system, but not attached to uart - how to add this PCI device driver in the code of supported puc (pci to uart bridge)?

I really do not speak English and I need help to find a specialist driver FreeBSD. I would appreciate it if someone created a description of the problem (I described it in great detail) in the FreeBSD mailing list:


> `# pciconf` results in FreeBSD 8.X (device puc & uart included in kernel):
> 
> 
> 
> ...


----------



## wblock@ (Mar 6, 2012)

Which mailing list was that on?  I agree that adding support in puc(4) might be all that is needed.  If there is Linux or other source code that deals with the Intel AMT SOL, that might help in creating an entry for pucdata.c.


----------



## Mitrandir (Mar 6, 2012)

http://www.intel.com/content/www/us/en/processors/xeon/4-chipset-family-datasheet.html - "Serial Port for Remote Keyboard and Text (KT) Redirection".
Full Datasheet.

What are the correct settings from Datasheet be substituted into:
/sys/dev/puc/pucdata.c

```
{   0x8086, 0x2e17, 0x8086, 0x1004,
	    "4 Series Chipset Serial KT Controller",
	    [B]??[/B] * DEFAULT_RCLK,
	    PUC_PORT_1S, 0x[B]??[/B], [B]??[/B], [B]??[/B],
	},
```


----------



## wblock@ (Mar 6, 2012)

I don't know, although many of the entries are identical.  The latest changes to that file were approved by jhb@.  I would either post to the mailing lists (freebsd-questions) or contact him directly.


----------



## Mitrandir (Mar 8, 2012)

http://lists.freebsd.org/pipermail/freebsd-questions/2012-March/239133.html - I learned how to use mailing lists.


----------



## wjl2 (Mar 2, 2014)

I'm working on the same problem on a FreeBSD 9 system.  Tried some variations for pucdata.c with no success.

Did anyone ever get AMT SOL working on a FreeBSD system?


----------



## sag (Mar 12, 2014)

wjl2 said:
			
		

> I'm working on the same problem on a FreeBSD 9 system.  Tried some variations for pucdata.c with no success.
> 
> Did anyone ever get AMT SOL working on a FreeBSD system?


AllMost There — Intel AMT on my ThinkPad T520


----------



## wjl2 (Mar 14, 2014)

Looks like  you're making progress.  However, you're getting a response that nobody else seems to be.

When you do `pciconf -l` you're getting uart0@pci0:0:22:3: ....

When others of us do this we get none1@pci0:0:3:3: ... or variations the numbers there.  The key factor, however, is that they always show "none," and because of that the other commands your article shows don't work.

We've been thinking that making an entry into pucdata.c would fix that, but have been unable to arrive at one that works.


----------



## sag (Mar 15, 2014)

@wjl2, let me be clear, I didn't write the article to which I linked. Based on the general way you phrased your question, I thought you were asking whether AMT serial works in principle, so I posted the link as an example that it can work. Regarding the specific PCI ID in the original post, support was added way back on Mar 17, 2012:

http://svnweb.freebsd.org/base?view=rev ... ion=233061

Please post the output of `pciconf -lv | grep -A3 none` so we can see what chip you're dealing with.


----------



## wjl2 (Mar 17, 2014)

I misunderstood and thought you were showing your own work.

As it happens, I no longer work for the company I was trying to resolve the problem for.  I kept tracking this here because it interested me.  I'll pass on the fix date and URL to them.

Thank you.


----------



## Hei (Sep 8, 2015)

Sorry for bring it up again.

Recently, I bought an Intel NUC NUC5i5MYBE. I successfully installed FreeBSD 10.2 on this. (It is not the first time I run FreeBSD on Intel NUC.) However, I have some problem in setting up the AMT function.

I run `pciconf -lv | grep -A3 none`. Here is the output:


```
none0@pci0:0:22:0:    class=0x078000 card=0x20588086 chip=0x9cba8086 rev=0x03 hdr=0x00
    vendor     = 'Intel Corporation'
    class      = simple comms
none1@pci0:0:22:3:    class=0x070002 card=0x20588086 chip=0x9cbd8086 rev=0x03 hdr=0x00
    vendor     = 'Intel Corporation'
    class      = simple comms
    subclass   = UART
--
none2@pci0:0:31:3:    class=0x0c0500 card=0x20588086 chip=0x9ca28086 rev=0x03 hdr=0x00
    vendor     = 'Intel Corporation'
    class      = serial bus
    subclass   = SMBus
```

I believe one of the possible way to solve this is to add an entry into uart_bus_pci.c. However, I don't know where to look for the relevant information. Could someone give me some hints?
Thanks!


----------



## sag (Sep 9, 2015)

Untested--I don't have a NUC, but try the line:

```
{ 0x8086, 0x9cbd, 0xffff, 0, "Intel Wildcat Point KT Controller", 0x10 },
```
 to uart_bus_pci.c.


----------



## tooker (May 18, 2017)

Same problem on my old Intel S3000AH board based on Intel 3000 chipset.

```
none1@pci0:4:0:3:       class=0x070002 card=0x00008086 chip=0x108f8086 rev=0x03 hdr=0x00
    vendor     = 'Intel Corporation'
    device     = 'Active Management Technology - SOL'
    class      = simple comms
    subclass   = UART
```

But after adding the line:

```
{ 0x8086, 0x108f, 0xffff, 0, "Active Management Technology - SOL", 0x10 },
```
to uart_bus_pci.c and recompiling the kernel it seems to be working:

```
uart2@pci0:4:0:3:       class=0x070002 card=0x00008086 chip=0x108f8086 rev=0x03 hdr=0x00
    vendor     = 'Intel Corporation'
    device     = 'Active Management Technology - SOL'
    class      = simple comms
    subclass   = UART
```

`dmesg | grep uart` shows:

```
uart2: <Active Management Technology - SOL> port 0x2020-0x2027 mem 0xe81a1000-0xe81a1fff irq 19 at device 0.3 on pci4
uart2: console (115200,n,8,1)
uart0: <16550 or compatible> port 0x3f8-0x3ff irq 4 flags 0x10 on acpi0
```

It would be great if the maintainers of uart module will include it in future releases.


----------



## SirDice (May 18, 2017)

tooker said:


> It would be great if the maintainers of uart module will include it in future releases.


Please open a PR for it.


----------



## tooker (May 18, 2017)

SirDice said:


> Please open a PR for it.


Done.  
PR 219384
It is my first PR. I hope it is ok.


----------

