<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/arch/microblaze/kernel/head.S, branch v3.4.84</title>
<subtitle>Linux kernel source tree</subtitle>
<id>https://git.amat.us/linux/atom/arch/microblaze/kernel/head.S?h=v3.4.84</id>
<link rel='self' href='https://git.amat.us/linux/atom/arch/microblaze/kernel/head.S?h=v3.4.84'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/'/>
<updated>2012-03-23T08:28:19Z</updated>
<entry>
<title>microblaze: Handle TLB skip size dynamically</title>
<updated>2012-03-23T08:28:19Z</updated>
<author>
<name>Michal Simek</name>
<email>monstr@monstr.eu</email>
</author>
<published>2010-02-08T15:41:38Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=e02db0aa3e1976ae4e23a66077d252a2f3ba74c7'/>
<id>urn:sha1:e02db0aa3e1976ae4e23a66077d252a2f3ba74c7</id>
<content type='text'>
This patch fix the problem with rootfs on JFFS2 with early printk
console turned on.

The origin version used TLB63 for temporary early printk mapping.
The code expect that kernel is not able to use all 64 TLB entries
till early printk console is remapped by ioremap. After that
temporary mapping on TLB63 is silently lost.
This expectation give the opportunity to have early console pretty
early.

Microblaze systems with JFFS2 rootfs with early printk console turned on
used more than 64 TLB entries before kernel can remap early console.
Based on that kernel does access to bad area because early printk mapping
is rewritten.

This patch introduces tlb_skip variable which dynamically stores number
of skipped TLB entries from the TLB0. skip_tlb=2 means that TLB0 and TLB1
should be skipped.

MICROBLAZE_TLB_SKIP defines how many TLB is skipped at the kernel start.
They can be used for user purpose.

TLB 63 is used for temporary LMB mapping (MICROBLAZE_LMB_TLB_ID).

Also clean TLBLO when kernel starts.

For specific kernel sizes kernel can use just one TLB. Detect this case
and use the second TLB for general purpose.

Change _tlbia function to flush TLB entries from tlb_skip to TLB_SIZE.

Export tlb_skip size through debugfs.

Signed-off-by: Michal Simek &lt;monstr@monstr.eu&gt;
</content>
</entry>
<entry>
<title>microblaze: Improve TLB calculation for small systems</title>
<updated>2012-03-23T08:28:18Z</updated>
<author>
<name>Michal Simek</name>
<email>monstr@monstr.eu</email>
</author>
<published>2010-02-08T15:41:38Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=95b0f9ea66661681f6ae081ea28416744d622c07'/>
<id>urn:sha1:95b0f9ea66661681f6ae081ea28416744d622c07</id>
<content type='text'>
Systems with small amount of memory need to be handled
differently. Linux can't allocate the whole 32MB with two TLBs
because then there is no MMU protection.

Signed-off-by: Michal Simek &lt;monstr@monstr.eu&gt;
</content>
</entry>
<entry>
<title>microblaze: Extend space for compiled-in FDT to 32kB</title>
<updated>2012-03-23T08:28:17Z</updated>
<author>
<name>Michal Simek</name>
<email>monstr@monstr.eu</email>
</author>
<published>2011-07-13T13:26:09Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=3a1d26769f61fe8a1f517a66dfcee935a76fd61c'/>
<id>urn:sha1:3a1d26769f61fe8a1f517a66dfcee935a76fd61c</id>
<content type='text'>
Signed-off-by: Michal Simek &lt;monstr@monstr.eu&gt;
</content>
</entry>
<entry>
<title>microblaze: Clear all MSR flags on the first kernel instruction</title>
<updated>2012-03-23T08:28:16Z</updated>
<author>
<name>Michal Simek</name>
<email>monstr@monstr.eu</email>
</author>
<published>2011-11-09T14:39:58Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=173701d7745d07888a929bf08d77d29996ca13dc'/>
<id>urn:sha1:173701d7745d07888a929bf08d77d29996ca13dc</id>
<content type='text'>
The main reason is bug because of dynamic TLB allocation.
U-BOOT didn't disable dcache and then writing to physical address
from ASM wan't visible for reading through MMU.
Disabling caches and clearing all flags from previous code
is good to do so.

