1233542Sjchandra/*-
2233542Sjchandra * Copyright (c) 2003-2012 Broadcom Corporation
3233542Sjchandra * All Rights Reserved
4233542Sjchandra *
5233542Sjchandra * Redistribution and use in source and binary forms, with or without
6233542Sjchandra * modification, are permitted provided that the following conditions
7233542Sjchandra * are met:
8233542Sjchandra *
9233542Sjchandra * 1. Redistributions of source code must retain the above copyright
10233542Sjchandra *    notice, this list of conditions and the following disclaimer.
11233542Sjchandra * 2. Redistributions in binary form must reproduce the above copyright
12233542Sjchandra *    notice, this list of conditions and the following disclaimer in
13233542Sjchandra *    the documentation and/or other materials provided with the
14233542Sjchandra *    distribution.
15279387Sjchandra *
16233542Sjchandra * THIS SOFTWARE IS PROVIDED BY BROADCOM ``AS IS'' AND ANY EXPRESS OR
17233542Sjchandra * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18233542Sjchandra * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19233542Sjchandra * ARE DISCLAIMED. IN NO EVENT SHALL BROADCOM OR CONTRIBUTORS BE LIABLE
20233542Sjchandra * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
21233542Sjchandra * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
22233542Sjchandra * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
23233542Sjchandra * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
24233542Sjchandra * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
25233542Sjchandra * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
26233542Sjchandra * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27233542Sjchandra *
28233542Sjchandra * $FreeBSD$
29233542Sjchandra */
30233542Sjchandra#ifndef _NLM_HAL_GBU_H__
31233542Sjchandra#define	_NLM_HAL_GBU_H__
32233542Sjchandra
33233542Sjchandra/* Global Bus Unit (GBU) for flash Specific registers */
34233542Sjchandra
35233542Sjchandra#define	GBU_CS_BASEADDR(cs)	(0x0+cs)
36233542Sjchandra#define	GBU_CS0_BASEADDR	0x0
37233542Sjchandra#define	GBU_CS1_BASEADDR	0x1
38233542Sjchandra#define	GBU_CS2_BASEADDR	0x2
39233542Sjchandra#define	GBU_CS3_BASEADDR	0x3
40233542Sjchandra#define	GBU_CS4_BASEADDR	0x4
41233542Sjchandra#define	GBU_CS5_BASEADDR	0x5
42233542Sjchandra#define	GBU_CS6_BASEADDR	0x6
43233542Sjchandra#define	GBU_CS7_BASEADDR	0x7
44233542Sjchandra#define	GBU_CS_BASELIMIT(cs)	(0x8+cs)
45233542Sjchandra#define	GBU_CS0_BASELIMIT	0x8
46233542Sjchandra#define	GBU_CS1_BASELIMIT	0x9
47233542Sjchandra#define	GBU_CS2_BASELIMIT	0xa
48233542Sjchandra#define	GBU_CS3_BASELIMIT	0xb
49233542Sjchandra#define	GBU_CS4_BASELIMIT	0xc
50233542Sjchandra#define	GBU_CS5_BASELIMIT	0xd
51233542Sjchandra#define	GBU_CS6_BASELIMIT	0xe
52233542Sjchandra#define	GBU_CS7_BASELIMIT	0xf
53233542Sjchandra#define	GBU_CS_DEVPARAM(cs)	(0x10+cs)
54233542Sjchandra#define	GBU_CS0_DEVPARAM	0x10
55233542Sjchandra#define	GBU_CS1_DEVPARAM	0x11
56233542Sjchandra#define	GBU_CS2_DEVPARAM	0x12
57233542Sjchandra#define	GBU_CS3_DEVPARAM	0x13
58233542Sjchandra#define	GBU_CS4_DEVPARAM	0x14
59233542Sjchandra#define	GBU_CS5_DEVPARAM	0x15
60233542Sjchandra#define	GBU_CS6_DEVPARAM	0x16
61233542Sjchandra#define	GBU_CS7_DEVPARAM	0x17
62233542Sjchandra#define	GBU_CS_DEVTIME0(cs)	(0x18+cs)
63233542Sjchandra#define	GBU_CS0_DEVTIME0	0x18
64233542Sjchandra#define	GBU_CS1_DEVTIME0	0x1a
65233542Sjchandra#define	GBU_CS2_DEVTIME0	0x1c
66233542Sjchandra#define	GBU_CS3_DEVTIME0	0x1e
67233542Sjchandra#define	GBU_CS4_DEVTIME0	0x20
68233542Sjchandra#define	GBU_CS5_DEVTIME0	0x22
69233542Sjchandra#define	GBU_CS6_DEVTIME0	0x24
70233542Sjchandra#define	GBU_CS7_DEVTIME0	0x26
71233542Sjchandra#define	GBU_CS_DEVTIME1(cs)	(0x19+cs)
72233542Sjchandra#define	GBU_CS0_DEVTIME1	0x19
73233542Sjchandra#define	GBU_CS1_DEVTIME1	0x1b
74233542Sjchandra#define	GBU_CS2_DEVTIME1	0x1d
75233542Sjchandra#define	GBU_CS3_DEVTIME1	0x1f
76233542Sjchandra#define	GBU_CS4_DEVTIME1	0x21
77233542Sjchandra#define	GBU_CS5_DEVTIME1	0x23
78233542Sjchandra#define	GBU_CS6_DEVTIME1	0x25
79233542Sjchandra#define	GBU_CS7_DEVTIME1	0x27
80233542Sjchandra#define	GBU_SYSCTRL		0x28
81233542Sjchandra#define	GBU_BYTESWAP		0x29
82233542Sjchandra#define	GBU_DI_TIMEOUT_VAL	0x2d
83233542Sjchandra#define	GBU_INTSTAT		0x2e
84233542Sjchandra#define	GBU_INTEN		0x2f
85233542Sjchandra#define	GBU_STATUS		0x30
86233542Sjchandra#define	GBU_ERRLOG0		0x2a
87233542Sjchandra#define	GBU_ERRLOG1		0x2b
88233542Sjchandra#define	GBU_ERRLOG2		0x2c
89233542Sjchandra
90233542Sjchandra#if !defined(LOCORE) && !defined(__ASSEMBLY__)
91233542Sjchandra
92233542Sjchandra#define	nlm_read_gbu_reg(b, r)		nlm_read_reg(b, r)
93233542Sjchandra#define	nlm_write_gbu_reg(b, r, v)	nlm_write_reg(b, r, v)
94233542Sjchandra#define	nlm_get_gbu_pcibase(node)	\
95233542Sjchandra				nlm_pcicfg_base(XLP_IO_NOR_OFFSET(node))
96233542Sjchandra#define	nlm_get_gbu_regbase(node)	\
97233542Sjchandra				(nlm_get_gbu_pcibase(node) + XLP_IO_PCI_HDRSZ)
98233542Sjchandra
99233542Sjchandra#endif /* !LOCORE && !__ASSEMBLY__ */
100233542Sjchandra#endif /* _NLM_HAL_GBU_H__ */
101