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