* [PATCH v5 0/4] of-platdata: Avoid building libfdt
@ 2020-04-27 1:24 Simon Glass
2020-04-27 1:24 ` [PATCH v5 1/4] omap: mmc: Avoid using libfdt with of-platdata Simon Glass
` (3 more replies)
0 siblings, 4 replies; 22+ messages in thread
From: Simon Glass @ 2020-04-27 1:24 UTC (permalink / raw)
To: u-boot
The original patch of this series was sent in September but unfortunately
caused build problems on some boards, since they don't comply with the
of-platdata rules.
With of-platdata, the idea is to compile the device tree into C structures
to save space and avoid needing to use libfdt. But some boards use
of-platdata while also using libfdt in a few areas, thus defeating the
purpose of of-platdata.
This series includes the original two patches
http://patchwork.ozlabs.org/patch/1167420/
http://patchwork.ozlabs.org/patch/1167367/
as well as a few other patches to fix the build errors. Overall this
reduces code size and provides better error messages when unavailable
functions are used.
Board maintainers should still take a look at the result, adjusting the
of-platdata support as needed.
Changes in v5:
- Drop one rockchip patch as that issue has been fixed
Changes in v4:
- Add new patch for rockchip build errors
- Add new patch for omap MMC build errors
- Add new patch for rockchip chromebook build errors
- Pull out patches into a new series
- Add new patches to handle build failures
Changes in v3:
- Fix eth_dev_get_mac_address() call dev_read...() only when available
Simon Glass (4):
omap: mmc: Avoid using libfdt with of-platdata
rockchip: pinctrl: Disable full pinctrl for SPL
spl: Allow SPL/TPL to use of-platdata without libfdt
dm: core: Don't include ofnode functions with of-platdata
configs/chromebit_mickey_defconfig | 1 +
configs/chromebook_jerry_defconfig | 1 +
configs/chromebook_minnie_defconfig | 1 +
configs/chromebook_speedy_defconfig | 1 +
drivers/core/Makefile | 4 +++-
drivers/mmc/davinci_mmc.c | 6 ++++++
include/dm/read.h | 3 +--
lib/Kconfig | 4 ++--
net/eth-uclass.c | 2 +-
9 files changed, 17 insertions(+), 6 deletions(-)
--
2.26.2.303.gf8c07b1a785-goog
^ permalink raw reply [flat|nested] 22+ messages in thread
* [PATCH v5 1/4] omap: mmc: Avoid using libfdt with of-platdata
2020-04-27 1:24 [PATCH v5 0/4] of-platdata: Avoid building libfdt Simon Glass
@ 2020-04-27 1:24 ` Simon Glass
2020-04-27 5:33 ` Peng Fan
2020-04-27 1:24 ` [PATCH v5 2/4] rockchip: pinctrl: Disable full pinctrl for SPL Simon Glass
` (2 subsequent siblings)
3 siblings, 1 reply; 22+ messages in thread
From: Simon Glass @ 2020-04-27 1:24 UTC (permalink / raw)
To: u-boot
At present this driver is enabled in SPL on omapl138_lcdk, which uses
of-platdata. The driver needs to be ported to use of-platdata properly.
For now, avoid a build error by returning an error.
Signed-off-by: Simon Glass <sjg@chromium.org>
---
Changes in v5: None
Changes in v4: None
Changes in v3: None
drivers/mmc/davinci_mmc.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/drivers/mmc/davinci_mmc.c b/drivers/mmc/davinci_mmc.c
index ef5cd4e723..44903354ab 100644
--- a/drivers/mmc/davinci_mmc.c
+++ b/drivers/mmc/davinci_mmc.c
@@ -498,6 +498,12 @@ static int davinci_mmc_probe(struct udevice *dev)
cfg->b_max = DAVINCI_MAX_BLOCKS;
cfg->name = "da830-mmc";
+ /* FIXME: Cannot read from device tree with of-platdata */
+ if (CONFIG_IS_ENABLED(OF_PLATDATA)) {
+ printf("Please fix this driver to use of-platdata");
+ return -ENOSYS;
+ }
+
priv->reg_base = (struct davinci_mmc_regs *)dev_read_addr(dev);
priv->input_clk = clk_get(DAVINCI_MMCSD_CLKID);
--
2.26.2.303.gf8c07b1a785-goog
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [PATCH v5 2/4] rockchip: pinctrl: Disable full pinctrl for SPL
2020-04-27 1:24 [PATCH v5 0/4] of-platdata: Avoid building libfdt Simon Glass
2020-04-27 1:24 ` [PATCH v5 1/4] omap: mmc: Avoid using libfdt with of-platdata Simon Glass
@ 2020-04-27 1:24 ` Simon Glass
2020-04-28 14:21 ` Kever Yang
2020-04-27 1:24 ` [PATCH v5 3/4] spl: Allow SPL/TPL to use of-platdata without libfdt Simon Glass
2020-04-27 1:24 ` [PATCH v5 4/4] dm: core: Don't include ofnode functions with of-platdata Simon Glass
3 siblings, 1 reply; 22+ messages in thread
From: Simon Glass @ 2020-04-27 1:24 UTC (permalink / raw)
To: u-boot
We don't need full pinctrl for SPL on these chrombook devices. Disable
it so that of-platdata can be used without calling libfdt routines.
Signed-off-by: Simon Glass <sjg@chromium.org>
---
Changes in v5: None
Changes in v4: None
Changes in v3: None
configs/chromebit_mickey_defconfig | 1 +
configs/chromebook_jerry_defconfig | 1 +
configs/chromebook_minnie_defconfig | 1 +
configs/chromebook_speedy_defconfig | 1 +
4 files changed, 4 insertions(+)
diff --git a/configs/chromebit_mickey_defconfig b/configs/chromebit_mickey_defconfig
index a0b1c8d87e..7a1a5d6fcb 100644
--- a/configs/chromebit_mickey_defconfig
+++ b/configs/chromebit_mickey_defconfig
@@ -72,6 +72,7 @@ CONFIG_SPI_FLASH_GIGADEVICE=y
CONFIG_PINCTRL=y
CONFIG_PINCONF=y
CONFIG_SPL_PINCTRL=y
+# CONFIG_SPL_PINCTRL_FULL is not set
# CONFIG_SPL_PINMUX is not set
CONFIG_SPL_PINCONF=y
CONFIG_DM_PMIC=y
diff --git a/configs/chromebook_jerry_defconfig b/configs/chromebook_jerry_defconfig
index 7ba0c9566a..0e7381ca72 100644
--- a/configs/chromebook_jerry_defconfig
+++ b/configs/chromebook_jerry_defconfig
@@ -75,6 +75,7 @@ CONFIG_SPI_FLASH_GIGADEVICE=y
CONFIG_PINCTRL=y
CONFIG_PINCONF=y
CONFIG_SPL_PINCTRL=y
+# CONFIG_SPL_PINCTRL_FULL is not set
# CONFIG_SPL_PINMUX is not set
CONFIG_SPL_PINCONF=y
CONFIG_DM_PMIC=y
diff --git a/configs/chromebook_minnie_defconfig b/configs/chromebook_minnie_defconfig
index 46e1c183a2..bacfafb539 100644
--- a/configs/chromebook_minnie_defconfig
+++ b/configs/chromebook_minnie_defconfig
@@ -74,6 +74,7 @@ CONFIG_SPI_FLASH_GIGADEVICE=y
CONFIG_PINCTRL=y
CONFIG_PINCONF=y
CONFIG_SPL_PINCTRL=y
+# CONFIG_SPL_PINCTRL_FULL is not set
# CONFIG_SPL_PINMUX is not set
CONFIG_SPL_PINCONF=y
CONFIG_DM_PMIC=y
diff --git a/configs/chromebook_speedy_defconfig b/configs/chromebook_speedy_defconfig
index 34cf727abc..370a40df3e 100644
--- a/configs/chromebook_speedy_defconfig
+++ b/configs/chromebook_speedy_defconfig
@@ -74,6 +74,7 @@ CONFIG_SPI_FLASH_GIGADEVICE=y
CONFIG_PINCTRL=y
CONFIG_PINCONF=y
CONFIG_SPL_PINCTRL=y
+# CONFIG_SPL_PINCTRL_FULL is not set
CONFIG_DM_PMIC=y
# CONFIG_SPL_PMIC_CHILDREN is not set
CONFIG_PMIC_RK8XX=y
--
2.26.2.303.gf8c07b1a785-goog
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [PATCH v5 3/4] spl: Allow SPL/TPL to use of-platdata without libfdt
2020-04-27 1:24 [PATCH v5 0/4] of-platdata: Avoid building libfdt Simon Glass
2020-04-27 1:24 ` [PATCH v5 1/4] omap: mmc: Avoid using libfdt with of-platdata Simon Glass
2020-04-27 1:24 ` [PATCH v5 2/4] rockchip: pinctrl: Disable full pinctrl for SPL Simon Glass
@ 2020-04-27 1:24 ` Simon Glass
2020-04-27 1:24 ` [PATCH v5 4/4] dm: core: Don't include ofnode functions with of-platdata Simon Glass
3 siblings, 0 replies; 22+ messages in thread
From: Simon Glass @ 2020-04-27 1:24 UTC (permalink / raw)
To: u-boot
At present libfdt is included in SPL/TPL if SPL/TPL_OF_CONTROL is enabled.
But if of-platdata is in use this is not required. Update the condition to
avoid building this extra code. This ensures that if a libfdt function is
used it will produce a link error rather than silently increasing the
build size.
Signed-off-by: Simon Glass <sjg@chromium.org>
---
Changes in v5:
- Drop rockchip patches as those boards have been fixed
Changes in v4:
- Add new patch for rockchip build errors
- Add new patch for omap MMC build errors
- Add new patch for rockchip chromebook build errors
- Pull out patches into a new series
- Add new patches to handle build failures
Changes in v3: None
lib/Kconfig | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/lib/Kconfig b/lib/Kconfig
index 144a54da28..854f0990c5 100644
--- a/lib/Kconfig
+++ b/lib/Kconfig
@@ -501,7 +501,7 @@ config OF_LIBFDT_OVERLAY
config SPL_OF_LIBFDT
bool "Enable the FDT library for SPL"
- default y if SPL_OF_CONTROL
+ default y if SPL_OF_CONTROL && !SPL_OF_PLATDATA
help
This enables the FDT library (libfdt). It provides functions for
accessing binary device tree images in memory, such as adding and
@@ -522,7 +522,7 @@ config SPL_OF_LIBFDT_ASSUME_MASK
config TPL_OF_LIBFDT
bool "Enable the FDT library for TPL"
- default y if TPL_OF_CONTROL
+ default y if TPL_OF_CONTROL && !TPL_OF_PLATDATA
help
This enables the FDT library (libfdt). It provides functions for
accessing binary device tree images in memory, such as adding and
--
2.26.2.303.gf8c07b1a785-goog
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [PATCH v5 4/4] dm: core: Don't include ofnode functions with of-platdata
2020-04-27 1:24 [PATCH v5 0/4] of-platdata: Avoid building libfdt Simon Glass
` (2 preceding siblings ...)
2020-04-27 1:24 ` [PATCH v5 3/4] spl: Allow SPL/TPL to use of-platdata without libfdt Simon Glass
@ 2020-04-27 1:24 ` Simon Glass
3 siblings, 0 replies; 22+ messages in thread
From: Simon Glass @ 2020-04-27 1:24 UTC (permalink / raw)
To: u-boot
These functions cannot work with of-platdata since libfdt is not
available. At present when dev_read_...() functions are used it produces
error messages about ofnode which is confusing.
Adjust the Makefile and header to produce an error message for the actual
dev_read...() function which is called. This makes it easier to see what
code needs to be converted for use with of-platdata.
Signed-off-by: Simon Glass <sjg@chromium.org>
---
Changes in v5: None
Changes in v4: None
Changes in v3:
- Fix eth_dev_get_mac_address() call dev_read...() only when available
drivers/core/Makefile | 4 +++-
include/dm/read.h | 3 +--
net/eth-uclass.c | 2 +-
3 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/drivers/core/Makefile b/drivers/core/Makefile
index c707026a3a..0fd09abc40 100644
--- a/drivers/core/Makefile
+++ b/drivers/core/Makefile
@@ -14,6 +14,8 @@ obj-$(CONFIG_OF_LIVE) += of_access.o of_addr.o
ifndef CONFIG_DM_DEV_READ_INLINE
obj-$(CONFIG_OF_CONTROL) += read.o
endif
-obj-$(CONFIG_OF_CONTROL) += of_extra.o ofnode.o read_extra.o
+ifdef CONFIG_$(SPL_TPL_)OF_LIBFDT
+obj-$(CONFIG_$(SPL_TPL_)OF_CONTROL) += of_extra.o ofnode.o read_extra.o
+endif
ccflags-$(CONFIG_DM_DEBUG) += -DDEBUG
diff --git a/include/dm/read.h b/include/dm/read.h
index 03c15b8550..79a2a4ec8c 100644
--- a/include/dm/read.h
+++ b/include/dm/read.h
@@ -43,8 +43,7 @@ static inline bool dev_of_valid(const struct udevice *dev)
return ofnode_valid(dev_ofnode(dev));
}
-#ifndef CONFIG_DM_DEV_READ_INLINE
-
+#if !defined(CONFIG_DM_DEV_READ_INLINE) || CONFIG_IS_ENABLED(OF_PLATDATA)
/**
* dev_read_u32() - read a 32-bit integer from a device's DT property
*
diff --git a/net/eth-uclass.c b/net/eth-uclass.c
index 8bf2eabe90..abefda0b0c 100644
--- a/net/eth-uclass.c
+++ b/net/eth-uclass.c
@@ -467,7 +467,7 @@ static int eth_pre_unbind(struct udevice *dev)
static bool eth_dev_get_mac_address(struct udevice *dev, u8 mac[ARP_HLEN])
{
-#if IS_ENABLED(CONFIG_OF_CONTROL)
+#if CONFIG_IS_ENABLED(OF_CONTROL)
const uint8_t *p;
p = dev_read_u8_array_ptr(dev, "mac-address", ARP_HLEN);
--
2.26.2.303.gf8c07b1a785-goog
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [PATCH v5 1/4] omap: mmc: Avoid using libfdt with of-platdata
2020-04-27 1:24 ` [PATCH v5 1/4] omap: mmc: Avoid using libfdt with of-platdata Simon Glass
@ 2020-04-27 5:33 ` Peng Fan
2020-04-27 18:59 ` Tom Rini
0 siblings, 1 reply; 22+ messages in thread
From: Peng Fan @ 2020-04-27 5:33 UTC (permalink / raw)
To: u-boot
> Subject: [PATCH v5 1/4] omap: mmc: Avoid using libfdt with of-platdata
>
> At present this driver is enabled in SPL on omapl138_lcdk, which uses
> of-platdata. The driver needs to be ported to use of-platdata properly.
> For now, avoid a build error by returning an error.
>
> Signed-off-by: Simon Glass <sjg@chromium.org>
Acked-by: Peng Fan <peng.fan@nxp.com>
^ permalink raw reply [flat|nested] 22+ messages in thread
* [PATCH v5 1/4] omap: mmc: Avoid using libfdt with of-platdata
2020-04-27 5:33 ` Peng Fan
@ 2020-04-27 18:59 ` Tom Rini
2020-04-28 4:17 ` Lokesh Vutla
0 siblings, 1 reply; 22+ messages in thread
From: Tom Rini @ 2020-04-27 18:59 UTC (permalink / raw)
To: u-boot
On Mon, Apr 27, 2020 at 05:33:41AM +0000, Peng Fan wrote:
> > Subject: [PATCH v5 1/4] omap: mmc: Avoid using libfdt with of-platdata
> >
> > At present this driver is enabled in SPL on omapl138_lcdk, which uses
> > of-platdata. The driver needs to be ported to use of-platdata properly.
> > For now, avoid a build error by returning an error.
> >
> > Signed-off-by: Simon Glass <sjg@chromium.org>
>
> Acked-by: Peng Fan <peng.fan@nxp.com>
Since the board maintainer is on CC and I believe that platform is still
actively used in testing, I want to see this fixed rather than turned in
to a run-time error. Thanks!
--
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 659 bytes
Desc: not available
URL: <https://lists.denx.de/pipermail/u-boot/attachments/20200427/91d1cc69/attachment.sig>
^ permalink raw reply [flat|nested] 22+ messages in thread
* [PATCH v5 1/4] omap: mmc: Avoid using libfdt with of-platdata
2020-04-27 18:59 ` Tom Rini
@ 2020-04-28 4:17 ` Lokesh Vutla
2020-04-28 7:00 ` Faiz Abbas
0 siblings, 1 reply; 22+ messages in thread
From: Lokesh Vutla @ 2020-04-28 4:17 UTC (permalink / raw)
To: u-boot
+Faiz,
On 28/04/20 12:29 AM, Tom Rini wrote:
> On Mon, Apr 27, 2020 at 05:33:41AM +0000, Peng Fan wrote:
>>> Subject: [PATCH v5 1/4] omap: mmc: Avoid using libfdt with of-platdata
>>>
>>> At present this driver is enabled in SPL on omapl138_lcdk, which uses
>>> of-platdata. The driver needs to be ported to use of-platdata properly.
>>> For now, avoid a build error by returning an error.
>>>
>>> Signed-off-by: Simon Glass <sjg@chromium.org>
Does this break the boot on omap l138?
Thanks and regards,
Lokesh
>>
>> Acked-by: Peng Fan <peng.fan@nxp.com>
>
> Since the board maintainer is on CC and I believe that platform is still
> actively used in testing, I want to see this fixed rather than turned in
> to a run-time error. Thanks!
>
^ permalink raw reply [flat|nested] 22+ messages in thread
* [PATCH v5 1/4] omap: mmc: Avoid using libfdt with of-platdata
2020-04-28 4:17 ` Lokesh Vutla
@ 2020-04-28 7:00 ` Faiz Abbas
2020-04-30 11:43 ` Bartosz Golaszewski
0 siblings, 1 reply; 22+ messages in thread
From: Faiz Abbas @ 2020-04-28 7:00 UTC (permalink / raw)
To: u-boot
+Bartosz
On 28/04/20 9:47 am, Lokesh Vutla wrote:
> +Faiz,
>
> On 28/04/20 12:29 AM, Tom Rini wrote:
>> On Mon, Apr 27, 2020 at 05:33:41AM +0000, Peng Fan wrote:
>>>> Subject: [PATCH v5 1/4] omap: mmc: Avoid using libfdt with of-platdata
>>>>
>>>> At present this driver is enabled in SPL on omapl138_lcdk, which uses
>>>> of-platdata. The driver needs to be ported to use of-platdata properly.
>>>> For now, avoid a build error by returning an error.
>>>>
>>>> Signed-off-by: Simon Glass <sjg@chromium.org>
>
> Does this break the boot on omap l138?
>
I don't have a board at hand to test this out. Bartosz can you help test this with
omapl138?
Thanks,
Faiz
^ permalink raw reply [flat|nested] 22+ messages in thread
* [PATCH v5 2/4] rockchip: pinctrl: Disable full pinctrl for SPL
2020-04-27 1:24 ` [PATCH v5 2/4] rockchip: pinctrl: Disable full pinctrl for SPL Simon Glass
@ 2020-04-28 14:21 ` Kever Yang
0 siblings, 0 replies; 22+ messages in thread
From: Kever Yang @ 2020-04-28 14:21 UTC (permalink / raw)
To: u-boot
On 2020/4/27 ??9:24, Simon Glass wrote:
> We don't need full pinctrl for SPL on these chrombook devices. Disable
> it so that of-platdata can be used without calling libfdt routines.
>
> Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
Thanks,
- Kever
> ---
>
> Changes in v5: None
> Changes in v4: None
> Changes in v3: None
>
> configs/chromebit_mickey_defconfig | 1 +
> configs/chromebook_jerry_defconfig | 1 +
> configs/chromebook_minnie_defconfig | 1 +
> configs/chromebook_speedy_defconfig | 1 +
> 4 files changed, 4 insertions(+)
>
> diff --git a/configs/chromebit_mickey_defconfig b/configs/chromebit_mickey_defconfig
> index a0b1c8d87e..7a1a5d6fcb 100644
> --- a/configs/chromebit_mickey_defconfig
> +++ b/configs/chromebit_mickey_defconfig
> @@ -72,6 +72,7 @@ CONFIG_SPI_FLASH_GIGADEVICE=y
> CONFIG_PINCTRL=y
> CONFIG_PINCONF=y
> CONFIG_SPL_PINCTRL=y
> +# CONFIG_SPL_PINCTRL_FULL is not set
> # CONFIG_SPL_PINMUX is not set
> CONFIG_SPL_PINCONF=y
> CONFIG_DM_PMIC=y
> diff --git a/configs/chromebook_jerry_defconfig b/configs/chromebook_jerry_defconfig
> index 7ba0c9566a..0e7381ca72 100644
> --- a/configs/chromebook_jerry_defconfig
> +++ b/configs/chromebook_jerry_defconfig
> @@ -75,6 +75,7 @@ CONFIG_SPI_FLASH_GIGADEVICE=y
> CONFIG_PINCTRL=y
> CONFIG_PINCONF=y
> CONFIG_SPL_PINCTRL=y
> +# CONFIG_SPL_PINCTRL_FULL is not set
> # CONFIG_SPL_PINMUX is not set
> CONFIG_SPL_PINCONF=y
> CONFIG_DM_PMIC=y
> diff --git a/configs/chromebook_minnie_defconfig b/configs/chromebook_minnie_defconfig
> index 46e1c183a2..bacfafb539 100644
> --- a/configs/chromebook_minnie_defconfig
> +++ b/configs/chromebook_minnie_defconfig
> @@ -74,6 +74,7 @@ CONFIG_SPI_FLASH_GIGADEVICE=y
> CONFIG_PINCTRL=y
> CONFIG_PINCONF=y
> CONFIG_SPL_PINCTRL=y
> +# CONFIG_SPL_PINCTRL_FULL is not set
> # CONFIG_SPL_PINMUX is not set
> CONFIG_SPL_PINCONF=y
> CONFIG_DM_PMIC=y
> diff --git a/configs/chromebook_speedy_defconfig b/configs/chromebook_speedy_defconfig
> index 34cf727abc..370a40df3e 100644
> --- a/configs/chromebook_speedy_defconfig
> +++ b/configs/chromebook_speedy_defconfig
> @@ -74,6 +74,7 @@ CONFIG_SPI_FLASH_GIGADEVICE=y
> CONFIG_PINCTRL=y
> CONFIG_PINCONF=y
> CONFIG_SPL_PINCTRL=y
> +# CONFIG_SPL_PINCTRL_FULL is not set
> CONFIG_DM_PMIC=y
> # CONFIG_SPL_PMIC_CHILDREN is not set
> CONFIG_PMIC_RK8XX=y
^ permalink raw reply [flat|nested] 22+ messages in thread
* [PATCH v5 1/4] omap: mmc: Avoid using libfdt with of-platdata
2020-04-28 7:00 ` Faiz Abbas
@ 2020-04-30 11:43 ` Bartosz Golaszewski
2020-05-01 18:32 ` Tom Rini
0 siblings, 1 reply; 22+ messages in thread
From: Bartosz Golaszewski @ 2020-04-30 11:43 UTC (permalink / raw)
To: u-boot
wt., 28 kwi 2020 o 09:01 Faiz Abbas <faiz_abbas@ti.com> napisa?(a):
>
> +Bartosz
>
> On 28/04/20 9:47 am, Lokesh Vutla wrote:
> > +Faiz,
> >
> > On 28/04/20 12:29 AM, Tom Rini wrote:
> >> On Mon, Apr 27, 2020 at 05:33:41AM +0000, Peng Fan wrote:
> >>>> Subject: [PATCH v5 1/4] omap: mmc: Avoid using libfdt with of-platdata
> >>>>
> >>>> At present this driver is enabled in SPL on omapl138_lcdk, which uses
> >>>> of-platdata. The driver needs to be ported to use of-platdata properly.
> >>>> For now, avoid a build error by returning an error.
> >>>>
> >>>> Signed-off-by: Simon Glass <sjg@chromium.org>
> >
> > Does this break the boot on omap l138?
> >
>
> I don't have a board at hand to test this out. Bartosz can you help test this with
> omapl138?
>
> Thanks,
> Faiz
Hi Faiz,
I can confirm - this *does* break the mmc boot on da850-lcdk.
Bart
^ permalink raw reply [flat|nested] 22+ messages in thread
* [PATCH v5 1/4] omap: mmc: Avoid using libfdt with of-platdata
2020-04-30 11:43 ` Bartosz Golaszewski
@ 2020-05-01 18:32 ` Tom Rini
2020-05-04 7:10 ` Bartosz Golaszewski
0 siblings, 1 reply; 22+ messages in thread
From: Tom Rini @ 2020-05-01 18:32 UTC (permalink / raw)
To: u-boot
On Thu, Apr 30, 2020 at 01:43:30PM +0200, Bartosz Golaszewski wrote:
> wt., 28 kwi 2020 o 09:01 Faiz Abbas <faiz_abbas@ti.com> napisa?(a):
> >
> > +Bartosz
> >
> > On 28/04/20 9:47 am, Lokesh Vutla wrote:
> > > +Faiz,
> > >
> > > On 28/04/20 12:29 AM, Tom Rini wrote:
> > >> On Mon, Apr 27, 2020 at 05:33:41AM +0000, Peng Fan wrote:
> > >>>> Subject: [PATCH v5 1/4] omap: mmc: Avoid using libfdt with of-platdata
> > >>>>
> > >>>> At present this driver is enabled in SPL on omapl138_lcdk, which uses
> > >>>> of-platdata. The driver needs to be ported to use of-platdata properly.
> > >>>> For now, avoid a build error by returning an error.
> > >>>>
> > >>>> Signed-off-by: Simon Glass <sjg@chromium.org>
> > >
> > > Does this break the boot on omap l138?
> > >
> >
> > I don't have a board at hand to test this out. Bartosz can you help test this with
> > omapl138?
> >
> > Thanks,
> > Faiz
>
> Hi Faiz,
>
> I can confirm - this *does* break the mmc boot on da850-lcdk.
So who is going to fix the driver to unblock Simon's series?
--
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 659 bytes
Desc: not available
URL: <https://lists.denx.de/pipermail/u-boot/attachments/20200501/eb400b7a/attachment.sig>
^ permalink raw reply [flat|nested] 22+ messages in thread
* [PATCH v5 1/4] omap: mmc: Avoid using libfdt with of-platdata
2020-05-01 18:32 ` Tom Rini
@ 2020-05-04 7:10 ` Bartosz Golaszewski
2020-05-04 13:14 ` Simon Glass
0 siblings, 1 reply; 22+ messages in thread
From: Bartosz Golaszewski @ 2020-05-04 7:10 UTC (permalink / raw)
To: u-boot
pt., 1 maj 2020 o 20:32 Tom Rini <trini@konsulko.com> napisa?(a):
>
> On Thu, Apr 30, 2020 at 01:43:30PM +0200, Bartosz Golaszewski wrote:
> > wt., 28 kwi 2020 o 09:01 Faiz Abbas <faiz_abbas@ti.com> napisa?(a):
> > >
> > > +Bartosz
> > >
> > > On 28/04/20 9:47 am, Lokesh Vutla wrote:
> > > > +Faiz,
> > > >
> > > > On 28/04/20 12:29 AM, Tom Rini wrote:
> > > >> On Mon, Apr 27, 2020 at 05:33:41AM +0000, Peng Fan wrote:
> > > >>>> Subject: [PATCH v5 1/4] omap: mmc: Avoid using libfdt with of-platdata
> > > >>>>
> > > >>>> At present this driver is enabled in SPL on omapl138_lcdk, which uses
> > > >>>> of-platdata. The driver needs to be ported to use of-platdata properly.
> > > >>>> For now, avoid a build error by returning an error.
> > > >>>>
> > > >>>> Signed-off-by: Simon Glass <sjg@chromium.org>
> > > >
> > > > Does this break the boot on omap l138?
> > > >
> > >
> > > I don't have a board at hand to test this out. Bartosz can you help test this with
> > > omapl138?
> > >
> > > Thanks,
> > > Faiz
> >
> > Hi Faiz,
> >
> > I can confirm - this *does* break the mmc boot on da850-lcdk.
>
> So who is going to fix the driver to unblock Simon's series?
>
Is this something that will take a lot of work? What exactly needs
doing? I'm not sure what "use of-platdata properly" means.
Bart
^ permalink raw reply [flat|nested] 22+ messages in thread
* [PATCH v5 1/4] omap: mmc: Avoid using libfdt with of-platdata
2020-05-04 7:10 ` Bartosz Golaszewski
@ 2020-05-04 13:14 ` Simon Glass
2020-05-05 6:50 ` Faiz Abbas
0 siblings, 1 reply; 22+ messages in thread
From: Simon Glass @ 2020-05-04 13:14 UTC (permalink / raw)
To: u-boot
Hi Bart,
On Mon, 4 May 2020 at 01:10, Bartosz Golaszewski <brgl@bgdev.pl> wrote:
>
> pt., 1 maj 2020 o 20:32 Tom Rini <trini@konsulko.com> napisa?(a):
> >
> > On Thu, Apr 30, 2020 at 01:43:30PM +0200, Bartosz Golaszewski wrote:
> > > wt., 28 kwi 2020 o 09:01 Faiz Abbas <faiz_abbas@ti.com> napisa?(a):
> > > >
> > > > +Bartosz
> > > >
> > > > On 28/04/20 9:47 am, Lokesh Vutla wrote:
> > > > > +Faiz,
> > > > >
> > > > > On 28/04/20 12:29 AM, Tom Rini wrote:
> > > > >> On Mon, Apr 27, 2020 at 05:33:41AM +0000, Peng Fan wrote:
> > > > >>>> Subject: [PATCH v5 1/4] omap: mmc: Avoid using libfdt with of-platdata
> > > > >>>>
> > > > >>>> At present this driver is enabled in SPL on omapl138_lcdk, which uses
> > > > >>>> of-platdata. The driver needs to be ported to use of-platdata properly.
> > > > >>>> For now, avoid a build error by returning an error.
> > > > >>>>
> > > > >>>> Signed-off-by: Simon Glass <sjg@chromium.org>
> > > > >
> > > > > Does this break the boot on omap l138?
> > > > >
> > > >
> > > > I don't have a board at hand to test this out. Bartosz can you help test this with
> > > > omapl138?
> > > >
> > > > Thanks,
> > > > Faiz
> > >
> > > Hi Faiz,
> > >
> > > I can confirm - this *does* break the mmc boot on da850-lcdk.
> >
> > So who is going to fix the driver to unblock Simon's series?
> >
>
> Is this something that will take a lot of work? What exactly needs
> doing? I'm not sure what "use of-platdata properly" means.
This board is defining CONFIG_SPL_OF_PLATDATA which means that device
tree is not available in SPL. Instead you need to use a C structure
created by dtoc. It basically involves creating that struct and
getting the data from that instead of calling the DT functions. I
expect it will take 2-4 hours to figure out, code and test.
See of-plat.rst for full documentation. There are quite a few examples for mmc:
grep PLATDATA drivers/mmc/*.c
drivers/mmc/ftsdc010_mci.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
drivers/mmc/ftsdc010_mci.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
drivers/mmc/ftsdc010_mci.c:#if !CONFIG_IS_ENABLED(OF_PLATDATA)
drivers/mmc/ftsdc010_mci.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
drivers/mmc/mxsmmc.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
drivers/mmc/mxsmmc.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
drivers/mmc/mxsmmc.c: debug("OF_PLATDATA: regs: 0x%p bw: %d clkid: %d
non_removable: %d\n",
drivers/mmc/mxsmmc.c:#if CONFIG_IS_ENABLED(OF_CONTROL) &&
!CONFIG_IS_ENABLED(OF_PLATDATA)
drivers/mmc/mxsmmc.c:#if CONFIG_IS_ENABLED(OF_CONTROL) &&
!CONFIG_IS_ENABLED(OF_PLATDATA)
drivers/mmc/omap_hsmmc.c:#if CONFIG_IS_ENABLED(OF_CONTROL) &&
!CONFIG_IS_ENABLED(OF_PLATDATA)
drivers/mmc/omap_hsmmc.c:#if CONFIG_IS_ENABLED(OF_CONTROL) &&
!CONFIG_IS_ENABLED(OF_PLATDATA)
drivers/mmc/omap_hsmmc.c:#if CONFIG_IS_ENABLED(OF_CONTROL) &&
!CONFIG_IS_ENABLED(OF_PLATDATA)
drivers/mmc/rockchip_dw_mmc.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
drivers/mmc/rockchip_dw_mmc.c:#if !CONFIG_IS_ENABLED(OF_PLATDATA)
drivers/mmc/rockchip_dw_mmc.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
drivers/mmc/rockchip_sdhci.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
drivers/mmc/rockchip_sdhci.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
drivers/mmc/rockchip_sdhci.c:#if !CONFIG_IS_ENABLED(OF_PLATDATA)
Regards,
Simon
^ permalink raw reply [flat|nested] 22+ messages in thread
* [PATCH v5 1/4] omap: mmc: Avoid using libfdt with of-platdata
2020-05-04 13:14 ` Simon Glass
@ 2020-05-05 6:50 ` Faiz Abbas
2020-05-05 16:17 ` Bartosz Golaszewski
2020-05-14 8:19 ` Faiz Abbas
0 siblings, 2 replies; 22+ messages in thread
From: Faiz Abbas @ 2020-05-05 6:50 UTC (permalink / raw)
To: u-boot
Hi,
On 04/05/20 6:44 pm, Simon Glass wrote:
> Hi Bart,
>
> On Mon, 4 May 2020 at 01:10, Bartosz Golaszewski <brgl@bgdev.pl> wrote:
>>
>> pt., 1 maj 2020 o 20:32 Tom Rini <trini@konsulko.com> napisa?(a):
>>>
>>> On Thu, Apr 30, 2020 at 01:43:30PM +0200, Bartosz Golaszewski wrote:
>>>> wt., 28 kwi 2020 o 09:01 Faiz Abbas <faiz_abbas@ti.com> napisa?(a):
>>>>>
>>>>> +Bartosz
>>>>>
>>>>> On 28/04/20 9:47 am, Lokesh Vutla wrote:
>>>>>> +Faiz,
>>>>>>
>>>>>> On 28/04/20 12:29 AM, Tom Rini wrote:
>>>>>>> On Mon, Apr 27, 2020 at 05:33:41AM +0000, Peng Fan wrote:
>>>>>>>>> Subject: [PATCH v5 1/4] omap: mmc: Avoid using libfdt with of-platdata
>>>>>>>>>
>>>>>>>>> At present this driver is enabled in SPL on omapl138_lcdk, which uses
>>>>>>>>> of-platdata. The driver needs to be ported to use of-platdata properly.
>>>>>>>>> For now, avoid a build error by returning an error.
>>>>>>>>>
>>>>>>>>> Signed-off-by: Simon Glass <sjg@chromium.org>
>>>>>>
>>>>>> Does this break the boot on omap l138?
>>>>>>
>>>>>
>>>>> I don't have a board at hand to test this out. Bartosz can you help test this with
>>>>> omapl138?
>>>>>
>>>>> Thanks,
>>>>> Faiz
>>>>
>>>> Hi Faiz,
>>>>
>>>> I can confirm - this *does* break the mmc boot on da850-lcdk.
>>>
>>> So who is going to fix the driver to unblock Simon's series?
>>>
>>
>> Is this something that will take a lot of work? What exactly needs
>> doing? I'm not sure what "use of-platdata properly" means.
>
> This board is defining CONFIG_SPL_OF_PLATDATA which means that device
> tree is not available in SPL. Instead you need to use a C structure
> created by dtoc. It basically involves creating that struct and
> getting the data from that instead of calling the DT functions. I
> expect it will take 2-4 hours to figure out, code and test.
>
> See of-plat.rst for full documentation. There are quite a few examples for mmc:
>
> grep PLATDATA drivers/mmc/*.c
> drivers/mmc/ftsdc010_mci.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
> drivers/mmc/ftsdc010_mci.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
> drivers/mmc/ftsdc010_mci.c:#if !CONFIG_IS_ENABLED(OF_PLATDATA)
> drivers/mmc/ftsdc010_mci.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
> drivers/mmc/mxsmmc.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
> drivers/mmc/mxsmmc.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
> drivers/mmc/mxsmmc.c: debug("OF_PLATDATA: regs: 0x%p bw: %d clkid: %d
> non_removable: %d\n",
> drivers/mmc/mxsmmc.c:#if CONFIG_IS_ENABLED(OF_CONTROL) &&
> !CONFIG_IS_ENABLED(OF_PLATDATA)
> drivers/mmc/mxsmmc.c:#if CONFIG_IS_ENABLED(OF_CONTROL) &&
> !CONFIG_IS_ENABLED(OF_PLATDATA)
> drivers/mmc/omap_hsmmc.c:#if CONFIG_IS_ENABLED(OF_CONTROL) &&
> !CONFIG_IS_ENABLED(OF_PLATDATA)
> drivers/mmc/omap_hsmmc.c:#if CONFIG_IS_ENABLED(OF_CONTROL) &&
> !CONFIG_IS_ENABLED(OF_PLATDATA)
> drivers/mmc/omap_hsmmc.c:#if CONFIG_IS_ENABLED(OF_CONTROL) &&
> !CONFIG_IS_ENABLED(OF_PLATDATA)
> drivers/mmc/rockchip_dw_mmc.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
> drivers/mmc/rockchip_dw_mmc.c:#if !CONFIG_IS_ENABLED(OF_PLATDATA)
> drivers/mmc/rockchip_dw_mmc.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
> drivers/mmc/rockchip_sdhci.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
> drivers/mmc/rockchip_sdhci.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
> drivers/mmc/rockchip_sdhci.c:#if !CONFIG_IS_ENABLED(OF_PLATDATA)
>
I was able to get a setup to work on. Will post a fix for this soon.
Thanks,
Faiz
^ permalink raw reply [flat|nested] 22+ messages in thread
* [PATCH v5 1/4] omap: mmc: Avoid using libfdt with of-platdata
2020-05-05 6:50 ` Faiz Abbas
@ 2020-05-05 16:17 ` Bartosz Golaszewski
2020-05-14 8:19 ` Faiz Abbas
1 sibling, 0 replies; 22+ messages in thread
From: Bartosz Golaszewski @ 2020-05-05 16:17 UTC (permalink / raw)
To: u-boot
wt., 5 maj 2020 o 08:50 Faiz Abbas <faiz_abbas@ti.com> napisa?(a):
>
> Hi,
>
> On 04/05/20 6:44 pm, Simon Glass wrote:
> > Hi Bart,
> >
> > On Mon, 4 May 2020 at 01:10, Bartosz Golaszewski <brgl@bgdev.pl> wrote:
> >>
> >> pt., 1 maj 2020 o 20:32 Tom Rini <trini@konsulko.com> napisa?(a):
> >>>
> >>> On Thu, Apr 30, 2020 at 01:43:30PM +0200, Bartosz Golaszewski wrote:
> >>>> wt., 28 kwi 2020 o 09:01 Faiz Abbas <faiz_abbas@ti.com> napisa?(a):
> >>>>>
> >>>>> +Bartosz
> >>>>>
> >>>>> On 28/04/20 9:47 am, Lokesh Vutla wrote:
> >>>>>> +Faiz,
> >>>>>>
> >>>>>> On 28/04/20 12:29 AM, Tom Rini wrote:
> >>>>>>> On Mon, Apr 27, 2020 at 05:33:41AM +0000, Peng Fan wrote:
> >>>>>>>>> Subject: [PATCH v5 1/4] omap: mmc: Avoid using libfdt with of-platdata
> >>>>>>>>>
> >>>>>>>>> At present this driver is enabled in SPL on omapl138_lcdk, which uses
> >>>>>>>>> of-platdata. The driver needs to be ported to use of-platdata properly.
> >>>>>>>>> For now, avoid a build error by returning an error.
> >>>>>>>>>
> >>>>>>>>> Signed-off-by: Simon Glass <sjg@chromium.org>
> >>>>>>
> >>>>>> Does this break the boot on omap l138?
> >>>>>>
> >>>>>
> >>>>> I don't have a board at hand to test this out. Bartosz can you help test this with
> >>>>> omapl138?
> >>>>>
> >>>>> Thanks,
> >>>>> Faiz
> >>>>
> >>>> Hi Faiz,
> >>>>
> >>>> I can confirm - this *does* break the mmc boot on da850-lcdk.
> >>>
> >>> So who is going to fix the driver to unblock Simon's series?
> >>>
> >>
> >> Is this something that will take a lot of work? What exactly needs
> >> doing? I'm not sure what "use of-platdata properly" means.
> >
> > This board is defining CONFIG_SPL_OF_PLATDATA which means that device
> > tree is not available in SPL. Instead you need to use a C structure
> > created by dtoc. It basically involves creating that struct and
> > getting the data from that instead of calling the DT functions. I
> > expect it will take 2-4 hours to figure out, code and test.
> >
> > See of-plat.rst for full documentation. There are quite a few examples for mmc:
> >
> > grep PLATDATA drivers/mmc/*.c
> > drivers/mmc/ftsdc010_mci.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
> > drivers/mmc/ftsdc010_mci.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
> > drivers/mmc/ftsdc010_mci.c:#if !CONFIG_IS_ENABLED(OF_PLATDATA)
> > drivers/mmc/ftsdc010_mci.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
> > drivers/mmc/mxsmmc.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
> > drivers/mmc/mxsmmc.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
> > drivers/mmc/mxsmmc.c: debug("OF_PLATDATA: regs: 0x%p bw: %d clkid: %d
> > non_removable: %d\n",
> > drivers/mmc/mxsmmc.c:#if CONFIG_IS_ENABLED(OF_CONTROL) &&
> > !CONFIG_IS_ENABLED(OF_PLATDATA)
> > drivers/mmc/mxsmmc.c:#if CONFIG_IS_ENABLED(OF_CONTROL) &&
> > !CONFIG_IS_ENABLED(OF_PLATDATA)
> > drivers/mmc/omap_hsmmc.c:#if CONFIG_IS_ENABLED(OF_CONTROL) &&
> > !CONFIG_IS_ENABLED(OF_PLATDATA)
> > drivers/mmc/omap_hsmmc.c:#if CONFIG_IS_ENABLED(OF_CONTROL) &&
> > !CONFIG_IS_ENABLED(OF_PLATDATA)
> > drivers/mmc/omap_hsmmc.c:#if CONFIG_IS_ENABLED(OF_CONTROL) &&
> > !CONFIG_IS_ENABLED(OF_PLATDATA)
> > drivers/mmc/rockchip_dw_mmc.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
> > drivers/mmc/rockchip_dw_mmc.c:#if !CONFIG_IS_ENABLED(OF_PLATDATA)
> > drivers/mmc/rockchip_dw_mmc.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
> > drivers/mmc/rockchip_sdhci.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
> > drivers/mmc/rockchip_sdhci.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
> > drivers/mmc/rockchip_sdhci.c:#if !CONFIG_IS_ENABLED(OF_PLATDATA)
> >
>
> I was able to get a setup to work on. Will post a fix for this soon.
>
> Thanks,
> Faiz
Thanks Faiz! Let me know if you need some help testing it.
Bart
^ permalink raw reply [flat|nested] 22+ messages in thread
* [PATCH v5 1/4] omap: mmc: Avoid using libfdt with of-platdata
2020-05-05 6:50 ` Faiz Abbas
2020-05-05 16:17 ` Bartosz Golaszewski
@ 2020-05-14 8:19 ` Faiz Abbas
2020-05-14 14:59 ` Tom Rini
2020-05-14 16:01 ` Simon Glass
1 sibling, 2 replies; 22+ messages in thread
From: Faiz Abbas @ 2020-05-14 8:19 UTC (permalink / raw)
To: u-boot
Simon,
On 05/05/20 12:20 pm, Faiz Abbas wrote:
> Hi,
>
> On 04/05/20 6:44 pm, Simon Glass wrote:
>> Hi Bart,
>>
>> On Mon, 4 May 2020 at 01:10, Bartosz Golaszewski <brgl@bgdev.pl> wrote:
>>>
>>> pt., 1 maj 2020 o 20:32 Tom Rini <trini@konsulko.com> napisa?(a):
>>>>
>>>> On Thu, Apr 30, 2020 at 01:43:30PM +0200, Bartosz Golaszewski wrote:
>>>>> wt., 28 kwi 2020 o 09:01 Faiz Abbas <faiz_abbas@ti.com> napisa?(a):
>>>>>>
>>>>>> +Bartosz
>>>>>>
>>>>>> On 28/04/20 9:47 am, Lokesh Vutla wrote:
>>>>>>> +Faiz,
>>>>>>>
>>>>>>> On 28/04/20 12:29 AM, Tom Rini wrote:
>>>>>>>> On Mon, Apr 27, 2020 at 05:33:41AM +0000, Peng Fan wrote:
>>>>>>>>>> Subject: [PATCH v5 1/4] omap: mmc: Avoid using libfdt with of-platdata
>>>>>>>>>>
>>>>>>>>>> At present this driver is enabled in SPL on omapl138_lcdk, which uses
>>>>>>>>>> of-platdata. The driver needs to be ported to use of-platdata properly.
>>>>>>>>>> For now, avoid a build error by returning an error.
>>>>>>>>>>
>>>>>>>>>> Signed-off-by: Simon Glass <sjg@chromium.org>
>>>>>>>
>>>>>>> Does this break the boot on omap l138?
>>>>>>>
>>>>>>
>>>>>> I don't have a board at hand to test this out. Bartosz can you help test this with
>>>>>> omapl138?
>>>>>>
>>>>>> Thanks,
>>>>>> Faiz
>>>>>
>>>>> Hi Faiz,
>>>>>
>>>>> I can confirm - this *does* break the mmc boot on da850-lcdk.
>>>>
>>>> So who is going to fix the driver to unblock Simon's series?
>>>>
>>>
>>> Is this something that will take a lot of work? What exactly needs
>>> doing? I'm not sure what "use of-platdata properly" means.
>>
>> This board is defining CONFIG_SPL_OF_PLATDATA which means that device
>> tree is not available in SPL. Instead you need to use a C structure
>> created by dtoc. It basically involves creating that struct and
>> getting the data from that instead of calling the DT functions. I
>> expect it will take 2-4 hours to figure out, code and test.
>>
>> See of-plat.rst for full documentation. There are quite a few examples for mmc:
>>
>> grep PLATDATA drivers/mmc/*.c
>> drivers/mmc/ftsdc010_mci.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
>> drivers/mmc/ftsdc010_mci.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
>> drivers/mmc/ftsdc010_mci.c:#if !CONFIG_IS_ENABLED(OF_PLATDATA)
>> drivers/mmc/ftsdc010_mci.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
>> drivers/mmc/mxsmmc.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
>> drivers/mmc/mxsmmc.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
>> drivers/mmc/mxsmmc.c: debug("OF_PLATDATA: regs: 0x%p bw: %d clkid: %d
>> non_removable: %d\n",
>> drivers/mmc/mxsmmc.c:#if CONFIG_IS_ENABLED(OF_CONTROL) &&
>> !CONFIG_IS_ENABLED(OF_PLATDATA)
>> drivers/mmc/mxsmmc.c:#if CONFIG_IS_ENABLED(OF_CONTROL) &&
>> !CONFIG_IS_ENABLED(OF_PLATDATA)
>> drivers/mmc/omap_hsmmc.c:#if CONFIG_IS_ENABLED(OF_CONTROL) &&
>> !CONFIG_IS_ENABLED(OF_PLATDATA)
>> drivers/mmc/omap_hsmmc.c:#if CONFIG_IS_ENABLED(OF_CONTROL) &&
>> !CONFIG_IS_ENABLED(OF_PLATDATA)
>> drivers/mmc/omap_hsmmc.c:#if CONFIG_IS_ENABLED(OF_CONTROL) &&
>> !CONFIG_IS_ENABLED(OF_PLATDATA)
>> drivers/mmc/rockchip_dw_mmc.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
>> drivers/mmc/rockchip_dw_mmc.c:#if !CONFIG_IS_ENABLED(OF_PLATDATA)
>> drivers/mmc/rockchip_dw_mmc.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
>> drivers/mmc/rockchip_sdhci.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
>> drivers/mmc/rockchip_sdhci.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
>> drivers/mmc/rockchip_sdhci.c:#if !CONFIG_IS_ENABLED(OF_PLATDATA)
>>
In all the examples above, platdata reg filed is directly being used for
to assign a register base address but looking at davinci platdata that is generated,
spl/dts/dt-platdata.c:
static const struct dtd_simple_bus dtv_soc_at_1c00000 = {
.model = "da850",
.ranges = {0x0, 0x1c00000, 0x400000},
};
U_BOOT_DEVICE(soc_at_1c00000) = {
.name = "simple_bus",
.platdata = &dtv_soc_at_1c00000,
.platdata_size = sizeof(dtv_soc_at_1c00000),
};
static const struct dtd_ti_da830_uart dtv_serial_at_10d000 = {
.power_domains = {0xa, 0xd},
.reg = {0x10d000, 0x100},
.reg_io_width = 0x4,
.reg_shift = 0x2,
};
U_BOOT_DEVICE(serial_at_10d000) = {
.name = "ti_da830_uart",
.platdata = &dtv_serial_at_10d000,
.platdata_size = sizeof(dtv_serial_at_10d000),
};
static const struct dtd_ti_da830_mmc dtv_mmc_at_40000 = {
.bus_width = 0x4,
.cap_mmc_highspeed = true,
.cap_sd_highspeed = true,
.cd_gpios = {0x16, 0x40, 0x1},
.dma_names = {"rx", "tx"},
.dmas = {0x14, 0x10, 0x0, 0x14, 0x11, 0x0},
.max_frequency = 0x2faf080,
.reg = {0x40000, 0x1000},
};
U_BOOT_DEVICE(mmc_at_40000) = {
.name = "ti_da830_mmc",
.platdata = &dtv_mmc_at_40000,
.platdata_size = sizeof(dtv_mmc_at_40000),
};
I need the base address of the MMC device (dtd_ti_da830_mmc dtv_mmc_at_40000)
reg = 0x40000 to be translated with the simple_bus ranges above. How do I do
this without a device tree as there is no parent-child relationship defined
between the structures? Or at least that is my understanding.
Looks like I will have to drop OF_PLATDATA and use hardcoded U_BOOT_DEVICE()
declarations for this.
Thanks,
Faiz
^ permalink raw reply [flat|nested] 22+ messages in thread
* [PATCH v5 1/4] omap: mmc: Avoid using libfdt with of-platdata
2020-05-14 8:19 ` Faiz Abbas
@ 2020-05-14 14:59 ` Tom Rini
2020-05-14 15:25 ` Faiz Abbas
2020-05-14 16:01 ` Simon Glass
1 sibling, 1 reply; 22+ messages in thread
From: Tom Rini @ 2020-05-14 14:59 UTC (permalink / raw)
To: u-boot
On Thu, May 14, 2020 at 01:49:37PM +0530, Faiz Abbas wrote:
> Simon,
>
> On 05/05/20 12:20 pm, Faiz Abbas wrote:
> > Hi,
> >
> > On 04/05/20 6:44 pm, Simon Glass wrote:
> >> Hi Bart,
> >>
> >> On Mon, 4 May 2020 at 01:10, Bartosz Golaszewski <brgl@bgdev.pl> wrote:
> >>>
> >>> pt., 1 maj 2020 o 20:32 Tom Rini <trini@konsulko.com> napisa?(a):
> >>>>
> >>>> On Thu, Apr 30, 2020 at 01:43:30PM +0200, Bartosz Golaszewski wrote:
> >>>>> wt., 28 kwi 2020 o 09:01 Faiz Abbas <faiz_abbas@ti.com> napisa?(a):
> >>>>>>
> >>>>>> +Bartosz
> >>>>>>
> >>>>>> On 28/04/20 9:47 am, Lokesh Vutla wrote:
> >>>>>>> +Faiz,
> >>>>>>>
> >>>>>>> On 28/04/20 12:29 AM, Tom Rini wrote:
> >>>>>>>> On Mon, Apr 27, 2020 at 05:33:41AM +0000, Peng Fan wrote:
> >>>>>>>>>> Subject: [PATCH v5 1/4] omap: mmc: Avoid using libfdt with of-platdata
> >>>>>>>>>>
> >>>>>>>>>> At present this driver is enabled in SPL on omapl138_lcdk, which uses
> >>>>>>>>>> of-platdata. The driver needs to be ported to use of-platdata properly.
> >>>>>>>>>> For now, avoid a build error by returning an error.
> >>>>>>>>>>
> >>>>>>>>>> Signed-off-by: Simon Glass <sjg@chromium.org>
> >>>>>>>
> >>>>>>> Does this break the boot on omap l138?
> >>>>>>>
> >>>>>>
> >>>>>> I don't have a board at hand to test this out. Bartosz can you help test this with
> >>>>>> omapl138?
> >>>>>>
> >>>>>> Thanks,
> >>>>>> Faiz
> >>>>>
> >>>>> Hi Faiz,
> >>>>>
> >>>>> I can confirm - this *does* break the mmc boot on da850-lcdk.
> >>>>
> >>>> So who is going to fix the driver to unblock Simon's series?
> >>>>
> >>>
> >>> Is this something that will take a lot of work? What exactly needs
> >>> doing? I'm not sure what "use of-platdata properly" means.
> >>
> >> This board is defining CONFIG_SPL_OF_PLATDATA which means that device
> >> tree is not available in SPL. Instead you need to use a C structure
> >> created by dtoc. It basically involves creating that struct and
> >> getting the data from that instead of calling the DT functions. I
> >> expect it will take 2-4 hours to figure out, code and test.
> >>
> >> See of-plat.rst for full documentation. There are quite a few examples for mmc:
> >>
> >> grep PLATDATA drivers/mmc/*.c
> >> drivers/mmc/ftsdc010_mci.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
> >> drivers/mmc/ftsdc010_mci.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
> >> drivers/mmc/ftsdc010_mci.c:#if !CONFIG_IS_ENABLED(OF_PLATDATA)
> >> drivers/mmc/ftsdc010_mci.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
> >> drivers/mmc/mxsmmc.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
> >> drivers/mmc/mxsmmc.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
> >> drivers/mmc/mxsmmc.c: debug("OF_PLATDATA: regs: 0x%p bw: %d clkid: %d
> >> non_removable: %d\n",
> >> drivers/mmc/mxsmmc.c:#if CONFIG_IS_ENABLED(OF_CONTROL) &&
> >> !CONFIG_IS_ENABLED(OF_PLATDATA)
> >> drivers/mmc/mxsmmc.c:#if CONFIG_IS_ENABLED(OF_CONTROL) &&
> >> !CONFIG_IS_ENABLED(OF_PLATDATA)
> >> drivers/mmc/omap_hsmmc.c:#if CONFIG_IS_ENABLED(OF_CONTROL) &&
> >> !CONFIG_IS_ENABLED(OF_PLATDATA)
> >> drivers/mmc/omap_hsmmc.c:#if CONFIG_IS_ENABLED(OF_CONTROL) &&
> >> !CONFIG_IS_ENABLED(OF_PLATDATA)
> >> drivers/mmc/omap_hsmmc.c:#if CONFIG_IS_ENABLED(OF_CONTROL) &&
> >> !CONFIG_IS_ENABLED(OF_PLATDATA)
> >> drivers/mmc/rockchip_dw_mmc.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
> >> drivers/mmc/rockchip_dw_mmc.c:#if !CONFIG_IS_ENABLED(OF_PLATDATA)
> >> drivers/mmc/rockchip_dw_mmc.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
> >> drivers/mmc/rockchip_sdhci.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
> >> drivers/mmc/rockchip_sdhci.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
> >> drivers/mmc/rockchip_sdhci.c:#if !CONFIG_IS_ENABLED(OF_PLATDATA)
> >>
>
> In all the examples above, platdata reg filed is directly being used for
> to assign a register base address but looking at davinci platdata that is generated,
> spl/dts/dt-platdata.c:
>
> static const struct dtd_simple_bus dtv_soc_at_1c00000 = {
> .model = "da850",
> .ranges = {0x0, 0x1c00000, 0x400000},
> };
> U_BOOT_DEVICE(soc_at_1c00000) = {
> .name = "simple_bus",
> .platdata = &dtv_soc_at_1c00000,
> .platdata_size = sizeof(dtv_soc_at_1c00000),
> };
>
> static const struct dtd_ti_da830_uart dtv_serial_at_10d000 = {
> .power_domains = {0xa, 0xd},
> .reg = {0x10d000, 0x100},
> .reg_io_width = 0x4,
> .reg_shift = 0x2,
> };
> U_BOOT_DEVICE(serial_at_10d000) = {
> .name = "ti_da830_uart",
> .platdata = &dtv_serial_at_10d000,
> .platdata_size = sizeof(dtv_serial_at_10d000),
> };
>
> static const struct dtd_ti_da830_mmc dtv_mmc_at_40000 = {
> .bus_width = 0x4,
> .cap_mmc_highspeed = true,
> .cap_sd_highspeed = true,
> .cd_gpios = {0x16, 0x40, 0x1},
> .dma_names = {"rx", "tx"},
> .dmas = {0x14, 0x10, 0x0, 0x14, 0x11, 0x0},
> .max_frequency = 0x2faf080,
> .reg = {0x40000, 0x1000},
> };
> U_BOOT_DEVICE(mmc_at_40000) = {
> .name = "ti_da830_mmc",
> .platdata = &dtv_mmc_at_40000,
> .platdata_size = sizeof(dtv_mmc_at_40000),
> };
>
> I need the base address of the MMC device (dtd_ti_da830_mmc dtv_mmc_at_40000)
> reg = 0x40000 to be translated with the simple_bus ranges above. How do I do
> this without a device tree as there is no parent-child relationship defined
> between the structures? Or at least that is my understanding.
>
> Looks like I will have to drop OF_PLATDATA and use hardcoded U_BOOT_DEVICE()
> declarations for this.
I'm sure the TRM for those chips is readily available in public even,
you should be able to work it out from there, yes?
--
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 659 bytes
Desc: not available
URL: <https://lists.denx.de/pipermail/u-boot/attachments/20200514/d6caa171/attachment.sig>
^ permalink raw reply [flat|nested] 22+ messages in thread
* [PATCH v5 1/4] omap: mmc: Avoid using libfdt with of-platdata
2020-05-14 14:59 ` Tom Rini
@ 2020-05-14 15:25 ` Faiz Abbas
2020-05-14 15:45 ` Tom Rini
2020-05-14 17:23 ` Simon Glass
0 siblings, 2 replies; 22+ messages in thread
From: Faiz Abbas @ 2020-05-14 15:25 UTC (permalink / raw)
To: u-boot
Hi Tom,
On 14/05/20 8:29 pm, Tom Rini wrote:
> On Thu, May 14, 2020 at 01:49:37PM +0530, Faiz Abbas wrote:
>> Simon,
>>
>> On 05/05/20 12:20 pm, Faiz Abbas wrote:
>>> Hi,
>>>
>>> On 04/05/20 6:44 pm, Simon Glass wrote:
>>>> Hi Bart,
>>>>
>>>> On Mon, 4 May 2020 at 01:10, Bartosz Golaszewski <brgl@bgdev.pl> wrote:
>>>>>
>>>>> pt., 1 maj 2020 o 20:32 Tom Rini <trini@konsulko.com> napisa?(a):
>>>>>>
>>>>>> On Thu, Apr 30, 2020 at 01:43:30PM +0200, Bartosz Golaszewski wrote:
>>>>>>> wt., 28 kwi 2020 o 09:01 Faiz Abbas <faiz_abbas@ti.com> napisa?(a):
>>>>>>>>
>>>>>>>> +Bartosz
>>>>>>>>
>>>>>>>> On 28/04/20 9:47 am, Lokesh Vutla wrote:
>>>>>>>>> +Faiz,
>>>>>>>>>
>>>>>>>>> On 28/04/20 12:29 AM, Tom Rini wrote:
>>>>>>>>>> On Mon, Apr 27, 2020 at 05:33:41AM +0000, Peng Fan wrote:
>>>>>>>>>>>> Subject: [PATCH v5 1/4] omap: mmc: Avoid using libfdt with of-platdata
>>>>>>>>>>>>
...
>>>>>>>
>>>>>>> I can confirm - this *does* break the mmc boot on da850-lcdk.
>>>>>>
>>>>>> So who is going to fix the driver to unblock Simon's series?
>>>>>>
>>>>>
>>>>> Is this something that will take a lot of work? What exactly needs
>>>>> doing? I'm not sure what "use of-platdata properly" means.
>>>>
>>>> This board is defining CONFIG_SPL_OF_PLATDATA which means that device
>>>> tree is not available in SPL. Instead you need to use a C structure
>>>> created by dtoc. It basically involves creating that struct and
>>>> getting the data from that instead of calling the DT functions. I
>>>> expect it will take 2-4 hours to figure out, code and test.
>>>>
>>>> See of-plat.rst for full documentation. There are quite a few examples for mmc:
>>>>
>>>> grep PLATDATA drivers/mmc/*.c
>>>> drivers/mmc/ftsdc010_mci.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
>>>> drivers/mmc/ftsdc010_mci.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
>>>> drivers/mmc/ftsdc010_mci.c:#if !CONFIG_IS_ENABLED(OF_PLATDATA)
>>>> drivers/mmc/ftsdc010_mci.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
>>>> drivers/mmc/mxsmmc.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
>>>> drivers/mmc/mxsmmc.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
>>>> drivers/mmc/mxsmmc.c: debug("OF_PLATDATA: regs: 0x%p bw: %d clkid: %d
>>>> non_removable: %d\n",
>>>> drivers/mmc/mxsmmc.c:#if CONFIG_IS_ENABLED(OF_CONTROL) &&
>>>> !CONFIG_IS_ENABLED(OF_PLATDATA)
>>>> drivers/mmc/mxsmmc.c:#if CONFIG_IS_ENABLED(OF_CONTROL) &&
>>>> !CONFIG_IS_ENABLED(OF_PLATDATA)
>>>> drivers/mmc/omap_hsmmc.c:#if CONFIG_IS_ENABLED(OF_CONTROL) &&
>>>> !CONFIG_IS_ENABLED(OF_PLATDATA)
>>>> drivers/mmc/omap_hsmmc.c:#if CONFIG_IS_ENABLED(OF_CONTROL) &&
>>>> !CONFIG_IS_ENABLED(OF_PLATDATA)
>>>> drivers/mmc/omap_hsmmc.c:#if CONFIG_IS_ENABLED(OF_CONTROL) &&
>>>> !CONFIG_IS_ENABLED(OF_PLATDATA)
>>>> drivers/mmc/rockchip_dw_mmc.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
>>>> drivers/mmc/rockchip_dw_mmc.c:#if !CONFIG_IS_ENABLED(OF_PLATDATA)
>>>> drivers/mmc/rockchip_dw_mmc.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
>>>> drivers/mmc/rockchip_sdhci.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
>>>> drivers/mmc/rockchip_sdhci.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
>>>> drivers/mmc/rockchip_sdhci.c:#if !CONFIG_IS_ENABLED(OF_PLATDATA)
>>>>
>>
>> In all the examples above, platdata reg filed is directly being used for
>> to assign a register base address but looking at davinci platdata that is generated,
>> spl/dts/dt-platdata.c:
>>
>> static const struct dtd_simple_bus dtv_soc_at_1c00000 = {
>> .model = "da850",
>> .ranges = {0x0, 0x1c00000, 0x400000},
>> };
>> U_BOOT_DEVICE(soc_at_1c00000) = {
>> .name = "simple_bus",
>> .platdata = &dtv_soc_at_1c00000,
>> .platdata_size = sizeof(dtv_soc_at_1c00000),
>> };
>>
>> static const struct dtd_ti_da830_uart dtv_serial_at_10d000 = {
>> .power_domains = {0xa, 0xd},
>> .reg = {0x10d000, 0x100},
>> .reg_io_width = 0x4,
>> .reg_shift = 0x2,
>> };
>> U_BOOT_DEVICE(serial_at_10d000) = {
>> .name = "ti_da830_uart",
>> .platdata = &dtv_serial_at_10d000,
>> .platdata_size = sizeof(dtv_serial_at_10d000),
>> };
>>
>> static const struct dtd_ti_da830_mmc dtv_mmc_at_40000 = {
>> .bus_width = 0x4,
>> .cap_mmc_highspeed = true,
>> .cap_sd_highspeed = true,
>> .cd_gpios = {0x16, 0x40, 0x1},
>> .dma_names = {"rx", "tx"},
>> .dmas = {0x14, 0x10, 0x0, 0x14, 0x11, 0x0},
>> .max_frequency = 0x2faf080,
>> .reg = {0x40000, 0x1000},
>> };
>> U_BOOT_DEVICE(mmc_at_40000) = {
>> .name = "ti_da830_mmc",
>> .platdata = &dtv_mmc_at_40000,
>> .platdata_size = sizeof(dtv_mmc_at_40000),
>> };
>>
>> I need the base address of the MMC device (dtd_ti_da830_mmc dtv_mmc_at_40000)
>> reg = 0x40000 to be translated with the simple_bus ranges above. How do I do
>> this without a device tree as there is no parent-child relationship defined
>> between the structures? Or at least that is my understanding.
>>
>> Looks like I will have to drop OF_PLATDATA and use hardcoded U_BOOT_DEVICE()
>> declarations for this.
>
> I'm sure the TRM for those chips is readily available in public even,
> you should be able to work it out from there, yes?
>
The problem is not getting the offset. We already know it from the device tree. The
issue is that of-platdata doesn't support address translation (yet?). Is there a
way to do this cleanly using the generated device structures of platdata? Otherwise
as I said I will need to disable OF_PLATDATA and declare static C structures in
the board file.
Thanks,
Faiz
^ permalink raw reply [flat|nested] 22+ messages in thread
* [PATCH v5 1/4] omap: mmc: Avoid using libfdt with of-platdata
2020-05-14 15:25 ` Faiz Abbas
@ 2020-05-14 15:45 ` Tom Rini
2020-05-14 17:23 ` Simon Glass
1 sibling, 0 replies; 22+ messages in thread
From: Tom Rini @ 2020-05-14 15:45 UTC (permalink / raw)
To: u-boot
On Thu, May 14, 2020 at 08:55:01PM +0530, Faiz Abbas wrote:
> Hi Tom,
>
> On 14/05/20 8:29 pm, Tom Rini wrote:
> > On Thu, May 14, 2020 at 01:49:37PM +0530, Faiz Abbas wrote:
> >> Simon,
> >>
> >> On 05/05/20 12:20 pm, Faiz Abbas wrote:
> >>> Hi,
> >>>
> >>> On 04/05/20 6:44 pm, Simon Glass wrote:
> >>>> Hi Bart,
> >>>>
> >>>> On Mon, 4 May 2020 at 01:10, Bartosz Golaszewski <brgl@bgdev.pl> wrote:
> >>>>>
> >>>>> pt., 1 maj 2020 o 20:32 Tom Rini <trini@konsulko.com> napisa?(a):
> >>>>>>
> >>>>>> On Thu, Apr 30, 2020 at 01:43:30PM +0200, Bartosz Golaszewski wrote:
> >>>>>>> wt., 28 kwi 2020 o 09:01 Faiz Abbas <faiz_abbas@ti.com> napisa?(a):
> >>>>>>>>
> >>>>>>>> +Bartosz
> >>>>>>>>
> >>>>>>>> On 28/04/20 9:47 am, Lokesh Vutla wrote:
> >>>>>>>>> +Faiz,
> >>>>>>>>>
> >>>>>>>>> On 28/04/20 12:29 AM, Tom Rini wrote:
> >>>>>>>>>> On Mon, Apr 27, 2020 at 05:33:41AM +0000, Peng Fan wrote:
> >>>>>>>>>>>> Subject: [PATCH v5 1/4] omap: mmc: Avoid using libfdt with of-platdata
> >>>>>>>>>>>>
> ...
> >>>>>>>
> >>>>>>> I can confirm - this *does* break the mmc boot on da850-lcdk.
> >>>>>>
> >>>>>> So who is going to fix the driver to unblock Simon's series?
> >>>>>>
> >>>>>
> >>>>> Is this something that will take a lot of work? What exactly needs
> >>>>> doing? I'm not sure what "use of-platdata properly" means.
> >>>>
> >>>> This board is defining CONFIG_SPL_OF_PLATDATA which means that device
> >>>> tree is not available in SPL. Instead you need to use a C structure
> >>>> created by dtoc. It basically involves creating that struct and
> >>>> getting the data from that instead of calling the DT functions. I
> >>>> expect it will take 2-4 hours to figure out, code and test.
> >>>>
> >>>> See of-plat.rst for full documentation. There are quite a few examples for mmc:
> >>>>
> >>>> grep PLATDATA drivers/mmc/*.c
> >>>> drivers/mmc/ftsdc010_mci.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
> >>>> drivers/mmc/ftsdc010_mci.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
> >>>> drivers/mmc/ftsdc010_mci.c:#if !CONFIG_IS_ENABLED(OF_PLATDATA)
> >>>> drivers/mmc/ftsdc010_mci.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
> >>>> drivers/mmc/mxsmmc.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
> >>>> drivers/mmc/mxsmmc.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
> >>>> drivers/mmc/mxsmmc.c: debug("OF_PLATDATA: regs: 0x%p bw: %d clkid: %d
> >>>> non_removable: %d\n",
> >>>> drivers/mmc/mxsmmc.c:#if CONFIG_IS_ENABLED(OF_CONTROL) &&
> >>>> !CONFIG_IS_ENABLED(OF_PLATDATA)
> >>>> drivers/mmc/mxsmmc.c:#if CONFIG_IS_ENABLED(OF_CONTROL) &&
> >>>> !CONFIG_IS_ENABLED(OF_PLATDATA)
> >>>> drivers/mmc/omap_hsmmc.c:#if CONFIG_IS_ENABLED(OF_CONTROL) &&
> >>>> !CONFIG_IS_ENABLED(OF_PLATDATA)
> >>>> drivers/mmc/omap_hsmmc.c:#if CONFIG_IS_ENABLED(OF_CONTROL) &&
> >>>> !CONFIG_IS_ENABLED(OF_PLATDATA)
> >>>> drivers/mmc/omap_hsmmc.c:#if CONFIG_IS_ENABLED(OF_CONTROL) &&
> >>>> !CONFIG_IS_ENABLED(OF_PLATDATA)
> >>>> drivers/mmc/rockchip_dw_mmc.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
> >>>> drivers/mmc/rockchip_dw_mmc.c:#if !CONFIG_IS_ENABLED(OF_PLATDATA)
> >>>> drivers/mmc/rockchip_dw_mmc.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
> >>>> drivers/mmc/rockchip_sdhci.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
> >>>> drivers/mmc/rockchip_sdhci.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
> >>>> drivers/mmc/rockchip_sdhci.c:#if !CONFIG_IS_ENABLED(OF_PLATDATA)
> >>>>
> >>
> >> In all the examples above, platdata reg filed is directly being used for
> >> to assign a register base address but looking at davinci platdata that is generated,
> >> spl/dts/dt-platdata.c:
> >>
> >> static const struct dtd_simple_bus dtv_soc_at_1c00000 = {
> >> .model = "da850",
> >> .ranges = {0x0, 0x1c00000, 0x400000},
> >> };
> >> U_BOOT_DEVICE(soc_at_1c00000) = {
> >> .name = "simple_bus",
> >> .platdata = &dtv_soc_at_1c00000,
> >> .platdata_size = sizeof(dtv_soc_at_1c00000),
> >> };
> >>
> >> static const struct dtd_ti_da830_uart dtv_serial_at_10d000 = {
> >> .power_domains = {0xa, 0xd},
> >> .reg = {0x10d000, 0x100},
> >> .reg_io_width = 0x4,
> >> .reg_shift = 0x2,
> >> };
> >> U_BOOT_DEVICE(serial_at_10d000) = {
> >> .name = "ti_da830_uart",
> >> .platdata = &dtv_serial_at_10d000,
> >> .platdata_size = sizeof(dtv_serial_at_10d000),
> >> };
> >>
> >> static const struct dtd_ti_da830_mmc dtv_mmc_at_40000 = {
> >> .bus_width = 0x4,
> >> .cap_mmc_highspeed = true,
> >> .cap_sd_highspeed = true,
> >> .cd_gpios = {0x16, 0x40, 0x1},
> >> .dma_names = {"rx", "tx"},
> >> .dmas = {0x14, 0x10, 0x0, 0x14, 0x11, 0x0},
> >> .max_frequency = 0x2faf080,
> >> .reg = {0x40000, 0x1000},
> >> };
> >> U_BOOT_DEVICE(mmc_at_40000) = {
> >> .name = "ti_da830_mmc",
> >> .platdata = &dtv_mmc_at_40000,
> >> .platdata_size = sizeof(dtv_mmc_at_40000),
> >> };
> >>
> >> I need the base address of the MMC device (dtd_ti_da830_mmc dtv_mmc_at_40000)
> >> reg = 0x40000 to be translated with the simple_bus ranges above. How do I do
> >> this without a device tree as there is no parent-child relationship defined
> >> between the structures? Or at least that is my understanding.
> >>
> >> Looks like I will have to drop OF_PLATDATA and use hardcoded U_BOOT_DEVICE()
> >> declarations for this.
> >
> > I'm sure the TRM for those chips is readily available in public even,
> > you should be able to work it out from there, yes?
> >
>
> The problem is not getting the offset. We already know it from the device tree. The
> issue is that of-platdata doesn't support address translation (yet?). Is there a
> way to do this cleanly using the generated device structures of platdata? Otherwise
> as I said I will need to disable OF_PLATDATA and declare static C structures in
> the board file.
Ah, sorry I misunderstood the problem. I suspect U_BOOT_DEVICES is
probably the best path forward right now.
--
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 659 bytes
Desc: not available
URL: <https://lists.denx.de/pipermail/u-boot/attachments/20200514/d07dc831/attachment.sig>
^ permalink raw reply [flat|nested] 22+ messages in thread
* [PATCH v5 1/4] omap: mmc: Avoid using libfdt with of-platdata
2020-05-14 8:19 ` Faiz Abbas
2020-05-14 14:59 ` Tom Rini
@ 2020-05-14 16:01 ` Simon Glass
1 sibling, 0 replies; 22+ messages in thread
From: Simon Glass @ 2020-05-14 16:01 UTC (permalink / raw)
To: u-boot
Hi Faiz,
+Walter Lozano
On Thu, 14 May 2020 at 02:43, Faiz Abbas <faiz_abbas@ti.com> wrote:
>
> Simon,
>
> On 05/05/20 12:20 pm, Faiz Abbas wrote:
> > Hi,
> >
> > On 04/05/20 6:44 pm, Simon Glass wrote:
> >> Hi Bart,
> >>
> >> On Mon, 4 May 2020 at 01:10, Bartosz Golaszewski <brgl@bgdev.pl> wrote:
> >>>
> >>> pt., 1 maj 2020 o 20:32 Tom Rini <trini@konsulko.com> napisa?(a):
> >>>>
> >>>> On Thu, Apr 30, 2020 at 01:43:30PM +0200, Bartosz Golaszewski wrote:
> >>>>> wt., 28 kwi 2020 o 09:01 Faiz Abbas <faiz_abbas@ti.com> napisa?(a):
> >>>>>>
> >>>>>> +Bartosz
> >>>>>>
> >>>>>> On 28/04/20 9:47 am, Lokesh Vutla wrote:
> >>>>>>> +Faiz,
> >>>>>>>
> >>>>>>> On 28/04/20 12:29 AM, Tom Rini wrote:
> >>>>>>>> On Mon, Apr 27, 2020 at 05:33:41AM +0000, Peng Fan wrote:
> >>>>>>>>>> Subject: [PATCH v5 1/4] omap: mmc: Avoid using libfdt with of-platdata
> >>>>>>>>>>
> >>>>>>>>>> At present this driver is enabled in SPL on omapl138_lcdk, which uses
> >>>>>>>>>> of-platdata. The driver needs to be ported to use of-platdata properly.
> >>>>>>>>>> For now, avoid a build error by returning an error.
> >>>>>>>>>>
> >>>>>>>>>> Signed-off-by: Simon Glass <sjg@chromium.org>
> >>>>>>>
> >>>>>>> Does this break the boot on omap l138?
> >>>>>>>
> >>>>>>
> >>>>>> I don't have a board at hand to test this out. Bartosz can you help test this with
> >>>>>> omapl138?
> >>>>>>
> >>>>>> Thanks,
> >>>>>> Faiz
> >>>>>
> >>>>> Hi Faiz,
> >>>>>
> >>>>> I can confirm - this *does* break the mmc boot on da850-lcdk.
> >>>>
> >>>> So who is going to fix the driver to unblock Simon's series?
> >>>>
> >>>
> >>> Is this something that will take a lot of work? What exactly needs
> >>> doing? I'm not sure what "use of-platdata properly" means.
> >>
> >> This board is defining CONFIG_SPL_OF_PLATDATA which means that device
> >> tree is not available in SPL. Instead you need to use a C structure
> >> created by dtoc. It basically involves creating that struct and
> >> getting the data from that instead of calling the DT functions. I
> >> expect it will take 2-4 hours to figure out, code and test.
> >>
> >> See of-plat.rst for full documentation. There are quite a few examples for mmc:
> >>
> >> grep PLATDATA drivers/mmc/*.c
> >> drivers/mmc/ftsdc010_mci.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
> >> drivers/mmc/ftsdc010_mci.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
> >> drivers/mmc/ftsdc010_mci.c:#if !CONFIG_IS_ENABLED(OF_PLATDATA)
> >> drivers/mmc/ftsdc010_mci.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
> >> drivers/mmc/mxsmmc.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
> >> drivers/mmc/mxsmmc.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
> >> drivers/mmc/mxsmmc.c: debug("OF_PLATDATA: regs: 0x%p bw: %d clkid: %d
> >> non_removable: %d\n",
> >> drivers/mmc/mxsmmc.c:#if CONFIG_IS_ENABLED(OF_CONTROL) &&
> >> !CONFIG_IS_ENABLED(OF_PLATDATA)
> >> drivers/mmc/mxsmmc.c:#if CONFIG_IS_ENABLED(OF_CONTROL) &&
> >> !CONFIG_IS_ENABLED(OF_PLATDATA)
> >> drivers/mmc/omap_hsmmc.c:#if CONFIG_IS_ENABLED(OF_CONTROL) &&
> >> !CONFIG_IS_ENABLED(OF_PLATDATA)
> >> drivers/mmc/omap_hsmmc.c:#if CONFIG_IS_ENABLED(OF_CONTROL) &&
> >> !CONFIG_IS_ENABLED(OF_PLATDATA)
> >> drivers/mmc/omap_hsmmc.c:#if CONFIG_IS_ENABLED(OF_CONTROL) &&
> >> !CONFIG_IS_ENABLED(OF_PLATDATA)
> >> drivers/mmc/rockchip_dw_mmc.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
> >> drivers/mmc/rockchip_dw_mmc.c:#if !CONFIG_IS_ENABLED(OF_PLATDATA)
> >> drivers/mmc/rockchip_dw_mmc.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
> >> drivers/mmc/rockchip_sdhci.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
> >> drivers/mmc/rockchip_sdhci.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
> >> drivers/mmc/rockchip_sdhci.c:#if !CONFIG_IS_ENABLED(OF_PLATDATA)
> >>
>
> In all the examples above, platdata reg filed is directly being used for
> to assign a register base address but looking at davinci platdata that is generated,
> spl/dts/dt-platdata.c:
>
> static const struct dtd_simple_bus dtv_soc_at_1c00000 = {
> .model = "da850",
> .ranges = {0x0, 0x1c00000, 0x400000},
> };
> U_BOOT_DEVICE(soc_at_1c00000) = {
> .name = "simple_bus",
> .platdata = &dtv_soc_at_1c00000,
> .platdata_size = sizeof(dtv_soc_at_1c00000),
> };
>
> static const struct dtd_ti_da830_uart dtv_serial_at_10d000 = {
> .power_domains = {0xa, 0xd},
> .reg = {0x10d000, 0x100},
> .reg_io_width = 0x4,
> .reg_shift = 0x2,
> };
> U_BOOT_DEVICE(serial_at_10d000) = {
> .name = "ti_da830_uart",
> .platdata = &dtv_serial_at_10d000,
> .platdata_size = sizeof(dtv_serial_at_10d000),
> };
>
> static const struct dtd_ti_da830_mmc dtv_mmc_at_40000 = {
> .bus_width = 0x4,
> .cap_mmc_highspeed = true,
> .cap_sd_highspeed = true,
> .cd_gpios = {0x16, 0x40, 0x1},
> .dma_names = {"rx", "tx"},
> .dmas = {0x14, 0x10, 0x0, 0x14, 0x11, 0x0},
> .max_frequency = 0x2faf080,
> .reg = {0x40000, 0x1000},
> };
> U_BOOT_DEVICE(mmc_at_40000) = {
> .name = "ti_da830_mmc",
> .platdata = &dtv_mmc_at_40000,
> .platdata_size = sizeof(dtv_mmc_at_40000),
> };
>
> I need the base address of the MMC device (dtd_ti_da830_mmc dtv_mmc_at_40000)
> reg = 0x40000 to be translated with the simple_bus ranges above. How do I do
> this without a device tree as there is no parent-child relationship defined
> between the structures? Or at least that is my understanding.
>
> Looks like I will have to drop OF_PLATDATA and use hardcoded U_BOOT_DEVICE()
> declarations for this.
Four options I can think of:
1. Add support for translating to dtoc
2. Add support for parents to dtoc
3. Find the soc device (the one with the ranges) and write a function
to return the base address given the dtplat for that device.
4. Hard-code the address behind if CONFIG_IS_ENABLED(OF_PLATDATA)) for
your board
Regards,
Simon
^ permalink raw reply [flat|nested] 22+ messages in thread
* [PATCH v5 1/4] omap: mmc: Avoid using libfdt with of-platdata
2020-05-14 15:25 ` Faiz Abbas
2020-05-14 15:45 ` Tom Rini
@ 2020-05-14 17:23 ` Simon Glass
1 sibling, 0 replies; 22+ messages in thread
From: Simon Glass @ 2020-05-14 17:23 UTC (permalink / raw)
To: u-boot
Hi Faiz,
On Thu, 14 May 2020 at 10:40, Faiz Abbas <faiz_abbas@ti.com> wrote:
>
> Hi Tom,
>
> On 14/05/20 8:29 pm, Tom Rini wrote:
> > On Thu, May 14, 2020 at 01:49:37PM +0530, Faiz Abbas wrote:
> >> Simon,
> >>
> >> On 05/05/20 12:20 pm, Faiz Abbas wrote:
> >>> Hi,
> >>>
> >>> On 04/05/20 6:44 pm, Simon Glass wrote:
> >>>> Hi Bart,
> >>>>
> >>>> On Mon, 4 May 2020 at 01:10, Bartosz Golaszewski <brgl@bgdev.pl> wrote:
> >>>>>
> >>>>> pt., 1 maj 2020 o 20:32 Tom Rini <trini@konsulko.com> napisa?(a):
> >>>>>>
> >>>>>> On Thu, Apr 30, 2020 at 01:43:30PM +0200, Bartosz Golaszewski wrote:
> >>>>>>> wt., 28 kwi 2020 o 09:01 Faiz Abbas <faiz_abbas@ti.com> napisa?(a):
> >>>>>>>>
> >>>>>>>> +Bartosz
> >>>>>>>>
> >>>>>>>> On 28/04/20 9:47 am, Lokesh Vutla wrote:
> >>>>>>>>> +Faiz,
> >>>>>>>>>
> >>>>>>>>> On 28/04/20 12:29 AM, Tom Rini wrote:
> >>>>>>>>>> On Mon, Apr 27, 2020 at 05:33:41AM +0000, Peng Fan wrote:
> >>>>>>>>>>>> Subject: [PATCH v5 1/4] omap: mmc: Avoid using libfdt with of-platdata
> >>>>>>>>>>>>
> ...
> >>>>>>>
> >>>>>>> I can confirm - this *does* break the mmc boot on da850-lcdk.
> >>>>>>
> >>>>>> So who is going to fix the driver to unblock Simon's series?
> >>>>>>
> >>>>>
> >>>>> Is this something that will take a lot of work? What exactly needs
> >>>>> doing? I'm not sure what "use of-platdata properly" means.
> >>>>
> >>>> This board is defining CONFIG_SPL_OF_PLATDATA which means that device
> >>>> tree is not available in SPL. Instead you need to use a C structure
> >>>> created by dtoc. It basically involves creating that struct and
> >>>> getting the data from that instead of calling the DT functions. I
> >>>> expect it will take 2-4 hours to figure out, code and test.
> >>>>
> >>>> See of-plat.rst for full documentation. There are quite a few examples for mmc:
> >>>>
> >>>> grep PLATDATA drivers/mmc/*.c
> >>>> drivers/mmc/ftsdc010_mci.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
> >>>> drivers/mmc/ftsdc010_mci.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
> >>>> drivers/mmc/ftsdc010_mci.c:#if !CONFIG_IS_ENABLED(OF_PLATDATA)
> >>>> drivers/mmc/ftsdc010_mci.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
> >>>> drivers/mmc/mxsmmc.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
> >>>> drivers/mmc/mxsmmc.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
> >>>> drivers/mmc/mxsmmc.c: debug("OF_PLATDATA: regs: 0x%p bw: %d clkid: %d
> >>>> non_removable: %d\n",
> >>>> drivers/mmc/mxsmmc.c:#if CONFIG_IS_ENABLED(OF_CONTROL) &&
> >>>> !CONFIG_IS_ENABLED(OF_PLATDATA)
> >>>> drivers/mmc/mxsmmc.c:#if CONFIG_IS_ENABLED(OF_CONTROL) &&
> >>>> !CONFIG_IS_ENABLED(OF_PLATDATA)
> >>>> drivers/mmc/omap_hsmmc.c:#if CONFIG_IS_ENABLED(OF_CONTROL) &&
> >>>> !CONFIG_IS_ENABLED(OF_PLATDATA)
> >>>> drivers/mmc/omap_hsmmc.c:#if CONFIG_IS_ENABLED(OF_CONTROL) &&
> >>>> !CONFIG_IS_ENABLED(OF_PLATDATA)
> >>>> drivers/mmc/omap_hsmmc.c:#if CONFIG_IS_ENABLED(OF_CONTROL) &&
> >>>> !CONFIG_IS_ENABLED(OF_PLATDATA)
> >>>> drivers/mmc/rockchip_dw_mmc.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
> >>>> drivers/mmc/rockchip_dw_mmc.c:#if !CONFIG_IS_ENABLED(OF_PLATDATA)
> >>>> drivers/mmc/rockchip_dw_mmc.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
> >>>> drivers/mmc/rockchip_sdhci.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
> >>>> drivers/mmc/rockchip_sdhci.c:#if CONFIG_IS_ENABLED(OF_PLATDATA)
> >>>> drivers/mmc/rockchip_sdhci.c:#if !CONFIG_IS_ENABLED(OF_PLATDATA)
> >>>>
> >>
> >> In all the examples above, platdata reg filed is directly being used for
> >> to assign a register base address but looking at davinci platdata that is generated,
> >> spl/dts/dt-platdata.c:
> >>
> >> static const struct dtd_simple_bus dtv_soc_at_1c00000 = {
> >> .model = "da850",
> >> .ranges = {0x0, 0x1c00000, 0x400000},
> >> };
> >> U_BOOT_DEVICE(soc_at_1c00000) = {
> >> .name = "simple_bus",
> >> .platdata = &dtv_soc_at_1c00000,
> >> .platdata_size = sizeof(dtv_soc_at_1c00000),
> >> };
> >>
> >> static const struct dtd_ti_da830_uart dtv_serial_at_10d000 = {
> >> .power_domains = {0xa, 0xd},
> >> .reg = {0x10d000, 0x100},
> >> .reg_io_width = 0x4,
> >> .reg_shift = 0x2,
> >> };
> >> U_BOOT_DEVICE(serial_at_10d000) = {
> >> .name = "ti_da830_uart",
> >> .platdata = &dtv_serial_at_10d000,
> >> .platdata_size = sizeof(dtv_serial_at_10d000),
> >> };
> >>
> >> static const struct dtd_ti_da830_mmc dtv_mmc_at_40000 = {
> >> .bus_width = 0x4,
> >> .cap_mmc_highspeed = true,
> >> .cap_sd_highspeed = true,
> >> .cd_gpios = {0x16, 0x40, 0x1},
> >> .dma_names = {"rx", "tx"},
> >> .dmas = {0x14, 0x10, 0x0, 0x14, 0x11, 0x0},
> >> .max_frequency = 0x2faf080,
> >> .reg = {0x40000, 0x1000},
> >> };
> >> U_BOOT_DEVICE(mmc_at_40000) = {
> >> .name = "ti_da830_mmc",
> >> .platdata = &dtv_mmc_at_40000,
> >> .platdata_size = sizeof(dtv_mmc_at_40000),
> >> };
> >>
> >> I need the base address of the MMC device (dtd_ti_da830_mmc dtv_mmc_at_40000)
> >> reg = 0x40000 to be translated with the simple_bus ranges above. How do I do
> >> this without a device tree as there is no parent-child relationship defined
> >> between the structures? Or at least that is my understanding.
> >>
> >> Looks like I will have to drop OF_PLATDATA and use hardcoded U_BOOT_DEVICE()
> >> declarations for this.
> >
> > I'm sure the TRM for those chips is readily available in public even,
> > you should be able to work it out from there, yes?
> >
>
> The problem is not getting the offset. We already know it from the device tree. The
> issue is that of-platdata doesn't support address translation (yet?). Is there a
> way to do this cleanly using the generated device structures of platdata? Otherwise
> as I said I will need to disable OF_PLATDATA and declare static C structures in
> the board file.
+Walter Lozano again
Four options I can think of:
1. Add support for translating to dtoc
2. Add support for parents to dtoc
3. Find the soc device (the one with the ranges) and write a function
to return the base address given the dtplat for that device.
4. Hard-code the address behind if CONFIG_IS_ENABLED(OF_PLATDATA)) for
your board
Regards,
Simon
^ permalink raw reply [flat|nested] 22+ messages in thread
end of thread, other threads:[~2020-05-14 17:23 UTC | newest]
Thread overview: 22+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-04-27 1:24 [PATCH v5 0/4] of-platdata: Avoid building libfdt Simon Glass
2020-04-27 1:24 ` [PATCH v5 1/4] omap: mmc: Avoid using libfdt with of-platdata Simon Glass
2020-04-27 5:33 ` Peng Fan
2020-04-27 18:59 ` Tom Rini
2020-04-28 4:17 ` Lokesh Vutla
2020-04-28 7:00 ` Faiz Abbas
2020-04-30 11:43 ` Bartosz Golaszewski
2020-05-01 18:32 ` Tom Rini
2020-05-04 7:10 ` Bartosz Golaszewski
2020-05-04 13:14 ` Simon Glass
2020-05-05 6:50 ` Faiz Abbas
2020-05-05 16:17 ` Bartosz Golaszewski
2020-05-14 8:19 ` Faiz Abbas
2020-05-14 14:59 ` Tom Rini
2020-05-14 15:25 ` Faiz Abbas
2020-05-14 15:45 ` Tom Rini
2020-05-14 17:23 ` Simon Glass
2020-05-14 16:01 ` Simon Glass
2020-04-27 1:24 ` [PATCH v5 2/4] rockchip: pinctrl: Disable full pinctrl for SPL Simon Glass
2020-04-28 14:21 ` Kever Yang
2020-04-27 1:24 ` [PATCH v5 3/4] spl: Allow SPL/TPL to use of-platdata without libfdt Simon Glass
2020-04-27 1:24 ` [PATCH v5 4/4] dm: core: Don't include ofnode functions with of-platdata Simon Glass
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.