Message ID | 20190430103056.32537-13-peng.fan@nxp.com |
---|---|
State | Superseded |
Delegated to: | Stefano Babic |
Headers | show |
Series | i.MX8MM + CCF | expand |
On Tue, 30 Apr 2019 10:18:12 +0000 Peng Fan <peng.fan@nxp.com> wrote: > Add pre reloc flag to use this driver before relocation > > Signed-off-by: Peng Fan <peng.fan@nxp.com> > --- > drivers/clk/clk_fixed_rate.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/clk/clk_fixed_rate.c > b/drivers/clk/clk_fixed_rate.c index 069e643fbc..debada1463 100644 > --- a/drivers/clk/clk_fixed_rate.c > +++ b/drivers/clk/clk_fixed_rate.c > @@ -45,4 +45,5 @@ U_BOOT_DRIVER(clk_fixed_rate) = { > .ofdata_to_platdata = clk_fixed_rate_ofdata_to_platdata, > .platdata_auto_alloc_size = sizeof(struct clk_fixed_rate), > .ops = &clk_fixed_rate_ops, > + .flags = DM_FLAG_PRE_RELOC, > }; This probably shall be done with proper dts file (from TPC70 - imx6q conversion code): +#include "imx6qdl-u-boot.dtsi" + +/ { + clocks { + u-boot,dm-spl; + osc { + u-boot,dm-spl; + }; + }; +}; + +&clks { + u-boot,dm-pre-reloc; +}; Best regards, Lukasz Majewski -- DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: lukma@denx.de
> Subject: Re: [i.MX8MM+CCF 12/41] clk: fixed_rate: add pre reloc flag > > On Tue, 30 Apr 2019 10:18:12 +0000 > Peng Fan <peng.fan@nxp.com> wrote: > > > Add pre reloc flag to use this driver before relocation > > > > Signed-off-by: Peng Fan <peng.fan@nxp.com> > > --- > > drivers/clk/clk_fixed_rate.c | 1 + > > 1 file changed, 1 insertion(+) > > > > diff --git a/drivers/clk/clk_fixed_rate.c > > b/drivers/clk/clk_fixed_rate.c index 069e643fbc..debada1463 100644 > > --- a/drivers/clk/clk_fixed_rate.c > > +++ b/drivers/clk/clk_fixed_rate.c > > @@ -45,4 +45,5 @@ U_BOOT_DRIVER(clk_fixed_rate) = { > > .ofdata_to_platdata = clk_fixed_rate_ofdata_to_platdata, > > .platdata_auto_alloc_size = sizeof(struct clk_fixed_rate), > > .ops = &clk_fixed_rate_ops, > > + .flags = DM_FLAG_PRE_RELOC, > > }; > > This probably shall be done with proper dts file (from TPC70 - imx6q > conversion code): My understanding is DM_FLAG_PRE_RELOC will let the driver could be used before relocation. The dts u-boot,dm-spl or u-boot,dm-pre-reloc is just to mark the device could be used at the corresponding stage. Only modify dts will not make it work without the DM_FLAG_PRE_RELOC, Right? Thanks, Peng. > > +#include "imx6qdl-u-boot.dtsi" > + > +/ { > + clocks { > + u-boot,dm-spl; > + osc { > + u-boot,dm-spl; > + }; > + }; > +}; > + > +&clks { > + u-boot,dm-pre-reloc; > +}; > > > > Best regards, > > Lukasz Majewski > > -- > > DENX Software Engineering GmbH, Managing Director: Wolfgang Denk > HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany > Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: > lukma@denx.de
Hi Peng, On Tue, May 7, 2019 at 9:30 PM Peng Fan <peng.fan@nxp.com> wrote: > > > Subject: Re: [i.MX8MM+CCF 12/41] clk: fixed_rate: add pre reloc flag > > > > On Tue, 30 Apr 2019 10:18:12 +0000 > > Peng Fan <peng.fan@nxp.com> wrote: > > > > > Add pre reloc flag to use this driver before relocation > > > > > > Signed-off-by: Peng Fan <peng.fan@nxp.com> > > > --- > > > drivers/clk/clk_fixed_rate.c | 1 + > > > 1 file changed, 1 insertion(+) > > > > > > diff --git a/drivers/clk/clk_fixed_rate.c > > > b/drivers/clk/clk_fixed_rate.c index 069e643fbc..debada1463 100644 > > > --- a/drivers/clk/clk_fixed_rate.c > > > +++ b/drivers/clk/clk_fixed_rate.c > > > @@ -45,4 +45,5 @@ U_BOOT_DRIVER(clk_fixed_rate) = { > > > .ofdata_to_platdata = clk_fixed_rate_ofdata_to_platdata, > > > .platdata_auto_alloc_size = sizeof(struct clk_fixed_rate), > > > .ops = &clk_fixed_rate_ops, > > > + .flags = DM_FLAG_PRE_RELOC, > > > }; > > > > This probably shall be done with proper dts file (from TPC70 - imx6q > > conversion code): > > My understanding is DM_FLAG_PRE_RELOC will let the driver could be used > before relocation. The dts u-boot,dm-spl or u-boot,dm-pre-reloc > is just to mark the device could be used at the corresponding stage. > Only modify dts will not make it work without the DM_FLAG_PRE_RELOC, > Right? > I think your understanding is correct. For device tree that cannot be modified by U-Boot, eg: DT passed from previous bootloader, the only way to support pre-relocation binding is to add DM_FLAG_PRE_RELOC in the U-Boot driver. Reviewed-by: Bin Meng <bmeng.cn@gmail.com> Regards, Bin
On Tue, 7 May 2019 13:29:41 +0000 Peng Fan <peng.fan@nxp.com> wrote: > > Subject: Re: [i.MX8MM+CCF 12/41] clk: fixed_rate: add pre reloc flag > > > > On Tue, 30 Apr 2019 10:18:12 +0000 > > Peng Fan <peng.fan@nxp.com> wrote: > > > > > Add pre reloc flag to use this driver before relocation > > > > > > Signed-off-by: Peng Fan <peng.fan@nxp.com> > > > --- > > > drivers/clk/clk_fixed_rate.c | 1 + > > > 1 file changed, 1 insertion(+) > > > > > > diff --git a/drivers/clk/clk_fixed_rate.c > > > b/drivers/clk/clk_fixed_rate.c index 069e643fbc..debada1463 100644 > > > --- a/drivers/clk/clk_fixed_rate.c > > > +++ b/drivers/clk/clk_fixed_rate.c > > > @@ -45,4 +45,5 @@ U_BOOT_DRIVER(clk_fixed_rate) = { > > > .ofdata_to_platdata = clk_fixed_rate_ofdata_to_platdata, > > > .platdata_auto_alloc_size = sizeof(struct > > > clk_fixed_rate), .ops = &clk_fixed_rate_ops, > > > + .flags = DM_FLAG_PRE_RELOC, > > > }; > > > > This probably shall be done with proper dts file (from TPC70 - imx6q > > conversion code): > > My understanding is DM_FLAG_PRE_RELOC will let the driver could be > used before relocation. I think that there is OR -> DM_FLAG_PRE_RELOC OR DTS attribute (u-boot,dm-spl {pre-reloc}) to use device in early SPL. Please look into drivers/core/lists.c Line 175: if (pre_reloc_only) { if (!dm_ofnode_pre_reloc(node)·&& !(entry->flags & DM_FLAG_PRE_RELOC)) return 0; } We do not bind device only if there is NO DM_FLAG_PRE_RELOC set AND the u-boot,dm-* property is not set in corresponding DTS node. > The dts u-boot,dm-spl or u-boot,dm-pre-reloc > is just to mark the device could be used at the corresponding stage. > Only modify dts will not make it work without the DM_FLAG_PRE_RELOC, > Right? > > Thanks, > Peng. > > > > > +#include "imx6qdl-u-boot.dtsi" > > + > > +/ { > > + clocks { > > + u-boot,dm-spl; > > + osc { > > + u-boot,dm-spl; > > + }; > > + }; > > +}; > > + > > +&clks { > > + u-boot,dm-pre-reloc; > > +}; > > > > > > > > Best regards, > > > > Lukasz Majewski > > > > -- > > > > DENX Software Engineering GmbH, Managing Director: Wolfgang > > Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, > > Germany Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: > > lukma@denx.de Best regards, Lukasz Majewski -- DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: lukma@denx.de
On Tue, 7 May 2019 22:00:14 +0800 Bin Meng <bmeng.cn@gmail.com> wrote: > Hi Peng, > > On Tue, May 7, 2019 at 9:30 PM Peng Fan <peng.fan@nxp.com> wrote: > > > > > Subject: Re: [i.MX8MM+CCF 12/41] clk: fixed_rate: add pre reloc > > > flag > > > > > > On Tue, 30 Apr 2019 10:18:12 +0000 > > > Peng Fan <peng.fan@nxp.com> wrote: > > > > > > > Add pre reloc flag to use this driver before relocation > > > > > > > > Signed-off-by: Peng Fan <peng.fan@nxp.com> > > > > --- > > > > drivers/clk/clk_fixed_rate.c | 1 + > > > > 1 file changed, 1 insertion(+) > > > > > > > > diff --git a/drivers/clk/clk_fixed_rate.c > > > > b/drivers/clk/clk_fixed_rate.c index 069e643fbc..debada1463 > > > > 100644 --- a/drivers/clk/clk_fixed_rate.c > > > > +++ b/drivers/clk/clk_fixed_rate.c > > > > @@ -45,4 +45,5 @@ U_BOOT_DRIVER(clk_fixed_rate) = { > > > > .ofdata_to_platdata = clk_fixed_rate_ofdata_to_platdata, > > > > .platdata_auto_alloc_size = sizeof(struct clk_fixed_rate), > > > > .ops = &clk_fixed_rate_ops, > > > > + .flags = DM_FLAG_PRE_RELOC, > > > > }; > > > > > > This probably shall be done with proper dts file (from TPC70 - > > > imx6q conversion code): > > > > My understanding is DM_FLAG_PRE_RELOC will let the driver could be > > used before relocation. The dts u-boot,dm-spl or u-boot,dm-pre-reloc > > is just to mark the device could be used at the corresponding stage. > > Only modify dts will not make it work without the DM_FLAG_PRE_RELOC, > > Right? > > > > I think your understanding is correct. For device tree that cannot be > modified by U-Boot, eg: DT passed from previous bootloader, the only > way to support pre-relocation binding is to add DM_FLAG_PRE_RELOC in > the U-Boot driver. But as fair as I understand - the discussion is about SPL, not u-boot's proper pre-location stage. Please correct me if I'm wrong, but the recent code removes from u-boot's proper DTS u-boot,dm-* properties. > > Reviewed-by: Bin Meng <bmeng.cn@gmail.com> > > Regards, > Bin Best regards, Lukasz Majewski -- DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: lukma@denx.de
> Subject: Re: [i.MX8MM+CCF 12/41] clk: fixed_rate: add pre reloc flag > > On Tue, 7 May 2019 13:29:41 +0000 > Peng Fan <peng.fan@nxp.com> wrote: > > > > Subject: Re: [i.MX8MM+CCF 12/41] clk: fixed_rate: add pre reloc flag > > > > > > On Tue, 30 Apr 2019 10:18:12 +0000 > > > Peng Fan <peng.fan@nxp.com> wrote: > > > > > > > Add pre reloc flag to use this driver before relocation > > > > > > > > Signed-off-by: Peng Fan <peng.fan@nxp.com> > > > > --- > > > > drivers/clk/clk_fixed_rate.c | 1 + > > > > 1 file changed, 1 insertion(+) > > > > > > > > diff --git a/drivers/clk/clk_fixed_rate.c > > > > b/drivers/clk/clk_fixed_rate.c index 069e643fbc..debada1463 100644 > > > > --- a/drivers/clk/clk_fixed_rate.c > > > > +++ b/drivers/clk/clk_fixed_rate.c > > > > @@ -45,4 +45,5 @@ U_BOOT_DRIVER(clk_fixed_rate) = { > > > > .ofdata_to_platdata = clk_fixed_rate_ofdata_to_platdata, > > > > .platdata_auto_alloc_size = sizeof(struct clk_fixed_rate), .ops > > > > = &clk_fixed_rate_ops, > > > > + .flags = DM_FLAG_PRE_RELOC, > > > > }; > > > > > > This probably shall be done with proper dts file (from TPC70 - imx6q > > > conversion code): > > > > My understanding is DM_FLAG_PRE_RELOC will let the driver could be > > used before relocation. > > I think that there is OR -> DM_FLAG_PRE_RELOC OR DTS attribute > (u-boot,dm-spl {pre-reloc}) to use device in early SPL. > > Please look into drivers/core/lists.c Line 175: > > if (pre_reloc_only) { > if (!dm_ofnode_pre_reloc(node)·&& > !(entry->flags & DM_FLAG_PRE_RELOC)) > return 0; > } ok, this is new code from Bin. According this code, only need dts change is enough, no need this driver flag. I'll drop this patch. Thanks, Peng. > > We do not bind device only if there is NO DM_FLAG_PRE_RELOC set AND the > u-boot,dm-* property is not set in corresponding DTS node. > > > The dts u-boot,dm-spl or u-boot,dm-pre-reloc is just to mark the > > device could be used at the corresponding stage. > > Only modify dts will not make it work without the DM_FLAG_PRE_RELOC, > > Right? > > > > Thanks, > > Peng. > > > > > > > > +#include "imx6qdl-u-boot.dtsi" > > > + > > > +/ { > > > + clocks { > > > + u-boot,dm-spl; > > > + osc { > > > + u-boot,dm-spl; > > > + }; > > > + }; > > > +}; > > > + > > > +&clks { > > > + u-boot,dm-pre-reloc; > > > +}; > > > > > > > > > > > > Best regards, > > > > > > Lukasz Majewski > > > > > > -- > > > > > > DENX Software Engineering GmbH, Managing Director: Wolfgang > > > Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, > > > Germany Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: > > > lukma@denx.de > > > > > Best regards, > > Lukasz Majewski > > -- > > DENX Software Engineering GmbH, Managing Director: Wolfgang Denk > HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany > Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: > lukma@denx.de
diff --git a/drivers/clk/clk_fixed_rate.c b/drivers/clk/clk_fixed_rate.c index 069e643fbc..debada1463 100644 --- a/drivers/clk/clk_fixed_rate.c +++ b/drivers/clk/clk_fixed_rate.c @@ -45,4 +45,5 @@ U_BOOT_DRIVER(clk_fixed_rate) = { .ofdata_to_platdata = clk_fixed_rate_ofdata_to_platdata, .platdata_auto_alloc_size = sizeof(struct clk_fixed_rate), .ops = &clk_fixed_rate_ops, + .flags = DM_FLAG_PRE_RELOC, };
Add pre reloc flag to use this driver before relocation Signed-off-by: Peng Fan <peng.fan@nxp.com> --- drivers/clk/clk_fixed_rate.c | 1 + 1 file changed, 1 insertion(+)