diff mbox series

[v2,3/5] android: boot: Add set_abootimg_addr() and set_avendor_bootimg_addr()

Message ID 20240613-bootmeth-android-v2-3-397f6e66eb29@baylibre.com
State Changes Requested
Delegated to: Tom Rini
Headers show
Series bootstd: Add Android support | expand

Commit Message

Mattijs Korpershoek June 13, 2024, 10:13 a.m. UTC
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>
Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
---
 cmd/abootimg.c  | 10 ++++++++++
 include/image.h | 14 ++++++++++++++
 2 files changed, 24 insertions(+)

Comments

Julien Masson June 13, 2024, 2:16 p.m. UTC | #1
On Thu 13 Jun 2024 at 16:16, Mattijs Korpershoek <mkorpershoek@baylibre.com> wrote:

> 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>
> Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
> ---
>  cmd/abootimg.c  | 10 ++++++++++
>  include/image.h | 14 ++++++++++++++
>  2 files changed, 24 insertions(+)
> 
> diff --git a/cmd/abootimg.c b/cmd/abootimg.c
> index 327712a536c0..ae7a1a7c83b0 100644
> --- a/cmd/abootimg.c
> +++ b/cmd/abootimg.c
> @@ -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;
> diff --git a/include/image.h b/include/image.h
> index c5b288f62b44..df2decbf5c2a 100644
> --- a/include/image.h
> +++ b/include/image.h
> @@ -1970,6 +1970,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
>   *
> @@ -1984,6 +1991,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
>   *
> 
> -- 
> 2.45.2
> 

Reviewed-by: Julien Masson <jmasson@baylibre.com>
Simon Glass June 13, 2024, 3:20 p.m. UTC | #2
On Thu, 13 Jun 2024 at 04:13, Mattijs Korpershoek
<mkorpershoek@baylibre.com> wrote:
>
> 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>
> Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
> ---
>  cmd/abootimg.c  | 10 ++++++++++
>  include/image.h | 14 ++++++++++++++
>  2 files changed, 24 insertions(+)

Reviewed-by: Simon Glass <sjg@chromium.org>
Guillaume La Roque June 13, 2024, 6:45 p.m. UTC | #3
Le 13/06/2024 à 12:13, Mattijs Korpershoek a écrit :
> 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>
> Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
> ---
>   cmd/abootimg.c  | 10 ++++++++++
>   include/image.h | 14 ++++++++++++++
>   2 files changed, 24 insertions(+)
>
> diff --git a/cmd/abootimg.c b/cmd/abootimg.c
> index 327712a536c0..ae7a1a7c83b0 100644
> --- a/cmd/abootimg.c
> +++ b/cmd/abootimg.c
> @@ -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;
> diff --git a/include/image.h b/include/image.h
> index c5b288f62b44..df2decbf5c2a 100644
> --- a/include/image.h
> +++ b/include/image.h
> @@ -1970,6 +1970,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
>    *
> @@ -1984,6 +1991,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
>    *
>
Reviewed-by: Guillaume La Roque <glaroque@baylibre.com>
diff mbox series

Patch

diff --git a/cmd/abootimg.c b/cmd/abootimg.c
index 327712a536c0..ae7a1a7c83b0 100644
--- a/cmd/abootimg.c
+++ b/cmd/abootimg.c
@@ -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;
diff --git a/include/image.h b/include/image.h
index c5b288f62b44..df2decbf5c2a 100644
--- a/include/image.h
+++ b/include/image.h
@@ -1970,6 +1970,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
  *
@@ -1984,6 +1991,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
  *