From: Marek Vasut <marex@denx.de>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v2 01/11] arm: Optionally use existing atags in bootm.c
Date: Sun, 29 Apr 2012 00:15:23 +0200 [thread overview]
Message-ID: <201204290015.23978.marex@denx.de> (raw)
In-Reply-To: <1335634011-9104-2-git-send-email-pali.rohar@gmail.com>
Dear Pali Roh?r,
> This patch adapts the bootm command so that it can use an existing atags
> command set up by a previous bootloader. If the environment variable
> "atagaddr" is unset, bootm behaves as normal. If "atagaddr" is set, bootm
> will use atags address from environment variable and also append new boot
> args (if specified in u-boot). For example, if a previous boot loader
> already set up the atags struct at 0x80000100:
Won't it be easier to create a preprocessing function that'd fill gd properly,
so uboot can generate the atags through standard means then?
>
> setenv atagaddr 0x80000100; bootm 0x80008000
>
> Signed-off-by: Pali Roh?r <pali.rohar@gmail.com>
> ---
> Changes since v1:
> - Rebased on u-boot master
>
> Changes since original version:
> - Added info to README file
> - Added local define CONFIG_SETUP_ANY_TAG
> - Fixed compile warning
> - Fixed commit message
> - Check if atagaddr is not NULL
>
> README | 2 ++
> arch/arm/lib/bootm.c | 60
> ++++++++++++++++++++++++++++++++------------------ 2 files changed, 40
> insertions(+), 22 deletions(-)
>
> diff --git a/README b/README
> index 43074cf..60ad9c2 100644
> --- a/README
> +++ b/README
> @@ -3687,6 +3687,8 @@ Some configuration options can be set using
> Environment Variables.
>
> List of environment variables (most likely not complete):
>
> + atagaddr - bootm will use ATAGs struct from specified address (arm only)
> +
> baudrate - see CONFIG_BAUDRATE
>
> bootdelay - see CONFIG_BOOTDELAY
> diff --git a/arch/arm/lib/bootm.c b/arch/arm/lib/bootm.c
> index 599547d..0f3c97b 100644
> --- a/arch/arm/lib/bootm.c
> +++ b/arch/arm/lib/bootm.c
> @@ -42,6 +42,10 @@ DECLARE_GLOBAL_DATA_PTR;
> defined(CONFIG_INITRD_TAG) || \
> defined(CONFIG_SERIAL_TAG) || \
> defined(CONFIG_REVISION_TAG)
> + #define CONFIG_SETUP_ANY_TAG
> +#endif
> +
> +#ifdef CONFIG_SETUP_ANY_TAG
> static struct tag *params;
> #endif
>
> @@ -106,11 +110,7 @@ static void announce_and_cleanup(void)
> cleanup_before_linux();
> }
>
> -#if defined(CONFIG_SETUP_MEMORY_TAGS) || \
> - defined(CONFIG_CMDLINE_TAG) || \
> - defined(CONFIG_INITRD_TAG) || \
> - defined(CONFIG_SERIAL_TAG) || \
> - defined(CONFIG_REVISION_TAG)
> +#ifdef CONFIG_SETUP_ANY_TAG
> static void setup_start_tag (bd_t *bd)
> {
> params = (struct tag *)bd->bi_boot_params;
> @@ -217,11 +217,7 @@ void setup_revision_tag(struct tag **in_params)
> }
> #endif
>
> -#if defined(CONFIG_SETUP_MEMORY_TAGS) || \
> - defined(CONFIG_CMDLINE_TAG) || \
> - defined(CONFIG_INITRD_TAG) || \
> - defined(CONFIG_SERIAL_TAG) || \
> - defined(CONFIG_REVISION_TAG)
> +#ifdef CONFIG_SETUP_ANY_TAG
> static void setup_end_tag(bd_t *bd)
> {
> params->hdr.tag = ATAG_NONE;
> @@ -280,13 +276,23 @@ static void boot_prep_linux(bootm_headers_t *images)
> } else
> #endif
> {
> -#if defined(CONFIG_SETUP_MEMORY_TAGS) || \
> - defined(CONFIG_CMDLINE_TAG) || \
> - defined(CONFIG_INITRD_TAG) || \
> - defined(CONFIG_SERIAL_TAG) || \
> - defined(CONFIG_REVISION_TAG)
> + char *atagaddr = getenv("atagaddr");
> debug("using: ATAGS\n");
> - setup_start_tag(gd->bd);
> +
> + if (atagaddr)
> + gd->bd->bi_boot_params = simple_strtoul(atagaddr, NULL,
16);
> +
> + if (gd->bd->bi_boot_params) {
> + printf("Using existing atags at %#lx\n", gd->bd-
>bi_boot_params);
> +
> + params = (struct tag *) gd->bd->bi_boot_params;
> + while (params->hdr.size > 0)
> + params = tag_next(params);
> + } else {
> +#ifdef CONFIG_SETUP_ANY_TAG
> + setup_start_tag(gd->bd);
> +#endif
> + }
> #ifdef CONFIG_SERIAL_TAG
> setup_serial_tag(¶ms);
> #endif
> @@ -297,18 +303,28 @@ static void boot_prep_linux(bootm_headers_t *images)
> setup_revision_tag(¶ms);
> #endif
> #ifdef CONFIG_SETUP_MEMORY_TAGS
> - setup_memory_tags(gd->bd);
> + if (!atagaddr)
> + setup_memory_tags(gd->bd);
> #endif
> #ifdef CONFIG_INITRD_TAG
> if (images->rd_start && images->rd_end)
> setup_initrd_tag(gd->bd, images->rd_start,
> images->rd_end);
> #endif
> - setup_end_tag(gd->bd);
> -#else /* all tags */
> - printf("FDT and ATAGS support not compiled in - hanging\n");
> - hang();
> -#endif /* all tags */
> + if (atagaddr) {
> + if (params->hdr.size > 0)
> + setup_end_tag(gd->bd);
> + } else {
> +#ifdef CONFIG_SETUP_ANY_TAG
> + setup_end_tag(gd->bd);
> +#endif
> + }
> +#ifndef CONFIG_SETUP_ANY_TAG
> + if (!atagaddr) {
> + printf("FDT and ATAGS support not compiled in -
hanging\n");
> + hang();
> + }
> +#endif
> }
> }
next prev parent reply other threads:[~2012-04-28 22:15 UTC|newest]
Thread overview: 220+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-01-24 14:27 [U-Boot] [PATCH 00/14] Nokia RX-51 support Pali Rohár
2012-01-24 14:27 ` [U-Boot] [PATCH 01/14] arm, omap3: Define save_boot_params in lowlevel_init.S for SPL only Pali Rohár
2012-01-25 18:00 ` Marek Vasut
2012-01-25 18:50 ` Tom Rini
2012-01-25 18:47 ` Tom Rini
2012-02-28 16:25 ` Pali Rohár
2012-02-28 16:29 ` Tom Rini
2012-02-29 21:37 ` Marek Vasut
2012-03-05 18:24 ` Tom Rini
2012-03-05 18:49 ` Marek Vasut
2012-01-24 14:27 ` [U-Boot] [PATCH 02/14] arm: Optionally use existing atags in bootm.c Pali Rohár
2012-01-25 18:02 ` Marek Vasut
2012-01-25 19:17 ` Pali Rohár
2012-01-25 20:55 ` Marek Vasut
2012-01-25 21:08 ` Pali Rohár
2012-01-25 21:28 ` Marek Vasut
2012-01-25 21:35 ` Pali Rohár
2012-01-25 21:55 ` Marek Vasut
2012-01-25 22:03 ` Pali Rohár
2012-01-24 14:28 ` [U-Boot] [PATCH 03/14] Add power bus message definitions in twl4030.h Pali Rohár
2012-01-25 18:04 ` Marek Vasut
2012-01-25 19:24 ` Pali Rohár
2012-01-26 7:15 ` Igor Grinberg
2012-01-24 14:28 ` [U-Boot] [PATCH 04/14] Fix function readline in main.c Pali Rohár
2012-01-25 18:05 ` Marek Vasut
2012-02-27 20:39 ` Mike Frysinger
2012-01-24 14:28 ` [U-Boot] [PATCH 05/14] cfb_console: Fix function console_scrollup Pali Rohár
2012-01-25 18:06 ` Marek Vasut
2012-01-25 19:59 ` Pali Rohár
2012-03-21 9:45 ` Anatolij Gustschin
2012-03-21 10:20 ` Marek Vasut
2012-03-21 11:32 ` Anatolij Gustschin
2012-03-21 11:39 ` Anatolij Gustschin
2012-03-21 18:50 ` Pali Rohár
2012-03-21 22:58 ` Anatolij Gustschin
2012-03-22 8:58 ` Pali Rohár
2012-03-23 8:47 ` Anatolij Gustschin
2012-04-26 21:45 ` Anatolij Gustschin
2012-04-26 21:50 ` Pali Rohár
2012-04-28 15:11 ` Anatolij Gustschin
2012-04-28 15:58 ` Pali Rohár
2012-01-24 14:28 ` [U-Boot] [PATCH 06/14] cfb_console: Add function console_clear and console_clear_line Pali Rohár
2012-01-25 18:08 ` Marek Vasut
2012-01-25 19:31 ` Pali Rohár
2012-01-25 20:54 ` Marek Vasut
2012-01-24 14:28 ` [U-Boot] [PATCH 07/14] cfb_console: Add functions for moving with cursor Pali Rohár
2012-01-24 14:28 ` [U-Boot] [PATCH 08/14] cfb_console: Add support for some ANSI terminal escape codes Pali Rohár
2012-01-24 14:28 ` [U-Boot] [PATCH 09/14] New command clear: Clear the ANSI terminal Pali Rohár
2012-01-25 18:10 ` Marek Vasut
2012-01-25 19:33 ` Pali Rohár
2012-01-25 20:53 ` Marek Vasut
2012-02-14 7:02 ` Mike Frysinger
2012-01-24 14:28 ` [U-Boot] [PATCH 10/14] New config variable CONFIG_MENUCMD Pali Rohár
2012-01-25 18:12 ` Marek Vasut
2012-01-25 19:39 ` Pali Rohár
2012-01-25 20:53 ` Marek Vasut
2012-01-26 16:43 ` Pali Rohár
2012-02-14 7:09 ` Mike Frysinger
2012-01-24 14:28 ` [U-Boot] [PATCH 11/14] New config variable CONFIG_PREMONITOR Pali Rohár
2012-01-25 18:12 ` Marek Vasut
2012-01-25 19:48 ` Pali Rohár
2012-01-25 20:51 ` Marek Vasut
2012-01-25 21:24 ` Pali Rohár
2012-01-25 21:28 ` Marek Vasut
2012-01-25 21:55 ` Pali Rohár
2012-01-25 22:01 ` Marek Vasut
2012-02-14 7:04 ` Mike Frysinger
2012-01-24 14:28 ` [U-Boot] [PATCH 12/14] New board support: Nokia RX-51 aka N900 Pali Rohár
2012-01-24 14:28 ` [U-Boot] [PATCH 13/14] New command bootmenu: ANSI terminal Boot Menu support Pali Rohár
2012-01-25 18:18 ` Marek Vasut
2012-01-25 19:57 ` Pali Rohár
2012-01-27 10:51 ` Sergey Lapin
2012-02-14 7:07 ` Mike Frysinger
2012-01-24 14:28 ` [U-Boot] [PATCH 14/14] RX-51: Add support for bootmenu Pali Rohár
2012-01-24 19:25 ` [U-Boot] [PATCH 00/14] Nokia RX-51 support Graeme Russ
2012-01-25 9:48 ` Sergey Lapin
2012-01-25 11:51 ` Pali Rohár
2012-01-25 18:20 ` Marek Vasut
2012-01-25 19:08 ` Pali Rohár
2012-01-25 20:56 ` Marek Vasut
2012-01-25 21:16 ` Pali Rohár
2012-01-25 21:29 ` Marek Vasut
2012-01-25 21:53 ` Pali Rohár
2012-01-25 22:00 ` Marek Vasut
2012-01-26 16:25 ` Sergey Lapin
2012-01-26 16:39 ` Pali Rohár
2012-01-26 16:48 ` Marek Vasut
2012-01-27 8:59 ` Sergey Lapin
2012-01-27 10:27 ` Pali Rohár
2012-01-26 16:48 ` Marek Vasut
2012-01-25 17:59 ` Marek Vasut
2012-01-26 8:27 ` Graeme Russ
2012-02-04 12:26 ` Pali Rohár
2012-02-04 15:05 ` Marek Vasut
2012-02-26 20:37 ` Pali Rohár
2012-02-26 22:08 ` Marek Vasut
2012-02-27 4:10 ` Mike Frysinger
2012-02-27 18:41 ` Pali Rohár
2012-02-27 20:55 ` Marek Vasut
2012-03-04 20:21 ` Pali Rohár
2012-03-04 20:57 ` Marek Vasut
2012-03-04 21:35 ` Pali Rohár
2012-03-04 21:50 ` Marek Vasut
2012-03-05 21:54 ` Pali Rohár
2012-03-04 22:09 ` Wolfgang Denk
2012-03-05 21:56 ` Pali Rohár
2012-03-05 4:26 ` Mike Frysinger
2012-03-05 21:58 ` Pali Rohár
2012-03-05 23:09 ` Mike Frysinger
2012-03-10 13:18 ` Pali Rohár
2012-03-04 21:01 ` Mike Frysinger
2012-04-28 17:26 ` [U-Boot] [PATCH v2 00/11] " Pali Rohár
2012-04-28 17:26 ` [U-Boot] [PATCH v2 01/11] arm: Optionally use existing atags in bootm.c Pali Rohár
2012-04-28 21:20 ` Wolfgang Denk
2012-04-29 7:20 ` Pali Rohár
2012-04-29 12:16 ` Wolfgang Denk
2012-04-28 22:15 ` Marek Vasut [this message]
2012-04-29 7:14 ` Pali Rohár
2012-04-29 9:10 ` Marek Vasut
2012-04-29 9:15 ` Pali Rohár
2012-04-29 13:08 ` Marek Vasut
2012-06-01 18:31 ` Pali Rohár
2012-04-28 23:22 ` Mike Frysinger
2012-04-29 7:57 ` Pali Rohár
2012-04-28 17:26 ` [U-Boot] [PATCH v2 02/11] Add power bus message definitions in twl4030.h Pali Rohár
2012-04-28 17:26 ` [U-Boot] [PATCH v2 03/11] cfb_console: Fix function console_back Pali Rohár
2012-04-28 22:15 ` Marek Vasut
2012-04-29 7:24 ` Pali Rohár
2012-04-29 12:17 ` Wolfgang Denk
2012-05-19 19:16 ` Anatolij Gustschin
2012-06-01 18:42 ` Pali Rohár
2012-06-04 20:47 ` Anatolij Gustschin
2012-04-28 17:26 ` [U-Boot] [PATCH v2 04/11] cfb_console: Add function console_clear and console_clear_line Pali Rohár
2012-04-28 22:17 ` Marek Vasut
2012-04-28 17:26 ` [U-Boot] [PATCH v2 05/11] cfb_console: Add functions for moving with cursor Pali Rohár
2012-04-28 22:18 ` Marek Vasut
2012-04-29 7:26 ` Pali Rohár
2012-04-29 9:09 ` Marek Vasut
2012-04-29 12:18 ` Wolfgang Denk
2012-05-20 20:38 ` [U-Boot] [PATCH v3 05/11] cfb_console: Add console_clear_line function Anatolij Gustschin
2012-05-20 20:45 ` Anatolij Gustschin
2012-06-04 20:49 ` Anatolij Gustschin
2012-04-28 17:26 ` [U-Boot] [PATCH v2 06/11] cfb_console: Add support for some ANSI terminal escape codes Pali Rohár
2012-04-28 22:19 ` Marek Vasut
2012-04-29 7:29 ` Pali Rohár
2012-04-29 12:42 ` Wolfgang Denk
2012-04-28 17:26 ` [U-Boot] [PATCH v2 07/11] cfb_console: Ignore bell character Pali Rohár
2012-06-05 7:30 ` Anatolij Gustschin
2012-04-28 17:26 ` [U-Boot] [PATCH v2 08/11] video: cfb_console: flush dcache for frame buffer in DRAM Pali Rohár
2012-04-28 17:26 ` [U-Boot] [PATCH v2 09/11] New command clear: Clear the ANSI terminal Pali Rohár
2012-08-09 21:02 ` Wolfgang Denk
2012-04-28 17:26 ` [U-Boot] [PATCH v2 10/11] New config variable CONFIG_PREMONITOR Pali Rohár
2012-04-28 20:39 ` Wolfgang Denk
2012-04-29 7:37 ` Pali Rohár
2012-04-29 12:44 ` Wolfgang Denk
2012-04-28 17:26 ` [U-Boot] [PATCH v2 11/11] New board support: Nokia RX-51 aka N900 Pali Rohár
2012-04-28 21:32 ` Wolfgang Denk
2012-04-29 7:55 ` Pali Rohár
2012-04-29 9:18 ` Marek Vasut
2012-04-30 23:37 ` Tom Rini
2012-04-30 23:42 ` Marek Vasut
2012-05-01 0:41 ` Tom Rini
2012-06-01 18:39 ` Pali Rohár
2012-06-01 18:48 ` Marek Vasut
2012-06-01 19:03 ` Pali Rohár
2012-06-01 20:09 ` Marek Vasut
2012-04-29 12:49 ` Wolfgang Denk
2012-10-13 19:31 ` [U-Boot] [PATCH v3 0/5] Nokia RX-51 support Pali Rohár
2012-10-13 19:31 ` [U-Boot] [PATCH v3 1/5] arm bootm: Allow to pass board specified atags Pali Rohár
2012-10-13 23:43 ` Marek Vasut
2012-10-14 0:02 ` Pali Rohár
2012-10-14 0:18 ` Marek Vasut
2012-10-14 1:12 ` Pali Rohár
2012-10-13 19:31 ` [U-Boot] [PATCH v3 2/5] arm bootm: Do not append zero ATAG_MEM Pali Rohár
2012-10-13 23:45 ` Marek Vasut
2012-10-14 0:08 ` Pali Rohár
2012-10-14 0:17 ` Marek Vasut
2012-10-14 0:23 ` Pali Rohár
2012-10-14 0:27 ` Marek Vasut
2012-10-14 0:35 ` Pali Rohár
2012-10-14 1:08 ` Marek Vasut
2012-10-16 15:56 ` Tom Rini
2012-10-13 19:31 ` [U-Boot] [PATCH v3 3/5] Add power bus message definitions in twl4030.h Pali Rohár
2012-10-13 23:46 ` Marek Vasut
2012-10-14 0:14 ` Pali Rohár
2012-10-14 0:16 ` Marek Vasut
2012-10-14 0:51 ` Pali Rohár
2012-10-14 1:08 ` Marek Vasut
2012-10-13 19:31 ` [U-Boot] [PATCH v3 4/5] cfb_console: Add support for some ANSI terminal escape codes Pali Rohár
2012-10-13 23:48 ` Marek Vasut
2012-10-14 0:18 ` Pali Rohár
2012-10-14 0:27 ` Marek Vasut
2012-10-13 19:32 ` [U-Boot] [PATCH v3 5/5] New board support: Nokia RX-51 aka N900 Pali Rohár
2012-10-14 0:06 ` Marek Vasut
2012-10-14 8:31 ` Albert ARIBAUD
2012-10-16 14:43 ` Pali Rohár
2012-10-16 14:55 ` Marek Vasut
2012-10-16 15:46 ` Pali Rohár
2012-10-16 15:57 ` Marek Vasut
2012-10-16 16:15 ` Pali Rohár
2012-10-19 12:00 ` [U-Boot] [PATCH v4 0/5] Nokia RX-51 support Pali Rohár
2012-10-19 12:00 ` [U-Boot] [PATCH v4 1/5] arm bootm: Allow to pass board specified atags Pali Rohár
2012-10-19 12:00 ` [U-Boot] [PATCH v4 2/5] arm bootm: Do not append zero ATAG_MEM Pali Rohár
2012-10-20 9:34 ` Marek Vasut
2012-10-20 9:41 ` Pali Rohár
2012-10-26 17:44 ` Tom Rini
2012-10-26 17:52 ` Tom Rini
2012-10-27 15:29 ` Marek Vasut
2012-10-29 17:37 ` Tom Rini
2012-10-19 12:00 ` [U-Boot] [PATCH v4 3/5] Add power bus message definitions in twl4030.h Pali Rohár
2012-10-19 12:00 ` [U-Boot] [PATCH v4 4/5] cfb_console: Add support for some ANSI terminal escape codes Pali Rohár
2012-10-19 23:30 ` [U-Boot] [PATCH v5 " Anatolij Gustschin
2012-10-23 14:28 ` Pali Rohár
2012-10-19 23:38 ` [U-Boot] [PATCH v4 " Anatolij Gustschin
2012-10-23 14:25 ` Pali Rohár
2012-10-19 12:00 ` [U-Boot] [PATCH v4 5/5] New board support: Nokia RX-51 aka N900 Pali Rohár
2012-10-23 7:20 ` Igor Grinberg
2012-10-29 17:55 ` Pali Rohár
2012-10-29 17:54 ` [U-Boot] [PATCH v5 " Pali Rohár
2012-11-02 17:07 ` Tom Rini
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=201204290015.23978.marex@denx.de \
--to=marex@denx.de \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox