Re: [PATCH 2/4] sandbox: only access of_add_memory_bank if it's defined
On Thu, Jun 26, 2014 at 10:42:32PM +0200, Sascha Hauer wrote: > On Thu, Jun 26, 2014 at 10:49:15AM +0200, Holger Schurig wrote: > > ... and it's defined only when CONFIG_OFTREE_MEM_GENERIC is on. > > > > Signed-off-by: Holger Schurig > > --- > > drivers/of/base.c |6 ++ > > 1 file changed, 6 insertions(+) > > > > diff --git a/drivers/of/base.c b/drivers/of/base.c > > index c440a69..818d76e 100644 > > --- a/drivers/of/base.c > > +++ b/drivers/of/base.c > > @@ -1697,6 +1697,7 @@ int of_set_property(struct device_node *np, const > > char *name, const void *val, i > > return 0; > > } > > > > +#ifdef CONFIG_OFTREE_MEM_GENERIC > > int of_add_memory(struct device_node *node, bool dump) > > { > > const char *device_type; > > @@ -1720,6 +1721,7 @@ int of_add_memory(struct device_node *node, bool dump) > > > > return 0; > > } > > +#endif > > This will break MIPS support. MIPS has it's own implementation of > of_add_memory_bank (see ./arch/mips/boot/dtb.c), so in MIPS case > the Kconfig options means "I have my own version of of_add_memory_bank" > Then maybe, move this implementation to "drivers/of/mem_generic.c". This function doesn't use any static function of this file (What I see, currently). Then make a own header with dummy implementation: #ifdef CONFIG_OFTREE_MEM_GENERIC int of_add_memory(struct device_node *node, bool dump) { ... } #else int of_add_memory(struct device_node *node, bool dump) { return -EOPNOTSUPP; } #endif The file drivers/of/mem_generic.c depends on PPC || ARM, so let the buildsystem do the rest. - Alex ___ barebox mailing list barebox@lists.infradead.org http://lists.infradead.org/mailman/listinfo/barebox
Re: [PATCH 2/4] sandbox: only access of_add_memory_bank if it's defined
On Thu, Jun 26, 2014 at 10:49:15AM +0200, Holger Schurig wrote: > ... and it's defined only when CONFIG_OFTREE_MEM_GENERIC is on. > > Signed-off-by: Holger Schurig > --- > drivers/of/base.c |6 ++ > 1 file changed, 6 insertions(+) > > diff --git a/drivers/of/base.c b/drivers/of/base.c > index c440a69..818d76e 100644 > --- a/drivers/of/base.c > +++ b/drivers/of/base.c > @@ -1697,6 +1697,7 @@ int of_set_property(struct device_node *np, const char > *name, const void *val, i > return 0; > } > > +#ifdef CONFIG_OFTREE_MEM_GENERIC > int of_add_memory(struct device_node *node, bool dump) > { > const char *device_type; > @@ -1720,6 +1721,7 @@ int of_add_memory(struct device_node *node, bool dump) > > return 0; > } > +#endif This will break MIPS support. MIPS has it's own implementation of of_add_memory_bank (see ./arch/mips/boot/dtb.c), so in MIPS case the Kconfig options means "I have my own version of of_add_memory_bank" I currently don't know a good way out of this situation. Sascha -- Pengutronix e.K. | | Industrial Linux Solutions | http://www.pengutronix.de/ | Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0| Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917- | ___ barebox mailing list barebox@lists.infradead.org http://lists.infradead.org/mailman/listinfo/barebox
Re: [PATCH 2/4] sandbox: only access of_add_memory_bank if it's defined
On Thu, Jun 26, 2014 at 11:43:10AM +0200, Holger Schurig wrote: > Your patch alone isn't all that's needed, the definition must still be > uncommented. Otherwise we'll get: > > drivers/of/base.c:1700:5: error: redefinition of 'of_add_memory' > include/of.h:233:50: note: previous definition of 'of_add_memory' was here Yep you are right. Sorry :-) Another solution would be to move the implementation for mem_generic in a seperate file which depends on CONFIG_OFTREE_MEM_GENERIC. This would work, but I don't know if we really need that to solve that, I think not. - Alex ___ barebox mailing list barebox@lists.infradead.org http://lists.infradead.org/mailman/listinfo/barebox
Re: [PATCH 2/4] sandbox: only access of_add_memory_bank if it's defined
On Thu, Jun 26, 2014 at 11:37:01AM +0200, Alexander Aring wrote: > Hi Holger, > > can you please check if this is also a solution for this? > > diff --git a/include/of.h b/include/of.h > index e6993fd..76845e7 100644 > --- a/include/of.h > +++ b/include/of.h > @@ -227,7 +227,14 @@ int of_parse_partitions(struct cdev *cdev, struct > device_node *node); > int of_device_is_stdout_path(struct device_d *dev); > const char *of_get_model(void); > void *of_flatten_dtb(struct device_node *node); > +#ifdef CONFIG_OFTREE_MEM_GENERIC > int of_add_memory(struct device_node *node, bool dump); > +#else > +static inline int of_add_memory(struct device_node *node, bool dump) > +{ > + return -EINVAL; > +} > +#endif > void of_add_memory_bank(struct device_node *node, bool dump, int r, > u64 base, u64 size); > struct device_d *of_find_device_by_node_path(const char *path); > > > Okay the implementation "#ifdef CONFIG_OFTREE_MEM_GENERIC" for function of_add_memory, need to be there. Other option would be to put this function in a separete file which depends on CONFIG_OFTREE_MEM_GENERIC and do in the header file the above solution one. Don't know if this is better. Then you could drop the #ifdef CONFIG_OFTREE_MEM_GENERIC from the implementation. - Alex ___ barebox mailing list barebox@lists.infradead.org http://lists.infradead.org/mailman/listinfo/barebox
Re: [PATCH 2/4] sandbox: only access of_add_memory_bank if it's defined
Your patch alone isn't all that's needed, the definition must still be uncommented. Otherwise we'll get: drivers/of/base.c:1700:5: error: redefinition of 'of_add_memory' include/of.h:233:50: note: previous definition of 'of_add_memory' was here ___ barebox mailing list barebox@lists.infradead.org http://lists.infradead.org/mailman/listinfo/barebox
Re: [PATCH 2/4] sandbox: only access of_add_memory_bank if it's defined
On Thu, Jun 26, 2014 at 11:37:01AM +0200, Alexander Aring wrote: > Hi Holger, > > can you please check if this is also a solution for this? > > diff --git a/include/of.h b/include/of.h > index e6993fd..76845e7 100644 > --- a/include/of.h > +++ b/include/of.h > @@ -227,7 +227,14 @@ int of_parse_partitions(struct cdev *cdev, struct > device_node *node); > int of_device_is_stdout_path(struct device_d *dev); > const char *of_get_model(void); > void *of_flatten_dtb(struct device_node *node); > +#ifdef CONFIG_OFTREE_MEM_GENERIC > int of_add_memory(struct device_node *node, bool dump); > +#else > +static inline int of_add_memory(struct device_node *node, bool dump) > +{ > + return -EINVAL; mhh, the errno of these function if it's not defined should be changed to -EOPNOTSUPP. - Alex ___ barebox mailing list barebox@lists.infradead.org http://lists.infradead.org/mailman/listinfo/barebox
Re: [PATCH 2/4] sandbox: only access of_add_memory_bank if it's defined
Hi Holger, can you please check if this is also a solution for this? diff --git a/include/of.h b/include/of.h index e6993fd..76845e7 100644 --- a/include/of.h +++ b/include/of.h @@ -227,7 +227,14 @@ int of_parse_partitions(struct cdev *cdev, struct device_node *node); int of_device_is_stdout_path(struct device_d *dev); const char *of_get_model(void); void *of_flatten_dtb(struct device_node *node); +#ifdef CONFIG_OFTREE_MEM_GENERIC int of_add_memory(struct device_node *node, bool dump); +#else +static inline int of_add_memory(struct device_node *node, bool dump) +{ + return -EINVAL; +} +#endif void of_add_memory_bank(struct device_node *node, bool dump, int r, u64 base, u64 size); struct device_d *of_find_device_by_node_path(const char *path); If this works for you then this is missing. Maybe there are some other related function which depends on CONFIG_OFTREE_MEM_GENERIC, I didn't check it. I think this would be a better solution, if it works... - Alex ___ barebox mailing list barebox@lists.infradead.org http://lists.infradead.org/mailman/listinfo/barebox