summaryrefslogtreecommitdiffstats
path: root/arch/arm/boards/calao/lowlevel.c
blob: 2a081a97a4e379d7cd869fda53558fe42fb04792 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
// SPDX-License-Identifier: GPL-2.0-only

#include <common.h>
#include <init.h>
#include <debug_ll.h>
#include <asm/reloc.h>
#include <mach/at91/barebox-arm.h>
#include <mach/at91/at91sam9_sdramc.h>
#include <mach/at91/at91sam9260.h>
#include <mach/at91/hardware.h>

static void dbgu_init(void)
{
	/* pinmux/clocks/uart already configured by first stage */
	putc_ll('>');
}

#define CALAO_ENTRY_2ND(entrypoint, dtbname) \
AT91_ENTRY_FUNCTION(entrypoint, r0, r1, r2) { \
	extern char __dtb_z_##dtbname##_start[]; \
	arm_cpu_lowlevel_init(); \
	arm_setup_stack(AT91SAM9260_SRAM_END); \
	dbgu_init(); \
	at91sam9260_barebox_entry(runtime_address(__dtb_z_##dtbname##_start)); \
}

CALAO_ENTRY_2ND(start_tny_a9260, tny_a9260);
CALAO_ENTRY_2ND(start_tny_a9g20, tny_a9g20);
CALAO_ENTRY_2ND(start_usb_a9260, usb_a9260);
CALAO_ENTRY_2ND(start_usb_a9g20, usb_a9g20);