PINE64

Full Version: not able to flash u-boot onto SD Card
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
greetings,
I have manged to build u-boot as per http://opensource.rock-chips.com/wiki_U-Boot . However, after burning the images to SD card, booting stops before starting my built version of u-boot, i.e., no u-boot prompt!
Serial console output below, also, further down build details.

Can anyone please shed light whats wrong in the process ?
thanks 
consoleadam

serial output
========
 DDR version 1.06 20170424
In
LPDDR3
786MHz
Bus Width=32 Col=10 Bank=8 Row=15 CS=1 Die Bus-Width=32 Size=1024MB
ddrconfig:1
OUT
Boot1 Release Time: 2017-05-18, version: 2.43
ChipType = 0x11, emmc reinit
emmc reinit
SdmmcInit=2 20
SdmmcInit=0 0
BootCapSize=0
UserCapSize=7587MB
FwPartOffset=2000 , 0
StorageInit ok = 48039
Raw SecureMode = 0
SecureInit read PBA: 0x4
SecureInit read PBA: 0x404
SecureInit read PBA: 0x804
SecureInit read PBA: 0xc04
SecureInit read PBA: 0x1004
SecureInit ret = 0, SecureMode = 0
LoadTrustBL
No find bl30.bin
No find bl32.bin
Load uboot, ReadLba = 2000
Load OK, addr=0x200000, size=0x7b5f4
RunBL31 0x10000
NOTICE:  BL31: v1.3(debug):f947c7e
NOTICE:  BL31: Built : 09:28:45, May 31 2017
NOTICE:  BL31:Rockchip release version: v1.3
INFO:    ARM GICv2 driver initiapteed sec cpu_context!
INFO:    boot cpu mask: 1
INFO:    platng runtime services
WARNING: No OPTEE provided by BL2 boot loadTEE will return SMC_UNK
ERROR:   Error initializing runtime sernormal world
INFO:    Entry point address = 0x200000
INFO:
-------------------

Build and Flashing in details:
==================

[email protected]:~/rock64$ git clone https://github.com/rockchip-linux/u-boot.git

[email protected]:~/rock64/u-boot$ make ARCH=arm -j4 CROSS_COMPILE=aarch64-linux-gnu- distclean

[email protected]:~/rock64/u-boot$ make ARCH=arm -j4 CROSS_COMPILE=aarch64-linux-gnu- evb-rk3328_defconfig all

BL2 ddr.bin & idbloader.img
-----------------------------
[email protected]:~/rock64/u-boot$ dd if=../rkbin/rk33/rk3328_ddr_786MHz_v1.06.bin of=ddr.bin bs=4 skip=1

[email protected]:~/rock64/u-boot$ tools/mkimage -n rk3328 -T rksd -d ddr.bin idbloader.img

[email protected]:~/rock64/u-boot$ cat ../rkbin/rk33/rk3328_miniloader_v2.43.bin >> idbloader.img

BL3 trust.img & u-boot.img
----------------------------
[email protected]:~/rock64/u-boot$ ../rkbin/tools/loaderimage --pack --uboot ./u-boot-dtb.bin uboot.img 0x200000



[email protected]:~/rock64/u-boot$ cp ../rkbin/rk33/rk3328_loader_ddr786_v1.06.243.bin ./

[email protected]:~/rock64/u-boot$ cat >trust.ini <<EOF
[VERSION]
MAJOR=1
MINOR=2
[BL30_OPTION]
SEC=0
[BL31_OPTION]
SEC=1
PATH=../rkbin/rk33/rk3328_bl31_v1.34.bin
ADDR=0x10000
[BL32_OPTION]
SEC=0
[BL33_OPTION]
SEC=0
[OUTPUT]
PATH=trust.img
EOF

[email protected]:~/rock64/u-boot$ ../rkbin/tools/trust_merger trust.ini

flashing
---------
[email protected]:~/rock64/u-boot$ sudo dd if=idbloader.img of=/dev/sdb seek=64 bs=512
[email protected]:~/rock64/u-boot$ sudo dd if=uboot.img of=/dev/sdb seek=16384 bs=512
[email protected]:~/rock64/u-boot$ sudo dd if=trust.img of=/dev/sdb seek=24576 bs=512
FIXED
the trick was to re-create the paritions after dd'ing, as following:

making dummy system.img (of size 2000 MB)
--------------------------------------------
[email protected]:~/rock64$ dd status=progress if=/dev/zero of=system.img bs=1M count=0 seek=2000 status=none

