Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 9 Jul 2006 22:37:26 -0700
From:      Marcel Moolenaar <marcel@xcllnt.net>
To:        "M. Warner Losh" <imp@bsdimp.com>
Cc:        freebsd-acpi@freebsd.org, atkin901@yahoo.com
Subject:   Re: acpi on msi-9218 (-current) swaps sio0 and sio1
Message-ID:  <0353311F-34F9-40F6-81B9-C7C838CC6024@xcllnt.net>
In-Reply-To: <20060709.204329.-1889954042.imp@bsdimp.com>
References:  <200607071240.57062.jhb@freebsd.org> <20060709.014658.-460542464.imp@bsdimp.com> <F7150813-BC0D-454A-A374-BA91D6603E78@xcllnt.net> <20060709.204329.-1889954042.imp@bsdimp.com>

next in thread | previous in thread | raw e-mail | index | archive | help

On Jul 9, 2006, at 7:43 PM, M. Warner Losh wrote:

> : > ... The third problem could
> : > also be solved with hints and some minor adjustments to newbus.
> :
> : I disagree. It's misusing hints that's causing the cross-threading.
> : If hints were to be used for enumeration only and you have a  
> different
> : means to select the low-level serial console then cross-threading is
> : avoided. This is exactly what uart(4) does. As such, you can even  
> pick
> : a port on a multi-I/O PCI card for the low-level serial console
> : without causing interference with any of the other problems you
> : mentioned. The reason is simply that you select the low-level serial
> : console by the one attribute that matters: the I/O address (either
> : I/O port or memory mapped I/O).
>
> You are correct for the console issue.  But the problem is much bigger
> than just the console issue.

I beg to differ. You correctly separated the low-level console issue
from the need to have a fixed mapping between port (plug/socket) and
unit numbers. The problems are separate and uart(4) correctly solves
the low-level console to unit mapping. This means that with uart(4)
you always have a single-user console, even though it may not be on
the same unit number when hardware configurations change. That latter
is the problem of having to wire-down a unit number and can best be
illustrated by having to edit /etc/ttys when unit numbers change (or
changing rc.conf when network units change -- take a pick :-). You
like to be able to fixate that, so that you don't have to edit your
favorite configuration file. This problem cannot and/or should not be
solved by any individual driver, but should be handled at the bus level.

So, we're talking about two different problems here, because they
need to be solved at different "levels" in the newbus framework.
Trying to solve them with a single solution or treating them as a
single problem is exactly what will cause the cross-threading you
mentioned.

> There are many valid reasons for wanting to wire the unit number to a
> resource.

Agreed, and this has nothing to do with low-level console issues.

-- 
  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?0353311F-34F9-40F6-81B9-C7C838CC6024>