<feed xmlns='http://www.w3.org/2005/Atom'>
<title>u-boot.git/arch/arm/lib/cache-cp15.c, branch v2017.05</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=v2017.05</id>
<link rel='self' href='http://cgit.235523.xyz/u-boot.git/atom/arch/arm/lib/cache-cp15.c?h=v2017.05'/>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/'/>
<updated>2016-11-13T20:54:36Z</updated>
<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>
<entry>
<title>ARMv7 TLB: Fixed TTBR0 and Table Descriptors to allow caching</title>
<updated>2015-04-16T12:59:33Z</updated>
<author>
<name>Bryan Brinsko</name>
<email>bryan.brinsko@rockwellcollins.com</email>
</author>
<published>2015-03-24T16:25:12Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=97840b5d1fe0960134c3553a9d9d1c1cd1be784d'/>
<id>urn:sha1:97840b5d1fe0960134c3553a9d9d1c1cd1be784d</id>
<content type='text'>
The TTBR0 register and Table Descriptors of the ARMv7 TLB weren't being
properly set to allow for the configuration specified caching modes to
be active over DRAM. This commit fixes those issues.

Signed-off-by: Bryan Brinsko &lt;bryan.brinsko@rockwellcollins.com&gt;
</content>
</entry>
<entry>
<title>ARM: cache-cp15: Use more accurate types</title>
<updated>2014-11-12T06:25:42Z</updated>
<author>
<name>Thierry Reding</name>
<email>treding@nvidia.com</email>
</author>
<published>2014-08-26T15:34:21Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=25026fa9f16dd5f9182b47f76ce5043cb35da3f4'/>
<id>urn:sha1:25026fa9f16dd5f9182b47f76ce5043cb35da3f4</id>
<content type='text'>
size_t is the canonical type to represent variables that contain a size.
Use it instead of signed integer. Physical addresses can be larger than
32-bit, so use a more appropriate type for them as well. phys_addr_t is
a type that is 32-bit on systems that use 32-bit addresses and 64-bit if
the system is 64-bit or uses a form of physical address extension to use
a larger address space on 32-bit systems. Using these types the same API
can be implemented on a wider range of systems.

Signed-off-by: Thierry Reding &lt;treding@nvidia.com&gt;
</content>
</entry>
<entry>
<title>arm: cache: Add support for write-allocate D-Cache</title>
<updated>2014-10-06T15:40:21Z</updated>
<author>
<name>Marek Vasut</name>
<email>marex@denx.de</email>
</author>
<published>2014-09-15T00:44:36Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=ff7e9700eda14ccf8ebe399d3831ef266e743c2d'/>
<id>urn:sha1:ff7e9700eda14ccf8ebe399d3831ef266e743c2d</id>
<content type='text'>
Add configuration for the write-allocate mode of L1 D-Cache on ARM.
This is needed for D-Cache operation on Cortex-A9 on the SoCFPGA .

Signed-off-by: Marek Vasut &lt;marex@denx.de&gt;
Cc: Chin Liang See &lt;clsee@altera.com&gt;
Cc: Dinh Nguyen &lt;dinguyen@altera.com&gt;
Cc: Albert Aribaud &lt;albert.u.boot@aribaud.net&gt;
Cc: Tom Rini &lt;trini@ti.com&gt;
Cc: Wolfgang Denk &lt;wd@denx.de&gt;
Cc: Pavel Machek &lt;pavel@denx.de&gt;
Acked-by: Pavel Machek &lt;pavel@denx.de&gt;
</content>
</entry>
<entry>
<title>ARM: Fix overflow in MMU setup</title>
<updated>2014-08-30T11:46:39Z</updated>
<author>
<name>Marek Vasut</name>
<email>marex@denx.de</email>
</author>
<published>2014-08-03T23:45:46Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=221a49d5bd4a512596c03bbc59fb28f4ef48bf6e'/>
<id>urn:sha1:221a49d5bd4a512596c03bbc59fb28f4ef48bf6e</id>
<content type='text'>
The patch fixes a corner case where adding size to DRAM start resulted
in a value (1 &lt;&lt; 32), which in turn overflew the u32 computation, which
resulted in 0 and it therefore prevented correct setup of the MMU tables.

The addition of DRAM bank start and it's size can end up right at the end
of the address space in the special case of a machine with enough memory.
To prevent this overflow, shift the start and size separately and add them
only after they were shifted.

Hopefully, we only have systems in tree which have DRAM size aligned to
1MiB boundary. If not, this patch would break such systems. On the other
hand, such system would be broken by design anyway.

Signed-off-by: Marek Vasut &lt;marex@denx.de&gt;
Cc: Albert ARIBAUD &lt;albert.u.boot@aribaud.net&gt;
</content>
</entry>
</feed>
