<feed xmlns='http://www.w3.org/2005/Atom'>
<title>u-boot.git/arch/arm/lib/cache-cp15.c, branch v2018.03</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.</subtitle>
<id>http://cgit.235523.xyz/u-boot.git/atom/arch/arm/lib/cache-cp15.c?h=v2018.03</id>
<link rel='self' href='http://cgit.235523.xyz/u-boot.git/atom/arch/arm/lib/cache-cp15.c?h=v2018.03'/>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/'/>
<updated>2017-06-12T12:38:39Z</updated>
<entry>
<title>ARM: remove bogus cp_delay() function</title>
<updated>2017-06-12T12:38:39Z</updated>
<author>
<name>Lothar Waßmann</name>
<email>LW@KARO-electronics.de</email>
</author>
<published>2017-06-08T07:48:41Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=53d4ed704b43a5ffbfe9784544a722edb7a7edf5'/>
<id>urn:sha1:53d4ed704b43a5ffbfe9784544a722edb7a7edf5</id>
<content type='text'>
The cp_delay() function was introduced because of a missing 'volatile'
attribute to the 'asm' statement in get_cr() which led to the 'mrc'
instruction in get_cr() being optimised out eventually.
This has been fixed in commit 53fd4b8c22bb ("arm: mmu: Add missing volatile for reading SCTLR register")
but the bogus cp_delay() function which was introduced as a workaround
for the malfunctioning get_cr() was never removed.

Signed-off-by: Lothar Waßmann &lt;LW@KARO-electronics.de&gt;
</content>
</entry>
<entry>
<title>arm: Disable LPAE if not enabled</title>
<updated>2017-06-09T19:39:32Z</updated>
<author>
<name>Simon Glass</name>
<email>sjg@chromium.org</email>
</author>
<published>2017-05-31T23:57:14Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=50a4886b3b8579a5d3dad337906de9b5a3fef6d1'/>
<id>urn:sha1:50a4886b3b8579a5d3dad337906de9b5a3fef6d1</id>
<content type='text'>
If CONFIG_ARMV7_LPAE is not defined we should make sure that the feature
is disabled. This can happen if U-Boot is chain-loaded from another boot
loader which does enable LPAE.

Signed-off-by: Simon Glass &lt;sjg@chromium.org&gt;
</content>
</entry>
<entry>
<title>arm: Don't try to support CONFIG_ARMV7_LPAE on ARMv4T</title>
<updated>2017-06-09T19:39:32Z</updated>
<author>
<name>Simon Glass</name>
<email>sjg@chromium.org</email>
</author>
<published>2017-05-31T23:57:13Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=10d602ac8b6f576d545e35a951e1a714de0158a3'/>
<id>urn:sha1:10d602ac8b6f576d545e35a951e1a714de0158a3</id>
<content type='text'>
At present if CONFIG_ARMV7_LPAE is defined then mmu_setup() will use
instructions which are invalid on ARMv4T. This happens on Tegra since it
has an ARMv4T boot CPU. Add a check for the architecture version to allow
the code to be built. It will not actually be executed by the boot CPU,
but needs to compile.

Signed-off-by: Simon Glass &lt;sjg@chromium.org&gt;
</content>
</entry>
<entry>
<title>arm: Rename HCTR to HTCR</title>
<updated>2017-06-09T19:39:31Z</updated>
<author>
<name>Simon Glass</name>
<email>sjg@chromium.org</email>
</author>
<published>2017-05-31T23:57:12Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=579dfca2ef2fdff93ae78a942fef49f3d1da3f8c'/>
<id>urn:sha1:579dfca2ef2fdff93ae78a942fef49f3d1da3f8c</id>
<content type='text'>
This appears to be a typo. Fix it.

Signed-off-by: Simon Glass &lt;sjg@chromium.org&gt;
</content>
</entry>
<entry>
<title>arm: Set TTB XN bit in case DCACHE_OFF for LPAE mode</title>
<updated>2016-11-13T20:54:36Z</updated>
<author>
<name>Keerthy</name>
<email>j-keerthy@ti.com</email>
</author>
<published>2016-10-29T09:49:10Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=06d43c808d61580d977526deca328e33382b40c8'/>
<id>urn:sha1:06d43c808d61580d977526deca328e33382b40c8</id>
<content type='text'>
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.

Signed-off-by: Keerthy &lt;j-keerthy@ti.com&gt;
Reviewed-by: Alexander Graf &lt;agraf@suse.de&gt;
Reviewed-by: Tom Rini &lt;trini@konsulko.com&gt;
</content>
</entry>
<entry>
<title>arm: print the cache config option in hex instead of decimal</title>
<updated>2016-11-13T20:54:36Z</updated>
<author>
<name>Keerthy</name>
<email>j-keerthy@ti.com</email>
</author>
<published>2016-10-29T09:49:09Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=2b373cb83cae37d2cb1af7f880c1ba739956d9b3'/>
<id>urn:sha1:2b373cb83cae37d2cb1af7f880c1ba739956d9b3</id>
<content type='text'>
Printing the option value in hex makes it more comprehensible.

