Hi,
@landonf reported that boot process of MIPS kernels are broken after rS326346. This commit moved domain iterators from physical layer to vm_page one, but it removed translation for vm_page_alloc_freelist() call. Before commit it expects VM_FREELIST_ parameter, but after commit it expects freelist index.
On small boxes with few MB of RAM, we have only VM_FREELIST_LOWMEM (1) and there is no VM_FREELIST_DEFAULT (0) (https://svnweb.freebsd.org/base/head/sys/mips/include/vmparam.h?revision=326023&view=markup#l163). It results in freelist 1 with flind 0. So boot hangs with output:
FreeBSD is a registered trademark of The FreeBSD Foundation. FreeBSD 12.0-CURRENT #3 7cf1f4b027f(user/mizhka/bcm-r326479)-dirty: Sun Dec 3 01:59:46 MSK 2017 mizhka@halloween:/repo/onion/obj/mipsel/repo/onion/src/mips.mipsel/sys/BCM mips gcc version 4.2.1 20070831 patched [FreeBSD] subsystem 1000000 vm_mem_init(0)... done. vm_page_init(0)... done. subsystem 1800000 sysctl_register_all(0)... done. mallocinit(0)... done.
Actually it's infinite loop inside uma_small_alloc in sys/mips/mips/uma_machdep.c . It tried to get page from empty freelist infinitely.