adding my custom built images to the dummy image
-----------------------------------------------------------------
[email protected]:~/rock64$ umount /media/consoleadam/*
[email protected]:~/rock64$ dd status=progress if=idbloader.img of=system.img seek=64 conv=fsync status=none
[email protected]:~/rock64$ dd status=progress if=uboot.img of=system.img seek=16384 conv=fsync status=none
[email protected]:~/rock64$ dd status=progress if=rk3328evb-trust.img of=system.img seek=24576 conv=fsync status=none

you can add kernel/rootfs images to dummy system.img from another built image as following:
-------------------------------------------------------------------------------------------------------------
[email protected]:~/rock64$ dd status=progress if=jessie-openmediavault-rock64-0.5.10-118-arm64.img of=system.img seek=32768 skip=32768 count=229376 conv=fsync status=none
[email protected]:~/rock64$ dd status=progress if=jessie-openmediavault-rock64-0.5.10-118-arm64.img of=system.img seek=262144 skip=262144 count=4194304 conv=fsync status=none
[email protected]:~/rock64$ sync

re-partitioning the dummy image
--------------------------------------
[email protected]:~/rock64$ parted -s system.img mklabel gpt
[email protected]:~/rock64$ parted -s system.img unit s mkpart loader1 64 8063
[email protected]:~/rock64$ parted -s system.img unit s mkpart reserved1 8064 8191
[email protected]:~/rock64$ parted -s system.img unit s mkpart reserved2 8192 16383
[email protected]:~/rock64$ parted -s system.img unit s mkpart loader2 16384 24575
[email protected]:~/rock64$ parted -s system.img unit s mkpart atf 24576 32767
[email protected]:~/rock64$ parted -s system.img unit s mkpart reserved3 32768 262143
[email protected]:~/rock64$ parted -s system.img unit s mkpart root 262144 100%
[email protected]:~/rock64$ parted -s system.img set 7 boot on

below in one go:
-----------------

[email protected]:~/rock64$ parted -s system.img mklabel gpt; \
> sync; \
> parted -s system.img unit s mkpart loader1 64 8063; \
> sync; \
> parted -s system.img unit s mkpart reserved1 8064 8191; \
> sync; \
> parted -s system.img unit s mkpart reserved2 8192 16383; \
> sync; \
> parted -s system.img unit s mkpart loader2 16384 24575; \
> sync; \
> parted -s system.img unit s mkpart atf 24576 32767; \
> sync; \
> parted -s system.img unit s mkpart reserved3 32768 262143; \
> parted -s system.img unit s mkpart root 262144 100%; \
> sync;\
> parted -s system.img set 7 boot on


burning the dummy image to SDcard
-------------------------------------------
[email protected]:~/rock64$ sudo dd status=progress if=system.img of=/dev/sdb conv=fsync

Note that you can only dd specific parts [dd status=progress if=idbloader.img of=system.img seek=64 conv=fsync status=none] directly to SDcard instead of to dummy image (system.img) but also make sure to repartition the SDcard after dd'ing!
See "below in one go" above, can this all be done on the rock64, ending up on an sdcard plugged into a reader on a usb hub? I have most of the work files except "linux build-master.zip already installed on a 1T spinning rust drive on the usb3 port. Along with a prebuilt realtime kernel v4.14.15-rc13 waiting to be tested. I have installed quite a bit of stuff to a minimal stretch ayufan published, and I'd like to have all that available on the new sdcard when I swap it from the reader to the boot socket.

Following the instructions in that linux-build-master.zip, I have it up to finishing the qemu-stuff install, but binfmt-misc gives errors. I there a better name for that?
====
[email protected]:/media/slash/home/rock64/v4.14.15-rt13$ sudo apt install binfmt-misc
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package binfmt-misc
====
stretch has a package whose description reads like I would expect for a -misc, so I installed that. No idea if its works yet. binfmt-support/stable,now 2.1.6-2 arm64 [installed]

And, although docker and docker-compose are installed on the rock64, the only response I can get looks like a long helpmsg from docker-compose. Docker is not to be found in the xfce menu's, nor from a terminal, nor does it show up in the app box at bottom center of the screen.
This is my first experience with docker, so I'll need some tutoring.

synaptic claims its a gtk/kde app, and its actually running xfce, at a screen resolution thats displayable on a 1366x768 monitor, running at 1280x760 but the fonts are just fuzzed up enough its difficult to read. Is there any help for that? The display configurator id's the monitor as a 19" AOC, which is correct, but only offers 800x600 and 1280x760. Fugly fonts.

Lots of questions I'm afraid.

Many Thanks, gene83