All of lore.kernel.org
 help / color / mirror / Atom feed
From: Peter Tyser <ptyser@xes-inc.com>
To: u-boot@lists.denx.de
Subject: [U-Boot-Users] [PATCH] FIT: Fix handling of images without	ramdisks
Date: Wed, 06 Aug 2008 16:11:58 -0500	[thread overview]
Message-ID: <1218057118.17602.888.camel@localhost.localdomain> (raw)
In-Reply-To: <489A0912.1060304@seznam.cz>

On Wed, 2008-08-06 at 22:26 +0200, Michal Simek wrote:
> I tested current head on my boards and I have no problem with it.
> Can you post your config part where you have problem?
> And I look at 85xx repo and I haven't found this fix there. The last patch on
> master branch in mine.
> 

Hi Michal,
I've included my kernel_fdt.its below as well as 2 boot attempts with
some debug enabled - the 1st on without the patch, the 2nd with the
patch.  I'm using the mainline master (based on
1953d128fd07f07d1c3810a28c0863ea64dae1b6), not the 85xx repo, but I
believe the problem exists in both repos.

Conceptually, I believe the patch makes sense.  I'm calling bootm with
no arguments (as seen in the FIT howto.txt), so boot_get_ramdisk() is
unconditionally called by do_bootm_linux().  With no command arguments
and a FIT image this section of code in boot_get_ramdisk() gets called:

rd_noffset = fit_conf_get_ramdisk_node (fit_hdr, cfg_noffset);
if (rd_noffset < 0) {
	debug ("*  ramdisk: no ramdisk in config\n");
	return 1;
}

which returns 1 causing the calling code from do_bootm_linux() to error
out:

/* find ramdisk */
ret = boot_get_ramdisk (argc, argv, images, IH_ARCH_PPC,
	&rd_data_start, &rd_data_end);
if (ret)
	goto error;


Did you by chance try testing a PPC board?  I noticed the
boot_get_ramdisk() call is not used for microblaze.

Thanks!
Peter


>>
>> Contents of kernel_fdt.its
>>

/ {
	description = "Basic image with single Linux kernel and FDT blob";
	#address-cells = <1>;

	images {
		kernel at 1 {
			description = "X-ES MPC8572 Kernel v2.6.23";
			data = /incbin/("./vmlinux.bin.gz");
			type = "kernel";
			arch = "ppc";
			os = "linux";
			compression = "gzip";
			load = <00000000>;
			entry = <00000000>;
			hash at 1 {
				algo = "crc32";
			};
		};
		fdt at 1 {
			description = "Flattened Device Tree blob";
			data = /incbin/("./xpedite5370.dtb");
			type = "flat_dt";
			arch = "ppc";
			load = <00c00000>;
			compression = "none";
			hash at 1 {
				algo = "crc32";
			};
		};
	};

	configurations {
		default = "conf at 1";
		conf at 1 {
			description = "Boot Linux kernel with FDT blob";
			kernel = "kernel at 1";
			fdt = "fdt at 1";
		};
	};
};

>>
>> Without the patch applied
>>

=> imi

## Checking Image at 01000000 ...
   FIT image found
   FIT description: Basic image with single Linux kernel and FDT blob
   Created:         2008-08-06  20:47:47 UTC
    Image 0 (kernel at 1)
     Description:  X-ES MPC8572 Kernel v2.6.23
     Type:         Kernel Image
     Compression:  gzip compressed
     Data Start:   0x010000f0
     Data Size:    3947406 Bytes =  3.8 MB
     Architecture: PowerPC
     OS:           Linux
     Load Address: 0x00000000
     Entry Point:  0x00000000
     Hash node:    'hash at 1'
     Hash algo:    crc32
     Hash value:   10a29645
     Hash len:     4
    Image 1 (fdt at 1)
     Description:  Flattened Device Tree blob
     Type:         Flat Device Tree
     Compression:  uncompressed
     Data Start:   0x013c3d64
     Data Size:    9628 Bytes =  9.4 kB
     Architecture: PowerPC
     Hash node:    'hash at 1'
     Hash algo:    crc32
     Hash value:   b351fc1d
     Hash len:     4
    Default Configuration: 'conf at 1'
    Configuration 0 (conf at 1)
     Description:  Boot Linux kernel with FDT blob
     Kernel:       kernel at 1
     FDT:          fdt at 1
