[U-Boot] [PATCH] dm: core: Add Kconfig for simple bus driver

Add Kconfig entries for the simple-bus driver, both for U-Boot and for SPL. The simple-bus is enabled by default in U-Boot and disabled by default in SPL to preserve the original behavior.
Signed-off-by: Marek Vasut marex@denx.de Cc: Simon Glass sjg@chromium.org --- drivers/core/Kconfig | 15 +++++++++++++++ drivers/core/Makefile | 5 ++--- 2 files changed, 17 insertions(+), 3 deletions(-)
diff --git a/drivers/core/Kconfig b/drivers/core/Kconfig index e40372d..3403d1f 100644 --- a/drivers/core/Kconfig +++ b/drivers/core/Kconfig @@ -59,3 +59,18 @@ config DM_SEQ_ALIAS Most boards will have a '/aliases' node containing the path to numbered devices (e.g. serial0 = &serial0). This feature can be disabled if it is not required, to save code space in SPL. + +config SIMPLE_BUS + bool "Support simple-bus driver" + depends on DM && OF_CONTROL + default y + help + Supports the 'simple-bus' driver, which is used on some systems. + +config SPL_SIMPLE_BUS + bool "Support simple-bus driver in SPL" + depends on SPL_DM && OF_CONTROL + default n + help + Supports the 'simple-bus' driver, which is used on some systems + in SPL. diff --git a/drivers/core/Makefile b/drivers/core/Makefile index 5c2ead8..74588b1 100644 --- a/drivers/core/Makefile +++ b/drivers/core/Makefile @@ -5,9 +5,8 @@ #
obj-y += device.o lists.o root.o uclass.o util.o -ifndef CONFIG_SPL_BUILD -obj-$(CONFIG_OF_CONTROL) += simple-bus.o -endif +obj-$(CONFIG_SIMPLE_BUS) += simple-bus.o +obj-$(CONFIG_SPL_SIMPLE_BUS) += simple-bus.o obj-$(CONFIG_DM_DEVICE_REMOVE) += device-remove.o obj-$(CONFIG_DM) += dump.o obj-$(CONFIG_OF_CONTROL) += regmap.o

On 2 August 2015 at 17:15, Marek Vasut marex@denx.de wrote:
Add Kconfig entries for the simple-bus driver, both for U-Boot and for SPL. The simple-bus is enabled by default in U-Boot and disabled by default in SPL to preserve the original behavior.
Signed-off-by: Marek Vasut marex@denx.de Cc: Simon Glass sjg@chromium.org
drivers/core/Kconfig | 15 +++++++++++++++ drivers/core/Makefile | 5 ++--- 2 files changed, 17 insertions(+), 3 deletions(-)
Acked-by: Simon Glass sjg@chromium.org

On Monday, August 03, 2015 at 01:52:03 AM, Simon Glass wrote:
On 2 August 2015 at 17:15, Marek Vasut marex@denx.de wrote:
Add Kconfig entries for the simple-bus driver, both for U-Boot and for SPL. The simple-bus is enabled by default in U-Boot and disabled by default in SPL to preserve the original behavior.
Signed-off-by: Marek Vasut marex@denx.de Cc: Simon Glass sjg@chromium.org
drivers/core/Kconfig | 15 +++++++++++++++ drivers/core/Makefile | 5 ++--- 2 files changed, 17 insertions(+), 3 deletions(-)
Acked-by: Simon Glass sjg@chromium.org
Whew, excellent. That's 1 patch in, 246+ to go ... :-)
Best regards, Marek Vasut

Hi Marek,
On 2 August 2015 at 17:55, Marek Vasut marex@denx.de wrote:
On Monday, August 03, 2015 at 01:52:03 AM, Simon Glass wrote:
On 2 August 2015 at 17:15, Marek Vasut marex@denx.de wrote:
Add Kconfig entries for the simple-bus driver, both for U-Boot and for SPL. The simple-bus is enabled by default in U-Boot and disabled by default in SPL to preserve the original behavior.
Signed-off-by: Marek Vasut marex@denx.de Cc: Simon Glass sjg@chromium.org
drivers/core/Kconfig | 15 +++++++++++++++ drivers/core/Makefile | 5 ++--- 2 files changed, 17 insertions(+), 3 deletions(-)
Acked-by: Simon Glass sjg@chromium.org
Whew, excellent. That's 1 patch in, 246+ to go ... :-)
Chin up, old boy. You'll get there :-)
Regards, Simon

