[U-Boot] arm: mxs: No arch specific invalidate_icache_all available!

Hi,
i tried to port our Duckbill (based on NXP i.MX28 SoC) to U-Boot v2017.03 [1]. The startup works fine, except of this warning:
No arch specific invalidate_icache_all available!
I didn't found a MXS specific implementation of invalidate_icache_all().
Did i miss something? Shouldn't be the other MXS boards also affected?
[1] - https://github.com/lategoodbye/u-boot/tree/v2017.03-duckbill

Hi Stefan,
On Mon, Apr 24, 2017 at 8:03 AM, Stefan Wahren stefan.wahren@i2se.com wrote:
Hi,
i tried to port our Duckbill (based on NXP i.MX28 SoC) to U-Boot v2017.03 [1]. The startup works fine, except of this warning:
No arch specific invalidate_icache_all available!
I didn't found a MXS specific implementation of invalidate_icache_all().
Did i miss something? Shouldn't be the other MXS boards also affected?
[1] - https://github.com/lategoodbye/u-boot/tree/v2017.03-duckbill
Looks like ARM926 needs a invalidate_icache_all available() implementation.
Regards,
Fabio Estevam

Hi,
Am Montag, 24. April 2017, 20:12:55 CEST schrieb Fabio Estevam:
Hi Stefan,
On Mon, Apr 24, 2017 at 8:03 AM, Stefan Wahren stefan.wahren@i2se.com
wrote:
Hi,
i tried to port our Duckbill (based on NXP i.MX28 SoC) to U-Boot v2017.03 [1]. The startup works fine, except of this warning:
No arch specific invalidate_icache_all available!
I didn't found a MXS specific implementation of invalidate_icache_all().
Did i miss something? Shouldn't be the other MXS boards also affected?
[1] - https://github.com/lategoodbye/u-boot/tree/v2017.03-duckbill
Looks like ARM926 needs a invalidate_icache_all available() implementation.
we could move the implementation in arch/arm/mach-at91/arm926ejs/cache.c to a more generic place and re-use it.
However, the warning is only generated because lib/efi_loader/efi_runtime.c calls invalidate_icache_all from efi_runtime_relocate. This is because CONFIG_EFI_LOADER is set.
I don't know if somebody using the EFI stuff for other MXS-based boards. For our Duckbill, I would simply force # CONFIG_EFI_LOADER is not set via config.
Regards, Michael

Hi Michael,
On Sat, Apr 29, 2017 at 4:21 AM, Michael Heimpold mhei@heimpold.de wrote:
we could move the implementation in arch/arm/mach-at91/arm926ejs/cache.c to a more generic place and re-use it.
However, the warning is only generated because lib/efi_loader/efi_runtime.c calls invalidate_icache_all from efi_runtime_relocate. This is because CONFIG_EFI_LOADER is set.
I don't know if somebody using the EFI stuff for other MXS-based boards. For our Duckbill, I would simply force # CONFIG_EFI_LOADER is not set via config.
Not sure why CONFIG_EFI_LOADER is always selected for ARM.
What about doing this?
diff --git a/lib/efi_loader/Kconfig b/lib/efi_loader/Kconfig index d2b6327..a2ea9c0 100644 --- a/lib/efi_loader/Kconfig +++ b/lib/efi_loader/Kconfig @@ -1,6 +1,6 @@ config EFI_LOADER bool "Support running EFI Applications in U-Boot" - depends on (ARM || X86) && OF_LIBFDT + depends on X86 && OF_LIBFDT default y help Select this option if you want to run EFI applications (like grub2)

Hi Fabio,
Am 03.05.2017 um 02:56 schrieb Fabio Estevam:
Hi Michael,
On Sat, Apr 29, 2017 at 4:21 AM, Michael Heimpold mhei@heimpold.de wrote:
we could move the implementation in arch/arm/mach-at91/arm926ejs/cache.c to a more generic place and re-use it.
However, the warning is only generated because lib/efi_loader/efi_runtime.c calls invalidate_icache_all from efi_runtime_relocate. This is because CONFIG_EFI_LOADER is set.
I don't know if somebody using the EFI stuff for other MXS-based boards. For our Duckbill, I would simply force # CONFIG_EFI_LOADER is not set via config.
Not sure why CONFIG_EFI_LOADER is always selected for ARM.
What about doing this?
diff --git a/lib/efi_loader/Kconfig b/lib/efi_loader/Kconfig index d2b6327..a2ea9c0 100644 --- a/lib/efi_loader/Kconfig +++ b/lib/efi_loader/Kconfig @@ -1,6 +1,6 @@ config EFI_LOADER bool "Support running EFI Applications in U-Boot"
depends on (ARM || X86) && OF_LIBFDT
depends on X86 && OF_LIBFDT default y help Select this option if you want to run EFI applications (like grub2)
I don't think this is a good idea since this limits EFI support for x86 only? Maybe we should just adjust the default value for MXS-based boards, something like default y if !ARCH_MXS but at the moment there seems to be no such config symbol. I'm not sure which approach is less painful, adding such a config symbol or just moving around the existing invalidate_icache_all function and have some functionality in mxs based boards which is usually not needed there. Ideally we would do both, i.e. fine-tune the config stuff and clean up common code...
Mit freundlichen Grüßen / Kind regards Michael Heimpold

On Wed, May 3, 2017 at 4:19 AM, Michael Heimpold michael.heimpold@i2se.com wrote:
I don't think this is a good idea since this limits EFI support for x86 only? Maybe we should just adjust the default value for MXS-based boards, something like default y if !ARCH_MXS
Or what about this one instead?
diff --git a/lib/efi_loader/Kconfig b/lib/efi_loader/Kconfig index d2b6327..bf191af 100644 --- a/lib/efi_loader/Kconfig +++ b/lib/efi_loader/Kconfig @@ -1,7 +1,6 @@ config EFI_LOADER bool "Support running EFI Applications in U-Boot" depends on (ARM || X86) && OF_LIBFDT - default y help Select this option if you want to run EFI applications (like grub2) on top of U-Boot. If this option is enabled, U-Boot will expose EFI
participants (4)
-
Fabio Estevam
-
Michael Heimpold
-
Michael Heimpold
-
Stefan Wahren