Date: Tue, 22 Oct 2013 18:39:44 +0000 (UTC) From: Andre Oppermann <andre@FreeBSD.org> To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r256922 - in user/andre/mbuf_staging: arm/allwinner arm/broadcom/bcm2835 arm/conf arm/freescale/imx boot/fdt/dts cam cam/ata cam/ctl cam/scsi cddl/contrib/opensolaris/uts/common/fs/zfs ... Message-ID: <201310221839.r9MIdipQ079288@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: andre Date: Tue Oct 22 18:39:43 2013 New Revision: 256922 URL: http://svnweb.freebsd.org/changeset/base/256922 Log: IFC @256921. Added: user/andre/mbuf_staging/arm/conf/IMX53-QSB - copied unchanged from r256921, head/sys/arm/conf/IMX53-QSB user/andre/mbuf_staging/boot/fdt/dts/beri-sim.dts - copied unchanged from r256921, head/sys/boot/fdt/dts/beri-sim.dts user/andre/mbuf_staging/boot/fdt/dts/beripad-de4.dts - copied unchanged from r256921, head/sys/boot/fdt/dts/beripad-de4.dts user/andre/mbuf_staging/boot/fdt/dts/imx53-qsb.dts - copied unchanged from r256921, head/sys/boot/fdt/dts/imx53-qsb.dts - copied unchanged from r256921, head/sys/dev/fdt/fdt_ic_if.m user/andre/mbuf_staging/dev/ffec/ - copied from r256921, head/sys/dev/ffec/ user/andre/mbuf_staging/dev/usb/controller/dwc_otg_fdt.c - copied unchanged from r256921, head/sys/dev/usb/controller/dwc_otg_fdt.c user/andre/mbuf_staging/mips/beri/beri_pic.c - copied unchanged from r256921, head/sys/mips/beri/beri_pic.c user/andre/mbuf_staging/mips/conf/BERI_DE4_BASE - copied unchanged from r256921, head/sys/mips/conf/BERI_DE4_BASE user/andre/mbuf_staging/mips/conf/BERI_SIM_BASE - copied unchanged from r256921, head/sys/mips/conf/BERI_SIM_BASE user/andre/mbuf_staging/mips/conf/BERI_SIM_SDROOT - copied unchanged from r256921, head/sys/mips/conf/BERI_SIM_SDROOT user/andre/mbuf_staging/powerpc/ofw/openpic_ofw.c - copied unchanged from r256921, head/sys/powerpc/ofw/openpic_ofw.c user/andre/mbuf_staging/powerpc/powerpc/clock.c - copied unchanged from r256921, head/sys/powerpc/powerpc/clock.c user/andre/mbuf_staging/powerpc/powerpc/nexus.c - copied unchanged from r256921, head/sys/powerpc/powerpc/nexus.c user/andre/mbuf_staging/powerpc/powerpc/vm_machdep.c - copied unchanged from r256921, head/sys/powerpc/powerpc/vm_machdep.c Directory Properties: user/andre/mbuf_staging/dev/fdt/fdt_ic_if.m (props changed) Deleted: user/andre/mbuf_staging/arm/broadcom/bcm2835/dwc_otg_brcm.c user/andre/mbuf_staging/dev/isf/ user/andre/mbuf_staging/powerpc/aim/clock.c user/andre/mbuf_staging/powerpc/aim/nexus.c user/andre/mbuf_staging/powerpc/aim/vm_machdep.c user/andre/mbuf_staging/powerpc/booke/clock.c user/andre/mbuf_staging/powerpc/booke/vm_machdep.c user/andre/mbuf_staging/powerpc/mambo/mambo_openpic.c user/andre/mbuf_staging/powerpc/mpc85xx/nexus.c user/andre/mbuf_staging/powerpc/powermac/openpic_macio.c user/andre/mbuf_staging/powerpc/powerpc/openpic_fdt.c Modified: user/andre/mbuf_staging/arm/allwinner/a10_wdog.c user/andre/mbuf_staging/arm/broadcom/bcm2835/bcm2835_wdog.c user/andre/mbuf_staging/arm/broadcom/bcm2835/files.bcm2835 user/andre/mbuf_staging/arm/freescale/imx/files.imx53 user/andre/mbuf_staging/boot/fdt/dts/digi-ccwmx53.dts user/andre/mbuf_staging/cam/ata/ata_da.c user/andre/mbuf_staging/cam/ata/ata_pmp.c user/andre/mbuf_staging/cam/ata/ata_xpt.c user/andre/mbuf_staging/cam/cam_ccb.h user/andre/mbuf_staging/cam/cam_periph.c user/andre/mbuf_staging/cam/cam_periph.h user/andre/mbuf_staging/cam/cam_queue.c user/andre/mbuf_staging/cam/cam_queue.h user/andre/mbuf_staging/cam/cam_sim.c user/andre/mbuf_staging/cam/cam_sim.h user/andre/mbuf_staging/cam/cam_xpt.c user/andre/mbuf_staging/cam/cam_xpt.h user/andre/mbuf_staging/cam/cam_xpt_internal.h user/andre/mbuf_staging/cam/cam_xpt_sim.h user/andre/mbuf_staging/cam/ctl/ctl_frontend_cam_sim.c user/andre/mbuf_staging/cam/ctl/scsi_ctl.c user/andre/mbuf_staging/cam/scsi/scsi_cd.c user/andre/mbuf_staging/cam/scsi/scsi_ch.c user/andre/mbuf_staging/cam/scsi/scsi_da.c user/andre/mbuf_staging/cam/scsi/scsi_enc.c user/andre/mbuf_staging/cam/scsi/scsi_enc_internal.h user/andre/mbuf_staging/cam/scsi/scsi_enc_safte.c user/andre/mbuf_staging/cam/scsi/scsi_enc_ses.c user/andre/mbuf_staging/cam/scsi/scsi_pass.c user/andre/mbuf_staging/cam/scsi/scsi_pt.c user/andre/mbuf_staging/cam/scsi/scsi_sa.c user/andre/mbuf_staging/cam/scsi/scsi_sg.c user/andre/mbuf_staging/cam/scsi/scsi_targ_bh.c user/andre/mbuf_staging/cam/scsi/scsi_target.c user/andre/mbuf_staging/cam/scsi/scsi_xpt.c user/andre/mbuf_staging/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c user/andre/mbuf_staging/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c user/andre/mbuf_staging/cddl/contrib/opensolaris/uts/common/fs/zfs/zvol.c user/andre/mbuf_staging/cddl/contrib/opensolaris/uts/intel/dtrace/fasttrap_isa.c user/andre/mbuf_staging/cddl/dev/dtrace/amd64/dtrace_isa.c user/andre/mbuf_staging/conf/files user/andre/mbuf_staging/conf/files.powerpc user/andre/mbuf_staging/dev/aha/aha.c user/andre/mbuf_staging/dev/ahci/ahci.c user/andre/mbuf_staging/dev/ahci/ahci.h user/andre/mbuf_staging/dev/aic7xxx/aic79xx.c user/andre/mbuf_staging/dev/aic7xxx/aic7xxx.c user/andre/mbuf_staging/dev/ata/ata-all.c user/andre/mbuf_staging/dev/buslogic/bt.c user/andre/mbuf_staging/dev/cfi/cfi_bus_nexus.c user/andre/mbuf_staging/dev/drm2/i915/i915_drv.c user/andre/mbuf_staging/dev/fdt/fdt_common.c user/andre/mbuf_staging/dev/fdt/fdt_common.h user/andre/mbuf_staging/dev/fdt/fdt_mips.c user/andre/mbuf_staging/dev/fdt/fdt_pci.c user/andre/mbuf_staging/dev/fdt/fdt_powerpc.c user/andre/mbuf_staging/dev/fdt/fdtbus.c user/andre/mbuf_staging/dev/fdt/simplebus.c user/andre/mbuf_staging/dev/firewire/sbp_targ.c user/andre/mbuf_staging/dev/isp/isp_freebsd.c user/andre/mbuf_staging/dev/md/md.c user/andre/mbuf_staging/dev/mpt/mpt_cam.c user/andre/mbuf_staging/dev/mvs/mvs.c user/andre/mbuf_staging/dev/ofw/ofw_bus_subr.c user/andre/mbuf_staging/dev/ofw/ofw_fdt.c user/andre/mbuf_staging/dev/re/if_re.c user/andre/mbuf_staging/dev/siis/siis.c user/andre/mbuf_staging/dev/uart/uart_dev_pl011.c user/andre/mbuf_staging/dev/usb/serial/uslcom.c user/andre/mbuf_staging/dev/usb/usbdevs user/andre/mbuf_staging/dev/xen/netback/netback.c user/andre/mbuf_staging/geom/concat/g_concat.c user/andre/mbuf_staging/geom/concat/g_concat.h user/andre/mbuf_staging/geom/gate/g_gate.c user/andre/mbuf_staging/geom/geom.h user/andre/mbuf_staging/geom/geom_dev.c user/andre/mbuf_staging/geom/geom_disk.c user/andre/mbuf_staging/geom/geom_disk.h user/andre/mbuf_staging/geom/geom_int.h user/andre/mbuf_staging/geom/geom_io.c user/andre/mbuf_staging/geom/geom_kern.c user/andre/mbuf_staging/geom/geom_slice.c user/andre/mbuf_staging/geom/geom_vfs.c user/andre/mbuf_staging/geom/mirror/g_mirror.c user/andre/mbuf_staging/geom/mirror/g_mirror.h user/andre/mbuf_staging/geom/multipath/g_multipath.c user/andre/mbuf_staging/geom/nop/g_nop.c user/andre/mbuf_staging/geom/nop/g_nop.h user/andre/mbuf_staging/geom/part/g_part.c user/andre/mbuf_staging/geom/raid/g_raid.c user/andre/mbuf_staging/geom/raid/md_ddf.c user/andre/mbuf_staging/geom/raid/md_intel.c user/andre/mbuf_staging/geom/raid/md_jmicron.c user/andre/mbuf_staging/geom/raid/md_nvidia.c user/andre/mbuf_staging/geom/raid/md_promise.c user/andre/mbuf_staging/geom/raid/md_sii.c user/andre/mbuf_staging/geom/stripe/g_stripe.c user/andre/mbuf_staging/geom/stripe/g_stripe.h user/andre/mbuf_staging/geom/zero/g_zero.c user/andre/mbuf_staging/kern/kern_conf.c user/andre/mbuf_staging/kern/kern_event.c user/andre/mbuf_staging/kern/kern_resource.c user/andre/mbuf_staging/kern/subr_devstat.c user/andre/mbuf_staging/kern/subr_taskqueue.c user/andre/mbuf_staging/kern/uipc_mbuf.c user/andre/mbuf_staging/kern/uipc_syscalls.c user/andre/mbuf_staging/kern/vfs_bio.c user/andre/mbuf_staging/mips/beri/files.beri user/andre/mbuf_staging/mips/conf/BERI_DE4.hints user/andre/mbuf_staging/mips/conf/BERI_DE4_MDROOT user/andre/mbuf_staging/mips/conf/BERI_DE4_SDROOT user/andre/mbuf_staging/mips/conf/BERI_SIM_MDROOT user/andre/mbuf_staging/mips/conf/BERI_TEMPLATE user/andre/mbuf_staging/net/if_media.h user/andre/mbuf_staging/pci/if_rlreg.h user/andre/mbuf_staging/powerpc/aim/machdep.c user/andre/mbuf_staging/powerpc/booke/machdep.c user/andre/mbuf_staging/powerpc/booke/pmap.c user/andre/mbuf_staging/powerpc/ofw/ofw_pci.c user/andre/mbuf_staging/powerpc/ofw/ofw_pci.h user/andre/mbuf_staging/powerpc/ofw/ofw_pcib_pci.c user/andre/mbuf_staging/powerpc/ofw/ofw_pcibus.c user/andre/mbuf_staging/powerpc/pseries/phyp_llan.c user/andre/mbuf_staging/sys/eventvar.h user/andre/mbuf_staging/sys/proc.h user/andre/mbuf_staging/sys/resource.h user/andre/mbuf_staging/sys/resourcevar.h user/andre/mbuf_staging/ufs/ffs/ffs_extern.h user/andre/mbuf_staging/ufs/ffs/ffs_softdep.c user/andre/mbuf_staging/ufs/ffs/ffs_vfsops.c user/andre/mbuf_staging/ufs/ffs/softdep.h user/andre/mbuf_staging/ufs/ufs/ufs_extern.h user/andre/mbuf_staging/ufs/ufs/ufsmount.h Directory Properties: user/andre/mbuf_staging/ (props changed) user/andre/mbuf_staging/boot/ (props changed) user/andre/mbuf_staging/cddl/contrib/opensolaris/ (props changed) user/andre/mbuf_staging/conf/ (props changed) Modified: user/andre/mbuf_staging/arm/allwinner/a10_wdog.c ============================================================================== --- user/andre/mbuf_staging/arm/allwinner/a10_wdog.c Tue Oct 22 18:36:39 2013 (r256921) +++ user/andre/mbuf_staging/arm/allwinner/a10_wdog.c Tue Oct 22 18:39:43 2013 (r256922) @@ -150,6 +150,18 @@ a10wd_watchdog_fn(void *private, u_int c (wd_intervals[i].value << WDOG_MODE_INTVL_SHIFT) | WDOG_MODE_EN | WDOG_MODE_RST_EN); WRITE(sc, WDOG_CTRL, WDOG_CTRL_RESTART); + *error = 0; + } + else { + /* + * Can't arm + * disable watchdog as watchdog(9) requires + */ + device_printf(sc->dev, + "Can't arm, timeout is more than 16 sec\n"); + mtx_unlock(&sc->mtx); + WRITE(sc, WDOG_MODE, 0); + return; } } else Modified: user/andre/mbuf_staging/arm/broadcom/bcm2835/bcm2835_wdog.c ============================================================================== --- user/andre/mbuf_staging/arm/broadcom/bcm2835/bcm2835_wdog.c Tue Oct 22 18:36:39 2013 (r256921) +++ user/andre/mbuf_staging/arm/broadcom/bcm2835/bcm2835_wdog.c Tue Oct 22 18:39:43 2013 (r256922) @@ -76,11 +76,10 @@ struct bcmwd_softc { int wdog_armed; int wdog_period; char wdog_passwd; + struct mtx mtx; }; -#ifdef notyet static void bcmwd_watchdog_fn(void *private, u_int cmd, int *error); -#endif static int bcmwd_probe(device_t dev) @@ -120,19 +119,59 @@ bcmwd_attach(device_t dev) sc->bsh = rman_get_bushandle(sc->res); bcmwd_lsc = sc; -#ifdef notyet + mtx_init(&sc->mtx, "BCM2835 Watchdog", "bcmwd", MTX_DEF); EVENTHANDLER_REGISTER(watchdog_list, bcmwd_watchdog_fn, sc, 0); -#endif + return (0); } -#ifdef notyet static void bcmwd_watchdog_fn(void *private, u_int cmd, int *error) { - /* XXX: not yet */ + struct bcmwd_softc *sc; + uint64_t sec; + uint32_t ticks, reg; + + sc = private; + mtx_lock(&sc->mtx); + + cmd &= WD_INTERVAL; + + if (cmd > 0) { + sec = ((uint64_t)1 << (cmd & WD_INTERVAL)) / 1000000000; + ticks = (sec << 16) & BCM2835_WDOG_TIME_MASK; + if (ticks == 0) { + /* + * Can't arm + * disable watchdog as watchdog(9) requires + */ + device_printf(sc->dev, + "Can't arm, timeout is less than 1 second\n"); + WRITE(sc, BCM2835_RSTC_REG, + (BCM2835_PASWORD << BCM2835_PASSWORD_SHIFT) | + BCM2835_RSTC_RESET); + mtx_unlock(&sc->mtx); + return; + } + + reg = (BCM2835_PASWORD << BCM2835_PASSWORD_SHIFT) | ticks; + WRITE(sc, BCM2835_WDOG_REG, reg); + + reg = READ(sc, BCM2835_RSTC_REG); + reg &= BCM2835_RSTC_WRCFG_CLR; + reg |= BCM2835_RSTC_WRCFG_FULL_RESET; + reg |= (BCM2835_PASWORD << BCM2835_PASSWORD_SHIFT); + WRITE(sc, BCM2835_RSTC_REG, reg); + + *error = 0; + } + else + WRITE(sc, BCM2835_RSTC_REG, + (BCM2835_PASWORD << BCM2835_PASSWORD_SHIFT) | + BCM2835_RSTC_RESET); + + mtx_unlock(&sc->mtx); } -#endif void bcmwd_watchdog_reset() Modified: user/andre/mbuf_staging/arm/broadcom/bcm2835/files.bcm2835 ============================================================================== --- user/andre/mbuf_staging/arm/broadcom/bcm2835/files.bcm2835 Tue Oct 22 18:36:39 2013 (r256921) +++ user/andre/mbuf_staging/arm/broadcom/bcm2835/files.bcm2835 Tue Oct 22 18:39:43 2013 (r256922) @@ -11,7 +11,7 @@ arm/broadcom/bcm2835/bcm2835_systimer.c arm/broadcom/bcm2835/bcm2835_wdog.c standard arm/broadcom/bcm2835/bus_space.c optional fdt arm/broadcom/bcm2835/common.c optional fdt -arm/broadcom/bcm2835/dwc_otg_brcm.c optional dwcotg +dev/usb/controller/dwc_otg_fdt.c optional dwcotg arm/arm/bus_space_generic.c standard arm/arm/bus_space_asm_generic.S standard Copied: user/andre/mbuf_staging/arm/conf/IMX53-QSB (from r256921, head/sys/arm/conf/IMX53-QSB) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/andre/mbuf_staging/arm/conf/IMX53-QSB Tue Oct 22 18:39:43 2013 (r256922, copy of r256921, head/sys/arm/conf/IMX53-QSB) @@ -0,0 +1,179 @@ +# Kernel configuration for Freescale i.MX53 Quick Start Board +# +# For more information on this file, please read the config(5) manual page, +# and/or the handbook section on Kernel Configuration Files: +# +# http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/kernelconfig-config.html +# +# The handbook is also available locally in /usr/share/doc/handbook +# if you've installed the doc distribution, otherwise always see the +# FreeBSD World Wide Web server (http://www.FreeBSD.org/) for the +# latest information. +# +# An exhaustive list of options and more detailed explanations of the +# device lines is also present in the ../../conf/NOTES and NOTES files. +# If you are in doubt as to the purpose or necessity of a line, check first +# in NOTES. +# +# $FreeBSD$ + +ident IMX53-QSB + +include "../freescale/imx/std.imx53" + +makeoptions DEBUG=-g # Build kernel with gdb(1) debug symbols +#options DEBUG + +options HZ=250 # 4ms scheduling quantum +options SCHED_4BSD # 4BSD scheduler +#options PREEMPTION # Enable kernel thread preemption +options INET # InterNETworking +options INET6 # IPv6 communications protocols +#options SCTP # Stream Control Transmission Protocol +options FFS # Berkeley Fast Filesystem +options SOFTUPDATES # Enable FFS soft updates support +options UFS_ACL # Support for access control lists +options UFS_DIRHASH # Improve performance on big directories +options UFS_GJOURNAL # Enable gjournal-based UFS journaling +#options MD_ROOT # MD is a potential root device +options NFSCL # New Network Filesystem Client +#options NFSD # New Network Filesystem Server +options NFSLOCKD # Network Lock Manager +options NFS_ROOT # NFS usable as /, requires NFSCL +options MSDOSFS # MSDOS Filesystem +options CD9660 # ISO 9660 Filesystem +#options PROCFS # Process filesystem (requires PSEUDOFS) +options PSEUDOFS # Pseudo-filesystem framework +options TMPFS # TMP Memory Filesystem +options GEOM_PART_GPT # GUID Partition Tables. +options GEOM_LABEL # Provides labelization +#options COMPAT_FREEBSD5 # Compatible with FreeBSD5 +#options COMPAT_FREEBSD6 # Compatible with FreeBSD6 +#options COMPAT_FREEBSD7 # Compatible with FreeBSD7 +options SCSI_DELAY=5000 # Delay (in ms) before probing SCSI +options KTRACE # ktrace(1) support +options SYSVSHM # SYSV-style shared memory +options SYSVMSG # SYSV-style message queues +options SYSVSEM # SYSV-style semaphores +options _KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B real-time extensions +options INCLUDE_CONFIG_FILE # Include this file in kernel +options VFP # vfp/neon + +# required for netbooting +#options BOOTP +#options BOOTP_COMPAT +#options BOOTP_NFSROOT +#options BOOTP_NFSV3 +#options BOOTP_WIRED_TO=ue0 + +#options ROOTDEVNAME=\"ufs:ada0s2a\" + + +# kernel/memory size reduction +#options MUTEX_NOINLINE +#options NO_FFS_SNAPSHOT +#options NO_SWAPPING +#options NO_SYSCTL_DESCR +#options RWLOCK_NOINLINE + +# Debugging support. Always need this: +options KDB # Enable kernel debugger support. +# For minimum debugger support (stable branch) use: +#options KDB_TRACE # Print a stack trace for a panic. +# For full debugger support use this instead: +options DDB # Support DDB. +#options GDB # Support remote GDB. +#options DEADLKRES # Enable the deadlock resolver +#options INVARIANTS # Enable calls of extra sanity checking +#options INVARIANT_SUPPORT # Extra sanity checks of internal structures, required by INVARIANTS +#options WITNESS # Enable checks to detect deadlocks and cycles + +# The `bpf' device enables the Berkeley Packet Filter. +# Be aware of the administrative consequences of enabling this! +# Note that 'bpf' is required for DHCP. +device bpf # Berkeley packet filter + +# Pseudo devices. +device loop # Network loopback +device random # Entropy device +device ether # Ethernet support +#device vlan # 802.1Q VLAN support +#device tun # Packet tunnel. +device md # Memory "disks" +#device gif # IPv6 and IPv4 tunneling +#device faith # IPv6-to-IPv4 relaying (translation) +#device firmware # firmware assist module + +# Ethernet +device ffec # Freescale Fast Ethernet Controller +device miibus # Standard mii bus + +# Serial (COM) ports +device uart # Multi-uart driver +options ALT_BREAK_TO_DEBUGGER + +#device ata +#device atapci # Only for helper functions +#device imxata +#options ATA_STATIC_ID # Static device numbering + +device iomux # IO Multiplexor + +device gpio +device gpioled + +device fsliic +device iic +device iicbus + +# SCSI peripherals +device scbus # SCSI bus (required for SCSI) +device da # Direct Access (disks) +device cd # CD +device pass # Passthrough device (direct SCSI access) + +# USB support +#options USB_DEBUG # enable debug msgs +device ehci # OHCI USB interface +device usb # USB Bus (required) +device umass # Disks/Mass storage - Requires scbus and da +#device uhid # "Human Interface Devices" +#device ukbd # Allow keyboard like HIDs to control console +#device ums + +# USB Ethernet, requires miibus +#device miibus +#device aue # ADMtek USB Ethernet +#device axe # ASIX Electronics USB Ethernet +#device cdce # Generic USB over Ethernet +#device cue # CATC USB Ethernet +#device kue # Kawasaki LSI USB Ethernet +#device rue # RealTek RTL8150 USB Ethernet +#device udav # Davicom DM9601E USB + +# USB Wireless +#device rum # Ralink Technology RT2501USB wireless NICs + +# Watchdog timer. +# WARNING: can't be disabled!!! +device imxwdt # Watchdog + +# Wireless NIC cards +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_amrr # AMRR transmit rate control algorithm + +# Flattened Device Tree +options FDT +options FDT_DTB_STATIC +makeoptions FDT_DTS_FILE=imx53-qsb.dts + +# NOTE: serial console will be disabled if syscons enabled +# Uncomment following lines for framebuffer/syscons support +#device sc +#device kbdmux +#options SC_DFLT_FONT # compile font in +#makeoptions SC_DFLT_FONT=cp437 + Modified: user/andre/mbuf_staging/arm/freescale/imx/files.imx53 ============================================================================== --- user/andre/mbuf_staging/arm/freescale/imx/files.imx53 Tue Oct 22 18:36:39 2013 (r256921) +++ user/andre/mbuf_staging/arm/freescale/imx/files.imx53 Tue Oct 22 18:39:43 2013 (r256922) @@ -12,8 +12,11 @@ arm/freescale/imx/imx53_machdep.c standa arm/freescale/imx/common.c standard arm/freescale/imx/bus_space.c standard -# Dummy serial console -arm/freescale/imx/console.c standard +# Special serial console for debuging early boot code +#arm/freescale/imx/console.c standard + +# UART driver (includes serial console support) +dev/uart/uart_dev_imx.c optional uart # TrustZone Interrupt Controller arm/freescale/imx/tzic.c standard @@ -33,9 +36,6 @@ arm/freescale/imx/imx51_ccm.c standard # i.MX5xx PATA controller dev/ata/chipsets/ata-fsl.c optional imxata -# UART driver -#dev/uart/uart_dev_imx.c optional uart - # USB join controller (1 OTG, 3 EHCI) dev/usb/controller/ehci_imx.c optional ehci @@ -49,3 +49,6 @@ dev/ofw/ofw_iicbus.c optional fsliic # IPU - Image Processing Unit (frame buffer also) arm/freescale/imx/imx51_ipuv3.c optional sc +# Fast Ethernet Controller +dev/ffec/if_ffec.c optional ffec + Copied: user/andre/mbuf_staging/boot/fdt/dts/beri-sim.dts (from r256921, head/sys/boot/fdt/dts/beri-sim.dts) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/andre/mbuf_staging/boot/fdt/dts/beri-sim.dts Tue Oct 22 18:39:43 2013 (r256922, copy of r256921, head/sys/boot/fdt/dts/beri-sim.dts) @@ -0,0 +1,144 @@ +/*- + * Copyright (c) 2012-2013 Robert N. M. Watson + * Copyright (c) 2013 SRI International + * All rights reserved. + * + * This software was developed by SRI International and the University of + * Cambridge Computer Laboratory under DARPA/AFRL contract (FA8750-10-C-0237) + * ("CTSRD"), as part of the DARPA CRASH research programme. + * + * 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. + * + * $FreeBSD$ + */ + +/dts-v1/; + +/* + * Device names here have been largely made up on the spot, especially for the + * "compatible" strings, and might want to be revised. + * + * For now, use 32-bit addressing as our Avalon bus is 32-bit. However, in + * the future, we should likely change to 64-bit. + */ + +/ { + model = "SRI/Cambridge BERI simulation"; + compatible = "sri-cambridge,beri-sim"; + #address-cells = <1>; + #size-cells = <1>; + + cpus { + #address-cells = <1>; + #size-cells = <1>; + + /* + * Secondary CPUs all start disabled and use the + * spin-table enable method. cpu-release-addr must be + * specified for each cpu other than cpu@0. Values of + * cpu-release-addr grow down from 0x100000 (kernel). + */ + status = "disabled"; + enable-method = "spin-table"; + + cpu@0 { + device-type = "cpu"; + compatible = "sri-cambridge,beri"; + + reg = <0>; + status = "okay"; + }; + +/* + cpu@1 { + device-type = "cpu"; + compatible = "sri-cambridge,beri"; + + reg = <1>; + // XXX: should we need cached prefix? + cpu-release-addr = <0xffffffff 0x800fffe0>; + }; +*/ + }; + + soc { + #address-cells = <1>; + #size-cells = <1>; + #interrupt-cells = <1>; + + /* + * Declare mips,mips4k since BERI doesn't (yet) have a PIC, so + * we use mips4k coprocessor 0 interrupt management directly. + */ + compatible = "simple-bus", "mips,mips4k"; + ranges = <>; + + memory { + device_type = "memory"; + reg = <0x0 0x4000000>; // 64M at 0x0 + }; + + beripic: beripic@7f804000 { + compatible = "sri-cambridge,beri-pic"; + interrupt-controller; + #address-cells = <0>; + #interrupt-cells = <1>; + reg = <0x7f804000 0x400 + 0x7f806000 0x10 + 0x7f806080 0x10 + 0x7f806100 0x10>; + interrupts = <0 1 2 3 4>; + hard-interrupt-sources = <64>; + soft-interrupt-sources = <64>; + }; + + serial@7f000000 { + compatible = "altera,jtag_uart-11_0"; + reg = <0x7f000000 0x40>; + interrupts = <0>; + interrupt-parent = <&beripic>; + }; + + serial@7f001000 { + compatible = "altera,jtag_uart-11_0"; + reg = <0x7f001000 0x40>; + }; + + serial@7f002000 { + compatible = "altera,jtag_uart-11_0"; + reg = <0x7f002000 0x40>; + }; + + sdcard@7f008000 { + compatible = "altera,sdcard_11_2011"; + reg = <0x7f008000 0x400>; + }; + + avgen@0x7f00a000 { + compatible = "sri-cambridge,avgen"; + reg = <0x7f00a000 0x14>; + sri-cambridge,width = <4>; + sri-cambridge,fileio = "rw"; + sri-cambridge,devname = "berirom"; + }; + }; +}; Copied: user/andre/mbuf_staging/boot/fdt/dts/beripad-de4.dts (from r256921, head/sys/boot/fdt/dts/beripad-de4.dts) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/andre/mbuf_staging/boot/fdt/dts/beripad-de4.dts Tue Oct 22 18:39:43 2013 (r256922, copy of r256921, head/sys/boot/fdt/dts/beripad-de4.dts) @@ -0,0 +1,266 @@ +/*- + * Copyright (c) 2012-2013 Robert N. M. Watson + * Copyright (c) 2013 SRI International + * All rights reserved. + * + * This software was developed by SRI International and the University of + * Cambridge Computer Laboratory under DARPA/AFRL contract (FA8750-10-C-0237) + * ("CTSRD"), as part of the DARPA CRASH research programme. + * + * 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. + * + * $FreeBSD$ + */ + +/dts-v1/; + +/* + * Device names here have been largely made up on the spot, especially for the + * "compatible" strings, and might want to be revised. + * + * For now, use 32-bit addressing as our Avalon bus is 32-bit. However, in + * the future, we should likely change to 64-bit. + */ + +/ { + model = "SRI/Cambridge BeriPad (DE4)"; + compatible = "sri-cambridge,beripad-de4"; + #address-cells = <1>; + #size-cells = <1>; + + cpus { + #address-cells = <1>; + #size-cells = <1>; + + /* + * Secondary CPUs all start disabled and use the + * spin-table enable method. cpu-release-addr must be + * specified for each cpu other than cpu@0. Values of + * cpu-release-addr grow down from 0x100000 (kernel). + */ + status = "disabled"; + enable-method = "spin-table"; + + cpu@0 { + device-type = "cpu"; + compatible = "sri-cambridge,beri"; + + reg = <0>; + status = "okay"; + }; + +/* + cpu@1 { + device-type = "cpu"; + compatible = "sri-cambridge,beri"; + + reg = <1>; + // XXX: should we need cached prefix? + cpu-release-addr = <0xffffffff 0x800fffe0>; + }; +*/ + }; + + soc { + #address-cells = <1>; + #size-cells = <1>; + #interrupt-cells = <1>; + + /* + * Declare mips,mips4k since BERI doesn't (yet) have a PIC, so + * we use mips4k coprocessor 0 interrupt management directly. + */ + compatible = "simple-bus", "mips,mips4k"; + ranges = <>; + + memory { + device_type = "memory"; + reg = <0x0 0x40000000>; // 1G at 0x0 + }; + + beripic: beripic@7f804000 { + compatible = "sri-cambridge,beri-pic"; + interrupt-controller; + #address-cells = <0>; + #interrupt-cells = <1>; + reg = <0x7f804000 0x400 + 0x7f806000 0x10 + 0x7f806080 0x10 + 0x7f806100 0x10>; + interrupts = <0 1 2 3 4>; + hard-interrupt-sources = <64>; + soft-interrupt-sources = <64>; + }; + + serial@7f002100 { + compatible = "ns16550"; + reg = <0x7f002100 0x20>; + reg-shift = <2>; + clock-frequency = <50000000>; + interrupts = <6>; + interrupt-parent = <&beripic>; + }; + + serial@7f000000 { + compatible = "altera,jtag_uart-11_0"; + reg = <0x7f000000 0x40>; + interrupts = <0>; + interrupt-parent = <&beripic>; + }; + + serial@7f001000 { + compatible = "altera,jtag_uart-11_0"; + reg = <0x7f001000 0x40>; + }; + + serial@7f002000 { + compatible = "altera,jtag_uart-11_0"; + reg = <0x7f002000 0x40>; + }; + + sdcard@7f008000 { + compatible = "altera,sdcard_11_2011"; + reg = <0x7f008000 0x400>; + }; + + led@7f006000 { + compatible = "sri-cambridge,de4led"; + reg = <0x7f006000 0x1>; + }; + + /* + * XXX-BZ keep flash before ethernet so that atse can read the + * Ethernet addresses for now. + */ + flash@74000000 { + #address-cells = <1>; + #size-cells = <1>; + compatible = "cfi-flash"; + reg = <0x74000000 0x4000000>; + + /* Board configuration */ + partition@0 { + reg = <0x0 0x20000>; + label = "config"; + }; + + /* Power up FPGA image */ + partition@20000 { + reg = <0x20000 0xc00000>; + label = "fpga0"; + }; + + /* Secondary FPGA image (on RE_CONFIGn button) */ + partition@C20000 { + reg = <0xc20000 0xc00000>; + label = "fpga1"; + }; + + /* Space for operating system use */ + partition@1820000 { + reg = <0x1820000 0x027c0000>; + label = "os"; + }; + + /* Second stage bootloader */ + parition@3fe0000 { + reg = <0x3fe0000 0x20000>; + label = "boot"; + }; + }; + + ethernet@7f007000 { + compatible = "altera,atse"; + // MAC, RX+RXC, TX+TXC. + reg = <0x7f007000 0x400 + 0x7f007500 0x8 + 0x7f007520 0x20 + 0x7f007400 0x8 + 0x7f007420 0x20>; + // RX, TX + interrupts = <1 2>; + interrupt-parent = <&beripic>; + }; + + ethernet@7f005000 { + compatible = "altera,atse"; + // MAC, RX+RXC, TX+TXC. + reg = <0x7f005000 0x400 + 0x7f005500 0x8 + 0x7f005520 0x20 + 0x7f005400 0x8 + 0x7f005420 0x20>; + // RX, TX + interrupts = <11 12>; + interrupt-parent = <&beripic>; + }; + + touchscreen@70400000 { + compatible = "sri-cambridge,mtl"; + reg = <0x70400000 0x1000 + 0x70000000 0x177000 + 0x70177000 0x2000>; + }; + + usb@0x7f100000 { + compatible = "philips,isp1761"; + reg = <0x7f100000 0x40000 + 0x7f140000 0x4>; + // IRQ 4 is DC, IRQ 5 is HC. + interrupts = <4 5>; + interrupt-parent = <&beripic>; + }; + + avgen@0x7f009000 { + compatible = "sri-cambridge,avgen"; + reg = <0x7f009000 0x2>; + sri-cambridge,width = <1>; + sri-cambridge,fileio = "r"; + sri-cambridge,devname = "de4bsw"; + }; + + avgen@0x7f00a000 { + compatible = "sri-cambridge,avgen"; + reg = <0x7f00a000 0x14>; + sri-cambridge,width = <4>; + sri-cambridge,fileio = "rw"; + sri-cambridge,devname = "berirom"; + }; + + avgen@0x7f00c000 { + compatible = "sri-cambridge,avgen"; + reg = <0x7f00c000 0x8>; + sri-cambridge,width = <4>; + sri-cambridge,fileio = "rw"; + sri-cambridge,devname = "de4tempfan"; + }; + + avgen@0x7f100000 { + compatible = "sri-cambridge,avgen"; + reg = <0x7f100000 0x40000>; + sri-cambridge,width = <4>; + sri-cambridge,fileio = "r"; + sri-cambridge,devname = "usbmem"; + }; + + }; +}; Modified: user/andre/mbuf_staging/boot/fdt/dts/digi-ccwmx53.dts ============================================================================== --- user/andre/mbuf_staging/boot/fdt/dts/digi-ccwmx53.dts Tue Oct 22 18:36:39 2013 (r256921) +++ user/andre/mbuf_staging/boot/fdt/dts/digi-ccwmx53.dts Tue Oct 22 18:39:43 2013 (r256922) @@ -70,9 +70,9 @@ }; /* UART1, console */ - UART1: serial@53fbc000 { + console: serial@53fbc000 { status = "okay"; - clock-frequency = <3000000>; /* XXX */ + clock-frequency = <0>; /* won't load w/o this */ }; clock@53fd4000 { @@ -111,13 +111,12 @@ }; aliases { - UART1 = &UART1; SSI2 = &SSI2; }; chosen { bootargs = "-v"; - stdin = "UART1"; - stdout = "UART1"; + stdin = &console; + stdout = &console; }; }; Copied: user/andre/mbuf_staging/boot/fdt/dts/imx53-qsb.dts (from r256921, head/sys/boot/fdt/dts/imx53-qsb.dts) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/andre/mbuf_staging/boot/fdt/dts/imx53-qsb.dts Tue Oct 22 18:39:43 2013 (r256922, copy of r256921, head/sys/boot/fdt/dts/imx53-qsb.dts) @@ -0,0 +1,126 @@ +/* + * Copyright (c) 2012 The FreeBSD Foundation + * Copyright (c) 2013 Rui Paulo + * All rights reserved. + * + * This software was developed by Semihalf under sponsorship from + * the FreeBSD Foundation. + * + * 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. + * + * Freescale i.MX53 Quick Start Board + * + * $FreeBSD$ + */ + +/dts-v1/; +/include/ "imx53x.dtsi" + +/ { + model = "Freescale i.MX53 Quick Start Board"; + compatible = "fsl,imx53-qsb", "fsl,imx53"; + + memory { + /* RAM 512M */ + reg = <0x70000000 0x20000000>; + }; + + localbus@18000000 { + ipu3@18000000 { + status = "okay"; + }; + }; + + soc@50000000 { + aips@50000000 { + spba@50000000 { + esdhc@50004000 { + clock-frequency = <216000000>; + status = "okay"; + }; + esdhc@50008000 { + clock-frequency = <216000000>; + status = "okay"; + }; + SSI2: ssi@50014000 { + status = "okay"; + }; + }; + timer@53fa0000 { + status = "okay"; + }; + + /* UART1, console */ + console: serial@53fbc000 { + status = "okay"; + clock-frequency = <0>; /* won't load w/o this */ + }; + + clock@53fd4000 { + status = "okay"; + }; + gpio@53f84000 { + status = "okay"; + }; + gpio@53f88000 { + status = "okay"; + }; + gpio@53f8c000 { + status = "okay"; + }; + gpio@53f90000 { + status = "okay"; + }; + wdog@53f98000 { + status = "okay"; + }; + }; + aips@60000000 { + ethernet@63fec000 { + status = "okay"; + phy-mode = "rmii"; + } + i2c@63fc4000 { + status = "okay"; + }; + i2c@63fc8000 { + status = "okay"; + }; + audmux@63fd4000 { + status = "okay"; + }; + ide@63fe0000 { + status = "okay"; + }; + }; + }; + + aliases { + SSI2 = &SSI2; + }; + + chosen { + bootargs = "-v"; + stdin = &console; + stdout = &console; + }; +}; Modified: user/andre/mbuf_staging/cam/ata/ata_da.c ============================================================================== --- user/andre/mbuf_staging/cam/ata/ata_da.c Tue Oct 22 18:36:39 2013 (r256921) +++ user/andre/mbuf_staging/cam/ata/ata_da.c Tue Oct 22 18:39:43 2013 (r256922) @@ -103,7 +103,6 @@ typedef enum { ADA_CCB_RAHEAD = 0x01, ADA_CCB_WCACHE = 0x02, ADA_CCB_BUFFER_IO = 0x03, - ADA_CCB_WAITING = 0x04, ADA_CCB_DUMP = 0x05, ADA_CCB_TRIM = 0x06, ADA_CCB_TYPE_MASK = 0x0F, @@ -123,10 +122,9 @@ struct disk_params { #define TRIM_MAX_BLOCKS 8 #define TRIM_MAX_RANGES (TRIM_MAX_BLOCKS * ATA_DSM_BLK_RANGES) -#define TRIM_MAX_BIOS (TRIM_MAX_RANGES * 4) struct trim_request { uint8_t data[TRIM_MAX_RANGES * ATA_DSM_RANGE_SIZE]; - struct bio *bps[TRIM_MAX_BIOS]; + TAILQ_HEAD(, bio) bps; }; struct ada_softc { @@ -155,6 +153,7 @@ struct ada_softc { struct sysctl_oid *sysctl_tree; struct callout sendordered_c; struct trim_request trim_req; + int refcount; }; struct ada_quirk_entry { @@ -638,14 +637,8 @@ adaclose(struct disk *dp) int error; periph = (struct cam_periph *)dp->d_drv1; - cam_periph_lock(periph); - if (cam_periph_hold(periph, PRIBIO) != 0) { - cam_periph_unlock(periph); - cam_periph_release(periph); - return (0); - } - softc = (struct ada_softc *)periph->softc; + cam_periph_lock(periph); CAM_DEBUG(periph->path, CAM_DEBUG_TRACE | CAM_DEBUG_PERIPH, ("adaclose\n")); @@ -653,7 +646,8 @@ adaclose(struct disk *dp) /* We only sync the cache if the drive is capable of it. */ if ((softc->flags & ADA_FLAG_DIRTY) != 0 && (softc->flags & ADA_FLAG_CAN_FLUSHCACHE) != 0 && - (periph->flags & CAM_PERIPH_INVALID) == 0) { + (periph->flags & CAM_PERIPH_INVALID) == 0 && + cam_periph_hold(periph, PRIBIO) == 0) { ccb = cam_periph_getccb(periph, CAM_PRIORITY_NORMAL); cam_fill_ataio(&ccb->ataio, @@ -677,10 +671,13 @@ adaclose(struct disk *dp) else softc->flags &= ~ADA_FLAG_DIRTY; xpt_release_ccb(ccb); + cam_periph_unhold(periph); } softc->flags &= ~ADA_FLAG_OPEN; - cam_periph_unhold(periph); + + while (softc->refcount != 0) + cam_periph_sleep(periph, &softc->refcount, PRIBIO, "adaclose", 1); cam_periph_unlock(periph); cam_periph_release(periph); return (0); @@ -690,23 +687,15 @@ static void adaschedule(struct cam_periph *periph) { struct ada_softc *softc = (struct ada_softc *)periph->softc; - uint32_t prio; if (softc->state != ADA_STATE_NORMAL) return; - /* Check if cam_periph_getccb() was called. */ - prio = periph->immediate_priority; - /* Check if we have more work to do. */ if (bioq_first(&softc->bio_queue) || (!softc->trim_running && bioq_first(&softc->trim_queue))) { - prio = CAM_PRIORITY_NORMAL; + xpt_schedule(periph, CAM_PRIORITY_NORMAL); } - - /* Schedule CCB if any of above is true. */ - if (prio != CAM_PRIORITY_NONE) - xpt_schedule(periph, prio); } /* @@ -970,7 +959,7 @@ adaasync(void *callback_arg, u_int32_t c status = cam_periph_alloc(adaregister, adaoninvalidate, *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201310221839.r9MIdipQ079288>