Skip to contentSkip to conversation

bootm: replace blob_start with image_start

PATCH Superseded Lei Wen 5 participants 9 messages Jan 10, 2011 – Apr 11, 2011

lore
Share & tools
lore

Lei Wen

author
#0 lore raw

PATCH 1/1 bootm: replace blob_start with image_start

For uImage always has a 64 bytes header, we couldn't expect to do the xip from the header but should xip from the image start.

The latter logic in that section is also move the image from image_start to the load address, so sync this logic to the xip operation.

---
 common/cmd_bootm.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
common/cmd_bootm.c +1 -1
index 18019d6..81fc4be 100644
@@ -344,7 +344,7 @@ static int bootm_load_os(image_info_t os, ulong *load_end, int boot_progress)
 
 	switch (comp) {
 	case IH_COMP_NONE:
-		if (load == blob_start) {
+		if (load == image_start) {
 			printf ("   XIP %s ... ", type_name);
 		} else {
 			printf ("   Loading %s ... ", type_name);
Signature · 1 line
1.7.0.4
#1 lore raw

PATCH 1/1 bootm: replace blob_start with image_start

Quoted 4 lines · Lei Wen

? ? ? ?case IH_COMP_NONE:
- ? ? ? ? ? ? ? if (load == blob_start) {
+ ? ? ? ? ? ? ? if (load == image_start) {
? ? ? ? ? ? ? ? ? ? ? ?printf (" ? XIP %s ... ", type_name);

this breaks XIP uImages that are created to work with existing u-boots. it'd be annoying to no longer be able to boot uImages that were working, and update kernel build systems that output those uImage formats.

so could you add your check as an additional one ?

if (load == blob_start || load == image_start) {
    ...

-mike

#2 lore raw

PATCH 1/1 bootm: replace blob_start with image_start

Quoted 11 lines · Mike Frysinger
Quoted 4 lines · Lei Wen

? ? ? ?case IH_COMP_NONE:
- ? ? ? ? ? ? ? if (load == blob_start) {
+ ? ? ? ? ? ? ? if (load == image_start) {
? ? ? ? ? ? ? ? ? ? ? ?printf (" ? XIP %s ... ", type_name);

this breaks XIP uImages that are created to work with existing u-boots. ?it'd be annoying to no longer be able to boot uImages that were working, and update kernel build systems that output those uImage formats.

Quoted 4 lines

so could you add your check as an additional one ? if (load == blob_start || load == image_start) { ? ?...
-mike

Understand...
I would submit a updated patch adopt it.

Best regards,
Lei

author
#3 lore raw

PATCH v2 1/1 bootm: replace blob_start with image_start

In reply to Mike Frysinger

For uImage always has a 64 bytes header, we couldn't expect to do the xip from the header but should xip from the image start.

The latter logic in that section is also move the image from image_start to the load address, so sync this logic to the xip operation.

---
V2: keep the original XIP setting to compare with blob_start.
This would make original uImage still could works, since it modify the make uImage Makefile in the kernel.

 common/cmd_bootm.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
common/cmd_bootm.c +1 -1
index 18019d6..778f6a4 100644
@@ -344,7 +344,7 @@ static int bootm_load_os(image_info_t os, ulong *load_end, int boot_progress)
 
 	switch (comp) {
 	case IH_COMP_NONE:
-		if (load == blob_start) {
+		if (load == blob_start || load == image_start) {
 			printf ("   XIP %s ... ", type_name);
 		} else {
 			printf ("   Loading %s ... ", type_name);
Signature · 1 line
1.7.0.4
#4 lore raw

PATCH v2 1/1 bootm: replace blob_start with image_start

Hi Albert,

Quoted 22 lines · Lei Wen

For uImage always has a 64 bytes header, we couldn't expect to do the xip from the header but should xip from the image start.

The latter logic in that section is also move the image from image_start to the load address, so sync this logic to the xip operation.

---
V2: keep the original XIP setting to compare with blob_start. ? ? ? ?This would make original uImage still could works, since ? ? ? ?it modify the make uImage Makefile in the kernel.

?common/cmd_bootm.c | ? ?2 +-
?1 files changed, 1 insertions(+), 1 deletions(-)

common/cmd_bootm.c +0 -0
index 18019d6..778f6a4 100644
@@ -344,7 +344,7 @@ static int bootm_load_os(image_info_t os, ulong *load_end, int boot_progress)
 
 ? ? ? ?switch (comp) {
Quoted 8 lines

? ? ? ?case IH_COMP_NONE:
- ? ? ? ? ? ? ? if (load == blob_start) {
+ ? ? ? ? ? ? ? if (load == blob_start || load == image_start) { ? ? ? ? ? ? ? ? ? ? ? ?printf (" ? XIP %s ... ", type_name); ? ? ? ? ? ? ? ?} else {
? ? ? ? ? ? ? ? ? ? ? ?printf (" ? Loading %s ... ", type_name); --
1.7.0.4

How about merge this patch into arm git tree?

Thanks,
Lei

#5 lore raw

PATCH v2 1/1 bootm: replace blob_start with image_start

Le 04/02/2011 03:32, Lei Wen a ?crit :

Quoted 24 lines

Hi Albert,

Quoted 21 lines · Lei Wen

For uImage always has a 64 bytes header, we couldn't expect to do the xip from the header but should xip from the image start.

The latter logic in that section is also move the image from image_start to the load address, so sync this logic to the xip operation.

---
V2: keep the original XIP setting to compare with blob_start.
This would make original uImage still could works, since it modify the make uImage Makefile in the kernel.

  common/cmd_bootm.c |    2 +-
  1 files changed, 1 insertions(+), 1 deletions(-)
common/cmd_bootm.c +0 -0
index 18019d6..778f6a4 100644
@@ -344,7 +344,7 @@ static int bootm_load_os(image_info_t os, ulong *load_end, int boot_progress)
 
Quoted 11 lines
Quoted 9 lines
common/cmd_bootm.c +1 -2
        switch (comp) {
        case IH_COMP_NONE:
-               if (load == blob_start) {
+               if (load == blob_start || load == image_start) {
                        printf ("   XIP %s ... ", type_name);
                } else {
                        printf ("   Loading %s ... ", type_name);
--

1.7.0.4

How about merge this patch into arm git tree?

Mike,

Did you re-test patch V2?

Quoted 2 lines

Thanks,
Lei

Amicalement,

Signature · 1 line
Albert.
#6 lore raw

PATCH v2 1/1 bootm: replace blob_start with image_start

Quoted 1 line · On Saturday, February 05, 2011 02:57:42 Albert ARIBAUD wrote:

Did you re-test patch V2?

i didnt test either ... v2 looks pretty straight forward though

-mike
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part.
Url : http://lists.denx.de/pipermail/u-boot/attachments/20110215/8f13b996/attachment.pgp

#7 lore raw

PATCH v2 1/1 bootm: replace blob_start with image_start

In reply to Lei Wen
Quoted 23 lines · On Thursday, February 03, 2011 21:32:10 Lei Wen wrote:
Quoted 22 lines · Lei Wen

For uImage always has a 64 bytes header, we couldn't expect to do the xip from the header but should xip from the image start.

The latter logic in that section is also move the image from image_start to the load address, so sync this logic to the xip operation.

---
V2: keep the original XIP setting to compare with blob_start.
This would make original uImage still could works, since it modify the make uImage Makefile in the kernel.

 common/cmd_bootm.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
common/cmd_bootm.c +0 -0
index 18019d6..778f6a4 100644
@@ -344,7 +344,7 @@ static int bootm_load_os(image_info_t os, ulong
 *load_end, int boot_progress)
 
Quoted 9 lines
Quoted 7 lines
common/cmd_bootm.c +1 -1
       switch (comp) {
       case IH_COMP_NONE:
-               if (load == blob_start) {
+               if (load == blob_start || load == image_start) {
                       printf ("   XIP %s ... ", type_name);
               } else {
                       printf ("   Loading %s ... ", type_name);

How about merge this patch into arm git tree?

this is not an arm patch and so is not appropriate for that repo. it needs to go through Wolfgang.
-mike
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part.
Url : http://lists.denx.de/pipermail/u-boot/attachments/20110215/169a74b1/attachment.pgp

#8 lore raw

PATCH v2 1/1 bootm: replace blob_start with image_start

In reply to Lei Wen

Dear Lei Wen,

Quoted 6 lines · In message <[email protected]> you wrote:

For uImage always has a 64 bytes header, we couldn't expect to do the xip from the header but should xip from the image start.

The latter logic in that section is also move the image from image_start to the load address, so sync this logic to the xip operation.

Quoted 8 lines

---
V2: keep the original XIP setting to compare with blob_start.
This would make original uImage still could works, since it modify the make uImage Makefile in the kernel.

 common/cmd_bootm.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

Applied, thanks.

Best regards,

Wolfgang Denk

Signature · 6 lines
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
Sometimes a man will tell his bartender things he'll never tell his doctor.
	-- Dr. Phillip Boyce, "The Menagerie" ("The Cage"),
	   stardate unknown.