Re: [PATCH 3/5] ARM: Rockchip: Add rk3568 specific barebox entry function

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

On Fri, 2023-03-24 at 15:03 +0100, Sascha Hauer wrote:
> Add a rk3568 specific barebox entry function to simplify board
> code.
> 
> Signed-off-by: Sascha Hauer <s.hauer@xxxxxxxxxxxxxx>
> ---
>  arch/arm/mach-rockchip/atf.c | 22 ++++++++++++++++++++++
>  include/mach/rockchip/atf.h  |  2 ++
>  2 files changed, 24 insertions(+)
> 
> diff --git a/arch/arm/mach-rockchip/atf.c b/arch/arm/mach-
> rockchip/atf.c
> index 93025faf68..a7d626226e 100644
> --- a/arch/arm/mach-rockchip/atf.c
> +++ b/arch/arm/mach-rockchip/atf.c
> @@ -5,6 +5,9 @@
>  #include <mach/rockchip/atf.h>
>  #include <elf.h>
>  #include <asm/atf_common.h>
> +#include <asm/barebox-arm.h>
> +#include <mach/rockchip/dmc.h>
> +#include <mach/rockchip/rockchip.h>
>  
>  static unsigned long load_elf64_image_phdr(const void *elf)
>  {
> @@ -69,3 +72,22 @@ void rk3568_atf_load_bl31(void *fdt)
>  {
>         rockchip_atf_load_bl31(RK3568, rk3568_bl31_bin,
> rk3568_op_tee_bin, fdt);
>  }
> +
> +void __noreturn rk3568_barebox_entry(void *fdt)
> +{
> +       unsigned long membase, memsize;
> +
> +       membase = RK3568_DRAM_BOTTOM;
> +       memsize = rk3568_ram0_size() - RK3568_DRAM_BOTTOM;
> +
> +       if (current_el() == 3) {
> +               relocate_to_adr_full(RK3568_BAREBOX_LOAD_ADDRESS);
> +               setup_c();
> +
> +               rk3568_lowlevel_init();
> +               rk3568_atf_load_bl31(fdt);

At least on my board I have to replace the fdt with a NULL pointer to
get the downstream TF-A to work. What is the intention for barebox
here? Do we want to support both upstream and downstream? Or do we need
an fdt size check in the PBL to decide whether we want to pass the
pointer?

> +               /* not reached when CONFIG_ARCH_ROCKCHIP_ATF */
> +       }
> +
> +       barebox_arm_entry(membase, memsize, fdt);
> +}
> diff --git a/include/mach/rockchip/atf.h
> b/include/mach/rockchip/atf.h
> index e5d55af3d7..e1e68825d1 100644
> --- a/include/mach/rockchip/atf.h
> +++ b/include/mach/rockchip/atf.h
> @@ -28,4 +28,6 @@ static inline void rk3568_atf_load_bl31(void *fdt)
> { }
>  #endif
>  #endif
>  
> +void __noreturn rk3568_barebox_entry(void *fdt);
> +
>  #endif /* __MACH_ATF_H */

Best regards,
Rouven Czerwinski





[Index of Archives]     [Linux Embedded]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux