[coreboot] [Mohon Peak] Console output on external UARTs behind PCIe
Kyösti Mälkki
kyosti.malkki at gmail.com
Thu Mar 12 15:50:16 CET 2015
On Thu, 2015-03-12 at 10:02 +0100, Patrick Agrain wrote:
> Hello,
>
> More on this topic.
> Kyösti, as required, here are the info.
>
> - I'm able to boot a Linux OS with (internal) uart1 from Atom.
> - I'm also to boot the Linux with following command-line : kernel /boot/vmlinuz-2.6.32-xx-dhs3 root=/dev/sda2
> console=uart8250,mmio,0xdf601000,115200n8 panic=5. The kernel logs are then sent to the external UART,
> as soon as the serial driver is loaded.. So far so good...
>
Ok, just checking.
I need to correct my previous statement in that I do not know anyone
(yet) using OxPCIe with the specific intel chipset you have there, but
an older one. It is possible those PCI-e root ports are not yet
initialized/trained when we attempt the PCI ID detection for the UART
card.
> Here are the lspci information from a Mohon Peak.
> [root at mohon_peak ~]# lspci -t
> -[0000:00]-+-00.0
> +-01.0-[01]----00.0
> +-03.0-[02-06]----00.0-[03-06]--+-04.0-[04]--
> | +-05.0-[05]--+-00.0
> | | \-00.1
> | \-08.0-[06]--
> +-0e.0
> +-0f.0
> +-13.0
> +-14.0
> +-14.1
> +-16.0
> +-17.0
> +-18.0
> +-1f.0
> \-1f.3
> [root at mohon_peak ~]#
> [root at mohon_peak ~]# lspci -vv -d 1415:c158
> 01:00.0 Serial controller: Oxford Semiconductor Ltd OXPCIe952 Dual 16C950 UART (prog-if 02 [16550])
> Subsystem: Oxford Semiconductor Ltd OXPCIe952 Dual 16C950 UART
> Control: I/O- Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> Interrupt: pin A routed to IRQ 16
> Region 0: Memory at df600000 (32-bit, non-prefetchable) [size=16K]
> Region 1: Memory at df200000 (32-bit, non-prefetchable) [size=2M]
> Region 2: Memory at df400000 (32-bit, non-prefetchable) [size=2M]
> Capabilities: [40] Power Management version 3
> Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=55mA PME(D0-,D1+,D2+,D3hot+,D3cold+)
> Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
> Capabilities: [70] Express (v1) Endpoint, MSI 00
> DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <128ns, L1 <2us
> ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
> DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
> RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop-
> MaxPayload 128 bytes, MaxReadReq 512 bytes
> DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+ TransPend-
> LnkCap: Port #0, Speed 2.5GT/s, Width x1, ASPM L0s L1, Latency L0 unlimited, L1 unlimited
> ClockPM+ Surprise- LLActRep- BwNot-
> LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk+
> ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> LnkSta: Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
> Capabilities: [b0] MSI-X: Enable- Count=16 Masked-
> Vector table: BAR=1 offset=001b3000
> PBA: BAR=1 offset=001b2000
> Capabilities: [100 v1] Device Serial Number 00-30-e0-11-11-00-01-50
> Capabilities: [110 v1] Power Budgeting <?>
> Kernel driver in use: serial
>
I think EARLY_PCI parameters are fine if you also assigned MMIO_BASE
with 0xdf000000.
> [root at mohon_peak ~]#
> [root at mohon_peak ~]# dmesg | grep tty
> serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
> serial8250: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A
> ttyS2: detected caps 00000700 should be 00000100
> 0000:01:00.0: ttyS2 at MMIO 0xdf601000 (irq = 16) is a 16C950/954
> ttyS3: detected caps 00000700 should be 00000100
> 0000:01:00.0: ttyS3 at MMIO 0xdf601200 (irq = 16) is a 16C950/954
> [root at mohon_peak ~]#
>
> Kyösti, I agree with you concerning the A9h post code. IMHO, I think it is issued by the Intel FSP.
>
> BTW,
> compiler complains about a mismatch argument type on read8() and write8() in ./src/drivers/uart/uart8250mem.c
Ah.. there is a recent regression with source. With complain like that
it will not build you a new firmware binary at all, so it makes me
wonder what you were actually testing before.
Here is quick (but untested) fix for the build problem:
http://review.coreboot.org/#/c/8660/
For a test run, I would need to disassemble a samsung/lumpy that I know
OxPCIe works well with. That won't happen for at least a week.
Kyösti
More information about the coreboot
mailing list