* [U-Boot] [PATCH v3 17/21] arm: Implement the 'fake' go command
@ 2013-06-20 4:15 Simon Glass
2013-06-20 9:55 ` Albert ARIBAUD
2013-08-21 21:59 ` vb at vsbe.com
0 siblings, 2 replies; 5+ messages in thread
From: Simon Glass @ 2013-06-20 4:15 UTC (permalink / raw)
To: u-boot
Implement this feature on ARM for tracing.
It would be nice to have generic bootm support so that it is easily
implemented on any arch.
Signed-off-by: Simon Glass <sjg@chromium.org>
---
Changes in v3:
- Revert to using 'images' instead of 'image' in boot_jump_linux()
Changes in v2: None
arch/arm/lib/bootm.c | 27 ++++++++++++++++++---------
1 file changed, 18 insertions(+), 9 deletions(-)
diff --git a/arch/arm/lib/bootm.c b/arch/arm/lib/bootm.c
index 1b6e0ac..b22fbc9 100644
--- a/arch/arm/lib/bootm.c
+++ b/arch/arm/lib/bootm.c
@@ -68,12 +68,19 @@ void arch_lmb_reserve(struct lmb *lmb)
gd->bd->bi_dram[0].start + gd->bd->bi_dram[0].size - sp);
}
-static void announce_and_cleanup(void)
+/**
+ * announce_and_cleanup() - Print message and prepare for kernel boot
+ *
+ * @fake: non-zero to do everything except actually boot
+ */
+static void announce_and_cleanup(int fake)
{
- printf("\nStarting kernel ...\n\n");
+ printf("\nStarting kernel ...%s\n\n", fake ?
+ "(fake run for tracing)" : "");
bootstage_mark_name(BOOTSTAGE_ID_BOOTM_HANDOFF, "start_kernel");
#ifdef CONFIG_BOOTSTAGE_FDT
- bootstage_fdt_add_report();
+ if (flag == BOOTM_STATE_OS_FAKE_GO)
+ bootstage_fdt_add_report();
#endif
#ifdef CONFIG_BOOTSTAGE_REPORT
bootstage_report();
@@ -225,12 +232,13 @@ static void boot_prep_linux(bootm_headers_t *images)
}
/* Subcommand: GO */
-static void boot_jump_linux(bootm_headers_t *images)
+static void boot_jump_linux(bootm_headers_t *images, int flag)
{
unsigned long machid = gd->bd->bi_arch_number;
char *s;
void (*kernel_entry)(int zero, int arch, uint params);
unsigned long r2;
+ int fake = (flag & BOOTM_STATE_OS_FAKE_GO);
kernel_entry = (void (*)(int, int, uint))images->ep;
@@ -243,14 +251,15 @@ static void boot_jump_linux(bootm_headers_t *images)
debug("## Transferring control to Linux (at address %08lx)" \
"...\n", (ulong) kernel_entry);
bootstage_mark(BOOTSTAGE_ID_RUN_OS);
- announce_and_cleanup();
+ announce_and_cleanup(fake);
if (IMAGE_ENABLE_OF_LIBFDT && images->ft_len)
r2 = (unsigned long)images->ft_addr;
else
r2 = gd->bd->bi_boot_params;
- kernel_entry(0, machid, r2);
+ if (!fake)
+ kernel_entry(0, machid, r2);
}
/* Main Entry point for arm bootm implementation
@@ -270,13 +279,13 @@ int do_bootm_linux(int flag, int argc, char *argv[], bootm_headers_t *images)
return 0;
}
- if (flag & BOOTM_STATE_OS_GO) {
- boot_jump_linux(images);
+ if (flag & (BOOTM_STATE_OS_GO | BOOTM_STATE_OS_FAKE_GO)) {
+ boot_jump_linux(images, flag);
return 0;
}
boot_prep_linux(images);
- boot_jump_linux(images);
+ boot_jump_linux(images, flag);
return 0;
}
--
1.8.3
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [U-Boot] [PATCH v3 17/21] arm: Implement the 'fake' go command
2013-06-20 4:15 [U-Boot] [PATCH v3 17/21] arm: Implement the 'fake' go command Simon Glass
@ 2013-06-20 9:55 ` Albert ARIBAUD
2013-06-20 20:40 ` Simon Glass
2013-08-21 21:59 ` vb at vsbe.com
1 sibling, 1 reply; 5+ messages in thread
From: Albert ARIBAUD @ 2013-06-20 9:55 UTC (permalink / raw)
To: u-boot
Hi Simon,
On Wed, 19 Jun 2013 21:15:10 -0700, Simon Glass <sjg@chromium.org>
wrote:
> Implement this feature on ARM for tracing.
>
> It would be nice to have generic bootm support so that it is easily
> implemented on any arch.
>
> Signed-off-by: Simon Glass <sjg@chromium.org>
> ---
> Changes in v3:
> - Revert to using 'images' instead of 'image' in boot_jump_linux()
>
> Changes in v2: None
Small nitpick: I prefer whole series to be reposted even when there is
only a single patch changed. My rationale for this is: when a series
has been posted as V2 and a single patch appears as V3, as a reviewer I
do not know whether that patch was really the only one intended as V3,
or whether other patches were too but did not make it through for some
reason.
Also, as this V3 patch did not have any "In-Reply-To" header, it is not
threaded to the V2 series by my claws-mail. That makes it less easy to
try and get an overview of the current series.
[insert witty remark about how patman quite adequately addresses the two
points above :) ]
Here I will assume 17/21 is the only patch in the series and the rest
should come from v2 unchanged. As this is the only pure ARM related
patch in the series (1), I guess my contribution shall be...
Acked-by: Albert ARIBAUD <albert.u.boot@aribaud.net>
(1) patch 18/21 is Samsung and patch 19/21 touches on exynos5250-based
boards; my ack is less adequate than that of, respectively, Minkyu as
the Samsung custodian and the exynos5250-based boards' maintainers.
Note: who/what exactly is "u-boot-review at google.com"?
Amicalement,
--
Albert.
^ permalink raw reply [flat|nested] 5+ messages in thread
* [U-Boot] [PATCH v3 17/21] arm: Implement the 'fake' go command
2013-06-20 9:55 ` Albert ARIBAUD
@ 2013-06-20 20:40 ` Simon Glass
0 siblings, 0 replies; 5+ messages in thread
From: Simon Glass @ 2013-06-20 20:40 UTC (permalink / raw)
To: u-boot
Hi Albert,
On Thu, Jun 20, 2013 at 2:55 AM, Albert ARIBAUD
<albert.u.boot@aribaud.net>wrote:
> Hi Simon,
>
> On Wed, 19 Jun 2013 21:15:10 -0700, Simon Glass <sjg@chromium.org>
> wrote:
>
> > Implement this feature on ARM for tracing.
> >
> > It would be nice to have generic bootm support so that it is easily
> > implemented on any arch.
> >
> > Signed-off-by: Simon Glass <sjg@chromium.org>
> > ---
> > Changes in v3:
> > - Revert to using 'images' instead of 'image' in boot_jump_linux()
> >
> > Changes in v2: None
>
> Small nitpick: I prefer whole series to be reposted even when there is
> only a single patch changed. My rationale for this is: when a series
> has been posted as V2 and a single patch appears as V3, as a reviewer I
> do not know whether that patch was really the only one intended as V3,
> or whether other patches were too but did not make it through for some
> reason.
>
> Also, as this V3 patch did not have any "In-Reply-To" header, it is not
> threaded to the V2 series by my claws-mail. That makes it less easy to
> try and get an overview of the current series.
>
> [insert witty remark about how patman quite adequately addresses the two
> points above :) ]
>
:-) I did use patman but only let it send a single patch. I felt that my
list spam quotient was high enough already, but perhaps not.
>
> Here I will assume 17/21 is the only patch in the series and the rest
> should come from v2 unchanged. As this is the only pure ARM related
> patch in the series (1), I guess my contribution shall be...
>
> Acked-by: Albert ARIBAUD <albert.u.boot@aribaud.net>
>
> (1) patch 18/21 is Samsung and patch 19/21 touches on exynos5250-based
> boards; my ack is less adequate than that of, respectively, Minkyu as
> the Samsung custodian and the exynos5250-based boards' maintainers.
>
Yes
>
> Note: who/what exactly is "u-boot-review at google.com"?
>
It is a group of U-Boot people in Google, just so I don't have to copy
heaps of people and break the cc limit of the mailing list.
Regards,
Simon
^ permalink raw reply [flat|nested] 5+ messages in thread
* [U-Boot] [PATCH v3 17/21] arm: Implement the 'fake' go command
2013-06-20 4:15 [U-Boot] [PATCH v3 17/21] arm: Implement the 'fake' go command Simon Glass
2013-06-20 9:55 ` Albert ARIBAUD
@ 2013-08-21 21:59 ` vb at vsbe.com
2013-08-21 22:16 ` Simon Glass
1 sibling, 1 reply; 5+ messages in thread
From: vb at vsbe.com @ 2013-08-21 21:59 UTC (permalink / raw)
To: u-boot
On Wed, Jun 19, 2013 at 9:15 PM, Simon Glass <sjg@chromium.org> wrote:
>
> Implement this feature on ARM for tracing.
>
> It would be nice to have generic bootm support so that it is easily
> implemented on any arch.
>
> Signed-off-by: Simon Glass <sjg@chromium.org>
> ---
> Changes in v3:
> - Revert to using 'images' instead of 'image' in boot_jump_linux()
>
> Changes in v2: None
>
> arch/arm/lib/bootm.c | 27 ++++++++++++++++++---------
> 1 file changed, 18 insertions(+), 9 deletions(-)
>
> diff --git a/arch/arm/lib/bootm.c b/arch/arm/lib/bootm.c
> index 1b6e0ac..b22fbc9 100644
> --- a/arch/arm/lib/bootm.c
> +++ b/arch/arm/lib/bootm.c
> @@ -68,12 +68,19 @@ void arch_lmb_reserve(struct lmb *lmb)
> gd->bd->bi_dram[0].start + gd->bd->bi_dram[0].size - sp);
> }
>
> -static void announce_and_cleanup(void)
> +/**
> + * announce_and_cleanup() - Print message and prepare for kernel boot
> + *
> + * @fake: non-zero to do everything except actually boot
> + */
> +static void announce_and_cleanup(int fake)
> {
> - printf("\nStarting kernel ...\n\n");
> + printf("\nStarting kernel ...%s\n\n", fake ?
> + "(fake run for tracing)" : "");
> bootstage_mark_name(BOOTSTAGE_ID_BOOTM_HANDOFF, "start_kernel");
> #ifdef CONFIG_BOOTSTAGE_FDT
> - bootstage_fdt_add_report();
> + if (flag == BOOTM_STATE_OS_FAKE_GO)
> + bootstage_fdt_add_report();
> #endif
was this ever compiled with CONFIG_BOOTSTAGE_FDT defined? `flag' is
not defined here, compilation fails for me when I try enabling this
config...
--vb
> #ifdef CONFIG_BOOTSTAGE_REPORT
> bootstage_report();
> @@ -225,12 +232,13 @@ static void boot_prep_linux(bootm_headers_t *images)
> }
>
> /* Subcommand: GO */
> -static void boot_jump_linux(bootm_headers_t *images)
> +static void boot_jump_linux(bootm_headers_t *images, int flag)
> {
> unsigned long machid = gd->bd->bi_arch_number;
> char *s;
> void (*kernel_entry)(int zero, int arch, uint params);
> unsigned long r2;
> + int fake = (flag & BOOTM_STATE_OS_FAKE_GO);
>
> kernel_entry = (void (*)(int, int, uint))images->ep;
>
> @@ -243,14 +251,15 @@ static void boot_jump_linux(bootm_headers_t *images)
> debug("## Transferring control to Linux (at address %08lx)" \
> "...\n", (ulong) kernel_entry);
> bootstage_mark(BOOTSTAGE_ID_RUN_OS);
> - announce_and_cleanup();
> + announce_and_cleanup(fake);
>
> if (IMAGE_ENABLE_OF_LIBFDT && images->ft_len)
> r2 = (unsigned long)images->ft_addr;
> else
> r2 = gd->bd->bi_boot_params;
>
> - kernel_entry(0, machid, r2);
> + if (!fake)
> + kernel_entry(0, machid, r2);
> }
>
> /* Main Entry point for arm bootm implementation
> @@ -270,13 +279,13 @@ int do_bootm_linux(int flag, int argc, char *argv[], bootm_headers_t *images)
> return 0;
> }
>
> - if (flag & BOOTM_STATE_OS_GO) {
> - boot_jump_linux(images);
> + if (flag & (BOOTM_STATE_OS_GO | BOOTM_STATE_OS_FAKE_GO)) {
> + boot_jump_linux(images, flag);
> return 0;
> }
>
> boot_prep_linux(images);
> - boot_jump_linux(images);
> + boot_jump_linux(images, flag);
> return 0;
> }
>
> --
> 1.8.3
>
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot
^ permalink raw reply [flat|nested] 5+ messages in thread
* [U-Boot] [PATCH v3 17/21] arm: Implement the 'fake' go command
2013-08-21 21:59 ` vb at vsbe.com
@ 2013-08-21 22:16 ` Simon Glass
0 siblings, 0 replies; 5+ messages in thread
From: Simon Glass @ 2013-08-21 22:16 UTC (permalink / raw)
To: u-boot
Hi Vb,
On Wed, Aug 21, 2013 at 3:59 PM, <vb@vsbe.com> wrote:
> On Wed, Jun 19, 2013 at 9:15 PM, Simon Glass <sjg@chromium.org> wrote:
>>
>> Implement this feature on ARM for tracing.
>>
>> It would be nice to have generic bootm support so that it is easily
>> implemented on any arch.
>>
>> Signed-off-by: Simon Glass <sjg@chromium.org>
>> ---
>> Changes in v3:
>> - Revert to using 'images' instead of 'image' in boot_jump_linux()
>>
>> Changes in v2: None
>>
>> arch/arm/lib/bootm.c | 27 ++++++++++++++++++---------
>> 1 file changed, 18 insertions(+), 9 deletions(-)
>>
>> diff --git a/arch/arm/lib/bootm.c b/arch/arm/lib/bootm.c
>> index 1b6e0ac..b22fbc9 100644
>> --- a/arch/arm/lib/bootm.c
>> +++ b/arch/arm/lib/bootm.c
>> @@ -68,12 +68,19 @@ void arch_lmb_reserve(struct lmb *lmb)
>> gd->bd->bi_dram[0].start + gd->bd->bi_dram[0].size - sp);
>> }
>>
>> -static void announce_and_cleanup(void)
>> +/**
>> + * announce_and_cleanup() - Print message and prepare for kernel boot
>> + *
>> + * @fake: non-zero to do everything except actually boot
>> + */
>> +static void announce_and_cleanup(int fake)
>> {
>> - printf("\nStarting kernel ...\n\n");
>> + printf("\nStarting kernel ...%s\n\n", fake ?
>> + "(fake run for tracing)" : "");
>> bootstage_mark_name(BOOTSTAGE_ID_BOOTM_HANDOFF, "start_kernel");
>> #ifdef CONFIG_BOOTSTAGE_FDT
>> - bootstage_fdt_add_report();
>> + if (flag == BOOTM_STATE_OS_FAKE_GO)
>> + bootstage_fdt_add_report();
>> #endif
>
> was this ever compiled with CONFIG_BOOTSTAGE_FDT defined? `flag' is
> not defined here, compilation fails for me when I try enabling this
> config...
I am not sure of the answer to your question, but if you have fixed
this problem you could submit a patch - it would be welcome.
Regards,
Simon
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2013-08-21 22:16 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-06-20 4:15 [U-Boot] [PATCH v3 17/21] arm: Implement the 'fake' go command Simon Glass
2013-06-20 9:55 ` Albert ARIBAUD
2013-06-20 20:40 ` Simon Glass
2013-08-21 21:59 ` vb at vsbe.com
2013-08-21 22:16 ` Simon Glass
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox