1 1.2 kiyohara /* $NetBSD: bebox.h,v 1.2 2012/10/20 12:37:49 kiyohara Exp $ */ 2 1.1 kiyohara /* 3 1.1 kiyohara * Copyright (c) 2011 KIYOHARA Takashi 4 1.1 kiyohara * All rights reserved. 5 1.1 kiyohara * 6 1.1 kiyohara * Redistribution and use in source and binary forms, with or without 7 1.1 kiyohara * modification, are permitted provided that the following conditions 8 1.1 kiyohara * are met: 9 1.1 kiyohara * 1. Redistributions of source code must retain the above copyright 10 1.1 kiyohara * notice, this list of conditions and the following disclaimer. 11 1.1 kiyohara * 2. Redistributions in binary form must reproduce the above copyright 12 1.1 kiyohara * notice, this list of conditions and the following disclaimer in the 13 1.1 kiyohara * documentation and/or other materials provided with the distribution. 14 1.1 kiyohara * 15 1.1 kiyohara * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 16 1.1 kiyohara * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 17 1.1 kiyohara * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 18 1.1 kiyohara * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, 19 1.1 kiyohara * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 20 1.1 kiyohara * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 21 1.1 kiyohara * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 22 1.1 kiyohara * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 23 1.1 kiyohara * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 24 1.1 kiyohara * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 25 1.1 kiyohara * POSSIBILITY OF SUCH DAMAGE. 26 1.1 kiyohara */ 27 1.1 kiyohara 28 1.1 kiyohara #ifndef _BEBOX_H 29 1.1 kiyohara #define _BEBOX_H 30 1.1 kiyohara 31 1.1 kiyohara /* 32 1.1 kiyohara * BeBox mainboard's Register 33 1.1 kiyohara */ 34 1.1 kiyohara #define BEBOX_REG 0x7ffff000 35 1.1 kiyohara 36 1.1 kiyohara #define BEBOX_SET_MASK 0x80000000 37 1.1 kiyohara #define BEBOX_CLEAR_MASK 0x00000000 38 1.1 kiyohara 39 1.2 kiyohara #define READ_BEBOX_REG(reg) *(volatile uint32_t *)(BEBOX_REG + (reg)) 40 1.1 kiyohara #define SET_BEBOX_REG(reg, v) \ 41 1.2 kiyohara *(volatile uint32_t *)(BEBOX_REG + (reg)) = ((v) | BEBOX_SET_MASK) 42 1.1 kiyohara #define CLEAR_BEBOX_REG(reg, v) \ 43 1.2 kiyohara *(volatile uint32_t *)(BEBOX_REG + (reg)) = ((v) | BEBOX_CLEAR_MASK) 44 1.1 kiyohara 45 1.1 kiyohara #define CPU0_INT_MASK 0x0f0 /* Interrupt Mask for CPU0 */ 46 1.1 kiyohara #define CPU1_INT_MASK 0x1f0 /* Interrupt Mask for CPU1 */ 47 1.1 kiyohara #define INT_SOURCE 0x2f0 /* Interrupt Source */ 48 1.1 kiyohara #define CPU_CONTROL 0x3f0 /* Inter-CPU Interrupt */ 49 1.1 kiyohara #define CPU_RESET 0x4f0 /* Reset Control */ 50 1.1 kiyohara #define INTR_VECTOR_REG 0xff0 51 1.1 kiyohara 52 1.2 kiyohara #define BEBOX_INTR_MASK 0x0ffffffc 53 1.2 kiyohara 54 1.1 kiyohara /* Control */ 55 1.1 kiyohara #define CPU0_SMI (1 << 30) /* SMI to CPU0 */ 56 1.1 kiyohara #define CPU1_SMI (1 << 29) /* SMI to CPU1 */ 57 1.1 kiyohara #define CPU1_INT (1 << 28) /* Interrupt to CPU1 (rev.1 only) */ 58 1.1 kiyohara #define CPU0_TLBISYNC (1 << 27) /* tlbsync to CPU0 */ 59 1.1 kiyohara #define CPU1_TLBISYNC (1 << 26) /* tlbsync to CPU1 */ 60 1.1 kiyohara #define WHO_AM_I (1 << 25) 61 1.1 kiyohara 62 1.1 kiyohara #define TLBISYNC_FROM(n) (1 << (CPU1_TLBISYNC + (n))) 63 1.1 kiyohara 64 1.1 kiyohara /* Reset */ 65 1.1 kiyohara #define CPU1_SRESET (1 << 30) /* Software Reset to CPU1 */ 66 1.1 kiyohara #define CPU1_HRESET (1 << 29) /* Hardware Reset to CPU1 */ 67 1.1 kiyohara 68 1.1 kiyohara #endif /* _BEBOX_H */ 69