grub-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: 8250 memory mapped UART


From: Matthias Lange
Subject: Re: 8250 memory mapped UART
Date: Wed, 1 Mar 2017 11:57:53 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.7.0

On 03/01/2017 11:32 AM, Gailu Singh wrote:
> I checked coreboot where in the memory it is mapped and it seems to be
> on PCIE. Relevant code from coreboot. So I am hopeful that patch will work.
> ---------
> uintptr_t uart_platform_base(int idx)
> {
> u8      *pcie;
> u32      tmp;
> idx  = idx & 3;
> pcie = (u8 *)PCIE_MMIO(0, PCH_DEV_SLOT_UART, idx, 0);
> tmp  = read32 (pcie + PCI_BASE_ADDRESS_0);
> if (tmp == 0xFFFFFFFF) {
> /* the device might be hidden */
> return LPSS_UART_BASE_ADDRESS;
> } else {
> return (uintptr_t) (tmp & 0xFFFFFFF0);
> }
> } 
> ---------

This looks promising. Could you extract the PCI vendor and device ID
please? My current implementation currently only supports OXSemi chips.

>  I applied the patches and run make clean followed by make but build
> failed as follows
> ------------------------
> cat syminfo.lst | sort | gawk -f ./genmoddep.awk > moddep.lst || (rm -f
> moddep.lst; exit 1)
> grub_ns8250_pci_mmio_init in serial is not defined
> make[3]: *** [moddep.lst] Error 1
> ------------------------

Hmmm, grub_ns8250_pci_mmio_init is defined in include/grub/serial.h.
Could you check that please? I failed to reproduce your problem, maybe I
did something different?

(master checked out)
/tmp/grub $ /path/to/grub-src/configure --with-platform=efi
/tmp/grub $ make -j12 # success
(applied my three patches)
/tmp/grub $ make clean
/tmp/grub $ make -j12 # success

Matthias.

> On Wed, Mar 1, 2017 at 3:27 PM, Gailu Singh <address@hidden
> <mailto:address@hidden>> wrote:
> 
>     Sorry for typo. I meant 8250 instead of 8050 in last email
> 
>     On Wed, Mar 1, 2017 at 3:21 PM, Gailu Singh <address@hidden
>     <mailto:address@hidden>> wrote:
> 
>         My board is Intel Oxbohill CRB (Apollo lake). On my board UART
>         are not connected to PCI. 
> 
>         I am using grub2 payload loaded by coreboot. UART works fine in
>         coreboot by using memory mapped 8050 driver
>         
> (https://github.com/coreboot/coreboot/blob/master/src/drivers/uart/uart8250mem.c
>         
> <https://github.com/coreboot/coreboot/blob/master/src/drivers/uart/uart8250mem.c>),
>         however when grub2 is loaded it refuses to recognize UART.
> 
> 
> 
>         On Wed, Mar 1, 2017 at 3:08 PM, Matthias Lange
>         <address@hidden
>         <mailto:address@hidden>> wrote:
> 
>             Hi,
> 
>             On 03/01/2017 08:00 AM, Andrei Borzenkov wrote:
>             > please test patches from Matthias Lange
>             >
>             > 
> https://lists.gnu.org/archive/html/grub-devel/2017-02/msg00104.html
>             
> <https://lists.gnu.org/archive/html/grub-devel/2017-02/msg00104.html>
>             >
>             >
>             > On Wed, Mar 1, 2017 at 9:15 AM, Gailu Singh <address@hidden 
> <mailto:address@hidden>> wrote:
>             >> Hi Experts,
>             >>
>             >> I am using GRUB2 on intel apollo lake board. This board does 
> not have IO
>             >> mapped uart instead it has 8250 memory mapped UART.
> 
>             Could you share some details about the board?
> 
>             >> GRUB2 does not recognize memory mapped uart and gives error 
> ("serial port
>             >> COM0 not found). There is a 8250 memory mapped driver 
> available in coreboot.
>             >> Is it possible to port that driver to Grub2?
> 
>             My patch set adds support for 8250 MMIO PCI cards. Is the
>             UART on your
>             board connected via PCI?
> 
>             Best,
>             Matthias.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]