From: Dirk Brandewie <dirk.brandewie@gmail.com>
To: dirk.brandewie@gmail.com
Cc: linux-kernel@vger.kernel.org, Randy Dunlap <rdunlap@xenotime.net>,
Grant Likely <grant.likely@secretlab.ca>,
linux-doc@vger.kernel.org, devicetree-discuss@lists.ozlabs.org
Subject: Re: [PATCH] of/fdt: add kernel command line option for dtb_compat string
Date: Tue, 14 Dec 2010 09:33:03 -0800 [thread overview]
Message-ID: <4D07AA4F.4000409@gmail.com> (raw)
In-Reply-To: <1291658059-383-1-git-send-email-dirk.brandewie@gmail.com>
On 12/06/2010 09:54 AM, dirk.brandewie@gmail.com wrote:
> From: Dirk Brandewie<dirk.brandewie@gmail.com>
>
> Adds a kernel command line option "dtb_compat=<string>". This string
> will be used to select the first compatible device tree blob linked
> into the kernel if a device tree blob is was *not* passed in by the
> bootloader.
>
> Signed-off-by: Dirk Brandewie<dirk.brandewie@gmail.com>
> ---
> Documentation/kernel-parameters.txt | 8 ++++++
> drivers/of/fdt.c | 48 +++++++++++++++++++++++++++++++++++
> 2 files changed, 56 insertions(+), 0 deletions(-)
>
> diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
> index 92e83e5..64093e5 100644
> --- a/Documentation/kernel-parameters.txt
> +++ b/Documentation/kernel-parameters.txt
> @@ -655,6 +655,14 @@ and is between 256 and 4096 characters. It is defined in the file
>
> dscc4.setup= [NET]
>
> + dtb_compat= [KNL]
> + Specify the "compatible" string for the device
> + tree blob present in the vmlinux image. This
> + string will be used to select the first device
> + tree blob whose compatible property matches
> + the string if a dtb was NOT passed in by the
> + bootloader.
> +
> dynamic_printk Enables pr_debug()/dev_dbg() calls if
> CONFIG_DYNAMIC_PRINTK_DEBUG has been enabled.
> These can also be switched on/off via
> diff --git a/drivers/of/fdt.c b/drivers/of/fdt.c
> index c1360e0..ca1318c 100644
> --- a/drivers/of/fdt.c
> +++ b/drivers/of/fdt.c
> @@ -15,6 +15,8 @@
> #include<linux/of_fdt.h>
> #include<linux/string.h>
> #include<linux/errno.h>
> +#include<asm-generic/vmlinux.lds.h>
> +
>
> #ifdef CONFIG_PPC
> #include<asm/machdep.h>
> @@ -604,3 +606,49 @@ void __init unflatten_device_tree(void)
>
> pr_debug("<- unflatten_device_tree()\n");
> }
> +
> +extern uint8_t __dtb_start[];
> +extern uint8_t __dtb_end[];
> +static void __init *of_flat_dt_find_compatible_dtb(char *name)
> +{
> + void *rc = NULL;
> + unsigned long root, size;
> + struct boot_param_header *orig_initial_boot_params;
> + uint8_t *blob;
> +
> + orig_initial_boot_params = initial_boot_params;
> + blob = __dtb_start;
> + initial_boot_params = (struct boot_param_header *)blob;
> +
> + while (blob< __dtb_end) {
> + if (be32_to_cpu(initial_boot_params->magic) != OF_DT_HEADER) {
> + WARN(1, "Invalid device tree blob in vmlinux\n");
> + break;
> + }
> +
> + root = of_get_flat_dt_root();
> + if (of_flat_dt_is_compatible(root, name)> 0) {
> + rc = blob;
> + break;
> + }
> +
> + size = be32_to_cpu(initial_boot_params->totalsize);
> + blob = PTR_ALIGN(blob + size, STRUCT_ALIGNMENT);
> + initial_boot_params = (struct boot_param_header *)blob;
> + }
> +
> + if (rc == NULL)
> + initial_boot_params = orig_initial_boot_params;
> + return rc;
> +}
> +
> +
> +static int __init of_flat_dtb_compat_setup(char *line)
> +{
> + if (!initial_boot_params)
> + initial_boot_params = of_flat_dt_find_compatible_dtb(line);
> + return 1;
> +}
> +
> +early_param("dtb_compat", of_flat_dtb_compat_setup);
> +
Any other comments on this patch? Do I need to port it to use Stephens patch
set to allow passing in blobs to fdt.c?
--Dirk
next prev parent reply other threads:[~2010-12-14 17:33 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-12-06 17:54 [PATCH] of/fdt: add kernel command line option for dtb_compat string dirk.brandewie
2010-12-06 18:37 ` Stephen Neuendorffer
2010-12-06 18:37 ` Stephen Neuendorffer
2010-12-06 19:01 ` Dirk Brandewie
2010-12-06 19:03 ` Dirk Brandewie
2010-12-06 21:50 ` Stephen Neuendorffer
2010-12-06 21:50 ` Stephen Neuendorffer
2010-12-07 3:08 ` Dirk Brandewie
2010-12-08 15:03 ` Dirk Brandewie
2010-12-30 21:32 ` Grant Likely
2010-12-30 21:32 ` Grant Likely
2010-12-14 17:33 ` Dirk Brandewie [this message]
2010-12-22 20:04 ` Dirk Brandewie
2010-12-30 21:34 ` Grant Likely
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=4D07AA4F.4000409@gmail.com \
--to=dirk.brandewie@gmail.com \
--cc=devicetree-discuss@lists.ozlabs.org \
--cc=grant.likely@secretlab.ca \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=rdunlap@xenotime.net \
/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.