riscv: Small fix to CPU compatibility identification

fdt_is_compatible_strict() inspects the first compatible property.
We need to inspect the following properties for 'riscv'.
ofw_bus_node_is_compatible() does a recursive search.

This patch fixes "Can't find CPU" error message when bootverbose = true.

Submitted by:	Nicholas O'Brien (nickisobrien_gmail.com)
Reviewed by:	philip, kp
Sponsored by:	Axiado
Differential Revision:	https://reviews.freebsd.org/D21576
This commit is contained in:
kp 2019-09-11 16:16:53 +00:00
parent 3b394da7e2
commit 68aace5a8d

View File

@ -141,7 +141,7 @@ fill_elf_hwcap(void *dummy __unused)
* ISAs, keep only the extension bits that are common to all harts.
*/
for (node = OF_child(node); node > 0; node = OF_peer(node)) {
if (!fdt_is_compatible_strict(node, "riscv")) {
if (!ofw_bus_node_is_compatible(node, "riscv")) {
if (bootverbose)
printf("fill_elf_hwcap: Can't find cpu\n");
return;