From owner-p4-projects@FreeBSD.ORG Mon Jul 2 14:37:08 2012 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 4C74A106567C; Mon, 2 Jul 2012 14:37:08 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id EABB8106566B for ; Mon, 2 Jul 2012 14:37:07 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id D39E08FC17 for ; Mon, 2 Jul 2012 14:37:07 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id q62Eb75o062266 for ; Mon, 2 Jul 2012 14:37:07 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id q62Eb7FO062263 for perforce@freebsd.org; Mon, 2 Jul 2012 14:37:07 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Mon, 2 Jul 2012 14:37:07 GMT Message-Id: <201207021437.q62Eb7FO062263@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 213777 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 Jul 2012 14:37:08 -0000 http://p4web.freebsd.org/@@213777?ac=10 Change 213777 by rwatson@rwatson_svr_ctsrd_mipsbuild on 2012/07/02 14:36:44 Define a kernel option to disable console-level flow control for writes in the Altera JTAG UART driver, and set in various BERI kernel configurations. In the future we will try to do something more interesting with the AC bit. This doesn't affect the high-level tty driver, which exposes flow control up the stack, but should prevent the boot from stalling when JTAG is not connected. Affected files ... .. //depot/projects/ctsrd/beribsd/src/sys/conf/options.mips#5 edit .. //depot/projects/ctsrd/beribsd/src/sys/dev/altera/jtag_uart/altera_jtag_uart_cons.c#3 edit .. //depot/projects/ctsrd/beribsd/src/sys/mips/conf/BERI_DE4_MDROOT#5 edit .. //depot/projects/ctsrd/beribsd/src/sys/mips/conf/BERI_DE4_SDROOT#6 edit .. //depot/projects/ctsrd/beribsd/src/sys/mips/conf/BERI_SIM_MDROOT#2 edit Differences ... ==== //depot/projects/ctsrd/beribsd/src/sys/conf/options.mips#5 (text+ko) ==== @@ -47,6 +47,8 @@ ISA_MIPS64 opt_cputype.h ISA_MIPS64v2 opt_cputype.h +ALTERA_JTAG_UART_FC_DISABLE opt_jtag_uart.h + COMPAT_FREEBSD32 opt_compat.h YAMON opt_global.h ==== //depot/projects/ctsrd/beribsd/src/sys/dev/altera/jtag_uart/altera_jtag_uart_cons.c#3 (text+ko) ==== @@ -31,6 +31,8 @@ #include __FBSDID("$FreeBSD$"); +#include "opt_jtag_uart.h" + #include #include #include @@ -154,6 +156,42 @@ ALTERA_JTAG_UART_CONTROL_OFF))); } +static inline void +aju_cons_control_write(uint32_t v) +{ + + mips_iowrite_uint32le(mips_phys_to_uncached(BERI_UART_BASE + + ALTERA_JTAG_UART_CONTROL_OFF), v); +} + +/* + * Routines to query (and clear) the AC bit, which indicates that a JTAG + * client has polled since it was last cleared. + */ +__unused static int +aju_cons_ac_get(void) +{ + uint32_t v; + + AJU_CONSOLE_LOCK_ASSERT(); + + v = aju_cons_control_read(); + return ((v & ALTERA_JTAG_UART_CONTROL_AC) != 0); + +} + +__unused static int +aju_cons_ac_clear(void) +{ + uint32_t v; + + AJU_CONSOLE_LOCK_ASSERT(); + + v = aju_cons_control_read(); + v &= ~ALTERA_JTAG_UART_CONTROL_AC; + aju_cons_control_write(v); +} + /* * Slightly higher-level routines aware of buffering and flow control. */ @@ -161,8 +199,12 @@ aju_cons_writable(void) { +#ifdef ALTERA_JTAG_UART_FC_DISABLE + return (1); +#else return ((aju_cons_control_read() & ALTERA_JTAG_UART_CONTROL_WSPACE) != 0); +#endif } static int ==== //depot/projects/ctsrd/beribsd/src/sys/mips/conf/BERI_DE4_MDROOT#5 (text+ko) ==== @@ -21,6 +21,8 @@ makeoptions MFS_IMAGE=/local/scratch/rnw24/mdroot.img options ROOTDEVNAME=\"ufs:md0\" +options ALTERA_JTAG_UART_FC_DISABLE + device altera_avgen device altera_jtag_uart device altera_sdcard ==== //depot/projects/ctsrd/beribsd/src/sys/mips/conf/BERI_DE4_SDROOT#6 (text+ko) ==== @@ -14,6 +14,8 @@ options ROOTDEVNAME=\"ufs:altera_sdcard0\" +options ALTERA_JTAG_UART_FC_DISABLE + device altera_avgen device altera_jtag_uart device altera_sdcard ==== //depot/projects/ctsrd/beribsd/src/sys/mips/conf/BERI_SIM_MDROOT#2 (text+ko) ==== @@ -20,6 +20,8 @@ makeoptions MFS_IMAGE=/local/scratch/rnw24/mdroot.img options ROOTDEVNAME=\"ufs:md0\" +options ALTERA_JTAG_UART_FC_DISABLE + device altera_avgen device altera_jtag_uart device altera_sdcard