3 * \brief Support for Tegra 2 platforms
6 * \author Adam Lackorznynski <adam@os.inf.tu-dresden.de>
11 * economic rights: Technische Universität Dresden (Germany)
13 * This file is part of TUD:OS and distributed under the terms of the
14 * GNU General Public License 2.
15 * Please see the COPYING-GPL-2 file for details.
18 /* Init-code from http://android.git.kernel.org/?p=kernel/tegra.git */
21 #include <l4/drivers/uart_pxa.h>
24 class Platform_arm_tegra2 : public Platform_single_region_ram
26 void some_delay(int d) const
28 for (int i = 0; i < d; i++)
29 asm volatile("":::"memory");
32 bool probe() { return true; }
36 volatile unsigned long *addr;
38 addr = (volatile unsigned long *)0x600060a0;
42 addr = (volatile unsigned long *)0x600060a4;
46 addr = (volatile unsigned long *)0x600060a8;
50 addr = (volatile unsigned long *)0x600060ac;
55 /* UARTD clock source is PLLP_OUT0 */
56 addr = (volatile unsigned long *)0x600061c0;
59 /* Enable clock to UARTD */
60 addr = (volatile unsigned long *)0x60006018;
64 /* Deassert reset to UARTD */
65 addr = (volatile unsigned long *)0x6000600c;
70 static L4::Uart_16550 _uart(13478400);
71 static L4::Io_register_block_mmio r(0x70006300, 2);
73 _uart.change_mode(3, 115200);
74 set_stdio_uart(&_uart);
79 REGISTER_PLATFORM(Platform_arm_tegra2);