All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH V3 1/9] uclass: cpu: Add new API to get udevice for current CPU
@ 2020-05-03 13:58 Peng Fan
  2020-05-03 13:58 ` [PATCH V3 2/9] cpu: sandbox: support is_current Peng Fan
                   ` (8 more replies)
  0 siblings, 9 replies; 18+ messages in thread
From: Peng Fan @ 2020-05-03 13:58 UTC (permalink / raw)
  To: u-boot

When running on SoC with multiple clusters, the boot CPU may
not be fixed, saying booting from cluster A or cluster B.
Add a API that can return the udevice for current boot CPU.
Cpu driver needs to implement is_current_cpu interface for this
feature, otherwise the API only returns the first udevice in
cpu uclass.

Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Ye Li <ye.li@nxp.com>
---
V3:
 Drop ops check. Add R-b

V2:
 Per Simon's comment,
  - Add cpu_is_current
  - use uclass_foreach_dev_probe
  - Update code comment


 drivers/cpu/cpu-uclass.c | 34 ++++++++++++++++++++++++++++++++++
 include/cpu.h            | 23 +++++++++++++++++++++++
 2 files changed, 57 insertions(+)

diff --git a/drivers/cpu/cpu-uclass.c b/drivers/cpu/cpu-uclass.c
index 457f77b7c8..8352e2eb0b 100644
--- a/drivers/cpu/cpu-uclass.c
+++ b/drivers/cpu/cpu-uclass.c
@@ -10,6 +10,7 @@
 #include <errno.h>
 #include <dm/lists.h>
 #include <dm/root.h>
+#include <linux/err.h>
 
 int cpu_probe_all(void)
 {
@@ -34,6 +35,39 @@ int cpu_probe_all(void)
 	return 0;
 }
 
+int cpu_is_current(struct udevice *cpu)
+{
+	struct cpu_ops *ops = cpu_get_ops(cpu);
+
+	if (ops->is_current) {
+		if (ops->is_current(cpu))
+			return 1;
+	}
+
+	return -ENOSYS;
+}
+
+struct udevice *cpu_get_current_dev(void)
+{
+	struct udevice *cpu;
+	int ret;
+
+	uclass_foreach_dev_probe(UCLASS_CPU, cpu) {
+		if (cpu_is_current(cpu) > 0)
+			return cpu;
+	}
+
+	/* If can't find current cpu device, use the first dev instead */
+	ret = uclass_first_device_err(UCLASS_CPU, &cpu);
+	if (ret) {
+		debug("%s: Could not get CPU device (err = %d)\n",
+		      __func__, ret);
+		return NULL;
+	}
+
+	return cpu;
+}
+
 int cpu_get_desc(struct udevice *dev, char *buf, int size)
 {
 	struct cpu_ops *ops = cpu_get_ops(dev);
diff --git a/include/cpu.h b/include/cpu.h
index 6b1b6b37b3..2f283fe244 100644
--- a/include/cpu.h
+++ b/include/cpu.h
@@ -89,6 +89,15 @@ struct cpu_ops {
 	 * @return 0 if OK, -ENOSPC if buffer is too small, other -ve on error
 	 */
 	int (*get_vendor)(struct udevice *dev, char *buf, int size);
+
+	/**
+	 * is_current() - Check if the CPU that U-Boot is currently running from
+	 *
+	 * @dev:	Device to check (UCLASS_CPU)
+	 * @return 1 if the CPU that U-Boot is currently running from, 0
+	 *         if not.
+	 */
+	int (*is_current)(struct udevice *dev);
 };
 
 #define cpu_get_ops(dev)        ((struct cpu_ops *)(dev)->driver->ops)
@@ -137,4 +146,18 @@ int cpu_get_vendor(struct udevice *dev, char *buf, int size);
  */
 int cpu_probe_all(void);
 
+/**
+ * cpu_is_current() - Check if the CPU that U-Boot is currently running from
+ *
+ * Return: 1 if yes, - 0 if not
+ */
+int cpu_is_current(struct udevice *cpu);
+
+/**
+ * cpu_get_current_dev() - Get CPU udevice for current CPU
+ *
+ * Return: udevice if OK, - NULL on error
+ */
+struct udevice *cpu_get_current_dev(void);
+
 #endif
-- 
2.16.4

^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH V3 2/9] cpu: sandbox: support is_current
  2020-05-03 13:58 [PATCH V3 1/9] uclass: cpu: Add new API to get udevice for current CPU Peng Fan
@ 2020-05-03 13:58 ` Peng Fan
  2020-05-04  7:35   ` sbabic at denx.de
  2020-05-03 13:58 ` [PATCH V3 3/9] test: cpu: test current cpu Peng Fan
                   ` (7 subsequent siblings)
  8 siblings, 1 reply; 18+ messages in thread
From: Peng Fan @ 2020-05-03 13:58 UTC (permalink / raw)
  To: u-boot

Support querying whether U-Boot is running on current cpu

Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
---
V3:
 Add R-b
V2:
 New

 drivers/cpu/cpu_sandbox.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/drivers/cpu/cpu_sandbox.c b/drivers/cpu/cpu_sandbox.c
index 05b384f6a4..30a12e5a53 100644
--- a/drivers/cpu/cpu_sandbox.c
+++ b/drivers/cpu/cpu_sandbox.c
@@ -36,11 +36,20 @@ int cpu_sandbox_get_vendor(struct udevice *dev, char *buf, int size)
 	return 0;
 }
 
+int cpu_sandbox_is_current(struct udevice *dev)
+{
+	if (!strcmp(dev->name, "cpu-test1"))
+		return 1;
+
+	return 0;
+}
+
 static const struct cpu_ops cpu_sandbox_ops = {
 	.get_desc = cpu_sandbox_get_desc,
 	.get_info = cpu_sandbox_get_info,
 	.get_count = cpu_sandbox_get_count,
 	.get_vendor = cpu_sandbox_get_vendor,
+	.is_current = cpu_sandbox_is_current,
 };
 
 int cpu_sandbox_probe(struct udevice *dev)
-- 
2.16.4

^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH V3 3/9] test: cpu: test current cpu
  2020-05-03 13:58 [PATCH V3 1/9] uclass: cpu: Add new API to get udevice for current CPU Peng Fan
  2020-05-03 13:58 ` [PATCH V3 2/9] cpu: sandbox: support is_current Peng Fan
@ 2020-05-03 13:58 ` Peng Fan
  2020-05-04  7:34   ` sbabic at denx.de
  2020-05-03 13:58 ` [PATCH V3 4/9] common: board_f: Use cpu_get_current_dev in print_cpuinfo Peng Fan
                   ` (6 subsequent siblings)
  8 siblings, 1 reply; 18+ messages in thread
From: Peng Fan @ 2020-05-03 13:58 UTC (permalink / raw)
  To: u-boot

Add test whether the CPU is U-Boot is running from.

Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
---
V3:
 Add R-b tag
V2:
 New

 test/dm/cpu.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/test/dm/cpu.c b/test/dm/cpu.c
index e6dc576ea3..def9b64a28 100644
--- a/test/dm/cpu.c
+++ b/test/dm/cpu.c
@@ -26,6 +26,8 @@ static int dm_test_cpu(struct unit_test_state *uts)
 		ut_assert(dev->flags & DM_FLAG_ACTIVATED);
 
 	ut_assertok(uclass_get_device_by_name(UCLASS_CPU, "cpu-test1", &dev));
+	ut_asserteq_ptr(cpu_get_current_dev(), dev);
+	ut_asserteq(cpu_is_current(dev), 1);
 
 	ut_assertok(cpu_get_desc(dev, text, sizeof(text)));
 	ut_assertok(strcmp(text, "LEG Inc. SuperMegaUltraTurbo CPU No. 1"));
-- 
2.16.4

^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH V3 4/9] common: board_f: Use cpu_get_current_dev in print_cpuinfo
  2020-05-03 13:58 [PATCH V3 1/9] uclass: cpu: Add new API to get udevice for current CPU Peng Fan
  2020-05-03 13:58 ` [PATCH V3 2/9] cpu: sandbox: support is_current Peng Fan
  2020-05-03 13:58 ` [PATCH V3 3/9] test: cpu: test current cpu Peng Fan
@ 2020-05-03 13:58 ` Peng Fan
  2020-05-04  7:34   ` sbabic at denx.de
  2020-05-03 13:58 ` [PATCH V3 5/9] cpu: imx8: reimplement get cpu count Peng Fan
                   ` (5 subsequent siblings)
  8 siblings, 1 reply; 18+ messages in thread
From: Peng Fan @ 2020-05-03 13:58 UTC (permalink / raw)
  To: u-boot

From: Ye Li <ye.li@nxp.com>

Current print_cpuinfo gets the first udevice in CPU class to return
the cpu info. This has problem if the boot CPU is not fixed.

Changing to use new API cpu_get_current_dev to fix the issue.

Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Ye Li <ye.li@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
---

V3:
 None
V2:
 None

 common/board_f.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/common/board_f.c b/common/board_f.c
index 5c650f046c..5223453511 100644
--- a/common/board_f.c
+++ b/common/board_f.c
@@ -183,11 +183,11 @@ static int print_cpuinfo(void)
 	char desc[512];
 	int ret;
 
-	ret = uclass_first_device_err(UCLASS_CPU, &dev);
-	if (ret) {
-		debug("%s: Could not get CPU device (err = %d)\n",
-		      __func__, ret);
-		return ret;
+	dev = cpu_get_current_dev();
+	if (!dev) {
+		debug("%s: Could not get CPU device\n",
+		      __func__);
+		return -ENODEV;
 	}
 
 	ret = cpu_get_desc(dev, desc, sizeof(desc));
-- 
2.16.4

^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH V3 5/9] cpu: imx8: reimplement get cpu count
  2020-05-03 13:58 [PATCH V3 1/9] uclass: cpu: Add new API to get udevice for current CPU Peng Fan
                   ` (2 preceding siblings ...)
  2020-05-03 13:58 ` [PATCH V3 4/9] common: board_f: Use cpu_get_current_dev in print_cpuinfo Peng Fan
@ 2020-05-03 13:58 ` Peng Fan
  2020-05-04  7:34   ` sbabic at denx.de
  2020-05-03 13:58 ` [PATCH V3 6/9] cpu: imx8: support a72 as boot cpu Peng Fan
                   ` (4 subsequent siblings)
  8 siblings, 1 reply; 18+ messages in thread
From: Peng Fan @ 2020-05-03 13:58 UTC (permalink / raw)
  To: u-boot

Return 4 is not correct on i.MX8DX/DXL/8QM and etc. we need to count
available cpu node with device_type "cpu".

Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
---

V3:
 None
V2:
 Add R-b tag

 drivers/cpu/imx8_cpu.c | 19 ++++++++++++++++++-
 1 file changed, 18 insertions(+), 1 deletion(-)

diff --git a/drivers/cpu/imx8_cpu.c b/drivers/cpu/imx8_cpu.c
index 95653683ac..7c54c290b8 100644
--- a/drivers/cpu/imx8_cpu.c
+++ b/drivers/cpu/imx8_cpu.c
@@ -118,7 +118,24 @@ static int cpu_imx_get_info(struct udevice *dev, struct cpu_info *info)
 
 static int cpu_imx_get_count(struct udevice *dev)
 {
-	return 4;
+	ofnode node;
+	int num = 0;
+
+	ofnode_for_each_subnode(node, dev_ofnode(dev->parent)) {
+		const char *device_type;
+
+		if (!ofnode_is_available(node))
+			continue;
+
+		device_type = ofnode_read_string(node, "device_type");
+		if (!device_type)
+			continue;
+
+		if (!strcmp(device_type, "cpu"))
+			num++;
+	}
+
+	return num;
 }
 
 static int cpu_imx_get_vendor(struct udevice *dev,  char *buf, int size)
-- 
2.16.4

^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH V3 6/9] cpu: imx8: support a72 as boot cpu
  2020-05-03 13:58 [PATCH V3 1/9] uclass: cpu: Add new API to get udevice for current CPU Peng Fan
                   ` (3 preceding siblings ...)
  2020-05-03 13:58 ` [PATCH V3 5/9] cpu: imx8: reimplement get cpu count Peng Fan
@ 2020-05-03 13:58 ` Peng Fan
  2020-05-04  7:35   ` sbabic at denx.de
  2020-05-03 13:58 ` [PATCH V3 7/9] cpu: imx8: fix get core name and rate Peng Fan
                   ` (3 subsequent siblings)
  8 siblings, 1 reply; 18+ messages in thread
From: Peng Fan @ 2020-05-03 13:58 UTC (permalink / raw)
  To: u-boot

Support booting i.MX8QM with A72 as boot cpu

Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
---
V3:
 None
V2:
 Add R-b tag

 drivers/cpu/imx8_cpu.c | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/drivers/cpu/imx8_cpu.c b/drivers/cpu/imx8_cpu.c
index 7c54c290b8..c4679e1642 100644
--- a/drivers/cpu/imx8_cpu.c
+++ b/drivers/cpu/imx8_cpu.c
@@ -20,6 +20,7 @@ struct cpu_imx_platdata {
 	const char *type;
 	u32 cpurev;
 	u32 freq_mhz;
+	u32 mpidr;
 };
 
 const char *get_imx8_type(u32 imxtype)
@@ -144,16 +145,28 @@ static int cpu_imx_get_vendor(struct udevice *dev,  char *buf, int size)
 	return 0;
 }
 
+static int cpu_imx_is_current(struct udevice *dev)
+{
+	struct cpu_imx_platdata *plat = dev_get_platdata(dev);
+
+	if (plat->mpidr == (read_mpidr() & 0xffff))
+		return 1;
+
+	return 0;
+}
+
 static const struct cpu_ops cpu_imx8_ops = {
 	.get_desc	= cpu_imx_get_desc,
 	.get_info	= cpu_imx_get_info,
 	.get_count	= cpu_imx_get_count,
 	.get_vendor	= cpu_imx_get_vendor,
+	.is_current	= cpu_imx_is_current,
 };
 
 static const struct udevice_id cpu_imx8_ids[] = {
 	{ .compatible = "arm,cortex-a35" },
 	{ .compatible = "arm,cortex-a53" },
+	{ .compatible = "arm,cortex-a72" },
 	{ }
 };
 
@@ -185,6 +198,12 @@ static int imx8_cpu_probe(struct udevice *dev)
 	plat->rev = get_imx8_rev(cpurev & 0xFFF);
 	plat->type = get_imx8_type((cpurev & 0xFF000) >> 12);
 	plat->freq_mhz = imx8_get_cpu_rate() / 1000000;
+	plat->mpidr = dev_read_addr(dev);
+	if (plat->mpidr == FDT_ADDR_T_NONE) {
+		printf("%s: Failed to get CPU reg property\n", __func__);
+		return -EINVAL;
+	}
+
 	return 0;
 }
 
-- 
2.16.4

^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH V3 7/9] cpu: imx8: fix get core name and rate
  2020-05-03 13:58 [PATCH V3 1/9] uclass: cpu: Add new API to get udevice for current CPU Peng Fan
                   ` (4 preceding siblings ...)
  2020-05-03 13:58 ` [PATCH V3 6/9] cpu: imx8: support a72 as boot cpu Peng Fan
@ 2020-05-03 13:58 ` Peng Fan
  2020-05-04  7:35   ` sbabic at denx.de
  2020-05-03 13:58 ` [PATCH V3 8/9] cpu: imx_cpu: Print the CPU temperature for iMX8QM A72 Peng Fan
                   ` (2 subsequent siblings)
  8 siblings, 1 reply; 18+ messages in thread
From: Peng Fan @ 2020-05-03 13:58 UTC (permalink / raw)
  To: u-boot

When current cpu is A53, using is_cortex_a53 could not detect A72
information, so check cpu device compatible property to get
the correct information.

Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
---
V3:
 None
V2:
 Add R-b tag

 drivers/cpu/imx8_cpu.c | 27 +++++++++++++++++----------
 1 file changed, 17 insertions(+), 10 deletions(-)

diff --git a/drivers/cpu/imx8_cpu.c b/drivers/cpu/imx8_cpu.c
index c4679e1642..cd11b78d06 100644
--- a/drivers/cpu/imx8_cpu.c
+++ b/drivers/cpu/imx8_cpu.c
@@ -48,13 +48,13 @@ const char *get_imx8_rev(u32 rev)
 	}
 }
 
-const char *get_core_name(void)
+const char *get_core_name(struct udevice *dev)
 {
-	if (is_cortex_a35())
+	if (!device_is_compatible(dev, "arm,cortex-a35"))
 		return "A35";
-	else if (is_cortex_a53())
+	else if (!device_is_compatible(dev, "arm,cortex-a53"))
 		return "A53";
-	else if (is_cortex_a72())
+	else if (!device_is_compatible(dev, "arm,cortex-a72"))
 		return "A72";
 	else
 		return "?";
@@ -170,12 +170,19 @@ static const struct udevice_id cpu_imx8_ids[] = {
 	{ }
 };
 
-static ulong imx8_get_cpu_rate(void)
+static ulong imx8_get_cpu_rate(struct udevice *dev)
 {
 	ulong rate;
-	int ret;
-	int type = is_cortex_a35() ? SC_R_A35 : is_cortex_a53() ?
-		   SC_R_A53 : SC_R_A72;
+	int ret, type;
+
+	if (!device_is_compatible(dev, "arm,cortex-a35"))
+		type = SC_R_A35;
+	else if (!device_is_compatible(dev, "arm,cortex-a53"))
+		type = SC_R_A53;
+	else if (!device_is_compatible(dev, "arm,cortex-a72"))
+		type = SC_R_A72;
+	else
+		return 0;
 
 	ret = sc_pm_get_clock_rate(-1, type, SC_PM_CLK_CPU,
 				   (sc_pm_clock_rate_t *)&rate);
@@ -194,10 +201,10 @@ static int imx8_cpu_probe(struct udevice *dev)
 
 	cpurev = get_cpu_rev();
 	plat->cpurev = cpurev;
-	plat->name = get_core_name();
+	plat->name = get_core_name(dev);
 	plat->rev = get_imx8_rev(cpurev & 0xFFF);
 	plat->type = get_imx8_type((cpurev & 0xFF000) >> 12);
-	plat->freq_mhz = imx8_get_cpu_rate() / 1000000;
+	plat->freq_mhz = imx8_get_cpu_rate(dev) / 1000000;
 	plat->mpidr = dev_read_addr(dev);
 	if (plat->mpidr == FDT_ADDR_T_NONE) {
 		printf("%s: Failed to get CPU reg property\n", __func__);
-- 
2.16.4

^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH V3 8/9] cpu: imx_cpu: Print the CPU temperature for iMX8QM A72
  2020-05-03 13:58 [PATCH V3 1/9] uclass: cpu: Add new API to get udevice for current CPU Peng Fan
                   ` (5 preceding siblings ...)
  2020-05-03 13:58 ` [PATCH V3 7/9] cpu: imx8: fix get core name and rate Peng Fan
@ 2020-05-03 13:58 ` Peng Fan
  2020-05-04  7:35   ` sbabic at denx.de
  2020-05-03 13:58 ` [PATCH V3 9/9] cpu: imx8: show RevC instead of Rev? at boot log Peng Fan
  2020-05-04  7:34 ` [PATCH V3 1/9] uclass: cpu: Add new API to get udevice for current CPU sbabic at denx.de
  8 siblings, 1 reply; 18+ messages in thread
From: Peng Fan @ 2020-05-03 13:58 UTC (permalink / raw)
  To: u-boot

From: Ye Li <ye.li@nxp.com>

iMX8QM registers two thermal devices for CPUs, get the temperature
from "cpu-thermal1" device for A72

Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Ye Li <ye.li@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
---
V3:
 None
V2:
 Per Simon's comments, use uclass_get_device

 drivers/cpu/imx8_cpu.c | 18 ++++++++++++------
 1 file changed, 12 insertions(+), 6 deletions(-)

diff --git a/drivers/cpu/imx8_cpu.c b/drivers/cpu/imx8_cpu.c
index cd11b78d06..85ba7b7df2 100644
--- a/drivers/cpu/imx8_cpu.c
+++ b/drivers/cpu/imx8_cpu.c
@@ -61,13 +61,15 @@ const char *get_core_name(struct udevice *dev)
 }
 
 #if IS_ENABLED(CONFIG_IMX_SCU_THERMAL)
-static int cpu_imx_get_temp(void)
+static int cpu_imx_get_temp(struct cpu_imx_platdata *plat)
 {
 	struct udevice *thermal_dev;
 	int cpu_tmp, ret;
 
-	ret = uclass_get_device_by_name(UCLASS_THERMAL, "cpu-thermal0",
-					&thermal_dev);
+	if (!strcmp(plat->name, "A72"))
+		ret = uclass_get_device(UCLASS_THERMAL, 1, &thermal_dev);
+	else
+		ret = uclass_get_device(UCLASS_THERMAL, 0, &thermal_dev);
 
 	if (!ret) {
 		ret = thermal_get_temp(thermal_dev, &cpu_tmp);
@@ -80,7 +82,7 @@ static int cpu_imx_get_temp(void)
 	return cpu_tmp;
 }
 #else
-static int cpu_imx_get_temp(void)
+static int cpu_imx_get_temp(struct cpu_imx_platdata *plat)
 {
 	return 0;
 }
@@ -89,7 +91,7 @@ static int cpu_imx_get_temp(void)
 int cpu_imx_get_desc(struct udevice *dev, char *buf, int size)
 {
 	struct cpu_imx_platdata *plat = dev_get_platdata(dev);
-	int ret;
+	int ret, temp;
 
 	if (size < 100)
 		return -ENOSPC;
@@ -98,9 +100,13 @@ int cpu_imx_get_desc(struct udevice *dev, char *buf, int size)
 		       plat->type, plat->rev, plat->name, plat->freq_mhz);
 
 	if (IS_ENABLED(CONFIG_IMX_SCU_THERMAL)) {
+		temp = cpu_imx_get_temp(plat);
 		buf = buf + ret;
 		size = size - ret;
-		ret = snprintf(buf, size, " at %dC", cpu_imx_get_temp());
+		if (temp != 0xdeadbeef)
+			ret = snprintf(buf, size, " at %dC", temp);
+		else
+			ret = snprintf(buf, size, " - invalid sensor data");
 	}
 
 	snprintf(buf + ret, size - ret, "\n");
-- 
2.16.4

^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH V3 9/9] cpu: imx8: show RevC instead of Rev? at boot log
  2020-05-03 13:58 [PATCH V3 1/9] uclass: cpu: Add new API to get udevice for current CPU Peng Fan
                   ` (6 preceding siblings ...)
  2020-05-03 13:58 ` [PATCH V3 8/9] cpu: imx_cpu: Print the CPU temperature for iMX8QM A72 Peng Fan
@ 2020-05-03 13:58 ` Peng Fan
  2020-05-04  7:35   ` sbabic at denx.de
  2020-05-04  7:34 ` [PATCH V3 1/9] uclass: cpu: Add new API to get udevice for current CPU sbabic at denx.de
  8 siblings, 1 reply; 18+ messages in thread
From: Peng Fan @ 2020-05-03 13:58 UTC (permalink / raw)
  To: u-boot

From: Frank Li <Frank.Li@nxp.com>

Add REVC informaiton.

Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Frank Li <Frank.Li@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
---

V3:
 None
V2:
 Add R-b tag

 arch/arm/include/asm/arch-imx/cpu.h | 1 +
 drivers/cpu/imx8_cpu.c              | 2 ++
 2 files changed, 3 insertions(+)

diff --git a/arch/arm/include/asm/arch-imx/cpu.h b/arch/arm/include/asm/arch-imx/cpu.h
index 5ade63665a..06b8122e7c 100644
--- a/arch/arm/include/asm/arch-imx/cpu.h
+++ b/arch/arm/include/asm/arch-imx/cpu.h
@@ -57,6 +57,7 @@
 
 #define CHIP_REV_A		0x0
 #define CHIP_REV_B		0x1
+#define CHIP_REV_C		0x2
 
 #define BOARD_REV_1_0           0x0
 #define BOARD_REV_2_0           0x1
diff --git a/drivers/cpu/imx8_cpu.c b/drivers/cpu/imx8_cpu.c
index 85ba7b7df2..95c14c98d8 100644
--- a/drivers/cpu/imx8_cpu.c
+++ b/drivers/cpu/imx8_cpu.c
@@ -43,6 +43,8 @@ const char *get_imx8_rev(u32 rev)
 		return "A";
 	case CHIP_REV_B:
 		return "B";
+	case CHIP_REV_C:
+		return "C";
 	default:
 		return "?";
 	}
-- 
2.16.4

^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH V3 1/9] uclass: cpu: Add new API to get udevice for current CPU
  2020-05-03 13:58 [PATCH V3 1/9] uclass: cpu: Add new API to get udevice for current CPU Peng Fan
                   ` (7 preceding siblings ...)
  2020-05-03 13:58 ` [PATCH V3 9/9] cpu: imx8: show RevC instead of Rev? at boot log Peng Fan
@ 2020-05-04  7:34 ` sbabic at denx.de
  8 siblings, 0 replies; 18+ messages in thread
From: sbabic at denx.de @ 2020-05-04  7:34 UTC (permalink / raw)
  To: u-boot

> When running on SoC with multiple clusters, the boot CPU may
> not be fixed, saying booting from cluster A or cluster B.
> Add a API that can return the udevice for current boot CPU.
> Cpu driver needs to implement is_current_cpu interface for this
> feature, otherwise the API only returns the first udevice in
> cpu uclass.
> Reviewed-by: Simon Glass <sjg@chromium.org>
> Signed-off-by: Peng Fan <peng.fan@nxp.com>
> Signed-off-by: Ye Li <ye.li@nxp.com>
Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
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] 18+ messages in thread

* [PATCH V3 3/9] test: cpu: test current cpu
  2020-05-03 13:58 ` [PATCH V3 3/9] test: cpu: test current cpu Peng Fan
@ 2020-05-04  7:34   ` sbabic at denx.de
  0 siblings, 0 replies; 18+ messages in thread
From: sbabic at denx.de @ 2020-05-04  7:34 UTC (permalink / raw)
  To: u-boot

> Add test whether the CPU is U-Boot is running from.
> Reviewed-by: Simon Glass <sjg@chromium.org>
> Signed-off-by: Peng Fan <peng.fan@nxp.com>
Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
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] 18+ messages in thread

* [PATCH V3 5/9] cpu: imx8: reimplement get cpu count
  2020-05-03 13:58 ` [PATCH V3 5/9] cpu: imx8: reimplement get cpu count Peng Fan
@ 2020-05-04  7:34   ` sbabic at denx.de
  0 siblings, 0 replies; 18+ messages in thread
From: sbabic at denx.de @ 2020-05-04  7:34 UTC (permalink / raw)
  To: u-boot

> Return 4 is not correct on i.MX8DX/DXL/8QM and etc. we need to count
> available cpu node with device_type "cpu".
> Reviewed-by: Simon Glass <sjg@chromium.org>
> Signed-off-by: Peng Fan <peng.fan@nxp.com>
Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
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] 18+ messages in thread

* [PATCH V3 4/9] common: board_f: Use cpu_get_current_dev in print_cpuinfo
  2020-05-03 13:58 ` [PATCH V3 4/9] common: board_f: Use cpu_get_current_dev in print_cpuinfo Peng Fan
@ 2020-05-04  7:34   ` sbabic at denx.de
  0 siblings, 0 replies; 18+ messages in thread
From: sbabic at denx.de @ 2020-05-04  7:34 UTC (permalink / raw)
  To: u-boot

> From: Ye Li <ye.li@nxp.com>
> Current print_cpuinfo gets the first udevice in CPU class to return
> the cpu info. This has problem if the boot CPU is not fixed.
> Changing to use new API cpu_get_current_dev to fix the issue.
> Reviewed-by: Simon Glass <sjg@chromium.org>
> Signed-off-by: Ye Li <ye.li@nxp.com>
> Signed-off-by: Peng Fan <peng.fan@nxp.com>
Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
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] 18+ messages in thread

* [PATCH V3 2/9] cpu: sandbox: support is_current
  2020-05-03 13:58 ` [PATCH V3 2/9] cpu: sandbox: support is_current Peng Fan
@ 2020-05-04  7:35   ` sbabic at denx.de
  0 siblings, 0 replies; 18+ messages in thread
From: sbabic at denx.de @ 2020-05-04  7:35 UTC (permalink / raw)
  To: u-boot

> Support querying whether U-Boot is running on current cpu
> Reviewed-by: Simon Glass <sjg@chromium.org>
> Signed-off-by: Peng Fan <peng.fan@nxp.com>
Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
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] 18+ messages in thread

* [PATCH V3 6/9] cpu: imx8: support a72 as boot cpu
  2020-05-03 13:58 ` [PATCH V3 6/9] cpu: imx8: support a72 as boot cpu Peng Fan
@ 2020-05-04  7:35   ` sbabic at denx.de
  0 siblings, 0 replies; 18+ messages in thread
From: sbabic at denx.de @ 2020-05-04  7:35 UTC (permalink / raw)
  To: u-boot

> Support booting i.MX8QM with A72 as boot cpu
> Reviewed-by: Simon Glass <sjg@chromium.org>
> Signed-off-by: Peng Fan <peng.fan@nxp.com>
Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
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] 18+ messages in thread

* [PATCH V3 9/9] cpu: imx8: show RevC instead of Rev? at boot log
  2020-05-03 13:58 ` [PATCH V3 9/9] cpu: imx8: show RevC instead of Rev? at boot log Peng Fan
@ 2020-05-04  7:35   ` sbabic at denx.de
  0 siblings, 0 replies; 18+ messages in thread
From: sbabic at denx.de @ 2020-05-04  7:35 UTC (permalink / raw)
  To: u-boot

> From: Frank Li <Frank.Li@nxp.com>
> Add REVC informaiton.
> Reviewed-by: Simon Glass <sjg@chromium.org>
> Signed-off-by: Frank Li <Frank.Li@nxp.com>
> Signed-off-by: Peng Fan <peng.fan@nxp.com>
Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
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] 18+ messages in thread

* [PATCH V3 8/9] cpu: imx_cpu: Print the CPU temperature for iMX8QM A72
  2020-05-03 13:58 ` [PATCH V3 8/9] cpu: imx_cpu: Print the CPU temperature for iMX8QM A72 Peng Fan
@ 2020-05-04  7:35   ` sbabic at denx.de
  0 siblings, 0 replies; 18+ messages in thread
From: sbabic at denx.de @ 2020-05-04  7:35 UTC (permalink / raw)
  To: u-boot

> From: Ye Li <ye.li@nxp.com>
> iMX8QM registers two thermal devices for CPUs, get the temperature
> from "cpu-thermal1" device for A72
> Reviewed-by: Simon Glass <sjg@chromium.org>
> Signed-off-by: Ye Li <ye.li@nxp.com>
> Signed-off-by: Peng Fan <peng.fan@nxp.com>
Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
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] 18+ messages in thread

* [PATCH V3 7/9] cpu: imx8: fix get core name and rate
  2020-05-03 13:58 ` [PATCH V3 7/9] cpu: imx8: fix get core name and rate Peng Fan
@ 2020-05-04  7:35   ` sbabic at denx.de
  0 siblings, 0 replies; 18+ messages in thread
From: sbabic at denx.de @ 2020-05-04  7:35 UTC (permalink / raw)
  To: u-boot

> When current cpu is A53, using is_cortex_a53 could not detect A72
> information, so check cpu device compatible property to get
> the correct information.
> Reviewed-by: Simon Glass <sjg@chromium.org>
> Signed-off-by: Peng Fan <peng.fan@nxp.com>
Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
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] 18+ messages in thread

end of thread, other threads:[~2020-05-04  7:35 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-05-03 13:58 [PATCH V3 1/9] uclass: cpu: Add new API to get udevice for current CPU Peng Fan
2020-05-03 13:58 ` [PATCH V3 2/9] cpu: sandbox: support is_current Peng Fan
2020-05-04  7:35   ` sbabic at denx.de
2020-05-03 13:58 ` [PATCH V3 3/9] test: cpu: test current cpu Peng Fan
2020-05-04  7:34   ` sbabic at denx.de
2020-05-03 13:58 ` [PATCH V3 4/9] common: board_f: Use cpu_get_current_dev in print_cpuinfo Peng Fan
2020-05-04  7:34   ` sbabic at denx.de
2020-05-03 13:58 ` [PATCH V3 5/9] cpu: imx8: reimplement get cpu count Peng Fan
2020-05-04  7:34   ` sbabic at denx.de
2020-05-03 13:58 ` [PATCH V3 6/9] cpu: imx8: support a72 as boot cpu Peng Fan
2020-05-04  7:35   ` sbabic at denx.de
2020-05-03 13:58 ` [PATCH V3 7/9] cpu: imx8: fix get core name and rate Peng Fan
2020-05-04  7:35   ` sbabic at denx.de
2020-05-03 13:58 ` [PATCH V3 8/9] cpu: imx_cpu: Print the CPU temperature for iMX8QM A72 Peng Fan
2020-05-04  7:35   ` sbabic at denx.de
2020-05-03 13:58 ` [PATCH V3 9/9] cpu: imx8: show RevC instead of Rev? at boot log Peng Fan
2020-05-04  7:35   ` sbabic at denx.de
2020-05-04  7:34 ` [PATCH V3 1/9] uclass: cpu: Add new API to get udevice for current CPU sbabic at denx.de

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.