Deleted Added
full compact
socfpga_common.c (271093) socfpga_common.c (271431)
1/*-
2 * Copyright (c) 2014 Ruslan Bukin <br@bsdpad.com>
3 * All rights reserved.
4 *
5 * This software was developed by SRI International and the University of
6 * Cambridge Computer Laboratory under DARPA/AFRL contract (FA8750-10-C-0237)
7 * ("CTSRD"), as part of the DARPA CRASH research programme.
8 *

--- 15 unchanged lines hidden (view full) ---

24 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
25 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
26 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
27 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
28 * SUCH DAMAGE.
29 */
30
31#include <sys/cdefs.h>
1/*-
2 * Copyright (c) 2014 Ruslan Bukin <br@bsdpad.com>
3 * All rights reserved.
4 *
5 * This software was developed by SRI International and the University of
6 * Cambridge Computer Laboratory under DARPA/AFRL contract (FA8750-10-C-0237)
7 * ("CTSRD"), as part of the DARPA CRASH research programme.
8 *

--- 15 unchanged lines hidden (view full) ---

24 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
25 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
26 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
27 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
28 * SUCH DAMAGE.
29 */
30
31#include <sys/cdefs.h>
32__FBSDID("$FreeBSD: head/sys/arm/altera/socfpga/socfpga_common.c 271093 2014-09-04 12:44:40Z br $");
32__FBSDID("$FreeBSD: head/sys/arm/altera/socfpga/socfpga_common.c 271431 2014-09-11 18:12:28Z br $");
33
34#include <sys/param.h>
35#include <sys/systm.h>
36#include <sys/bus.h>
37#include <sys/kernel.h>
38
39#include <dev/fdt/fdt_common.h>
40#include <dev/ofw/openfirm.h>
41
42#include <machine/bus.h>
43#include <machine/fdt.h>
44
33
34#include <sys/param.h>
35#include <sys/systm.h>
36#include <sys/bus.h>
37#include <sys/kernel.h>
38
39#include <dev/fdt/fdt_common.h>
40#include <dev/ofw/openfirm.h>
41
42#include <machine/bus.h>
43#include <machine/fdt.h>
44
45#define RESMAN_BASE 0xFFD05000
46#define RESMAN_CTRL 0x4
47#define SWWARMRSTREQ (1 << 1)
45#include <arm/altera/socfpga/socfpga_rstmgr.h>
48
49void
50cpu_reset(void)
51{
46
47void
48cpu_reset(void)
49{
50 uint32_t addr, paddr;
52 bus_addr_t vaddr;
51 bus_addr_t vaddr;
52 phandle_t node;
53
53
54 if (bus_space_map(fdtbus_bs_tag, RESMAN_BASE, 0x10, 0, &vaddr) == 0) {
55 bus_space_write_4(fdtbus_bs_tag, vaddr,
56 RESMAN_CTRL, SWWARMRSTREQ);
54 if (rstmgr_warmreset() == 0)
55 goto end;
56
57 node = OF_finddevice("rstmgr");
58 if (node == -1)
59 goto end;
60
61 if ((OF_getprop(node, "reg", &paddr, sizeof(paddr))) > 0) {
62 addr = fdt32_to_cpu(paddr);
63 if (bus_space_map(fdtbus_bs_tag, addr, 0x8, 0, &vaddr) == 0) {
64 bus_space_write_4(fdtbus_bs_tag, vaddr,
65 RSTMGR_CTRL, CTRL_SWWARMRSTREQ);
66 }
57 }
58
67 }
68
69end:
59 while (1);
60}
61
62struct fdt_fixup_entry fdt_fixup_table[] = {
63 { NULL, NULL }
64};
65
66static int

--- 17 unchanged lines hidden ---
70 while (1);
71}
72
73struct fdt_fixup_entry fdt_fixup_table[] = {
74 { NULL, NULL }
75};
76
77static int

--- 17 unchanged lines hidden ---