All of lore.kernel.org
 help / color / mirror / Atom feed
* [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.