meta-facebook: meta-yosemitev2: add support for host console in SPL

This feature adds four 1S server console through debug card
connected to YosemiteV2 during boot.

Tested:
  BMC and four 1 server uart console message getting through USB debug card by change position in
  the knob (Adaptor card).
  The YV2 needs to power ON after every change in the knob position to take effect and run time
  debug console handler will take care by application after boot.

(From meta-facebook rev: bf07eebdca7175ded4c96185fe4b182e55d09772)

Signed-off-by: Manikandan Elumalai <manikandan.hcl.ers.epl@gmail.com>
Change-Id: I66939c8a04cd8fa97b6fdae91ed0b52086c8d0d5
Signed-off-by: Andrew Geissler <geissonator@yahoo.com>
diff --git a/meta-facebook/meta-yosemitev2/recipes-bsp/u-boot/u-boot-aspeed/0001-spl-host-console-handle.patch b/meta-facebook/meta-yosemitev2/recipes-bsp/u-boot/u-boot-aspeed/0001-spl-host-console-handle.patch
new file mode 100755
index 0000000..cccdd04
--- /dev/null
+++ b/meta-facebook/meta-yosemitev2/recipes-bsp/u-boot/u-boot-aspeed/0001-spl-host-console-handle.patch
@@ -0,0 +1,184 @@
+From ca2c08a7e710e4beff2fdf17bba5a74adff13db8 Mon Sep 17 00:00:00 2001
+From: Manikandan Elumalai <manikandan.hcl.ers.epl@gmail.com>
+Date: Wed, 10 Jun 2020 17:53:59 +0530
+Subject: [PATCH] spl-host-console-handle
+
+This patch adds four 1S server console through debug card
+connected to YosemiteV2 during boot.
+
+Handswitch in the adaptor card connected to AST2500 GPIOs as below,
+GPIOAA7 ---SW_ID8
+GPIOAA6 ---SW_ID4
+GPIOAA5 ---SW_ID2
+GPIOAA4 ---SW_ID1
+
+SW_ID8  SW_ID4  SW_ID2   SW_ID1   Position      Descritpion
+L	L        L        L        1		1s server slot1 select
+
+L	L        H        2        1s		server slot2 select
+
+L	L        H        L        3		1s server slot3 select
+
+L	L        H        H        4		1s server slot4 select
+
+L	H        L        L        5		BMC Debug port select
+
+L	H        L        H        6		1s server slot1 select
+
+L	H        H        L        7		1s server slot2 select
+
+L	H        H        H        8		1s server slot3 select
+
+H	L        L        L        9		1s server slot4 select
+
+H	L        L        H        10		BMC Debug port select
+
+BMC and Hosts UART control flow
+GPIOE0 --- DEBUG_UART_SEL_0
+GPIOE1 --- DEBUG_UART_SEL_1
+GPIOE2 --- DEBUG_UART_SEL_2
+GPIOE2 --- DEBUG_UART_RX_SEL_N
+
+SEL_2  SEL_1   SEL_0   RX_SEL_N  CONSOLE
+0	0	0	0	 SLOT1
+0 	0 	1 	0 	 SLOT2
+0 	1 	0 	0 	 SLOT3
+0 	1 	1 	0 	 SLOT4
+1 	0 	0 	1 	 BMC Debug
+
+Signed-off-by: Manikandan Elumalai <manikandan.hcl.ers.epl@gmail.com>
+---
+ arch/arm/mach-aspeed/platform_g5.S | 68 +++++++++++++++++++++++++++++++++-----
+ 1 file changed, 60 insertions(+), 8 deletions(-)
+
+diff --git a/arch/arm/mach-aspeed/platform_g5.S b/arch/arm/mach-aspeed/platform_g5.S
+index c3ce077..29daa7a 100644
+--- a/arch/arm/mach-aspeed/platform_g5.S
++++ b/arch/arm/mach-aspeed/platform_g5.S
+@@ -315,6 +315,58 @@ orr r1, r1, #0xC
+ str r1, [r0]
+ .endm
+
++  .macro console_slot1
++  ldr r0, =0x1e780024
++  ldr r1, [r0]
++  orr r1, r1, #0xF
++  str r1, [r0]
++
++  ldr r0, =0x1e780020
++  ldr r1, [r0]
++  and r1, r1, #0xFFFFFFF0
++  orr r1, r1, #0x0
++  str r1, [r0]
++  .endm
++
++  .macro console_slot2
++  ldr r0, =0x1e780024
++  ldr r1, [r0]
++  orr r1, r1, #0xF
++  str r1, [r0]
++
++  ldr r0, =0x1e780020
++  ldr r1, [r0]
++  and r1, r1, #0xFFFFFFF0
++  orr r1, r1, #0x1
++  str r1, [r0]
++  .endm
++
++  .macro console_slot3
++  ldr r0, =0x1e780024
++  ldr r1, [r0]
++  orr r1, r1, #0xF
++  str r1, [r0]
++
++  ldr r0, =0x1e780020
++  ldr r1, [r0]
++  and r1, r1, #0xFFFFFFF0
++  orr r1, r1, #0x2
++  str r1, [r0]
++  .endm
++
++  .macro console_slot4
++  ldr r0, =0x1e780024
++  ldr r1, [r0]
++  orr r1, r1, #0xF
++  str r1, [r0]
++
++  ldr r0, =0x1e780020
++  ldr r1, [r0]
++  and r1, r1, #0xFFFFFFF0
++  orr r1, r1, #0x3
++  str r1, [r0]
++  .endm
++
+ .macro console_sel
+
+   // Disable SoL UARTs[1-4]
+@@ -354,28 +406,28 @@ dbg_card_pres\@:
+   ldr r1, =0x00
+   cmp r0, r1
+   bne case_pos2\@
+- console_bmc
++  console_slot1
+   b case_end\@
+ case_pos2\@:
+   //Test for position#2
+   ldr r1, =0x01
+   cmp r0, r1
+   bne case_pos3\@
+- console_bmc
++  console_slot2
+   b case_end\@
+ case_pos3\@:
+  //Test for position#3
+   ldr r1, =0x02
+   cmp r0, r1
+   bne case_pos4\@
+-  console_bmc
++  console_slot3
+   b case_end\@
+ case_pos4\@:
+ //Test for position#4
+   ldr r1, =0x03
+   cmp r0, r1
+   bne case_pos5\@
+-  console_bmc
++  console_slot4
+   b case_end\@
+ case_pos5\@:
+   //Test for position#5
+@@ -389,28 +441,28 @@ case_pos6\@:
+   ldr r1, =0x05
+   cmp r0, r1
+   bne case_pos7\@
+-  console_bmc
++  console_slot1
+   b case_end\@
+ case_pos7\@:
+  //Test for position#7
+    ldr r1, =0x06
+    cmp r0, r1
+    bne case_pos8\@
+-   console_bmc
++   console_slot2
+    b case_end\@
+ case_pos8\@:
+   //Test for position#8
+    ldr r1, =0x07
+    cmp r0, r1
+    bne case_pos9\@
+-   console_bmc
++   console_slot3
+    b case_end\@
+ case_pos9\@:
+     //Test for position#9
+    ldr r1, =0x08
+    cmp r0, r1
+    bne case_pos10\@
+-   console_bmc
++   console_slot4
+    b case_end\@
+ case_pos10\@:
+    //Test for position#10
+--
+2.7.4