Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 29 Oct 2015 22:55:01 -0700
From:      Russell Haley <russ.haley@gmail.com>
To:        freebsd-arm <freebsd-arm@freebsd.org>
Subject:   Hummingboard with MicroSOM Dual (not dual lite)
Message-ID:  <CABx9NuQChHiBhEkCpA0GWK=pjTdMkZDZd6yF4Y6Zk-6PLc5k5A@mail.gmail.com>

next in thread | raw e-mail | index | archive | help
--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: <Open Firmware Device Tree>
simplebus0: <Flattened device tree simple bus> on ofwbus0
simplebus1: <Flattened device tree simple bus> mem 0x2000000-0x20fffff on
simplebus0
simplebus2: <Flattened device tree simple bus> mem 0x2000000-0x203ffff on
simplebus1
imx6_anatop0: <Freescale i.MX6 Analog PLLs and Power> mem
0x20c8000-0x20c8fff irq 81,86,159 on simplebus1
simplebus3: <Flattened device tree simple bus> on simplebus1
simplebus4: <Flattened device tree simple bus> mem 0x2100000-0x21fffff on
simplebus0
ocotp0: <Freescale On-Chip One-Time-Programmable Memory> mem
0x21bc000-0x21bffff on simplebus4
ccm0: <Freescale i.MX6 Clock Control Module> mem 0x20c4000-0x20c7fff irq
119,120 on simplebus1
l2cache0: <PL310 L2 cache controller> mem 0xa02000-0xa02fff irq 124 on
simplebus0
l2cache0: Part number: 0x3, release: 0x7
l2cache0: L2 Cache enabled: 1024KB/32B 16 ways
imx_iomux0: <Freescale i.MX pin configuration> mem 0x20e0000-0x20e3fff on
simplebus1
gic0: <ARM Generic Interrupt Controller> mem
0xa01000-0xa01fff,0xa00100-0xa001ff on ofwbus0
gic0: pn 0x390, arch 0x1, rev 0x2, implementer 0x43b irqs 160
imx_gpt0: <Freescale i.MX GPT timer> mem 0x2098000-0x209bfff irq 87 on
simplebus1
Event timer "iMXGPT" frequency 66000000 Hz quality 800
Timecounter "iMXGPT" frequency 66000000 Hz quality 1000
mp_tmr0: <ARM MPCore Timers> mem 0xa00600-0xa0061f irq 29 on simplebus0
Event timer "MPCore" frequency 492000000 Hz quality 1000
uart0: <Freescale i.MX UART> mem 0x2020000-0x2023fff irq 58 on simplebus2
uart0: console (115200,n,8,1)
gpio0: <Freescale i.MX GPIO Controller> mem 0x209c000-0x209ffff irq 98,99
on simplebus1
gpiobus0: <GPIO bus> on gpio0
gpioc0: <GPIO controller> on gpio0
gpio1: <Freescale i.MX GPIO Controller> mem 0x20a0000-0x20a3fff irq 100,101
on simplebus1
gpiobus1: <GPIO bus> on gpio1
gpioc1: <GPIO controller> on gpio1
gpio2: <Freescale i.MX GPIO Controller> mem 0x20a4000-0x20a7fff irq 102,103
on simplebus1
gpiobus2: <GPIO bus> on gpio2
gpioc2: <GPIO controller> on gpio2
gpio3: <Freescale i.MX GPIO Controller> mem 0x20a8000-0x20abfff irq 104,105
on simplebus1
gpiobus3: <GPIO bus> on gpio3
gpioc3: <GPIO controller> on gpio3
gpio4: <Freescale i.MX GPIO Controller> mem 0x20ac000-0x20affff irq 106,107
on simplebus1
gpiobus4: <GPIO bus> on gpio4
gpioc4: <GPIO controller> on gpio4
gpio5: <Freescale i.MX GPIO Controller> mem 0x20b0000-0x20b3fff irq 108,109
on simplebus1
gpiobus5: <GPIO bus> on gpio5
gpioc5: <GPIO controller> on gpio5
gpio6: <Freescale i.MX GPIO Controller> mem 0x20b4000-0x20b7fff irq 110,111
on simplebus1
gpiobus6: <GPIO bus> on gpio6
gpioc6: <GPIO controller> on gpio6
imx_wdog0: <Freescale i.MX Watchdog> mem 0x20bc000-0x20bffff irq 112 on
simplebus1
usbphy0: <Freescale i.MX6 USB PHY> mem 0x20c9000-0x20c9fff irq 76 on
simplebus1
usbphy1: <Freescale i.MX6 USB PHY> mem 0x20ca000-0x20cafff irq 77 on
simplebus1
src0: <Freescale i.MX6 System Reset Controller> mem 0x20d8000-0x20dbfff irq
123,128 on simplebus1
hdmi0: <Freescale i.MX6 HDMI core> mem 0x120000-0x128fff irq 147 on
simplebus1
hdmi0: HDMI controller 13:0a:a0:c1
GPR3 0f000000 -> 0f000000
ehci0: <Freescale i.MX integrated USB controller> 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--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CABx9NuQChHiBhEkCpA0GWK=pjTdMkZDZd6yF4Y6Zk-6PLc5k5A>