Hi Marek,
On 2 August 2015 at 17:52, Simon Glass sjg@chromium.org wrote:
On 2 August 2015 at 17:15, Marek Vasut marex@denx.de wrote:
Add Kconfig entries for the simple-bus driver, both for U-Boot and for SPL. The simple-bus is enabled by default in U-Boot and disabled by default in SPL to preserve the original behavior.
Signed-off-by: Marek Vasut marex@denx.de Cc: Simon Glass sjg@chromium.org
drivers/core/Kconfig | 15 +++++++++++++++ drivers/core/Makefile | 5 ++--- 2 files changed, 17 insertions(+), 3 deletions(-)
Acked-by: Simon Glass sjg@chromium.org
I can't apply this right now as it breaks most tegra boards. We use a hack at present where we #undef things in config_uncmd_spl.h and that isn't visible to the Makefiles.
Assuming that Tom applies Masahiro's Kconfig improvements for SPL we can do it then.
Regards, Simon

On Monday, August 10, 2015 at 03:39:33 PM, Simon Glass wrote:
Hi Marek,
Hi Simon,
On 2 August 2015 at 17:52, Simon Glass sjg@chromium.org wrote:
On 2 August 2015 at 17:15, Marek Vasut marex@denx.de wrote:
Add Kconfig entries for the simple-bus driver, both for U-Boot and for SPL. The simple-bus is enabled by default in U-Boot and disabled by default in SPL to preserve the original behavior.
Signed-off-by: Marek Vasut marex@denx.de Cc: Simon Glass sjg@chromium.org
drivers/core/Kconfig | 15 +++++++++++++++ drivers/core/Makefile | 5 ++--- 2 files changed, 17 insertions(+), 3 deletions(-)
Acked-by: Simon Glass sjg@chromium.org
I can't apply this right now as it breaks most tegra boards. We use a hack at present where we #undef things in config_uncmd_spl.h and that isn't visible to the Makefiles.
Assuming that Tom applies Masahiro's Kconfig improvements for SPL we can do it then.
Agh, OK, thanks for the heads up.
I hope this makes it into 2015.10, otherwise the SPL support for SoCFPGA will be completely useless.
Best regards, Marek Vasut

Hi Marek,
On 10 August 2015 at 07:57, Marek Vasut marex@denx.de wrote:
On Monday, August 10, 2015 at 03:39:33 PM, Simon Glass wrote:
Hi Marek,
Hi Simon,
On 2 August 2015 at 17:52, Simon Glass sjg@chromium.org wrote:
On 2 August 2015 at 17:15, Marek Vasut marex@denx.de wrote:
Add Kconfig entries for the simple-bus driver, both for U-Boot and for SPL. The simple-bus is enabled by default in U-Boot and disabled by default in SPL to preserve the original behavior.
Signed-off-by: Marek Vasut marex@denx.de Cc: Simon Glass sjg@chromium.org
drivers/core/Kconfig | 15 +++++++++++++++ drivers/core/Makefile | 5 ++--- 2 files changed, 17 insertions(+), 3 deletions(-)
Acked-by: Simon Glass sjg@chromium.org
I can't apply this right now as it breaks most tegra boards. We use a hack at present where we #undef things in config_uncmd_spl.h and that isn't visible to the Makefiles.
Assuming that Tom applies Masahiro's Kconfig improvements for SPL we can do it then.
Agh, OK, thanks for the heads up.
I hope this makes it into 2015.10, otherwise the SPL support for SoCFPGA will be completely useless.
One way or another we'll figure this out sooner rather than later.
Regards, Simon

