Good day Rudolf/All,
OK so it does work.
Yesterday I copy/pasted the subroutine and its definitions used to enable SERIRQ and set the mode (sc_enable_serial_irqs) and now I can see serial output but no input on ttyS0.
At this point I am trying to understand what you already told me:
1.- To dump ELCR (I/O port register 0x4d0) to check if it is correctly programmed to EDGE 2.- To do some PNP device in ACPI to let linux infer the IRQ. 3.- To try to disable the IRQ from SoC internal UART.
For #1 the question is which linux command I can use to dump ELCR registers to check if misconfigured? For #2 the question is if the linux command "dmesg | grep 'tty'" output which shows the irq set on coreboot devicetree is still not evidence that linux is aware of the port IRQs?
[ 2.207098] 00:05: ttyS0 at I/O 0x3f8 (irq = 4, base_baud = 115200) is a 16550A [ 2.208096] 00:06: ttyS1 at I/O 0x2f8 (irq = 3, base_baud = 115200) is a 16550A
I am including fintek's superio.asl which tell linux the resources of this device. May be I still dont understand #2 or there is something else.
For #3 is straightforward for me and I am working on it.
What I do recall is that those Baytrail and later Apollo lake intel atom CPUs have some issue and setting LPC to the "continous" will shorten some life of the transistor driving the LPC bus, thus the system will malfunction sooner than later.
I am aware of this and I have been concerned on this issue for a while, but, I think I need to try to make this system functional and suggest the target user not to use this feature.
Thank you, Jose Trujillo.