NetBSD/sys/arch/arm/mpcore/mpcorereg.h
bsh d5f7715c70 Preliminary ARM11 MPCore support.
I have confirmed this commit doesn't affect existing evbarm kernels by
comparing binaries.
2011-03-10 07:47:14 +00:00

79 lines
2.9 KiB
C

/*
* Copyright (c) 2010, 2011 Genetec Corporation. All rights reserved.
* Written by Hiroyuki Bessho for Genetec Corporation.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY GENETEC CORPORATION ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GENETEC CORPORATION
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/
#ifndef _ARM_MPCORE_MPCOREREG_H
#define _ARM_MPCORE_MPCOREREG_H
/*
* Private Memory Region
*/
#define MPCORE_PMR_SCU 0x0000
#define MPCORE_PMR_CII 0x0100 /* CPU Interrupt Interface (for current core) */
#define MPCORE_PMR_CII_CORE(n) (0x0x200 + 0x100 * (n)) /* for core N */
#define MPCORE_PMR_CII_SIZE 0x100
#define MPCORE_PMR_TIMER 0x600 /* for current core */
#define MPCORE_PMR_TIMER_CORE(n) (0x700 + 0x100 * (n)) /* for core N */
#define MPCORE_PMR_TIMER_SIZE 0x10
#define MPCORE_PMR_WDOG 0x620
#define MPCORE_PMR_WDOG_SIZE 0x18
#define MPCORE_PMR_GID 0x1000 /* Global Interrupt Distributor */
#define MPCORE_PMR_GID_SIZE 0x1000
#define MPCORE_PMR_SIZE 0x2000
/*
* CPU internal timer and watchdog
*/
#define PMR_CLK_LOAD 0x00
#define PMR_CLK_COUNTER 0x04
#define PMR_CLK_CONTROL 0x08
#define CLK_CONTROL_ENABLE __BIT(0)
#define CLK_CONTROL_AUTOLOAD __BIT(1)
#define CLK_CONTROL_ITENABLE __BIT(2)
#define CLK_CONTROL_PRESCALER_SHIFT 8
#define CLK_CONTROL_PRESCALER_MASK __BITS(CLK_CONTROL_PRESCALER_SHIFT, 15)
#define PMR_CLK_INTR 0x0c
#define PMR_WDOG_LOAD 0x00
#define PMR_WDOG_COUNTER 0x04
#define PMR_WDOG_COUNTER 0x04
#define PMR_WDOG_CONTROL 0x08
#define WDOG_CONTROL_ENABLE __BIT(0)
#define WDOG_CONTROL_AUTOLOAD __BIT(1)
#define WDOG_CONTROL_ITENABLE __BIT(2)
#define WDOG_CONTROL_MODE __BIT(3)
#define WDOG_CONTROL_PRESCALER_SHIFT 8
#define WDOG_CONTROL_PRESCALER_MASK __BITS(WDOG_CONTROL_PRESCALER_SHIFT, 15)
#define PMR_WDOG_INTR 0x0c
#define PMR_WDOG_RESET 0x10
#define PMR_WDOG_DISABLE 0x14
#endif /* _ARM_MPCORE_MPCOREREG_H */