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