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;
};