From owner-freebsd-arm@freebsd.org Fri Oct 30 05:55:03 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 24DF5A217B5 for ; Fri, 30 Oct 2015 05:55:03 +0000 (UTC) (envelope-from russ.haley@gmail.com) Received: from mail-vk0-x22e.google.com (mail-vk0-x22e.google.com [IPv6:2607:f8b0:400c:c05::22e]) (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 AF4511609 for ; Fri, 30 Oct 2015 05:55:02 +0000 (UTC) (envelope-from russ.haley@gmail.com) Received: by vkex70 with SMTP id x70so41005720vke.3 for ; Thu, 29 Oct 2015 22:55:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:date:message-id:subject:from:to:content-type; bh=xiT+RNszIC+I/pNdLEnrKTZvVq9LRjMJRU9N0NEPdNs=; b=g0jmoyP0Qm0PUFRIQ7aI/CUGlWsgXn7nrldQ8dDOOHabUKgws88iRrMRgGUSC7uQGK 0L0xjN/WLHNHiaq6tCzgvDFMh+4vEGM9V7X9H4+CtDCxUOiLXV+b0XnZ/kf6aTPqQhCY u/KBjJ/C/QKEUds9kmvWdl4To6lKeu2P+MvLF0vpyYG0muksYzB+zTvjblKSU8BIR5gN uu33gSt+gIjB9FgMD7+YgorSoduJCco1iNVKSIXokvx3vzFLxUPMcWKkQhOLyGPN+ToD 6JKhdAW9EcoIhO1LGNbe5+BhQ7zmYiyGmzGWW/Mo0AmyCpGhRMhn7/FhJGCtajazeMcL hoXw== MIME-Version: 1.0 X-Received: by 10.31.132.195 with SMTP id g186mr4210735vkd.13.1446184501451; Thu, 29 Oct 2015 22:55:01 -0700 (PDT) Received: by 10.31.66.9 with HTTP; Thu, 29 Oct 2015 22:55:01 -0700 (PDT) Date: Thu, 29 Oct 2015 22:55:01 -0700 Message-ID: Subject: Hummingboard with MicroSOM Dual (not dual lite) From: Russell Haley To: freebsd-arm Content-Type: multipart/mixed; boundary=001a114418b27d443f05234c117e 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: Fri, 30 Oct 2015 05:55:03 -0000 --001a114418b27d443f05234c117e Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Hey guys, five questions tonight. 1) I'm so pleased to have a working hummingboard, I went and ordered a msata SSD for it. Only after getting home today and reading the IMX6 page again did I realize that PCIe isn't working yet. Does anyone know the status? Supposing a working PCIe driver, what do I need to do to enable the SSD? - I assume I will need to compile a driver into the kernel to load that= ? - Do I need to add an ftd entry? And then I wondered about moving the rootfs off of the sdcard. I assume ubldr uses /boot/loader.conf, but how does ubldr get the location for loader.conf? I know you can hard code the kernel to use a specific location for rootfs, can that also be passed in? 2) Wi-fi. I found out that the SolidRun MicroSOM has a Broadcom BCM4330 chip option (which I have). http://wiki.solid-run.com/doku.php?id=3Dproducts:imx6:microsom:btwifi Only the 2.4Ghz works acording to the website. Anyway, the driver list on the current hardware page says BCM43xx is supported by the bwn driver. https://www.freebsd.org/relnotes/CURRENT/hardware/support.html https://www.freebsd.org/cgi/man.cgi?query=3Dbwn&sektion=3D4 Again, do I need to add something to the fdt file? 3) When booting the hummingboard from the latest snapshot, Env.txt wasn't found but if I left the default behaviour the kernel continued to load and the system booted. I paroused systemctl and the unit has two cpus loaded, but there is a variable that indicates it's a quad core. So, what is going on there? Then, I was then looking around on the SolidRun wiki and discovered that my hummingboard has a "MicroSOM Dual" NOT a "MicroSOM Dual Lite". That may be why I was getting a kernel panic when trying to run my own home brew build. I was manually instructing it to use the imx6dl-hummingboard.dtb (dual-lite) file. As per the website: "Note that there is a difference in physical hardware support and implementation between the dual-core =E2=80=9CDual Lite=E2=80=9D implemente= d on the MicroSOM i2, which is a separate product, and =E2=80=9CDual=E2=80=9D which = is incorporated in this offering." http://wiki.solid-run.com/doku.php?id=3Dproducts:imx6:microsom:dual Here is boot output from my home brew build: Booting [/boot/kernel/kernel]... /boot/dtb/imx6dl-hummingboard.dtb size=3D0x6dd9 Loaded DTB from file 'imx6dl-hummingboard.dtb'. Kernel entry at 0x10a00100... Kernel args: (null) KDB: debugger backends: ddb KDB: current backend: ddb Copyright (c) 1992-2015 The FreeBSD Project. Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994 The Regents of the University of California. All rights reserved. FreeBSD is a registered trademark of The FreeBSD Foundation. FreeBSD 11.0-CURRENT #3 r288164M: Wed Sep 23 20:48:13 PDT 2015 rhaley@Jailbird:/usr/obj/arm.armv6/usr/src/sys/IMX6 arm FreeBSD clang version 3.6.1 (tags/RELEASE_361/final 237755) 20150525 VT: init without driver. CPU: Cortex A9-r2 rev 10 (Cortex-A core) Supported features: ARM_ISA THUMB2 JAZELLE THUMBEE ARMv4 Security_Ext WB disabled EABT branch prediction enabled LoUU:2 LoC:2 LoUIS:2 Cache level 1: 32KB/32B 4-way data cache WB Read-Alloc Write-Alloc 32KB/32B 4-way instruction cache Read-Alloc real memory =3D 1073741824 (1024 MB) avail memory =3D 1039437824 (991 MB) FreeBSD/SMP: Multiprocessor System Detected: 2 CPUs random: entropy device external interface kbd0 at kbdmux0 ofwbus0: simplebus0: on ofwbus0 simplebus1: mem 0x2000000-0x20fffff on simplebus0 simplebus2: mem 0x2000000-0x203ffff on simplebus1 imx6_anatop0: mem 0x20c8000-0x20c8fff irq 81,86,159 on simplebus1 simplebus3: on simplebus1 simplebus4: mem 0x2100000-0x21fffff on simplebus0 ocotp0: mem 0x21bc000-0x21bffff on simplebus4 ccm0: mem 0x20c4000-0x20c7fff irq 119,120 on simplebus1 l2cache0: mem 0xa02000-0xa02fff irq 124 on simplebus0 l2cache0: Part number: 0x3, release: 0x7 l2cache0: L2 Cache enabled: 1024KB/32B 16 ways imx_iomux0: mem 0x20e0000-0x20e3fff on simplebus1 gic0: mem 0xa01000-0xa01fff,0xa00100-0xa001ff on ofwbus0 gic0: pn 0x390, arch 0x1, rev 0x2, implementer 0x43b irqs 160 imx_gpt0: mem 0x2098000-0x209bfff irq 87 on simplebus1 Event timer "iMXGPT" frequency 66000000 Hz quality 800 Timecounter "iMXGPT" frequency 66000000 Hz quality 1000 mp_tmr0: mem 0xa00600-0xa0061f irq 29 on simplebus0 Event timer "MPCore" frequency 492000000 Hz quality 1000 uart0: mem 0x2020000-0x2023fff irq 58 on simplebus2 uart0: console (115200,n,8,1) gpio0: mem 0x209c000-0x209ffff irq 98,99 on simplebus1 gpiobus0: on gpio0 gpioc0: on gpio0 gpio1: mem 0x20a0000-0x20a3fff irq 100,101 on simplebus1 gpiobus1: on gpio1 gpioc1: on gpio1 gpio2: mem 0x20a4000-0x20a7fff irq 102,103 on simplebus1 gpiobus2: on gpio2 gpioc2: on gpio2 gpio3: mem 0x20a8000-0x20abfff irq 104,105 on simplebus1 gpiobus3: on gpio3 gpioc3: on gpio3 gpio4: mem 0x20ac000-0x20affff irq 106,107 on simplebus1 gpiobus4: on gpio4 gpioc4: on gpio4 gpio5: mem 0x20b0000-0x20b3fff irq 108,109 on simplebus1 gpiobus5: on gpio5 gpioc5: on gpio5 gpio6: mem 0x20b4000-0x20b7fff irq 110,111 on simplebus1 gpiobus6: on gpio6 gpioc6: on gpio6 imx_wdog0: mem 0x20bc000-0x20bffff irq 112 on simplebus1 usbphy0: mem 0x20c9000-0x20c9fff irq 76 on simplebus1 usbphy1: mem 0x20ca000-0x20cafff irq 77 on simplebus1 src0: mem 0x20d8000-0x20dbfff irq 123,128 on simplebus1 hdmi0: mem 0x120000-0x128fff irq 147 on simplebus1 hdmi0: HDMI controller 13:0a:a0:c1 GPR3 0f000000 -> 0f000000 ehci0: mem 0x2184000-0x21841ff irq 75 on simplebus4 Fatal kernel mode data abort: 'Translation Fault (L1)' on read trapframe: 0xc2913ae0 FSR=3D00000005, FAR=3D00000004, spsr=3D600001d3 r0 =3D00000000, r1 =3Dc29600d0, r2 =3D00000000, r3 =3Dc2501378 r4 =3Dc2960080, r5 =3D00000001, r6 =3Dc296bdc0, r7 =3D00000001 r8 =3Dc2960080, r9 =3D00000000, r10=3D000000ff, r11=3Dc2913ba8 r12=3Dc275330c, ssp=3Dc2913b70, slr=3Dc2501454, pc =3Dc25010b4 [ thread pid 0 tid 100000 ] Stopped at keg_fetch_slab+0x164: ldr r3, [r2, #0x004]! Any input would be helpful, but I am happy to play with the official snapshots right now. 4) So if I want to compile and run things like ports or other stuff on my PC and then put it on my board I need to cross compile. I currently have a jail that I build all my arm stuff in. Is there a way to re-use the cross compilers from the buildworld to cross compile from ports or my own code? Is there any good instruction on this in the handbook or developers guide? 5) Documentation. I've got my feet wet. I put together a patch for the src.conf manpage and also proposed an update to the "advocacy/myths.html" web page on the freebsd-doc@ mailing list (I attached it for convenience, I'd really like some input). I can now build man pages and the website and I'll look at the handbooks soon. I saw on the ARM page that there is still documentation work to be done and I'm looking for direction on how contribute to that. Okay, that's it. Thanks guys! Russ --001a114418b27d443f05234c117e Content-Disposition: attachment; filename="myths.html" X-Attachment-Id: f_igd8wcdk0 MIME-Version: 1.0 Content-Type: text/plain; charset="ISO-8859-1"; name="myths.html" --001a114418b27d443f05234c117e--