From: Frank Rowand <frowand.list@gmail.com>
To: AKASHI Takahiro <takahiro.akashi@linaro.org>,
catalin.marinas@arm.com, will.deacon@arm.com,
dhowells@redhat.com, vgoyal@redhat.com,
herbert@gondor.apana.org.au, davem@davemloft.net,
dyoung@redhat.com, bhe@redhat.com, arnd@arndb.de,
schwidefsky@de.ibm.com, heiko.carstens@de.ibm.com,
prudo@linux.ibm.com, ard.biesheuvel@linaro.org,
james.morse@arm.com, bhsharma@redhat.com,
kexec@lists.infradead.org, linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org, Rob Herring <robh+dt@kernel.org>
Subject: Re: [PATCH v14 06/16] of/fdt: add helper functions for handling properties
Date: Thu, 13 Sep 2018 18:42:35 -0700 [thread overview]
Message-ID: <59d0bc6f-ab71-eb21-d438-da3cd09aaa79@gmail.com> (raw)
In-Reply-To: <20180910023819.GA30795@linaro.org>
On 09/09/18 19:38, AKASHI Takahiro wrote:
> Frank,
>
> Thank you for the comments. I will address all of them, but
> have one question:
>
> On Fri, Sep 07, 2018 at 12:53:58PM -0700, Frank Rowand wrote:
>> On 09/07/18 01:00, AKASHI Takahiro wrote:
>>> These functions will be used later to handle kexec-specific properties
>>> in arm64's kexec_file implementation.
>>>
>>> Signed-off-by: AKASHI Takahiro <takahiro.akashi@linaro.org>
>>> Cc: Rob Herring <robh+dt@kernel.org>
>>> Cc: Frank Rowand <frowand.list@gmail.com>
>>> ---
>>> drivers/of/fdt.c | 62 ++++++++++++++++++++++++++++++++++++++++--
>>> include/linux/of_fdt.h | 10 +++++--
>>> 2 files changed, 68 insertions(+), 4 deletions(-)
>>>
>>> diff --git a/drivers/of/fdt.c b/drivers/of/fdt.c
>>> index 800ad252cf9c..dc960cea1355 100644
>>> --- a/drivers/of/fdt.c
>>> +++ b/drivers/of/fdt.c
>>> @@ -25,6 +25,7 @@
>>> #include <linux/debugfs.h>
>>> #include <linux/serial_core.h>
>>> #include <linux/sysfs.h>
>>> +#include <linux/types.h>
>>>
>>> #include <asm/setup.h> /* for COMMAND_LINE_SIZE */
>>> #include <asm/page.h>
>>> @@ -537,8 +538,8 @@ void *of_fdt_unflatten_tree(const unsigned long *blob,
>>> EXPORT_SYMBOL_GPL(of_fdt_unflatten_tree);
>>>
>>> /* Everything below here references initial_boot_params directly. */
>>> -int __initdata dt_root_addr_cells;
>>> -int __initdata dt_root_size_cells;
>>> +int dt_root_addr_cells;
>>> +int dt_root_size_cells;
>>>
>>> void *initial_boot_params;
>>>
>>> @@ -1323,3 +1324,60 @@ late_initcall(of_fdt_raw_init);
>>> #endif
>>>
>>> #endif /* CONFIG_OF_EARLY_FLATTREE */
>>> +
>>
>> Please add comment:
>>
>> /* helper functions for arm64 kexec */
>>
>>
>>> +bool of_fdt_cells_size_fitted(u64 base, u64 size)
>>
>> Please rename as of_fdt_range_valid()
>>
>>
>>> +{
>>> + /* if *_cells >= 2, cells can hold 64-bit values anyway */
>>> + if ((dt_root_addr_cells == 1) && (base > U32_MAX))
>>> + return false;
>>> +
>>> + if ((dt_root_size_cells == 1) && (size > U32_MAX))
>>> + return false;
>>
>> Should also check that base + size does not wrap around.
>
> What is the upper limit here?
> For instance, #address_cells = <1> and #size_cells = <1>,
> and can 'base + size' be over U32_MAX?
> Assuming 'not' is quite reasonable, but it seems to me
> that devicetree spec doesn't exclude it, as least I couldn't
> find any notes about such a case.
> (In my understands, #address_cells only restricts a size in 'reg' property.)
(See my other reply in this thread a few minutes ago -- the context of the
ranges is essentially what is valid for the "reg" property of the "/memory"
nodes.)
The "Devicetree Specification" does not specify whether a memory range can
wrap around. For example, can a region of size 0x2000 that wraps around
the highest 32 bit address be specified as:
/ memory@0xfffff000 {
reg = <0xfffff000 0x2000>;
}
or must it be specified as (option 1):
/ memory@0xfffff000 {
reg = <0xfffff000 0x1000 0x0 0x1000>
}
or (option 2):
/ memory@0xfffff000 {
reg = <0xfffff000 0x1000>;
}
memory@0 {
reg = <0x0 0x1000>;
}
I suggest you start a thread on the devicetree specification list asking
that the spec be updated to state whether wrap around is allowed.
>
> Thanks,
> -Takahiro Akashi
>
>>
>>> +
>>> + return true;
>>> +}
>>> +
>>> +size_t of_fdt_reg_cells_size(void)
>>
>> Please rename as of_fdt_root_range_size()
>>
>>
>>> +{
>>> + return (dt_root_addr_cells + dt_root_size_cells) * sizeof(u32);
>>> +}
>>> +
>>> +#define FDT_ALIGN(x, a) (((x) + (a) - 1) & ~((a) - 1))
>>> +#define FDT_TAGALIGN(x) (FDT_ALIGN((x), FDT_TAGSIZE))
>>> +
>>> +int fdt_prop_len(const char *prop_name, int len)
>>
>> Please rename as fdt_len_added_prop()
>>
>>
>>> +{
>>> + return (strlen(prop_name) + 1) +
>>> + sizeof(struct fdt_property) +
>>> + FDT_TAGALIGN(len);
>>> +}
>>> +
>>
>> Please add comment, something like:
>>
>> /* cells must be 1 or 2 */
>>
>>
>>> +static void fill_property(void *buf, u64 val64, int cells)
>>
>> Please rename as cpu64_to_fdt_cells()
>>
>> Thanks,
>>
>> Frank
>>
>>> +{
>>> + __be32 val32;
>>> +
>>> + while (cells) {
>>> + val32 = cpu_to_fdt32((val64 >> (32 * (--cells))) & U32_MAX);
>>> + memcpy(buf, &val32, sizeof(val32));
>>> + buf += sizeof(val32);
>>> + }
>>> +}
>>> +
>>> +int fdt_setprop_reg(void *fdt, int nodeoffset, const char *name,
>>> + u64 addr, u64 size)
>>> +{
>>> + char buf[sizeof(__be32) * 2 * 2];
>>> + /* assume dt_root_[addr|size]_cells <= 2 */
>>> + void *prop;
>>> + size_t buf_size;
>>> +
>>> + buf_size = of_fdt_reg_cells_size();
>>> + prop = buf;
>>> +
>>> + fill_property(prop, addr, dt_root_addr_cells);
>>> + prop += dt_root_addr_cells * sizeof(u32);
>>> +
>>> + fill_property(prop, size, dt_root_size_cells);
>>> +
>>> + return fdt_setprop(fdt, nodeoffset, name, buf, buf_size);
>>> +}
>>> diff --git a/include/linux/of_fdt.h b/include/linux/of_fdt.h
>>> index b9cd9ebdf9b9..9615d6142578 100644
>>> --- a/include/linux/of_fdt.h
>>> +++ b/include/linux/of_fdt.h
>>> @@ -37,8 +37,8 @@ extern void *of_fdt_unflatten_tree(const unsigned long *blob,
>>> struct device_node **mynodes);
>>>
>>> /* TBD: Temporary export of fdt globals - remove when code fully merged */
>>> -extern int __initdata dt_root_addr_cells;
>>> -extern int __initdata dt_root_size_cells;
>>> +extern int dt_root_addr_cells;
>>> +extern int dt_root_size_cells;
>>> extern void *initial_boot_params;
>>>
>>> extern char __dtb_start[];
>>> @@ -108,5 +108,11 @@ static inline void unflatten_device_tree(void) {}
>>> static inline void unflatten_and_copy_device_tree(void) {}
>>> #endif /* CONFIG_OF_EARLY_FLATTREE */
>>>
>>> +bool of_fdt_cells_size_fitted(u64 base, u64 size);
>>> +size_t of_fdt_reg_cells_size(void);
>>> +int fdt_prop_len(const char *prop_name, int len);
>>> +int fdt_setprop_reg(void *fdt, int nodeoffset, const char *name,
>>> + u64 addr, u64 size);
>>> +
>>> #endif /* __ASSEMBLY__ */
>>> #endif /* _LINUX_OF_FDT_H */
>>>
>>
>
_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec
WARNING: multiple messages have this Message-ID (diff)
From: frowand.list@gmail.com (Frank Rowand)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v14 06/16] of/fdt: add helper functions for handling properties
Date: Thu, 13 Sep 2018 18:42:35 -0700 [thread overview]
Message-ID: <59d0bc6f-ab71-eb21-d438-da3cd09aaa79@gmail.com> (raw)
In-Reply-To: <20180910023819.GA30795@linaro.org>
On 09/09/18 19:38, AKASHI Takahiro wrote:
> Frank,
>
> Thank you for the comments. I will address all of them, but
> have one question:
>
> On Fri, Sep 07, 2018 at 12:53:58PM -0700, Frank Rowand wrote:
>> On 09/07/18 01:00, AKASHI Takahiro wrote:
>>> These functions will be used later to handle kexec-specific properties
>>> in arm64's kexec_file implementation.
>>>
>>> Signed-off-by: AKASHI Takahiro <takahiro.akashi@linaro.org>
>>> Cc: Rob Herring <robh+dt@kernel.org>
>>> Cc: Frank Rowand <frowand.list@gmail.com>
>>> ---
>>> drivers/of/fdt.c | 62 ++++++++++++++++++++++++++++++++++++++++--
>>> include/linux/of_fdt.h | 10 +++++--
>>> 2 files changed, 68 insertions(+), 4 deletions(-)
>>>
>>> diff --git a/drivers/of/fdt.c b/drivers/of/fdt.c
>>> index 800ad252cf9c..dc960cea1355 100644
>>> --- a/drivers/of/fdt.c
>>> +++ b/drivers/of/fdt.c
>>> @@ -25,6 +25,7 @@
>>> #include <linux/debugfs.h>
>>> #include <linux/serial_core.h>
>>> #include <linux/sysfs.h>
>>> +#include <linux/types.h>
>>>
>>> #include <asm/setup.h> /* for COMMAND_LINE_SIZE */
>>> #include <asm/page.h>
>>> @@ -537,8 +538,8 @@ void *of_fdt_unflatten_tree(const unsigned long *blob,
>>> EXPORT_SYMBOL_GPL(of_fdt_unflatten_tree);
>>>
>>> /* Everything below here references initial_boot_params directly. */
>>> -int __initdata dt_root_addr_cells;
>>> -int __initdata dt_root_size_cells;
>>> +int dt_root_addr_cells;
>>> +int dt_root_size_cells;
>>>
>>> void *initial_boot_params;
>>>
>>> @@ -1323,3 +1324,60 @@ late_initcall(of_fdt_raw_init);
>>> #endif
>>>
>>> #endif /* CONFIG_OF_EARLY_FLATTREE */
>>> +
>>
>> Please add comment:
>>
>> /* helper functions for arm64 kexec */
>>
>>
>>> +bool of_fdt_cells_size_fitted(u64 base, u64 size)
>>
>> Please rename as of_fdt_range_valid()
>>
>>
>>> +{
>>> + /* if *_cells >= 2, cells can hold 64-bit values anyway */
>>> + if ((dt_root_addr_cells == 1) && (base > U32_MAX))
>>> + return false;
>>> +
>>> + if ((dt_root_size_cells == 1) && (size > U32_MAX))
>>> + return false;
>>
>> Should also check that base + size does not wrap around.
>
> What is the upper limit here?
> For instance, #address_cells = <1> and #size_cells = <1>,
> and can 'base + size' be over U32_MAX?
> Assuming 'not' is quite reasonable, but it seems to me
> that devicetree spec doesn't exclude it, as least I couldn't
> find any notes about such a case.
> (In my understands, #address_cells only restricts a size in 'reg' property.)
(See my other reply in this thread a few minutes ago -- the context of the
ranges is essentially what is valid for the "reg" property of the "/memory"
nodes.)
The "Devicetree Specification" does not specify whether a memory range can
wrap around. For example, can a region of size 0x2000 that wraps around
the highest 32 bit address be specified as:
/ memory at 0xfffff000 {
reg = <0xfffff000 0x2000>;
}
or must it be specified as (option 1):
/ memory at 0xfffff000 {
reg = <0xfffff000 0x1000 0x0 0x1000>
}
or (option 2):
/ memory at 0xfffff000 {
reg = <0xfffff000 0x1000>;
}
memory at 0 {
reg = <0x0 0x1000>;
}
I suggest you start a thread on the devicetree specification list asking
that the spec be updated to state whether wrap around is allowed.
>
> Thanks,
> -Takahiro Akashi
>
>>
>>> +
>>> + return true;
>>> +}
>>> +
>>> +size_t of_fdt_reg_cells_size(void)
>>
>> Please rename as of_fdt_root_range_size()
>>
>>
>>> +{
>>> + return (dt_root_addr_cells + dt_root_size_cells) * sizeof(u32);
>>> +}
>>> +
>>> +#define FDT_ALIGN(x, a) (((x) + (a) - 1) & ~((a) - 1))
>>> +#define FDT_TAGALIGN(x) (FDT_ALIGN((x), FDT_TAGSIZE))
>>> +
>>> +int fdt_prop_len(const char *prop_name, int len)
>>
>> Please rename as fdt_len_added_prop()
>>
>>
>>> +{
>>> + return (strlen(prop_name) + 1) +
>>> + sizeof(struct fdt_property) +
>>> + FDT_TAGALIGN(len);
>>> +}
>>> +
>>
>> Please add comment, something like:
>>
>> /* cells must be 1 or 2 */
>>
>>
>>> +static void fill_property(void *buf, u64 val64, int cells)
>>
>> Please rename as cpu64_to_fdt_cells()
>>
>> Thanks,
>>
>> Frank
>>
>>> +{
>>> + __be32 val32;
>>> +
>>> + while (cells) {
>>> + val32 = cpu_to_fdt32((val64 >> (32 * (--cells))) & U32_MAX);
>>> + memcpy(buf, &val32, sizeof(val32));
>>> + buf += sizeof(val32);
>>> + }
>>> +}
>>> +
>>> +int fdt_setprop_reg(void *fdt, int nodeoffset, const char *name,
>>> + u64 addr, u64 size)
>>> +{
>>> + char buf[sizeof(__be32) * 2 * 2];
>>> + /* assume dt_root_[addr|size]_cells <= 2 */
>>> + void *prop;
>>> + size_t buf_size;
>>> +
>>> + buf_size = of_fdt_reg_cells_size();
>>> + prop = buf;
>>> +
>>> + fill_property(prop, addr, dt_root_addr_cells);
>>> + prop += dt_root_addr_cells * sizeof(u32);
>>> +
>>> + fill_property(prop, size, dt_root_size_cells);
>>> +
>>> + return fdt_setprop(fdt, nodeoffset, name, buf, buf_size);
>>> +}
>>> diff --git a/include/linux/of_fdt.h b/include/linux/of_fdt.h
>>> index b9cd9ebdf9b9..9615d6142578 100644
>>> --- a/include/linux/of_fdt.h
>>> +++ b/include/linux/of_fdt.h
>>> @@ -37,8 +37,8 @@ extern void *of_fdt_unflatten_tree(const unsigned long *blob,
>>> struct device_node **mynodes);
>>>
>>> /* TBD: Temporary export of fdt globals - remove when code fully merged */
>>> -extern int __initdata dt_root_addr_cells;
>>> -extern int __initdata dt_root_size_cells;
>>> +extern int dt_root_addr_cells;
>>> +extern int dt_root_size_cells;
>>> extern void *initial_boot_params;
>>>
>>> extern char __dtb_start[];
>>> @@ -108,5 +108,11 @@ static inline void unflatten_device_tree(void) {}
>>> static inline void unflatten_and_copy_device_tree(void) {}
>>> #endif /* CONFIG_OF_EARLY_FLATTREE */
>>>
>>> +bool of_fdt_cells_size_fitted(u64 base, u64 size);
>>> +size_t of_fdt_reg_cells_size(void);
>>> +int fdt_prop_len(const char *prop_name, int len);
>>> +int fdt_setprop_reg(void *fdt, int nodeoffset, const char *name,
>>> + u64 addr, u64 size);
>>> +
>>> #endif /* __ASSEMBLY__ */
>>> #endif /* _LINUX_OF_FDT_H */
>>>
>>
>
WARNING: multiple messages have this Message-ID (diff)
From: Frank Rowand <frowand.list@gmail.com>
To: AKASHI Takahiro <takahiro.akashi@linaro.org>,
catalin.marinas@arm.com, will.deacon@arm.com,
dhowells@redhat.com, vgoyal@redhat.com,
herbert@gondor.apana.org.au, davem@davemloft.net,
dyoung@redhat.com, bhe@redhat.com, arnd@arndb.de,
schwidefsky@de.ibm.com, heiko.carstens@de.ibm.com,
prudo@linux.ibm.com, ard.biesheuvel@linaro.org,
james.morse@arm.com, bhsharma@redhat.com,
kexec@lists.infradead.org, linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org, Rob Herring <robh+dt@kernel.org>
Subject: Re: [PATCH v14 06/16] of/fdt: add helper functions for handling properties
Date: Thu, 13 Sep 2018 18:42:35 -0700 [thread overview]
Message-ID: <59d0bc6f-ab71-eb21-d438-da3cd09aaa79@gmail.com> (raw)
In-Reply-To: <20180910023819.GA30795@linaro.org>
On 09/09/18 19:38, AKASHI Takahiro wrote:
> Frank,
>
> Thank you for the comments. I will address all of them, but
> have one question:
>
> On Fri, Sep 07, 2018 at 12:53:58PM -0700, Frank Rowand wrote:
>> On 09/07/18 01:00, AKASHI Takahiro wrote:
>>> These functions will be used later to handle kexec-specific properties
>>> in arm64's kexec_file implementation.
>>>
>>> Signed-off-by: AKASHI Takahiro <takahiro.akashi@linaro.org>
>>> Cc: Rob Herring <robh+dt@kernel.org>
>>> Cc: Frank Rowand <frowand.list@gmail.com>
>>> ---
>>> drivers/of/fdt.c | 62 ++++++++++++++++++++++++++++++++++++++++--
>>> include/linux/of_fdt.h | 10 +++++--
>>> 2 files changed, 68 insertions(+), 4 deletions(-)
>>>
>>> diff --git a/drivers/of/fdt.c b/drivers/of/fdt.c
>>> index 800ad252cf9c..dc960cea1355 100644
>>> --- a/drivers/of/fdt.c
>>> +++ b/drivers/of/fdt.c
>>> @@ -25,6 +25,7 @@
>>> #include <linux/debugfs.h>
>>> #include <linux/serial_core.h>
>>> #include <linux/sysfs.h>
>>> +#include <linux/types.h>
>>>
>>> #include <asm/setup.h> /* for COMMAND_LINE_SIZE */
>>> #include <asm/page.h>
>>> @@ -537,8 +538,8 @@ void *of_fdt_unflatten_tree(const unsigned long *blob,
>>> EXPORT_SYMBOL_GPL(of_fdt_unflatten_tree);
>>>
>>> /* Everything below here references initial_boot_params directly. */
>>> -int __initdata dt_root_addr_cells;
>>> -int __initdata dt_root_size_cells;
>>> +int dt_root_addr_cells;
>>> +int dt_root_size_cells;
>>>
>>> void *initial_boot_params;
>>>
>>> @@ -1323,3 +1324,60 @@ late_initcall(of_fdt_raw_init);
>>> #endif
>>>
>>> #endif /* CONFIG_OF_EARLY_FLATTREE */
>>> +
>>
>> Please add comment:
>>
>> /* helper functions for arm64 kexec */
>>
>>
>>> +bool of_fdt_cells_size_fitted(u64 base, u64 size)
>>
>> Please rename as of_fdt_range_valid()
>>
>>
>>> +{
>>> + /* if *_cells >= 2, cells can hold 64-bit values anyway */
>>> + if ((dt_root_addr_cells == 1) && (base > U32_MAX))
>>> + return false;
>>> +
>>> + if ((dt_root_size_cells == 1) && (size > U32_MAX))
>>> + return false;
>>
>> Should also check that base + size does not wrap around.
>
> What is the upper limit here?
> For instance, #address_cells = <1> and #size_cells = <1>,
> and can 'base + size' be over U32_MAX?
> Assuming 'not' is quite reasonable, but it seems to me
> that devicetree spec doesn't exclude it, as least I couldn't
> find any notes about such a case.
> (In my understands, #address_cells only restricts a size in 'reg' property.)
(See my other reply in this thread a few minutes ago -- the context of the
ranges is essentially what is valid for the "reg" property of the "/memory"
nodes.)
The "Devicetree Specification" does not specify whether a memory range can
wrap around. For example, can a region of size 0x2000 that wraps around
the highest 32 bit address be specified as:
/ memory@0xfffff000 {
reg = <0xfffff000 0x2000>;
}
or must it be specified as (option 1):
/ memory@0xfffff000 {
reg = <0xfffff000 0x1000 0x0 0x1000>
}
or (option 2):
/ memory@0xfffff000 {
reg = <0xfffff000 0x1000>;
}
memory@0 {
reg = <0x0 0x1000>;
}
I suggest you start a thread on the devicetree specification list asking
that the spec be updated to state whether wrap around is allowed.
>
> Thanks,
> -Takahiro Akashi
>
>>
>>> +
>>> + return true;
>>> +}
>>> +
>>> +size_t of_fdt_reg_cells_size(void)
>>
>> Please rename as of_fdt_root_range_size()
>>
>>
>>> +{
>>> + return (dt_root_addr_cells + dt_root_size_cells) * sizeof(u32);
>>> +}
>>> +
>>> +#define FDT_ALIGN(x, a) (((x) + (a) - 1) & ~((a) - 1))
>>> +#define FDT_TAGALIGN(x) (FDT_ALIGN((x), FDT_TAGSIZE))
>>> +
>>> +int fdt_prop_len(const char *prop_name, int len)
>>
>> Please rename as fdt_len_added_prop()
>>
>>
>>> +{
>>> + return (strlen(prop_name) + 1) +
>>> + sizeof(struct fdt_property) +
>>> + FDT_TAGALIGN(len);
>>> +}
>>> +
>>
>> Please add comment, something like:
>>
>> /* cells must be 1 or 2 */
>>
>>
>>> +static void fill_property(void *buf, u64 val64, int cells)
>>
>> Please rename as cpu64_to_fdt_cells()
>>
>> Thanks,
>>
>> Frank
>>
>>> +{
>>> + __be32 val32;
>>> +
>>> + while (cells) {
>>> + val32 = cpu_to_fdt32((val64 >> (32 * (--cells))) & U32_MAX);
>>> + memcpy(buf, &val32, sizeof(val32));
>>> + buf += sizeof(val32);
>>> + }
>>> +}
>>> +
>>> +int fdt_setprop_reg(void *fdt, int nodeoffset, const char *name,
>>> + u64 addr, u64 size)
>>> +{
>>> + char buf[sizeof(__be32) * 2 * 2];
>>> + /* assume dt_root_[addr|size]_cells <= 2 */
>>> + void *prop;
>>> + size_t buf_size;
>>> +
>>> + buf_size = of_fdt_reg_cells_size();
>>> + prop = buf;
>>> +
>>> + fill_property(prop, addr, dt_root_addr_cells);
>>> + prop += dt_root_addr_cells * sizeof(u32);
>>> +
>>> + fill_property(prop, size, dt_root_size_cells);
>>> +
>>> + return fdt_setprop(fdt, nodeoffset, name, buf, buf_size);
>>> +}
>>> diff --git a/include/linux/of_fdt.h b/include/linux/of_fdt.h
>>> index b9cd9ebdf9b9..9615d6142578 100644
>>> --- a/include/linux/of_fdt.h
>>> +++ b/include/linux/of_fdt.h
>>> @@ -37,8 +37,8 @@ extern void *of_fdt_unflatten_tree(const unsigned long *blob,
>>> struct device_node **mynodes);
>>>
>>> /* TBD: Temporary export of fdt globals - remove when code fully merged */
>>> -extern int __initdata dt_root_addr_cells;
>>> -extern int __initdata dt_root_size_cells;
>>> +extern int dt_root_addr_cells;
>>> +extern int dt_root_size_cells;
>>> extern void *initial_boot_params;
>>>
>>> extern char __dtb_start[];
>>> @@ -108,5 +108,11 @@ static inline void unflatten_device_tree(void) {}
>>> static inline void unflatten_and_copy_device_tree(void) {}
>>> #endif /* CONFIG_OF_EARLY_FLATTREE */
>>>
>>> +bool of_fdt_cells_size_fitted(u64 base, u64 size);
>>> +size_t of_fdt_reg_cells_size(void);
>>> +int fdt_prop_len(const char *prop_name, int len);
>>> +int fdt_setprop_reg(void *fdt, int nodeoffset, const char *name,
>>> + u64 addr, u64 size);
>>> +
>>> #endif /* __ASSEMBLY__ */
>>> #endif /* _LINUX_OF_FDT_H */
>>>
>>
>
next prev parent reply other threads:[~2018-09-14 1:42 UTC|newest]
Thread overview: 54+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-09-07 8:00 [PATCH v14 06/16] of/fdt: add helper functions for handling properties AKASHI Takahiro
2018-09-07 8:00 ` AKASHI Takahiro
2018-09-07 8:00 ` AKASHI Takahiro
2018-09-07 8:00 ` [PATCH v14 07/16] arm64: add image head flag definitions AKASHI Takahiro
2018-09-07 8:00 ` AKASHI Takahiro
2018-09-07 8:00 ` AKASHI Takahiro
2018-09-07 8:00 ` [PATCH v14 08/16] arm64: cpufeature: add MMFR0 helper functions AKASHI Takahiro
2018-09-07 8:00 ` AKASHI Takahiro
2018-09-07 8:00 ` AKASHI Takahiro
2018-09-07 8:00 ` [PATCH v14 09/16] arm64: enable KEXEC_FILE config AKASHI Takahiro
2018-09-07 8:00 ` AKASHI Takahiro
2018-09-07 8:00 ` AKASHI Takahiro
2018-09-07 8:00 ` [PATCH v14 10/16] arm64: kexec_file: load initrd and device-tree AKASHI Takahiro
2018-09-07 8:00 ` AKASHI Takahiro
2018-09-07 8:00 ` AKASHI Takahiro
2018-09-07 8:00 ` [PATCH v14 11/16] arm64: kexec_file: allow for loading Image-format kernel AKASHI Takahiro
2018-09-07 8:00 ` AKASHI Takahiro
2018-09-07 8:00 ` AKASHI Takahiro
2018-09-07 8:00 ` [PATCH v14 12/16] arm64: kexec_file: add crash dump support AKASHI Takahiro
2018-09-07 8:00 ` AKASHI Takahiro
2018-09-07 8:00 ` AKASHI Takahiro
2018-09-07 8:00 ` [PATCH v14 13/16] arm64: kexec_file: invoke the kernel without purgatory AKASHI Takahiro
2018-09-07 8:00 ` AKASHI Takahiro
2018-09-07 8:00 ` AKASHI Takahiro
2018-09-07 8:00 ` [PATCH v14 14/16] include: pe.h: remove message[] from mz header definition AKASHI Takahiro
2018-09-07 8:00 ` AKASHI Takahiro
2018-09-07 8:00 ` AKASHI Takahiro
2018-09-07 8:00 ` [PATCH v14 15/16] arm64: kexec_file: add kernel signature verification support AKASHI Takahiro
2018-09-07 8:00 ` AKASHI Takahiro
2018-09-07 8:00 ` AKASHI Takahiro
2018-09-07 8:00 ` [PATCH v14 16/16] arm64: kexec_file: add kaslr support AKASHI Takahiro
2018-09-07 8:00 ` AKASHI Takahiro
2018-09-07 8:00 ` AKASHI Takahiro
2018-09-07 19:53 ` [PATCH v14 06/16] of/fdt: add helper functions for handling properties Frank Rowand
2018-09-07 19:53 ` Frank Rowand
2018-09-07 19:53 ` Frank Rowand
2018-09-10 2:38 ` AKASHI Takahiro
2018-09-10 2:38 ` AKASHI Takahiro
2018-09-10 2:38 ` AKASHI Takahiro
2018-09-14 1:42 ` Frank Rowand [this message]
2018-09-14 1:42 ` Frank Rowand
2018-09-14 1:42 ` Frank Rowand
2018-09-14 1:26 ` Frank Rowand
2018-09-14 1:26 ` Frank Rowand
2018-09-14 1:26 ` Frank Rowand
2018-09-14 17:19 ` Frank Rowand
2018-09-14 17:19 ` Frank Rowand
2018-09-14 17:19 ` Frank Rowand
2018-09-26 5:57 ` AKASHI Takahiro
2018-09-26 5:57 ` AKASHI Takahiro
2018-09-26 5:57 ` AKASHI Takahiro
2018-09-26 8:10 ` Frank Rowand
2018-09-26 8:10 ` Frank Rowand
2018-09-26 8:10 ` Frank Rowand
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=59d0bc6f-ab71-eb21-d438-da3cd09aaa79@gmail.com \
--to=frowand.list@gmail.com \
--cc=ard.biesheuvel@linaro.org \
--cc=arnd@arndb.de \
--cc=bhe@redhat.com \
--cc=bhsharma@redhat.com \
--cc=catalin.marinas@arm.com \
--cc=davem@davemloft.net \
--cc=dhowells@redhat.com \
--cc=dyoung@redhat.com \
--cc=heiko.carstens@de.ibm.com \
--cc=herbert@gondor.apana.org.au \
--cc=james.morse@arm.com \
--cc=kexec@lists.infradead.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=prudo@linux.ibm.com \
--cc=robh+dt@kernel.org \
--cc=schwidefsky@de.ibm.com \
--cc=takahiro.akashi@linaro.org \
--cc=vgoyal@redhat.com \
--cc=will.deacon@arm.com \
/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.