[U-Boot] [PATCH] arch: armv8: Remove the error when dcache is off

Alexander Graf agraf at suse.de
Thu Jun 29 14:04:17 UTC 2017



On 29.06.17 15:44, Siva Durga Prasad Paladugu wrote:
> Hi,
> 
>> -----Original Message-----
>> From: Alexander Graf [mailto:agraf at suse.de]
>> Sent: Tuesday, June 27, 2017 6:08 PM
>> To: Michal Simek <michal.simek at xilinx.com>
>> Cc: Siva Durga Prasad Paladugu <sivadur at xilinx.com>; u-boot at lists.denx.de;
>> Tom Rini <trini at konsulko.com>; Simon Glass <sjg at chromium.org>; Siva
>> Durga Prasad Paladugu <sivadur at xilinx.com>
>> Subject: Re: [U-Boot] [PATCH] arch: armv8: Remove the error when dcache is
>> off
>>
>>
>>
>>> Am 27.06.2017 um 13:52 schrieb Michal Simek <michal.simek at xilinx.com>:
>>>
>>>> On 27.6.2017 13:46, Alexander Graf wrote:
>>>>
>>>>
>>>>> On 27.06.17 13:20, Michal Simek wrote:
>>>>> Hi,
>>>>>
>>>>>> On 27.6.2017 13:01, Alexander Graf wrote:
>>>>>> I don't think that's going to work - at least not without compiler
>>>>>> flag changes. By default, gcc will happily generate unaligned
>>>>>> accesses. If you disable dcache, these will trap.
>>>>>
>>>>> What's that compiler flags we should be using to avoid that?
>>>>
>>>> It's a combination of
>>>>
>>>>   -mstrict-align
>>>>
>>>> plus crossing fingers with lots of praying plus making sure that
>>>> every code you call also follows -mstrict-align plus double-checking
>>>> that you don't break the kernel booting ABI:
>>>>
>>>>
>>>> http://elixir.free-electrons.com/linux/v4.12-rc7/source/Documentation
>>>> /arm64/booting.txt
>>>>
>>>>
>>>> In the booti case, disabling dcache seems to be legitimate. In the
>>>> bootefi case however, it's not.
>>>
>>> Non wants to boot the kernel. It is really about programming stuff.
>>>
>>>>
>>>> So you will also need to set CONFIG_EFI_LOADER to depend on
>>>> !CONFIG_SYS_DCACHE_OFF which means you will want to convert
>>>> CONFIG_SYS_DCACHE_OFF to Kconfig first :).
>>>
>>> ok. I will let Siva to do it just wanted to refresh this topic.
>>>
>>>
>>>>> The reason for this change is to have really small u-boot which fits
>>>>> to OCM without DDR to be able to do initial programming.
>>>>
>>>> Yup, makes sense. I'm just slightly scared by the idea :).
> 
> I can see that, we are anyway avoiding that error message for SPL BUILD where
> dcache is off.
> Also, dcache will be ON by default, until and unless user disable it
> through CONFIG_SYS_DCACHE_OFF.
> 
> -mstrict-align is already used for armv8 in arch/arm/cpu/armv8/config.mk
> 
> Finally I feel, we can remove this check or atleast we should make it as #warning instead of #error.

I put it in because UEFI binaries can assume that unaligned instructions 
work. So please at least convert CONFIG_SYS_DCACHE_OFF to Kconfig and 
make it mutually exclusive to CONFIG_EFI_LOADER.


Alex


More information about the U-Boot mailing list