> On 2 Jan 2019, at 21:16, Mark Kettenis <[email protected]> wrote:
>
>> 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 ;).
I say be proud and let it hang out ;)
>
> 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?
My build box was still somewhere in 6.3, so it's likely support was added after
I checked out the code. I'm upgrading it now.
After installing a snap I get:
ampintcmsi0 at ampintc0: nspi 256
>> "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.
When you say "knock out" do you mean blacklist matching on them, or to knock
out a small driver to implement the functionality?
>
>> "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));
>>
>>
>>