arm: print the cache config option in hex instead of decimal
PATCH v2 1/2 arm: print the cache config option in hex instead of decimal
Printing the option value in hex makes it more comprehensible.
--- arch/arm/lib/cache-cp15.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
arch/arm/lib/cache-cp15.c +1 -1
@@ -71,7 +71,7 @@ void mmu_set_region_dcache_behaviour(phys_addr_t start, size_t size, end =ALIGN (start + size,MMU_SECTION_SIZE ) >>MMU_SECTION_SHIFT ; start = start >>MMU_SECTION_SHIFT ; -debug ("%s: start=%pa, size=%zu, option=%d\n" , __func__, &start, size, +debug ("%s: start=%pa, size=%zu, option=0x%x\n" , __func__, &start, size, option);for (upto = start; upto < end; upto++)set_section_dcache (upto, option);
Signature · 1 line
1.9.1
PATCH v2 2/2 arm: Set TTB XN bit in case DCACHE_OFF for LPAE mode
While we setup the mmu initially we mark set_section_dcache with DCACHE_OFF flag. In case of non-LPAE mode the DCACHE_OFF macro is rightly defined with TTB_SECT_XN_MASK set so as to mark all the 4GB XN. In case of LPAE mode XN(Execute-never) bit is not set with DCACHE_OFF. Hence XN bit is not set by default for DCACHE_OFF which keeps all the regions execute okay and this leads to random speculative fetches in random memory regions which was eventually caught by kernel omap-l3-noc driver.
Fix this to mark the regions as XN by default.
---
Changes in v2:
* Changed printing option value from decimal to hex.
arch/arm/include/asm/system.h | 2 +- arch/arm/lib/cache-cp15.c | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-)
arch/arm/include/asm/system.h +1 -1
@@ -329,7 +329,7 @@ static inline void set_dacr(unsigned int val)/* options available for data cache on each page */ enum dcache_option { -DCACHE_OFF =TTB_SECT |TTB_SECT_MAIR (0 ), +DCACHE_OFF =TTB_SECT |TTB_SECT_MAIR (0 ) |TTB_SECT_XN_MASK ,DCACHE_WRITETHROUGH =TTB_SECT |TTB_SECT_MAIR (1 ),DCACHE_WRITEBACK =TTB_SECT |TTB_SECT_MAIR (2 ),DCACHE_WRITEALLOC =TTB_SECT |TTB_SECT_MAIR (3 ),
arch/arm/lib/cache-cp15.c +5 -0
@@ -71,8 +71,13 @@ void mmu_set_region_dcache_behaviour(phys_addr_t start, size_t size, end =ALIGN (start + size,MMU_SECTION_SIZE ) >>MMU_SECTION_SHIFT ; start = start >>MMU_SECTION_SHIFT ; +#ifdef CONFIG_ARMV7_LPAE +debug ("%s: start=%pa, size=%zu, option=%llx\n" , __func__, &start, size, + option); +#else debug ("%s: start=%pa, size=%zu, option=0x%x\n" , __func__, &start, size, option); +#endif for (upto = start; upto < end; upto++)set_section_dcache (upto, option);
Signature · 1 line
1.9.1
PATCH v2 2/2 arm: Set TTB XN bit in case DCACHE_OFF for LPAE mode
Quoted 9 lines · Keerthy
While we setup the mmu initially we mark
set_section_dcachewithDCACHE_OFFflag. In case of non-LPAE mode theDCACHE_OFFmacro is rightly defined withTTB_SECT_XN_MASKset so as to mark all the 4GB XN. In case of LPAE mode XN(Execute-never) bit is not set withDCACHE_OFF. Hence XN bit is not set by default forDCACHE_OFFwhich keeps all the regions execute okay and this leads to random speculative fetches in random memory regions which was eventually caught by kernel omap-l3-noc driver.
Quoted 4 lines
Fix this to mark the regions as XN by default.
Signed-off-by Keerthy <[email protected]>Reviewed-by Alexander Graf <[email protected]>
Signature · 8 lines
Tom -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 819 bytes Desc: Digital signature URL: <http://lists.denx.de/pipermail/u-boot/attachments/20161029/3dcf8fd2/attachment.sig>
PATCH v2 2/2 arm: Set TTB XN bit in case DCACHE_OFF for LPAE mode
Quoted 11 lines · Tom Rini
Quoted 9 lines · Keerthy
While we setup the mmu initially we mark
set_section_dcachewithDCACHE_OFFflag. In case of non-LPAE mode theDCACHE_OFFmacro is rightly defined withTTB_SECT_XN_MASKset so as to mark all the 4GB XN. In case of LPAE mode XN(Execute-never) bit is not set withDCACHE_OFF. Hence XN bit is not set by default forDCACHE_OFFwhich keeps all the regions execute okay and this leads to random speculative fetches in random memory regions which was eventually caught by kernel omap-l3-noc driver.
Quoted 7 lines
Quoted 4 lines
Fix this to mark the regions as XN by default.
Signed-off-by Keerthy <[email protected]>Reviewed-by Alexander Graf <[email protected]>Reviewed-by Tom Rini <[email protected]>
Isn't this patch exactly undoing the following one ?
commit 8890c2fbe6ed4c5ca9a61f21e846a55f8f2c38fc
Author: Marek Vasut <> Date: Tue Dec 29 19:44:02 2015 +0100
arm: Remove S bit from MMU section entry
Restore the old behavior of the MMU section entries configuration, which is without the S-bit.
Signature · 2 lines
Best regards, Marek Vasut
PATCH v2 2/2 arm: Set TTB XN bit in case DCACHE_OFF for LPAE mode
Quoted 21 lines · Marek Vasut
Quoted 11 lines · Tom Rini
Quoted 9 lines · Keerthy
While we setup the mmu initially we mark
set_section_dcachewithDCACHE_OFFflag. In case of non-LPAE mode theDCACHE_OFFmacro is rightly defined withTTB_SECT_XN_MASKset so as to mark all the 4GB XN. In case of LPAE mode XN(Execute-never) bit is not set withDCACHE_OFF. Hence XN bit is not set by default forDCACHE_OFFwhich keeps all the regions execute okay and this leads to random speculative fetches in random memory regions which was eventually caught by kernel omap-l3-noc driver.Quoted 7 lines
Quoted 4 lines
Fix this to mark the regions as XN by default.
Signed-off-by Keerthy <[email protected]>Reviewed-by Alexander Graf <[email protected]>Reviewed-by Tom Rini <[email protected]>Isn't this patch exactly undoing the following one ?
Quoted 8 lines
commit
8890c2fbe6ed4c5ca9a61f21e846a55f8f2c38fcAuthor: Marek Vasut <> Date: Tue Dec 29 19:44:02 2015 +0100arm: Remove S bit from MMU section entry
Restore the old behavior of the MMU section entries configuration, which is without the S-bit.
Is it? I guess perhaps you and Keerthy need to chat then as there's some other problem they're addressing.
Signature · 8 lines
Tom -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 819 bytes Desc: Digital signature URL: <http://lists.denx.de/pipermail/u-boot/attachments/20161029/d0c08863/attachment.sig>
PATCH v2 2/2 arm: Set TTB XN bit in case DCACHE_OFF for LPAE mode
Quoted 26 lines · Tom Rini
Quoted 25 lines · Marek Vasut
Quoted 11 lines · Tom Rini
Quoted 9 lines · Keerthy
While we setup the mmu initially we mark
set_section_dcachewithDCACHE_OFFflag. In case of non-LPAE mode theDCACHE_OFFmacro is rightly defined withTTB_SECT_XN_MASKset so as to mark all the 4GB XN. In case of LPAE mode XN(Execute-never) bit is not set withDCACHE_OFF. Hence XN bit is not set by default forDCACHE_OFFwhich keeps all the regions execute okay and this leads to random speculative fetches in random memory regions which was eventually caught by kernel omap-l3-noc driver.Quoted 7 lines
Quoted 4 lines
Fix this to mark the regions as XN by default.
Signed-off-by Keerthy <[email protected]>Reviewed-by Alexander Graf <[email protected]>Reviewed-by Tom Rini <[email protected]>Isn't this patch exactly undoing the following one ?
commit
8890c2fbe6ed4c5ca9a61f21e846a55f8f2c38fcAuthor: Marek Vasut <> Date: Tue Dec 29 19:44:02 2015 +0100
Quoted 7 lines
Quoted 4 lines
arm: Remove S bit from MMU section entry
Restore the old behavior of the MMU section entries configuration, which is without the S-bit.
Is it? I guess perhaps you and Keerthy need to chat then as there's some other problem they're addressing.
Ummmm, wait a second, I think this one adds XN bit and the previous one removed S bit. I think I was wrong, but please double-check this. I recall we had some odd cache issues on V7 back then.
Signature · 2 lines
Best regards, Marek Vasut
PATCH v2 2/2 arm: Set TTB XN bit in case DCACHE_OFF for LPAE mode
Quoted 32 lines · Marek Vasut
Quoted 31 lines · Tom Rini
Quoted 29 lines · Marek Vasut
Quoted 11 lines · Tom Rini
Quoted 9 lines · Keerthy
While we setup the mmu initially we mark
set_section_dcachewithDCACHE_OFFflag. In case of non-LPAE mode theDCACHE_OFFmacro is rightly defined withTTB_SECT_XN_MASKset so as to mark all the 4GB XN. In case of LPAE mode XN(Execute-never) bit is not set withDCACHE_OFF. Hence XN bit is not set by default forDCACHE_OFFwhich keeps all the regions execute okay and this leads to random speculative fetches in random memory regions which was eventually caught by kernel omap-l3-noc driver.Quoted 7 lines
Quoted 4 lines
Fix this to mark the regions as XN by default.
Signed-off-by Keerthy <[email protected]>Reviewed-by Alexander Graf <[email protected]>Reviewed-by Tom Rini <[email protected]>Isn't this patch exactly undoing the following one ?
commit
8890c2fbe6ed4c5ca9a61f21e846a55f8f2c38fcAuthor: Marek Vasut <> Date: Tue Dec 29 19:44:02 2015 +0100arm: Remove S bit from MMU section entry
Restore the old behavior of the MMU section entries configuration, which is without the S-bit.
Quoted 6 lines
Quoted 2 lines
Is it? I guess perhaps you and Keerthy need to chat then as there's some other problem they're addressing.
Ummmm, wait a second, I think this one adds XN bit and the previous one removed S bit. I think I was wrong, but please double-check this. I recall we had some odd cache issues on V7 back then.
Marek,
First and foremost if we git blame on the file:arch/arm/include/asm/system.h
your commit:8890c2fbe6ed4c5ca9a61f21e846a55f8f2c38fc
arm: Remove S bit from MMU section entry
It is removing S bit under
#elif defined(CONFIG_CPU_V7)
I am adding the missing XN bit under:
#ifdef CONFIG_ARMV7_LPAE
So we are dealing with different modes.
In a nutshell your patch removes S bit from MMU section entry for non-LPAE cases for ARMV7 and mine adds XN bit for LPAE cases.
Hope this clears out the confusion.
- Keerthy
Quoted 1 line
PATCH v2 2/2 arm: Set TTB XN bit in case DCACHE_OFF for LPAE mode
Quoted 60 lines · Keerthy
Quoted 34 lines · Marek Vasut
Quoted 33 lines · Tom Rini
Quoted 31 lines · Marek Vasut
Quoted 13 lines · Tom Rini
Quoted 11 lines · Keerthy
While we setup the mmu initially we mark
set_section_dcachewithDCACHE_OFFflag. In case of non-LPAE mode theDCACHE_OFFmacro is rightly defined withTTB_SECT_XN_MASKset so as to mark all the 4GB XN. In case of LPAE mode XN(Execute-never) bit is not set withDCACHE_OFF. Hence XN bit is not set by default forDCACHE_OFFwhich keeps all the regions execute okay and this leads to random speculative
fetches in random memory regions which was eventually caught by kernel
omap-l3-noc driver.Quoted 7 lines
Quoted 4 lines
Fix this to mark the regions as XN by default.
Signed-off-by Keerthy <[email protected]>Reviewed-by Alexander Graf <[email protected]>Reviewed-by Tom Rini <[email protected]>Isn't this patch exactly undoing the following one ?
commit
8890c2fbe6ed4c5ca9a61f21e846a55f8f2c38fcAuthor: Marek Vasut <> Date: Tue Dec 29 19:44:02 2015 +0100arm: Remove S bit from MMU section entry
Restore the old behavior of the MMU section entries configuration, which is without the S-bit.
Quoted 6 lines
Quoted 2 lines
Is it? I guess perhaps you and Keerthy need to chat then as there's some other problem they're addressing.
Ummmm, wait a second, I think this one adds XN bit and the previous one removed S bit. I think I was wrong, but please double-check this. I recall we had some odd cache issues on V7 back then.
Marek,
First and foremost if we git blame on the file:
arch/arm/include/asm/system.hyour commit:
8890c2fbe6ed4c5ca9a61f21e846a55f8f2c38fcarm: Remove S bit from MMU section entry
It is removing S bit under
#elifdefined(CONFIG_CPU_V7)I am adding the missing XN bit under:
#ifdefCONFIG_ARMV7_LPAE
Quoted 6 lines
So we are dealing with different modes.
In a nutshell your patch removes S bit from MMU section entry for non-LPAE cases for ARMV7 and mine adds XN bit for LPAE cases.
Hope this clears out the confusion.
Yeah, it does, thanks.
Signature · 2 lines
Best regards, Marek Vasut
PATCH v2 2/2 arm: Set TTB XN bit in case DCACHE_OFF for LPAE mode
Quoted 61 lines · Marek Vasut
Quoted 60 lines · Keerthy
Quoted 34 lines · Marek Vasut
Quoted 33 lines · Tom Rini
Quoted 31 lines · Marek Vasut
Quoted 13 lines · Tom Rini
Quoted 11 lines · Keerthy
While we setup the mmu initially we mark
set_section_dcachewithDCACHE_OFFflag. In case of non-LPAE mode theDCACHE_OFFmacro is rightly defined withTTB_SECT_XN_MASKset so as to mark all the 4GB XN. In case of LPAE mode XN(Execute-never) bit is not set withDCACHE_OFF. Hence XN bit is not set by default forDCACHE_OFFwhich keeps all the regions execute okay and this leads to random speculative
fetches in random memory regions which was eventually caught by kernel
omap-l3-noc driver.Quoted 7 lines
Quoted 4 lines
Fix this to mark the regions as XN by default.
Signed-off-by Keerthy <[email protected]>Reviewed-by Alexander Graf <[email protected]>Reviewed-by Tom Rini <[email protected]>Isn't this patch exactly undoing the following one ?
commit
8890c2fbe6ed4c5ca9a61f21e846a55f8f2c38fcAuthor: Marek Vasut <> Date: Tue Dec 29 19:44:02 2015 +0100arm: Remove S bit from MMU section entry
Restore the old behavior of the MMU section entries configuration, which is without the S-bit.
Quoted 6 lines
Quoted 2 lines
Is it? I guess perhaps you and Keerthy need to chat then as there's some other problem they're addressing.
Ummmm, wait a second, I think this one adds XN bit and the previous one removed S bit. I think I was wrong, but please double-check this. I recall we had some odd cache issues on V7 back then.
Marek,
First and foremost if we git blame on the file:
arch/arm/include/asm/system.hyour commit:
8890c2fbe6ed4c5ca9a61f21e846a55f8f2c38fcarm: Remove S bit from MMU section entry
It is removing S bit under
#elifdefined(CONFIG_CPU_V7)I am adding the missing XN bit under:
#ifdefCONFIG_ARMV7_LPAE
Quoted 9 lines
Quoted 6 lines
So we are dealing with different modes.
In a nutshell your patch removes S bit from MMU section entry for non-LPAE cases for ARMV7 and mine adds XN bit for LPAE cases.
Hope this clears out the confusion.
Yeah, it does, thanks.
I hope this patch can be pulled if there are no further concerns.
Thanks,
Keerthy
PATCH v2 2/2 arm: Set TTB XN bit in case DCACHE_OFF for LPAE mode
In reply to KeerthyQuoted 9 lines · Keerthy
While we setup the mmu initially we mark
set_section_dcachewithDCACHE_OFFflag. In case of non-LPAE mode theDCACHE_OFFmacro is rightly defined withTTB_SECT_XN_MASKset so as to mark all the 4GB XN. In case of LPAE mode XN(Execute-never) bit is not set withDCACHE_OFF. Hence XN bit is not set by default forDCACHE_OFFwhich keeps all the regions execute okay and this leads to random speculative fetches in random memory regions which was eventually caught by kernel omap-l3-noc driver.
Quoted 5 lines
Fix this to mark the regions as XN by default.
Signed-off-by Keerthy <[email protected]>Reviewed-by Alexander Graf <[email protected]>Reviewed-by Tom Rini <[email protected]>
Applied to u-boot/master, thanks!
Signature · 8 lines
Tom -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 819 bytes Desc: Digital signature URL: <http://lists.denx.de/pipermail/u-boot/attachments/20161113/4ddba028/attachment.sig>
PATCH v2 1/2 arm: print the cache config option in hex instead of decimal
In reply to KeerthyQuoted 3 lines · Keerthy
Printing the option value in hex makes it more comprehensible.
Signed-off-by Keerthy <[email protected]>
Signature · 8 lines
Tom -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 819 bytes Desc: Digital signature URL: <http://lists.denx.de/pipermail/u-boot/attachments/20161029/e8dc5a17/attachment.sig>
PATCH v2 1/2 arm: print the cache config option in hex instead of decimal
In reply to KeerthyQuoted 4 lines · Keerthy
Printing the option value in hex makes it more comprehensible.
Signed-off-by Keerthy <[email protected]>Reviewed-by Tom Rini <[email protected]>
Applied to u-boot/master, thanks!
Signature · 8 lines
Tom -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 819 bytes Desc: Digital signature URL: <http://lists.denx.de/pipermail/u-boot/attachments/20161113/4af45ffe/attachment.sig>