uboot/arch/arm/mach-socfpga/reset_manager.c
<<
>>
Prefs
   1// SPDX-License-Identifier: GPL-2.0+
   2/*
   3 *  Copyright (C) 2013 Altera Corporation <www.altera.com>
   4 */
   5
   6
   7#include <common.h>
   8#include <asm/io.h>
   9#include <asm/arch/reset_manager.h>
  10
  11#if defined(CONFIG_TARGET_SOCFPGA_STRATIX10)
  12#include <asm/arch/mailbox_s10.h>
  13#endif
  14
  15DECLARE_GLOBAL_DATA_PTR;
  16
  17#if !defined(CONFIG_TARGET_SOCFPGA_STRATIX10)
  18static const struct socfpga_reset_manager *reset_manager_base =
  19                (void *)SOCFPGA_RSTMGR_ADDRESS;
  20#endif
  21
  22/*
  23 * Write the reset manager register to cause reset
  24 */
  25void reset_cpu(ulong addr)
  26{
  27        /* request a warm reset */
  28#if defined(CONFIG_TARGET_SOCFPGA_STRATIX10)
  29        puts("Mailbox: Issuing mailbox cmd REBOOT_HPS\n");
  30        mbox_reset_cold();
  31#else
  32        writel(1 << RSTMGR_CTRL_SWWARMRSTREQ_LSB,
  33               &reset_manager_base->ctrl);
  34#endif
  35        /*
  36         * infinite loop here as watchdog will trigger and reset
  37         * the processor
  38         */
  39        while (1)
  40                ;
  41}
  42