All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] [PATCH 1/2 v2] mips: mt76xx: Remove cache workaround and select SYS_MALLOC_CLEAR_ON_INIT
@ 2019-05-23  5:55 Stefan Roese
  2019-05-23  5:55 ` [U-Boot] [PATCH 2/2 v2] mips: mt76xx: gardena-smart-gateway: Enable CONFIG_USE_PREBOOT Stefan Roese
  2019-05-24 14:13 ` [U-Boot] [PATCH 1/2 v2] mips: mt76xx: Remove cache workaround and select SYS_MALLOC_CLEAR_ON_INIT Daniel Schwierzeck
  0 siblings, 2 replies; 4+ messages in thread
From: Stefan Roese @ 2019-05-23  5:55 UTC (permalink / raw)
  To: u-boot

With commit 06985289d452 ("watchdog: Implement generic watchdog_reset()
version") the init sequence has changed in arch_misc_init(), resulting
in a re-appearance of the d-cache issue on MT7688 boards (e.g. gardena).
When this happens, the first (or sometimes later ones as well) TFTP
command hangs and does not complete correctly. This leads to the
assumption that the d-cache is not in a clean state once the ethernet
driver is called (d-cache is used here for the buffers). The old work-
around with the cache flush somehow does not work any more now with
the new code change.

To fix this issue, this patch now removes the old workaround and selects
CONFIG_SYS_MALLOC_CLEAR_ON_INIT for ARCH_MTMIPS. With this option the
complete malloc area is initialized with zeros (cache lines are touched).
Testing has shown that this also fixes the issue on the MT7688 boards.

Signed-off-by: Stefan Roese <sr@denx.de>
Suggested-by: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
Cc: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
---
v2:
- As suggested by Daniel, remove the workaround (hack) and select
  CONFIG_SYS_MALLOC_CLEAR_ON_INIT instead

 arch/mips/Kconfig           |  2 +-
 arch/mips/mach-mtmips/cpu.c | 15 ---------------
 2 files changed, 1 insertion(+), 16 deletions(-)

diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
index 9cf8e9800d..5cb9bdf2ee 100644
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -84,13 +84,13 @@ config ARCH_MTMIPS
 	select DM_SERIAL
 	imply DM_SPI
 	imply DM_SPI_FLASH
-	select ARCH_MISC_INIT
 	select MIPS_TUNE_24KC
 	select OF_CONTROL
 	select ROM_EXCEPTION_VECTORS
 	select SUPPORTS_CPU_MIPS32_R1
 	select SUPPORTS_CPU_MIPS32_R2
 	select SUPPORTS_LITTLE_ENDIAN
+	select SYS_MALLOC_CLEAR_ON_INIT
 	select SYSRESET
 
 config ARCH_JZ47XX
diff --git a/arch/mips/mach-mtmips/cpu.c b/arch/mips/mach-mtmips/cpu.c
index fcd0484a6d..b0a6397d68 100644
--- a/arch/mips/mach-mtmips/cpu.c
+++ b/arch/mips/mach-mtmips/cpu.c
@@ -68,18 +68,3 @@ int print_cpuinfo(void)
 
 	return 0;
 }
-
-int arch_misc_init(void)
-{
-	/*
-	 * It has been noticed, that sometimes the d-cache is not in a
-	 * "clean-state" when U-Boot is running on MT7688. This was
-	 * detected when using the ethernet driver (which uses d-cache)
-	 * and a TFTP command does not complete. Flushing the complete
-	 * d-cache (again?) here seems to fix this issue.
-	 */
-	flush_dcache_range(gd->bd->bi_memstart,
-			   gd->bd->bi_memstart + gd->ram_size - 1);
-
-	return 0;
-}
-- 
2.21.0

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [U-Boot] [PATCH 2/2 v2] mips: mt76xx: gardena-smart-gateway: Enable CONFIG_USE_PREBOOT
  2019-05-23  5:55 [U-Boot] [PATCH 1/2 v2] mips: mt76xx: Remove cache workaround and select SYS_MALLOC_CLEAR_ON_INIT Stefan Roese
