diff mbox series

[bug#37741,2/3] gnu: Add arm-trusted-firmware-rk3399.

Message ID 20191014060136.31144-1-nomble@palism.com
State Accepted
Headers show
Series Update u-boot to 2019.10 and add u-boot-rockpro64-rk3399. | expand

Commit Message

nomble@palism.com Oct. 14, 2019, 6:01 a.m. UTC
From: Caliph Nomble <nomble@palism.com>

* gnu/packages/bootloaders.scm (arm-trusted-firmware-rk3399): New exported
variable.

Signed-off-by: Caliph Nomble <nomble@palism.com>
---
 gnu/packages/firmware.scm | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

Comments

Vagrant Cascadian Oct. 15, 2019, 4:02 a.m. UTC | #1
On 2019-10-14, nomble@palism.com wrote:
> * gnu/packages/bootloaders.scm (arm-trusted-firmware-rk3399): New exported
> variable.

Thanks for working on this!

Unfortunately this currently embeds a binary blob
(plat/rockchip/rk3399/drivers/dp/hdcp.bin) with no license.

I reported the issue upstream:

  https://github.com/ARM-software/tf-issues/issues/651

The proposed solution would be to enable a build flag to disables the
DRM feature that hdcp.bin is used for video streaming.

I've talked with Kever Yang from Rockchip about getting the ability to
disable the requirement for hdcp.bin upstream; I'm sure they'd welcome
patches too!

This would be good for both Debian and GNU Guix. There are several
rk3399 platforms depending on it.

live well,
  vagrant
Kever Yang Oct. 15, 2019, 6:38 a.m. UTC | #2
Hi Vagrant,

On 2019/10/15 下午12:02, Vagrant Cascadian wrote:
> On 2019-10-14, nomble@palism.com wrote:
>> * gnu/packages/bootloaders.scm (arm-trusted-firmware-rk3399): New exported
>> variable.
> Thanks for working on this!
>
> Unfortunately this currently embeds a binary blob
> (plat/rockchip/rk3399/drivers/dp/hdcp.bin) with no license.
>
> I reported the issue upstream:
>
>    https://github.com/ARM-software/tf-issues/issues/651


I have send the patch to ATF to remove the hdpc.bin, you can comment on it.

https://review.trustedfirmware.org/c/TF-A/trusted-firmware-a/+/2194


Thanks,

- Kever

>
> The proposed solution would be to enable a build flag to disables the
> DRM feature that hdcp.bin is used for video streaming.
>
> I've talked with Kever Yang from Rockchip about getting the ability to
> disable the requirement for hdcp.bin upstream; I'm sure they'd welcome
> patches too!
>
> This would be good for both Debian and GNU Guix. There are several
> rk3399 platforms depending on it.
>
> live well,
>    vagrant
Vagrant Cascadian Oct. 17, 2019, 5:46 a.m. UTC | #3
On 2019-10-15, Kever Yang wrote:
> On 2019/10/15 下午12:02, Vagrant Cascadian wrote:
>> On 2019-10-14, nomble@palism.com wrote:
>>> * gnu/packages/bootloaders.scm (arm-trusted-firmware-rk3399): New exported
>>> variable.
>> Thanks for working on this!
>>
>> Unfortunately this currently embeds a binary blob
>> (plat/rockchip/rk3399/drivers/dp/hdcp.bin) with no license.
>>
>> I reported the issue upstream:
>>
>>    https://github.com/ARM-software/tf-issues/issues/651
>
>
> I have send the patch to ATF to remove the hdpc.bin, you can comment on it.
>
> https://review.trustedfirmware.org/c/TF-A/trusted-firmware-a/+/2194

On both Debian and Guix it fails to build with:

plat/rockchip/rk3399/plat_sip_calls.c: In function
‘rockchip_plat_sip_handler’:
plat/rockchip/rk3399/plat_sip_calls.c:59:15: error: unused variable ‘x6’
[-Werror=unused-variable]
  uint64_t x5, x6;
               ^~
plat/rockchip/rk3399/plat_sip_calls.c:59:11: error: unused variable ‘x5’
[-Werror=unused-variable]
  uint64_t x5, x6;
           ^~
cc1: all warnings being treated as errors
make: *** [Makefile:777: build/rk3399/debug/bl31/plat_sip_calls.o] Error
1
make: *** Waiting for unfinished jobs....
command "make" "-j" "3" "PLAT=rk3399" "CROSS_COMPILE=aarch64-linux-gnu-"
"DEBUG=1" failed with status 2


Also commented on the patch in review.trustedfirmware.org.


live well,
  vagrant
Kever Yang Oct. 17, 2019, 6:43 a.m. UTC | #4
Vagrant,

On 2019/10/17 下午1:46, Vagrant Cascadian wrote:
> On 2019-10-15, Kever Yang wrote:
>> On 2019/10/15 下午12:02, Vagrant Cascadian wrote:
>>> On 2019-10-14, nomble@palism.com wrote:
>>>> * gnu/packages/bootloaders.scm (arm-trusted-firmware-rk3399): New exported
>>>> variable.
>>> Thanks for working on this!
>>>
>>> Unfortunately this currently embeds a binary blob
>>> (plat/rockchip/rk3399/drivers/dp/hdcp.bin) with no license.
>>>
>>> I reported the issue upstream:
>>>
>>>     https://github.com/ARM-software/tf-issues/issues/651
>>
>> I have send the patch to ATF to remove the hdpc.bin, you can comment on it.
>>
>> https://review.trustedfirmware.org/c/TF-A/trusted-firmware-a/+/2194
> On both Debian and Guix it fails to build with:
>
> plat/rockchip/rk3399/plat_sip_calls.c: In function
> ‘rockchip_plat_sip_handler’:
> plat/rockchip/rk3399/plat_sip_calls.c:59:15: error: unused variable ‘x6’
> [-Werror=unused-variable]
>    uint64_t x5, x6;
>                 ^~
> plat/rockchip/rk3399/plat_sip_calls.c:59:11: error: unused variable ‘x5’
> [-Werror=unused-variable]
>    uint64_t x5, x6;
>             ^~
> cc1: all warnings being treated as errors
> make: *** [Makefile:777: build/rk3399/debug/bl31/plat_sip_calls.o] Error
> 1
> make: *** Waiting for unfinished jobs....
> command "make" "-j" "3" "PLAT=rk3399" "CROSS_COMPILE=aarch64-linux-gnu-"
> "DEBUG=1" failed with status 2
>
>
> Also commented on the patch in review.trustedfirmware.org.


Sorry, I do catch this issue last week, but forgot to update it to the 
Gerrit.

Already update to a new patch set now.


Thanks,

- Kever

>
>
> live well,
>    vagrant
Vagrant Cascadian Oct. 18, 2019, 7:22 p.m. UTC | #5
On 2019-10-17, Kever Yang wrote:
> On 2019/10/17 下午1:46, Vagrant Cascadian wrote:
>> On 2019-10-15, Kever Yang wrote:
>>> On 2019/10/15 下午12:02, Vagrant Cascadian wrote:
>>>> On 2019-10-14, nomble@palism.com wrote:
>>>>> * gnu/packages/bootloaders.scm (arm-trusted-firmware-rk3399): New exported
>>>>> variable.
>>>> Thanks for working on this!
>>>>
>>>> Unfortunately this currently embeds a binary blob
>>>> (plat/rockchip/rk3399/drivers/dp/hdcp.bin) with no license.
>>>>
>>>> I reported the issue upstream:
>>>>
>>>>     https://github.com/ARM-software/tf-issues/issues/651
>>>
>>> I have send the patch to ATF to remove the hdpc.bin, you can comment on it.
>>>
>>> https://review.trustedfirmware.org/c/TF-A/trusted-firmware-a/+/2194
>> On both Debian and Guix it fails to build with:
>>
>> plat/rockchip/rk3399/plat_sip_calls.c: In function
>> ‘rockchip_plat_sip_handler’:
>> plat/rockchip/rk3399/plat_sip_calls.c:59:15: error: unused variable ‘x6’
>> [-Werror=unused-variable]
>>    uint64_t x5, x6;
...
> Sorry, I do catch this issue last week, but forgot to update it to the 
> Gerrit.
>
> Already update to a new patch set now.

Thanks! Was able to test on a rockpro64-rk3399 board, and it worked with
u-boot.

Pushed a slightly modified patch adding arm-trusted-firmware-rk3399 to
guix/master in commit 074554a2891830900e2ff9335799416723094fcb.

Will work on pushing the rest of the series as well; I've made some
relatively minor changes locally...


live well,
  vagrant
diff mbox series

Patch

diff --git a/gnu/packages/firmware.scm b/gnu/packages/firmware.scm
index c473ccd920..636b1f4746 100644
--- a/gnu/packages/firmware.scm
+++ b/gnu/packages/firmware.scm
@@ -476,6 +476,29 @@  such as:
            (base32
             "0vqhwqqh8h9qlkpybg2v94911091c1418bc4pnzq5fd7zf0fjkf8")))))))
 
+(define-public arm-trusted-firmware-rk3399
+  (let ((base (make-arm-trusted-firmware "rk3399")))
+    (package
+      (inherit base)
+      (name "arm-trusted-firmware-rk3399")
+      (arguments
+        (substitute-keyword-arguments (package-arguments base)
+          ((#:phases phases)
+           `(modify-phases ,phases
+              (add-after 'install 'install-elf
+                (lambda* (#:key outputs #:allow-other-keys)
+                  (let ((out (assoc-ref outputs "out"))
+                        (elf (find-files "." ".*\\.elf$")))
+                    (for-each
+                      (lambda (file)
+                        (install-file file out))
+                      elf))
+                  #t))))))
+      (native-inputs
+       `(("cross32-gcc" ,(cross-gcc "arm-none-eabi"))
+         ("cross32-binutils", (cross-binutils "arm-none-eabi"))
+         ,@(package-native-inputs base))))))
+
 (define-public rk3399-cortex-m0
   (package
     (name "rk3399-cortex-m0")