Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F166761928
D6897.id17704.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
38 KB
Referenced Files
None
Subscribers
None
D6897.id17704.diff
View Options
Index: sys/mips/broadcom/bcm_machdep.c
===================================================================
--- sys/mips/broadcom/bcm_machdep.c
+++ sys/mips/broadcom/bcm_machdep.c
@@ -71,17 +71,12 @@
#include <machine/trap.h>
#include <machine/vmparam.h>
-#include <mips/sentry5/s5reg.h>
#include "bcm_socinfo.h"
#ifdef CFE
#include <dev/cfe/cfe_api.h>
#endif
-#if 0
-#define BROADCOM_TRACE 0
-#endif
-
extern int *edata;
extern int *end;
@@ -109,18 +104,11 @@
result = cfe_enummem(i / 2, 0, &addr, &len, &type);
if (result < 0) {
-#ifdef BROADCOM_TRACE
- printf("There is no phys memory for: %d\n", i);
-#endif
phys_avail[i] = phys_avail[i + 1] = 0;
break;
}
- if (type != CFE_MI_AVAILABLE){
-#ifdef BROADCOM_TRACE
- printf("phys memory is not available: %d\n", i);
-#endif
+ if (type != CFE_MI_AVAILABLE)
continue;
- }
phys_avail[i] = addr;
if (i == 0 && addr == 0) {
@@ -131,19 +119,10 @@
*/
phys_avail[i] += MIPS_KSEG0_TO_PHYS(kernel_kseg0_end);
}
-#ifdef BROADCOM_TRACE
- printf("phys memory is available for: %d\n", i);
- printf(" => addr = %jx\n", addr);
- printf(" => len = %jd\n", len);
-#endif
phys_avail[i + 1] = addr + len;
physmem += len;
}
-#ifdef BROADCOM_TRACE
- printf("Total phys memory is : %ld\n", physmem);
-#endif
-
realmem = btoc(physmem);
#endif
@@ -165,15 +144,21 @@
#endif
}
-#define BCM_REG_CHIPC 0x18000000
-
-
void
platform_reset(void)
{
printf("bcm::platform_reset()\n");
intr_disable();
+
+#if defined(CFE)
+ cfe_exit(0, 0);
+#else
BCM_WRITE_REG32(BCM_REG_CHIPC_PMUWD_OFFS, 2); /* PMU watchdog */
+
+ // TODO: non-PMU reset
+ // *((volatile uint8_t *)MIPS_PHYS_TO_KSEG1(SENTRY5_EXTIFADR)) = 0x80;
+#endif
+
for (;;);
}
@@ -194,6 +179,37 @@
/* Initialize pcpu stuff */
mips_pcpu0_init();
+#if 0
+ /*
+ * Probe the Broadcom on-chip PLL clock registers
+ * and discover the CPU pipeline clock and bus clock
+ * multipliers from this.
+ * XXX: Wrong place. You have to ask the ChipCommon
+ * or External Interface cores on the SiBa.
+ */
+ uint32_t busmult, cpumult, refclock, clkcfg1;
+#define S5_CLKCFG1_REFCLOCK_MASK 0x0000001F
+#define S5_CLKCFG1_BUSMULT_MASK 0x000003E0
+#define S5_CLKCFG1_BUSMULT_SHIFT 5
+#define S5_CLKCFG1_CPUMULT_MASK 0xFFFFFC00
+#define S5_CLKCFG1_CPUMULT_SHIFT 10
+
+ counter_freq = 100000000; /* XXX */
+
+ clkcfg1 = s5_rd_clkcfg1();
+ printf("clkcfg1 = 0x%08x\n", clkcfg1);
+
+ refclock = clkcfg1 & 0x1F;
+ busmult = ((clkcfg1 & 0x000003E0) >> 5) + 1;
+ cpumult = ((clkcfg1 & 0xFFFFFC00) >> 10) + 1;
+
+ printf("refclock = %u\n", refclock);
+ printf("busmult = %u\n", busmult);
+ printf("cpumult = %u\n", cpumult);
+
+ counter_freq = cpumult * refclock;
+#endif
+
socinfo = bcm_get_socinfo();
platform_counter_freq = socinfo->cpurate * 1000 * 1000; /* BCM4718 is 480MHz */
@@ -212,10 +228,10 @@
if (a3 == CFE_EPTSEAL)
cfe_init(a0, a2);
#endif
+
cninit();
mips_init();
- /* BCM471x timer is 1/2 of Clk */
- mips_timer_init_params(platform_counter_freq, 1);
+ mips_timer_init_params(platform_counter_freq, socinfo->double_count);
}
Index: sys/mips/broadcom/bcm_socinfo.h
===================================================================
--- sys/mips/broadcom/bcm_socinfo.h
+++ sys/mips/broadcom/bcm_socinfo.h
@@ -35,9 +35,10 @@
#include <machine/cpuregs.h>
struct bcm_socinfo {
- uint32_t id;
- uint32_t cpurate; /* in MHz */
- uint32_t uartrate; /* in Hz */
+ uint32_t id;
+ uint32_t cpurate; /* in MHz */
+ uint32_t uartrate; /* in Hz */
+ int double_count;
};
struct bcm_socinfo* bcm_get_socinfo_by_socid(uint32_t key);
Index: sys/mips/broadcom/bcm_socinfo.c
===================================================================
--- sys/mips/broadcom/bcm_socinfo.c
+++ sys/mips/broadcom/bcm_socinfo.c
@@ -33,22 +33,23 @@
/* found on https://wireless.wiki.kernel.org/en/users/drivers/b43/soc */
struct bcm_socinfo bcm_socinfos[] = {
- {0x00005300, 600, 25000000}, /* BCM4706 to check */
- {0x0022B83A, 300, 20000000}, /* BCM4716B0 ASUS RT-N12 */
- {0x00914716, 354, 20000000}, /* BCM4717A1 to check */
- {0x00A14716, 480, 20000000}, /* BCM4718A1 ASUS RT-N16 */
- {0x00435356, 300, 25000000}, /* BCM5356A1 (RT-N10, WNR1000v3) */
- {0x00825357, 500, 20000000}, /* BCM5358UB0 ASUS RT-N53A1 */
- {0x00845357, 300, 20000000}, /* BCM5357B0 to check */
- {0x00945357, 500, 20000000}, /* BCM5358 */
- {0x00A45357, 500, 20000000}, /* BCM47186B0 Tenda N60 */
- {0x0085D144, 300, 20000000}, /* BCM5356C0 */
- {0x00B5D144, 300, 20000000}, /* BCM5357C0 */
+ {0x00005300, 600, 25000000, 1}, /* BCM4706 to check */
+ {0x0022B83A, 300, 20000000, 1}, /* BCM4716B0 ASUS RT-N12 */
+ {0x00914716, 354, 20000000, 1}, /* BCM4717A1 to check */
+ {0x00A14716, 480, 20000000, 1}, /* BCM4718A1 ASUS RT-N16 */
+ {0x00435356, 300, 25000000, 1}, /* BCM5356A1 (RT-N10, WNR1000v3) */
+ {0x00825357, 500, 20000000, 1}, /* BCM5358UB0 ASUS RT-N53A1 */
+ {0x00845357, 300, 20000000, 1}, /* BCM5357B0 to check */
+ {0x00945357, 500, 20000000, 1}, /* BCM5358 */
+ {0x00A45357, 500, 20000000, 1}, /* BCM47186B0 Tenda N60 */
+ {0x0085D144, 300, 20000000, 1}, /* BCM5356C0 */
+ {0x00B5D144, 300, 20000000, 1}, /* BCM5357C0 */
+ {0x00015365, 200, 0, 1}, /* BCM5365 */
{0,0,0}
};
/* Most popular BCM SoC info */
-struct bcm_socinfo BCM_DEFAULT_SOCINFO = {0x0, 300, 20000000};
+struct bcm_socinfo BCM_DEFAULT_SOCINFO = {0x0, 300, 20000000, 0};
struct bcm_socinfo*
bcm_get_socinfo_by_socid(uint32_t key)
Index: sys/mips/broadcom/std.broadcom
===================================================================
--- sys/mips/broadcom/std.broadcom
+++ sys/mips/broadcom/std.broadcom
@@ -3,5 +3,4 @@
machine mips mipsel
-cpu CPU_MIPS74K
files "../broadcom/files.broadcom"
Index: sys/mips/broadcom/uart_cpu_chipc.c
===================================================================
--- sys/mips/broadcom/uart_cpu_chipc.c
+++ sys/mips/broadcom/uart_cpu_chipc.c
@@ -59,20 +59,53 @@
{
struct uart_class *class;
struct bcm_socinfo *socinfo;
+ int ivar, maddr;
- socinfo = bcm_get_socinfo();
class = &uart_ns8250_class;
- di->ops = uart_getops(class);
- di->bas.chan = 0;
- di->bas.bst = mips_bus_space_generic;
- di->bas.bsh = (bus_space_handle_t)BCM_SOCREG(BCM_REG_CHIPC_UART);
- di->bas.regshft = 0;
- di->bas.rclk = socinfo->uartrate; /* in Hz */
- di->baudrate = 115200;
- di->databits = 8;
- di->stopbits = 1;
- di->parity = UART_PARITY_NONE;
uart_bus_space_io = NULL;
uart_bus_space_mem = mips_bus_space_generic;
- return (0);
+
+ /* Check the environment. */
+ if (uart_getenv(devtype, di, class) == 0)
+ return (0);
+
+ /* Scan the device hints for the first matching device */
+ for (int i = 0; i < 3; i++) { // TODO: Fetch max uart from chipc
+ if (resource_int_value("uart", i, "flags", &ivar))
+ continue;
+
+ /* Check usability */
+ if (devtype == UART_DEV_CONSOLE && !UART_FLAGS_CONSOLE(ivar))
+ continue;
+
+ if (devtype == UART_DEV_DBGPORT && !UART_FLAGS_DBGPORT(ivar))
+ continue;
+
+ if (resource_int_value("uart", i, "disabled", &ivar) == 0 &&
+ ivar == 0)
+ continue;
+
+ if (resource_int_value("uart", i, "maddr", &maddr) != 0 ||
+ maddr == 0)
+ continue;
+
+ /* Found */
+ socinfo = bcm_get_socinfo();
+ di->ops = uart_getops(class);
+ di->bas.chan = 0;
+ di->bas.bst = uart_bus_space_mem;
+ di->bas.bsh = (bus_space_handle_t)MIPS_PHYS_TO_KSEG1(maddr);
+ di->bas.regshft = 0;
+ di->bas.rclk = socinfo->uartrate; /* in Hz */
+ if (resource_int_value("uart", i, "baud", &ivar) != 0)
+ ivar = 115200;
+ di->baudrate = ivar;
+ di->databits = 8;
+ di->stopbits = 1;
+ di->parity = UART_PARITY_NONE;
+
+ return (0);
+ }
+
+ return (ENXIO);
}
Index: sys/mips/conf/BCM47XX
===================================================================
--- /dev/null
+++ sys/mips/conf/BCM47XX
@@ -0,0 +1,38 @@
+#
+# BCM47xx - Generic kernel configuration file for FreeBSD/MIPS on Broadcom 47xx
+# SoCs.
+#
+# $FreeBSD$
+#
+
+# Include the default BCM parameters
+include "BCM_BASE"
+
+ident BCM47xx
+cpu CPU_MIPS74K
+makeoptions TRAMPLOADADDR=0x80800000
+
+# Override hints with bcm47xx values
+hints "BCM47XX.hints"
+
+# The 47xx devices shipped with both bcma(4) and siba(4)-based interconnects
+device bcma # 47xx bcma(4) devices
+device bcma_nexus
+device siba
+device siba_nexus
+
+device bhnd_pcib # Broadcom PCI/PCIe core
+#device bhnd_pci2b # Broadcom PCIe-G2 core - not yet
+
+#device bgmac # Broadcom GMAC - not yet
+
+# switch support
+device mdio
+
+# flash
+device spibus # Serial Flash
+device mx25l
+
+device cfi # Parallel Flash
+device cfid
+
Index: sys/mips/conf/BCM47XX.hints
===================================================================
--- /dev/null
+++ sys/mips/conf/BCM47XX.hints
@@ -0,0 +1,6 @@
+# $FreeBSD$
+
+# uart0 console
+hint.uart.0.flags="0x10"
+hint.uart.0.maddr="0x18000300"
+hint.uart.0.size="0x100"
Index: sys/mips/conf/BCM_BASE
===================================================================
--- sys/mips/conf/BCM_BASE
+++ sys/mips/conf/BCM_BASE
@@ -1,13 +1,19 @@
#
-# $FreeBSD$
+# BCM_BASE -- Kernel configuration base file for the 47xx/53xx/63xx family
+# of Broadcom SoCs using a bhnd(4)-compatible bus interconnect.
+#
+# This file (and the hints file accompanying it) are not designed to be
+# used by themselves. Instead, users of this file should create a kernel
+# config file which includes this file (which gets the basic hints), then
+# override the default options (adding devices as needed) and adding
+# hints as needed.
#
-# The Broadcom 470x/471x/535x series of processors and boards is very commonly
-# used in COTS hardware including the ASUS RT-N12, RT-N16, RT-N53.
+# $FreeBSD$
#
-ident BCM
+ident BCM_BASE
-hints "BCM.hints"
+hints "BCM_BASE.hints"
include "../broadcom/std.broadcom"
# ships with cfe firmware
@@ -19,7 +25,6 @@
makeoptions INTRNG
options INTRNG
-makeoptions TRAMPLOADADDR=0x80800000
makeoptions DEBUG="-g3" #Build kernel with gdb(1) debug symbols
makeoptions MODULES_OVERRIDE=""
@@ -40,9 +45,9 @@
device geom_uzip
options GEOM_UZIP
-options GEOM_LABEL # Providers labelization.
+options GEOM_LABEL # Providers labelization.
options ROOTDEVNAME=\"ufs:ufs/FBSD\" # assumes FW built by
- # freebsd-build-wifi
+ # freebsd-build-wifi
# Debugging for use in -current
#options DEADLKRES
@@ -52,49 +57,36 @@
#options BHND_LOGLEVEL=BHND_DEBUG_LEVEL
#options BUS_DEBUG
#makeoptions BUS_DEBUG
-#options VERBOSE_SYSINIT
-#makeoptions VERBOSE_SYSINIT
+
+# PMC
+#options HWPMC_HOOKS
+#device hwpmc
+#device hwpmc_mips24k
# bhnd(4)
device bhnd
-device bcma # bcma backplane
-device bcma_nexus
-
-device pci
-device bhnd_pcib # PCIe-G1 core
-
-#device bgmac # Broadcom GMAC - not yet
-device mdio
+# wireless
+options IEEE80211_DEBUG
+options IEEE80211_SUPPORT_MESH
+options IEEE80211_SUPPORT_TDMA
+options IEEE80211_SUPPORT_SUPERG
+options IEEE80211_ALQ # 802.11 ALQ logging support
+options ALQ
+device wlan # 802.11 support
+device wlan_wep # 802.11 WEP support
+device wlan_ccmp # 802.11 CCMP support
+device wlan_tkip # 802.11 TKIP support
+device wlan_xauth # 802.11 hostap support
+
+options USB_DEBUG # enable debug msgs
+device usb # USB Bus (required)
+device uhci # UHCI PCI->USB interface
+device ehci # EHCI PCI->USB interface (USB 2.0)
-#Flash
-device spibus
-device mx25l # Serial Flash
-device cfi # Parallel Flash
-device cfid
-
-#UART
device uart
-#Base
device loop
device ether
device random
device md
-
-#Performance
-#options HWPMC_HOOKS
-#device hwpmc
-#device hwpmc_mips74k
-
-#Ethernet
-# device bfe # XXX will build both pci and siba
-device miibus # attachments
-
-# pci devices
-
-# USB is not yet ready
-#options USB_DEBUG # enable debug msgs
-#device usb # USB Bus (required)
-#device uhci # UHCI PCI->USB interface
-#device ehci # EHCI PCI->USB interface (USB 2.0)
Index: sys/mips/conf/BCM_BASE.hints
===================================================================
--- sys/mips/conf/BCM_BASE.hints
+++ sys/mips/conf/BCM_BASE.hints
@@ -2,4 +2,3 @@
hint.bhnd.0.at="nexus0"
hint.bhnd.0.maddr="0x18000000"
hint.bhnd.0.msize="0x00100000"
-
Index: sys/mips/conf/SENTRY5
===================================================================
--- sys/mips/conf/SENTRY5
+++ sys/mips/conf/SENTRY5
@@ -1,89 +1,41 @@
#
-# $FreeBSD$
-#
-# The Broadcom Sentry5 series of processors and boards is very commonly
-# used in COTS hardware including the Netgear WGT634U.
-#
-# Some tweaks are needed for use with this platform:
-#
-# * CFE firmware's ELF loader expects an ELF kernel which is linked so as
-# not to contain offsets in PT_LOAD which point behind the actual offset
-# of that PT header. FreeBSD normally links the first PT_LOAD header to
-# begin at offset 0.
-#
-# * Broadcom's support package for the internal bus, the Sonics
-# SiliconBackplane, needs to be integrated to detect and probe hardware
-# correctly.
+# BCM_SENTRY5 - Generic kernel configuration file for FreeBSD/MIPS on Broadcom
+# Sentry5 SoCs.
#
-# * The clock needs to be calibrated correctly, so that DELAY() may work.
-# One problem with this is that the low-level printf() routine calls DELAY(),
-# which currently causes divide-by-zero trap
+# The Sentry5 series of SoCs is commonly found in COTS hardware such as the
+# Netgear WGT634U.
#
-# * The Broadcom CPUs have no FPU. Attempting to detect one by reading CP1's
-# status register causes an unhandled boot-time exception. An FPU emulator
-# will be necessary to support multi-user boot.
+# $FreeBSD$
#
+# Include the default BCM parameters
+include "BCM_BASE"
+
ident SENTRY5
+cpu CPU_MIPS4KC
+options CPU_SENTRY5 # XXX should this be a
+ # sub-cpu option?
+makeoptions TRAMPLOADADDR=0x807963c0
-# XXX only siba should be hardwired for now; we will use
-# bus enumeration there
+# Override hints with board values
hints "SENTRY5.hints"
-include "../sentry5/std.sentry5"
-
-# sentry5 normally ships with cfe firmware; use the console for now
-options CFE
-options CFE_CONSOLE
-options ALT_BREAK_TO_DEBUGGER
-
-makeoptions DEBUG=-g #Build kernel with gdb(1) debug symbols
-makeoptions MODULES_OVERRIDE=""
-options DDB
-options KDB
-
-options SCHED_4BSD #4BSD scheduler
-options INET #InterNETworking
-options NFSCL #Network Filesystem Client
-options NFS_ROOT #NFS usable as /, requires NFSCL
-options PSEUDOFS #Pseudo-filesystem framework
-options _KPOSIX_PRIORITY_SCHEDULING #Posix P1003_1B real-time extensions
-
-# Debugging for use in -current
-#options DEADLKRES
-options INVARIANTS
-options INVARIANT_SUPPORT
-
-#options BUS_DEBUG
-#makeoptions BUS_DEBUG
-
-device bhnd
+# All Sentry5 chipsets use siba(4) interconnect
device siba
device siba_nexus
-device bhnd_pcib
-device pci # bhnd_pcib
+
+device pci
+device bhnd_pcib # PCI(e) G1 core
# device bfe # XXX will build both pci and siba
# device miibus # attachments
# pci devices
-# notyet:
-#device ath # in pci slot
-#device ath_pci # Atheros pci/cardbus glue
-#device ath_hal # pci chip support
+device ath # in pci slot
+device ath_rate_sample
+device ath_pci # Atheros pci/cardbus glue
+device ath_hal # pci chip support
#options AH_SUPPORT_AR5416 # enable AR5416 tx/rx descriptors
-options USB_DEBUG # enable debug msgs
-device usb # USB Bus (required)
-device uhci # UHCI PCI->USB interface
-device ehci # EHCI PCI->USB interface (USB 2.0)
-
-# need to teach the code to ignore the bridge....
-
-
-# XXX notyet; need to be auto probed children of siba_cc.
-#device uart
-
-device loop
-device ether
-device md
+device cfi # parallel flash
+device cfid
Index: sys/mips/conf/SENTRY5.hints
===================================================================
--- sys/mips/conf/SENTRY5.hints
+++ sys/mips/conf/SENTRY5.hints
@@ -1,5 +1,6 @@
# $FreeBSD$
-hint.bhnd.0.at="nexus0"
-hint.bhnd.0.maddr="0x18000000"
-hint.bhnd.0.msize="0x1000"
-# XXX irq?
+
+# uart1 console
+hint.uart.1.flags="0x10"
+hint.uart.1.maddr="0x18000400"
+hint.uart.1.size="0x100"
Index: sys/mips/sentry5/files.sentry5
===================================================================
--- sys/mips/sentry5/files.sentry5
+++ /dev/null
@@ -1,9 +0,0 @@
-# $FreeBSD$
-
-# TODO: Add attachment elsehwere in the tree
-# for USB 1.1 OHCI, Ethernet and IPSEC cores
-# which are believed to be devices we have drivers for
-# which just need to be tweaked for attachment to an SSB system bus.
-mips/sentry5/s5_machdep.c standard
-mips/mips/intr_machdep.c standard
-mips/mips/tick.c standard
Index: sys/mips/sentry5/obio.c
===================================================================
--- sys/mips/sentry5/obio.c
+++ /dev/null
@@ -1,183 +0,0 @@
-/* $NetBSD: obio.c,v 1.11 2003/07/15 00:25:05 lukem Exp $ */
-
-/*-
- * Copyright (c) 2001, 2002, 2003 Wasabi Systems, Inc.
- * All rights reserved.
- *
- * Written by Jason R. Thorpe for Wasabi Systems, Inc.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed for the NetBSD Project by
- * Wasabi Systems, Inc.
- * 4. The name of Wasabi Systems, Inc. may not be used to endorse
- * or promote products derived from this software without specific prior
- * written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY WASABI SYSTEMS, INC. ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL WASABI SYSTEMS, INC
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-/*
- * On-board device autoconfiguration support for Broadcom Sentry5
- * based boards.
- * XXX This is totally bogus and is just enough to get the console hopefully
- * running on the sentry5.
- */
-
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-#include <sys/param.h>
-#include <sys/systm.h>
-#include <sys/bus.h>
-#include <sys/kernel.h>
-#include <sys/module.h>
-#include <sys/rman.h>
-#include <sys/malloc.h>
-
-#include <machine/bus.h>
-
-#include <mips/sentry5/obiovar.h>
-#include <mips/sentry5/sentry5reg.h>
-
-int obio_probe(device_t);
-int obio_attach(device_t);
-
-/*
- * A bit tricky and hackish. Since we need OBIO to rely
- * on PCI we make it pseudo-pci device. But there should
- * be only one such device, so we use this static flag
- * to prevent false positives on every realPCI device probe.
- */
-static int have_one = 0;
-
-int
-obio_probe(device_t dev)
-{
- if (!have_one) {
- have_one = 1;
- return 0;
- }
- return (ENXIO);
-}
-
-int
-obio_attach(device_t dev)
-{
- struct obio_softc *sc = device_get_softc(dev);
-
- sc->oba_st = MIPS_BUS_SPACE_IO;
- sc->oba_addr = MIPS_PHYS_TO_KSEG1(SENTRY5_UART1ADR);
- sc->oba_size = 0x03FFFFFF; /* XXX sb pci bus 0 aperture size? */
- sc->oba_rman.rm_type = RMAN_ARRAY;
- sc->oba_rman.rm_descr = "OBIO I/O";
- if (rman_init(&sc->oba_rman) != 0 ||
- rman_manage_region(&sc->oba_rman,
- sc->oba_addr, sc->oba_addr + sc->oba_size) != 0)
- panic("obio_attach: failed to set up I/O rman");
- sc->oba_irq_rman.rm_type = RMAN_ARRAY;
- sc->oba_irq_rman.rm_descr = "OBIO IRQ";
-
- /*
- * This module is intended for UART purposes only and
- * it's IRQ is 4
- */
- if (rman_init(&sc->oba_irq_rman) != 0 ||
- rman_manage_region(&sc->oba_irq_rman, 4, 4) != 0)
- panic("obio_attach: failed to set up IRQ rman");
-
- device_add_child(dev, "uart", 0);
- bus_generic_probe(dev);
- bus_generic_attach(dev);
-
- return (0);
-}
-
-static struct resource *
-obio_alloc_resource(device_t bus, device_t child, int type, int *rid,
- rman_res_t start, rman_res_t end, rman_res_t count, u_int flags)
-{
- struct resource *rv;
- struct rman *rm;
- bus_space_handle_t bh = 0;
- struct obio_softc *sc = device_get_softc(bus);
-
- switch (type) {
- case SYS_RES_IRQ:
- rm = &sc->oba_irq_rman;
- break;
- case SYS_RES_MEMORY:
- return (NULL);
- case SYS_RES_IOPORT:
- rm = &sc->oba_rman;
- bh = sc->oba_addr;
- start = bh;
- break;
- default:
- return (NULL);
- }
-
-
- rv = rman_reserve_resource(rm, start, end, count, flags, child);
- if (rv == NULL)
- return (NULL);
- if (type == SYS_RES_IRQ)
- return (rv);
- rman_set_rid(rv, *rid);
- rman_set_bustag(rv, mips_bus_space_generic);
- rman_set_bushandle(rv, bh);
-
- if (0) {
- if (bus_activate_resource(child, type, *rid, rv)) {
- rman_release_resource(rv);
- return (NULL);
- }
- }
- return (rv);
-
-}
-
-static int
-obio_activate_resource(device_t bus, device_t child, int type, int rid,
- struct resource *r)
-{
- return (0);
-}
-static device_method_t obio_methods[] = {
- DEVMETHOD(device_probe, obio_probe),
- DEVMETHOD(device_attach, obio_attach),
-
- DEVMETHOD(bus_alloc_resource, obio_alloc_resource),
- DEVMETHOD(bus_activate_resource, obio_activate_resource),
- DEVMETHOD(bus_setup_intr, bus_generic_setup_intr),
- DEVMETHOD(bus_teardown_intr, bus_generic_teardown_intr),
-
- {0, 0},
-};
-
-static driver_t obio_driver = {
- "obio",
- obio_methods,
- sizeof(struct obio_softc),
-};
-static devclass_t obio_devclass;
-
-DRIVER_MODULE(obio, pci, obio_driver, obio_devclass, 0, 0);
Index: sys/mips/sentry5/obiovar.h
===================================================================
--- sys/mips/sentry5/obiovar.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/* $NetBSD: obiovar.h,v 1.4 2003/06/16 17:40:53 thorpej Exp $ */
-
-/*-
- * Copyright (c) 2002, 2003 Wasabi Systems, Inc.
- * All rights reserved.
- *
- * Written by Jason R. Thorpe for Wasabi Systems, Inc.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed for the NetBSD Project by
- * Wasabi Systems, Inc.
- * 4. The name of Wasabi Systems, Inc. may not be used to endorse
- * or promote products derived from this software without specific prior
- * written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY WASABI SYSTEMS, INC. ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL WASABI SYSTEMS, INC
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * $FreeBSD$
- *
- */
-
-#ifndef _SENTRY5_OBIOVAR_H_
-#define _SENTRY5_OBIOVAR_H_
-
-#include <sys/rman.h>
-
-struct obio_softc {
- bus_space_tag_t oba_st; /* bus space tag */
- bus_addr_t oba_addr; /* address of device */
- bus_size_t oba_size; /* size of device */
- int oba_width; /* bus width */
- int oba_irq; /* XINT interrupt bit # */
- struct rman oba_rman;
- struct rman oba_irq_rman;
-
-};
-extern struct bus_space obio_bs_tag;
-
-#endif /* _SENTRY5_OBIOVAR_H_ */
Index: sys/mips/sentry5/s5_machdep.c
===================================================================
--- sys/mips/sentry5/s5_machdep.c
+++ /dev/null
@@ -1,223 +0,0 @@
-/*-
- * Copyright (c) 2007 Bruce M. Simpson.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-#include "opt_ddb.h"
-
-#include <sys/param.h>
-#include <sys/conf.h>
-#include <sys/kernel.h>
-#include <sys/systm.h>
-#include <sys/imgact.h>
-#include <sys/bio.h>
-#include <sys/buf.h>
-#include <sys/bus.h>
-#include <sys/cpu.h>
-#include <sys/cons.h>
-#include <sys/exec.h>
-#include <sys/ucontext.h>
-#include <sys/proc.h>
-#include <sys/kdb.h>
-#include <sys/ptrace.h>
-#include <sys/reboot.h>
-#include <sys/signalvar.h>
-#include <sys/sysent.h>
-#include <sys/sysproto.h>
-#include <sys/user.h>
-
-#include <vm/vm.h>
-#include <vm/vm_object.h>
-#include <vm/vm_page.h>
-
-#include <machine/cache.h>
-#include <machine/clock.h>
-#include <machine/cpu.h>
-#include <machine/cpuinfo.h>
-#include <machine/cpufunc.h>
-#include <machine/cpuregs.h>
-#include <machine/hwfunc.h>
-#include <machine/intr_machdep.h>
-#include <machine/locore.h>
-#include <machine/md_var.h>
-#include <machine/pte.h>
-#include <machine/sigframe.h>
-#include <machine/trap.h>
-#include <machine/vmparam.h>
-
-#include <mips/sentry5/s5reg.h>
-
-#ifdef CFE
-#include <dev/cfe/cfe_api.h>
-#endif
-
-extern int *edata;
-extern int *end;
-
-void
-platform_cpu_init()
-{
- /* Nothing special */
-}
-
-static void
-mips_init(void)
-{
- int i, j;
-
- printf("entry: mips_init()\n");
-
-#ifdef CFE
- /*
- * Query DRAM memory map from CFE.
- */
- physmem = 0;
- for (i = 0; i < 10; i += 2) {
- int result;
- uint64_t addr, len, type;
-
- result = cfe_enummem(i, 0, &addr, &len, &type);
- if (result < 0) {
- phys_avail[i] = phys_avail[i + 1] = 0;
- break;
- }
- if (type != CFE_MI_AVAILABLE)
- continue;
-
- phys_avail[i] = addr;
- if (i == 0 && addr == 0) {
- /*
- * If this is the first physical memory segment probed
- * from CFE, omit the region at the start of physical
- * memory where the kernel has been loaded.
- */
- phys_avail[i] += MIPS_KSEG0_TO_PHYS(kernel_kseg0_end);
- }
- phys_avail[i + 1] = addr + len;
- physmem += len;
- }
-
- realmem = btoc(physmem);
-#endif
-
- for (j = 0; j < i; j++)
- dump_avail[j] = phys_avail[j];
-
- physmem = realmem;
-
- init_param1();
- init_param2(physmem);
- mips_cpu_init();
- pmap_bootstrap();
- mips_proc0_init();
- mutex_init();
- kdb_init();
-#ifdef KDB
- if (boothowto & RB_KDB)
- kdb_enter(KDB_WHY_BOOTFLAGS, "Boot flags requested debugger");
-#endif
-}
-
-void
-platform_reset(void)
-{
-
-#if defined(CFE)
- cfe_exit(0, 0);
-#else
- *((volatile uint8_t *)MIPS_PHYS_TO_KSEG1(SENTRY5_EXTIFADR)) = 0x80;
-#endif
-}
-
-void
-platform_start(__register_t a0, __register_t a1, __register_t a2,
- __register_t a3)
-{
- vm_offset_t kernend;
- uint64_t platform_counter_freq;
-
- /* clear the BSS and SBSS segments */
- kernend = (vm_offset_t)&end;
- memset(&edata, 0, kernend - (vm_offset_t)(&edata));
-
- mips_postboot_fixup();
-
- /* Initialize pcpu stuff */
- mips_pcpu0_init();
-
-#ifdef CFE
- /*
- * Initialize CFE firmware trampolines before
- * we initialize the low-level console.
- *
- * CFE passes the following values in registers:
- * a0: firmware handle
- * a2: firmware entry point
- * a3: entry point seal
- */
- if (a3 == CFE_EPTSEAL)
- cfe_init(a0, a2);
-#endif
- cninit();
-
- mips_init();
-
-# if 0
- /*
- * Probe the Broadcom Sentry5's on-chip PLL clock registers
- * and discover the CPU pipeline clock and bus clock
- * multipliers from this.
- * XXX: Wrong place. You have to ask the ChipCommon
- * or External Interface cores on the SiBa.
- */
- uint32_t busmult, cpumult, refclock, clkcfg1;
-#define S5_CLKCFG1_REFCLOCK_MASK 0x0000001F
-#define S5_CLKCFG1_BUSMULT_MASK 0x000003E0
-#define S5_CLKCFG1_BUSMULT_SHIFT 5
-#define S5_CLKCFG1_CPUMULT_MASK 0xFFFFFC00
-#define S5_CLKCFG1_CPUMULT_SHIFT 10
-
- counter_freq = 100000000; /* XXX */
-
- clkcfg1 = s5_rd_clkcfg1();
- printf("clkcfg1 = 0x%08x\n", clkcfg1);
-
- refclock = clkcfg1 & 0x1F;
- busmult = ((clkcfg1 & 0x000003E0) >> 5) + 1;
- cpumult = ((clkcfg1 & 0xFFFFFC00) >> 10) + 1;
-
- printf("refclock = %u\n", refclock);
- printf("busmult = %u\n", busmult);
- printf("cpumult = %u\n", cpumult);
-
- counter_freq = cpumult * refclock;
-# else
- platform_counter_freq = 200 * 1000 * 1000; /* Sentry5 is 200MHz */
-# endif
-
- mips_timer_init_params(platform_counter_freq, 0);
-}
Index: sys/mips/sentry5/s5reg.h
===================================================================
--- sys/mips/sentry5/s5reg.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/* $FreeBSD$ */
-
-#ifndef _MIPS32_SENTRY5_SENTRY5REG_H_
-#define _MIPS32_SENTRY5_SENTRY5REG_H_
-
-#define SENTRY5_UART0ADR 0x18000300
-#define SENTRY5_UART1ADR 0x18000400
-
-/* Reset register implemented here in a PLD device. */
-#define SENTRY5_EXTIFADR 0x1F000000
-#define SENTRY5_DORESET 0x80
-
-/*
- * Custom CP0 register macros.
- * XXX: This really needs the mips cpuregs.h file for the barrier.
- */
-#define S5_RDRW32_C0P0_CUST22(n,r) \
-static __inline u_int32_t \
-s5_rd_ ## n (void) \
-{ \
- int v0; \
- __asm __volatile ("mfc0 %[v0], $22, "__XSTRING(r)" ;" \
- : [v0] "=&r"(v0)); \
- /*mips_barrier();*/ \
- return (v0); \
-} \
-static __inline void \
-s5_wr_ ## n (u_int32_t a0) \
-{ \
- __asm __volatile ("mtc0 %[a0], $22, "__XSTRING(r)" ;" \
- __XSTRING(COP0_SYNC)";" \
- "nop;" \
- "nop;" \
- : \
- : [a0] "r"(a0)); \
- /*mips_barrier();*/ \
-} struct __hack
-
-/*
- * All 5 of these sub-registers are used by Linux.
- * There is a further custom register at 25 which is not used.
- */
-#define S5_CP0_DIAG 0
-#define S5_CP0_CLKCFG1 1
-#define S5_CP0_CLKCFG2 2
-#define S5_CP0_SYNC 3
-#define S5_CP0_CLKCFG3 4
-#define S5_CP0_RESET 5
-
-/* s5_[rd|wr]_xxx() */
-S5_RDRW32_C0P0_CUST22(diag, S5_CP0_DIAG);
-S5_RDRW32_C0P0_CUST22(clkcfg1, S5_CP0_CLKCFG1);
-S5_RDRW32_C0P0_CUST22(clkcfg2, S5_CP0_CLKCFG2);
-S5_RDRW32_C0P0_CUST22(sync, S5_CP0_SYNC);
-S5_RDRW32_C0P0_CUST22(clkcfg3, S5_CP0_CLKCFG3);
-S5_RDRW32_C0P0_CUST22(reset, S5_CP0_RESET);
-
-#endif /* _MIPS32_SENTRY5_SENTRY5REG_H_ */
Index: sys/mips/sentry5/std.sentry5
===================================================================
--- sys/mips/sentry5/std.sentry5
+++ /dev/null
@@ -1,10 +0,0 @@
-# $FreeBSD$
-#
-
-machine mips mipsel
-
-cpu CPU_MIPS4KC
-options CPU_SENTRY5 # XXX should this be a
- # sub-cpu option?
-files "../sentry5/files.sentry5"
-
Index: sys/mips/sentry5/uart_bus_sbusart.c
===================================================================
--- sys/mips/sentry5/uart_bus_sbusart.c
+++ /dev/null
@@ -1,95 +0,0 @@
-/*-
- * Copyright (c) 2007 Bruce M. Simpson.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * $Id$
- */
-/*
- * Skeleton of this file was based on respective code for ARM
- * code written by Olivier Houchard.
- */
-
-/*
- * XXXMIPS: This file is hacked from arm/... . XXXMIPS here means this file is
- * experimental and was written for MIPS32 port.
- */
-#include "opt_uart.h"
-
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-#include <sys/param.h>
-#include <sys/systm.h>
-#include <sys/bus.h>
-#include <sys/conf.h>
-#include <sys/kernel.h>
-#include <sys/module.h>
-#include <machine/bus.h>
-#include <sys/rman.h>
-#include <machine/resource.h>
-
-#include <dev/pci/pcivar.h>
-
-#include <dev/uart/uart.h>
-#include <dev/uart/uart_bus.h>
-#include <dev/uart/uart_cpu.h>
-
-#include <mips/sentry5/sentry5reg.h>
-
-#include "uart_if.h"
-
-static int uart_malta_probe(device_t dev);
-
-extern struct uart_class malta_uart_class;
-
-static device_method_t uart_malta_methods[] = {
- /* Device interface */
- DEVMETHOD(device_probe, uart_malta_probe),
- DEVMETHOD(device_attach, uart_bus_attach),
- DEVMETHOD(device_detach, uart_bus_detach),
- { 0, 0 }
-};
-
-static driver_t uart_malta_driver = {
- uart_driver_name,
- uart_malta_methods,
- sizeof(struct uart_softc),
-};
-
-extern SLIST_HEAD(uart_devinfo_list, uart_devinfo) uart_sysdevs;
-static int
-uart_malta_probe(device_t dev)
-{
- struct uart_softc *sc;
-
- sc = device_get_softc(dev);
- sc->sc_sysdev = SLIST_FIRST(&uart_sysdevs);
- sc->sc_class = &uart_ns8250_class;
- bcopy(&sc->sc_sysdev->bas, &sc->sc_bas, sizeof(sc->sc_bas));
- sc->sc_sysdev->bas.bst = mips_bus_space_generic;
- sc->sc_sysdev->bas.bsh = MIPS_PHYS_TO_KSEG1(SENTRY5_UART1ADR);
- sc->sc_bas.bst = mips_bus_space_generic;
- sc->sc_bas.bsh = MIPS_PHYS_TO_KSEG1(SENTRY5_UART1ADR);
- return(uart_bus_probe(dev, 0, 0, 0, 0));
-}
-
-DRIVER_MODULE(uart, obio, uart_malta_driver, uart_devclass, 0, 0);
Index: sys/mips/sentry5/uart_cpu_sbusart.c
===================================================================
--- sys/mips/sentry5/uart_cpu_sbusart.c
+++ /dev/null
@@ -1,82 +0,0 @@
-/*-
- * Copyright (c) 2006 Wojciech A. Koszek <wkoszek@FreeBSD.org>
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * $Id$
- */
-/*
- * Skeleton of this file was based on respective code for ARM
- * code written by Olivier Houchard.
- */
-/*
- * XXXMIPS: This file is hacked from arm/... . XXXMIPS here means this file is
- * experimental and was written for MIPS32 port.
- */
-#include "opt_uart.h"
-
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-#include <sys/param.h>
-#include <sys/systm.h>
-#include <sys/bus.h>
-#include <sys/cons.h>
-
-#include <machine/bus.h>
-
-#include <dev/uart/uart.h>
-#include <dev/uart/uart_cpu.h>
-
-#include <mips/sentry5/sentry5reg.h>
-
-bus_space_tag_t uart_bus_space_io;
-bus_space_tag_t uart_bus_space_mem;
-
-extern struct uart_ops malta_usart_ops;
-extern struct bus_space malta_bs_tag;
-
-int
-uart_cpu_eqres(struct uart_bas *b1, struct uart_bas *b2)
-{
- return ((b1->bsh == b2->bsh && b1->bst == b2->bst) ? 1 : 0);
-}
-
-int
-uart_cpu_getdev(int devtype, struct uart_devinfo *di)
-{
- di->ops = uart_getops(&uart_ns8250_class);
- di->bas.chan = 0;
- di->bas.bst = 0;
- di->bas.regshft = 0;
- di->bas.rclk = 0;
- di->baudrate = 115200;
- di->databits = 8;
- di->stopbits = 1;
- di->parity = UART_PARITY_NONE;
-
- uart_bus_space_io = MIPS_PHYS_TO_KSEG1(SENTRY5_UART1ADR);
- uart_bus_space_mem = mips_bus_space_generic;
- di->bas.bsh = MIPS_PHYS_TO_KSEG1(SENTRY5_UART1ADR);
- return (0);
-}
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Mon, Aug 17, 7:30 AM (12 h, 50 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
36851845
Default Alt Text
D6897.id17704.diff (38 KB)
Attached To
Mode
D6897: Replace mips/sentry5 with mips/broadcom.
Attached
Detach File
Event Timeline
Log In to Comment