From f0ce28e9eda9cb1430c51df1840ce8cd483f75c3 Mon Sep 17 00:00:00 2001
From: Siarhei Siamashka <siarhei.siamashka@gmail.com>
Date: Thu, 25 Dec 2014 02:34:47 +0200
Subject: [PATCH] sunxi: Fix CONFIG_UART0_PORT_F build and add it to menuconfig

The CONFIG_UART0_PORT_F option has been supported since
    http://git.denx.de/?p=u-boot.git;a=commit;h=ff2b47f6a9cc1025

This option is primarily useful only for low level u-boot debugging
on tablets, where normal UART0 is difficult to access and requires
device disassembly and/or soldering.

This patch now allows it to be selected from menuconfig. A dependency on
SPL_FEL is added because u-boot does not support booting from NAND yet
and also booting from SD card is impossible when a MicroSD breakout board
is plugged into the SD slot.

Additionally a compilation problem is fixed:

common/spl/built-in.o: In function `spl_mmc_load_image':
/tmp/u-boot-sunxi/common/spl/spl_mmc.c:94: undefined reference to `mmc_initialize'
/tmp/u-boot-sunxi/common/spl/spl_mmc.c:96: undefined reference to `find_mmc_device'
/tmp/u-boot-sunxi/common/spl/spl_mmc.c:104: undefined reference to `mmc_init'
scripts/Makefile.spl:206: recipe for target 'spl/u-boot-spl' failed

Signed-off-by: Siarhei Siamashka <siarhei.siamashka@gmail.com>
Acked-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
---
 board/sunxi/Kconfig            | 12 ++++++++++++
 include/configs/sunxi-common.h |  3 +++
 scripts/multiconfig.sh         |  2 +-
 3 files changed, 16 insertions(+), 1 deletion(-)

diff --git a/board/sunxi/Kconfig b/board/sunxi/Kconfig
index 9bb593aed04..40adcfb4010 100644
--- a/board/sunxi/Kconfig
+++ b/board/sunxi/Kconfig
@@ -177,6 +177,18 @@ config SPL_FEL
 	depends on SPL
 	default n
 
+config UART0_PORT_F
+	bool "UART0 on MicroSD breakout board"
+	depends on SPL_FEL
+	default n
+	---help---
+	Repurpose the SD card slot for getting access to the UART0 serial
+	console. Primarily useful only for low level u-boot debugging on
+	tablets, where normal UART0 is difficult to access and requires
+	device disassembly and/or soldering. As the SD card can't be used
+	at the same time, the system can be only booted in the FEL mode.
+	Only enable this if you really know what you are doing.
+
 config FDTFILE
 	string "Default fdtfile env setting for this board"
 
diff --git a/include/configs/sunxi-common.h b/include/configs/sunxi-common.h
index 3f890b2fb03..f7e87a2c378 100644
--- a/include/configs/sunxi-common.h
+++ b/include/configs/sunxi-common.h
@@ -160,7 +160,10 @@
 #define CONFIG_SPL_MAX_SIZE		0x5fe0		/* 24KB on sun4i/sun7i */
 
 #define CONFIG_SPL_LIBDISK_SUPPORT
+
+#if !defined(CONFIG_UART0_PORT_F)
 #define CONFIG_SPL_MMC_SUPPORT
+#endif
 
 #define CONFIG_SPL_LDSCRIPT "arch/arm/cpu/armv7/sunxi/u-boot-spl.lds"
 
diff --git a/scripts/multiconfig.sh b/scripts/multiconfig.sh
index 70f3a5df6f7..366e8faaa66 100755
--- a/scripts/multiconfig.sh
+++ b/scripts/multiconfig.sh
@@ -168,7 +168,7 @@ do_board_felconfig () {
 	echo "$progname: Cannot felconfig a non-sunxi or non-SPL platform" >&2
 	exit 1
     fi
-    sed -i -e 's/\# CONFIG_SPL_FEL is not set/CONFIG_SPL_FEL=y/g' \
+    sed -i -e 's/\# CONFIG_SPL_FEL is not set/CONFIG_SPL_FEL=y\nCONFIG_UART0_PORT_F=n/g' \
 	.config spl/.config
 }
 
-- 
GitLab