Patchwork [U-Boot,2/2] microblaze: bootm: Add support for loading initrd

login
register
mail settings
Submitter Michal Simek
Date May 3, 2013, 7:26 a.m.
Message ID <39b134c2d1ef717b3d43f826b7e0b94106232fd2.1367566009.git.michal.simek@xilinx.com>
Download mbox | patch
Permalink /patch/241235/
State Superseded
Headers show

Comments

Michal Simek - May 3, 2013, 7:26 a.m.
fdt_initrd add additional information to DTB about initrd
addresses which are later used by kernel.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
---
 arch/microblaze/lib/bootm.c | 5 +++++
 1 file changed, 5 insertions(+)

--
1.8.2.1
Michal Simek - May 6, 2013, 8:53 a.m.
On 05/03/2013 09:26 AM, Michal Simek wrote:
> fdt_initrd add additional information to DTB about initrd
> addresses which are later used by kernel.
> 
> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
> ---
>  arch/microblaze/lib/bootm.c | 5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/arch/microblaze/lib/bootm.c b/arch/microblaze/lib/bootm.c
> index b992a4d..bb01a71 100644
> --- a/arch/microblaze/lib/bootm.c
> +++ b/arch/microblaze/lib/bootm.c
> @@ -64,6 +64,11 @@ int do_bootm_linux(int flag, int argc, char * const argv[],
> 
>  	if (!of_flat_tree && argc > 3)
>  		of_flat_tree = (char *)simple_strtoul(argv[3], NULL, 16);
> +
> +	/* fixup the initrd now that we know where it should be */
> +	if (images->rd_start && images->rd_end && of_flat_tree)
> +		fdt_initrd(of_flat_tree, images->rd_start, images->rd_end, 1);

Michal: You should also check return value.

BTW: it should be also checked for arm and ppc.

will send v2.

Thanks,
Michal

Patch

diff --git a/arch/microblaze/lib/bootm.c b/arch/microblaze/lib/bootm.c
index b992a4d..bb01a71 100644
--- a/arch/microblaze/lib/bootm.c
+++ b/arch/microblaze/lib/bootm.c
@@ -64,6 +64,11 @@  int do_bootm_linux(int flag, int argc, char * const argv[],

 	if (!of_flat_tree && argc > 3)
 		of_flat_tree = (char *)simple_strtoul(argv[3], NULL, 16);
+
+	/* fixup the initrd now that we know where it should be */
+	if (images->rd_start && images->rd_end && of_flat_tree)
+		fdt_initrd(of_flat_tree, images->rd_start, images->rd_end, 1);
+
 #ifdef DEBUG
 	printf("## Transferring control to Linux (at address 0x%08lx) ",
 	       (ulong)thekernel);