xref: /linux/arch/powerpc/boot/wii.c (revision 6cdd24179d31b5e9beaea01f8ac5a1ba77415e33)
1*6cdd2417SAlbert Herranz /*
2*6cdd2417SAlbert Herranz  * arch/powerpc/boot/wii.c
3*6cdd2417SAlbert Herranz  *
4*6cdd2417SAlbert Herranz  * Nintendo Wii bootwrapper support
5*6cdd2417SAlbert Herranz  * Copyright (C) 2008-2009 The GameCube Linux Team
6*6cdd2417SAlbert Herranz  * Copyright (C) 2008,2009 Albert Herranz
7*6cdd2417SAlbert Herranz  *
8*6cdd2417SAlbert Herranz  * This program is free software; you can redistribute it and/or
9*6cdd2417SAlbert Herranz  * modify it under the terms of the GNU General Public License
10*6cdd2417SAlbert Herranz  * as published by the Free Software Foundation; either version 2
11*6cdd2417SAlbert Herranz  * of the License, or (at your option) any later version.
12*6cdd2417SAlbert Herranz  *
13*6cdd2417SAlbert Herranz  */
14*6cdd2417SAlbert Herranz 
15*6cdd2417SAlbert Herranz #include <stddef.h>
16*6cdd2417SAlbert Herranz #include "stdio.h"
17*6cdd2417SAlbert Herranz #include "types.h"
18*6cdd2417SAlbert Herranz #include "io.h"
19*6cdd2417SAlbert Herranz #include "ops.h"
20*6cdd2417SAlbert Herranz 
21*6cdd2417SAlbert Herranz #include "ugecon.h"
22*6cdd2417SAlbert Herranz 
23*6cdd2417SAlbert Herranz BSS_STACK(8192);
24*6cdd2417SAlbert Herranz 
25*6cdd2417SAlbert Herranz #define HW_REG(x)	((void *)(x))
26*6cdd2417SAlbert Herranz 
27*6cdd2417SAlbert Herranz #define EXI_CTRL	HW_REG(0x0d800070)
28*6cdd2417SAlbert Herranz #define EXI_CTRL_ENABLE	(1<<0)
29*6cdd2417SAlbert Herranz 
30*6cdd2417SAlbert Herranz void platform_init(unsigned long r3, unsigned long r4, unsigned long r5)
31*6cdd2417SAlbert Herranz {
32*6cdd2417SAlbert Herranz 	u32 heapsize = 24*1024*1024 - (u32)_end;
33*6cdd2417SAlbert Herranz 
34*6cdd2417SAlbert Herranz 	simple_alloc_init(_end, heapsize, 32, 64);
35*6cdd2417SAlbert Herranz 	fdt_init(_dtb_start);
36*6cdd2417SAlbert Herranz 
37*6cdd2417SAlbert Herranz 	/*
38*6cdd2417SAlbert Herranz 	 * 'mini' boots the Broadway processor with EXI disabled.
39*6cdd2417SAlbert Herranz 	 * We need it enabled before probing for the USB Gecko.
40*6cdd2417SAlbert Herranz 	 */
41*6cdd2417SAlbert Herranz 	out_be32(EXI_CTRL, in_be32(EXI_CTRL) | EXI_CTRL_ENABLE);
42*6cdd2417SAlbert Herranz 
43*6cdd2417SAlbert Herranz 	if (ug_probe())
44*6cdd2417SAlbert Herranz 		console_ops.write = ug_console_write;
45*6cdd2417SAlbert Herranz }
46*6cdd2417SAlbert Herranz 
47