u-boot-2019.07: Fix for Raspberry Pi 4
[AGL/meta-agl.git] / meta-agl-bsp / meta-raspberrypi / recipes-bsp / u-boot / u-boot-2019.07 / 0002-ARM-bcm283x-Add-BCM283x_BASE-define.patch
1 From df2aa4c6be33b468adc09de337a055556d1f37fb Mon Sep 17 00:00:00 2001
2 From: Matthias Brugger <mbrugger@suse.com>
3 Date: Fri, 12 Jul 2019 18:20:53 +0200
4 Subject: [PATCH 2/7] ARM: bcm283x: Add BCM283x_BASE define
5
6 Devices of bcm283x have different base address, depending if they are on
7 bcm2835 or bcm2836/7. Use BCM283x_BASE depending on the SoC you want to
8 build and only add the offset in the header files.
9
10 Signed-off-by: Matthias Brugger <mbrugger@suse.com>
11 Signed-off-by: Andrei Gherzan <andrei@balena.io>
12 Upstream-status: Pending
13 ---
14  arch/arm/mach-bcm283x/Kconfig              | 5 +++++
15  arch/arm/mach-bcm283x/include/mach/mbox.h  | 6 +-----
16  arch/arm/mach-bcm283x/include/mach/sdhci.h | 6 +-----
17  arch/arm/mach-bcm283x/include/mach/timer.h | 6 +-----
18  arch/arm/mach-bcm283x/include/mach/wdog.h  | 6 +-----
19  5 files changed, 9 insertions(+), 20 deletions(-)
20
21 diff --git a/arch/arm/mach-bcm283x/Kconfig b/arch/arm/mach-bcm283x/Kconfig
22 index 3eb5a9a897..8e69914a83 100644
23 --- a/arch/arm/mach-bcm283x/Kconfig
24 +++ b/arch/arm/mach-bcm283x/Kconfig
25 @@ -141,4 +141,9 @@ config SYS_SOC
26  config SYS_CONFIG_NAME
27         default "rpi"
28  
29 +config BCM283x_BASE
30 +       hex
31 +       default "0x20000000" if BCM2835
32 +       default "0x3f000000" if BCM2836 || BCM2837
33 +
34  endmenu
35 diff --git a/arch/arm/mach-bcm283x/include/mach/mbox.h b/arch/arm/mach-bcm283x/include/mach/mbox.h
36 index e3a893e49c..e44c7577da 100644
37 --- a/arch/arm/mach-bcm283x/include/mach/mbox.h
38 +++ b/arch/arm/mach-bcm283x/include/mach/mbox.h
39 @@ -37,11 +37,7 @@
40  
41  /* Raw mailbox HW */
42  
43 -#ifndef CONFIG_BCM2835
44 -#define BCM2835_MBOX_PHYSADDR  0x3f00b880
45 -#else
46 -#define BCM2835_MBOX_PHYSADDR  0x2000b880
47 -#endif
48 +#define BCM2835_MBOX_PHYSADDR  (CONFIG_BCM283x_BASE + 0x0000b880)
49  
50  struct bcm2835_mbox_regs {
51         u32 read;
52 diff --git a/arch/arm/mach-bcm283x/include/mach/sdhci.h b/arch/arm/mach-bcm283x/include/mach/sdhci.h
53 index 5cb6ec3340..b443c379d8 100644
54 --- a/arch/arm/mach-bcm283x/include/mach/sdhci.h
55 +++ b/arch/arm/mach-bcm283x/include/mach/sdhci.h
56 @@ -6,11 +6,7 @@
57  #ifndef _BCM2835_SDHCI_H_
58  #define _BCM2835_SDHCI_H_
59  
60 -#ifndef CONFIG_BCM2835
61 -#define BCM2835_SDHCI_BASE 0x3f300000
62 -#else
63 -#define BCM2835_SDHCI_BASE 0x20300000
64 -#endif
65 +#define BCM2835_SDHCI_BASE (CONFIG_BCM283x_BASE + 0x00300000)
66  
67  int bcm2835_sdhci_init(u32 regbase, u32 emmc_freq);
68  
69 diff --git a/arch/arm/mach-bcm283x/include/mach/timer.h b/arch/arm/mach-bcm283x/include/mach/timer.h
70 index 56b0c356bb..014355e759 100644
71 --- a/arch/arm/mach-bcm283x/include/mach/timer.h
72 +++ b/arch/arm/mach-bcm283x/include/mach/timer.h
73 @@ -6,11 +6,7 @@
74  #ifndef _BCM2835_TIMER_H
75  #define _BCM2835_TIMER_H
76  
77 -#ifndef CONFIG_BCM2835
78 -#define BCM2835_TIMER_PHYSADDR 0x3f003000
79 -#else
80 -#define BCM2835_TIMER_PHYSADDR 0x20003000
81 -#endif
82 +#define BCM2835_TIMER_PHYSADDR (CONFIG_BCM283x_BASE + 0x00003000)
83  
84  #define BCM2835_TIMER_CS_M3    (1 << 3)
85  #define BCM2835_TIMER_CS_M2    (1 << 2)
86 diff --git a/arch/arm/mach-bcm283x/include/mach/wdog.h b/arch/arm/mach-bcm283x/include/mach/wdog.h
87 index 99c88e5df7..00b5e06c3a 100644
88 --- a/arch/arm/mach-bcm283x/include/mach/wdog.h
89 +++ b/arch/arm/mach-bcm283x/include/mach/wdog.h
90 @@ -6,11 +6,7 @@
91  #ifndef _BCM2835_WDOG_H
92  #define _BCM2835_WDOG_H
93  
94 -#ifndef CONFIG_BCM2835
95 -#define BCM2835_WDOG_PHYSADDR                  0x3f100000
96 -#else
97 -#define BCM2835_WDOG_PHYSADDR                  0x20100000
98 -#endif
99 +#define BCM2835_WDOG_PHYSADDR                  (CONFIG_BCM283x_BASE + 0x00100000)
100  
101  struct bcm2835_wdog_regs {
102         u32 unknown0[7];
103 -- 
104 2.22.0
105