Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 2 Feb 2014 12:35:38 -0700
From:      Warner Losh <imp@bsdimp.com>
To:        Nathan Whitehorn <nwhitehorn@freebsd.org>
Cc:        "'freebsd-arm@freebsd.org'" <freebsd-arm@FreeBSD.org>
Subject:   Re: status = "disabled"
Message-ID:  <4F893AE1-6B64-469D-AF3C-8AB2EB9D0ED9@bsdimp.com>
In-Reply-To: <52EE6EA1.90707@freebsd.org>
References:  <726dc97ccd1f44b3ba9d7bee3eeff08a@e15be-01.zdv.Uni-Mainz.DE> <52EE622C.9010004@freebsd.org> <06235e983f8142fcb7f6f6c329a84b90@e15be-01.zdv.Uni-Mainz.DE> <52EE6EA1.90707@freebsd.org>

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

On Feb 2, 2014, at 9:13 AM, Nathan Whitehorn wrote:

> On 02/02/14 09:59, Wei=DF, J=FCrgen wrote:
>>=20
>>> -----Original Message-----
>>> From: Nathan Whitehorn [mailto:nwhitehorn@freebsd.org]
>>> Sent: Sunday, February 02, 2014 4:20 PM
>>> To: Wei=DF, J=FCrgen; freebsd-arm@freebsd.org
>>> Subject: Re: status =3D "disabled"
>>>=20
>>> On 02/02/14 05:55, Wei=DF, J=FCrgen wrote:
>>>> Hi,
>>>>=20
>>>> it seems your recent changes (261351) discarded a call to =
fdt_is_enabled
>>>> for devices on simplebus. So 'status =3D "disabled" ' does not work
>>>> anymore in arm dts.
>>>>=20
>>>> Regards
>>>>=20
>>>> Juergen Weiss
>>>>=20
>>>> Juergen Weiss      |Universitaet Mainz, Zentrum fuer =
Datenverarbeitung,
>>>> weiss@uni-mainz.de |55099 Mainz, Tel: +49(6131)39-26361, FAX: =
+49(6131)39-26407
>>>>=20
>>>>=20
>>> That's actually required to make some hardware work ("disabled" may =
just
>>> mean the clock is turned off and needs to be turned back on, which =
means
>>> you absolutely do want that device probed). The device drivers
>>> themselves, not the bus, should be checking this property and
>>> interpreting it. If this has actually broken hardware, we could add =
a
>>> temporary #ifdef __arm__ check to the simplebus tree-walker while =
the
>>> relevant drivers get fixed up.
>>> -Nathan
>>=20
>> Thanks for the quick answer. Right know there seem to be zero device =
drivers
>> doing this. And there are quite a few fdts going from general (all =
devices on SOC)
>> to specific (devices usable on specific board), which use the status =
field
>> to disable a device (for example i.mx in general and wandboard =
specifically).
>> At least with the i.mx6 the unconnected sdhci devices lead to hangs =
during
>> boot.
>>=20
>=20
> That's disappointing. I think I'll probably add a hack while we repair =
any drivers like this.
>=20
> For the (near) future, according to the spec (ePAPR section 2.3.4), =
"disabled" means:
> "Indicates that the device is not presently operational, but it might =
become operational in the future (for example, something is not plugged =
in, or is switched off). Refer to the device binding for details on what =
'disabled' means for a given device."
> So dropping them at probe time in the bus layer was clearly wrong and =
indeed breaks some hardware. It would be nice to have some survey of =
which drivers encounter this issue...

In the yet-to-be-committed Atmel code, disabled is used to mark those =
devices that can't work because their pins are not brought out to =
headers, or they are, but they are internally multiplexed to something =
else...

The reason no drivers do this is because of the check to see if they =
were enabled in the bus layer, which is now gone... That check was =
wrong, but this isn't a surprising turn of events...

Warner




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4F893AE1-6B64-469D-AF3C-8AB2EB9D0ED9>