Hi, with the feedback received on the fdt bus, the fdt stuff will now be replacing the mainbus. While doing that I noticed that the cortex bus matches every time on config_found, which is because it doesn't check the attach args.
ok? Patrick diff --git sys/arch/arm/cortex/cortex.c sys/arch/arm/cortex/cortex.c index 73aa315..db878b7 100644 --- sys/arch/arm/cortex/cortex.c +++ sys/arch/arm/cortex/cortex.c @@ -51,6 +51,7 @@ #include <arm/cpufunc.h> #include <arm/armv7/armv7var.h> #include <arm/cortex/cortex.h> +#include <arm/mainbus/mainbus.h> struct arm32_bus_dma_tag cortex_bus_dma_tag = { 0, @@ -94,10 +95,15 @@ struct cfdriver cortex_cd = { */ int -cortexmatch(struct device *parent, void *cf, void *aux) +cortexmatch(struct device *parent, void *cfdata, void *aux) { + struct mainbus_attach_args *ma = aux; + struct cfdata *cf = (struct cfdata *)cfdata; int cputype = cpufunc_id(); + if (strcmp(cf->cf_driver->cd_name, ma->ma_name) != 0) + return (0); + if ((cputype & CPU_ID_CORTEX_A7_MASK) == CPU_ID_CORTEX_A7 || (cputype & CPU_ID_CORTEX_A9_MASK) == CPU_ID_CORTEX_A9 || (cputype & CPU_ID_CORTEX_A15_MASK) == CPU_ID_CORTEX_A15 ||