1255130Srpaulo/*-
2259322Sian * Copyright (c) 2013 Ian Lepore <ian@freebsd.org>
3255130Srpaulo * All rights reserved.
4255130Srpaulo *
5255130Srpaulo * Redistribution and use in source and binary forms, with or without
6255130Srpaulo * modification, are permitted provided that the following conditions
7255130Srpaulo * are met:
8255130Srpaulo * 1. Redistributions of source code must retain the above copyright
9255130Srpaulo *    notice, this list of conditions and the following disclaimer.
10255130Srpaulo * 2. Redistributions in binary form must reproduce the above copyright
11255130Srpaulo *    notice, this list of conditions and the following disclaimer in the
12255130Srpaulo *    documentation and/or other materials provided with the distribution.
13255130Srpaulo *
14259322Sian * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
15259322Sian * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16259322Sian * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17259322Sian * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
18259322Sian * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
19259322Sian * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
20259322Sian * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21255130Srpaulo * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22255130Srpaulo * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
23255130Srpaulo * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
24255130Srpaulo * SUCH DAMAGE.
25255130Srpaulo */
26255130Srpaulo
27255130Srpaulo#include "opt_platform.h"
28255130Srpaulo
29255130Srpaulo#include <sys/cdefs.h>
30255130Srpaulo__FBSDID("$FreeBSD: releng/10.3/sys/arm/freescale/imx/imx53_machdep.c 259365 2013-12-14 00:16:08Z ian $");
31255130Srpaulo
32255130Srpaulo#include <sys/param.h>
33255130Srpaulo#include <sys/systm.h>
34255130Srpaulo#include <sys/bus.h>
35255130Srpaulo#include <sys/reboot.h>
36255130Srpaulo
37259365Sian#include <vm/vm.h>
38259365Sian
39259365Sian#include <machine/bus.h>
40259365Sian#include <machine/devmap.h>
41255130Srpaulo#include <machine/machdep.h>
42259322Sian#include <arm/freescale/imx/imx_machdep.h>
43255130Srpaulo
44259365Sianvm_offset_t
45259365Sianinitarm_lastaddr(void)
46259365Sian{
47259365Sian
48259365Sian	return (arm_devmap_lastaddr());
49259365Sian}
50259365Sian
51259365Sianvoid
52259365Sianinitarm_early_init(void)
53259365Sian{
54259365Sian
55259365Sian	/* XXX - Get rid of this stuff soon. */
56259365Sian	boothowto |= RB_VERBOSE|RB_MULTIPLE;
57259365Sian	bootverbose = 1;
58259365Sian}
59259365Sian
60259365Sianvoid
61259365Sianinitarm_gpio_init(void)
62259365Sian{
63259365Sian
64259365Sian}
65259365Sian
66259365Sianvoid
67259365Sianinitarm_late_init(void)
68259365Sian{
69259365Sian
70259365Sian}
71259365Sian
72255130Srpaulo/*
73259322Sian * Set up static device mappings.  This is hand-optimized platform-specific
74259322Sian * config data which covers most of the common on-chip devices with a few 1MB
75259322Sian * section mappings.
76259322Sian *
77259322Sian * Notably missing are entries for GPU, IPU, in general anything video related.
78255130Srpaulo */
79259365Sianint
80259365Sianinitarm_devmap_init(void)
81255130Srpaulo{
82255130Srpaulo
83259365Sian	arm_devmap_add_entry(0x50000000, 0x00100000);
84259365Sian	arm_devmap_add_entry(0x53f00000, 0x00100000);
85259365Sian	arm_devmap_add_entry(0x63f00000, 0x00100000);
86259365Sian
87259365Sian	return (0);
88255130Srpaulo}
89255130Srpaulo
90255130Srpaulovoid
91259322Siancpu_reset(void)
92255130Srpaulo{
93255130Srpaulo
94259322Sian	imx_wdog_cpu_reset(0x53F98000);
95255130Srpaulo}
96255130Srpaulo
97259322Sianu_int imx_soc_type()
98255130Srpaulo{
99259322Sian	return (IMXSOC_53);
100255130Srpaulo}
101255130Srpaulo
102255130Srpaulo
103