mailarchive of the ptxdist mailing list
 help / color / mirror / Atom feed
From: Michael Riesch <michael.riesch@wolfvision.net>
To: christian.melki@t2data.com, ptxdist@pengutronix.de
Cc: m.tretter@pengutronix.de
Subject: Re: [ptxdist] [PATCH 2/3] add package for rockchip firmware binaries
Date: Mon, 6 Dec 2021 07:06:12 +0100	[thread overview]
Message-ID: <681c60b4-9018-27ee-e4aa-832964ecb40f@wolfvision.net> (raw)
In-Reply-To: <7fcfc32f-5065-1f6f-6325-b1f1c0d4279b@t2data.com>

Hello Christian,

On 12/4/21 4:37 PM, Christian Melki wrote:
> On 12/4/21 08:10, Michael Riesch wrote:
>> Hi Christian,
>>
>> (fixed Michael Tretter's mail address in Cc:)
>>
>> On 12/3/21 6:55 PM, Christian Melki wrote:
>>> Hi.
>>>
>>> Good idea with a non-free firmware section.
>>> But these Rockchip things looks like they are highly board/project
>>> dependent.
>>> A non-JEDEC timing named DDR-blob? For what board?
>>> RK3566/8 are SoCs afaiu, not complete system implementations?
>>> Also, ARM Trustzone blobs can also be very project specific?
>>
>> The RK356x SoCs are relatively new and there are not too much boards
>> around yet. AFAIK all existing boards rely on those binaries due to the
>> lack of alternatives. Therefore, I thought it would be a nice idea to
>> provide this package to have at least one solution that works for the
>> first few boards around (such as the Quartz64 by Pine64 with the RK3566
>> as well as the RK3568 EVB1).
>>
>> Future alternative SDRAM setups will indeed require a (possibly
>> per-board) initialization. Rockchip offers a tool to adjust the binary
>> blobs to target a different SDRAM setup. Maybe this can be even
>> integrated into the rule file in a later step -- I haven't figured out
>> the workflow yet.
>>
>> A similar thing can be said with regard to the ARM Trustzone blobs. The
>> two files work on both SoCs (the RK3566 and RK3568 are very similar,
>> consider the 66 as little brother of the 68) and those files are the
>> only thing that is available right now. Rockchip has indicated that
>> there are plans to bring TF-A support for the RK356x mainline, but not
>> before Q2/2022 IIRC. For the time being, the package under discussion
>> enables initial support for the currently available boards.
>>
>> In summary, consider this package as a tool to kick-start development on
>> recent and future Rockchip SoCs. It is not yet the optimal solution but
>> it is enables early support for the boards that are available at the
>> moment. The suggested rule file allows to en/disable the individual
>> binaries, hence it should be easy to let a different package generate
>> and install e.g., the TF-A binary.
>>
>> Best regards,
>> Michael
>>
> 
> I don't mind. I like the firmware effort. But could you please change
> the Kconfig help to indicate which board(s)/board versions this is meant
> to run on? As that's the implementation it's actually tied to.

I'll add a note in this regard in v2.

Best regards,
Michael

> 
> Best regards,
> Christian
> 
>>> Regards,
>>> Christian
>>>
>>> On 12/3/21 17:54, Michael Riesch wrote:
>>>> Rockchip provides the SDRAM initialization as well as BL31/BL32
>>>> firmware for their SoCs in binary from. Add a package that downloads
>>>> those binaries for further use in e.g., barebox.
>>>>
>>>> Signed-off-by: Michael Tretter <michael.tretter@pengutronix.de>
>>>> [revised and extended Kconfig]
>>>> Signed-off-by: Michael Riesch <michael.riesch@wolfvision.net>
>>>> ---
>>>>   platforms/firmware-rockchip.in | 35 ++++++++++++++++
>>>>   rules/firmware-rockchip.make   | 75 ++++++++++++++++++++++++++++++++++
>>>>   2 files changed, 110 insertions(+)
>>>>   create mode 100644 platforms/firmware-rockchip.in
>>>>   create mode 100644 rules/firmware-rockchip.make
>>>>
>>>> diff --git a/platforms/firmware-rockchip.in b/platforms/firmware-rockchip.in
>>>> new file mode 100644
>>>> index 000000000..3b7c996bb
>>>> --- /dev/null
>>>> +++ b/platforms/firmware-rockchip.in
>>>> @@ -0,0 +1,35 @@
>>>> +## SECTION=non_free_firmware
>>>> +
>>>> +menuconfig FIRMWARE_ROCKCHIP
>>>> +	bool
>>>> +	prompt "Rockchip firmware binaries    "
>>>> +	help
>>>> +	  Rockchip prebuilt SDRAM initialization and TF-A binaries.
>>>> +
>>>> +if FIRMWARE_ROCKCHIP
>>>> +
>>>> +config FIRMWARE_ROCKCHIP_RK3566_SDRAM
>>>> +       bool
>>>> +       prompt "RK3566 SDRAM init"
>>>> +       help
>>>> +         Rockchip RK3566 SDRAM initialization binary.
>>>> +
>>>> +config FIRMWARE_ROCKCHIP_RK3568_SDRAM
>>>> +       bool
>>>> +       prompt "RK3568 SDRAM init"
>>>> +       help
>>>> +         Rockchip RK3568 SDRAM initialization binary.
>>>> +
>>>> +config FIRMWARE_ROCKCHIP_RK356x_BL31
>>>> +       bool
>>>> +       prompt "RK356x BL31 binary"
>>>> +       help
>>>> +         Rockchip RK3566/RK3568 BL31 binary.
>>>> +
>>>> +config FIRMWARE_ROCKCHIP_RK356x_BL32
>>>> +       bool
>>>> +       prompt "RK356x BL32 binary"
>>>> +       help
>>>> +         Rockchip RK3566/RK3568 BL32 binary.
>>>> +
>>>> +endif
>>>> diff --git a/rules/firmware-rockchip.make b/rules/firmware-rockchip.make
>>>> new file mode 100644
>>>> index 000000000..54a0b7493
>>>> --- /dev/null
>>>> +++ b/rules/firmware-rockchip.make
>>>> @@ -0,0 +1,75 @@
>>>> +# -*-makefile-*-
>>>> +#
>>>> +# Copyright (C) 2021 by Michael Tretter <m.tretter@pengutronix.de>
>>>> +#
>>>> +# For further information about the PTXdist project and license conditions
>>>> +# see the README file.
>>>> +#
>>>> +
>>>> +#
>>>> +# We provide this package
>>>> +#
>>>> +PACKAGES-$(PTXCONF_FIRMWARE_ROCKCHIP) += firmware-rockchip
>>>> +
>>>> +FIRMWARE_ROCKCHIP_VERSION	:= 2021-06-01-g7d631e0d
>>>> +FIRMWARE_ROCKCHIP_MD5		:= bfb7b9601b88784e263c2cc6baa5da9f
>>>> +FIRMWARE_ROCKCHIP		:= firmware-rockchip-$(FIRMWARE_ROCKCHIP_VERSION)
>>>> +FIRMWARE_ROCKCHIP_SUFFIX	:= tar.xz
>>>> +FIRMWARE_ROCKCHIP_URL		:= \
>>>> +	git://github.com/rockchip-linux/rkbin;tag=$(FIRMWARE_ROCKCHIP_VERSION)
>>>> +FIRMWARE_ROCKCHIP_SOURCE	:= $(SRCDIR)/$(FIRMWARE_ROCKCHIP).$(FIRMWARE_ROCKCHIP_SUFFIX)
>>>> +FIRMWARE_ROCKCHIP_DIR		:= $(BUILDDIR)/$(FIRMWARE_ROCKCHIP)
>>>> +FIRMWARE_ROCKCHIP_LICENSE	:= unknown
>>>> +
>>>> +# ----------------------------------------------------------------------------
>>>> +# Prepare
>>>> +# ----------------------------------------------------------------------------
>>>> +
>>>> +FIRMWARE_ROCKCHIP_CONF_TOOL:= NO
>>>> +
>>>> +# ----------------------------------------------------------------------------
>>>> +# Compile
>>>> +# ----------------------------------------------------------------------------
>>>> +
>>>> +$(STATEDIR)/firmware-rockchip.compile:
>>>> +	@$(call targetinfo)
>>>> +	@$(call touch)
>>>> +
>>>> +# ----------------------------------------------------------------------------
>>>> +# Install
>>>> +# ----------------------------------------------------------------------------
>>>> +
>>>> +$(STATEDIR)/firmware-rockchip.install:
>>>> +	@$(call targetinfo)
>>>> +
>>>> +ifdef PTXCONF_FIRMWARE_ROCKCHIP_RK3566_SDRAM
>>>> +	install -v -D -m644 $(FIRMWARE_ROCKCHIP_DIR)/bin/rk35/rk3566_ddr_1056MHz_v1.08.bin \
>>>> +		$(FIRMWARE_ROCKCHIP_PKGDIR)/usr/lib/firmware/rk3566_ddr_1056MHz_v1.08.bin
>>>> +endif
>>>> +
>>>> +ifdef PTXCONF_FIRMWARE_ROCKCHIP_RK3568_SDRAM
>>>> +	install -v -D -m644 $(FIRMWARE_ROCKCHIP_DIR)/bin/rk35/rk3568_ddr_1560MHz_v1.08.bin \
>>>> +		$(FIRMWARE_ROCKCHIP_PKGDIR)/usr/lib/firmware/rk3568_ddr_1560MHz_v1.08.bin
>>>> +endif
>>>> +
>>>> +ifdef PTXCONF_FIRMWARE_ROCKCHIP_RK356x_BL31
>>>> +	install -v -D -m644 $(FIRMWARE_ROCKCHIP_DIR)/bin/rk35/rk3568_bl31_v1.24.elf \
>>>> +		$(FIRMWARE_ROCKCHIP_PKGDIR)/usr/lib/firmware/rk3568_bl31_v1.24.elf
>>>> +endif
>>>> +
>>>> +ifdef PTXCONF_FIRMWARE_ROCKCHIP_RK356x_BL32
>>>> +	install -v -D -m644 $(FIRMWARE_ROCKCHIP_DIR)/bin/rk35/rk3568_bl32_v1.05.bin \
>>>> +		$(FIRMWARE_ROCKCHIP_PKGDIR)/usr/lib/firmware/rk3568_bl32_v1.05.bin
>>>> +endif
>>>> +
>>>> +	@$(call touch)
>>>> +
>>>> +# ----------------------------------------------------------------------------
>>>> +# Target-Install
>>>> +# ----------------------------------------------------------------------------
>>>> +
>>>> +$(STATEDIR)/firmware-rockchip.targetinstall:
>>>> +	@$(call targetinfo)
>>>> +	@$(call touch)
>>>> +
>>>> +# vim: syntax=make
>>>>
>>>
> 

_______________________________________________
ptxdist mailing list
ptxdist@pengutronix.de
To unsubscribe, send a mail with subject "unsubscribe" to ptxdist-request@pengutronix.de


  reply	other threads:[~2021-12-06  6:07 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-12-03 16:54 [ptxdist] [PATCH 0/3] Add support for Rockchip firmware blobs Michael Riesch
2021-12-03 16:54 ` [ptxdist] [PATCH 1/3] platforms: add section for non-free " Michael Riesch
2021-12-03 16:54 ` [ptxdist] [PATCH 2/3] add package for rockchip firmware binaries Michael Riesch
2021-12-03 17:55   ` Christian Melki
2021-12-04  7:10     ` Michael Riesch
2021-12-04 15:37       ` Christian Melki
2021-12-06  6:06         ` Michael Riesch [this message]
2021-12-05  0:56   ` Roland Hieber
2021-12-05  1:00     ` Roland Hieber
2021-12-05  9:07       ` Michael Riesch
2021-12-06  6:27     ` Michael Riesch
2021-12-03 16:54 ` [ptxdist] [RFC PATCH 3/3] barebox: add integration of firmware blobs Michael Riesch

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=681c60b4-9018-27ee-e4aa-832964ecb40f@wolfvision.net \
    --to=michael.riesch@wolfvision.net \
    --cc=christian.melki@t2data.com \
    --cc=m.tretter@pengutronix.de \
    --cc=ptxdist@pengutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox