[U-Boot] [U-BOOT] [PATCH] 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.
Signed-off-by: Lei Wen leiwen@marvell.com --- common/cmd_bootm.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/common/cmd_bootm.c b/common/cmd_bootm.c index 18019d6..81fc4be 100644 --- a/common/cmd_bootm.c +++ b/common/cmd_bootm.c @@ -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);

On Mon, Jan 10, 2011 at 4:31 AM, Lei Wen wrote:
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

On Mon, Jan 10, 2011 at 5:45 PM, Mike Frysinger vapier@gentoo.org wrote:
On Mon, Jan 10, 2011 at 4:31 AM, Lei Wen wrote:
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
Understand... I would submit a updated patch adopt it.
Best regards, Lei

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.
Signed-off-by: Lei Wen leiwen@marvell.com --- 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(-)
diff --git a/common/cmd_bootm.c b/common/cmd_bootm.c index 18019d6..778f6a4 100644 --- a/common/cmd_bootm.c +++ b/common/cmd_bootm.c @@ -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);

Hi Albert,
On Mon, Jan 10, 2011 at 6:21 PM, Lei Wen leiwen@marvell.com 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.
Signed-off-by: Lei Wen leiwen@marvell.com
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(-)
diff --git a/common/cmd_bootm.c b/common/cmd_bootm.c index 18019d6..778f6a4 100644 --- a/common/cmd_bootm.c +++ b/common/cmd_bootm.c @@ -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); -- 1.7.0.4
How about merge this patch into arm git tree?
Thanks, Lei

Le 04/02/2011 03:32, Lei Wen a écrit :
Hi Albert,
On Mon, Jan 10, 2011 at 6:21 PM, Lei Wenleiwen@marvell.com 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.
Signed-off-by: Lei Wenleiwen@marvell.com
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(-)
diff --git a/common/cmd_bootm.c b/common/cmd_bootm.c index 18019d6..778f6a4 100644 --- a/common/cmd_bootm.c +++ b/common/cmd_bootm.c @@ -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);
-- 1.7.0.4
How about merge this patch into arm git tree?
Mike,
Did you re-test patch V2?
Thanks, Lei
Amicalement,

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
Acked-by: Mike Frysinger vapier@gentoo.org -mike

On Thursday, February 03, 2011 21:32:10 Lei Wen wrote:
On Mon, Jan 10, 2011 at 6:21 PM, Lei Wen 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.
Signed-off-by: Lei Wen leiwen@marvell.com
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(-)
diff --git a/common/cmd_bootm.c b/common/cmd_bootm.c index 18019d6..778f6a4 100644 --- a/common/cmd_bootm.c +++ b/common/cmd_bootm.c @@ -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);
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

Dear Lei Wen,
In message 1294654875-6414-1-git-send-email-leiwen@marvell.com 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.
Signed-off-by: Lei Wen leiwen@marvell.com
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
participants (5)
-
Albert ARIBAUD
-
Lei Wen
-
Lei Wen
-
Mike Frysinger
-
Wolfgang Denk