]> git.ipfire.org Git - people/ms/u-boot.git/blame - arch/arm/include/asm/global_data.h
ARM: atmel: add sama5d4 xplained ultra board support
[people/ms/u-boot.git] / arch / arm / include / asm / global_data.h
CommitLineData
0157cedb 1/*
91a76751 2 * (C) Copyright 2002-2010
0157cedb
WD
3 * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
4 *
1a459660 5 * SPDX-License-Identifier: GPL-2.0+
0157cedb
WD
6 */
7
8#ifndef __ASM_GBL_DATA_H
9#define __ASM_GBL_DATA_H
5cb48582 10
fda06812
S
11#ifdef CONFIG_OMAP
12#include <asm/omap_boot.h>
13#endif
14
5cb48582
SG
15/* Architecture-specific global data */
16struct arch_global_data {
e9adeca3
SG
17#if defined(CONFIG_FSL_ESDHC)
18 u32 sdhc_clk;
19#endif
f47e6ecd
SG
20#ifdef CONFIG_AT91FAMILY
21 /* "static data" needed by at91's clock.c */
22 unsigned long cpu_clk_rate_hz;
23 unsigned long main_clk_rate_hz;
24 unsigned long mck_rate_hz;
25 unsigned long plla_rate_hz;
26 unsigned long pllb_rate_hz;
27 unsigned long at91_pllb_usb_init;
28#endif
b339051c
SG
29 /* "static data" needed by most of timer.c on ARM platforms */
30 unsigned long timer_rate_hz;
8ff43b03 31 unsigned long tbu;
66ee6923 32 unsigned long tbl;
582601da 33 unsigned long lastinc;
5f70714c 34 unsigned long long timer_reset_value;
34fd5d25
SG
35#if !(defined(CONFIG_SYS_ICACHE_OFF) && defined(CONFIG_SYS_DCACHE_OFF))
36 unsigned long tlb_addr;
37 unsigned long tlb_size;
38#endif
fda06812
S
39
40#ifdef CONFIG_OMAP
41 struct omap_boot_parameters omap_boot_params;
42#endif
5cb48582
SG
43};
44
baa1e536 45#include <asm-generic/global_data.h>
0157cedb 46
c65a2abb
JH
47#ifdef __clang__
48
49#define DECLARE_GLOBAL_DATA_PTR
50#define gd get_gd()
51
52static inline gd_t *get_gd(void)
53{
54 gd_t *gd_ptr;
55
56#ifdef CONFIG_ARM64
57 /*
58 * Make will already error that reserving x18 is not supported at the
59 * time of writing, clang: error: unknown argument: '-ffixed-x18'
60 */
61 __asm__ volatile("mov %0, x18\n" : "=r" (gd_ptr));
62#else
63 __asm__ volatile("mov %0, r9\n" : "=r" (gd_ptr));
64#endif
65
66 return gd_ptr;
67}
68
69#else
70
0ae76531
DF
71#ifdef CONFIG_ARM64
72#define DECLARE_GLOBAL_DATA_PTR register volatile gd_t *gd asm ("x18")
73#else
74#define DECLARE_GLOBAL_DATA_PTR register volatile gd_t *gd asm ("r9")
75#endif
c65a2abb 76#endif
0157cedb
WD
77
78#endif /* __ASM_GBL_DATA_H */