svn commit: r302853 - in head/sys/arm64: arm64 include
Andrew Turner
andrew at FreeBSD.org
Thu Jul 14 17:31:31 UTC 2016
Author: andrew
Date: Thu Jul 14 17:31:29 2016
New Revision: 302853
URL: https://svnweb.freebsd.org/changeset/base/302853
Log:
Finish removing the non-INTRNG support from sys/arm64.
Obtained from: ABT Systems Ltd
MFC after: 1 month
Sponsored by: The FreeBSD Foundation
Modified:
head/sys/arm64/arm64/autoconf.c
head/sys/arm64/arm64/mp_machdep.c
head/sys/arm64/arm64/nexus.c
head/sys/arm64/include/intr.h
Modified: head/sys/arm64/arm64/autoconf.c
==============================================================================
--- head/sys/arm64/arm64/autoconf.c Thu Jul 14 17:23:49 2016 (r302852)
+++ head/sys/arm64/arm64/autoconf.c Thu Jul 14 17:31:29 2016 (r302853)
@@ -81,12 +81,8 @@ static void
configure_final(void *dummy)
{
-#ifdef INTRNG
/* Enable interrupt reception on this CPU */
intr_enable();
-#else
- arm_enable_intr();
-#endif
cninit_finish();
if (bootverbose)
Modified: head/sys/arm64/arm64/mp_machdep.c
==============================================================================
--- head/sys/arm64/arm64/mp_machdep.c Thu Jul 14 17:23:49 2016 (r302852)
+++ head/sys/arm64/arm64/mp_machdep.c Thu Jul 14 17:31:29 2016 (r302853)
@@ -65,7 +65,6 @@ __FBSDID("$FreeBSD$");
#include <dev/psci/psci.h>
-#ifdef INTRNG
#include "pic_if.h"
typedef void intr_ipi_send_t(void *, cpuset_t, u_int);
@@ -86,7 +85,6 @@ static struct intr_ipi ipi_sources[INTR_
static struct intr_ipi *intr_ipi_lookup(u_int);
static void intr_pic_ipi_setup(u_int, const char *, intr_ipi_handler_t *,
void *);
-#endif /* INTRNG */
boolean_t ofw_cpu_reg(phandle_t node, u_int, cell_t *);
@@ -214,18 +212,12 @@ release_aps(void *dummy __unused)
{
int cpu, i;
-#ifdef INTRNG
intr_pic_ipi_setup(IPI_AST, "ast", ipi_ast, NULL);
intr_pic_ipi_setup(IPI_PREEMPT, "preempt", ipi_preempt, NULL);
intr_pic_ipi_setup(IPI_RENDEZVOUS, "rendezvous", ipi_rendezvous, NULL);
intr_pic_ipi_setup(IPI_STOP, "stop", ipi_stop, NULL);
intr_pic_ipi_setup(IPI_STOP_HARD, "stop hard", ipi_stop, NULL);
intr_pic_ipi_setup(IPI_HARDCLOCK, "hardclock", ipi_hardclock, NULL);
-#else
- /* Setup the IPI handler */
- for (i = 0; i < INTR_IPI_COUNT; i++)
- arm_setup_ipihandler(ipi_handler, i);
-#endif
atomic_store_rel_int(&aps_ready, 1);
/* Wake up the other CPUs */
@@ -253,9 +245,6 @@ void
init_secondary(uint64_t cpu)
{
struct pcpu *pcpup;
-#ifndef INTRNG
- int i;
-#endif
pcpup = &__pcpu[cpu];
/*
@@ -282,15 +271,7 @@ init_secondary(uint64_t cpu)
*/
identify_cpu();
-#ifdef INTRNG
intr_pic_init_secondary();
-#else
- /* Configure the interrupt controller */
- arm_init_secondary();
-
- for (i = 0; i < INTR_IPI_COUNT; i++)
- arm_unmask_ipi(i);
-#endif
/* Start per-CPU event timers. */
cpu_initclocks_ap();
@@ -322,7 +303,6 @@ init_secondary(uint64_t cpu)
/* NOTREACHED */
}
-#ifdef INTRNG
/*
* Send IPI thru interrupt controller.
*/
@@ -378,7 +358,6 @@ intr_ipi_send(cpuset_t cpus, u_int ipi)
ii->ii_send(ii->ii_send_arg, cpus, ipi);
}
-#endif
static void
ipi_ast(void *dummy __unused)
@@ -432,44 +411,6 @@ ipi_stop(void *dummy __unused)
CTR0(KTR_SMP, "IPI_STOP (restart)");
}
-#ifndef INTRNG
-static int
-ipi_handler(void *arg)
-{
- u_int cpu, ipi;
-
- arg = (void *)((uintptr_t)arg & ~(1 << 16));
- KASSERT((uintptr_t)arg < INTR_IPI_COUNT,
- ("Invalid IPI %ju", (uintptr_t)arg));
-
- cpu = PCPU_GET(cpuid);
- ipi = (uintptr_t)arg;
-
- switch(ipi) {
- case IPI_AST:
- ipi_ast(NULL);
- break;
- case IPI_PREEMPT:
- ipi_preempt(NULL);
- break;
- case IPI_RENDEZVOUS:
- ipi_rendezvous(NULL);
- break;
- case IPI_STOP:
- case IPI_STOP_HARD:
- ipi_stop(NULL);
- break;
- case IPI_HARDCLOCK:
- ipi_hardclock(NULL);
- break;
- default:
- panic("Unknown IPI %#0x on cpu %d", ipi, curcpu);
- }
-
- return (FILTER_HANDLED);
-}
-#endif
-
struct cpu_group *
cpu_topo(void)
{
@@ -624,7 +565,6 @@ cpu_mp_setmaxid(void)
mp_maxid = 0;
}
-#ifdef INTRNG
/*
* Lookup IPI source.
*/
@@ -768,4 +708,3 @@ ipi_selected(cpuset_t cpus, u_int ipi)
CTR2(KTR_SMP, "%s: ipi: %x", __func__, ipi);
intr_ipi_send(cpus, ipi);
}
-#endif /* INTRNG */
Modified: head/sys/arm64/arm64/nexus.c
==============================================================================
--- head/sys/arm64/arm64/nexus.c Thu Jul 14 17:23:49 2016 (r302852)
+++ head/sys/arm64/arm64/nexus.c Thu Jul 14 17:31:29 2016 (r302853)
@@ -271,13 +271,9 @@ nexus_config_intr(device_t dev, int irq,
enum intr_polarity pol)
{
-#ifdef INTRNG
/* TODO: This is wrong, it's needed for ACPI */
device_printf(dev, "bus_config_intr is obsolete and not supported!\n");
return (EOPNOTSUPP);
-#else
- return (intr_irq_config(irq, trig, pol));
-#endif
}
static int
@@ -294,12 +290,7 @@ nexus_setup_intr(device_t dev, device_t
if (error)
return (error);
-#ifdef INTRNG
error = intr_setup_irq(child, res, filt, intr, arg, flags, cookiep);
-#else
- error = arm_setup_intr(device_get_nameunit(child), filt, intr,
- arg, rman_get_start(res), flags, cookiep);
-#endif
return (error);
}
@@ -308,11 +299,7 @@ static int
nexus_teardown_intr(device_t dev, device_t child, struct resource *r, void *ih)
{
-#ifdef INTRNG
return (intr_teardown_irq(child, r, ih));
-#else
- return (intr_irq_remove_handler(child, rman_get_start(r), ih));
-#endif
}
#ifdef SMP
@@ -320,11 +307,7 @@ static int
nexus_bind_intr(device_t dev, device_t child, struct resource *irq, int cpu)
{
-#ifdef INTRNG
return (intr_bind_irq(child, irq, cpu));
-#else
- return (intr_irq_bind(rman_get_start(irq), cpu));
-#endif
}
#endif
@@ -447,22 +430,8 @@ static int
nexus_ofw_map_intr(device_t dev, device_t child, phandle_t iparent, int icells,
pcell_t *intr)
{
-#ifdef INTRNG
- return (INTR_IRQ_INVALID);
-#else
- int irq;
-
- if (icells == 3) {
- irq = intr[1];
- if (intr[0] == 0)
- irq += 32; /* SPI */
- else
- irq += 16; /* PPI */
- } else
- irq = intr[0];
- return (irq);
-#endif
+ return (INTR_IRQ_INVALID);
}
#endif
Modified: head/sys/arm64/include/intr.h
==============================================================================
--- head/sys/arm64/include/intr.h Thu Jul 14 17:23:49 2016 (r302852)
+++ head/sys/arm64/include/intr.h Thu Jul 14 17:31:29 2016 (r302853)
@@ -29,8 +29,6 @@
#ifndef _MACHINE_INTR_H_
#define _MACHINE_INTR_H_
-#ifdef INTRNG
-
#ifdef FDT
#include <dev/ofw/openfirm.h>
#endif
@@ -50,33 +48,4 @@ arm_irq_memory_barrier(uintptr_t irq)
void intr_ipi_dispatch(u_int, struct trapframe *);
#endif
-#else
-int intr_irq_config(u_int, enum intr_trigger, enum intr_polarity);
-void intr_irq_handler(struct trapframe *);
-int intr_irq_remove_handler(device_t, u_int, void *);
-
-void arm_dispatch_intr(u_int, struct trapframe *);
-int arm_enable_intr(void);
-void arm_mask_irq(u_int);
-void arm_register_root_pic(device_t, u_int);
-void arm_register_msi_pic(device_t);
-int arm_alloc_msi(device_t, device_t, int, int, int *);
-int arm_release_msi(device_t, device_t, int, int *);
-int arm_alloc_msix(device_t, device_t, int *);
-int arm_release_msix(device_t, device_t, int);
-int arm_map_msi(device_t, device_t, int, uint64_t *, uint32_t *);
-int arm_map_msix(device_t, device_t, int, uint64_t *, uint32_t *);
-int arm_setup_intr(const char *, driver_filter_t *, driver_intr_t,
- void *, u_int, enum intr_type, void **);
-void arm_unmask_irq(u_int);
-
-#ifdef SMP
-int intr_irq_bind(u_int, int);
-
-void arm_init_secondary(void);
-void arm_setup_ipihandler(driver_filter_t *, u_int);
-void arm_unmask_ipi(u_int);
-#endif
-#endif
-
#endif /* _MACHINE_INTR_H */
More information about the svn-src-all
mailing list