diff options
author | David Daney <ddaney@caviumnetworks.com> | 2009-04-23 20:44:38 -0400 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2009-06-17 06:06:25 -0400 |
commit | e8635b484f644c7873e6091f15330c49396f2cbc (patch) | |
tree | a12d2a4f22cd29d7b88c4df251eced3b43ea47a7 /arch/mips/include | |
parent | 8860fb8210b06720d5fe3c23b2803a211c26feb1 (diff) |
MIPS: Add Cavium OCTEON PCI support.
This patch adds support for PCI and PCIe to the base Cavium OCTEON
processor support.
Signed-off-by: David Daney <ddaney@caviumnetworks.com>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'arch/mips/include')
-rw-r--r-- | arch/mips/include/asm/octeon/cvmx-helper-errata.h | 33 | ||||
-rw-r--r-- | arch/mips/include/asm/octeon/cvmx-helper-jtag.h | 43 | ||||
-rw-r--r-- | arch/mips/include/asm/octeon/cvmx.h | 12 | ||||
-rw-r--r-- | arch/mips/include/asm/octeon/octeon.h | 2 |
4 files changed, 90 insertions, 0 deletions
diff --git a/arch/mips/include/asm/octeon/cvmx-helper-errata.h b/arch/mips/include/asm/octeon/cvmx-helper-errata.h new file mode 100644 index 000000000000..5fc99189ff58 --- /dev/null +++ b/arch/mips/include/asm/octeon/cvmx-helper-errata.h | |||
@@ -0,0 +1,33 @@ | |||
1 | /***********************license start*************** | ||
2 | * Author: Cavium Networks | ||
3 | * | ||
4 | * Contact: support@caviumnetworks.com | ||
5 | * This file is part of the OCTEON SDK | ||
6 | * | ||
7 | * Copyright (c) 2003-2008 Cavium Networks | ||
8 | * | ||
9 | * This file is free software; you can redistribute it and/or modify | ||
10 | * it under the terms of the GNU General Public License, Version 2, as | ||
11 | * published by the Free Software Foundation. | ||
12 | * | ||
13 | * This file is distributed in the hope that it will be useful, but | ||
14 | * AS-IS and WITHOUT ANY WARRANTY; without even the implied warranty | ||
15 | * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, TITLE, or | ||
16 | * NONINFRINGEMENT. See the GNU General Public License for more | ||
17 | * details. | ||
18 | * | ||
19 | * You should have received a copy of the GNU General Public License | ||
20 | * along with this file; if not, write to the Free Software | ||
21 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA | ||
22 | * or visit http://www.gnu.org/licenses/. | ||
23 | * | ||
24 | * This file may also be available under a different license from Cavium. | ||
25 | * Contact Cavium Networks for more information | ||
26 | ***********************license end**************************************/ | ||
27 | |||
28 | #ifndef __CVMX_HELPER_ERRATA_H__ | ||
29 | #define __CVMX_HELPER_ERRATA_H__ | ||
30 | |||
31 | extern void __cvmx_helper_errata_qlm_disable_2nd_order_cdr(int qlm); | ||
32 | |||
33 | #endif | ||
diff --git a/arch/mips/include/asm/octeon/cvmx-helper-jtag.h b/arch/mips/include/asm/octeon/cvmx-helper-jtag.h new file mode 100644 index 000000000000..29f016ddb895 --- /dev/null +++ b/arch/mips/include/asm/octeon/cvmx-helper-jtag.h | |||
@@ -0,0 +1,43 @@ | |||
1 | /***********************license start*************** | ||
2 | * Author: Cavium Networks | ||
3 | * | ||
4 | * Contact: support@caviumnetworks.com | ||
5 | * This file is part of the OCTEON SDK | ||
6 | * | ||
7 | * Copyright (c) 2003-2008 Cavium Networks | ||
8 | * | ||
9 | * This file is free software; you can redistribute it and/or modify | ||
10 | * it under the terms of the GNU General Public License, Version 2, as | ||
11 | * published by the Free Software Foundation. | ||
12 | * | ||
13 | * This file is distributed in the hope that it will be useful, but | ||
14 | * AS-IS and WITHOUT ANY WARRANTY; without even the implied warranty | ||
15 | * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, TITLE, or | ||
16 | * NONINFRINGEMENT. See the GNU General Public License for more | ||
17 | * details. | ||
18 | * | ||
19 | * You should have received a copy of the GNU General Public License | ||
20 | * along with this file; if not, write to the Free Software | ||
21 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA | ||
22 | * or visit http://www.gnu.org/licenses/. | ||
23 | * | ||
24 | * This file may also be available under a different license from Cavium. | ||
25 | * Contact Cavium Networks for more information | ||
26 | ***********************license end**************************************/ | ||
27 | |||
28 | /** | ||
29 | * @file | ||
30 | * | ||
31 | * Helper utilities for qlm_jtag. | ||
32 | * | ||
33 | */ | ||
34 | |||
35 | #ifndef __CVMX_HELPER_JTAG_H__ | ||
36 | #define __CVMX_HELPER_JTAG_H__ | ||
37 | |||
38 | extern void cvmx_helper_qlm_jtag_init(void); | ||
39 | extern uint32_t cvmx_helper_qlm_jtag_shift(int qlm, int bits, uint32_t data); | ||
40 | extern void cvmx_helper_qlm_jtag_shift_zeros(int qlm, int bits); | ||
41 | extern void cvmx_helper_qlm_jtag_update(int qlm); | ||
42 | |||
43 | #endif /* __CVMX_HELPER_JTAG_H__ */ | ||
diff --git a/arch/mips/include/asm/octeon/cvmx.h b/arch/mips/include/asm/octeon/cvmx.h index 03fddfa3e928..e31e3fe14f8a 100644 --- a/arch/mips/include/asm/octeon/cvmx.h +++ b/arch/mips/include/asm/octeon/cvmx.h | |||
@@ -376,6 +376,18 @@ static inline uint64_t cvmx_get_cycle(void) | |||
376 | } | 376 | } |
377 | 377 | ||
378 | /** | 378 | /** |
379 | * Wait for the specified number of cycle | ||
380 | * | ||
381 | */ | ||
382 | static inline void cvmx_wait(uint64_t cycles) | ||
383 | { | ||
384 | uint64_t done = cvmx_get_cycle() + cycles; | ||
385 | |||
386 | while (cvmx_get_cycle() < done) | ||
387 | ; /* Spin */ | ||
388 | } | ||
389 | |||
390 | /** | ||
379 | * Reads a chip global cycle counter. This counts CPU cycles since | 391 | * Reads a chip global cycle counter. This counts CPU cycles since |
380 | * chip reset. The counter is 64 bit. | 392 | * chip reset. The counter is 64 bit. |
381 | * This register does not exist on CN38XX pass 1 silicion | 393 | * This register does not exist on CN38XX pass 1 silicion |
diff --git a/arch/mips/include/asm/octeon/octeon.h b/arch/mips/include/asm/octeon/octeon.h index edc676084cda..cac9b1a206fc 100644 --- a/arch/mips/include/asm/octeon/octeon.h +++ b/arch/mips/include/asm/octeon/octeon.h | |||
@@ -245,4 +245,6 @@ static inline uint32_t octeon_npi_read32(uint64_t address) | |||
245 | return cvmx_read64_uint32(address ^ 4); | 245 | return cvmx_read64_uint32(address ^ 4); |
246 | } | 246 | } |
247 | 247 | ||
248 | extern struct cvmx_bootinfo *octeon_bootinfo; | ||
249 | |||
248 | #endif /* __ASM_OCTEON_OCTEON_H */ | 250 | #endif /* __ASM_OCTEON_OCTEON_H */ |