Signed-off-by: Michal Simek &lt;monstr@monstr.eu&gt;
</content>
</entry>
<entry>
<title>microblaze: Do not use "la" pseudo instruction - use addik instead</title>
<updated>2011-03-09T07:09:54Z</updated>
<author>
<name>Michal Simek</name>
<email>monstr@monstr.eu</email>
</author>
<published>2011-02-01T08:00:57Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=cd3415779bdb13e3daaf13965c89d286a0cf0480'/>
<id>urn:sha1:cd3415779bdb13e3daaf13965c89d286a0cf0480</id>
<content type='text'>
"la" pseudo instruction is only translation to "addik".
Use directly "addik" which is described in the MB reference guide.

Signed-off-by: Michal Simek &lt;monstr@monstr.eu&gt;
</content>
</entry>
<entry>
<title>microblaze: Optimize BE/LE bootup detecting</title>
<updated>2011-03-09T07:09:53Z</updated>
<author>
<name>Michal Simek</name>
<email>monstr@monstr.eu</email>
</author>
<published>2011-01-31T13:57:26Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=495162dfefe3f6e3a8e908aa2f0a964a572d3e87'/>
<id>urn:sha1:495162dfefe3f6e3a8e908aa2f0a964a572d3e87</id>
<content type='text'>
Save 0x1 word to rodata section and remove online value
loading if DTB is passed from bootloader. It saves two
asm instructions in bootup.

Signed-off-by: Michal Simek &lt;monstr@monstr.eu&gt;
</content>
</entry>
<entry>
<title>microblaze: Fix msr instruction detection</title>
<updated>2011-02-07T18:13:01Z</updated>
<author>
<name>Michal Simek</name>
<email>monstr@monstr.eu</email>
</author>
<published>2011-02-04T14:24:11Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=0eb6aaf52965c14ba3ea245448c4806cfcd1d18c'/>
<id>urn:sha1:0eb6aaf52965c14ba3ea245448c4806cfcd1d18c</id>
<content type='text'>
Fix msr instructions detection. The current code
just use msrclr for loading msr content and compare
it with proper MSR content. If msrclr is not implemented
r8 contains pc address.
Previous code wanted to use MSR carry bit but if msrclr
wasn't implemented carry wasn't cleared.

Signed-off-by: Michal Simek &lt;monstr@monstr.eu&gt;
</content>
</entry>
<entry>
<title>microblaze: Fix DTB passing from bootloader</title>
<updated>2011-01-28T13:04:36Z</updated>
<author>
<name>Michal Simek</name>
<email>monstr@monstr.eu</email>
</author>
<published>2011-01-26T12:41:05Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=026a2078791b64aede220b1b1a3e4dfe4ab175e7'/>
<id>urn:sha1:026a2078791b64aede220b1b1a3e4dfe4ab175e7</id>
<content type='text'>
Little endian system needs to check OF_DT_HEADER
but it is swapped because it is in big-endian.
Microblaze LE provides lwr instruction which loads
magic number in BIG endian format which can be compared.

There is used the fact that if you write 0x1 as word
and load it as byte then you get for big-endian zero
and 1 for little-endian.

Signed-off-by: Michal Simek &lt;monstr@monstr.eu&gt;
</content>
</entry>
<entry>
<title>microblaze: Allow PAGE_SIZE configuration</title>
<updated>2010-08-04T08:22:34Z</updated>
<author>
<name>Steven J. Magnani</name>
<email>steve@digidescorp.com</email>
</author>
<published>2010-05-13T15:48:27Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=ba9c4f88d747836bf35c3eee36aa18d2e164f493'/>
<id>urn:sha1:ba9c4f88d747836bf35c3eee36aa18d2e164f493</id>
<content type='text'>
Allow developer to configure memory page size at compile time.
Larger pages can improve performance on some workloads.

Based on PowerPC code.

Signed-off-by: Steven J. Magnani &lt;steve@digidescorp.com&gt;
Signed-off-by: Michal Simek &lt;monstr@monstr.eu&gt;
</content>
</entry>
<entry>
<title>microblaze: Quiet section mismatch warnings</title>
<updated>2010-05-06T09:21:57Z</updated>
<author>
<name>Steven J. Magnani</name>
<email>steve@digidescorp.com</email>
</author>
<published>2010-04-10T03:03:37Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=7a0248e819ddaf2c2f28e6edd287b90aa930702a'/>
<id>urn:sha1:7a0248e819ddaf2c2f28e6edd287b90aa930702a</id>
<content type='text'>
_start is located in .text, which causes mismatch warnings with
machine_early_init() and start_kernel() in .init.text.

Signed-off-by: Steven J. Magnani &lt;steve@digidescorp.com&gt;
Signed-off-by: Michal Simek &lt;monstr@monstr.eu&gt;
</content>
</entry>
</feed>
