[U-Boot] [PATCH v2 3/3] rockchip: evb-rk3399: update document for board bring up

Kever Yang kever.yang at rock-chips.com
Wed Sep 13 01:16:20 UTC 2017


Hi Jagan,


On 08/31/2017 02:13 PM, Jagan Teki wrote:
> Hi Kever,
>
> On Thu, Aug 31, 2017 at 6:37 AM, Kever Yang <kever.yang at rock-chips.com> wrote:
>> Hi Jagan,
>>
>>
>>
>> On 08/30/2017 11:10 PM, Jagan Teki wrote:
>>> + Philipp
>>>
>>> On Mon, Aug 21, 2017 at 6:30 PM, Kever Yang <kever.yang at rock-chips.com>
>>> wrote:
>>>> Since we support ATF in SPL and add script for it, let's make the
>>>> document up to date.
>>>>
>>>> Signed-off-by: Kever Yang <kever.yang at rock-chips.com>
>>>> Acked-by: Philipp Tomsich <philipp.tomsich at theobroma-systems.com>
>>>> ---
>>>>
>>>> Changes in v2:
>>>> - typo fix, evb-firefly->firefly-rk3399
>>>>
>>>>    board/rockchip/evb_rk3399/README | 79
>>>> ++++++++++++++++++++++++++++++++--------
>>>>    1 file changed, 63 insertions(+), 16 deletions(-)
>>>>
>>>> diff --git a/board/rockchip/evb_rk3399/README
>>>> b/board/rockchip/evb_rk3399/README
>>>> index fb8bb19..b5c7614 100644
>>>> --- a/board/rockchip/evb_rk3399/README
>>>> +++ b/board/rockchip/evb_rk3399/README
>>>> @@ -18,8 +18,8 @@ evb key features:
>>>>    * PMIC: rk808
>>>>    * debug console: UART2
>>>>
>>>> -In order to support Arm Trust Firmware(ATF), we need to use the
>>>> -miniloader from rockchip which:
>>>> +In order to support Arm Trust Firmware(ATF), we can use either SPL or
>>>> +miniloader from rockchip to do:
>>>>    * do DRAM init
>>>>    * load and verify ATF image
>>>>    * load and verify U-Boot image
>>>> @@ -32,8 +32,8 @@ Get the Source and prebuild binary
>>>>      > mkdir ~/evb_rk3399
>>>>      > cd ~/evb_rk3399
>>>>      > git clone https://github.com/ARM-software/arm-trusted-firmware.git
>>>> -  > git clone https://github.com/rockchip-linux/rkbin
>>>> -  > git clone https://github.com/rockchip-linux/rkflashtool
>>>> +  > git clone https://github.com/rockchip-linux/rkbin.git
>>>> +  > git clone https://github.com/rockchip-linux/rkdeveloptool.git
>>>>
>>>>    Compile the ATF
>>>>    ===============
>>>> @@ -42,32 +42,79 @@ Compile the ATF
>>>>      > make realclean
>>>>      > make CROSS_COMPILE=aarch64-linux-gnu- PLAT=rk3399 bl31
>>>>
>>>> +  Or you can get the bl31.elf directly from Rockchip:
>>>> +  cp rkbin/rk33/rk3399_bl31_v1.00.elf ../u-boot/bl31.elf
>>>> +
>>>> +  Get bl31.elf in this step, copy it to U-Boot root dir:
>>>> +  > cp bl31.elf ../u-boot/
>>>> +
>>>>    Compile the U-Boot
>>>>    ==================
>>>>
>>>>      > cd ../u-boot
>>>> -  > make CROSS_COMPILE=aarch64-linux-gnu- evb-rk3399_defconfig all
>>>> +  > export ARCH=arm64
>>>> +  > export CROSS_COMPILE=aarch64-linux-gnu-
>>>> +  > make evb-rk3399_defconfig
>>>> +  for firefly-rk3399, use below instead:
>>>> +  > make firefly-rk3399_defconfig
>>>> +  > make
>>>> +  > make u-boot.itb
>>>>
>>>> -Compile the rkflashtool
>>>> -=======================
>>>> +  Get spl/u-boot-spl.bin and u-boot.itb in this step.
>>>>
>>>> +Compile the rkdeveloptool
>>>> +=======================
>>>> +  Follow instructions in latest README
>>>>      > cd ../rkflashtool
>>>> +  > autoreconf -i
>>>> +  > ./configure
>>>>      > make
>>>> +  > sudo make install
>>>> +
>>>> +  Get rkdeveloptool in you Host in this step.
>>>> +
>>>> +Both origin binaries and Tool are ready now, choose either option 1 or
>>>> +option 2 to deploy U-Boot.
>>>> +
>>>> +Package the image
>>>> +=================
>>>>
>>>> -Package the image for miniloader
>>>> -================================
>>>> +Package the image for U-Boot SPL(option 1)
>>>> +--------------------------------
>>>>      > cd ..
>>>> -  > cp arm-trusted-firmware/build/rk3399/release/bl31.bin rkbin/rk33
>>>> +  > tools/mkimage -n rk3399 -T rksd -d spl/u-boot-spl.bin idbspl.img
>>>> +
>>>> +  Get idbspl.img in this step.
>>>> +
>>>> +Package the image for Rockchip miniloader(option 2)
>>>> +------------------------------------------
>>>> +  > cd ..
>>>> +  > cp arm-trusted-firmware/build/rk3399/release/bl31.elf rkbin/rk33
>>>>      > ./rkbin/tools/trust_merger rkbin/tools/RK3399TRUST.ini
>>>>      > ./rkbin/tools/loaderimage --pack --uboot u-boot/u-boot-dtb.bin
>>>> uboot.img
>>>> -  > mkdir image
>>>> -  > mv trust.img ./image/
>>>> -  > mv uboot.img ./image/rk3399evb-uboot.bin
>>>>
>>>> -Flash the image
>>>> -===============
>>>> +  Get trust.img and uboot.img in this step.
>>>> +
>>>> +Flash the image to eMMC
>>>> +=======================
>>>> +
>>>> +Flash the image with U-Boot SPL(option 1)
>>>> +-------------------------------
>>>>    Power on(or reset with RESET KEY) with MASKROM KEY preesed, and then:
>>>> +  > rkdeveloptool db rkbin/rk33/rk3399_loader_v1.08.106.bin
>>>> +  > rkdeveloptool wl 64 u-boot/idbspl.img
>>>> +  > rkdeveloptool wl 512 u-boot/u-boot.itb
>>>> +  > rkdeveloptool rd
>>> Do we still need rk3399_loader_v1.08.106.bin? if u-boot.itb has ATF,
>>
>> We need this for db command for now, if we enable rockusb in U-Boot, then we
>> don't
>> need db command and we don't need rk3399_loader_v1.08.106.bin
>>
>> rk3399_loader_v1.08.106.bin will be there for Windows flash tool like
>> rkdeveloptool in Linux.
> Ok, thanks for the info.
>
> I'm trying to boot from SDMMC and written SPL and u-boot.itb
> (ATF+Cortex-M0) like
>
> # dd if=spl of=/dev/mmcblk0 seek=64
> # dd if=u-boot.itb of=/dev/mmcblk0 seek=512
>
> With this ROM picked boot image from eMMC instead of SDMMC and hang at
> 'try to start rockusb' [1]

In the boot rom, the eMMC has higher priority if it have firmware.
So what you need to do is override the firmware in eMMC, then you can 
use SD card.
You can do this.
dd if=/dev/zero of=out count=4096

rkdeveloptool db rkxx_loader_vx.xx.bin
rkdeveloptool wl 0x40 out
rkdeveloptool rd

After this, the bootrom should not able to found firmware in eMMC, and 
it will
try to find the firmware in SD card.

Thanks,
- Kever
>
> Do I need to loader here? and wiki [2] doesn't mention to write loader
> for ARMv8 with SPL
>
> [1] https://paste.ubuntu.com/25436760/
> [2]
> #Boot_from_SD.2FTF_Card
>


More information about the U-Boot mailing list