=> bootm
*  kernel: default image load address = 0x01000000
## Booting kernel from FIT Image at 01000000 ...
No configuration specified, trying default...
Found default configuration: 'conf at 1'
   Using 'conf at 1' configuration
   Trying 'kernel at 1' kernel subimage
     Description:  X-ES MPC8572 Kernel v2.6.23
     Type:         Kernel Image
     Compression:  gzip compressed
     Data Start:   0x010000f0
     Data Size:    3947406 Bytes =  3.8 MB
     Architecture: PowerPC
     OS:           Linux
     Load Address: 0x00000000
     Entry Point:  0x00000000
     Hash node:    'hash at 1'
     Hash algo:    crc32
     Hash value:   10a29645
     Hash len:     4
   Verifying Hash Integrity ... crc32+ OK
   kernel data at 0x010000f0, len = 0x003c3b8e (3947406)
   Uncompressing Kernel Image ... OK
   kernel loaded at 0x00000000, end = 0x0060d55c
WARNING: bootm_low + bootm_size exceed eff. memory
WARNING: adjusting available memory to 10000000
## Current stack ends at 0x0fe97bf8
*  fdt: using config 'conf at 1' from image at 0x01000000
## Checking for 'FDT'/'FDT Image' at 01000000
## Flattened Device Tree from FIT Image at 01000000
   Using 'conf at 1' configuration
   Trying 'fdt at 1' FDT blob subimage
     Description:  Flattened Device Tree blob
     Type:         Flat Device Tree
     Compression:  uncompressed
     Data Start:   0x013c3d64
     Data Size:    9628 Bytes =  9.4 kB
     Architecture: PowerPC
     Hash node:    'hash at 1'
     Hash algo:    crc32
     Hash value:   b351fc1d
     Hash len:     4
   Verifying Hash Integrity ... crc32+ OK
   Loading FDT from 0x013c3d64 to 0x00c00000
   Booting using the fdt blob at 0xc00000
   of_flat_tree at 0x00c00000 size 0x0000259c
*  ramdisk: using config 'conf at 1' from image at 0x01000000
*  ramdisk: no ramdisk in config

<<<< board resets here >>>>

U-Boot 1.3.4-xes_r1-dirty (Aug  6 2008 - 15:42:12)



>>
>> After applying the patch
>>

=> bootm
*  kernel: default image load address = 0x01000000
## Booting kernel from FIT Image at 01000000 ...
No configuration specified, trying default...
Found default configuration: 'conf at 1'
   Using 'conf at 1' configuration
   Trying 'kernel at 1' kernel subimage
     Description:  X-ES MPC8572 Kernel v2.6.23
     Type:         Kernel Image
     Compression:  gzip compressed
     Data Start:   0x010000f0
     Data Size:    3947406 Bytes =  3.8 MB
     Architecture: PowerPC
     OS:           Linux
     Load Address: 0x00000000
     Entry Point:  0x00000000
     Hash node:    'hash at 1'
     Hash algo:    crc32
     Hash value:   10a29645
     Hash len:     4
   Verifying Hash Integrity ... crc32+ OK
   kernel data at 0x010000f0, len = 0x003c3b8e (3947406)
   Uncompressing Kernel Image ... OK
   kernel loaded at 0x00000000, end = 0x0060d55c
WARNING: bootm_low + bootm_size exceed eff. memory
WARNING: adjusting available memory to 10000000
## Current stack ends at 0x0fe97bf8
*  fdt: using config 'conf at 1' from image at 0x01000000
## Checking for 'FDT'/'FDT Image' at 01000000
## Flattened Device Tree from FIT Image at 01000000
   Using 'conf at 1' configuration
   Trying 'fdt at 1' FDT blob subimage
     Description:  Flattened Device Tree blob
     Type:         Flat Device Tree
     Compression:  uncompressed
     Data Start:   0x013c3d64
     Data Size:    9628 Bytes =  9.4 kB
     Architecture: PowerPC
     Hash node:    'hash at 1'
     Hash algo:    crc32
     Hash value:   b351fc1d
     Hash len:     4
   Verifying Hash Integrity ... crc32+ OK
   Loading FDT from 0x013c3d64 to 0x00c00000
   Booting using the fdt blob at 0xc00000
   of_flat_tree at 0x00c00000 size 0x0000259c
*  ramdisk: using config 'conf at 1' from image at 0x01000000
*  ramdisk: no ramdisk in config
calling ft_cpu_setup()
## initrd_high = 0xffffffff, copy_to_ram = 1
   ramdisk load start = 0x00000000, ramdisk load end = 0x00000000
## Transferring control to Linux (at address 00000000) ...
   Booting using OF flat tree...
Using X-ES MPC85xx machine description

<<<< Linux boots normally >>>>

  reply	other threads:[~2008-08-06 21:11 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-08-05 15:51 [U-Boot-Users] [PATCH] FIT: Fix handling of images without ramdisks Peter Tyser
2008-08-06 20:26 ` Michal Simek
2008-08-06 21:11   ` Peter Tyser [this message]
2008-08-07  6:48     ` Michal Simek
2008-08-07  7:37 ` Michal Simek
2008-08-09 17:43 ` Wolfgang Denk

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=1218057118.17602.888.camel@localhost.localdomain \
    --to=ptyser@xes-inc.com \
    --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.