Index: sys/boot/fdt/dts/arm/armada-388-gp.dts =================================================================== --- sys/boot/fdt/dts/arm/armada-388-gp.dts +++ sys/boot/fdt/dts/arm/armada-388-gp.dts @@ -59,10 +59,11 @@ }; soc { - ranges = ; + ranges = <0 0 0xf1000000 0x100000>; internal-regs { + ranges; + spi@10600 { pinctrl-names = "default"; pinctrl-0 = <&spi0_pins>; Index: sys/dev/fdt/fdt_common.c =================================================================== --- sys/dev/fdt/fdt_common.c +++ sys/dev/fdt/fdt_common.c @@ -212,7 +212,7 @@ * Try to access the SOC node directly i.e. through /aliases/. */ if ((node = OF_finddevice("soc")) != 0) - if (fdt_is_compatible_strict(node, "simple-bus")) + if (fdt_is_compatible(node, "simple-bus")) goto moveon; /* * Find the node the long way. @@ -220,7 +220,7 @@ if ((node = OF_finddevice("/")) == 0) return (ENXIO); - if ((node = fdt_find_compatible(node, "simple-bus", 1)) == 0) + if ((node = fdt_find_compatible(node, "simple-bus", 0)) == 0) return (ENXIO); moveon: