svn commit: r279305 - in head/sys: boot/fdt/dts/mips mips/nlm
Jayachandran C.
jchandra at FreeBSD.org
Thu Feb 26 02:05:47 UTC 2015
Author: jchandra
Date: Thu Feb 26 02:05:45 2015
New Revision: 279305
URL: https://svnweb.freebsd.org/changeset/base/279305
Log:
Add netlogic,xlp-pic as interrupt controller for XLP
Add an empty driver for netlogic,xlp-pic to ensure that the device tree
is correct and has an interrupt controller.
Modified:
head/sys/boot/fdt/dts/mips/xlp-basic.dts
head/sys/mips/nlm/intr_machdep.c
Modified: head/sys/boot/fdt/dts/mips/xlp-basic.dts
==============================================================================
--- head/sys/boot/fdt/dts/mips/xlp-basic.dts Thu Feb 26 01:53:24 2015 (r279304)
+++ head/sys/boot/fdt/dts/mips/xlp-basic.dts Thu Feb 26 02:05:45 2015 (r279305)
@@ -47,12 +47,21 @@
ranges = <0x0 0x18000000 0x04000000>;
bus-frequency = <0>;
+ pic: pic at 4000 {
+ compatible = "netlogic,xlp-pic";
+ interrupt-controller;
+ #address-cells = <0>;
+ #interrupt-cells = <1>;
+ reg = <0x4000 0x200>;
+ };
+
serial0: serial at 30100 {
compatible = "ns16550";
reg = <0x30100 0x200>;
reg-shift = <2>;
current-speed = <115200>;
clock-frequency = <133000000>;
+ interrupt-parent = <&pic>;
interrupts = <9>;
};
Modified: head/sys/mips/nlm/intr_machdep.c
==============================================================================
--- head/sys/mips/nlm/intr_machdep.c Thu Feb 26 01:53:24 2015 (r279304)
+++ head/sys/mips/nlm/intr_machdep.c Thu Feb 26 02:05:45 2015 (r279305)
@@ -35,6 +35,10 @@ __FBSDID("$FreeBSD$");
#include <sys/bus.h>
#include <sys/interrupt.h>
#include <sys/kernel.h>
+#include <sys/module.h>
+
+#include <dev/ofw/ofw_bus.h>
+#include <dev/ofw/ofw_bus_subr.h>
#include <machine/cpu.h>
#include <machine/cpufunc.h>
@@ -251,3 +255,39 @@ cpu_init_interrupts()
mips_intr_counters[i] = mips_intrcnt_create(name);
}
}
+
+static int xlp_pic_probe(device_t);
+static int xlp_pic_attach(device_t);
+
+static int
+xlp_pic_probe(device_t dev)
+{
+
+ if (!ofw_bus_is_compatible(dev, "netlogic,xlp-pic"))
+ return (ENXIO);
+ device_set_desc(dev, "XLP PIC");
+ return (0);
+}
+
+static int
+xlp_pic_attach(device_t dev)
+{
+
+ return (0);
+}
+
+static device_method_t xlp_pic_methods[] = {
+ DEVMETHOD(device_probe, xlp_pic_probe),
+ DEVMETHOD(device_attach, xlp_pic_attach),
+
+ DEVMETHOD_END
+};
+
+static driver_t xlp_pic_driver = {
+ "xlp_pic",
+ xlp_pic_methods,
+ 1, /* no softc */
+};
+
+static devclass_t xlp_pic_devclass;
+DRIVER_MODULE(xlp_pic, simplebus, xlp_pic_driver, xlp_pic_devclass, 0, 0);
More information about the svn-src-all
mailing list