diff mbox

[U-Boot] board/t4240rdb: VID support

Message ID 1449725586-11028-1-git-send-email-ying.zhang@freescale.com
State Superseded
Delegated to: York Sun
Headers show

Commit Message

ying.zhang@freescale.com Dec. 10, 2015, 5:33 a.m. UTC
From: Ying Zhang <b40530@freescale.com>

The fuse status register provides the values from on-chip
voltage ID efuses programmed at the factory.
These values define the voltage requirements for
the chip. u-boot reads FUSESR and translates the values
into the appropriate commands to set the voltage output
value of an external voltage regulator.

Signed-off-by: Ying Zhang <b40530@freescale.com>
---
 board/freescale/common/vid.c     |  2 +-
 board/freescale/t4rdb/t4240rdb.c |  7 +++++++
 include/configs/T4240RDB.h       | 10 ++++++++++
 3 files changed, 18 insertions(+), 1 deletion(-)

Comments

York Sun Jan. 20, 2016, 10:26 p.m. UTC | #1
On 12/09/2015 11:00 PM, ying.zhang@freescale.com wrote:
> From: Ying Zhang <b40530@freescale.com>
> 
> The fuse status register provides the values from on-chip
> voltage ID efuses programmed at the factory.
> These values define the voltage requirements for
> the chip. u-boot reads FUSESR and translates the values
> into the appropriate commands to set the voltage output
> value of an external voltage regulator.
> 
> Signed-off-by: Ying Zhang <b40530@freescale.com>
> ---
>  board/freescale/common/vid.c     |  2 +-
>  board/freescale/t4rdb/t4240rdb.c |  7 +++++++
>  include/configs/T4240RDB.h       | 10 ++++++++++
>  3 files changed, 18 insertions(+), 1 deletion(-)
> 
> diff --git a/board/freescale/common/vid.c b/board/freescale/common/vid.c
> index f1bed51..571e105 100644
> --- a/board/freescale/common/vid.c
> +++ b/board/freescale/common/vid.c
> @@ -42,7 +42,7 @@ int __weak board_vdd_drop_compensation(void)
>   * The IR chip can show up under the following addresses:
>   * 0x08 (Verified on T1040RDB-PA,T4240RDB-PB,X-T4240RDB-16GPA)
>   * 0x09 (Verified on T1040RDB-PA)
> - * 0x38 (Verified on T2080QDS, T2081QDS)
> + * 0x38 (Verified on T2080QDS, T2081QDS, T4240RDB)
>   */
>  static int find_ir_chip_on_i2c(void)
>  {
> diff --git a/board/freescale/t4rdb/t4240rdb.c b/board/freescale/t4rdb/t4240rdb.c
> index fac442b..99a8730 100644
> --- a/board/freescale/t4rdb/t4240rdb.c
> +++ b/board/freescale/t4rdb/t4240rdb.c
> @@ -21,6 +21,7 @@
>  
>  #include "t4rdb.h"
>  #include "cpld.h"
> +#include "../common/vid.h"
>  
>  DECLARE_GLOBAL_DATA_PTR;
>  
> @@ -79,6 +80,12 @@ int board_early_init_r(void)
>  #ifdef CONFIG_SYS_DPAA_QBMAN
>  	setup_portals();
>  #endif
> +	/*
> +	 * Adjust core voltage according to voltage ID
> +	 * This function changes I2C mux to channel 2.
> +	*/
> +	if (adjust_vdd(0))
> +		printf("Warning: Adjusting core voltage failed.\n");
>  
>  	return 0;
>  }
> diff --git a/include/configs/T4240RDB.h b/include/configs/T4240RDB.h
> index 73279c8..4a17f41 100644
> --- a/include/configs/T4240RDB.h
> +++ b/include/configs/T4240RDB.h
> @@ -606,6 +606,16 @@ unsigned long get_board_ddr_clk(void);
>  #define I2C_VOL_MONITOR_BUS_V_OVF	0x1
>  #define I2C_VOL_MONITOR_BUS_V_SHIFT	3
>  
> +#define CONFIG_VID_FLS_ENV		"t4240rdb_vdd_mv"
> +#ifndef CONFIG_SPL_BUILD
> +#define CONFIG_VID
> +#endif
> +#define CONFIG_VOL_MONITOR_IR36021_SET
> +#define CONFIG_VOL_MONITOR_IR36021_READ
> +/* The lowest and highest voltage allowed for T4240RDB */
> +#define VDD_MV_MIN			819
> +#define VDD_MV_MAX			1212
> +
>  /*
>   * eSPI - Enhanced SPI
>   */
> 

Ying,

This patch looks OK but the board doesn't work. I traced the code to the first
setting voltage. The VID has 1025mV and current voltage is 1047mV. As soon as
the code drops voltage by one step, the board hangs. Please double check if the
voltage setting is correct. You can measure it on the board to confirm.

York
York Sun Jan. 20, 2016, 10:29 p.m. UTC | #2
On 01/20/2016 02:26 PM, york.sun@nxp.com wrote:

<snip>

> Ying,
> 
> This patch looks OK but the board doesn't work. I traced the code to the first
> setting voltage. The VID has 1025mV and current voltage is 1047mV. As soon as
> the code drops voltage by one step, the board hangs. Please double check if the
> voltage setting is correct. You can measure it on the board to confirm.
> 

I tested it on top of b57843e68804c2d53d2cff2b8b2238e37b388faa, with two boards.
The result is the same.

York
Zhang Ying-22455 Jan. 21, 2016, 2:05 a.m. UTC | #3
Hi, York,
	I know this issue. It's occurred because the IR chip on T4RDB worked on AMD mode, it can work well on INTEL mode.
	Nexcom will collect all the boards and set the IR chip to INTEL mode.
	Before that, What should we do?

	Thanks.

	

-----Original Message-----
From: york sun [mailto:york.sun@nxp.com] 
Sent: Thursday, January 21, 2016 6:29 AM
To: ying.zhang@freescale.com; u-boot@lists.denx.de
Subject: Re: [PATCH] board/t4240rdb: VID support

On 01/20/2016 02:26 PM, york.sun@nxp.com wrote:

<snip>

> Ying,
> 
> This patch looks OK but the board doesn't work. I traced the code to 
> the first setting voltage. The VID has 1025mV and current voltage is 
> 1047mV. As soon as the code drops voltage by one step, the board 
> hangs. Please double check if the voltage setting is correct. You can measure it on the board to confirm.
> 

I tested it on top of b57843e68804c2d53d2cff2b8b2238e37b388faa, with two boards.
The result is the same.

York
York Sun Jan. 21, 2016, 2:52 a.m. UTC | #4
Can software detect IR mode and support both? Or skip the vid part if the mode is not supported?

York


-------- Original Message --------
From: Ying Zhang <ying.zhang22455@nxp.com>
Sent: Wednesday, January 20, 2016 06:05 PM
To: york sun <york.sun@nxp.com>,ying.zhang@freescale.com,u-boot@lists.denx.de
Subject: RE: [PATCH] board/t4240rdb: VID support


Hi, York,
I know this issue. It's occurred because the IR chip on T4RDB worked on AMD mode, it can work well on INTEL mode.
Nexcom will collect all the boards and set the IR chip to INTEL mode.
Before that, What should we do?

Thanks.



-----Original Message-----
From: york sun [mailto:york.sun@nxp.com]
Sent: Thursday, January 21, 2016 6:29 AM
To: ying.zhang@freescale.com; u-boot@lists.denx.de
Subject: Re: [PATCH] board/t4240rdb: VID support

On 01/20/2016 02:26 PM, york.sun@nxp.com wrote:

<snip>

> Ying,
>
> This patch looks OK but the board doesn't work. I traced the code to
> the first setting voltage. The VID has 1025mV and current voltage is
> 1047mV. As soon as the code drops voltage by one step, the board
> hangs. Please double check if the voltage setting is correct. You can measure it on the board to confirm.
>

I tested it on top of b57843e68804c2d53d2cff2b8b2238e37b388faa, with two boards.
The result is the same.

York
Zhang Ying-22455 Jan. 21, 2016, 2:56 a.m. UTC | #5
Hi, York,
                All the boards are required to set to Intel mode. If it’s not in Intel mode, VID is not support.
                I have a look how to do.

                Thanks.

From: york sun

Sent: Thursday, January 21, 2016 10:53 AM
To: Ying Zhang; ying.zhang@freescale.com; u-boot@lists.denx.de
Subject: RE: [PATCH] board/t4240rdb: VID support


Can software detect IR mode and support both? Or skip the vid part if the mode is not supported?

York


-------- Original Message --------
From: Ying Zhang <ying.zhang22455@nxp.com<mailto:ying.zhang22455@nxp.com>>

Sent: Wednesday, January 20, 2016 06:05 PM
To: york sun <york.sun@nxp.com<mailto:york.sun@nxp.com>>,ying.zhang@freescale.com,u-boot@lists.denx.de
Subject: RE: [PATCH] board/t4240rdb: VID support

Hi, York,
I know this issue. It's occurred because the IR chip on T4RDB worked on AMD mode, it can work well on INTEL mode.
Nexcom will collect all the boards and set the IR chip to INTEL mode.
Before that, What should we do?

Thanks.



-----Original Message-----
From: york sun [mailto:york.sun@nxp.com]

Sent: Thursday, January 21, 2016 6:29 AM
To: ying.zhang@freescale.com<mailto:ying.zhang@freescale.com>; u-boot@lists.denx.de<mailto:u-boot@lists.denx.de>
Subject: Re: [PATCH] board/t4240rdb: VID support

On 01/20/2016 02:26 PM, york.sun@nxp.com<mailto:york.sun@nxp.com> wrote:

<snip>

> Ying,

>

> This patch looks OK but the board doesn't work. I traced the code to

> the first setting voltage. The VID has 1025mV and current voltage is

> 1047mV. As soon as the code drops voltage by one step, the board

> hangs. Please double check if the voltage setting is correct. You can measure it on the board to confirm.

>


I tested it on top of b57843e68804c2d53d2cff2b8b2238e37b388faa, with two boards.
The result is the same.

York
diff mbox

Patch

diff --git a/board/freescale/common/vid.c b/board/freescale/common/vid.c
index f1bed51..571e105 100644
--- a/board/freescale/common/vid.c
+++ b/board/freescale/common/vid.c
@@ -42,7 +42,7 @@  int __weak board_vdd_drop_compensation(void)
  * The IR chip can show up under the following addresses:
  * 0x08 (Verified on T1040RDB-PA,T4240RDB-PB,X-T4240RDB-16GPA)
  * 0x09 (Verified on T1040RDB-PA)
- * 0x38 (Verified on T2080QDS, T2081QDS)
+ * 0x38 (Verified on T2080QDS, T2081QDS, T4240RDB)
  */
 static int find_ir_chip_on_i2c(void)
 {
diff --git a/board/freescale/t4rdb/t4240rdb.c b/board/freescale/t4rdb/t4240rdb.c
index fac442b..99a8730 100644
--- a/board/freescale/t4rdb/t4240rdb.c
+++ b/board/freescale/t4rdb/t4240rdb.c
@@ -21,6 +21,7 @@ 
 
 #include "t4rdb.h"
 #include "cpld.h"
+#include "../common/vid.h"
 
 DECLARE_GLOBAL_DATA_PTR;
 
@@ -79,6 +80,12 @@  int board_early_init_r(void)
 #ifdef CONFIG_SYS_DPAA_QBMAN
 	setup_portals();
 #endif
+	/*
+	 * Adjust core voltage according to voltage ID
+	 * This function changes I2C mux to channel 2.
+	*/
+	if (adjust_vdd(0))
+		printf("Warning: Adjusting core voltage failed.\n");
 
 	return 0;
 }
diff --git a/include/configs/T4240RDB.h b/include/configs/T4240RDB.h
index 73279c8..4a17f41 100644
--- a/include/configs/T4240RDB.h
+++ b/include/configs/T4240RDB.h
@@ -606,6 +606,16 @@  unsigned long get_board_ddr_clk(void);
 #define I2C_VOL_MONITOR_BUS_V_OVF	0x1
 #define I2C_VOL_MONITOR_BUS_V_SHIFT	3
 
+#define CONFIG_VID_FLS_ENV		"t4240rdb_vdd_mv"
+#ifndef CONFIG_SPL_BUILD
+#define CONFIG_VID
+#endif
+#define CONFIG_VOL_MONITOR_IR36021_SET
+#define CONFIG_VOL_MONITOR_IR36021_READ
+/* The lowest and highest voltage allowed for T4240RDB */
+#define VDD_MV_MIN			819
+#define VDD_MV_MAX			1212
+
 /*
  * eSPI - Enhanced SPI
  */