* [U-Boot] [PATCH 2/2] mx6sxsabresd: Add thermal support
@ 2014-11-25 15:11 Fabio Estevam
2014-11-25 15:11 ` [U-Boot] [PATCH 1/2] mxc_ocotp: Do not disable the OCOTP clock after every access Fabio Estevam
2014-12-01 9:36 ` [U-Boot] [PATCH 2/2] mx6sxsabresd: Add thermal support Stefano Babic
0 siblings, 2 replies; 7+ messages in thread
From: Fabio Estevam @ 2014-11-25 15:11 UTC (permalink / raw)
To: u-boot
Add thermal support so that the temperature of the chip can be displayed on
boot:
U-Boot 2015.01-rc1-18268-g1366c05-dirty (Nov 25 2014 - 13:02:42)
CPU: Freescale i.MX6SX rev1.0 at 792 MHz
CPU: Temperature 50 C
Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
---
include/configs/mx6sxsabresd.h | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/include/configs/mx6sxsabresd.h b/include/configs/mx6sxsabresd.h
index d8ab291..5e0edab 100644
--- a/include/configs/mx6sxsabresd.h
+++ b/include/configs/mx6sxsabresd.h
@@ -208,6 +208,16 @@
#define CONFIG_PCIE_IMX_POWER_GPIO IMX_GPIO_NR(2, 1)
#endif
+#define CONFIG_DM
+#define CONFIG_DM_THERMAL
+#define CONFIG_SYS_MALLOC_F_LEN (1 << 10)
+#define CONFIG_IMX6_THERMAL
+
+#define CONFIG_CMD_FUSE
+#if defined(CONFIG_CMD_FUSE) || defined(CONFIG_IMX6_THERMAL)
+#define CONFIG_MXC_OCOTP
+#endif
+
/* FLASH and environment organization */
#define CONFIG_SYS_NO_FLASH
--
1.9.1
^ permalink raw reply related [flat|nested] 7+ messages in thread* [U-Boot] [PATCH 1/2] mxc_ocotp: Do not disable the OCOTP clock after every access 2014-11-25 15:11 [U-Boot] [PATCH 2/2] mx6sxsabresd: Add thermal support Fabio Estevam @ 2014-11-25 15:11 ` Fabio Estevam 2014-11-25 19:48 ` Benoît Thébaudeau 2014-12-01 9:36 ` Stefano Babic 2014-12-01 9:36 ` [U-Boot] [PATCH 2/2] mx6sxsabresd: Add thermal support Stefano Babic 1 sibling, 2 replies; 7+ messages in thread From: Fabio Estevam @ 2014-11-25 15:11 UTC (permalink / raw) To: u-boot Leave the OCOTP turned on, so that we subsequent access do not fail. After enabling the thermal driver on a mx6sxsabresd board: U-Boot 2015.01-rc1-18267-g99d4189-dirty (Nov 24 2014 - 12:59:01) CPU: Freescale i.MX6SX rev1.0 at 792 MHz CPU: Temperature 48 C Reset cause: POR Board: MX6SX SABRE SDB I2C: ready DRAM: 1 GiB PMIC: PFUZE100 ID=0x10 MMC: FSL_SDHC: 0, FSL_SDHC: 1, FSL_SDHC: 2 00:01.0 - 16c3:abcd - Bridge device 01:00.0 - 8086:08b1 - Network controller In: serial Out: serial Err: serial Net: (hang) As the thermal driver accesses the ocotp registers, its clock will be disabled afterwards. Then when the MAC address is read (also from ocotp registers) it will cause a hang. Do not disable the ocotp clock to prevent this problem. Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com> --- drivers/misc/mxc_ocotp.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/drivers/misc/mxc_ocotp.c b/drivers/misc/mxc_ocotp.c index 3de1245..67f9429 100644 --- a/drivers/misc/mxc_ocotp.c +++ b/drivers/misc/mxc_ocotp.c @@ -81,8 +81,6 @@ static int finish_access(struct ocotp_regs *regs, const char *caller) err = !!(readl(®s->ctrl) & BM_CTRL_ERROR); clear_error(regs); - enable_ocotp_clk(0); - if (err) { printf("mxc_ocotp %s(): Access protect error\n", caller); return -EIO; -- 1.9.1 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* [U-Boot] [PATCH 1/2] mxc_ocotp: Do not disable the OCOTP clock after every access 2014-11-25 15:11 ` [U-Boot] [PATCH 1/2] mxc_ocotp: Do not disable the OCOTP clock after every access Fabio Estevam @ 2014-11-25 19:48 ` Benoît Thébaudeau 2014-11-25 19:56 ` Fabio Estevam 2014-12-01 9:36 ` Stefano Babic 1 sibling, 1 reply; 7+ messages in thread From: Benoît Thébaudeau @ 2014-11-25 19:48 UTC (permalink / raw) To: u-boot Hi Fabio, On Tue, Nov 25, 2014 at 4:11 PM, Fabio Estevam <fabio.estevam@freescale.com> wrote: > Leave the OCOTP turned on, so that we subsequent access do not fail. > > After enabling the thermal driver on a mx6sxsabresd board: > > U-Boot 2015.01-rc1-18267-g99d4189-dirty (Nov 24 2014 - 12:59:01) > > CPU: Freescale i.MX6SX rev1.0 at 792 MHz > CPU: Temperature 48 C > Reset cause: POR > Board: MX6SX SABRE SDB > I2C: ready > DRAM: 1 GiB > PMIC: PFUZE100 ID=0x10 > MMC: FSL_SDHC: 0, FSL_SDHC: 1, FSL_SDHC: 2 > 00:01.0 - 16c3:abcd - Bridge device > 01:00.0 - 8086:08b1 - Network controller > In: serial > Out: serial > Err: serial > Net: > (hang) > > As the thermal driver accesses the ocotp registers, its clock will be disabled > afterwards. > > Then when the MAC address is read (also from ocotp registers) it will cause a > hang. > > Do not disable the ocotp clock to prevent this problem. > > Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com> > --- > drivers/misc/mxc_ocotp.c | 2 -- > 1 file changed, 2 deletions(-) > > diff --git a/drivers/misc/mxc_ocotp.c b/drivers/misc/mxc_ocotp.c > index 3de1245..67f9429 100644 > --- a/drivers/misc/mxc_ocotp.c > +++ b/drivers/misc/mxc_ocotp.c > @@ -81,8 +81,6 @@ static int finish_access(struct ocotp_regs *regs, const char *caller) > err = !!(readl(®s->ctrl) & BM_CTRL_ERROR); > clear_error(regs); > > - enable_ocotp_clk(0); > - > if (err) { > printf("mxc_ocotp %s(): Access protect error\n", caller); > return -EIO; That, or: - Make imx_get_mac_from_fuse() call enable_ocotp_clk(1) before reading the fuses, then call enable_ocotp_clk(0). - Make enable_ocotp_clk() return the clock initial state and store it in prepare_access(), then restore it in finish_access(). Same in imx_get_mac_from_fuse(). Which of these 3 choices do you think would be the best? Regards, Beno?t ^ permalink raw reply [flat|nested] 7+ messages in thread
* [U-Boot] [PATCH 1/2] mxc_ocotp: Do not disable the OCOTP clock after every access 2014-11-25 19:48 ` Benoît Thébaudeau @ 2014-11-25 19:56 ` Fabio Estevam 2014-11-25 20:13 ` Benoît Thébaudeau 0 siblings, 1 reply; 7+ messages in thread From: Fabio Estevam @ 2014-11-25 19:56 UTC (permalink / raw) To: u-boot Hi Beno?t, On Tue, Nov 25, 2014 at 5:48 PM, Beno?t Th?baudeau <benoit.thebaudeau.dev@gmail.com> wrote: > That, or: > - Make imx_get_mac_from_fuse() call enable_ocotp_clk(1) before > reading the fuses, then call enable_ocotp_clk(0). Yes, I started with this exact same approach as well. It works, but Nitin told me he also had similiar issues with hab. Other issue I see with such approach is that if people would try to read the ocotp registers manually in the U-boot prompt (via md.l command), then they will also get a hang. > - Make enable_ocotp_clk() return the clock initial state and store it > in prepare_access(), then restore it in finish_access(). Same in > imx_get_mac_from_fuse(). This would work as well, but with some more complexity. Still would cause the hang via manual readings. > Which of these 3 choices do you think would be the best? I think the simplest one and the one that would be more general would be the one proposed by this patch. Regards, Fabio Estevam ^ permalink raw reply [flat|nested] 7+ messages in thread
* [U-Boot] [PATCH 1/2] mxc_ocotp: Do not disable the OCOTP clock after every access 2014-11-25 19:56 ` Fabio Estevam @ 2014-11-25 20:13 ` Benoît Thébaudeau 0 siblings, 0 replies; 7+ messages in thread From: Benoît Thébaudeau @ 2014-11-25 20:13 UTC (permalink / raw) To: u-boot Hi Fabio, On Tue, Nov 25, 2014 at 8:56 PM, Fabio Estevam <festevam@gmail.com> wrote: > On Tue, Nov 25, 2014 at 5:48 PM, Beno?t Th?baudeau > <benoit.thebaudeau.dev@gmail.com> wrote: > >> That, or: >> - Make imx_get_mac_from_fuse() call enable_ocotp_clk(1) before >> reading the fuses, then call enable_ocotp_clk(0). > > Yes, I started with this exact same approach as well. It works, but > Nitin told me he also had similiar issues with hab. > > Other issue I see with such approach is that if people would try to > read the ocotp registers manually in the U-boot prompt (via md.l > command), then they will also get a hang. If users access the OCOTP registers manually, they can also enable the OCOTP clock in the corresponding register beforehand, even if this complicates things. >> - Make enable_ocotp_clk() return the clock initial state and store it >> in prepare_access(), then restore it in finish_access(). Same in >> imx_get_mac_from_fuse(). > > This would work as well, but with some more complexity. Still would > cause the hang via manual readings. > >> Which of these 3 choices do you think would be the best? > > I think the simplest one and the one that would be more general would > be the one proposed by this patch. The only possible issue that I see with leaving the OCOTP clock enabled is the risk of inadvertently writing the fuses, either in U-Boot or in the booted OS. That being said, Freescale advise against leaving the fuses powered for production boards, in which cases there is no such risk. Reviewed-by: Beno?t Th?baudeau <benoit.thebaudeau.dev@gmail.com> Regards, Beno?t ^ permalink raw reply [flat|nested] 7+ messages in thread
* [U-Boot] [PATCH 1/2] mxc_ocotp: Do not disable the OCOTP clock after every access 2014-11-25 15:11 ` [U-Boot] [PATCH 1/2] mxc_ocotp: Do not disable the OCOTP clock after every access Fabio Estevam 2014-11-25 19:48 ` Benoît Thébaudeau @ 2014-12-01 9:36 ` Stefano Babic 1 sibling, 0 replies; 7+ messages in thread From: Stefano Babic @ 2014-12-01 9:36 UTC (permalink / raw) To: u-boot On 25/11/2014 16:11, Fabio Estevam wrote: > Leave the OCOTP turned on, so that we subsequent access do not fail. > > After enabling the thermal driver on a mx6sxsabresd board: > > U-Boot 2015.01-rc1-18267-g99d4189-dirty (Nov 24 2014 - 12:59:01) > > CPU: Freescale i.MX6SX rev1.0 at 792 MHz > CPU: Temperature 48 C > Reset cause: POR > Board: MX6SX SABRE SDB > I2C: ready > DRAM: 1 GiB > PMIC: PFUZE100 ID=0x10 > MMC: FSL_SDHC: 0, FSL_SDHC: 1, FSL_SDHC: 2 > 00:01.0 - 16c3:abcd - Bridge device > 01:00.0 - 8086:08b1 - Network controller > In: serial > Out: serial > Err: serial > Net: > (hang) > > As the thermal driver accesses the ocotp registers, its clock will be disabled > afterwards. > > Then when the MAC address is read (also from ocotp registers) it will cause a > hang. > > Do not disable the ocotp clock to prevent this problem. > > Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com> > --- > drivers/misc/mxc_ocotp.c | 2 -- > 1 file changed, 2 deletions(-) > > diff --git a/drivers/misc/mxc_ocotp.c b/drivers/misc/mxc_ocotp.c > index 3de1245..67f9429 100644 > --- a/drivers/misc/mxc_ocotp.c > +++ b/drivers/misc/mxc_ocotp.c > @@ -81,8 +81,6 @@ static int finish_access(struct ocotp_regs *regs, const char *caller) > err = !!(readl(®s->ctrl) & BM_CTRL_ERROR); > clear_error(regs); > > - enable_ocotp_clk(0); > - > if (err) { > printf("mxc_ocotp %s(): Access protect error\n", caller); > return -EIO; > Applied to u-boot-imx, thanks ! Best regards, Stefano Babic -- ===================================================================== DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de ===================================================================== ^ permalink raw reply [flat|nested] 7+ messages in thread
* [U-Boot] [PATCH 2/2] mx6sxsabresd: Add thermal support 2014-11-25 15:11 [U-Boot] [PATCH 2/2] mx6sxsabresd: Add thermal support Fabio Estevam 2014-11-25 15:11 ` [U-Boot] [PATCH 1/2] mxc_ocotp: Do not disable the OCOTP clock after every access Fabio Estevam @ 2014-12-01 9:36 ` Stefano Babic 1 sibling, 0 replies; 7+ messages in thread From: Stefano Babic @ 2014-12-01 9:36 UTC (permalink / raw) To: u-boot On 25/11/2014 16:11, Fabio Estevam wrote: > Add thermal support so that the temperature of the chip can be displayed on > boot: > > U-Boot 2015.01-rc1-18268-g1366c05-dirty (Nov 25 2014 - 13:02:42) > > CPU: Freescale i.MX6SX rev1.0 at 792 MHz > CPU: Temperature 50 C > > Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com> > --- > include/configs/mx6sxsabresd.h | 10 ++++++++++ > 1 file changed, 10 insertions(+) > > diff --git a/include/configs/mx6sxsabresd.h b/include/configs/mx6sxsabresd.h > index d8ab291..5e0edab 100644 > --- a/include/configs/mx6sxsabresd.h > +++ b/include/configs/mx6sxsabresd.h > @@ -208,6 +208,16 @@ > #define CONFIG_PCIE_IMX_POWER_GPIO IMX_GPIO_NR(2, 1) > #endif > > +#define CONFIG_DM > +#define CONFIG_DM_THERMAL > +#define CONFIG_SYS_MALLOC_F_LEN (1 << 10) > +#define CONFIG_IMX6_THERMAL > + > +#define CONFIG_CMD_FUSE > +#if defined(CONFIG_CMD_FUSE) || defined(CONFIG_IMX6_THERMAL) > +#define CONFIG_MXC_OCOTP > +#endif > + > /* FLASH and environment organization */ > #define CONFIG_SYS_NO_FLASH > > Applied to u-boot-imx, thanks ! Best regards, Stefano Babic -- ===================================================================== DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de ===================================================================== ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2014-12-01 9:36 UTC | newest] Thread overview: 7+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2014-11-25 15:11 [U-Boot] [PATCH 2/2] mx6sxsabresd: Add thermal support Fabio Estevam 2014-11-25 15:11 ` [U-Boot] [PATCH 1/2] mxc_ocotp: Do not disable the OCOTP clock after every access Fabio Estevam 2014-11-25 19:48 ` Benoît Thébaudeau 2014-11-25 19:56 ` Fabio Estevam 2014-11-25 20:13 ` Benoît Thébaudeau 2014-12-01 9:36 ` Stefano Babic 2014-12-01 9:36 ` [U-Boot] [PATCH 2/2] mx6sxsabresd: Add thermal support Stefano Babic
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox