On Fri, Jan 28, 2022 at 05:48:11PM +0100, Michael Riesch wrote:
> Hello Michael,
> 
> On 1/28/22 17:10, Michael Olbrich wrote:
> > On Fri, Jan 28, 2022 at 04:26:23PM +0100, Michael Riesch wrote:
> >> Hello Michael,
> >>
> >> Thanks for your review. I'll prepare a v6!
> >>
> >> On 1/28/22 13:33, Michael Olbrich wrote:
> >>> On Mon, Jan 24, 2022 at 01:09:42PM +0100, Michael Riesch wrote:
> >>>> Currently, the mainline OP-TEE and TF-A sources do not support the
> >>>> RK356x SoCs. Therefore, the only option is to use the binary blobs
> >>>> provided by Rockchip. This patch integrates these blobs (along the SDRAM
> >>>> initialization binary) for the Pine64 Quartz64 board and the RK3568
> >>>> EVB1 into barebox.
> >>>>
> >>>> Signed-off-by: Michael Riesch <[email protected]>
> >>>> ---
> >>>>  platforms/barebox.rockchip.in | 13 +++++++++++++
> >>>>  rules/barebox.rockchip.make   | 18 ++++++++++++++++++
> >>>>  2 files changed, 31 insertions(+)
> >>>>  create mode 100644 rules/barebox.rockchip.make
> >>>>
> >>>> diff --git a/platforms/barebox.rockchip.in 
> >>>> b/platforms/barebox.rockchip.in
> >>>> index 8ecdb0762..9aad4eaf8 100644
> >>>> --- a/platforms/barebox.rockchip.in
> >>>> +++ b/platforms/barebox.rockchip.in
> >>>> @@ -1 +1,14 @@
> >>>>  ## SECTION=barebox_firmware
> >>>> +
> >>>> +config BAREBOX_NEEDS_FIRMWARE_ROCKCHIP
> >>>> +        prompt "barebox needs firmware-rockchip"
> >>>> +        bool
> >>>> +        depends on ARCH_ARM64
> >>>> +        select FIRMWARE_ROCKCHIP if BAREBOX_NEEDS_FIRMWARE_ROCKCHIP
> >>>
> >>> This does not work. It must look like this or the build dependency is not
> >>> created:
> >>>
> >>> config BAREBOX_NEEDS_FIRMWARE_ROCKCHIP
> >>>   prompt "barebox needs firmware-rockchip"
> >>>   bool
> >>>   depends on ARCH_ARM64
> >>>
> >>> config BAREBOX
> >>>   select FIRMWARE_ROCKCHIP if BAREBOX_NEEDS_FIRMWARE_ROCKCHIP
> >>>
> >>> Multiple occurrences of the same symbol are merged, so this works just
> >>> fine as long as 'BAREBOX' is fully defined somewhere else.
> >>
> >> I tried this approach but it returns the error
> >>
> >> .../ptxdist/platforms/barebox.in:11:error: recursive dependency detected!
> >> .../ptxdist/platforms/barebox.in:11:       symbol BAREBOX depends on 
> >> BAREBOX
> >>
> >> Any idea what could be wrong here?
> > 
> > Ah, if we resolve any 'source' commands etc. then the whole thing looks
> > basically like this:
> > 
> > if BAREBOX
> > if BAREBOX_FIRMWARE
> > 
> > config BAREBOX
> >     select FIRMWARE_ROCKCHIP if BAREBOX_NEEDS_FIRMWARE_ROCKCHIP
> > 
> > endif
> > endif
> > 
> > and that's the same as
> > 
> > config BAREBOX
> >     depends on BAREBOX
> >     depends on BAREBOX_FIRMWARE
> >     select FIRMWARE_ROCKCHIP if BAREBOX_NEEDS_FIRMWARE_ROCKCHIP
> > 
> > I think, the only idea is to split that in two files. On with
> > SECTION=barebox_firmware and one with SECTION=bootloader.
> 
> Would some kind of dependency symbol do the trick? For example,
> 
> in barebox.in:
> 
> config BAREBOXDEP

Hmmm, try this:

config BAREBOXDEP
        tristate
        select VIRTUAL

But I think that will still create a dependency loop because BAREBOX
selects BAREBOXDEP and BAREBOXDEP depends on BAREBOX.

Michael

> 
> menuconfig BAREBOX
>         select BAREBOXDEP
> 
> if BAREBOX
> menuconfig BAREBOX_FIRMWARE
> ...
> endif
> 
> and in barebox.rockchip.in:
> 
> config BAREBOX_NEEDS_FIRMWARE_ROCKCHIP
> 
> config BAREBOXDEP
>         select FIRMWARE_ROCKCHIP if BAREBOX_NEEDS_FIRMWARE_ROCKCHIP
> 
> ?
> 
> Thanks and best regards,
> Michael
> 
> > 
> > It's not very nice, but I don't have a better idea.
> > 
> > Michael
> > 
> > 
> >>>> +        select FIRMWARE_ROCKCHIP_RK356x_BL31 if 
> >>>> BAREBOX_NEEDS_FIRMWARE_ROCKCHIP
> >>>> +        select FIRMWARE_ROCKCHIP_RK356x_BL32 if 
> >>>> BAREBOX_NEEDS_FIRMWARE_ROCKCHIP
> >>>> +        select FIRMWARE_ROCKCHIP_RK3566_SDRAM if 
> >>>> BAREBOX_NEEDS_FIRMWARE_ROCKCHIP
> >>>> +        select FIRMWARE_ROCKCHIP_RK3568_SDRAM if 
> >>>> BAREBOX_NEEDS_FIRMWARE_ROCKCHIP
> >>>> +        help
> >>>> +          Select this if barebox needs the non-free Rockchip firmware
> >>>> +          blobs.
> >>>> diff --git a/rules/barebox.rockchip.make b/rules/barebox.rockchip.make
> >>>> new file mode 100644
> >>>> index 000000000..0255b2b4d
> >>>> --- /dev/null
> >>>> +++ b/rules/barebox.rockchip.make
> >>>> @@ -0,0 +1,18 @@
> >>>> +# -*-makefile-*-
> >>>> +#
> >>>> +# Copyright (C) 2021 by Michael Riesch <[email protected]>
> >>>> +#
> >>>> +# For further information about the PTXdist project and license 
> >>>> conditions
> >>>> +# see the README file.
> >>>> +#
> >>>> +
> >>>> +ifdef PTXCONF_BAREBOX_NEEDS_FIRMWARE_ROCKCHIP
> >>>> +
> >>>> +BAREBOX_INJECT_FILES    += 
> >>>> rk3568_bl31_v1.24.elf:firmware/rk3568-bl31.bin
> >>>> +BAREBOX_INJECT_FILES    += 
> >>>> rk3568_bl32_v1.05.bin:firmware/rk3568-op-tee.bin
> >>>> +
> >>>> +BAREBOX_INJECT_FILES    += 
> >>>> rk3566_ddr_1056MHz_v1.08.bin:arch/arm/boards/pine64-quartz64/sdram-init.bin
> >>>> +
> >>>> +BAREBOX_INJECT_FILES    += 
> >>>> rk3568_ddr_1560MHz_v1.08.bin:arch/arm/boards/rockchip-rk3568-evb/sdram-init.bin
> >>>> +
> >>>> +endif
> >>>> -- 
> >>>> 2.30.2
> >>>>
> >>>>
> >>>> _______________________________________________
> >>>> ptxdist mailing list
> >>>> [email protected]
> >>>> To unsubscribe, send a mail with subject "unsubscribe" to 
> >>>> [email protected]
> >>>>
> >>>
> >>
> > 
> 

-- 
Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

_______________________________________________
ptxdist mailing list
[email protected]
To unsubscribe, send a mail with subject "unsubscribe" to 
[email protected]

Reply via email to