@ 2019-05-23  5:55 ` Stefan Roese
  2019-05-24 14:14   ` Daniel Schwierzeck
  2019-05-24 14:13 ` [U-Boot] [PATCH 1/2 v2] mips: mt76xx: Remove cache workaround and select SYS_MALLOC_CLEAR_ON_INIT Daniel Schwierzeck
  1 sibling, 1 reply; 4+ messages in thread
From: Stefan Roese @ 2019-05-23  5:55 UTC (permalink / raw)
  To: u-boot

Enable CONFIG_USE_PREBOOT on for the gardena mt7688 platforms, so that
this feature can be used here.

Signed-off-by: Stefan Roese <sr@denx.de>
Cc: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
---
v2:
- No change

 configs/gardena-smart-gateway-mt7688-ram_defconfig | 1 +
 configs/gardena-smart-gateway-mt7688_defconfig     | 1 +
 2 files changed, 2 insertions(+)

diff --git a/configs/gardena-smart-gateway-mt7688-ram_defconfig b/configs/gardena-smart-gateway-mt7688-ram_defconfig
index e09950637f..ec47beaf1d 100644
--- a/configs/gardena-smart-gateway-mt7688-ram_defconfig
+++ b/configs/gardena-smart-gateway-mt7688-ram_defconfig
@@ -12,6 +12,7 @@ CONFIG_IMAGE_FORMAT_LEGACY=y
 CONFIG_OF_STDOUT_VIA_ALIAS=y
 CONFIG_USE_BOOTCOMMAND=y
 CONFIG_BOOTCOMMAND="cp.b 83000000 84000000 10000 && dhcp uEnv.txt && env import -t ${fileaddr} ${filesize} && run do_u_boot_init; reset"
+CONFIG_USE_PREBOOT=y
 CONFIG_SYS_CONSOLE_INFO_QUIET=y
 CONFIG_VERSION_VARIABLE=y
 CONFIG_BOARD_EARLY_INIT_F=y
diff --git a/configs/gardena-smart-gateway-mt7688_defconfig b/configs/gardena-smart-gateway-mt7688_defconfig
index ad0db2e723..cdc5221d6a 100644
--- a/configs/gardena-smart-gateway-mt7688_defconfig
+++ b/configs/gardena-smart-gateway-mt7688_defconfig
@@ -15,6 +15,7 @@ CONFIG_IMAGE_FORMAT_LEGACY=y
 CONFIG_OF_STDOUT_VIA_ALIAS=y
 CONFIG_USE_BOOTCOMMAND=y
 CONFIG_BOOTCOMMAND="cp.b 83000000 84000000 10000 && dhcp uEnv.txt && env import -t ${fileaddr} ${filesize} && run do_u_boot_init; reset"
+CONFIG_USE_PREBOOT=y
 CONFIG_SYS_CONSOLE_INFO_QUIET=y
 CONFIG_VERSION_VARIABLE=y
 CONFIG_BOARD_EARLY_INIT_F=y
-- 
2.21.0

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [U-Boot] [PATCH 1/2 v2] mips: mt76xx: Remove cache workaround and select SYS_MALLOC_CLEAR_ON_INIT
  2019-05-23  5:55 [U-Boot] [PATCH 1/2 v2] mips: mt76xx: Remove cache workaround and select SYS_MALLOC_CLEAR_ON_INIT Stefan Roese
  2019-05-23  5:55 ` [U-Boot] [PATCH 2/2 v2] mips: mt76xx: gardena-smart-gateway: Enable CONFIG_USE_PREBOOT Stefan Roese
@ 2019-05-24 14:13 ` Daniel Schwierzeck
  1 sibling, 0 replies; 4+ messages in thread
From: Daniel Schwierzeck @ 2019-05-24 14:13 UTC (permalink / raw)
  To: u-boot



Am 23.05.19 um 07:55 schrieb Stefan Roese:
> With commit 06985289d452 ("watchdog: Implement generic watchdog_reset()
> version") the init sequence has changed in arch_misc_init(), resulting
> in a re-appearance of the d-cache issue on MT7688 boards (e.g. gardena).
> When this happens, the first (or sometimes later ones as well) TFTP
> command hangs and does not complete correctly. This leads to the
> assumption that the d-cache is not in a clean state once the ethernet
> driver is called (d-cache is used here for the buffers). The old work-
> around with the cache flush somehow does not work any more now with
> the new code change.
> 
> To fix this issue, this patch now removes the old workaround and selects
> CONFIG_SYS_MALLOC_CLEAR_ON_INIT for ARCH_MTMIPS. With this option the
> complete malloc area is initialized with zeros (cache lines are touched).
> Testing has shown that this also fixes the issue on the MT7688 boards.
> 
> Signed-off-by: Stefan Roese <sr@denx.de>
> Suggested-by: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
> Cc: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
> ---
> v2:
> - As suggested by Daniel, remove the workaround (hack) and select
>   CONFIG_SYS_MALLOC_CLEAR_ON_INIT instead
> 
>  arch/mips/Kconfig           |  2 +-
>  arch/mips/mach-mtmips/cpu.c | 15 ---------------
>  2 files changed, 1 insertion(+), 16 deletions(-)
> 

applied to u-boot-mips, thanks.

-- 
- Daniel

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [U-Boot] [PATCH 2/2 v2] mips: mt76xx: gardena-smart-gateway: Enable CONFIG_USE_PREBOOT
  2019-05-23  5:55 ` [U-Boot] [PATCH 2/2 v2] mips: mt76xx: gardena-smart-gateway: Enable CONFIG_USE_PREBOOT Stefan Roese
@ 2019-05-24 14:14   ` Daniel Schwierzeck
  0 siblings, 0 replies; 4+ messages in thread
From: Daniel Schwierzeck @ 2019-05-24 14:14 UTC (permalink / raw)
  To: u-boot



Am 23.05.19 um 07:55 schrieb Stefan Roese:
> Enable CONFIG_USE_PREBOOT on for the gardena mt7688 platforms, so that
> this feature can be used here.
> 
> Signed-off-by: Stefan Roese <sr@denx.de>
> Cc: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
> ---
> v2:
> - No change
> 
>  configs/gardena-smart-gateway-mt7688-ram_defconfig | 1 +
>  configs/gardena-smart-gateway-mt7688_defconfig     | 1 +
>  2 files changed, 2 insertions(+)
> 

applied to u-boot-mips, thanks.

-- 
- Daniel

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2019-05-24 14:14 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-05-23  5:55 [U-Boot] [PATCH 1/2 v2] mips: mt76xx: Remove cache workaround and select SYS_MALLOC_CLEAR_ON_INIT Stefan Roese
2019-05-23  5:55 ` [U-Boot] [PATCH 2/2 v2] mips: mt76xx: gardena-smart-gateway: Enable CONFIG_USE_PREBOOT Stefan Roese
2019-05-24 14:14   ` Daniel Schwierzeck
2019-05-24 14:13 ` [U-Boot] [PATCH 1/2 v2] mips: mt76xx: Remove cache workaround and select SYS_MALLOC_CLEAR_ON_INIT Daniel Schwierzeck

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.