Skip to contentSkip to conversation

sandbox: add a sandbox timer and basic test

PATCH New Thomas Chou 2 participants 11 messages Oct 22, 2015 – Nov 6, 2015

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 sandbox: add a sandbox timer and basic test

Add a sandbox timer which get time from host os and a basic test.

---
 arch/sandbox/dts/sandbox.dts                     |  4 ++
 board/sandbox/sandbox.c                          |  2 +
 common/board_f.c                                 |  2 +-
 configs/sandbox_defconfig                        |  2 +
 doc/device-tree-bindings/timer/sandbox_timer.txt |  7 ++++
 drivers/timer/Kconfig                            |  7 ++++
 drivers/timer/Makefile                           |  1 +
 drivers/timer/sandbox_timer.c                    | 53 ++++++++++++++++++++++++
 include/configs/sandbox.h                        |  2 +
 test/dm/Makefile                                 |  1 +
 test/dm/timer.c                                  | 27 ++++++++++++
 11 files changed, 107 insertions(+), 1 deletion(-)
 create mode 100644 doc/device-tree-bindings/timer/sandbox_timer.txt
 create mode 100644 drivers/timer/sandbox_timer.c
 create mode 100644 test/dm/timer.c
arch/sandbox/dts/sandbox.dts +4 -0
index 08f72ac..720ef93 100644
@@ -177,6 +177,10 @@
 		sides = <4>;
 	};
 
+	timer {
+		compatible = "sandbox,timer";
+	};
+
 	tpm {
 		compatible = "google,sandbox-tpm";
 	};
board/sandbox/sandbox.c +2 -0
index 80eaa63..592f772 100644
@@ -26,6 +26,7 @@ void flush_cache(unsigned long start, unsigned long size)
 {
 }
 
+#ifndef CONFIG_TIMER
 /* system timer offset in ms */
 static unsigned long sandbox_timer_offset;
 
@@ -38,6 +39,7 @@ unsigned long timer_read_counter(void)
 {
 	return os_get_nsec() / 1000 + sandbox_timer_offset * 1000;
 }
+#endif
 
 int dram_init(void)
 {
common/board_f.c +1 -1
index 613332e..0899144 100644
@@ -778,9 +778,9 @@ static init_fnc_t init_sequence_f[] = {
 	x86_fsp_init,
 #endif
 	arch_cpu_init,		/* basic arch cpu dependent setup */
-	mark_bootstage,
 	initf_dm,
 	arch_cpu_init_dm,
+	mark_bootstage,		/* need timer, go after init dm */
 #if defined(CONFIG_BOARD_EARLY_INIT_F)
 	board_early_init_f,
 #endif
configs/sandbox_defconfig +2 -0
index b2675c7..0b3785b 100644
@@ -47,6 +47,8 @@ CONFIG_SANDBOX_SERIAL=y
 CONFIG_SOUND=y
 CONFIG_SOUND_SANDBOX=y
 CONFIG_SANDBOX_SPI=y
+CONFIG_TIMER=y
+CONFIG_SANDBOX_TIMER=y
 CONFIG_DM_TPM=y
 CONFIG_TPM_TIS_SANDBOX=y
 CONFIG_USB=y
doc/device-tree-bindings/timer/sandbox_timer.txt new file +7 -0
new file mode 100644
index 0000000..3e113f8
@@ -0,0 +1,7 @@
+Sandbox timer
+
+The sandbox timer device is an emulated device which gets time from
+host os.
+
+Required properties:
+  compatible: "sandbox,timer"
drivers/timer/Kconfig +7 -0
index 97c4128..601e493 100644
@@ -16,4 +16,11 @@ config ALTERA_TIMER
 	  Select this to enable an timer for Altera devices. Please find
 	  details on the "Embedded Peripherals IP User Guide" of Altera.
 
+config SANDBOX_TIMER
+	bool "Sandbox Timer support"
+	depends on SANDBOX && TIMER
+	help
+	  Select this to enable an emulated timer for sandbox. It gets
+	  time from host os.
+
 endmenu
drivers/timer/Makefile +1 -0
index ae66c07..300946e 100644
@@ -6,3 +6,4 @@
 
 obj-$(CONFIG_TIMER)		+= timer-uclass.o
 obj-$(CONFIG_ALTERA_TIMER)	+= altera_timer.o
+obj-$(CONFIG_SANDBOX_TIMER)	+= sandbox_timer.o
drivers/timer/sandbox_timer.c new file +53 -0

53 lines not on this page · raw message

include/configs/sandbox.h +2 -0
index 32e3a9b..db7c8bd 100644
@@ -19,7 +19,9 @@
 #define CONFIG_IO_TRACE
 #define CONFIG_CMD_IOTRACE
 
+#ifndef CONFIG_TIMER
 #define CONFIG_SYS_TIMER_RATE		1000000
+#endif
 
 #define CONFIG_SYS_STDIO_DEREGISTER
 
test/dm/Makefile +1 -0
index eda9643..d5e93f0 100644
@@ -32,4 +32,5 @@ obj-y += syscon.o
 obj-$(CONFIG_DM_USB) += usb.o
 obj-$(CONFIG_DM_PMIC) += pmic.o
 obj-$(CONFIG_DM_REGULATOR) += regulator.o
+obj-$(CONFIG_TIMER) += timer.o
 endif
test/dm/timer.c new file +27 -0
new file mode 100644
index 0000000..bf964c4
@@ -0,0 +1,27 @@
+/*
+ * Copyright (C) 2015 Thomas Chou <[email protected]>
+ *
+ * SPDX-License-Identifier:	GPL-2.0+
+ */
+
+#include <common.h>
+#include <dm.h>
+#include <timer.h>
+#include <dm/test.h>
+#include <test/ut.h>
+
+DECLARE_GLOBAL_DATA_PTR;
+
+/*
+ * Basic test of the timer uclass.
+ */
+static int dm_test_timer_base(struct unit_test_state *uts)
+{
+	struct udevice *dev;
+
+	ut_assertok(uclass_get_device(UCLASS_TIMER, 0, &dev));
+	ut_asserteq(1000000, timer_get_rate(dev));
+
+	return 0;
+}
+DM_TEST(dm_test_timer_base, DM_TESTF_SCAN_PDATA | DM_TESTF_SCAN_FDT);
Signature · 1 line
2.1.4
#1 lore raw

PATCH 1/1 sandbox: add a sandbox timer and basic test

Hi Thomas,

Quoted 4 lines · Thomas Chou

Add a sandbox timer which get time from host os and a basic test.

Quoted 12 lines
---
 arch/sandbox/dts/sandbox.dts                     |  4 ++
 board/sandbox/sandbox.c                          |  2 +
 common/board_f.c                                 |  2 +-
 configs/sandbox_defconfig                        |  2 +
 doc/device-tree-bindings/timer/sandbox_timer.txt |  7 ++++
 drivers/timer/Kconfig                            |  7 ++++
 drivers/timer/Makefile                           |  1 +
 drivers/timer/sandbox_timer.c                    | 53 ++++++++++++++++++++++++
 include/configs/sandbox.h                        |  2 +
 test/dm/Makefile                                 |  1 +
 test/dm/timer.c                                  | 27 ++++++++++++

Can you please split out the board_f.c change into a separate commit?

Otherwise:

Quoted 144 lines
 11 files changed, 107 insertions(+), 1 deletion(-)
 create mode 100644 doc/device-tree-bindings/timer/sandbox_timer.txt
 create mode 100644 drivers/timer/sandbox_timer.c
 create mode 100644 test/dm/timer.c
arch/sandbox/dts/sandbox.dts +4 -0
index 08f72ac..720ef93 100644
@@ -177,6 +177,10 @@
                sides = <4>;
        };
 
+       timer {
+               compatible = "sandbox,timer";
+       };
+
        tpm {
                compatible = "google,sandbox-tpm";
        };
board/sandbox/sandbox.c +2 -0
index 80eaa63..592f772 100644
@@ -26,6 +26,7 @@ void flush_cache(unsigned long start, unsigned long size)
 {
 }
 
+#ifndef CONFIG_TIMER
 /* system timer offset in ms */
 static unsigned long sandbox_timer_offset;
 
@@ -38,6 +39,7 @@ unsigned long timer_read_counter(void)
 {
        return os_get_nsec() / 1000 + sandbox_timer_offset * 1000;
 }
+#endif
 
 int dram_init(void)
 {
common/board_f.c +1 -1
index 613332e..0899144 100644
@@ -778,9 +778,9 @@ static init_fnc_t init_sequence_f[] = {
        x86_fsp_init,
 #endif
        arch_cpu_init,          /* basic arch cpu dependent setup */
-       mark_bootstage,
        initf_dm,
        arch_cpu_init_dm,
+       mark_bootstage,         /* need timer, go after init dm */
 #if defined(CONFIG_BOARD_EARLY_INIT_F)
        board_early_init_f,
 #endif
configs/sandbox_defconfig +2 -0
index b2675c7..0b3785b 100644
@@ -47,6 +47,8 @@ CONFIG_SANDBOX_SERIAL=y
 CONFIG_SOUND=y
 CONFIG_SOUND_SANDBOX=y
 CONFIG_SANDBOX_SPI=y
+CONFIG_TIMER=y
+CONFIG_SANDBOX_TIMER=y
 CONFIG_DM_TPM=y
 CONFIG_TPM_TIS_SANDBOX=y
 CONFIG_USB=y
doc/device-tree-bindings/timer/sandbox_timer.txt new file +7 -0
new file mode 100644
index 0000000..3e113f8
@@ -0,0 +1,7 @@
+Sandbox timer
+
+The sandbox timer device is an emulated device which gets time from
+host os.
+
+Required properties:
+  compatible: "sandbox,timer"
drivers/timer/Kconfig +7 -0
index 97c4128..601e493 100644
@@ -16,4 +16,11 @@ config ALTERA_TIMER
          Select this to enable an timer for Altera devices. Please find
          details on the "Embedded Peripherals IP User Guide" of Altera.
 
+config SANDBOX_TIMER
+       bool "Sandbox Timer support"
+       depends on SANDBOX && TIMER
+       help
+         Select this to enable an emulated timer for sandbox. It gets
+         time from host os.
+
 endmenu
drivers/timer/Makefile +1 -0
index ae66c07..300946e 100644
@@ -6,3 +6,4 @@
 
 obj-$(CONFIG_TIMER)            += timer-uclass.o
 obj-$(CONFIG_ALTERA_TIMER)     += altera_timer.o
+obj-$(CONFIG_SANDBOX_TIMER)    += sandbox_timer.o
drivers/timer/sandbox_timer.c new file +32 -0
new file mode 100644
index 0000000..8193170
@@ -0,0 +1,53 @@
+/*
+ * Copyright (C) 2015 Thomas Chou <[email protected]>
+ *
+ * SPDX-License-Identifier:    GPL-2.0+
+ */
+
+#include <common.h>
+#include <dm.h>
+#include <errno.h>
+#include <timer.h>
+#include <os.h>
+
+/* system timer offset in ms */
+static unsigned long sandbox_timer_offset;
+
+void sandbox_timer_add_offset(unsigned long offset)
+{
+       sandbox_timer_offset += offset;
+}
+
+static int sandbox_timer_get_count(struct udevice *dev, unsigned long *count)
+{
+       *count = os_get_nsec() / 1000 + sandbox_timer_offset * 1000;
+
+       return 0;
+}
+
+static int sandbox_timer_probe(struct udevice *dev)
+{
+       struct timer_dev_priv *uc_priv = dev_get_uclass_priv(dev);
+
+       uc_priv->clock_rate = 1000000;

drivers/timer/sandbox_timer.c line 42

Quoted 10 lines
drivers/timer/sandbox_timer.c new file +10 -0
+
+       return 0;
+}
+
+static const struct timer_ops sandbox_timer_ops = {
+       .get_count = sandbox_timer_get_count,
+};
+
+static const struct udevice_id sandbox_timer_ids[] = {
+       { .compatible = "sandbox,timer", },

You can drop the penultimate comma.

Quoted 69 lines
drivers/timer/sandbox_timer.c new file +11 -0
+       { }
+};
+
+U_BOOT_DRIVER(sandbox_timer) = {
+       .name   = "sandbox_timer",
+       .id     = UCLASS_TIMER,
+       .of_match = sandbox_timer_ids,
+       .probe = sandbox_timer_probe,
+       .ops    = &sandbox_timer_ops,
+       .flags = DM_FLAG_PRE_RELOC,
+};
include/configs/sandbox.h +2 -0
index 32e3a9b..db7c8bd 100644
@@ -19,7 +19,9 @@
 #define CONFIG_IO_TRACE
 #define CONFIG_CMD_IOTRACE
 
+#ifndef CONFIG_TIMER
 #define CONFIG_SYS_TIMER_RATE          1000000
+#endif
 
 #define CONFIG_SYS_STDIO_DEREGISTER
 
test/dm/Makefile +1 -0
index eda9643..d5e93f0 100644
@@ -32,4 +32,5 @@ obj-y += syscon.o
 obj-$(CONFIG_DM_USB) += usb.o
 obj-$(CONFIG_DM_PMIC) += pmic.o
 obj-$(CONFIG_DM_REGULATOR) += regulator.o
+obj-$(CONFIG_TIMER) += timer.o
 endif
test/dm/timer.c new file +27 -1
new file mode 100644
index 0000000..bf964c4
@@ -0,0 +1,27 @@
+/*
+ * Copyright (C) 2015 Thomas Chou <[email protected]>
+ *
+ * SPDX-License-Identifier:    GPL-2.0+
+ */
+
+#include <common.h>
+#include <dm.h>
+#include <timer.h>
+#include <dm/test.h>
+#include <test/ut.h>
+
+DECLARE_GLOBAL_DATA_PTR;
+
+/*
+ * Basic test of the timer uclass.
+ */
+static int dm_test_timer_base(struct unit_test_state *uts)
+{
+       struct udevice *dev;
+
+       ut_assertok(uclass_get_device(UCLASS_TIMER, 0, &dev));
+       ut_asserteq(1000000, timer_get_rate(dev));
+
+       return 0;
+}
+DM_TEST(dm_test_timer_base, DM_TESTF_SCAN_PDATA | DM_TESTF_SCAN_FDT);
--
Quoted 2 lines

2.1.4

Regards,
Simon

#2 lore raw

PATCH 1/1 sandbox: add a sandbox timer and basic test

Hi Simon,

Quoted 20 lines · Simon Glass

Hi Thomas,

Quoted 4 lines · Thomas Chou

Add a sandbox timer which get time from host os and a basic test.

Quoted 12 lines
---
  arch/sandbox/dts/sandbox.dts                     |  4 ++
  board/sandbox/sandbox.c                          |  2 +
  common/board_f.c                                 |  2 +-
  configs/sandbox_defconfig                        |  2 +
  doc/device-tree-bindings/timer/sandbox_timer.txt |  7 ++++
  drivers/timer/Kconfig                            |  7 ++++
  drivers/timer/Makefile                           |  1 +
  drivers/timer/sandbox_timer.c                    | 53 ++++++++++++++++++++++++
  include/configs/sandbox.h                        |  2 +
  test/dm/Makefile                                 |  1 +
  test/dm/timer.c                                  | 27 ++++++++++++
Quoted 1 line

Can you please split out the board_f.c change into a separate commit?

But the sandbox will fail (with seg fault or hang) without the change in board_f.c . Is this alright?

Quoted 5 lines

drivers/timer/sandbox_timer.c line 42

Quoted 2 lines
drivers/timer/sandbox_timer.c new file +2 -0
+static const struct udevice_id sandbox_timer_ids[] = {
+       { .compatible = "sandbox,timer", },

You can drop the penultimate comma.

OK.

Thanks a lot for your review.

Best regards,
Thomas

#3 lore raw

PATCH 1/1 sandbox: add a sandbox timer and basic test

Hi Thomas,

Quoted 27 lines · Thomas Chou

Hi Simon,

Quoted 24 lines · Simon Glass

Hi Thomas,

Quoted 18 lines · Thomas Chou

Add a sandbox timer which get time from host os and a basic test.

---
  arch/sandbox/dts/sandbox.dts                     |  4 ++
  board/sandbox/sandbox.c                          |  2 +
  common/board_f.c                                 |  2 +-
  configs/sandbox_defconfig                        |  2 +
  doc/device-tree-bindings/timer/sandbox_timer.txt |  7 ++++
  drivers/timer/Kconfig                            |  7 ++++
  drivers/timer/Makefile                           |  1 +
  drivers/timer/sandbox_timer.c                    | 53
++++++++++++++++++++++++
  include/configs/sandbox.h                        |  2 +
  test/dm/Makefile                                 |  1 +
  test/dm/timer.c                                  | 27 ++++++++++++
Quoted 5 lines
Quoted 1 line

Can you please split out the board_f.c change into a separate commit?

But the sandbox will fail (with seg fault or hang) without the change in board_f.c . Is this alright?

What if you put that commit first in the series?

Quoted 9 lines
Quoted 8 lines

drivers/timer/sandbox_timer.c line 42

Quoted 4 lines
drivers/timer/sandbox_timer.c new file +2 -0
+static const struct udevice_id sandbox_timer_ids[] = {
+       { .compatible = "sandbox,timer", },

You can drop the penultimate comma.

Quoted 7 lines

OK.

Thanks a lot for your review.

Best regards,
Thomas

Regards,
Simon

#4 lore raw

PATCH 1/1 sandbox: add a sandbox timer and basic test

Hi Simon,

Quoted 7 lines · Simon Glass
Quoted 5 lines
Quoted 1 line

Can you please split out the board_f.c change into a separate commit?

But the sandbox will fail (with seg fault or hang) without the change in board_f.c . Is this alright?

What if you put that commit first in the series?

Good idea. Thank you.

Best regards,
Thomas

#5 lore raw

PATCH v2 1/2 common/board_f.c: move mark_bootstage after arch_cpu_init_dm

In reply to Thomas Chou

As mark_bootstage() uses timer, it should go after driver model is initialized.

---
 common/board_f.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
common/board_f.c +1 -1
index 486e828..d88ada3 100644
@@ -778,9 +778,9 @@ static init_fnc_t init_sequence_f[] = {
 	x86_fsp_init,
 #endif
 	arch_cpu_init,		/* basic arch cpu dependent setup */
-	mark_bootstage,
 	initf_dm,
 	arch_cpu_init_dm,
+	mark_bootstage,		/* need timer, go after init dm */
 #if defined(CONFIG_BOARD_EARLY_INIT_F)
 	board_early_init_f,
 #endif
Signature · 1 line
2.5.0
#6 lore raw

PATCH v2 2/2 sandbox: add a sandbox timer and basic test

Add a sandbox timer which get time from host os and a basic test.

---
v2
split board_f.c to another patch as suggested by Simon. drop the penultimate comma in of_match ids.

 arch/sandbox/dts/sandbox.dts                     |  4 ++
 board/sandbox/sandbox.c                          |  2 +
 configs/sandbox_defconfig                        |  2 +
 doc/device-tree-bindings/timer/sandbox_timer.txt |  7 ++++
 drivers/timer/Kconfig                            |  7 ++++
 drivers/timer/Makefile                           |  1 +
 drivers/timer/sandbox_timer.c                    | 53 ++++++++++++++++++++++++
 include/configs/sandbox.h                        |  2 +
 test/dm/Makefile                                 |  1 +
 test/dm/timer.c                                  | 27 ++++++++++++
 10 files changed, 106 insertions(+)
 create mode 100644 doc/device-tree-bindings/timer/sandbox_timer.txt
 create mode 100644 drivers/timer/sandbox_timer.c
 create mode 100644 test/dm/timer.c
arch/sandbox/dts/sandbox.dts +4 -0
index 08f72ac..720ef93 100644
@@ -177,6 +177,10 @@
 		sides = <4>;
 	};
 
+	timer {
+		compatible = "sandbox,timer";
+	};
+
 	tpm {
 		compatible = "google,sandbox-tpm";
 	};
board/sandbox/sandbox.c +2 -0
index 80eaa63..592f772 100644
@@ -26,6 +26,7 @@ void flush_cache(unsigned long start, unsigned long size)
 {
 }
 
+#ifndef CONFIG_TIMER
 /* system timer offset in ms */
 static unsigned long sandbox_timer_offset;
 
@@ -38,6 +39,7 @@ unsigned long timer_read_counter(void)
 {
 	return os_get_nsec() / 1000 + sandbox_timer_offset * 1000;
 }
+#endif
 
 int dram_init(void)
 {
configs/sandbox_defconfig +2 -0
index 67ae99b..72e0dfb 100644
@@ -48,6 +48,8 @@ CONFIG_SANDBOX_SERIAL=y
 CONFIG_SOUND=y
 CONFIG_SOUND_SANDBOX=y
 CONFIG_SANDBOX_SPI=y
+CONFIG_TIMER=y
+CONFIG_SANDBOX_TIMER=y
 CONFIG_DM_TPM=y
 CONFIG_TPM_TIS_SANDBOX=y
 CONFIG_USB=y
doc/device-tree-bindings/timer/sandbox_timer.txt new file +7 -0
new file mode 100644
index 0000000..3e113f8
@@ -0,0 +1,7 @@
+Sandbox timer
+
+The sandbox timer device is an emulated device which gets time from
+host os.
+
+Required properties:
+  compatible: "sandbox,timer"
drivers/timer/Kconfig +7 -0
index 97c4128..601e493 100644
@@ -16,4 +16,11 @@ config ALTERA_TIMER
 	  Select this to enable an timer for Altera devices. Please find
 	  details on the "Embedded Peripherals IP User Guide" of Altera.
 
+config SANDBOX_TIMER
+	bool "Sandbox Timer support"
+	depends on SANDBOX && TIMER
+	help
+	  Select this to enable an emulated timer for sandbox. It gets
+	  time from host os.
+
 endmenu
drivers/timer/Makefile +1 -0
index ae66c07..300946e 100644
@@ -6,3 +6,4 @@
 
 obj-$(CONFIG_TIMER)		+= timer-uclass.o
 obj-$(CONFIG_ALTERA_TIMER)	+= altera_timer.o
+obj-$(CONFIG_SANDBOX_TIMER)	+= sandbox_timer.o
drivers/timer/sandbox_timer.c new file +53 -0

53 lines not on this page · raw message

include/configs/sandbox.h +2 -0
index c96ec90..9e66da2 100644
@@ -19,7 +19,9 @@
 #define CONFIG_IO_TRACE
 #define CONFIG_CMD_IOTRACE
 
+#ifndef CONFIG_TIMER
 #define CONFIG_SYS_TIMER_RATE		1000000
+#endif
 
 #define CONFIG_SYS_STDIO_DEREGISTER
 
test/dm/Makefile +1 -0
index 7b3626c..88da101 100644
@@ -33,4 +33,5 @@ obj-y += syscon.o
 obj-$(CONFIG_DM_USB) += usb.o
 obj-$(CONFIG_DM_PMIC) += pmic.o
 obj-$(CONFIG_DM_REGULATOR) += regulator.o
+obj-$(CONFIG_TIMER) += timer.o
 endif
test/dm/timer.c new file +27 -0
new file mode 100644
index 0000000..bf964c4
@@ -0,0 +1,27 @@
+/*
+ * Copyright (C) 2015 Thomas Chou <[email protected]>
+ *
+ * SPDX-License-Identifier:	GPL-2.0+
+ */
+
+#include <common.h>
+#include <dm.h>
+#include <timer.h>
+#include <dm/test.h>
+#include <test/ut.h>
+
+DECLARE_GLOBAL_DATA_PTR;
+
+/*
+ * Basic test of the timer uclass.
+ */
+static int dm_test_timer_base(struct unit_test_state *uts)
+{
+	struct udevice *dev;
+
+	ut_assertok(uclass_get_device(UCLASS_TIMER, 0, &dev));
+	ut_asserteq(1000000, timer_get_rate(dev));
+
+	return 0;
+}
+DM_TEST(dm_test_timer_base, DM_TESTF_SCAN_PDATA | DM_TESTF_SCAN_FDT);
Signature · 1 line
2.5.0
#7 lore raw

PATCH v2 2/2 sandbox: add a sandbox timer and basic test

Quoted 10 lines · Thomas Chou

Add a sandbox timer which get time from host os and a basic test.

---
v2
split board_f.c to another patch as suggested by Simon. drop the penultimate comma in of_match ids.

Quoted 14 lines
 arch/sandbox/dts/sandbox.dts                     |  4 ++
 board/sandbox/sandbox.c                          |  2 +
 configs/sandbox_defconfig                        |  2 +
 doc/device-tree-bindings/timer/sandbox_timer.txt |  7 ++++
 drivers/timer/Kconfig                            |  7 ++++
 drivers/timer/Makefile                           |  1 +
 drivers/timer/sandbox_timer.c                    | 53 ++++++++++++++++++++++++
 include/configs/sandbox.h                        |  2 +
 test/dm/Makefile                                 |  1 +
 test/dm/timer.c                                  | 27 ++++++++++++
 10 files changed, 106 insertions(+)
 create mode 100644 doc/device-tree-bindings/timer/sandbox_timer.txt
 create mode 100644 drivers/timer/sandbox_timer.c
 create mode 100644 test/dm/timer.c

Applied to u-boot-dm, thanks!

#9 lore raw

PATCH v2 1/2 common/board_f.c: move mark_bootstage after arch_cpu_init_dm

Hi Simon,

Quoted 4 lines · Simon Glass
Quoted 3 lines · Thomas Chou

As mark_bootstage() uses timer, it should go after driver model is initialized.

Quoted 8 lines
Quoted 5 lines
---
  common/board_f.c | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)

Will you please pick up this series? Or shall I pick them? As Bin Meng has follow up patches to timer uclass, I hope we can resolve rebase issue.

Best regards,
Thomas

#10 lore raw

PATCH v2 1/2 common/board_f.c: move mark_bootstage after arch_cpu_init_dm

Quoted 17 lines · Thomas Chou

Hi Simon,

Quoted 13 lines · Simon Glass
Quoted 9 lines · Thomas Chou

As mark_bootstage() uses timer, it should go after driver model is initialized.

---
  common/board_f.c | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
Quoted 5 lines
Quoted 2 lines

Will you please pick up this series? Or shall I pick them? As Bin Meng has follow up patches to timer uclass, I hope we can resolve rebase issue.

OK.

Applied to u-boot-dm, thanks!