On Fri, Jun 22, 2018 at 03:30:03PM +0200, Paul de Weerd wrote:
> Hi all,
>
> Yesterday, I upgraded my GPD Win to the latest snap. I'm pretty sure
> I booted into it successfully, but can't be sure now that I'm running
> into this weird issue.
>
> Kernel starts booting, gives the 'root on sd0a (86ab0e9e00184c6c.a)
> swap on sd0b dump on sd0b' line and then nothing: init doesn't start,
> but there's also no panic for a missing init. Single user doesn't
> work (needs init, afaics), but boot bsd.rd and you can mount the root
> filesystem just fine.
>
> I did some fine printf debugging and found that init_main.c calls
> config_process_deferred_mountroot() from subr_autoconf.c but that
> never returns.
>
> Now this is a pretty short function, but its purpose is not quite
> clear to me. This is it (including the comment above it):
>
> /*
> * Process the deferred configuration queue after the root file
> * system is mounted .
> */
> void
> config_process_deferred_mountroot(void)
> {
> struct deferred_config *dc;
>
> while ((dc = TAILQ_FIRST(&mountroot_config_queue)) != NULL) {
> TAILQ_REMOVE(&mountroot_config_queue, dc, dc_queue);
> (*dc->dc_func)(dc->dc_dev);
> free(dc, M_DEVBUF, sizeof(*dc));
> }
> }
>
> Can someone suggest next steps to try to debug this? Or perhaps
> explain what the above function does? Perhaps I completely
> misunderstand the flow of the code involved...
>
> Last working dmesg from this machine is included below.
Just a guess, but it could be this driver:
> bwfm0 at pci1 dev 0 function 0 "Broadcom BCM4356" rev 0x02: msi
You could try chasing the problem into bwfm_attachhook() (if_bwfm_pci.c).