Signed-off-by: Keerthy &lt;j-keerthy@ti.com&gt;
Reviewed-by: Tom Rini &lt;trini@konsulko.com&gt;
</content>
</entry>
<entry>
<title>arm: cache: always flush cache line size for page table</title>
<updated>2016-08-26T21:04:56Z</updated>
<author>
<name>Stefan Agner</name>
<email>stefan.agner@toradex.com</email>
</author>
<published>2016-08-15T04:33:01Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=8f894a4d38adff26733225fb170f2a2d3e2b3054'/>
<id>urn:sha1:8f894a4d38adff26733225fb170f2a2d3e2b3054</id>
<content type='text'>
The page table is maintained by the CPU, hence it is safe to always
align cache flush to a whole cache line size. This allows to use
mmu_page_table_flush for a single page table, e.g. when configure
only small regions through mmu_set_region_dcache_behaviour.

Signed-off-by: Stefan Agner &lt;stefan.agner@toradex.com&gt;
Tested-by: Fabio Estevam &lt;fabio.estevam@nxp.com&gt;
Reviewed-by: Simon Glass &lt;sjg@chromium.org&gt;
Reviewed-by: Heiko Schocher &lt;hs@denx.de&gt;
</content>
</entry>
<entry>
<title>arm: cache: add support for LPAE for region D$ behavior</title>
<updated>2016-08-26T21:04:56Z</updated>
<author>
<name>Stefan Agner</name>
<email>stefan.agner@toradex.com</email>
</author>
<published>2016-08-15T04:33:00Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=c5b3cabf4a2f78b126a7da92c20b781a52d5307f'/>
<id>urn:sha1:c5b3cabf4a2f78b126a7da92c20b781a52d5307f</id>
<content type='text'>
Add LPAE support for mmu_set_region_dcache_behaviour. The function
is in use in some LPAE capable board such TI DRA7xx or NXP i.MX 7.

Signed-off-by: Stefan Agner &lt;stefan.agner@toradex.com&gt;
</content>
</entry>
<entry>
<title>arm: Add support for HYP mode and LPAE page tables</title>
<updated>2016-03-27T13:12:17Z</updated>
<author>
<name>Alexander Graf</name>
<email>agraf@suse.de</email>
</author>
<published>2016-03-16T14:41:21Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=d990f5c834f1b42293fb53e4fd7f3aa988184196'/>
<id>urn:sha1:d990f5c834f1b42293fb53e4fd7f3aa988184196</id>
<content type='text'>
We currently always modify the SVC versions of registers and only support
the short descriptor PTE format.

Some boards however (like the RPi2) run in HYP mode. There, we need to modify
the HYP version of system registers and HYP mode only supports the long
descriptor PTE format.

So this patch introduces support for both long descriptor PTEs and HYP mode
registers.

Signed-off-by: Alexander Graf &lt;agraf@suse.de&gt;
</content>
</entry>
<entry>
<title>arm: Replace test for CONFIG_ARMV7 with CONFIG_CPU_V7</title>
<updated>2016-01-31T15:32:56Z</updated>
<author>
<name>Marek Vasut</name>
<email>marex@denx.de</email>
</author>
<published>2015-12-29T18:44:01Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=a592e6fb7f9c1a7c2bf528c70db4b882cbac7537'/>
<id>urn:sha1:a592e6fb7f9c1a7c2bf528c70db4b882cbac7537</id>
<content type='text'>
The arch/arm/lib/cache-cp15.c checks for CONFIG_ARMV7 and if this macro is
set, it configures TTBR0 register. This register must be configured for the
cache on ARMv7 to operate correctly.

The problem is that noone actually sets the CONFIG_ARMV7 macro and thus the
TTBR0 is not configured at all. On SoCFPGA, this produces all sorts of minor
issues which are hard to replicate, for example certain USB sticks are not
detected or QSPI NOR sometimes fails to write pages completely.

The solution is to replace CONFIG_ARMV7 test with CONFIG_CPU_V7 one. This is
correct because the code which added the test(s) for CONFIG_ARMV7 was added
shortly after CONFIG_ARMV7 was replaced by CONFIG_CPU_V7 and this code was
not adjusted correctly to reflect that change.

Signed-off-by: Marek Vasut &lt;marex@denx.de&gt;
Cc: Tom Rini &lt;trini@konsulko.com&gt;
Cc: Albert Aribaud &lt;albert.u.boot@aribaud.net&gt;
Cc: Simon Glass &lt;sjg@chromium.org&gt;
</content>
</entry>
</feed>