On Monday, August 10, 2015 at 04:00:47 PM, Simon Glass wrote:
Hi Marek,
Hi Simon,
On 10 August 2015 at 07:57, Marek Vasut marex@denx.de wrote:
On Monday, August 10, 2015 at 03:39:33 PM, Simon Glass wrote:
Hi Marek,
Hi Simon,
On 2 August 2015 at 17:52, Simon Glass sjg@chromium.org wrote:
On 2 August 2015 at 17:15, Marek Vasut marex@denx.de wrote:
Add Kconfig entries for the simple-bus driver, both for U-Boot and for SPL. The simple-bus is enabled by default in U-Boot and disabled by default in SPL to preserve the original behavior.
Signed-off-by: Marek Vasut marex@denx.de Cc: Simon Glass sjg@chromium.org
drivers/core/Kconfig | 15 +++++++++++++++ drivers/core/Makefile | 5 ++--- 2 files changed, 17 insertions(+), 3 deletions(-)
Acked-by: Simon Glass sjg@chromium.org
I can't apply this right now as it breaks most tegra boards. We use a hack at present where we #undef things in config_uncmd_spl.h and that isn't visible to the Makefiles.
Assuming that Tom applies Masahiro's Kconfig improvements for SPL we can do it then.
Agh, OK, thanks for the heads up.
I hope this makes it into 2015.10, otherwise the SPL support for SoCFPGA will be completely useless.
One way or another we'll figure this out sooner rather than later.
I know :)
Best regards, Marek Vasut

On 10 August 2015 at 08:03, Marek Vasut marex@denx.de wrote:
On Monday, August 10, 2015 at 04:00:47 PM, Simon Glass wrote:
Hi Marek,
Hi Simon,
On 10 August 2015 at 07:57, Marek Vasut marex@denx.de wrote:
On Monday, August 10, 2015 at 03:39:33 PM, Simon Glass wrote:
Hi Marek,
Hi Simon,
On 2 August 2015 at 17:52, Simon Glass sjg@chromium.org wrote:
On 2 August 2015 at 17:15, Marek Vasut marex@denx.de wrote:
Add Kconfig entries for the simple-bus driver, both for U-Boot and for SPL. The simple-bus is enabled by default in U-Boot and disabled by default in SPL to preserve the original behavior.
Signed-off-by: Marek Vasut marex@denx.de Cc: Simon Glass sjg@chromium.org
drivers/core/Kconfig | 15 +++++++++++++++ drivers/core/Makefile | 5 ++--- 2 files changed, 17 insertions(+), 3 deletions(-)
Acked-by: Simon Glass sjg@chromium.org
I can't apply this right now as it breaks most tegra boards. We use a hack at present where we #undef things in config_uncmd_spl.h and that isn't visible to the Makefiles.
Assuming that Tom applies Masahiro's Kconfig improvements for SPL we can do it then.
Agh, OK, thanks for the heads up.
I hope this makes it into 2015.10, otherwise the SPL support for SoCFPGA will be completely useless.
One way or another we'll figure this out sooner rather than later.
I know :)
Masahiro's series landed so I have applied this to u-boot-dm.
Please check that it works as you expect.
Regards, Simon

On Saturday, August 22, 2015 at 03:40:26 PM, Simon Glass wrote:
Hi!
[...]
One way or another we'll figure this out sooner rather than later.
I know :)
Masahiro's series landed so I have applied this to u-boot-dm.
Please check that it works as you expect.
I think we're having a minor duplicity here now. Check the drivers/core/Makefile, there's this bit already:
obj-$(CONFIG_$(SPL_)OF_CONTROL) += simple-bus.o
And since I have both CONFIG_OF_CONTROL and CONFIG_SPL_OF_CONTROL, I get the simple bus driver as well.
But I don't think that the current state is entirely correct. I propose the remove the above obj-$(CONFIG_$(SPL_)OF_CONTROL) += simple-bus.o from the Makefile to fix the duplicity and achieve the behavior you wanted to have. What do you think please ? I can send a quick patch.
Best regards, Marek Vasut

Hi Marek,
On 22 August 2015 at 09:50, Marek Vasut marex@denx.de wrote:
On Saturday, August 22, 2015 at 03:40:26 PM, Simon Glass wrote:
Hi!
[...]
One way or another we'll figure this out sooner rather than later.
I know :)
Masahiro's series landed so I have applied this to u-boot-dm.
Please check that it works as you expect.
I think we're having a minor duplicity here now. Check the drivers/core/Makefile, there's this bit already:
obj-$(CONFIG_$(SPL_)OF_CONTROL) += simple-bus.o
And since I have both CONFIG_OF_CONTROL and CONFIG_SPL_OF_CONTROL, I get the simple bus driver as well.
But I don't think that the current state is entirely correct. I propose the remove the above obj-$(CONFIG_$(SPL_)OF_CONTROL) += simple-bus.o from the Makefile to fix the duplicity and achieve the behavior you wanted to have. What do you think please ? I can send a quick patch.
Actually I think that is just a merge error that I made. Can you please check it now?
Regards, Simon

