summaryrefslogtreecommitdiffstats
path: root/sys/arch/arm/cortex/cortex.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/arch/arm/cortex/cortex.c')
-rw-r--r--sys/arch/arm/cortex/cortex.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/sys/arch/arm/cortex/cortex.c b/sys/arch/arm/cortex/cortex.c
index 73aa315a757..913feb7963c 100644
--- a/sys/arch/arm/cortex/cortex.c
+++ b/sys/arch/arm/cortex/cortex.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: cortex.c,v 1.3 2015/05/29 05:48:07 jsg Exp $ */
+/* $OpenBSD: cortex.c,v 1.4 2016/04/08 12:08:54 patrick Exp $ */
/* $NetBSD: mainbus.c,v 1.3 2001/06/13 17:52:43 nathanw Exp $ */
/*
@@ -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 ||