xferlist: Drop old xferlist code
This is not needed now, as the startup protocol is handled in arch-specific code early in boot. Drop BLOBLIST_PASSAGE_MANDATORY as well, as OF_BLOBLIST is enough to cover this. With standard passage the devicetree is accessed before the bloblist is inited. Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
@@ -92,7 +92,6 @@ obj-y += psci-dt.o
|
||||
|
||||
obj-$(CONFIG_DEBUG_LL) += debug.o
|
||||
|
||||
obj-$(CONFIG_BLOBLIST) += xferlist.o
|
||||
obj-$(CONFIG_GENERATE_ACPI_TABLE) += acpi_table.o
|
||||
|
||||
# For EABI conformant tool chains, provide eabi_compat()
|
||||
|
||||
@@ -1,19 +0,0 @@
|
||||
/* 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_ */
|
||||
@@ -1066,12 +1066,6 @@ config BLOBLIST_ALLOC
|
||||
specify a fixed address on systems where this is unknown or can
|
||||
change at runtime.
|
||||
|
||||
config BLOBLIST_PASSAGE
|
||||
bool "Use bloblist in-place"
|
||||
help
|
||||
Use a bloblist in the incoming standard passage. The size is detected
|
||||
automatically so CONFIG_BLOBLIST_SIZE can be 0.
|
||||
|
||||
config BLOBLIST_PASSAGE
|
||||
bool "Obtain bloblist from standard passage information"
|
||||
help
|
||||
@@ -1094,7 +1088,6 @@ config BLOBLIST_ADDR
|
||||
|
||||
config BLOBLIST_SIZE
|
||||
hex "Size of bloblist"
|
||||
default 0x0 if BLOBLIST_PASSAGE
|
||||
default 0x400
|
||||
help
|
||||
Sets the size of the bloblist in bytes. This must include all
|
||||
|
||||
@@ -504,15 +504,6 @@ int bloblist_reloc(void *to, uint to_size)
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* Weak default function for getting bloblist from boot args.
|
||||
*/
|
||||
int __weak xferlist_from_boot_arg(ulong __always_unused addr,
|
||||
ulong __always_unused size)
|
||||
{
|
||||
return -ENOENT;
|
||||
}
|
||||
|
||||
int bloblist_init(void)
|
||||
{
|
||||
bool fixed = IS_ENABLED(CONFIG_BLOBLIST_FIXED);
|
||||
@@ -580,23 +571,3 @@ int bloblist_init(void)
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int bloblist_check_reg_conv(ulong rfdt, ulong rzero, ulong rsig)
|
||||
{
|
||||
ulong version = BLOBLIST_REGCONV_VER;
|
||||
ulong sigval;
|
||||
|
||||
sigval = (IS_ENABLED(CONFIG_64BIT)) ?
|
||||
((BLOBLIST_MAGIC & ((1UL << BLOBLIST_REGCONV_SHIFT_64) - 1)) |
|
||||
((version & BLOBLIST_REGCONV_MASK) << BLOBLIST_REGCONV_SHIFT_64)) :
|
||||
((BLOBLIST_MAGIC & ((1UL << BLOBLIST_REGCONV_SHIFT_32) - 1)) |
|
||||
((version & BLOBLIST_REGCONV_MASK) << BLOBLIST_REGCONV_SHIFT_32));
|
||||
|
||||
if (rzero || rsig != sigval ||
|
||||
rfdt != (ulong)bloblist_find(BLOBLISTT_CONTROL_FDT, 0)) {
|
||||
gd->bloblist = NULL; /* Reset the gd bloblist pointer */
|
||||
return -EIO;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
CONFIG_ARM=y
|
||||
# CONFIG_ARM64_CRC32 is not set
|
||||
CONFIG_ARCH_VEXPRESS64=y
|
||||
|
||||
CONFIG_BLOBLIST_SIZE_RELOC=0x10000
|
||||
CONFIG_DEFAULT_DEVICE_TREE="arm_fvp"
|
||||
CONFIG_IDENT_STRING=" arm_fvp"
|
||||
@@ -8,4 +9,4 @@ CONFIG_IDENT_STRING=" arm_fvp"
|
||||
CONFIG_BLOBLIST=y
|
||||
CONFIG_BLOBLIST_PASSAGE=y
|
||||
CONFIG_PASSAGE_IN=y
|
||||
CONFIG_OF_BLOBLIST=y
|
||||
CONFIG_OF_PASSAGE=y
|
||||
|
||||
@@ -102,8 +102,8 @@ predefined bloblist at a specified address, dynamically allocating memory for a
|
||||
bloblist, or utilizing a standard passage-provided bloblist with automatic size
|
||||
detection.
|
||||
|
||||
By default, ``vexpress_fvp_bloblist_defconfig`` uses the standard passage method
|
||||
(CONFIG_BLOBLIST_PASSAGE) because TF-A provides a Transfer List in non-secure
|
||||
\By default, ``vexpress_fvp_bloblist_defconfig`` uses the standard passage method
|
||||
(CONFIG_OF_PASSAGE) because TF-A provides a Transfer List in non-secure
|
||||
memory that U-Boot can utilise. This Bloblist, which is referred to as a Transfer List in
|
||||
TF-A, contains all necessary data for the handoff process, including DT and ACPI
|
||||
tables.
|
||||
|
||||
@@ -461,7 +461,7 @@ int bloblist_reloc(void *to, uint to_size);
|
||||
* If CONFIG_BLOBLIST_ALLOC is selected, it allocates memory for a bloblist of
|
||||
* size CONFIG_BLOBLIST_SIZE.
|
||||
*
|
||||
* If CONFIG_BLOBLIST_PASSAGE is selected, it uses the bloblist in the incoming
|
||||
* If CONFIG_OF_BLOBLIST is selected, it uses the bloblist in the incoming
|
||||
* standard passage. The size is detected automatically so CONFIG_BLOBLIST_SIZE
|
||||
* can be 0.
|
||||
*
|
||||
@@ -471,27 +471,4 @@ int bloblist_reloc(void *to, uint to_size);
|
||||
*/
|
||||
int bloblist_init(void);
|
||||
|
||||
/**
|
||||
* bloblist_check_reg_conv() - Check whether the bloblist is compliant to
|
||||
* the register conventions according to the
|
||||
* Firmware Handoff spec.
|
||||
*
|
||||
* @rfdt: Register that holds the FDT base address.
|
||||
* @rzero: Register that must be zero.
|
||||
* @rsig: Register that holds signature and register conventions version.
|
||||
* Return: 0 if OK, -EIO if the bloblist is not compliant to the register
|
||||
* conventions.
|
||||
*/
|
||||
int bloblist_check_reg_conv(ulong rfdt, ulong rzero, ulong rsig);
|
||||
|
||||
/**
|
||||
* xferlist_from_boot_arg() - Get bloblist from the boot args and relocate it
|
||||
* to the specified address.
|
||||
*
|
||||
* @addr: Address for the bloblist
|
||||
* @size: Size of space reserved for the bloblist
|
||||
* Return: 0 if OK, else on error
|
||||
*/
|
||||
int xferlist_from_boot_arg(ulong addr, ulong size);
|
||||
|
||||
#endif /* __BLOBLIST_H */
|
||||
|
||||
Reference in New Issue
Block a user