On Saturday, August 22, 2015 at 06:01:44 PM, Simon Glass wrote:
Hi Marek,
Hi!
On 22 August 2015 at 09:50, Marek Vasut marex@denx.de wrote:
On Saturday, August 22, 2015 at 03:40:26 PM, Simon Glass wrote:
Hi!
[...]
One way or another we'll figure this out sooner rather than later.
I know :)
Masahiro's series landed so I have applied this to u-boot-dm.
Please check that it works as you expect.
I think we're having a minor duplicity here now. Check the
drivers/core/Makefile, there's this bit already: obj-$(CONFIG_$(SPL_)OF_CONTROL) += simple-bus.o
And since I have both CONFIG_OF_CONTROL and CONFIG_SPL_OF_CONTROL, I get the simple bus driver as well.
But I don't think that the current state is entirely correct. I propose the remove the above obj-$(CONFIG_$(SPL_)OF_CONTROL) += simple-bus.o from the Makefile to fix the duplicity and achieve the behavior you wanted to have. What do you think please ? I can send a quick patch.
Actually I think that is just a merge error that I made. Can you please check it now?
I think the in drivers/core/Kconfig , the SPL_SIMPLE_BUS should now depend on SPL_OF_CONTROL, not on OF_CONTROL, right ? :)
Best regards, Marek Vasut

Hi Marek,
On 22 August 2015 at 10:48, Marek Vasut marex@denx.de wrote:
On Saturday, August 22, 2015 at 06:01:44 PM, Simon Glass wrote:
Hi Marek,
Hi!
On 22 August 2015 at 09:50, Marek Vasut marex@denx.de wrote:
On Saturday, August 22, 2015 at 03:40:26 PM, Simon Glass wrote:
Hi!
[...]
One way or another we'll figure this out sooner rather than later.
I know :)
Masahiro's series landed so I have applied this to u-boot-dm.
Please check that it works as you expect.
I think we're having a minor duplicity here now. Check the
drivers/core/Makefile, there's this bit already: obj-$(CONFIG_$(SPL_)OF_CONTROL) += simple-bus.o
And since I have both CONFIG_OF_CONTROL and CONFIG_SPL_OF_CONTROL, I get the simple bus driver as well.
But I don't think that the current state is entirely correct. I propose the remove the above obj-$(CONFIG_$(SPL_)OF_CONTROL) += simple-bus.o from the Makefile to fix the duplicity and achieve the behavior you wanted to have. What do you think please ? I can send a quick patch.
Actually I think that is just a merge error that I made. Can you please check it now?
I think the in drivers/core/Kconfig , the SPL_SIMPLE_BUS should now depend on SPL_OF_CONTROL, not on OF_CONTROL, right ? :)
Ah yes that sounds right. Would you like to send a new patch against mainline? I think it is best to consider this a rewrite rather than a merge!
Regards, Simon

On Saturday, August 22, 2015 at 07:09:21 PM, Simon Glass wrote:
Hi Marek,
Hi Simon,
On 22 August 2015 at 10:48, Marek Vasut marex@denx.de wrote:
On Saturday, August 22, 2015 at 06:01:44 PM, Simon Glass wrote:
Hi Marek,
Hi!
On 22 August 2015 at 09:50, Marek Vasut marex@denx.de wrote:
On Saturday, August 22, 2015 at 03:40:26 PM, Simon Glass wrote:
Hi!
[...]
> One way or another we'll figure this out sooner rather than later.
I know :)
Masahiro's series landed so I have applied this to u-boot-dm.
Please check that it works as you expect.
I think we're having a minor duplicity here now. Check the
drivers/core/Makefile, there's this bit already: obj-$(CONFIG_$(SPL_)OF_CONTROL) += simple-bus.o
And since I have both CONFIG_OF_CONTROL and CONFIG_SPL_OF_CONTROL, I get the simple bus driver as well.
But I don't think that the current state is entirely correct. I propose the remove the above obj-$(CONFIG_$(SPL_)OF_CONTROL) += simple-bus.o from the Makefile to fix the duplicity and achieve the behavior you wanted to have. What do you think please ? I can send a quick patch.
Actually I think that is just a merge error that I made. Can you please check it now?
I think the in drivers/core/Kconfig , the SPL_SIMPLE_BUS should now depend on SPL_OF_CONTROL, not on OF_CONTROL, right ? :)
Ah yes that sounds right. Would you like to send a new patch against mainline? I think it is best to consider this a rewrite rather than a merge!
Heh :) I think that's the last missing bit, so feel free to fix it and we're good. But if you insist on a new patch, please do let me know :)
Best regards, Marek Vasut

