summaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-netx/generic.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-netx/generic.c')
-rw-r--r--arch/arm/mach-netx/generic.c23
1 files changed, 16 insertions, 7 deletions
diff --git a/arch/arm/mach-netx/generic.c b/arch/arm/mach-netx/generic.c
index 6127dde868..6c3b953d1f 100644
--- a/arch/arm/mach-netx/generic.c
+++ b/arch/arm/mach-netx/generic.c
@@ -15,8 +15,10 @@
*/
#include <common.h>
+#include <init.h>
#include <command.h>
#include <io.h>
+#include <restart.h>
#include <mach/netx-regs.h>
#include "eth_firmware.h"
@@ -134,17 +136,24 @@ failure:
return COMMAND_ERROR_USAGE;
}
-void __noreturn reset_cpu(unsigned long addr)
+BAREBOX_CMD_START(loadxc)
+ .cmd = do_loadxc,
+ BAREBOX_CMD_DESC("load XMAC/XPEC engine with ethernet firmware")
+ BAREBOX_CMD_GROUP(CMD_GRP_NET)
+BAREBOX_CMD_END
+
+static void __noreturn netx_restart_soc(struct restart_handler *rst)
{
SYSTEM_REG(SYSTEM_RES_CR) = 0x01000008;
/* Not reached */
- while (1);
+ hang();
}
+static int restart_register_feature(void)
+{
+ restart_handler_register_fn(netx_restart_soc);
-BAREBOX_CMD_START(loadxc)
- .cmd = do_loadxc,
- BAREBOX_CMD_DESC("load XMAC/XPEC engine with ethernet firmware")
- BAREBOX_CMD_GROUP(CMD_GRP_NET)
-BAREBOX_CMD_END
+ return 0;
+}
+coredevice_initcall(restart_register_feature);