Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 2 Mar 2014 19:38:10 -0700
From:      Warner Losh <imp@bsdimp.com>
To:        Patrick Kelsey <kelsey@ieee.org>
Cc:        "freebsd-hackers@freebsd.org" <freebsd-hackers@freebsd.org>, freebsd-arm@freebsd.org, freebsd-embedded@freebsd.org
Subject:   Re: [PATCH] simplebus child device probe order control via FDT (motivated by BeagleBone Black)
Message-ID:  <7C2B7036-51CC-4C97-80C4-0A439874357D@bsdimp.com>
In-Reply-To: <CAD44qMUyqzaFtjgXdgThgHcHjPctx-oZAdhvHp4Kf0G7N4HVog@mail.gmail.com>
References:  <CAD44qMUyqzaFtjgXdgThgHcHjPctx-oZAdhvHp4Kf0G7N4HVog@mail.gmail.com>

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




On Mar 2, 2014, at 4:56 PM, Patrick Kelsey <kelsey@ieee.org> wrote:

> Hi,
>=20
> The attached patch (fdt_probe_order_control.patch) allows control over =
the
> probe order of simplebus child devices by using a "probe-order" =
property in
> simplebus child nodes in the .dts file

Where is the probe-order property defined? I can=92t seem to find it in =
the bindings.
Also, I don=92t think it is necessary. This is a software construct, so =
doesn=92t really
belong in the dts file. I=92d really like to avoid FreeBSD specific =
hacks in the DTS
files.

> This was motivated by booting FreeBSD from the eMMC on a BeagleBone =
Black,
> which has a pluggable microSD card slot in addition to the eMMC.  The =
order
> that the mmc units are defined in sys/boot/fdt/dts/am335x.dtsi causes =
the
> pluggable slot to be probed/attached first, so the device name =
assigned to
> the eMMC soldered to the board changes depending on whether there is a =
card
> in the pluggable slot, which makes establishing appropriate /etc/fstab
> contents less than convenient.

Sounds like you=92d like to have some sort of name to instance mapping.
The typical way this is solved is by naming the partitions so that =
ordering
doesn=92t matter. Even if you don=92t handle this at the filesystem =
level, which
is how others cope, you=92d want this to be more of a direct binding =
rather than an
ordering so that you get the effect you want (constant name) directly, =
rather
than as a side-effect of ordering.

If you insist on that, then having a something more like =
=93freesbd,unit-number=94
property would also accomplish this. But that would only wire the =
controller unit
number, and not the resulting mmcsdX device.

> By using the "probe-order" property in
> sys/boot/fdt/dts/beaglebone-black.dts (see attached
> beaglebone_black_mmc_probe_order.patch), I am able to swap the order =
in
> which the mmc units are probed/attached for that board.  This avoids
> inappropriate hacking of the mmc definition order in am335x.dtsi, =
which is
> shared among multiple boards.
>=20
> This is not a general solution to the problem of wanting stable device
> names for hard-wired MMC devices when pluggable slots are present in =
the
> system.  There could, for example, be a multi-slot MMC controller with =
a
> mixture of hard-wired and pluggable devices attached, and this would =
not
> address that case.  However, it does address the needs of BeagleBone =
Black,
> and the mechanism may be of use for similar issues on other platforms.

As it isn=92t a generic solution, I=92d be biased against adopting it. =
What=92s wrong
with using glabel to accomplish this (either with a label specific =
property, or
by using a ufs label and mounting /dev/ufs/foo).

Warner

> Both patches were generated against 10-STABLE, r262447.
>=20
> -Patrick
> =
<fdt_probe_order_control.patch><beaglebone_black_probe_order.patch>_______=
________________________________________
> freebsd-arm@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-arm
> To unsubscribe, send any mail to "freebsd-arm-unsubscribe@freebsd.org"




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?7C2B7036-51CC-4C97-80C4-0A439874357D>