Hi Marek,
On 22 August 2015 at 19:12, Marek Vasut marex@denx.de wrote:
On Saturday, August 22, 2015 at 07:09:21 PM, Simon Glass wrote:
Hi Marek,
Hi Simon,
On 22 August 2015 at 10:48, Marek Vasut marex@denx.de wrote:
On Saturday, August 22, 2015 at 06:01:44 PM, Simon Glass wrote:
Hi Marek,
Hi!
On 22 August 2015 at 09:50, Marek Vasut marex@denx.de wrote:
On Saturday, August 22, 2015 at 03:40:26 PM, Simon Glass wrote:
Hi!
[...]
>> One way or another we'll figure this out sooner rather than later. > > I know :)
Masahiro's series landed so I have applied this to u-boot-dm.
Please check that it works as you expect.
I think we're having a minor duplicity here now. Check the
drivers/core/Makefile, there's this bit already: obj-$(CONFIG_$(SPL_)OF_CONTROL) += simple-bus.o
And since I have both CONFIG_OF_CONTROL and CONFIG_SPL_OF_CONTROL, I get the simple bus driver as well.
But I don't think that the current state is entirely correct. I propose the remove the above obj-$(CONFIG_$(SPL_)OF_CONTROL) += simple-bus.o from the Makefile to fix the duplicity and achieve the behavior you wanted to have. What do you think please ? I can send a quick patch.
Actually I think that is just a merge error that I made. Can you please check it now?
I think the in drivers/core/Kconfig , the SPL_SIMPLE_BUS should now depend on SPL_OF_CONTROL, not on OF_CONTROL, right ? :)
Ah yes that sounds right. Would you like to send a new patch against mainline? I think it is best to consider this a rewrite rather than a merge!
Heh :) I think that's the last missing bit, so feel free to fix it and we're good. But if you insist on a new patch, please do let me know :)
OK, done. Let me know how it looks.
Regards, Simon

On Sunday, August 23, 2015 at 11:21:27 PM, Simon Glass wrote:
Hi Marek,
Hi Simon,
[...]
I think the in drivers/core/Kconfig , the SPL_SIMPLE_BUS should now depend on SPL_OF_CONTROL, not on OF_CONTROL, right ? :)
Ah yes that sounds right. Would you like to send a new patch against mainline? I think it is best to consider this a rewrite rather than a merge!
Heh :) I think that's the last missing bit, so feel free to fix it and we're good. But if you insist on a new patch, please do let me know :)
OK, done. Let me know how it looks.
Looks great, thanks :)
Best regards, Marek Vasut

2015-08-24 11:54 GMT+09:00 Marek Vasut marex@denx.de:
On Sunday, August 23, 2015 at 11:21:27 PM, Simon Glass wrote:
Hi Marek,
Hi Simon,
[...]
I think the in drivers/core/Kconfig , the SPL_SIMPLE_BUS should now depend on SPL_OF_CONTROL, not on OF_CONTROL, right ? :)
Ah yes that sounds right. Would you like to send a new patch against mainline? I think it is best to consider this a rewrite rather than a merge!
Heh :) I think that's the last missing bit, so feel free to fix it and we're good. But if you insist on a new patch, please do let me know :)
OK, done. Let me know how it looks.
Looks great, thanks :)
Nope.
If CONFIG_OF_CONTROL is enabled and CONFIG_SIMPLE_BUS is disabled, I get build error.
LD u-boot drivers/built-in.o: In function `dev_get_addr': /home/yamada/ref/u-boot-dm/drivers/core/device.c:571: undefined reference to `simple_bus_translate' collect2: error: ld returned 1 exit status make: *** [u-boot] Error 1
Do you really want to switch OF_CONTROL and SIMPLE_BUS separately?
simple-bus.c looks like a part of DM core rather than a driver because the address transformation (simple_bus_translate) is mandatory to handle reg properties in DTS correctly.
The reason for disabling SIMPLE_BUS but not OF_CONTROL, if any, is to save memory footprint of drivers/core/simple-bus.c Do you think it is significant?
I think this is enough:
obj-y += device.o lists.o root.o uclass.o util.o obj-$(CONFIG_DEVRES) += devres.o obj-$(CONFIG_$(SPL_)OF_CONTROL) += simple-bus.o obj-$(CONFIG_$(SPL_)DM_DEVICE_REMOVE) += device-remove.o obj-$(CONFIG_DM) += dump.o obj-$(CONFIG_REGMAP) += regmap.o obj-$(CONFIG_SYSCON) += syscon-uclass.o
(drop "ifndef CONFIG_SPL_BUILD" and "endif")

