svn commit: r248940 - head
Author: andrew Date: Sun Mar 31 08:31:06 2013 New Revision: 248940 URL: http://svnweb.freebsd.org/changeset/base/248940 Log: Fix xdev. Clang and libc were not building correctly on older worlds, for example, on 9.1. * To fix clang add an _xb-bootstrap-tools target that mirrors the existing bootstrap-tools target in the full world. * For libc have the compiler use the newly installed includes, and, while here, tell the compiler about the xdev library path as some other libraries will link against the installed libraries. Modified: head/Makefile.inc1 Modified: head/Makefile.inc1 == --- head/Makefile.inc1 Sun Mar 31 04:10:37 2013(r248939) +++ head/Makefile.inc1 Sun Mar 31 08:31:06 2013(r248940) @@ -1745,11 +1745,12 @@ CDBENV=MAKEOBJDIRPREFIX=${MAKEOBJDIRPREF CDENV= ${CDBENV} \ _SHLIBDIRPREFIX=${XDTP} \ TOOLS_PREFIX=${XDTP} -CD2ENV=${CDENV} \ +CD2CFLAGS=-isystem ${XDTP}/usr/include -L${XDTP}/usr/lib -B${XDTP}/usr/lib +CD2ENV=${CDENV} CC="${CC} ${CD2CFLAGS}" \ MACHINE=${XDEV} MACHINE_ARCH=${XDEV_ARCH} -CDTMP= ${MAKEOBJDIRPREFIX}/${XDEV}/${.CURDIR}/tmp -CDMAKE=${CDENV} ${MAKE} ${NOFUN} +CDTMP= ${MAKEOBJDIRPREFIX}/${XDDIR}/${.CURDIR}/tmp +CDMAKE=${CDENV} PATH=${CDTMP}/usr/bin:${PATH} ${MAKE} ${NOFUN} CD2MAKE=${CD2ENV} PATH=${CDTMP}/usr/bin:${XDTP}/usr/bin:${PATH} ${MAKE} ${NOFUN} XDDESTDIR=${DESTDIR}${XDTP} .if !defined(OSREL) @@ -1759,8 +1760,24 @@ OSREL!= uname -r | sed -e 's/[-(].*//' .ORDER: xdev-build xdev-install xdev: xdev-build xdev-install -.ORDER: _xb-build-tools _xb-cross-tools -xdev-build: _xb-build-tools _xb-cross-tools +.ORDER: _xb-worldtmp _xb-bootstrap-tools _xb-build-tools _xb-cross-tools +xdev-build: _xb-worldtmp _xb-bootstrap-tools _xb-build-tools _xb-cross-tools + +_xb-worldtmp: + mkdir -p ${CDTMP}/usr + mtree -deU -f ${.CURDIR}/etc/mtree/BSD.usr.dist \ + -p ${CDTMP}/usr >/dev/null + +_xb-bootstrap-tools: +.for _tool in \ +${_clang_tblgen} + ${_+_}@${ECHODIR} "===> ${_tool} (obj,depend,all,install)"; \ + cd ${.CURDIR}/${_tool}; \ + ${CDMAKE} DIRPRFX=${_tool}/ obj; \ + ${CDMAKE} DIRPRFX=${_tool}/ depend; \ + ${CDMAKE} DIRPRFX=${_tool}/ all; \ + ${CDMAKE} DIRPRFX=${_tool}/ DESTDIR=${CDTMP} install +.endfor _xb-build-tools: ${_+_}@cd ${.CURDIR}; \ @@ -1770,7 +1787,9 @@ _xb-cross-tools: .for _tool in \ gnu/usr.bin/binutils \ gnu/usr.bin/cc \ -usr.bin/ar +usr.bin/ar \ +${_clang_libs} \ +${_clang} ${_+_}@${ECHODIR} "===> xdev ${_tool} (obj,depend,all)"; \ cd ${.CURDIR}/${_tool}; \ ${CDMAKE} DIRPRFX=${_tool}/ obj; \ @@ -1796,7 +1815,8 @@ _xi-cross-tools: .for _tool in \ gnu/usr.bin/binutils \ gnu/usr.bin/cc \ -usr.bin/ar +usr.bin/ar \ +${_clang} ${_+_}@${ECHODIR} "===> xdev ${_tool} (install)"; \ cd ${.CURDIR}/${_tool}; \ ${CDMAKE} DIRPRFX=${_tool}/ install DESTDIR=${XDDESTDIR} ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
svn commit: r248941 - head
Author: andrew Date: Sun Mar 31 08:54:04 2013 New Revision: 248941 URL: http://svnweb.freebsd.org/changeset/base/248941 Log: Fix xdev-install when installing to a location other than / Modified: head/Makefile.inc1 Modified: head/Makefile.inc1 == --- head/Makefile.inc1 Sun Mar 31 08:31:06 2013(r248940) +++ head/Makefile.inc1 Sun Mar 31 08:54:04 2013(r248941) @@ -1743,9 +1743,10 @@ XDTP=/usr/${XDDIR} CDBENV=MAKEOBJDIRPREFIX=${MAKEOBJDIRPREFIX}/${XDDIR} \ INSTALL="sh ${.CURDIR}/tools/install.sh" CDENV= ${CDBENV} \ - _SHLIBDIRPREFIX=${XDTP} \ - TOOLS_PREFIX=${XDTP} -CD2CFLAGS=-isystem ${XDTP}/usr/include -L${XDTP}/usr/lib -B${XDTP}/usr/lib + _SHLIBDIRPREFIX=${XDDESTDIR} \ + TOOLS_PREFIX=${XDDESTDIR} +CD2CFLAGS=-isystem ${XDDESTDIR}/usr/include -L${XDDESTDIR}/usr/lib \ + -B${XDDESTDIR}/usr/lib CD2ENV=${CDENV} CC="${CC} ${CD2CFLAGS}" \ MACHINE=${XDEV} MACHINE_ARCH=${XDEV_ARCH} ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
svn commit: r248944 - head/sys/arm/at91
Author: ian Date: Sun Mar 31 12:51:56 2013 New Revision: 248944 URL: http://svnweb.freebsd.org/changeset/base/248944 Log: Fix a typo in the CF device driver name that prevented instantiation. Modified: head/sys/arm/at91/at91rm9200.c Modified: head/sys/arm/at91/at91rm9200.c == --- head/sys/arm/at91/at91rm9200.c Sun Mar 31 10:20:29 2013 (r248943) +++ head/sys/arm/at91/at91rm9200.c Sun Mar 31 12:51:56 2013 (r248944) @@ -125,7 +125,7 @@ static const struct cpu_devs at91_devs[] DEVICE("at91_tc",TC0,0), DEVICE("at91_tc",TC1,1), DEVICE("ohci", OHCI, 0), - DEVICE("af91_cfata", CF, 0), + DEVICE("at91_cfata", CF, 0), { 0, 0, 0, 0, 0 } }; ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
svn commit: r248951 - in head/sys: compat/linux kern sys
Author: jilles Date: Sun Mar 31 17:42:54 2013 New Revision: 248951 URL: http://svnweb.freebsd.org/changeset/base/248951 Log: Rename do_pipe() to kern_pipe2() and declare it properly. Modified: head/sys/compat/linux/linux_file.c head/sys/kern/sys_pipe.c head/sys/sys/syscallsubr.h Modified: head/sys/compat/linux/linux_file.c == --- head/sys/compat/linux/linux_file.c Sun Mar 31 14:10:49 2013 (r248950) +++ head/sys/compat/linux/linux_file.c Sun Mar 31 17:42:54 2013 (r248951) @@ -70,9 +70,6 @@ __FBSDID("$FreeBSD$"); #include #include -/* XXX */ -intdo_pipe(struct thread *td, int fildes[2], int flags); - int linux_creat(struct thread *td, struct linux_creat_args *args) { @@ -1584,7 +1581,7 @@ linux_pipe(struct thread *td, struct lin printf(ARGS(pipe, "*")); #endif - error = do_pipe(td, fildes, 0); + error = kern_pipe2(td, fildes, 0); if (error) return (error); @@ -1611,7 +1608,7 @@ linux_pipe2(struct thread *td, struct li flags |= O_NONBLOCK; if ((args->flags & LINUX_O_CLOEXEC) != 0) flags |= O_CLOEXEC; - error = do_pipe(td, fildes, flags); + error = kern_pipe2(td, fildes, flags); if (error) return (error); Modified: head/sys/kern/sys_pipe.c == --- head/sys/kern/sys_pipe.cSun Mar 31 14:10:49 2013(r248950) +++ head/sys/kern/sys_pipe.cSun Mar 31 17:42:54 2013(r248951) @@ -129,9 +129,6 @@ __FBSDID("$FreeBSD$"); #include #include -/* XXX */ -intdo_pipe(struct thread *td, int fildes[2], int flags); - /* * Use this define if you want to disable *fancy* VM things. Expect an * approx 30% decrease in transfer rate. This could be useful for @@ -408,11 +405,11 @@ int kern_pipe(struct thread *td, int fildes[2]) { - return (do_pipe(td, fildes, 0)); + return (kern_pipe2(td, fildes, 0)); } int -do_pipe(struct thread *td, int fildes[2], int flags) +kern_pipe2(struct thread *td, int fildes[2], int flags) { struct filedesc *fdp; struct file *rf, *wf; Modified: head/sys/sys/syscallsubr.h == --- head/sys/sys/syscallsubr.h Sun Mar 31 14:10:49 2013(r248950) +++ head/sys/sys/syscallsubr.h Sun Mar 31 17:42:54 2013(r248951) @@ -156,6 +156,7 @@ int kern_openat(struct thread *td, int f intkern_pathconf(struct thread *td, char *path, enum uio_seg pathseg, int name, u_long flags); intkern_pipe(struct thread *td, int fildes[2]); +intkern_pipe2(struct thread *td, int fildes[2], int flags); intkern_posix_fadvise(struct thread *td, int fd, off_t offset, off_t len, int advice); intkern_posix_fallocate(struct thread *td, int fd, off_t offset, ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
svn commit: r248953 - head/sys/netinet
Author: tuexen Date: Sun Mar 31 18:27:46 2013 New Revision: 248953 URL: http://svnweb.freebsd.org/changeset/base/248953 Log: Add a macro for checking for IPv4 link local addresses. MFC after: 1 week Modified: head/sys/netinet/sctp_constants.h Modified: head/sys/netinet/sctp_constants.h == --- head/sys/netinet/sctp_constants.h Sun Mar 31 17:50:01 2013 (r248952) +++ head/sys/netinet/sctp_constants.h Sun Mar 31 18:27:46 2013 (r248953) @@ -997,6 +997,10 @@ __FBSDID("$FreeBSD$"); (((uint8_t *)&(a)->s_addr)[2] == 0) && \ (((uint8_t *)&(a)->s_addr)[3] == 1)) +#define IN4_ISLINKLOCAL_ADDRESS(a) \ +uint8_t *)&(a)->s_addr)[0] == 169) && \ + (((uint8_t *)&(a)->s_addr)[1] == 254)) + #if defined(_KERNEL) #define SCTP_GETTIME_TIMEVAL(x) (getmicrouptime(x)) ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
Re: svn commit: r248552 - in head: sbin/ipfw sys/netinet sys/netpfil/ipfw
on 20/03/2013 12:35 Alexander V. Chernikov said the following: > Author: melifaro > Date: Wed Mar 20 10:35:33 2013 > New Revision: 248552 > URL: http://svnweb.freebsd.org/changeset/base/248552 > > Log: > Add ipfw support for setting/matching DiffServ codepoints (DSCP). > > Setting DSCP support is done via O_SETDSCP which works for both > IPv4 and IPv6 packets. Fast checksum recalculation (RFC 1624) is done for > IPv4. > Dscp can be specified by name (AFXY, CSX, BE, EF), by value > (0..63) or via tablearg. > > Matching DSCP is done via another opcode (O_DSCP) which accepts several > classes at once (af11,af22,be). Classes are stored in bitmask (2 u32 words). [snip] > Modified: head/sys/netpfil/ipfw/ip_fw_sockopt.c > == > --- head/sys/netpfil/ipfw/ip_fw_sockopt.c Wed Mar 20 09:56:20 2013 > (r248551) > +++ head/sys/netpfil/ipfw/ip_fw_sockopt.c Wed Mar 20 10:35:33 2013 > (r248552) > @@ -671,6 +671,10 @@ check_ipfw_struct(struct ip_fw *rule, in > case O_IPID: > case O_IPTTL: > case O_IPLEN: > + case O_DSCP: > + if (cmdlen != F_INSN_SIZE(ipfw_insn_u32) + 1) > + goto bad_size; > + break; > case O_TCPDATALEN: > case O_TCPWIN: > case O_TAGGED: Could you please double-check this part of the change? Handling of the new O_DSCP opcode is inserted in the middle of the long fall-through list of cases and thus it modifies behavior of the preceding cases. The commit message does not say anything about that. I've just done my bi-monthly release/upgrade and ipfw now chokes on my ruleset. There is the following message in system log: kernel: ipfw: opcode 0 size 8 wrong Offending rule seems to be: allow ip from any to any via tun* Reverting this commit fixes the problem. Thank you. -- Andriy Gapon ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
svn commit: r248961 - head/sys/arm/arm
Author: ian Date: Sun Mar 31 22:42:25 2013 New Revision: 248961 URL: http://svnweb.freebsd.org/changeset/base/248961 Log: When running on armv6, set alignment checking to modulo-4 mode rather than modulo-8, because clang emits ldrd and strd instructions for addresses that are only 4-byte aligned. Modified: head/sys/arm/arm/locore.S Modified: head/sys/arm/arm/locore.S == --- head/sys/arm/arm/locore.S Sun Mar 31 20:40:06 2013(r248960) +++ head/sys/arm/arm/locore.S Sun Mar 31 22:42:25 2013(r248961) @@ -176,10 +176,16 @@ Lunmapped: /* Set the Domain Access register. Very important! */ mov r0, #((DOMAIN_CLIENT << (PMAP_DOMAIN_KERNEL*2)) | DOMAIN_CLIENT) mcr p15, 0, r0, c3, c0, 0 - /* Enable MMU */ + /* +* Enable MMU. +* On armv6 enable extended page tables, and set alignment checking +* to modulo-4 (CPU_CONTROL_UNAL_ENABLE) for the ldrd/strd +* instructions emitted by clang. +*/ mrc p15, 0, r0, c1, c0, 0 -#if defined(CPU_ARM1136) || defined(CPU_ARM1176) || defined(CPU_CORTEXA) || defined(CPU_MV_PJ4B) - orr r0, r0, #CPU_CONTROL_V6_EXTPAGE +#ifdef _ARM_ARCH_6 + orr r0, r0, #(CPU_CONTROL_V6_EXTPAGE | CPU_CONTROL_UNAL_ENABLE) + orr r2, r2, #(CPU_CONTROL_AFLT_ENABLE) #endif orr r0, r0, #(CPU_CONTROL_MMU_ENABLE) mcr p15, 0, r0, c1, c0, 0 ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
svn commit: r248962 - head/sys/boot/arm/uboot
Author: ian Date: Sun Mar 31 22:43:16 2013 New Revision: 248962 URL: http://svnweb.freebsd.org/changeset/base/248962 Log: When running on armv6, set alignment checking to modulo-4 mode rather than modulo-8, because clang emits ldrd and strd instructions for addresses that are only 4-byte aligned Modified: head/sys/boot/arm/uboot/start.S Modified: head/sys/boot/arm/uboot/start.S == --- head/sys/boot/arm/uboot/start.S Sun Mar 31 22:42:25 2013 (r248961) +++ head/sys/boot/arm/uboot/start.S Sun Mar 31 22:43:16 2013 (r248962) @@ -27,6 +27,7 @@ */ #include +#include /* * Entry point to the loader that U-Boot passes control to. @@ -42,6 +43,13 @@ _start: ldr ip, =saved_regs str r8, [ip, #0] +#ifdef _ARM_ARCH_6 + mrc p15, 0, r2, c1, c0, 0 + orr r2, r2, #(CPU_CONTROL_UNAL_ENABLE) + orr r2, r2, #(CPU_CONTROL_AFLT_ENABLE) + mcr p15, 0, r2, c1, c0, 0 +#endif + /* Start loader */ b main ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
svn commit: r248963 - head/sys/dev/uart
Author: ian Date: Sun Mar 31 23:24:04 2013 New Revision: 248963 URL: http://svnweb.freebsd.org/changeset/base/248963 Log: Accommodate uart devices with large FIFOs (or DMA buffers which amount to the same thing) by allocating the uart(4) rx buffer based on the device's rxfifosz rather than using a hard-coded size of 384 bytes. The historical 384 byte size is 3 times the largest hard-coded fifo size in the tree, so use that ratio as a guide and allocate the buffer as three times rxfifosz, but never smaller than the historical size. Modified: head/sys/dev/uart/uart_core.c Modified: head/sys/dev/uart/uart_core.c == --- head/sys/dev/uart/uart_core.c Sun Mar 31 22:43:16 2013 (r248962) +++ head/sys/dev/uart/uart_core.c Sun Mar 31 23:24:04 2013 (r248963) @@ -457,7 +457,13 @@ uart_bus_attach(device_t dev) callout_init(&sc->sc_timer, 1); } - sc->sc_rxbufsz = 384; + /* +* Ensure there is room for at least three full FIFOs of data in the +* receive buffer (handles the case of low-level drivers with huge +* FIFOs), and also ensure that there is no less than the historical +* size of 384 bytes (handles the typical small-FIFO case). +*/ + sc->sc_rxbufsz = MAX(384, sc->sc_rxfifosz * 3); sc->sc_rxbuf = malloc(sc->sc_rxbufsz * sizeof(*sc->sc_rxbuf), M_UART, M_WAITOK); sc->sc_txbuf = malloc(sc->sc_txfifosz * sizeof(*sc->sc_txbuf), ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
svn commit: r248964 - head/sys/arm/at91
Author: ian Date: Mon Apr 1 00:00:10 2013 New Revision: 248964 URL: http://svnweb.freebsd.org/changeset/base/248964 Log: Enable hardware flow control and high speed bulk data transfer in at91 uarts. Changes to make rtc/cts flow control work... This does not turn on the builtin hardware flow control on the SoC's usart device, because that doesn't work on uart1 due to a chip erratum (they forgot to wire up pin PA21 to RTS0 internally). Instead it uses the hardware flow control logic where the tty layer calls the driver to assert and de-assert the flow control lines as needed. This prevents overruns at the tty layer (app doesn't read fast enough), but does nothing for overruns at the driver layer (interrupts not serviced fast enough). To work around the wiring problem with RTS0, the driver reassigns that pin as a GPIO and controls it manually. It only does so if given permission via hint.uart.1.use_rts0_workaround=1, to prevent accidentally driving the pin if uart1 is used without flow control (because something not related to serial IO could be wired to that pin). In addition to the RTS0 workaround, driver changes were needed in the area of reading the current set of DCE signals. A priming read is now done at attach() time, and the interrupt routine now sets SER_INT_SIGCHG when any of the DCE signals change. Without these changes, nothing could ever be transmitted, because the tty layer thought CTS was de-asserted (when in fact we had just never read the status register, and the hwsig variable was init'd to CTS de-asserted). Changes to support bulk high-speed (230kbps and higher) data reception... Allow the receive fifo size to be tuned with hint.uart..fifo_bytes. For high speed receive, a fifo size of 1024 works well. The default is still 128 bytes if no hint is provided. Using a value larger than 384 requires a change in dev/uart/uart_core.c to size the intermediate buffer as MAX(384, 3*sc->sc_rxfifosize). Recalculate the receive timeout whenever the baud rate changes. At low baud rates (19.2kbps and below) the timeout is the number of bits in 2 characters. At higher speed it's calculated to be 500 microseconds worth of bits. The idea is to compromise between being responsive in interactive situations and not timing out prematurely during a brief pause in bulk data flow. The old fixed timeout of 1.5 characters was just 32 microseconds at 460kbps. At interrupt time, check for receiver holding register overrun status and set the corresponding status bit in the return value. When handling a buffer overrun, get a single buffer emptied and handed back to the hardware as quickly as possible, then deal with the second buffer. This at least minimizes data loss compared to the old logic that fully processed both buffers before restarting the hardware. Rewrite the logic for handling buffers after a receive timeout. The original author speculated in a comment that there may be a race with high speed data. There was, although it was rare. The code now handles all three possible scenarios on receive timeout: two empty buffers, one empty and one partial buffer, or one full and one partial buffer. Reviewed by: imp Modified: head/sys/arm/at91/uart_dev_at91usart.c Modified: head/sys/arm/at91/uart_dev_at91usart.c == --- head/sys/arm/at91/uart_dev_at91usart.c Sun Mar 31 23:24:04 2013 (r248963) +++ head/sys/arm/at91/uart_dev_at91usart.c Mon Apr 1 00:00:10 2013 (r248964) @@ -1,6 +1,7 @@ /*- * Copyright (c) 2005 M. Warner Losh * Copyright (c) 2005 Olivier Houchard + * Copyright (c) 2012 Ian Lepore * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -42,12 +43,18 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include +#include +#include #include #include "uart_if.h" -#define DEFAULT_RCLK at91_master_clock -#defineUSART_BUFFER_SIZE 128 +#defineDEFAULT_RCLKat91_master_clock +#defineUSART_DEFAULT_FIFO_BYTES128 + +#defineUSART_DCE_CHANGE_BITS (USART_CSR_CTSIC | USART_CSR_DCDIC | \ +USART_CSR_DSRIC | USART_CSR_RIIC) /* * High-level UART interface. @@ -63,7 +70,8 @@ struct at91_usart_softc { bus_dma_tag_t tx_tag; bus_dmamap_t tx_map; uint32_t flags; -#defineHAS_TIMEOUT 1 +#defineHAS_TIMEOUT 0x1 +#defineUSE_RTS0_WORKAROUND 0x2 bus_dma_tag_t rx_tag; struct at91_usart_rx ping_pong[2]; struct at91_usart_rx *ping; @@ -193,6 +201,20 @@ at91_usart_param(struct uart_bas *bas, i if (DEFAULT_RCLK != 0) WR4(bas, USART_BRGR, BAUD2DIVISOR(baudrate)); + /* +* Set the receive timeout
Re: svn commit: r246713 - in head/sys: arm/arm cam cam/ctl cam/scsi conf dev/aac dev/advansys dev/aha dev/ahb dev/ahci dev/aic dev/aic7xxx dev/amr dev/arcmsr dev/ata dev/buslogic dev/ciss dev/dpt dev/
On Tue, 2013-02-12 at 16:57 +, Konstantin Belousov wrote: > Author: kib > Date: Tue Feb 12 16:57:20 2013 > New Revision: 246713 > URL: http://svnweb.freebsd.org/changeset/base/246713 > > Log: > Reform the busdma API so that new types may be added without modifying > every architecture's busdma_machdep.c. It is done by unifying the > bus_dmamap_load_buffer() routines so that they may be called from MI > code. The MD busdma is then given a chance to do any final processing > in the complete() callback. > > The cam changes unify the bus_dmamap_load* handling in cam drivers. > > The arm and mips implementations are updated to track virtual > addresses for sync(). Previously this was done in a type specific > way. Now it is done in a generic way by recording the list of > virtuals in the map. > > Submitted by: jeff (sponsored by EMC/Isilon) > Reviewed by:kan (previous version), scottl, > mjacob (isp(4), no objections for target mode changes) > Discussed with: ian (arm changes) > Tested by: marius (sparc64), mips (jmallet), isci(4) on x86 (jharris), > amd64 (Fabian Keil ) > > Added: > head/sys/kern/subr_bus_dma.c (contents, props changed) > [...] I've just discovered that _bus_dmamap_load_vlist() gets a compile warning when building tinderbox on an i386 host, while building for PAE and XEN: cc1: warnings being treated as errors /local/build/staging/freebsd/head/src/sys/kern/subr_bus_dma.c: In function '_bus_dmamap_load_vlist': /local/build/staging/freebsd/head/src/sys/kern/subr_bus_dma.c:69: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] My build machine is i386 PAE running 8.3 (needs to be that old for our build system at $work), so if this is a bogus error caused by building -current on such a downlevel system, I appologize in advance for the noise. -- Ian ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
svn commit: r248965 - in head/sys: arm/s3c2xx0 arm/sa11x0 dev/uart mips/adm5120 mips/rt305x sparc64/pci
Author: ian Date: Mon Apr 1 00:44:20 2013 New Revision: 248965 URL: http://svnweb.freebsd.org/changeset/base/248965 Log: Fix low-level uart drivers that set their fifo sizes in the softc too late. uart(4) allocates send and receiver buffers in attach() before it calls the low-level driver's attach routine. Many low-level drivers set the fifo sizes in their attach routine, which is too late. Other drivers set them in the probe() routine, so that they're available when uart(4) allocates buffers. This fixes the ones that were setting the values too late by moving the code to probe(). Modified: head/sys/arm/s3c2xx0/uart_dev_s3c2410.c head/sys/arm/sa11x0/uart_dev_sa1110.c head/sys/dev/uart/uart_dev_imx.c head/sys/dev/uart/uart_dev_pl011.c head/sys/dev/uart/uart_dev_quicc.c head/sys/dev/uart/uart_dev_sab82532.c head/sys/dev/uart/uart_dev_z8530.c head/sys/mips/adm5120/uart_dev_adm5120.c head/sys/mips/rt305x/uart_dev_rt305x.c head/sys/sparc64/pci/sbbc.c Modified: head/sys/arm/s3c2xx0/uart_dev_s3c2410.c == --- head/sys/arm/s3c2xx0/uart_dev_s3c2410.c Mon Apr 1 00:00:10 2013 (r248964) +++ head/sys/arm/s3c2xx0/uart_dev_s3c2410.c Mon Apr 1 00:44:20 2013 (r248965) @@ -233,14 +233,6 @@ static kobj_method_t s3c2410_methods[] = int s3c2410_bus_probe(struct uart_softc *sc) { - return (0); -} - -static int -s3c2410_bus_attach(struct uart_softc *sc) -{ - uintptr_t irq; - switch(s3c2xx0_softc->sc_cpu) { case CPU_S3C2410: sc->sc_txfifosz = 16; @@ -253,7 +245,15 @@ s3c2410_bus_attach(struct uart_softc *sc default: return (ENXIO); } - + + return (0); +} + +static int +s3c2410_bus_attach(struct uart_softc *sc) +{ + uintptr_t irq; + sc->sc_hwiflow = 0; sc->sc_hwoflow = 0; Modified: head/sys/arm/sa11x0/uart_dev_sa1110.c == --- head/sys/arm/sa11x0/uart_dev_sa1110.c Mon Apr 1 00:00:10 2013 (r248964) +++ head/sys/arm/sa11x0/uart_dev_sa1110.c Mon Apr 1 00:44:20 2013 (r248965) @@ -156,6 +156,8 @@ static kobj_method_t sa1110_methods[] = int sa1110_bus_probe(struct uart_softc *sc) { + sc->sc_txfifosz = 3; + sc->sc_rxfifosz = 1; return (0); } @@ -164,8 +166,6 @@ sa1110_bus_attach(struct uart_softc *sc) { bcopy(&sc->sc_sysdev->bas, &sc->sc_bas, sizeof(sc->sc_bas)); -sc->sc_txfifosz = 3; -sc->sc_rxfifosz = 1; sc->sc_hwiflow = 0; uart_setreg(&sc->sc_bas, SACOM_CR3, CR3_RXE | CR3_TXE | CR3_RIE | CR3_TIE); return (0); Modified: head/sys/dev/uart/uart_dev_imx.c == --- head/sys/dev/uart/uart_dev_imx.cMon Apr 1 00:00:10 2013 (r248964) +++ head/sys/dev/uart/uart_dev_imx.cMon Apr 1 00:44:20 2013 (r248965) @@ -187,9 +187,6 @@ imx_uart_bus_attach(struct uart_softc *s imx_uart_init(bas, 115200, 8, 1, 0); } - sc->sc_rxfifosz = 1; - sc->sc_txfifosz = 1; - (void)imx_uart_bus_getsig(sc); /* XXX workaround to have working console on manut prompt */ @@ -353,6 +350,9 @@ imx_uart_bus_probe(struct uart_softc *sc if (error) return (error); + sc->sc_rxfifosz = 1; + sc->sc_txfifosz = 1; + device_set_desc(sc->sc_dev, "imx_uart"); return (0); } Modified: head/sys/dev/uart/uart_dev_pl011.c == --- head/sys/dev/uart/uart_dev_pl011.c Mon Apr 1 00:00:10 2013 (r248964) +++ head/sys/dev/uart/uart_dev_pl011.c Mon Apr 1 00:44:20 2013 (r248965) @@ -278,9 +278,6 @@ uart_pl011_bus_attach(struct uart_softc /* Clear RX & TX interrupts */ __uart_setreg(bas, UART_ICR, IMSC_MASK_ALL); - sc->sc_rxfifosz = 1; - sc->sc_txfifosz = 1; - return (0); } @@ -377,6 +374,9 @@ uart_pl011_bus_probe(struct uart_softc * device_set_desc(sc->sc_dev, "PrimeCell UART (PL011)"); + sc->sc_rxfifosz = 1; + sc->sc_txfifosz = 1; + return (0); } Modified: head/sys/dev/uart/uart_dev_quicc.c == --- head/sys/dev/uart/uart_dev_quicc.c Mon Apr 1 00:00:10 2013 (r248964) +++ head/sys/dev/uart/uart_dev_quicc.c Mon Apr 1 00:44:20 2013 (r248965) @@ -293,9 +293,6 @@ quicc_bus_attach(struct uart_softc *sc) quicc_setup(bas, 9600, 8, 1, UART_PARITY_NONE); } - sc->sc_rxfifosz = 1; - sc->sc_txfifosz = 1; - /* Enable interrupts on the receive buffer. */ rb = quicc_read2(bas, QUICC_PRAM_SCC_RBASE(bas->chan - 1)); st = quicc_read2(bas, rb);
Re: svn commit: r247962 - head/cddl/contrib/opensolaris/tools/ctf/cvt
on 08/03/2013 00:43 Dimitry Andric said the following: > Author: dim > Date: Thu Mar 7 22:43:50 2013 > New Revision: 247962 > URL: http://svnweb.freebsd.org/changeset/base/247962 > > Log: > Fix error in r247960: actually assign the basename to match.iim_file. I've got some bad news. First of all, sorry for not being thorough enough when this change was originally proposed. I rebuilt only ctfconvert with the patch, but ctfmerge was left alone. It seems that r247960 + r247962 (this commit) broke ctfmerge in my environment (head + clang). While .o files have expected ctf information, combined files miss ctf data for functions. I haven't dug yet into this problem, but I suspect that there is some mismatch at another place (or even multiple places) where STT_FILE is used. > Pointed out by: avg > Pointy hat to: dim > MFC after: 1 week > X-MFC-With: r247960 > > Modified: > head/cddl/contrib/opensolaris/tools/ctf/cvt/output.c > > Modified: head/cddl/contrib/opensolaris/tools/ctf/cvt/output.c > == > --- head/cddl/contrib/opensolaris/tools/ctf/cvt/output.c Thu Mar 7 > 22:32:41 2013(r247961) > +++ head/cddl/contrib/opensolaris/tools/ctf/cvt/output.c Thu Mar 7 > 22:43:50 2013(r247962) > @@ -379,8 +379,7 @@ sort_iidescs(Elf *elf, const char *file, > switch (GELF_ST_TYPE(sym.st_info)) { > case STT_FILE: > bname = strrchr(match.iim_name, '/'); > - bname = bname == NULL ? match.iim_name : bname + 1; > - match.iim_file = match.iim_name; > + match.iim_file = bname == NULL ? match.iim_name : bname > + 1; > continue; > case STT_OBJECT: > tolist = iiburst->iib_objts; > -- Andriy Gapon ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"