configs/qemu_sh4eb-r2d: restore the old sh-sci driver behaviour
authorRomain Naour <romain.naour@gmail.com>
Sat, 16 Jun 2018 11:25:32 +0000 (13:25 +0200)
committerThomas Petazzoni <thomas.petazzoni@bootlin.com>
Sun, 5 Aug 2018 12:46:29 +0000 (14:46 +0200)
As for sh4-r2d (little-endian) restore the old sh-sci driver behaviour
for sh4eb-r2d.

Tested with qemu_sh4eb_r2d_defconfig.

Signed-off-by: Romain Naour <romain.naour@gmail.com>
Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
board/qemu/sh4eb-r2d/patches/linux/0001-Revert-serial-sh-sci-increase-RX-FIFO-trigger-defaul.patch [new file with mode: 0644]
configs/qemu_sh4eb_r2d_defconfig

diff --git a/board/qemu/sh4eb-r2d/patches/linux/0001-Revert-serial-sh-sci-increase-RX-FIFO-trigger-defaul.patch b/board/qemu/sh4eb-r2d/patches/linux/0001-Revert-serial-sh-sci-increase-RX-FIFO-trigger-defaul.patch
new file mode 100644 (file)
index 0000000..36c82d8
--- /dev/null
@@ -0,0 +1,61 @@
+From aaaced6d2d6f796ed77e4725ed7ccbedb189c180 Mon Sep 17 00:00:00 2001
+From: Romain Naour <romain.naour@gmail.com>
+Date: Fri, 15 Jun 2018 17:43:38 +0200
+Subject: [PATCH] Revert: serial: sh-sci: increase RX FIFO trigger defaults for
+ (H)SCIF
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+This reverts commit 18e8cf159177100e69d528293f8cf6875c0b1bca (kernel)
+
+The last Qemu kernel update [1] introduced a regresion in sh4 SCIF
+serial device. Some keyboard presses are very slow to be taken into
+account, perhaps not even taken into account at all. This would
+explain why our test infrastructure doesn’t manage to login as root
+[2][3][4].
+
+git bisect reported a kernel patch from 4.11, increasing RX FIFO
+trigger defaults value for sh-sci (H)SCIF. The kernel patch itself
+looks good but the Qemu emulation is not ready to handle this new
+setting.
+
+From Qemu (2.12.0): target/sh4/README.sh4
+"Configuration of the second serial port (SCIF) is supported. FIFO
+handling infrastructure has been started but is not completed yet."
+
+In order to be able to test sh4 architecture with newer kernel,
+revert to the old behaviour.
+
+[1] https://git.buildroot.net/buildroot/commit/?id=03fb00f2175cdb4565e26fcb9b3da1c1059de1bd
+[2] https://gitlab.com/free-electrons/toolchains-builder/-/jobs/72006425
+[3] https://gitlab.com/free-electrons/toolchains-builder/-/jobs/72006427
+[4] https://gitlab.com/free-electrons/toolchains-builder/-/jobs/72006426
+
+Signed-off-by: Romain Naour <romain.naour@gmail.com>
+Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
+---
+ drivers/tty/serial/sh-sci.c | 7 ++-----
+ 1 file changed, 2 insertions(+), 5 deletions(-)
+
+diff --git a/drivers/tty/serial/sh-sci.c b/drivers/tty/serial/sh-sci.c
+index ab757546c6db..138e4dec44fb 100644
+--- a/drivers/tty/serial/sh-sci.c
++++ b/drivers/tty/serial/sh-sci.c
+@@ -2793,11 +2793,8 @@ static int sci_init_single(struct platform_device *dev,
+               sci_port->rx_trigger = 32;
+               break;
+       case PORT_SCIF:
+-              if (p->regtype == SCIx_SH7705_SCIF_REGTYPE)
+-                      /* RX triggering not implemented for this IP */
+-                      sci_port->rx_trigger = 1;
+-              else
+-                      sci_port->rx_trigger = 8;
++              /* RX triggering not implemented in Qemu emulation */
++              sci_port->rx_trigger = 1;
+               break;
+       default:
+               sci_port->rx_trigger = 1;
+-- 
+2.14.4
+
index 79e8c38e8add4f4832b14c9eb3b85329b9f8b261..e7dbd46a2b1177530ad49abad52a0ed8c13e9379 100644 (file)
@@ -3,6 +3,7 @@ BR2_sh=y
 BR2_sh4eb=y
 
 # System
+BR2_GLOBAL_PATCH_DIR="board/qemu/sh4eb-r2d/patches"
 BR2_TARGET_GENERIC_GETTY_PORT="ttySC1"
 
 # Filesystem