Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 20 Mar 2004 12:04:37 -0800
From:      Marcel Moolenaar <marcel@xcllnt.net>
To:        "M. Warner Losh" <imp@bsdimp.com>
Cc:        cvs-all@FreeBSD.org
Subject:   Re: cvs commit: src/sys/conf files src/sys/dev/uart uart_cpu.h uart_cpu_alpha.c uart_cpu_amd64.c uart_cpu_i386.c uart_cpu_ia64.c uart_cpu_pc98.c uart_cpu_sparc64.c uart_subr.c
Message-ID:  <20040320200437.GB84959@dhcp01.pn.xcllnt.net>
In-Reply-To: <20040320.104521.08405415.imp@bsdimp.com>
References:  <200403200214.i2K2E3ps052217@repoman.freebsd.org> <20040320080027.GC567@funkthat.com> <20040320085431.GA74398@dhcp01.pn.xcllnt.net> <20040320.104521.08405415.imp@bsdimp.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, Mar 20, 2004 at 10:45:21AM -0800, M. Warner Losh wrote:
> In message: <20040320085431.GA74398@dhcp01.pn.xcllnt.net>
>             Marcel Moolenaar <marcel@xcllnt.net> writes:
> : Probe order is irrelevant if you specify the device by its I/O port
> : or memory mapped I/O address.
> 
> Only for devices that have fixed addresses.  This wouldn't be true for
> devices on the PCI bus, where probe order could affect the resources
> assigned to a given device.  The only real way for self-enumearting
> busses are a bus-specific address.

Devices that don't have a fixed address cannot be used as low-level
console as there's no way we can know where the device is. Unless of
course the device is pinned somewhere in advance. But this obviously
must happen before we enter the kernel, which for all practical
purposes and our point of view means that the device has a fixed 
address. Hence, we don't have to deal with devices that don't have a
fixed address.

Alternatively, if the platform has some form of indirection (like
sparc64 and powerpc that can look up device names in the OpenFirmware
device tree) you don't want to use addresses, you want to use the
indirection. Nonetheless, the indirection (e.g. name or alias) has
to be fixed and known up front so that we have something fixed to
do the lookup with. The lookup may yield a different result across
reboots.

Lastly, if the platform provides the information in some form (like
the HCDP table on DIG64 compliant machines), we use that and not
the environment variables. This is related to the indirect lookup
mentioned above.

-- 
 Marcel Moolenaar	  USPA: A-39004		 marcel@xcllnt.net



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20040320200437.GB84959>