From owner-freebsd-arm@freebsd.org Sun Nov 15 06:16:11 2015 Return-Path: Delivered-To: freebsd-arm@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A4E68A2FB9B for ; Sun, 15 Nov 2015 06:16:11 +0000 (UTC) (envelope-from russ.haley@gmail.com) Received: from mail-vk0-x230.google.com (mail-vk0-x230.google.com [IPv6:2607:f8b0:400c:c05::230]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 5DE48136B for ; Sun, 15 Nov 2015 06:16:11 +0000 (UTC) (envelope-from russ.haley@gmail.com) Received: by vkas68 with SMTP id s68so12915248vka.2 for ; Sat, 14 Nov 2015 22:16:10 -0800 (PST) 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=BEqf54Of8W/oGbhIA5eUfBm+mwhnLQr3FSp2cPekpso=; b=fs8Z+XTaGt18woL8kec6NxP0JX1V6s/3KnpJWE6t3JLOu6TQwyBpT8kPGo2DSzHktG B21yrl0RfuVAx5AiMHTAA5j7bN+lkjLy18/6C/TVFqk/yRQ+pAndV0ik/kE12F8ikP5v M7NvAifSXfKns7SI2MnhSyPHVwA1DFEzA6l5Cc0fnN4qq3Kw8gATux1T/J2+7Ox3I0gk CtDRZ1KVv++Li4y0yN8467BKkeEt3s1H+H1Oulak1jWmdNlPUOf6YEPFmmr35lUes8V+ N/yh8rfgJaCZxoZmVOn8aWXPPhKntF0qBzTE8h/qVWq756+3j47hLQWH9NOTdhefIqLk qkdA== MIME-Version: 1.0 X-Received: by 10.31.8.135 with SMTP id 129mr6594305vki.107.1447568170345; Sat, 14 Nov 2015 22:16:10 -0800 (PST) Received: by 10.31.47.137 with HTTP; Sat, 14 Nov 2015 22:16:10 -0800 (PST) In-Reply-To: References: Date: Sat, 14 Nov 2015 22:16:10 -0800 Message-ID: Subject: Re: Hummingboard SATA From: Russell Haley To: Warner Losh Cc: freebsd-arm Content-Type: text/plain; charset=UTF-8 X-Content-Filtered-By: Mailman/MimeDel 2.1.20 X-BeenThere: freebsd-arm@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "Porting FreeBSD to ARM processors." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 15 Nov 2015 06:16:11 -0000 Hi Warner, I am looking over the CAM code and it's relationship with ahci. There are also bits of information about CAM around: a chapter in the Kong book, a chapter in the developers handbook. The file ahci.c, line 660 - ahci_ch_attach() - this seems to be where the magic happens to attach the ahci driver to the CAM system. Specifically line 754 "cam_sim_alloc()". What I am not seeing is the relationship to the ata_da.c code. I noticed that my drive wasn't listed in the ata_da.c, ada_quirk_table. I don't know anything about quirks but imagine that this is an optional item? I think I am done reviewing the code for now and will move back to ddb and figure out how to examine the kernel checking for devices (read: no idea what I am doing). If anyone has any pointers on how to hook into the probe or attach methods using the debugger, or even any good scripts, I'd be grateful. Thanks, Russ On Wed, Nov 11, 2015 at 9:39 PM, Warner Losh wrote: > > > On Wed, Nov 11, 2015 at 10:22 PM, Russell Haley > wrote: > >> Hello again, >> >> I have started looking at SATA support in FreeBSD by first reading the man >> pages and then examining the code. The Joseph Kong book is helping >> considerably to understand the structures. >> >> I see that there are three drivers in play: ahci, ada and ata. Man >> indicates that ahci takes precedence in driver selection. *Is that the >> driver for Arm and the Hummingboard?* >> > > ata is out of the picture now. It never really was used on arm. > > ahci is likely the driver you want, though I'm not sure what a Hummingboard > is. A quick google search suggests it is a imx6 board. That's good news > because FreeBSD has an attachment. > > ahci is what's call a CAM SIM. This means that it will create the ata xpt > (handled > in sys/cam/ata/ata_xpt.c). The XPT then enumerates the transport and finds > the > sata drives, which wind up getting assigned the ada PERIPH driver (handled > by > sys/cam/ata/ata_da.c). > > Chances are very good you have a problem with the ahci driver and/or > how that driver is connected / sets up the iMX6 SoC sata hardware. > > >> What I can't seem to find is any direction on getting a debugger hooked up >> to driver code. Do I use gdb somehow, or do I use the kernel debugger? I'm >> going back over the Developers handbook again. >> > > I'd start with ddb. > > >> I also don't understand how to boot with the -d option. When is this >> entered? I have used the sysctl to enter the debugger and poked around >> but it doesn't mean much yet. >> >> sysctl debug.kdb.enter=1 >> > > I don't think that the -d option is implemented on arm. Most of the ARM > kernel config files have ALT_BREAK_TO_DEBUGGER defined, which means > you'll need to send ~ ^B (that's hit return, hit the tilde key, hit > control B). > That will get you to the ddb prompt (db>). man 8 ddb for instructions on > how to use it. > > Warner >