Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
awilliam
GitHub Repository: awilliam/linux-vfio
Path: blob/master/arch/mips/pnx8550/jbs/board_setup.c
10818 views
1
/*
2
* JBS Specific board startup routines.
3
*
4
* Copyright 2005, Embedded Alley Solutions, Inc
5
*
6
* This program is free software; you can redistribute it and/or modify it
7
* under the terms of the GNU General Public License as published by the
8
* Free Software Foundation; either version 2 of the License, or (at your
9
* option) any later version.
10
*
11
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
12
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
13
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
14
* NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
15
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
16
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
17
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
18
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
19
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
20
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
21
*
22
* You should have received a copy of the GNU General Public License along
23
* with this program; if not, write to the Free Software Foundation, Inc.,
24
* 675 Mass Ave, Cambridge, MA 02139, USA.
25
*/
26
#include <linux/init.h>
27
#include <linux/sched.h>
28
#include <linux/ioport.h>
29
#include <linux/mm.h>
30
#include <linux/console.h>
31
#include <linux/mc146818rtc.h>
32
#include <linux/delay.h>
33
34
#include <asm/cpu.h>
35
#include <asm/bootinfo.h>
36
#include <asm/irq.h>
37
#include <asm/mipsregs.h>
38
#include <asm/reboot.h>
39
#include <asm/pgtable.h>
40
41
#include <glb.h>
42
43
/* CP0 hazard avoidance. */
44
#define BARRIER __asm__ __volatile__(".set noreorder\n\t" \
45
"nop; nop; nop; nop; nop; nop;\n\t" \
46
".set reorder\n\t")
47
48
void __init board_setup(void)
49
{
50
unsigned long configpr;
51
52
configpr = read_c0_config7();
53
configpr |= (1<<19); /* enable tlb */
54
write_c0_config7(configpr);
55
BARRIER;
56
}
57
58