Home | History | Annotate | Line # | Download | only in hdl_g
hdlgreg.h revision 1.2.102.1
      1  1.2.102.1    yamt /*	$NetBSD: hdlgreg.h,v 1.2.102.1 2012/04/17 00:06:14 yamt Exp $	*/
      2        1.1  nonaka 
      3  1.2.102.1    yamt /*-
      4  1.2.102.1    yamt  * Copyright (C) 2005, 2006 NONAKA Kimihiro <nonaka (at) netbsd.org>
      5        1.1  nonaka  * All rights reserved.
      6        1.1  nonaka  *
      7        1.1  nonaka  * Redistribution and use in source and binary forms, with or without
      8        1.1  nonaka  * modification, are permitted provided that the following conditions
      9        1.1  nonaka  * are met:
     10        1.1  nonaka  * 1. Redistributions of source code must retain the above copyright
     11        1.1  nonaka  *    notice, this list of conditions and the following disclaimer.
     12        1.1  nonaka  * 2. Redistributions in binary form must reproduce the above copyright
     13        1.1  nonaka  *    notice, this list of conditions and the following disclaimer in the
     14        1.1  nonaka  *    documentation and/or other materials provided with the distribution.
     15        1.1  nonaka  *
     16  1.2.102.1    yamt  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
     17  1.2.102.1    yamt  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
     18  1.2.102.1    yamt  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
     19  1.2.102.1    yamt  * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
     20  1.2.102.1    yamt  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
     21  1.2.102.1    yamt  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
     22  1.2.102.1    yamt  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
     23  1.2.102.1    yamt  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     24  1.2.102.1    yamt  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
     25  1.2.102.1    yamt  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     26        1.1  nonaka  */
     27        1.1  nonaka 
     28        1.1  nonaka #ifndef _HDLGREG_H_
     29        1.1  nonaka #define	_HDLGREG_H_
     30        1.1  nonaka 
     31        1.1  nonaka /*
     32        1.1  nonaka  * Memory map and register definitions for I-O DATA HDL-G
     33        1.1  nonaka  */
     34        1.1  nonaka 
     35        1.1  nonaka /*
     36        1.1  nonaka  * The memory map of I/O-DATA HDL-G looks like so:
     37        1.1  nonaka  *
     38        1.1  nonaka  *           ------------------------------
     39        1.1  nonaka  *		Intel 80321 IOP Reserved
     40        1.1  nonaka  * FFFF E900 ------------------------------
     41        1.1  nonaka  *		Peripheral Memory Mapped
     42        1.1  nonaka  *		    Registers
     43        1.1  nonaka  * FFFF E000 ------------------------------
     44        1.1  nonaka  *		On-board devices
     45        1.1  nonaka  * FE80 0000 ------------------------------
     46        1.1  nonaka  *		SDRAM
     47        1.1  nonaka  * A000 0000 ------------------------------
     48        1.1  nonaka  *		Reserved
     49        1.1  nonaka  * 9100 0000 ------------------------------
     50        1.1  nonaka  * 		Flash
     51        1.1  nonaka  * 9080 0000 ------------------------------
     52        1.1  nonaka  *		Reserved
     53        1.1  nonaka  * 9002 0000 ------------------------------
     54        1.1  nonaka  *		ATU Outbound Transaction
     55        1.1  nonaka  *		    Windows
     56        1.1  nonaka  * 8000 0000 ------------------------------
     57        1.1  nonaka  *		ATU Outbound Direct
     58        1.1  nonaka  *		    Addressing Windows
     59        1.1  nonaka  * 0000 1000 ------------------------------
     60        1.1  nonaka  *		Initialization Boot Code
     61        1.1  nonaka  *		    from Flash
     62        1.1  nonaka  * 0000 0000 ------------------------------
     63        1.1  nonaka  */
     64        1.1  nonaka 
     65        1.1  nonaka /*
     66        1.1  nonaka  * We allocate a page table for VA 0xfe400000 (4MB) and map the
     67        1.1  nonaka  * PCI I/O space (64K) and i80321 memory-mapped registers (4K) there.
     68        1.1  nonaka  */
     69        1.1  nonaka #define	HDLG_IOPXS_VBASE	0xfe400000UL
     70        1.1  nonaka #define	HDLG_IOW_VBASE		HDLG_IOPXS_VBASE
     71        1.1  nonaka #define	HDLG_80321_VBASE	(HDLG_IOW_VBASE + \
     72        1.1  nonaka 				 VERDE_OUT_XLATE_IO_WIN_SIZE)
     73        1.1  nonaka 
     74        1.1  nonaka /*
     75        1.1  nonaka  * The GIGALANDISK on-board devices are mapped VA==PA during bootstrap.
     76        1.1  nonaka  * Conveniently, the size of the on-board register space is 1 section
     77        1.1  nonaka  * mapping.
     78        1.1  nonaka  */
     79        1.1  nonaka #define	HDLG_OBIO_BASE	0xfe800000UL
     80        1.1  nonaka #define	HDLG_OBIO_SIZE	0x00100000UL	/* 1MB */
     81        1.1  nonaka 
     82        1.1  nonaka #define	HDLG_UART1	0xfe800000UL	/* TI 16550 */
     83        1.1  nonaka #define	HDLG_PLD	0xfe8d0000UL	/* CPLD */
     84        1.1  nonaka 
     85        1.1  nonaka /*
     86        1.1  nonaka  * CPLD
     87        1.1  nonaka  */
     88        1.1  nonaka #define	HDLG_LEDCTRL		(HDLG_PLD + 0x00)
     89        1.1  nonaka #define		LEDCTRL_STAT_GREEN	0x01
     90        1.1  nonaka #define		LEDCTRL_STAT_RED	0x02
     91        1.1  nonaka #define		LEDCTRL_USB1		0x04
     92        1.1  nonaka #define		LEDCTRL_USB2		0x08
     93        1.1  nonaka #define		LEDCTRL_USB3		0x10
     94        1.1  nonaka #define		LEDCTRL_USB4		0x20
     95        1.1  nonaka #define		LEDCTRL_HDD		0x40
     96        1.1  nonaka #define		LEDCTRL_BUZZER		0x80
     97        1.1  nonaka #define	HDLG_PWRLEDCTRL		(HDLG_PLD + 0x01)
     98        1.1  nonaka #define		PWRLEDCTRL_0		0x01
     99        1.1  nonaka #define		PWRLEDCTRL_1		0x02
    100        1.1  nonaka #define		PWRLEDCTRL_2		0x04
    101        1.1  nonaka #define		PWRLEDCTRL_3		0x08
    102        1.1  nonaka #define	HDLG_BTNSTAT		(HDLG_PLD + 0x02)
    103        1.1  nonaka #define		BTNSTAT_POWER		0x01
    104        1.1  nonaka #define		BTNSTAT_SELECT		0x02
    105        1.1  nonaka #define		BTNSTAT_COPY		0x04
    106        1.1  nonaka #define		BTNSTAT_REMOVE		0x08
    107        1.1  nonaka #define		BTNSTAT_RESET		0x10
    108        1.1  nonaka #define	HDLG_INTEN		(HDLG_PLD + 0x03)
    109        1.1  nonaka #define		INTEN_PWRSW		0x01
    110        1.1  nonaka #define		INTEN_BUTTON		0x02
    111        1.2  nonaka #define		INTEN_RTC		0x40
    112        1.1  nonaka #define	HDLG_PWRMNG		(HDLG_PLD + 0x04)
    113        1.1  nonaka #define		PWRMNG_POWOFF		0x01
    114        1.1  nonaka #define		PWRMNG_RESET		0x02
    115        1.2  nonaka #define	HDLG_FANCTRL		(HDLG_PLD + 0x06)
    116        1.2  nonaka #define		FANCTRL_OFF		0x00
    117        1.2  nonaka #define		FANCTRL_ON		0x01
    118        1.1  nonaka 
    119        1.1  nonaka #define	hdlg_enable_pldintr(bit) \
    120        1.1  nonaka do { \
    121        1.1  nonaka 	*(volatile uint8_t *)HDLG_INTEN |= (bit); \
    122        1.1  nonaka } while (/*CONSTCOND*/0)
    123        1.1  nonaka 
    124        1.1  nonaka #define	hdlg_disable_pldintr(bit) \
    125        1.1  nonaka do { \
    126        1.1  nonaka 	*(volatile uint8_t *)HDLG_INTEN &= ~(bit); \
    127        1.1  nonaka } while (/*CONSTCOND*/0)
    128        1.1  nonaka 
    129        1.1  nonaka #endif /* _HDLGREG_H_ */
    130