svn commit: r248940 - head

2013-03-31 Thread Andrew Turner
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

2013-03-31 Thread Andrew Turner
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

2013-03-31 Thread Ian Lepore
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

2013-03-31 Thread Jilles Tjoelker
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

2013-03-31 Thread Michael Tuexen
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

2013-03-31 Thread Andriy Gapon
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

2013-03-31 Thread Ian Lepore
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

2013-03-31 Thread Ian Lepore
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

2013-03-31 Thread Ian Lepore
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

2013-03-31 Thread Ian Lepore
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/

2013-03-31 Thread Ian Lepore
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

2013-03-31 Thread Ian Lepore
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

2013-03-31 Thread Andriy Gapon
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"