bootelf required?

Ian Lepore ian at FreeBSD.org
Fri Feb 28 23:58:30 UTC 2014


The more likely entry point for ubldr is an offset of 0x54.  If the
version of u-boot is new and enables data caches, the "go" command
doesn't disable them like our software expects (bootelf and bootm and
the other more formal boot commands do).  That might make the full
sequence something like:

  fatload mmc 2 88000000 ubldr
  dcache off ; dcache flush
  go 88000054

For that to work, ubldr has to have been linked to run at 88000000.
Whatever value crochet uses for UBLDR_LOADADDR= is what should be used
as the loadaddr in u-boot.  Any address in the range of 10000000 -
8x000000 should work.  The 'x' factor is where u-boot itself lives,
gotta be careful not to load over the top of it.  Usually the 'bdinfo'
command in u-boot will tell you about the memory u-boot itself uses.
88000000 is probably safe on a 2gb system.

I'm not sure what the "mmc read 10042000 a 400 && go 10042000" thing is
all about.

-- Ian

On Fri, 2014-02-28 at 15:31 -0800, Pete Wright wrote:
> 
> On 02/28/14 15:21, Warner Losh wrote:
> > Look up the ‘start’ symbol address and try ‘go <addr>’ where <addr> likely is 0x880000c0
> > iirc.
> > 
> 
> thanks for the tip!  doesn't seem to be helping - system hangs after:
> CM-FX6 # go 0x880000c0
> ## Starting application at 0x880000C0 ...
> 
> printenv contains the following line:
> run_eboot=echo Starting EBOOT ...; mmc dev ${mmcdev} && mmc rescan &&
> mmc read 10042000 a 400 && go 10042000
> 
> which i manually ran like so:
> 
> CM-FX6 # mmc dev 2
> mmc2 is current device
> CM-FX6 # mmc rescan
> CM-FX6 # fatload mmc 2 0x10800000 ubldr
> reading ubldr
> 
> 245290 bytes read
> CM-FX6 # mmc read 10042000 a 400
> 
> MMC read: dev # 2, block # 10, count 1024 ... 1024 blocks read: OK
> CM-FX6 # go 10042000
> ## Starting application at 0x10042000 ...
> 
> at which point the box becomes unresponsive and i manually power-cycle it.
> 
> 
> -pete
> 




More information about the freebsd-arm mailing list