RPi booting problem

Ian Lepore ian at FreeBSD.org
Sun Mar 10 14:53:41 UTC 2013


On Sun, 2013-03-10 at 09:40 +0100, Mats Mellstrand wrote:
> On 10 mar 2013, at 03:45, Tim Kientzle <tim at kientzle.com> wrote:
> 
> > 
> > On Mar 9, 2013, at 6:29 AM, Mats Mellstrand wrote:
> > 
> >> Hi
> >> 
> >> I have checked out the latest from head and built world and kernel (conf/RPI-B) and finally created and image that I written to a flash.
> >> I have used freebsd-uboot-20130201.tar.gz 
> >> 
> >> When I try to boot,  the uboot goes in to a cyclic restart...
> >> 
> >> U-Boot 2013.01-rc1-g6709570-dirty (Nov 30 2012 - 19:09:28)
> >> 
> >> DRAM:  448 MiB
> >> WARNING: Caches not enabled
> >> MMC:   bcm2835_sdhci: 0
> >> Using default environment
> >> 
> >> In:    serial
> >> Out:   lcd
> >> Err:   lcd
> >> bcm2835: USB power in ON
> >> Net:   Net Initialization Skipped
> >> No ethernet found.
> >> Hit any key to stop autoboot:  0 
> >> reading uEnv.txt
> >> reading boot.scr
> >> 137 bytes read in 9023 ms (0 Bytes/s)
> >> Running bootscript from mmc0 ...
> >> ## Executing script at 00200000
> >> reading ubldr
> >> 238023 bytes read in 60497 ms (2.9 KiB/s)
> >> ## Starting application at 0x02000054 ...
> >> 
> >> 
> >> U-Boot 2013.01-rc1-g6709570-dirty (Nov 30 2012 - 19:09:28)
> >> 
> >> over and over ….
> > 
> > Seems like your ubldr is broken.
> 
> 
> Yes, that was the problem. Thank's!
> 
> Now, what compiler flags should I use to build the ubldr?
> I have rebuilt ubldr many times.
> 
> 

The only flag I use that's specifically related to ubldr is
UBLDR_LOADADDR= which has to be set differently for each SoC.  It's the
physical address at which ubldr is loaded and runs, and it has to avoid
overlapping the addresses used by the kernel it's going to load.

A value of UBLDR_LOADADDR=0x81000000 works for both BeagleBone and RPi
due to an RPi quirk where 1 GB of address space is mapped to all four 1
GB windows, with different caching attributes in each mapping.  The
caching differences are not significant in terms of the bootloader, so
ubldr built for BB "just works" on RPi even though the normal ram
mapping for RPi starts at 0x0 rather than 0x80000000.

-- Ian




More information about the freebsd-arm mailing list