mirror of
https://github.com/u-boot/u-boot.git
synced 2025-04-22 12:54:37 +00:00
arm: Get bloblist from boot arguments
Add arch custom function to get bloblist from boot arguments. Check whether boot arguments aligns with the register conventions defined in FW Handoff spec v0.9. Signed-off-by: Raymond Mao <raymond.mao@linaro.org>
This commit is contained in:
parent
11f3171256
commit
fc61de3ff6
3 changed files with 46 additions and 0 deletions
|
@ -85,6 +85,8 @@ obj-y += psci-dt.o
|
||||||
|
|
||||||
obj-$(CONFIG_DEBUG_LL) += debug.o
|
obj-$(CONFIG_DEBUG_LL) += debug.o
|
||||||
|
|
||||||
|
obj-$(CONFIG_BLOBLIST) += xferlist.o
|
||||||
|
|
||||||
# For EABI conformant tool chains, provide eabi_compat()
|
# For EABI conformant tool chains, provide eabi_compat()
|
||||||
ifneq (,$(findstring -mabi=aapcs-linux,$(PLATFORM_CPPFLAGS)))
|
ifneq (,$(findstring -mabi=aapcs-linux,$(PLATFORM_CPPFLAGS)))
|
||||||
extra-y += eabi_compat.o
|
extra-y += eabi_compat.o
|
||||||
|
|
25
arch/arm/lib/xferlist.c
Normal file
25
arch/arm/lib/xferlist.c
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
// SPDX-License-Identifier: GPL-2.0+
|
||||||
|
/*
|
||||||
|
* Copyright (C) 2023 Linaro Limited
|
||||||
|
* Author: Raymond Mao <raymond.mao@linaro.org>
|
||||||
|
*/
|
||||||
|
#include <linux/types.h>
|
||||||
|
#include <errno.h>
|
||||||
|
#include <bloblist.h>
|
||||||
|
#include "xferlist.h"
|
||||||
|
|
||||||
|
int xferlist_from_boot_arg(ulong addr, ulong size)
|
||||||
|
{
|
||||||
|
int ret;
|
||||||
|
|
||||||
|
ret = bloblist_check(saved_args[3], size);
|
||||||
|
if (ret)
|
||||||
|
return ret;
|
||||||
|
|
||||||
|
ret = bloblist_check_reg_conv(saved_args[0], saved_args[2],
|
||||||
|
saved_args[1]);
|
||||||
|
if (ret)
|
||||||
|
return ret;
|
||||||
|
|
||||||
|
return bloblist_reloc((void *)addr, size);
|
||||||
|
}
|
19
arch/arm/lib/xferlist.h
Normal file
19
arch/arm/lib/xferlist.h
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
/* SPDX-License-Identifier: GPL-2.0+ BSD-3-Clause */
|
||||||
|
/*
|
||||||
|
* Copyright (C) 2023 Linaro Limited
|
||||||
|
* Author: Raymond Mao <raymond.mao@linaro.org>
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _XFERLIST_H_
|
||||||
|
#define _XFERLIST_H_
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Boot parameters saved from start.S
|
||||||
|
* saved_args[0]: FDT base address
|
||||||
|
* saved_args[1]: Bloblist signature
|
||||||
|
* saved_args[2]: must be 0
|
||||||
|
* saved_args[3]: Bloblist base address
|
||||||
|
*/
|
||||||
|
extern unsigned long saved_args[];
|
||||||
|
|
||||||
|
#endif /* _XFERLIST_H_ */
|
Loading…
Add table
Reference in a new issue