From: Andre Przywara <andre.przywara@arm.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v3 26/26] sunxi: A64: add 32-bit SPL support
Date: Mon, 19 Dec 2016 01:50:16 +0000 [thread overview]
Message-ID: <1482112216-12983-27-git-send-email-andre.przywara@arm.com> (raw)
In-Reply-To: <1482112216-12983-1-git-send-email-andre.przywara@arm.com>
When compiling the SPL for the Allwinner A64 in AArch64 mode, we can't
use the more compact Thumb2 encoding, which only exists for AArch32
code. This makes the SPL rather big, up to a point where any code
additions or even a different compiler may easily exceed the 32KB limit
that the Allwinner BROM imposes.
Introduce a separate, mostly generic sun50i-a64 configuration, which
defines the CPU_V7 symbol and thus will create a 32-bit binary using
the memory-saving Thumb2 encoding.
This should only be used for the SPL, the U-Boot proper should still be
using the existing 64-bit configuration. The SPL code can switch to
AArch64 if needed, so a 32-bit SPL can be combined with a 64-bit U-Boot
proper to eventually launch arm64 kernels.
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
---
board/sunxi/Kconfig | 14 ++++++++++++--
configs/pine64_plus_defconfig | 2 +-
configs/sun50i_spl32_defconfig | 10 ++++++++++
3 files changed, 23 insertions(+), 3 deletions(-)
create mode 100644 configs/sun50i_spl32_defconfig
diff --git a/board/sunxi/Kconfig b/board/sunxi/Kconfig
index 0001133..0d77c3a 100644
--- a/board/sunxi/Kconfig
+++ b/board/sunxi/Kconfig
@@ -43,6 +43,10 @@ config SUNXI_GEN_SUN6I
watchdog, etc.
+config MACH_SUN50I
+ bool
+ select SUNXI_GEN_SUN6I
+
choice
prompt "Sunxi SoC Variant"
optional
@@ -121,10 +125,16 @@ config MACH_SUN9I
select SUNXI_GEN_SUN6I
select SUPPORT_SPL
-config MACH_SUN50I
+config MACH_SUN50I_64
bool "sun50i (Allwinner A64)"
+ select MACH_SUN50I
select ARM64
- select SUNXI_GEN_SUN6I
+ select SUPPORT_SPL
+
+config MACH_SUN50I_32
+ bool "sun50i (Allwinner A64) SPL-32bit"
+ select MACH_SUN50I
+ select CPU_V7
select SUPPORT_SPL
endchoice
diff --git a/configs/pine64_plus_defconfig b/configs/pine64_plus_defconfig
index 2374170..a76f66a 100644
--- a/configs/pine64_plus_defconfig
+++ b/configs/pine64_plus_defconfig
@@ -1,7 +1,7 @@
CONFIG_ARM=y
CONFIG_RESERVE_ALLWINNER_BOOT0_HEADER=y
CONFIG_ARCH_SUNXI=y
-CONFIG_MACH_SUN50I=y
+CONFIG_MACH_SUN50I_64=y
CONFIG_DEFAULT_DEVICE_TREE="sun50i-a64-pine64-plus"
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
CONFIG_CONSOLE_MUX=y
diff --git a/configs/sun50i_spl32_defconfig b/configs/sun50i_spl32_defconfig
new file mode 100644
index 0000000..29c6a47
--- /dev/null
+++ b/configs/sun50i_spl32_defconfig
@@ -0,0 +1,10 @@
+CONFIG_ARM=y
+CONFIG_ARCH_SUNXI=y
+CONFIG_MACH_SUN50I_32=y
+CONFIG_SPL=y
+CONFIG_DEFAULT_DEVICE_TREE="sun50i-a64-pine64-plus"
+CONFIG_OF_LIST="sun50i-a64-pine64 sun50i-a64-pine64-plus"
+# CONFIG_CMD_IMLS is not set
+# CONFIG_CMD_FLASH is not set
+# CONFIG_CMD_FPGA is not set
+CONFIG_MMC_SUNXI_SLOT_EXTRA=2
--
2.8.2
next prev parent reply other threads:[~2016-12-19 1:50 UTC|newest]
Thread overview: 48+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-12-19 1:49 [U-Boot] [PATCH v3 00/26] sunxi: Allwinner A64: SPL support Andre Przywara
2016-12-19 1:49 ` [U-Boot] [PATCH v3 01/26] sun6i: Restrict some register initialization to Allwinner A31 SoC Andre Przywara
2016-12-19 1:49 ` [U-Boot] [PATCH v3 02/26] armv8: prevent using THUMB Andre Przywara
2016-12-19 1:49 ` [U-Boot] [PATCH v3 03/26] armv8: add lowlevel_init.S Andre Przywara
2016-12-26 5:23 ` Simon Glass
2016-12-19 1:49 ` [U-Boot] [PATCH v3 04/26] SPL: tiny-printf: add "l" modifier Andre Przywara
2016-12-19 1:49 ` [U-Boot] [PATCH v3 05/26] SPL: tiny-printf: ignore "-" modifier Andre Przywara
2016-12-26 5:23 ` Simon Glass
2016-12-19 1:49 ` [U-Boot] [PATCH v3 06/26] move UL() macro from armv8/mmu.h into common.h Andre Przywara
2016-12-19 1:49 ` [U-Boot] [PATCH v3 07/26] SPL: make struct spl_image 64-bit safe Andre Przywara
2016-12-19 1:49 ` [U-Boot] [PATCH v3 08/26] armv8: add simple sdelay implementation Andre Przywara
2016-12-19 1:49 ` [U-Boot] [PATCH v3 09/26] armv8: move reset branch into boot hook Andre Przywara
2016-12-19 1:50 ` [U-Boot] [PATCH v3 10/26] ARM: boot0 hook: remove macro, include whole header file Andre Przywara
2016-12-30 20:41 ` Steve Rae
2016-12-19 1:50 ` [U-Boot] [PATCH v3 11/26] sunxi: introduce extra config option for boot0 header Andre Przywara
2016-12-19 1:50 ` [U-Boot] [PATCH v3 12/26] sunxi: A64: do an RMR switch if started in AArch32 mode Andre Przywara
2016-12-19 9:43 ` Maxime Ripard
2016-12-19 1:50 ` [U-Boot] [PATCH v3 13/26] sunxi: provide default DRAM config for sun50i in Kconfig Andre Przywara
2016-12-19 9:43 ` Maxime Ripard
2016-12-19 1:50 ` [U-Boot] [PATCH v3 14/26] sunxi: H3: Rework MBUS priority setup Andre Przywara
2016-12-19 9:44 ` Maxime Ripard
2016-12-19 1:50 ` [U-Boot] [PATCH v3 15/26] sunxi: H3: add and rename some DRAM contoller registers Andre Przywara
2016-12-19 1:50 ` [U-Boot] [PATCH v3 16/26] sunxi: H3: add DRAM controller single bit delay support Andre Przywara
2016-12-19 9:57 ` Maxime Ripard
2016-12-19 10:53 ` Andre Przywara
2016-12-20 13:48 ` Maxime Ripard
2016-12-19 1:50 ` [U-Boot] [PATCH v3 17/26] sunxi: clocks: Use the correct pattern register for PLL11 Andre Przywara
2016-12-19 9:58 ` Maxime Ripard
2016-12-19 1:50 ` [U-Boot] [PATCH v3 18/26] sunxi: A64: use H3 DRAM initialization code for A64 as well Andre Przywara
2016-12-19 10:00 ` Maxime Ripard
2016-12-19 1:50 ` [U-Boot] [PATCH v3 19/26] sunxi: H3/A64: fix non-ODT setting Andre Przywara
2016-12-19 10:01 ` Maxime Ripard
2016-12-19 10:33 ` Andre Przywara
2016-12-19 14:32 ` Jens Kuske
2016-12-20 10:49 ` Maxime Ripard
2016-12-19 1:50 ` [U-Boot] [PATCH v3 20/26] sunxi: DRAM: fix H3 DRAM size display on aarch64 Andre Przywara
2016-12-19 10:01 ` Maxime Ripard
2016-12-19 1:50 ` [U-Boot] [PATCH v3 21/26] sunxi: A64: enable SPL Andre Przywara
2016-12-19 10:01 ` Maxime Ripard
2016-12-26 5:23 ` Simon Glass
2016-12-19 1:50 ` [U-Boot] [PATCH v3 22/26] SPL: read and store arch property from U-Boot image Andre Przywara
2016-12-19 1:50 ` [U-Boot] [PATCH v3 23/26] Makefile: use "arm64" architecture for U-Boot image files Andre Przywara
2016-12-19 1:50 ` [U-Boot] [PATCH v3 24/26] ARM: SPL/FIT: differentiate between arm and arm64 arch properties Andre Przywara
2016-12-19 1:50 ` [U-Boot] [PATCH v3 25/26] sunxi: introduce RMR switch to enter payloads in 64-bit mode Andre Przywara
2016-12-19 10:03 ` Maxime Ripard
2016-12-19 1:50 ` Andre Przywara [this message]
2016-12-19 10:05 ` [U-Boot] [PATCH v3 26/26] sunxi: A64: add 32-bit SPL support Maxime Ripard
2017-01-01 19:02 ` [U-Boot] [PATCH v3 00/26] sunxi: Allwinner A64: " Jagan Teki
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1482112216-12983-27-git-send-email-andre.przywara@arm.com \
--to=andre.przywara@arm.com \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox