
On Tue, 2018-07-03 at 02:48 -0700, Bin Meng wrote:
This converts all x86 boards over to DM sysreset.
-int do_reset(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) -{
- printf("resetting ...\n");
- /* wait 50 ms */
- udelay(50000);
- disable_interrupts();
- reset_cpu(0);
-}
--- a/arch/x86/cpu/tangier/tangier.c +++ b/arch/x86/cpu/tangier/tangier.c @@ -25,7 +25,15 @@ int print_cpuinfo(void) return default_print_cpuinfo(); }
+/* TODO: convert to DM sysreset */ void reset_cpu(ulong addr) { scu_ipc_simple_command(IPCMSG_COLD_RESET, 0); }
+int do_reset(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) +{
- reset_cpu(0);
- return 0;
This is not equivalent to the above.
First of all, in some cases would be good to have at least a debug message that we got into do_reset().
Second, I didn't test if udelay() + disable_interrupts() make any difference. So, I would leave them for now.
+}
diff --git a/arch/x86/dts/edison.dts b/arch/x86/dts/edison.dts index 9033532..a1d3c90 100644 --- a/arch/x86/dts/edison.dts +++ b/arch/x86/dts/edison.dts @@ -9,6 +9,7 @@ #include <dt-bindings/interrupt-router/intel-irq.h>
/include/ "skeleton.dtsi"
+/include/ "reset.dtsi"
If i read this right we are not using generic reset sequence. Why do we include this here?
/include/ "rtc.dtsi" /include/ "tsc_timer.dtsi"
--- a/configs/edison_defconfig +++ b/configs/edison_defconfig
+# CONFIG_SYSRESET is not set