All of lore.kernel.org
 help / color / mirror / Atom feed
From: Stefan Roese <sr@denx.de>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH 2/2] spl: move RAM boot support in separate file
Date: Fri, 16 Dec 2016 06:08:02 +0100	[thread overview]
Message-ID: <c762143e-9a5a-f153-ef1e-b83d601f8db8@denx.de> (raw)
In-Reply-To: <20161216020027.6333-2-stefan@agner.ch>

On 16.12.2016 03:00, Stefan Agner wrote:
> From: Stefan Agner <stefan.agner@toradex.com>
>
> Add a new top-level config option so support booting an image stored
> in RAM. This allows to move the RAM boot support into a sparate file
> and having a single condition to compile that file.
>
> Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
> ---
> The series has been build tested using buildman.
>
> Building current source for 1230 boards (8 threads, 1 job per thread)
>  1019    0  211 /1230   0:00:03  : P1022DS_NAND
>
> --
> Stefan
>
>  common/spl/Kconfig  | 11 ++++++++--
>  common/spl/Makefile |  1 +
>  common/spl/spl.c    | 58 -----------------------------------------------------
>  3 files changed, 10 insertions(+), 60 deletions(-)

Looks like you forgot to add the newly created file.

Thanks,
Stefan

> diff --git a/common/spl/Kconfig b/common/spl/Kconfig
> index 8f779e6..802779b 100644
> --- a/common/spl/Kconfig
> +++ b/common/spl/Kconfig
> @@ -449,9 +449,16 @@ config SPL_POWER_SUPPORT
>  	  in drivers/power, drivers/power/pmic and drivers/power/regulator
>  	  as part of an SPL build.
>
> +config SPL_RAM_SUPPORT
> +	bool "Support booting from RAM"
> +	depends on SPL
> +	help
> +	  Enable booting of an image in RAM. The image can be preloaded or
> +	  it can be loaded by SPL directly into RAM (e.g. using USB).
> +
>  config SPL_RAM_DEVICE
>  	bool "Support booting from preloaded image in RAM"
> -	depends on SPL
> +	depends on SPL_RAM_SUPPORT
>  	help
>  	  Enable booting of an image already loaded in RAM. The image has to
>  	  be already in memory when SPL takes over, e.g. loaded by the boot
> @@ -557,7 +564,7 @@ choice
>
>  config SPL_DFU_RAM
>  	bool "RAM device"
> -	depends on SPL_DFU_SUPPORT
> +	depends on SPL_DFU_SUPPORT && SPL_RAM_SUPPORT
>  	help
>  	 select RAM/DDR memory device for loading binary images
>  	 (u-boot/kernel) to the selected device partition using
> diff --git a/common/spl/Makefile b/common/spl/Makefile
> index ed02635..1933cbd 100644
> --- a/common/spl/Makefile
> +++ b/common/spl/Makefile
> @@ -26,4 +26,5 @@ obj-$(CONFIG_SPL_EXT_SUPPORT) += spl_ext.o
>  obj-$(CONFIG_SPL_SATA_SUPPORT) += spl_sata.o
>  obj-$(CONFIG_SPL_DFU_SUPPORT) += spl_dfu.o
>  obj-$(CONFIG_SPL_SPI_LOAD) += spl_spi.o
> +obj-$(CONFIG_SPL_RAM_SUPPORT) += spl_ram.o
>  endif
> diff --git a/common/spl/spl.c b/common/spl/spl.c
> index f7df834..2f3b6a4 100644
> --- a/common/spl/spl.c
> +++ b/common/spl/spl.c
> @@ -170,64 +170,6 @@ __weak void __noreturn jump_to_image_no_args(struct spl_image_info *spl_image)
>  	image_entry();
>  }
>
> -#ifndef CONFIG_SPL_LOAD_FIT_ADDRESS
> -# define CONFIG_SPL_LOAD_FIT_ADDRESS	0
> -#endif
> -
> -#if defined(CONFIG_SPL_RAM_DEVICE) || defined(CONFIG_SPL_DFU_SUPPORT)
> -static ulong spl_ram_load_read(struct spl_load_info *load, ulong sector,
> -			       ulong count, void *buf)
> -{
> -	debug("%s: sector %lx, count %lx, buf %lx\n",
> -	      __func__, sector, count, (ulong)buf);
> -	memcpy(buf, (void *)(CONFIG_SPL_LOAD_FIT_ADDRESS + sector), count);
> -	return count;
> -}
> -
> -static int spl_ram_load_image(struct spl_image_info *spl_image,
> -			      struct spl_boot_device *bootdev)
> -{
> -	struct image_header *header;
> -
> -	header = (struct image_header *)CONFIG_SPL_LOAD_FIT_ADDRESS;
> -
> -#if defined(CONFIG_SPL_DFU_SUPPORT)
> -	if (bootdev->boot_device == BOOT_DEVICE_DFU)
> -		spl_dfu_cmd(0, "dfu_alt_info_ram", "ram", "0");
> -#endif
> -
> -	if (IS_ENABLED(CONFIG_SPL_LOAD_FIT) &&
> -	    image_get_magic(header) == FDT_MAGIC) {
> -		struct spl_load_info load;
> -
> -		debug("Found FIT\n");
> -		load.bl_len = 1;
> -		load.read = spl_ram_load_read;
> -		spl_load_simple_fit(spl_image, &load, 0, header);
> -	} else {
> -		debug("Legacy image\n");
> -		/*
> -		 * Get the header.  It will point to an address defined by
> -		 * handoff which will tell where the image located inside
> -		 * the flash. For now, it will temporary fixed to address
> -		 * pointed by U-Boot.
> -		 */
> -		header = (struct image_header *)
> -			(CONFIG_SYS_TEXT_BASE -	sizeof(struct image_header));
> -
> -		spl_parse_image_header(spl_image, header);
> -	}
> -
> -	return 0;
> -}
> -#if defined(CONFIG_SPL_RAM_DEVICE)
> -SPL_LOAD_IMAGE_METHOD("RAM", 0, BOOT_DEVICE_RAM, spl_ram_load_image);
> -#endif
> -#if defined(CONFIG_SPL_DFU_SUPPORT)
> -SPL_LOAD_IMAGE_METHOD("USB DFU", 0, BOOT_DEVICE_DFU, spl_ram_load_image);
> -#endif
> -#endif
> -
>  int spl_init(void)
>  {
>  	int ret;
>

Viele Gr??e,
Stefan

-- 
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-51 Fax: (+49)-8142-66989-80 Email: sr at denx.de

  reply	other threads:[~2016-12-16  5:08 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-12-16  2:00 [U-Boot] [PATCH 1/2] Convert CONFIG_SPL_RAM_DEVICE to defconfig Stefan Agner
2016-12-16  2:00 ` [U-Boot] [PATCH 2/2] spl: move RAM boot support in separate file Stefan Agner
2016-12-16  5:08   ` Stefan Roese [this message]
2016-12-20 13:09     ` Stefan Agner

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=c762143e-9a5a-f153-ef1e-b83d601f8db8@denx.de \
    --to=sr@denx.de \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.