From owner-svn-src-user@FreeBSD.ORG Mon Jul 9 17:34:04 2012 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A226B106566C; Mon, 9 Jul 2012 17:34:04 +0000 (UTC) (envelope-from jceel@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 741C48FC14; Mon, 9 Jul 2012 17:34:04 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q69HY4N8031096; Mon, 9 Jul 2012 17:34:04 GMT (envelope-from jceel@svn.freebsd.org) Received: (from jceel@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q69HY47u031093; Mon, 9 Jul 2012 17:34:04 GMT (envelope-from jceel@svn.freebsd.org) Message-Id: <201207091734.q69HY47u031093@svn.freebsd.org> From: Jakub Wojciech Klama Date: Mon, 9 Jul 2012 17:34:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r238304 - user/jceel/soc2012_armv6/sys/dev/fdt X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 Jul 2012 17:34:04 -0000 Author: jceel Date: Mon Jul 9 17:34:03 2012 New Revision: 238304 URL: http://svn.freebsd.org/changeset/base/238304 Log: Add shorthand function for finding FDT node of UART selected for console (in "chosen" section). Modified: user/jceel/soc2012_armv6/sys/dev/fdt/fdt_common.c user/jceel/soc2012_armv6/sys/dev/fdt/fdt_common.h Modified: user/jceel/soc2012_armv6/sys/dev/fdt/fdt_common.c ============================================================================== --- user/jceel/soc2012_armv6/sys/dev/fdt/fdt_common.c Mon Jul 9 17:28:26 2012 (r238303) +++ user/jceel/soc2012_armv6/sys/dev/fdt/fdt_common.c Mon Jul 9 17:34:03 2012 (r238304) @@ -129,6 +129,30 @@ moveon: return (0); } +phandle_t +fdt_lookup_console_uart(void) +{ + char buf[64]; + phandle_t node, chosen; + + /* + * Retrieve /chosen/std{in,out}. + */ + if ((chosen = OF_finddevice("/chosen")) == -1) + return (-1); + if (OF_getprop(chosen, "stdin", buf, sizeof(buf)) <= 0) + return (-1); + if ((node = OF_finddevice(buf)) == -1) + return (-1); + if (OF_getprop(chosen, "stdout", buf, sizeof(buf)) <= 0) + return (-1); + if (OF_finddevice(buf) != node) + /* Only stdin == stdout is supported. */ + return (-1); + + return (node); +} + int fdt_read_ranges(phandle_t node, struct fdt_range **ranges, int addr_cells, int par_addr_cells, int size_cells) Modified: user/jceel/soc2012_armv6/sys/dev/fdt/fdt_common.h ============================================================================== --- user/jceel/soc2012_armv6/sys/dev/fdt/fdt_common.h Mon Jul 9 17:28:26 2012 (r238303) +++ user/jceel/soc2012_armv6/sys/dev/fdt/fdt_common.h Mon Jul 9 17:34:03 2012 (r238304) @@ -97,6 +97,7 @@ phandle_t fdt_find_compatible(phandle_t, int fdt_get_mem_regions(struct mem_region *, int *, uint32_t *); int fdt_get_phyaddr(phandle_t, device_t, int *, void **); int fdt_immr_addr(vm_offset_t); +phandle_t fdt_lookup_console_uart(void); int fdt_read_ranges(phandle_t node, struct fdt_range **ranges, int addr_cells, int par_addr_cells, int size_cels); u_long fdt_ranges_lookup(struct fdt_range *ranges, int nranges, u_long addr,