On Monday, August 24, 2015 at 12:02:08 PM, Masahiro Yamada wrote:
2015-08-24 11:54 GMT+09:00 Marek Vasut marex@denx.de:
On Sunday, August 23, 2015 at 11:21:27 PM, Simon Glass wrote:
Hi Marek,
Hi Simon,
[...]
I think the in drivers/core/Kconfig , the SPL_SIMPLE_BUS should now depend on SPL_OF_CONTROL, not on OF_CONTROL, right ? :)
Ah yes that sounds right. Would you like to send a new patch against mainline? I think it is best to consider this a rewrite rather than a merge!
Heh :) I think that's the last missing bit, so feel free to fix it and we're good. But if you insist on a new patch, please do let me know :)
OK, done. Let me know how it looks.
Looks great, thanks :)
Nope.
If CONFIG_OF_CONTROL is enabled and CONFIG_SIMPLE_BUS is disabled, I get build error.
Hrm.
LD u-boot drivers/built-in.o: In function `dev_get_addr': /home/yamada/ref/u-boot-dm/drivers/core/device.c:571: undefined reference to `simple_bus_translate' collect2: error: ld returned 1 exit status make: *** [u-boot] Error 1
Do you really want to switch OF_CONTROL and SIMPLE_BUS separately?
I don't need it anymore in fact. I just needed to have simple-bus support enabled in SPL, which I have even without this patch now. This is how it came to be:
https://www.mail-archive.com/u-boot@lists.denx.de/msg179851.html
simple-bus.c looks like a part of DM core rather than a driver because the address transformation (simple_bus_translate) is mandatory to handle reg properties in DTS correctly.
The reason for disabling SIMPLE_BUS but not OF_CONTROL, if any, is to save memory footprint of drivers/core/simple-bus.c Do you think it is significant?
I think this is enough:
obj-y += device.o lists.o root.o uclass.o util.o obj-$(CONFIG_DEVRES) += devres.o obj-$(CONFIG_$(SPL_)OF_CONTROL) += simple-bus.o obj-$(CONFIG_$(SPL_)DM_DEVICE_REMOVE) += device-remove.o obj-$(CONFIG_DM) += dump.o obj-$(CONFIG_REGMAP) += regmap.o obj-$(CONFIG_SYSCON) += syscon-uclass.o
(drop "ifndef CONFIG_SPL_BUILD" and "endif")
Feel free to apply the original patch ;-)
https://www.mail-archive.com/u-boot@lists.denx.de/msg178872.html
Best regards, Marek Vasut

