blob: 65e1817d8afe6667b004ce81199c6da971d27c99 [file] [log] [blame]
Dinh Nguyen9c4566a2012-10-25 10:41:39 -06001/*
2 * Copyright 2012 Pavel Machek <pavel@denx.de>
Alan Tull44fd8c72015-06-05 08:24:52 -05003 * Copyright (C) 2012-2015 Altera Corporation
Dinh Nguyen9c4566a2012-10-25 10:41:39 -06004 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 */
19
20#ifndef __MACH_CORE_H
21#define __MACH_CORE_H
22
Dinh Nguyen5c04b572013-04-11 10:55:24 -050023#define SOCFPGA_RSTMGR_CTRL 0x04
Alan Tulld686ce42014-10-14 19:33:38 +000024#define SOCFPGA_RSTMGR_MODMPURST 0x10
Dinh Nguyen5c04b572013-04-11 10:55:24 -050025#define SOCFPGA_RSTMGR_MODPERRST 0x14
26#define SOCFPGA_RSTMGR_BRGMODRST 0x1c
27
Dinh Nguyencd871d52015-07-20 11:23:13 -050028#define SOCFPGA_A10_RSTMGR_CTRL 0xC
Dinh Nguyen45be0cd2015-06-02 21:14:02 -050029#define SOCFPGA_A10_RSTMGR_MODMPURST 0x20
30
Dinh Nguyen5c04b572013-04-11 10:55:24 -050031/* System Manager bits */
32#define RSTMGR_CTRL_SWCOLDRSTREQ 0x1 /* Cold Reset */
33#define RSTMGR_CTRL_SWWARMRSTREQ 0x2 /* Warm Reset */
34
Alan Tulld686ce42014-10-14 19:33:38 +000035#define RSTMGR_MPUMODRST_CPU1 0x2 /* CPU1 Reset */
36
Dinh Nguyen9c4566a2012-10-25 10:41:39 -060037extern void socfpga_init_clocks(void);
38extern void socfpga_sysmgr_init(void);
Thor Thayer4d113832016-02-10 13:26:23 -060039void socfpga_init_l2_ecc(void);
Thor Thayer7cc5a5d2016-02-10 13:26:24 -060040void socfpga_init_ocram_ecc(void);
Thor Thayerff6fd142016-03-21 11:01:45 -050041void socfpga_init_arria10_l2_ecc(void);
Thor Thayerc5fb04c2016-04-11 12:01:34 -050042void socfpga_init_arria10_ocram_ecc(void);
Dinh Nguyen9c4566a2012-10-25 10:41:39 -060043
Dinh Nguyen5c04b572013-04-11 10:55:24 -050044extern void __iomem *sys_manager_base_addr;
45extern void __iomem *rst_manager_base_addr;
Alan Tull44fd8c72015-06-05 08:24:52 -050046extern void __iomem *sdr_ctl_base_addr;
Dinh Nguyen5c04b572013-04-11 10:55:24 -050047
Alan Tull44fd8c72015-06-05 08:24:52 -050048u32 socfpga_sdram_self_refresh(u32 sdr_base);
49extern unsigned int socfpga_sdram_self_refresh_sz;
Dinh Nguyen9c4566a2012-10-25 10:41:39 -060050
Dinh Nguyen9c4566a2012-10-25 10:41:39 -060051extern char secondary_trampoline, secondary_trampoline_end;
52
Dinh Nguyen3a4356c2014-10-01 05:44:48 -050053extern unsigned long socfpga_cpu1start_addr;
Dinh Nguyen9c4566a2012-10-25 10:41:39 -060054
Vince Bridgersde042612015-02-11 18:34:25 +000055#define SOCFPGA_SCU_VIRT_BASE 0xfee00000
Dinh Nguyen9c4566a2012-10-25 10:41:39 -060056
57#endif