From owner-freebsd-current@FreeBSD.ORG Fri Jul 6 18:46:41 2012 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id E19231065680; Fri, 6 Jul 2012 18:46:41 +0000 (UTC) (envelope-from lacombar@gmail.com) Received: from mail-wg0-f50.google.com (mail-wg0-f50.google.com [74.125.82.50]) by mx1.freebsd.org (Postfix) with ESMTP id 3EC568FC19; Fri, 6 Jul 2012 18:46:41 +0000 (UTC) Received: by wgbds11 with SMTP id ds11so9435838wgb.31 for ; Fri, 06 Jul 2012 11:46:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=hOugMstE6M00znJMurQZau5r9ib46wX0MqbqNmTpjMY=; b=nAJrCql3tVgz5aqE2Riujt7ymqIBP2NlpvwrAnOT76de5S5q0Gj2eq63ocfdU0gWB2 0Ek3SgGU8vRdZy0rOg3vQOfREWhzhaGyXXGmyQ5DM+P5nKgr6hg8WPlAdbsYm43zRTli a/3IwvLrM7eTXC5//Z1k1XjTY8VccxadwjRvaCXDYNv3ATbr2nQX8xFZ5QkbX/jwNLCB kTsHfuWEbQZyEbcRC08PQFyRYJsHJ646pcNSQbFO0m1H/H9FkmdHLB+/Ou5x7xHO5+gt 5vuVOsxadcVmG2bOFXX2wDTA2kIcCrULP3Y5zp9ZPfWAXaNJEhdiKjJJardwkSrF05Ue hNTg== MIME-Version: 1.0 Received: by 10.180.98.69 with SMTP id eg5mr9941011wib.3.1341600400354; Fri, 06 Jul 2012 11:46:40 -0700 (PDT) Received: by 10.216.23.200 with HTTP; Fri, 6 Jul 2012 11:46:40 -0700 (PDT) In-Reply-To: References: Date: Fri, 6 Jul 2012 14:46:40 -0400 Message-ID: From: Arnaud Lacombe To: Warner Losh Content-Type: text/plain; charset=ISO-8859-1 Cc: FreeBSD Hackers , FreeBSD Current Subject: Re: Interfacing devices with multiple parents within newbus X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 06 Jul 2012 18:46:42 -0000 Hi, On Fri, Jul 6, 2012 at 11:33 AM, Arnaud Lacombe wrote: > That's neither correct nor robust in a couple of way: > 1) you have no guarantee a device unit will always give you the same resource. this raises the following question: how can a device, today, figure out which parent in a given devclass would give it access to resources it needs. Say, you have gpiobus0 provided by a superio and gpiobus1 provided by the chipset and a LED on the chipset's GPIO. Now, say gpiobus0 attachment is conditional to some BIOS setting. How can you tell gpioled(4) to attach on the chipset provided GPIO without hardcoding unit number either way ? AFAIK, you can not. Even hints provided layout description is defeated. Each device in a given devclass need to have a set of unique attribute to allow a child to distinguish it from other potential parent in the same devclass... - Arnaud