Hi Masahiro,
On 24 August 2015 at 04:02, Masahiro Yamada yamada.masahiro@socionext.com wrote:
2015-08-24 11:54 GMT+09:00 Marek Vasut marex@denx.de:
On Sunday, August 23, 2015 at 11:21:27 PM, Simon Glass wrote:
Hi Marek,
Hi Simon,
[...]
I think the in drivers/core/Kconfig , the SPL_SIMPLE_BUS should now depend on SPL_OF_CONTROL, not on OF_CONTROL, right ? :)
Ah yes that sounds right. Would you like to send a new patch against mainline? I think it is best to consider this a rewrite rather than a merge!
Heh :) I think that's the last missing bit, so feel free to fix it and we're good. But if you insist on a new patch, please do let me know :)
OK, done. Let me know how it looks.
Looks great, thanks :)
Nope.
If CONFIG_OF_CONTROL is enabled and CONFIG_SIMPLE_BUS is disabled, I get build error.
LD u-boot drivers/built-in.o: In function `dev_get_addr': /home/yamada/ref/u-boot-dm/drivers/core/device.c:571: undefined reference to `simple_bus_translate' collect2: error: ld returned 1 exit status make: *** [u-boot] Error 1
Do you really want to switch OF_CONTROL and SIMPLE_BUS separately?
simple-bus.c looks like a part of DM core rather than a driver because the address transformation (simple_bus_translate) is mandatory to handle reg properties in DTS correctly.
The reason for disabling SIMPLE_BUS but not OF_CONTROL, if any, is to save memory footprint of drivers/core/simple-bus.c Do you think it is significant?
It's not large but it was enough for me to to split it out as an option recently. I'd like to avoid needless bloat particularly where it affects SPL.
We can fix that build error - it's just that we have the wrong condition:
#ifndef CONFIG_SPL_BUILD if (device_get_uclass_id(dev->parent) == UCLASS_SIMPLE_BUS) addr = simple_bus_translate(dev->parent, addr); #endif
But I think this patch needs to be redone and resent since I am effectively rewriting it in the name of merge conflicts. I'll take a look.
I think this is enough:
obj-y += device.o lists.o root.o uclass.o util.o obj-$(CONFIG_DEVRES) += devres.o obj-$(CONFIG_$(SPL_)OF_CONTROL) += simple-bus.o obj-$(CONFIG_$(SPL_)DM_DEVICE_REMOVE) += device-remove.o obj-$(CONFIG_DM) += dump.o obj-$(CONFIG_REGMAP) += regmap.o obj-$(CONFIG_SYSCON) += syscon-uclass.o
(drop "ifndef CONFIG_SPL_BUILD" and "endif")
Regards, Simon

Hi,
On 24 August 2015 at 10:58, Simon Glass sjg@chromium.org wrote:
Hi Masahiro,
On 24 August 2015 at 04:02, Masahiro Yamada yamada.masahiro@socionext.com wrote:
2015-08-24 11:54 GMT+09:00 Marek Vasut marex@denx.de:
On Sunday, August 23, 2015 at 11:21:27 PM, Simon Glass wrote:
Hi Marek,
Hi Simon,
[...]
> I think the in drivers/core/Kconfig , the SPL_SIMPLE_BUS should now > depend on SPL_OF_CONTROL, not on OF_CONTROL, right ? :)
Ah yes that sounds right. Would you like to send a new patch against mainline? I think it is best to consider this a rewrite rather than a merge!
Heh :) I think that's the last missing bit, so feel free to fix it and we're good. But if you insist on a new patch, please do let me know :)
OK, done. Let me know how it looks.
Looks great, thanks :)
Nope.
If CONFIG_OF_CONTROL is enabled and CONFIG_SIMPLE_BUS is disabled, I get build error.
LD u-boot drivers/built-in.o: In function `dev_get_addr': /home/yamada/ref/u-boot-dm/drivers/core/device.c:571: undefined reference to `simple_bus_translate' collect2: error: ld returned 1 exit status make: *** [u-boot] Error 1
Do you really want to switch OF_CONTROL and SIMPLE_BUS separately?
simple-bus.c looks like a part of DM core rather than a driver because the address transformation (simple_bus_translate) is mandatory to handle reg properties in DTS correctly.
The reason for disabling SIMPLE_BUS but not OF_CONTROL, if any, is to save memory footprint of drivers/core/simple-bus.c Do you think it is significant?
It's not large but it was enough for me to to split it out as an option recently. I'd like to avoid needless bloat particularly where it affects SPL.
We can fix that build error - it's just that we have the wrong condition:
#ifndef CONFIG_SPL_BUILD if (device_get_uclass_id(dev->parent) == UCLASS_SIMPLE_BUS) addr = simple_bus_translate(dev->parent, addr); #endif
But I think this patch needs to be redone and resent since I am effectively rewriting it in the name of merge conflicts. I'll take a look.
OK I've had another go at this, so if there are any other problems / changes, please submit a patch!
Applied (again) to u-boot-dm, thanks!
- Simon
participants (3)
-
Marek Vasut
-
Masahiro Yamada
-
Simon Glass