summaryrefslogtreecommitdiffstats
path: root/sys/mips
diff options
context:
space:
mode:
authorian <ian@FreeBSD.org>2014-05-15 17:30:16 +0000
committerian <ian@FreeBSD.org>2014-05-15 17:30:16 +0000
commit1e3130abad8238f721742fec6f1344d69dfc799a (patch)
tree02c63d840ed8c9a1ca98f1fd2391c32f3d2be191 /sys/mips
parentfa992863d2953ae935e914366aeafac44ad9d005 (diff)
downloadFreeBSD-src-1e3130abad8238f721742fec6f1344d69dfc799a.zip
FreeBSD-src-1e3130abad8238f721742fec6f1344d69dfc799a.tar.gz
MFC r261423, r261424, r261516, r261513, r261562, r261563, r261564, r261565,
r261596, r261606 Add the imx sdhci controller. Move Open Firmware device root on PowerPC, ARM, and MIPS systems to a sub-node of nexus (ofwbus) rather than direct attach under nexus. This fixes FDT on x86 and will make coexistence with ACPI on ARM systems easier. SPARC is unchanged. Add the missing ')' at end of sentence. Reword it to use a more common idiom. Pass the kernel physical address to initarm through the boot param struct. Make functions only used in vfp.c static, and remove vfp_enable. Fix __syscall on armeb EABI. As it returns a 64-bit value it needs to place 32-bit data in r1, not r0. 64-bit data is already packed correctly. Use abp_physaddr for the physical address over KERNPHYSADDR. This helps us remove the need to load the kernel at a fixed address. Remove references to PHYSADDR where it's used only in debugging output. Dynamically generate the page table. This will allow us to detect the physical address we are loaded at to change the mapping.
Diffstat (limited to 'sys/mips')
-rw-r--r--sys/mips/beri/beri_simplebus.c2
-rw-r--r--sys/mips/mips/nexus.c15
2 files changed, 1 insertions, 16 deletions
diff --git a/sys/mips/beri/beri_simplebus.c b/sys/mips/beri/beri_simplebus.c
index 55b3149..934a395 100644
--- a/sys/mips/beri/beri_simplebus.c
+++ b/sys/mips/beri/beri_simplebus.c
@@ -136,7 +136,7 @@ static driver_t simplebus_driver = {
devclass_t simplebus_devclass;
-DRIVER_MODULE(simplebus, nexus, simplebus_driver, simplebus_devclass, 0, 0);
+DRIVER_MODULE(simplebus, ofwbus, simplebus_driver, simplebus_devclass, 0, 0);
DRIVER_MODULE(simplebus, simplebus, simplebus_driver, simplebus_devclass, 0,
0);
diff --git a/sys/mips/mips/nexus.c b/sys/mips/mips/nexus.c
index ecf315d..06c0317 100644
--- a/sys/mips/mips/nexus.c
+++ b/sys/mips/mips/nexus.c
@@ -60,10 +60,6 @@ __FBSDID("$FreeBSD$");
#include "opt_platform.h"
-#ifdef FDT
-#include <dev/ofw/ofw_nexus.h>
-#endif
-
#undef NEXUS_DEBUG
#ifdef NEXUS_DEBUG
#define dprintf printf
@@ -73,7 +69,6 @@ __FBSDID("$FreeBSD$");
#define NUM_MIPS_IRQS 6
-#ifndef FDT
static MALLOC_DEFINE(M_NEXUSDEV, "nexusdev", "Nexus device");
struct nexus_device {
@@ -102,7 +97,6 @@ static int nexus_release_resource(device_t, device_t, int, int,
struct resource *);
static int nexus_set_resource(device_t, device_t, int, int, u_long,
u_long);
-#endif
static int nexus_activate_resource(device_t, device_t, int, int,
struct resource *);
static int nexus_deactivate_resource(device_t, device_t, int, int,
@@ -115,7 +109,6 @@ static int nexus_teardown_intr(device_t, device_t, struct resource *,
void *);
static device_method_t nexus_methods[] = {
-#ifndef FDT
/* Device interface */
DEVMETHOD(device_probe, nexus_probe),
DEVMETHOD(device_attach, nexus_attach),
@@ -129,7 +122,6 @@ static device_method_t nexus_methods[] = {
DEVMETHOD(bus_print_child, nexus_print_child),
DEVMETHOD(bus_release_resource, nexus_release_resource),
DEVMETHOD(bus_set_resource, nexus_set_resource),
-#endif
DEVMETHOD(bus_setup_intr, nexus_setup_intr),
DEVMETHOD(bus_teardown_intr, nexus_teardown_intr),
DEVMETHOD(bus_activate_resource,nexus_activate_resource),
@@ -139,19 +131,13 @@ static device_method_t nexus_methods[] = {
{ 0, 0 }
};
-#ifndef FDT
static driver_t nexus_driver = {
"nexus",
nexus_methods,
1 /* no softc */
};
-#else
-DEFINE_CLASS_1(nexus, nexus_driver, nexus_methods,
- sizeof(struct ofw_nexus_softc), ofw_nexus_driver);
-#endif
static devclass_t nexus_devclass;
-#ifndef FDT
static int
nexus_probe(device_t dev)
{
@@ -387,7 +373,6 @@ nexus_release_resource(device_t bus, device_t child, int type, int rid,
return (rman_release_resource(r));
}
-#endif
static int
nexus_activate_resource(device_t bus, device_t child, int type, int rid,
OpenPOWER on IntegriCloud