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