U-boot issues on Banana Pi M2

Erik Moe e.moe at rcn.com
Thu Aug 4 03:04:20 UTC 2016


I spent some time looking into this issue.  I believe that the u-boot-bananapim2 port is broken because the underlining u-boot code is broken, at least for the BPI M2.  I built u-boot directly from source trying both the v2016.07 and v2016.09-rc1 releases and saw the same failure: "Net:   data abort".  I built u-boot from HEAD as of 26fb8db since there were a number of commits for sunxi. I’m not sure which one resolved the issue, but by checking out the latest sources and applying the freebsd patches I was able to get my BPI M2 to boot:

U-Boot SPL 2016.09-rc1-00211-g26fb8db-dirty (Aug 02 2016 - 04:43:10)
DRAM: 1024 MiB
Trying to boot from MMC1


U-Boot 2016.09-rc1-00211-g26fb8db-dirty (Aug 02 2016 - 04:43:10 -0500) Allwinner Technology

CPU:   Allwinner A31s (SUN6I)
Model: Sinovoip BPI-M2
DRAM:  1 GiB
WARNING: Caches not enabled
MMC:   SUNXI SD/MMC: 0
reading u-boot.env

** Unable to read "u-boot.env" from mmc0:1 **
Using default environment

In:    serial
Out:   serial
Err:   serial
Net:   eth0: ethernet at 01c30000
starting USB...
USB0:   USB EHCI 1.00
USB1:   USB OHCI 1.0
scanning bus 0 for devices... 2 USB Device(s) found
Hit any key to stop autoboot:  0
Booting from: mmc 0 ubldr.bin
reading ubldr.bin
224660 bytes read in 51 ms (4.2 MiB/s)
## No elf image at address 0x42000000
## Starting application at 0x42000000 ...
Consoles: U-Boot console
Compatible U-Boot API signature found @0x7af3f4e8

FreeBSD/armv6 U-Boot loader, Revision 1.2
(root at dora, Sat Jul 16 04:11:42 CDT 2016)

DRAM: 1024MB
MMC Device 1 not found
Number of U-Boot devices: 1
U-Boot env: loaderdev='mmc 0'
Found U-Boot device: disk
  Checking unit=0 slice=<auto> partition=<auto>... good.
Booting from disk0s2a:
/boot/kernel/kernel data=0x65cd64+0x12729c syms=[0x4+0x8e630+0x4+0xa3375]

Hit [Enter] to boot immediately, or any other key for command prompt.
Booting [/boot/kernel/kernel]...
/boot/dtb/bananapim2.dtb size=0x6151
Loaded DTB from file 'bananapim2.dtb'.
Kernel entry at 0x42200100...
Kernel args: (null)
KDB: debugger backends: ddb
KDB: current backend: ddb
Copyright (c) 1992-2016 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 12.0-CURRENT #0 24eff34(master): Sat Jul 16 04:23:13 CDT 2016
    root at dora:/usr/home/emoe/Projects/ARM/bannapi-m2/obj/arm.armv6/usr/home/emoe/Projects/ARM/src/sys/ALLWINNER arm
FreeBSD clang version 3.8.0 (tags/RELEASE_380/final 262564) (based on LLVM 3.8.0)
WARNING: WITNESS option enabled, expect reduced performance.
VT: init without driver.
CPU: Cortex A7 rev 3 (Cortex-A core)
 Supported features: ARM_ISA THUMB2 JAZELLE THUMBEE ARMv4 Security_Ext
 WB enabled LABT branch prediction disabled
LoUU:2 LoC:3 LoUIS:2
Cache level 1:
 32KB/64B 4-way data cache WB Read-Alloc Write-Alloc
 32KB/32B 2-way instruction cache Read-Alloc
Cache level 2:
 1024KB/64B 8-way unified cache WB Read-Alloc Write-Alloc
real memory  = 1073741824 (1024 MB)
avail memory = 1035898880 (987 MB)
FreeBSD/SMP: Multiprocessor System Detected: 4 CPUs
random: entropy device external interface
kbd0 at kbdmux0
ofwbus0: <Open Firmware Device Tree>
aw_ccu0: <Allwinner Clock Control Unit> on ofwbus0
.
.
.

Thanks,
Erik

> On Jul 28, 2016, at 6:49 PM, Erik Moe <e.moe at rcn.com> wrote:
> 
> I’m having some issues with the u-boot-bananapim2 in ports.  It looks like a data abort exception.  Does anybody else have a BPI M2 that this port is working for them?  If I read this right it’s dying in the following function:
> 
> 4a00218c g     F .text  00000038 sunxi_gpio_set_cfgpin
> 
> I think someone reported a similar but not the same issue upstream:  http://lists.denx.de/pipermail/u-boot/2016-June/258837.html
> 
> Thanks,
> Erik
> 
> 
> U-Boot SPL 2016.07 (Jul 16 2016 - 02:40:04)
> DRAM: 1024 MiB
> Trying to boot from MMC1
> 
> 
> U-Boot 2016.07 (Jul 16 2016 - 02:40:04 -0500) Allwinner Technology
> 
> CPU:   Allwinner A31s (SUN6I)
> Model: Sinovoip BPI-M2
> DRAM:  1 GiB
> WARNING: Caches not enabled
> MMC:   SUNXI SD/MMC: 0
> reading u-boot.env
> 
> ** Unable to read "u-boot.env" from mmc0:1 **
> Using default environment
> 
> In:    serial
> Out:   serial
> Err:   serial
> Net:   data abort
> pc : [<7ef5f180>]          lr : [<00000000>]
> reloc pc : [<4a002180>]    lr : [<cb0a3000>]
> sp : 7af35f84  ip : 7efab502     fp : 00000017
> r10: 7efaaefe  r9 : 7af3cee8     r8 : 000040a0
> r7 : 7ef9ee14  r6 : 00000000     r5 : 00000001  r4 : 00000000
> r3 : 0000000f  r2 : 00000001     r1 : 00000000  r0 : ea00000e
> Flags: nzCv  IRQs off  FIQs off  Mode SVC_32
> Resetting CPU ...
> 
> resetting ...
> 



More information about the freebsd-arm mailing list