> Date: Wed, 2 Jan 2019 16:08:53 +1000
> From: David Gwynne <[email protected]>
>
> This makes it more obvious what interesting things there are to hack on.
>
> Thoughts? ok?
I kind of deliberately didn't do this. Some device trees have quite a
large number of devices and when we started with the device tree
approach, having lots of "not configured" entries show up seemed a bit
distracting. Such entries always seem to solicit "Why doesn't OpenBSD
fully support my hardware?" type questions. That said, we have a lot
more drivers now and maybe if we knock out some of the clocks and
regulators that we support without drivers the situation isn't too
bad. And I do look at eeprom -p output somewhat regularly to find
stuff we don't support yet, and it is quite tedious to do so. And
maybe this will encourage more people to write missing drivers ;).
Looking at your below:
> For example, from an od1000:
>
> dlg@o1000 fdt$ dmesg | grep 'not configured'
> "v2m" at ampintc0 not configured
Hmm, ampintcmsi(4) should attach to that one. Doesn't it attach on
your machine? Or is there something not quite right in your printing logic?
logic?
> "clk100mhz_0" at simplebus0 not configured
> "clk375mhz" at simplebus0 not configured
> "clk333mhz" at simplebus0 not configured
> "clk500mhz_0" at simplebus0 not configured
> "clk500mhz_1" at simplebus0 not configured
> "clk250mhz_4" at simplebus0 not configured
> "clk100mhz_1" at simplebus0 not configured
These are clocks that we support without a specific driver that we
probably should knock out. That can be done later though.
> "i2c" at simplebus0 not configured
> "i2c" at simplebus0 not configured
> "ssp" at simplebus0 not configured
> "ssp" at simplebus0 not configured
> "gpio" at simplebus0 not configured
> "gpio" at simplebus0 not configured
> "gpio" at simplebus0 not configured
> "gpio" at simplebus0 not configured
> "AMD A1100 Host" rev 0x00 at pci0 dev 0 function 0 not configured
> "AMD A1100 Host" rev 0x00 at pci0 dev 2 function 0 not configured
> "ccn" at simplebus0 not configured
> "gwdt" at simplebus0 not configured
> "kcs" at simplebus0 not configured
> "clk250mhz_0" at simplebus0 not configured
> "clk250mhz_1" at simplebus0 not configured
> "clk250mhz_2" at simplebus0 not configured
> "clk250mhz_3" at simplebus0 not configured
>
> and an rpi3:
>
> "dma" at simplebus0 not configured
> "cprman" at simplebus0 not configured
> "mailbox" at simplebus0 not configured
> "gpio" at simplebus0 not configured
> "mmc" at simplebus0 not configured
> "dsi" at simplebus0 not configured
> "local_intc" at simplebus0 not configured
> "sdhci" at simplebus0 not configured
> "gpiomem" at simplebus0 not configured
> "firmware" at simplebus0 not configured
> "power" at simplebus0 not configured
> "fb" at simplebus0 not configured
> "vchiq" at simplebus0 not configured
> "vcsm" at simplebus0 not configured
> "arm-pmu" at simplebus0 not configured
> "virtgpio" at simplebus0 not configured
> "expgpio" at simplebus0 not configured
> "clock" at simplebus1 not configured
> "clock" at simplebus1 not configured
>
> id show pine64 too, but miniroot64.fs doesnt seem to like it at the
> moment.
>
> Index: simplebus.c
> ===================================================================
> RCS file: /cvs/src/sys/arch/arm64/dev/simplebus.c,v
> retrieving revision 1.8
> diff -u -p -r1.8 simplebus.c
> --- simplebus.c 1 Jun 2017 21:19:07 -0000 1.8
> +++ simplebus.c 2 Jan 2019 04:50:49 -0000
> @@ -149,6 +149,26 @@ simplebus_submatch(struct device *self,
> return 0;
> }
>
> +int
> +simplebus_print(void *aux, const char *pnp)
> +{
> + struct fdt_attach_args *fa = aux;
> + char name[32];
> +
> + if (!pnp)
> + return (QUIET);
> +
> + if (OF_getprop(fa->fa_node, "name", name, sizeof(name)) > 0) {
> + name[sizeof(name) - 1] = 0;
> + printf("\"%s\"", name);
> + } else
> + printf("node %u", fa->fa_node);
> +
> + printf(" at %s", pnp);
> +
> + return (UNCONF);
> +}
> +
> /*
> * Look for a driver that wants to be attached to this node.
> */
> @@ -221,7 +241,8 @@ simplebus_attach_node(struct device *sel
> fa.fa_dmat->_flags |= BUS_DMA_COHERENT;
> }
>
> - config_found_sm(self, &fa, NULL, simplebus_submatch);
> + config_found_sm(self, &fa, sc->sc_early ? NULL : simplebus_print,
> + simplebus_submatch);
>
> free(fa.fa_reg, M_DEVBUF, fa.fa_nreg * sizeof(struct fdt_reg));
> free(fa.fa_intr, M_DEVBUF, fa.fa_nintr * sizeof(uint32_t));
>
>
>