PCI serial device at fixed address

From: Geert Uytterhoeven (Geert.Uytterhoeven@sonycom.com)
Date: Mon Feb 14 2000 - 10:31:41 EST


        Hi,

I want to add clean support to serial.c for the UART in the NEC Vrc-5074 (Nile
4) host bridge (for NEC VR5000). This UART is located at the fixed (physical)
address 0x1fa00000. Unfortunately the PCI base address registers of the Nile 4
do not mention the region where the UART is located.

Currently struct pci_board only allows to specify offsets relative to one of
PCI the base address registers, hence I cannot easily add the Nile 4 to the
pci_boards array.

I see two possible solutions:

  - Since I know what's in the PCI base address registers, I can store
    (0x1fa00000-barXX_value) in pci_board.first_uart_offset and specify this as
    an offset relative to PCI base address register XX (preferably a PCI base
    address register that contains 0, if possible).
    
    This solution is a bit messy since it depends on a hardcoded PCI base
    address register value and PCI resource assignment is not done by the boot
    ROM on my board, but has to be done by Linux.

  - Add a new flag SPCI_FL_BASE_ABSOLUTE for pci_board.flags, to indicate that
    pci_board.first_uart_offset is an absolute value (in PCI memory or I/O
    space). The correct port value can than be set using

    if (board->flags & SPCI_FL_BASE_ABSOLUTE)
        port = board->first_uart_offset;
    else
        port = PCI_BASE_ADDRESS(dev, base_idx) + board->first_uart_offset;

Or perhaps there are other (better) solutions? Thanks in advance!

Gr{oetje,eeting}s,

                                                Geert

--
Geert Uytterhoeven ------------- Sony Software Development Center Europe (SDCE)
Geert.Uytterhoeven@sonycom.com ------------------- Sint-Stevens-Woluwestraat 55
Voice +32-2-7248632 Fax +32-2-7262686 ---------------- B-1130 Brussels, Belgium

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Tue Feb 15 2000 - 21:00:27 EST