Orange Pi One
Ian Lepore
ian at freebsd.org
Tue Apr 19 14:19:48 UTC 2016
On Tue, 2016-04-19 at 09:53 +0200, Milan Obuch wrote:
> On Tue, 19 Apr 2016 09:34:08 +0200
> Emmanuel Vadot <manu at bidouilliste.com> wrote:
>
> > On Tue, 19 Apr 2016 09:20:12 +0200
> > Milan Obuch <freebsd-arm at dino.sk> wrote:
> >
> > >
> > > One step further - compiled ubldr as part of buildworld, tried,
> > > and
> > > found I need ubldr.bin to start boot process, ubldr just keeps
> > > crashing with following:
> > >
> > > Booting from: mmc 0 ubldr
> > > reading ubldr
> > > 235312 bytes read in 63 ms (3.6 MiB/s)
> > > ## Starting application at 0x01000098 ...
> > > undefined instruction
> > > pc : [<01c0f00c>] lr : [<5ff77138>]
> > > reloc pc : [<ebc9f00c>] lr : [<4a007138>]
> > > sp : 5bf4ba70 ip : 00000030 fp : 5ff76ffc
> > > r10: 00000001 r9 : 5bf4fee8 r8 : 00000000
> > > r7 : 00000001 r6 : 5bf513e0 r5 : 01000098 r4 : 00000000
> > > r3 : 00000001 r2 : 01c28000 r1 : 5bf513e4 r0 : 00000000
> > > Flags: nZCv IRQs off FIQs off Mode SVC_32
> > > Resetting CPU ...
> > >
> > > resetting ...
> > >
> > > but ubldr.bin works (command typed manually):
> > >
> > > => fatload mmc 0 0x42000000 ubldr.bin
> > > reading ubldr.bin
> > > 192096 bytes read in 58 ms (3.2 MiB/s)
> > > => go 0x42000000
> > > ## Starting application at 0x42000000 ...
> > > Consoles: U-Boot console
> > > Compatible U-Boot API signature found @0x5bf504c8
> > >
> > > FreeBSD/arm U-Boot loader, Revision 1.2
> > > (root at zeta.dino.sk, Tue Apr 19 06:33:11 CEST 2016)
> > >
> > > DRAM: 512MB
> > > 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 disk0s1:
> > > -
> > > can't load 'kernel'
> > >
> > > Type '?' for a list of commands, 'help' for more detailed help.
> > > loader>
> > >
> > > Now I can type loader command, so I can try to load kernel if I
> > > had
> > > one (I tried to build it from stock FreeBSD sources, but
> > > something
> > > was wrong, I must figure why buildkernel did not produce
> > > kernel...
> > > just testing now, waiting where it breaks).
> > >
> > > Milan
> >
> > For ubldr to work you need to set UBLDR_LOADADDR variable to the
> > correct address.
> >
>
> Where is this defined? Or should be? Not top important issue now, as
> I
> can continue with ubldr.bin for some time, but I still would like to
> check it.
>
Actually, ubldr (the elf version) shouldn't even exist anymore. Once I
got the relocation worked out for ubldr.bin, the plan was always to
eliminate the elf version and have just the .bin file. I left the elf
file around to allow time for crochet and other scripts to adjust
(which I think probably never happened).
FreeBSD image building (for snapshots and releases) was supposed to
transition to a new mechanism which built a single world for all
supported systems, and a board-specific kernel for each supported
board. The only way to build a single world for all images is to
eliminate the elf ubldr which has to be compiled differently for each
board.
-- Ian
More information about the freebsd-arm
mailing list