Module Name:    src
Committed By:   jmcneill
Date:           Mon Aug 17 21:25:12 UTC 2020

Modified Files:
        src/sys/arch/mips/cavium: mainbus.c octeon1p_iobus.c octeon_iobus.c
        src/sys/arch/mips/cavium/include: iobusvar.h

Log Message:
Attach an iobus with octrnm even if using devicetree (there is no
corresponding node for this device in the DT).


To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 src/sys/arch/mips/cavium/mainbus.c
cvs rdiff -u -r1.5 -r1.6 src/sys/arch/mips/cavium/octeon1p_iobus.c
cvs rdiff -u -r1.4 -r1.5 src/sys/arch/mips/cavium/octeon_iobus.c
cvs rdiff -u -r1.1 -r1.2 src/sys/arch/mips/cavium/include/iobusvar.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/arch/mips/cavium/mainbus.c
diff -u src/sys/arch/mips/cavium/mainbus.c:1.3 src/sys/arch/mips/cavium/mainbus.c:1.4
--- src/sys/arch/mips/cavium/mainbus.c:1.3	Thu Jul 16 16:40:28 2020
+++ src/sys/arch/mips/cavium/mainbus.c	Mon Aug 17 21:25:12 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: mainbus.c,v 1.3 2020/07/16 16:40:28 jmcneill Exp $	*/
+/*	$NetBSD: mainbus.c,v 1.4 2020/08/17 21:25:12 jmcneill Exp $	*/
 
 /*
  * Copyright (c) 2007
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: mainbus.c,v 1.3 2020/07/16 16:40:28 jmcneill Exp $");
+__KERNEL_RCSID(0, "$NetBSD: mainbus.c,v 1.4 2020/08/17 21:25:12 jmcneill Exp $");
 
 #define	_MIPS_BUS_DMA_PRIVATE
 
@@ -118,6 +118,10 @@ mainbus_attach_devicetree(device_t self)
 	config_found_sm_loc(self, "mainbus", NULL, &aa, mainbus_print,
 	    mainbus_submatch);
 
+	aa.aa_name = "iobus";
+	config_found_sm_loc(self, "mainbus", NULL, &aa, mainbus_print,
+	    mainbus_submatch);
+
 	octpow_bootstrap(&octeon_configuration);
 	octfpa_bootstrap(&octeon_configuration);
 

Index: src/sys/arch/mips/cavium/octeon1p_iobus.c
diff -u src/sys/arch/mips/cavium/octeon1p_iobus.c:1.5 src/sys/arch/mips/cavium/octeon1p_iobus.c:1.6
--- src/sys/arch/mips/cavium/octeon1p_iobus.c:1.5	Tue Jun 23 05:18:02 2020
+++ src/sys/arch/mips/cavium/octeon1p_iobus.c	Mon Aug 17 21:25:12 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: octeon1p_iobus.c,v 1.5 2020/06/23 05:18:02 simonb Exp $	*/
+/*	$NetBSD: octeon1p_iobus.c,v 1.6 2020/08/17 21:25:12 jmcneill Exp $	*/
 
 /*
  * Copyright (c) 2007 Internet Initiative Japan, Inc.
@@ -31,7 +31,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: octeon1p_iobus.c,v 1.5 2020/06/23 05:18:02 simonb Exp $");
+__KERNEL_RCSID(0, "$NetBSD: octeon1p_iobus.c,v 1.6 2020/08/17 21:25:12 jmcneill Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -67,6 +67,7 @@ static const struct iobus_unit iobus_uni
 
 static const struct iobus_dev iobus_dev_octrnm = {
 	.name = "octrnm",
+	.flags = IOBUS_DEV_FDT,
 	.nunits = RNM_NUNITS,
 	.units = iobus_units_octrnm
 };

Index: src/sys/arch/mips/cavium/octeon_iobus.c
diff -u src/sys/arch/mips/cavium/octeon_iobus.c:1.4 src/sys/arch/mips/cavium/octeon_iobus.c:1.5
--- src/sys/arch/mips/cavium/octeon_iobus.c:1.4	Tue Jun 23 05:14:18 2020
+++ src/sys/arch/mips/cavium/octeon_iobus.c	Mon Aug 17 21:25:12 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: octeon_iobus.c,v 1.4 2020/06/23 05:14:18 simonb Exp $	*/
+/*	$NetBSD: octeon_iobus.c,v 1.5 2020/08/17 21:25:12 jmcneill Exp $	*/
 
 /*
  * Copyright (c) 2007
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: octeon_iobus.c,v 1.4 2020/06/23 05:14:18 simonb Exp $");
+__KERNEL_RCSID(0, "$NetBSD: octeon_iobus.c,v 1.5 2020/08/17 21:25:12 jmcneill Exp $");
 
 #include "locators.h"
 
@@ -40,6 +40,8 @@ __KERNEL_RCSID(0, "$NetBSD: octeon_iobus
 
 #include <mips/cavium/include/iobusvar.h>
 
+#include <dev/fdt/fdtvar.h>
+
 struct iobus_softc {
 	device_t		sc_dev;
 
@@ -88,6 +90,7 @@ iobus_attach(device_t parent, device_t s
 	struct iobus_softc *sc = device_private(self);
 	const struct iobus_dev *dev;
 	struct iobus_attach_args aa;
+	const bool fdt_p = fdtbus_get_data() != NULL;
 	int i, j;
 
 	sc->sc_dev = self;
@@ -100,6 +103,9 @@ iobus_attach(device_t parent, device_t s
 	for (i = 0; i < (int)iobus_ndevs; i++) {
 		dev = iobus_devs[i];
 		for (j = 0; j < dev->nunits; j++) {
+			if (fdt_p && (dev->flags & IOBUS_DEV_FDT) == 0)
+				continue;
+
 			aa.aa_name = dev->name;
 			aa.aa_unitno = j;
 			aa.aa_unit = &dev->units[j];

Index: src/sys/arch/mips/cavium/include/iobusvar.h
diff -u src/sys/arch/mips/cavium/include/iobusvar.h:1.1 src/sys/arch/mips/cavium/include/iobusvar.h:1.2
--- src/sys/arch/mips/cavium/include/iobusvar.h:1.1	Wed Apr 29 08:32:01 2015
+++ src/sys/arch/mips/cavium/include/iobusvar.h	Mon Aug 17 21:25:12 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: iobusvar.h,v 1.1 2015/04/29 08:32:01 hikaru Exp $	*/
+/*	$NetBSD: iobusvar.h,v 1.2 2020/08/17 21:25:12 jmcneill Exp $	*/
 
 /*
  * Copyright (c) 2007
@@ -43,6 +43,8 @@ struct iobus_unit {
 
 struct iobus_dev {
 	const char	*name;
+	int		flags;
+#define	IOBUS_DEV_FDT	0x01
 	int		nunits;
 	const struct iobus_unit *units;
 };

Reply via email to