Subject: Re: Enable to boot from emmc on rockpro64

From: Pierre Langlois <[email-masked]>
Date: Tue, 27 Jul 2021 20:38:18 +0100

Whoops, I hadn't realised the bug email wasn't included in the email,
sorry!

Pierre Langlois writes:

> Hi Vagrant,
>
> I just had a break-through with this! See inline.
>
> Vagrant Cascadian writes:
>
>> On 2021-07-13, Pierre Langlois wrote:
>>> I'm afraid since commit 3a851d45576e046d696fcf35b34d57b2cd28ea49 [0]
>>> I've not been able to boot from eMMC on the rockpro64 board, it freezes
>>> before loading the kernel. Re-introducing the work-around fixed the
>>> issue for me (see patch attached).
>>>
>>> Did we mean to remove the work-around? I'm wondering if there's
>>> something I'm missing, or if I should instead boot from a USB device.
>>
>> I definitely tested this on pinebook-pro and probably just assumed it
>> would also fix the issue on rockpro64...
>>
>>
>>> I've also updated u-boot to 2021.07 but I'm seeing the same boot issue
>>> so it doesn't appear to be fixed upstream :-/
>>>
>>> Anybody know of any other work around? If not, are you happy with the
>>> patch attached?
>>
>> I'll try to test on rockpro64 and see if I can confirm the issue and
>> your fix...
>>
>>
>> live well,
>>   vagrant
>>
>>> From f3c647bb447706f465a3fb4b8d6e09cd089dbed9 Mon Sep 17 00:00:00 2001
>>> From: Pierre Langlois <[email-masked]>
>>> Date: Sat, 8 May 2021 16:19:23 +0100
>>> Subject: [PATCH 1/3] gnu: u-boot-rockpro64-rk3399: Disable USB boot.
>>>
>>> * gnu/packages/bootloaders.scm (u-boot-rockpro64-rk3399)[arguments]: Add
>>> 'patch-rockpro64-config phase.
>>> ---
>>>  gnu/packages/bootloaders.scm | 11 ++++++++---
>>>  1 file changed, 8 insertions(+), 3 deletions(-)
>>>
>>> diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm
>>> index 742992a119..75705a27c1 100644
>>> --- a/gnu/packages/bootloaders.scm
>>> +++ b/gnu/packages/bootloaders.scm
>>> @@ -12,7 +12,7 @@
>>>  ;;; Copyright © 2019 Mathieu Othacehe <[email-masked]>
>>>  ;;; Copyright © 2020 Björn Höfling <[email-masked]>
>>>  ;;; Copyright © 2018, 2019, 2020 Vagrant Cascadian <[email-masked]>
>>> -;;; Copyright © 2020 Pierre Langlois <[email-masked]>
>>> +;;; Copyright © 2020, 2021 Pierre Langlois <[email-masked]>
>>>  ;;; Copyright © 2021 Vincent Legoll <[email-masked]>
>>>  ;;; Copyright © 2021 Brice Waegeneire <[email-masked]>
>>>  ;;;
>>> @@ -931,11 +931,16 @@ to Novena upstream, does not load u-boot.img from the first partition.")
>>>          (substitute-keyword-arguments (package-arguments base)
>>>            ((#:phases phases)
>>>             `(modify-phases ,phases
>>> +              (add-after 'unpack 'patch-rockpro64-config
>>> +                ;; Fix regression in 2020.10 causing freezes on boot with USB boot enabled.
>>> +                ;; See https://gitlab.manjaro.org/manjaro-arm/packages/core/uboot-rockpro64/-/issues/4
>>> +                (lambda _
>>> +                  (substitute* "configs/rockpro64-rk3399_defconfig"
>>> +                    (("CONFIG_USE_PREBOOT=y") "CONFIG_USE_PREBOOT=n"))))
>>>                (add-after 'patch-rockpro64-config 'set-environment
>
> Wait a minute, there was a bug here on master! The 'set-environment
> phase runs after 'patch-rockpro64-config phase, it should be 'unpack.
> This was the reason it was hanging on boot for me, it wasn't to do with
> PREBOOT, ah-ha! :-D
>
> That's nice, I was really confused about this issue, thinking I maybe
> had a faulty board.
>
>
>
>>>                  (lambda* (#:key inputs #:allow-other-keys)
>>>                    (setenv "BL31" (string-append (assoc-ref inputs "firmware")
>>> -                                                "/bl31.elf"))
>>> -                  #t))
>>> +                                                "/bl31.elf"))))
>>>                ;; Phases do not succeed on the bl31 ELF.
>>>                (delete 'strip)
>>>                (delete 'validate-runpath)))))
>>> --
>>> 2.32.0
>>>
>>>
>>>
>>> [0]: https://lists.gnu.org/archive/html/guix-commits/2021-05/msg00085.html
>
> Thanks,
> Pierre