android: boot: Add set_abootimg_addr() and set_avendor_bootimg_addr()

The only way to configure the load addresses for both bootimg and
vendor_bootimg is by using the "abootimg" command.
If we want to use the C API, there is no equivalent.

Add set_abootimg_addr() and set_avendor_bootimg_addr() so that we can
specify the load address from C.

This can be useful for implementing an Android bootmethod.

Reviewed-by: Igor Opaniuk <igor.opaniuk@gmail.com>
Reviewed-by: Julien Masson <jmasson@baylibre.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Guillaume La Roque <glaroque@baylibre.com>
Tested-by: Guillaume La Roque <glaroque@baylibre.com>
Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
This commit is contained in:
Mattijs Korpershoek 2024-07-10 10:40:04 +02:00 committed by Tom Rini
parent be0b076c55
commit a525656c5b
2 changed files with 24 additions and 0 deletions

View file

@ -22,6 +22,11 @@ ulong get_abootimg_addr(void)
return (_abootimg_addr == -1 ? image_load_addr : _abootimg_addr);
}
void set_abootimg_addr(ulong addr)
{
_abootimg_addr = addr;
}
ulong get_ainit_bootimg_addr(void)
{
return _ainit_bootimg_addr;
@ -32,6 +37,11 @@ ulong get_avendor_bootimg_addr(void)
return _avendor_bootimg_addr;
}
void set_avendor_bootimg_addr(ulong addr)
{
_avendor_bootimg_addr = addr;
}
static int abootimg_get_ver(int argc, char *const argv[])
{
const struct andr_boot_img_hdr_v0 *hdr;

View file

@ -1971,6 +1971,13 @@ bool is_android_vendor_boot_image_header(const void *vendor_boot_img);
*/
ulong get_abootimg_addr(void);
/**
* set_abootimg_addr() - Set Android boot image address
*
* Return: no returned results
*/
void set_abootimg_addr(ulong addr);
/**
* get_ainit_bootimg_addr() - Get Android init boot image address
*
@ -1985,6 +1992,13 @@ ulong get_ainit_bootimg_addr(void);
*/
ulong get_avendor_bootimg_addr(void);
/**
* set_abootimg_addr() - Set Android vendor boot image address
*
* Return: no returned results
*/
void set_avendor_bootimg_addr(ulong addr);
/**
* board_fit_config_name_match() - Check for a matching board name
*