<feed xmlns='http://www.w3.org/2005/Atom'>
<title>litmus2008.git/include/asm-avr32, branch master</title>
<subtitle>[ARCHIVE] Old LITMUS^RT 2008 version (for reference).</subtitle>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/litmus2008.git/'/>
<entry>
<title>[AVR32] Fix copy_to_user_page() breakage</title>
<updated>2007-12-07T13:54:47+00:00</updated>
<author>
<name>Haavard Skinnemoen</name>
<email>hskinnemoen@atmel.com</email>
</author>
<published>2007-12-03T17:04:11+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/litmus2008.git/commit/?id=68ca3e537f12044af05a653fa9d28b4fe80117e8'/>
<id>68ca3e537f12044af05a653fa9d28b4fe80117e8</id>
<content type='text'>
The current implementation of copy_to_user_page() gives "vaddr" to the
cache instruction when trying to sync the icache with the dcache. If
vaddr does not exist in the TLB, the CPU will silently abort the
operation, which may result in the caches staying out of sync.

To fix this, pass the "dst" parameter to flush_icache_range() instead
-- we know this is valid because we just wrote to it.

Signed-off-by: Haavard Skinnemoen &lt;hskinnemoen@atmel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The current implementation of copy_to_user_page() gives "vaddr" to the
cache instruction when trying to sync the icache with the dcache. If
vaddr does not exist in the TLB, the CPU will silently abort the
operation, which may result in the caches staying out of sync.

To fix this, pass the "dst" parameter to flush_icache_range() instead
-- we know this is valid because we just wrote to it.

Signed-off-by: Haavard Skinnemoen &lt;hskinnemoen@atmel.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[AVR32] Follow the rules when dealing with the OCD system</title>
<updated>2007-12-07T13:54:46+00:00</updated>
<author>
<name>Haavard Skinnemoen</name>
<email>hskinnemoen@atmel.com</email>
</author>
<published>2007-11-28T14:04:01+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/litmus2008.git/commit/?id=2507bc1338e43eadfef5b604d2c47e4f8180718f'/>
<id>2507bc1338e43eadfef5b604d2c47e4f8180718f</id>
<content type='text'>
The current debug trap handling code does a number of things that are
illegal according to the AVR32 Architecture manual. Most importantly,
it may try to schedule from Debug Mode, thus clearing the D bit, which
can lead to "undefined behaviour".

It seems like this works in most cases, but several people have
observed somewhat unstable behaviour when debugging programs,
including soft lockups. So there's definitely something which is not
right with the existing code.

The new code will never schedule from Debug mode, it will always exit
Debug mode with a "retd" instruction, and if something not running in
Debug mode needs to do something debug-related (like doing a single
step), it will enter debug mode through a "breakpoint" instruction.
The monitor code will then return directly to user space, bypassing
its own saved registers if necessary (since we don't actually care
about the trapped context, only the one that came before.)

This adds three instructions to the common exception handling code,
including one branch. It does not touch super-hot paths like the TLB
miss handler.

Signed-off-by: Haavard Skinnemoen &lt;hskinnemoen@atmel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The current debug trap handling code does a number of things that are
illegal according to the AVR32 Architecture manual. Most importantly,
it may try to schedule from Debug Mode, thus clearing the D bit, which
can lead to "undefined behaviour".

It seems like this works in most cases, but several people have
observed somewhat unstable behaviour when debugging programs,
including soft lockups. So there's definitely something which is not
right with the existing code.

The new code will never schedule from Debug mode, it will always exit
Debug mode with a "retd" instruction, and if something not running in
Debug mode needs to do something debug-related (like doing a single
step), it will enter debug mode through a "breakpoint" instruction.
The monitor code will then return directly to user space, bypassing
its own saved registers if necessary (since we don't actually care
about the trapped context, only the one that came before.)

This adds three instructions to the common exception handling code,
including one branch. It does not touch super-hot paths like the TLB
miss handler.

Signed-off-by: Haavard Skinnemoen &lt;hskinnemoen@atmel.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[AVR32] Clean up OCD register usage</title>
<updated>2007-12-07T13:54:40+00:00</updated>
<author>
<name>Haavard Skinnemoen</name>
<email>hskinnemoen@atmel.com</email>
</author>
<published>2007-11-27T12:31:20+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/litmus2008.git/commit/?id=8dfe8f29cd371affcc3c6b35658dc4bd95ee7b61'/>
<id>8dfe8f29cd371affcc3c6b35658dc4bd95ee7b61</id>
<content type='text'>
Generate a new set of OCD register definitions in asm/ocd.h and rename
__mfdr() and __mtdr() to ocd_read() and ocd_write() respectively.

The bitfield definitions are a lot more complete now, and they are
entirely based on bit numbers, not masks. This is because OCD
registers are frequently accessed from assembly code, where bit
numbers are a lot more useful (can be fed directly to sbr, bfins,
etc.)

Bitfields that consist of more than one bit have two definitions:
_START, which indicates the number of the first bit, and _SIZE, which
indicates the number of bits. These directly correspond to the
parameters taken by the bfextu, bfexts and bfins instructions.

Signed-off-by: Haavard Skinnemoen &lt;hskinnemoen@atmel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Generate a new set of OCD register definitions in asm/ocd.h and rename
__mfdr() and __mtdr() to ocd_read() and ocd_write() respectively.

The bitfield definitions are a lot more complete now, and they are
entirely based on bit numbers, not masks. This is because OCD
registers are frequently accessed from assembly code, where bit
numbers are a lot more useful (can be fed directly to sbr, bfins,
etc.)

Bitfields that consist of more than one bit have two definitions:
_START, which indicates the number of the first bit, and _SIZE, which
indicates the number of bits. These directly correspond to the
parameters taken by the bfextu, bfexts and bfins instructions.

Signed-off-by: Haavard Skinnemoen &lt;hskinnemoen@atmel.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[AVR32] Implement irqflags trace and lockdep support</title>
<updated>2007-12-07T13:52:37+00:00</updated>
<author>
<name>Haavard Skinnemoen</name>
<email>hskinnemoen@atmel.com</email>
</author>
<published>2007-11-26T13:34:57+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/litmus2008.git/commit/?id=320516b78bf197fbf7a38ddab09e9dab75741bae'/>
<id>320516b78bf197fbf7a38ddab09e9dab75741bae</id>
<content type='text'>
Signed-off-by: Haavard Skinnemoen &lt;hskinnemoen@atmel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Signed-off-by: Haavard Skinnemoen &lt;hskinnemoen@atmel.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[AVR32] Fix invalid status register bit definitions in asm/ptrace.h</title>
<updated>2007-12-07T13:52:33+00:00</updated>
<author>
<name>Haavard Skinnemoen</name>
<email>hskinnemoen@atmel.com</email>
</author>
<published>2007-11-27T17:59:32+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/litmus2008.git/commit/?id=df679771ce6a6bf57012459fbd15c981deaee526'/>
<id>df679771ce6a6bf57012459fbd15c981deaee526</id>
<content type='text'>
The 'H' bit is bit 29, while the 'R' bit doesn't exist. Luckily, we
don't actually use any of the bits in question.

Also update show_regs() to show the Debug Mask and Debug state bits.

Signed-off-by: Haavard Skinnemoen &lt;hskinnemoen@atmel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The 'H' bit is bit 29, while the 'R' bit doesn't exist. Luckily, we
don't actually use any of the bits in question.

Also update show_regs() to show the Debug Mask and Debug state bits.

Signed-off-by: Haavard Skinnemoen &lt;hskinnemoen@atmel.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[AVR32] Add TIF_RESTORE_SIGMASK to the work masks</title>
<updated>2007-12-07T13:52:32+00:00</updated>
<author>
<name>Haavard Skinnemoen</name>
<email>hskinnemoen@atmel.com</email>
</author>
<published>2007-11-27T13:10:58+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/litmus2008.git/commit/?id=702f22b306c8357b3ef5012b5a8ce062e1d11b4e'/>
<id>702f22b306c8357b3ef5012b5a8ce062e1d11b4e</id>
<content type='text'>
We really need to check TIF_RESTORE_SIGMASK before returning to
userspace. The existing code does not necessarily do this.

Define the work masks as a bitwise OR of the respective flags instead
of a hardcoded hex value to make it easier to spot errors like this in
the future.

Signed-off-by: Haavard Skinnemoen &lt;hskinnemoen@atmel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We really need to check TIF_RESTORE_SIGMASK before returning to
userspace. The existing code does not necessarily do this.

Define the work masks as a bitwise OR of the respective flags instead
of a hardcoded hex value to make it easier to spot errors like this in
the future.

Signed-off-by: Haavard Skinnemoen &lt;hskinnemoen@atmel.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[AVR32] Add missing bit in PCCR sysreg</title>
<updated>2007-11-15T12:47:20+00:00</updated>
<author>
<name>Haavard Skinnemoen</name>
<email>hskinnemoen@atmel.com</email>
</author>
<published>2007-10-31T19:32:00+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/litmus2008.git/commit/?id=8fea1ad17f1d7ba0ef6ce7b73ad9dd4562035437'/>
<id>8fea1ad17f1d7ba0ef6ce7b73ad9dd4562035437</id>
<content type='text'>
The enable bit was missing...

Signed-off-by: Haavard Skinnemoen &lt;hskinnemoen@atmel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The enable bit was missing...

Signed-off-by: Haavard Skinnemoen &lt;hskinnemoen@atmel.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>AVR32: Fix sg_page breakage</title>
<updated>2007-10-24T08:16:02+00:00</updated>
<author>
<name>Haavard Skinnemoen</name>
<email>hskinnemoen@atmel.com</email>
</author>
<published>2007-10-24T08:16:02+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/litmus2008.git/commit/?id=18ccc4194389c6edc78ede76ada3bf753525b11c'/>
<id>18ccc4194389c6edc78ede76ada3bf753525b11c</id>
<content type='text'>
The latest sg changes introduce the following build errors on AVR32:

include/asm/dma-mapping.h: In function ‘dma_map_sg’:
include/asm/dma-mapping.h:220: error: implicit declaration of function ‘sg_page’
include/asm/dma-mapping.h:220: error: invalid operands to binary -
include/asm/dma-mapping.h:221: error: implicit declaration of function ‘sg_virt’
include/asm/dma-mapping.h:221: warning: assignment makes pointer from integer without a cast
include/asm/dma-mapping.h: In function ‘dma_sync_sg_for_device’:
include/asm/dma-mapping.h:330: warning: passing argument 2 of ‘dma_cache_sync’ makes pointer from integer without a cast

Fix it by including the correct header file, i.e. linux/scatterlist.h
instead of asm/scatterlist.h.

Signed-off-by: Haavard Skinnemoen &lt;hskinnemoen@atmel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The latest sg changes introduce the following build errors on AVR32:

include/asm/dma-mapping.h: In function ‘dma_map_sg’:
include/asm/dma-mapping.h:220: error: implicit declaration of function ‘sg_page’
include/asm/dma-mapping.h:220: error: invalid operands to binary -
include/asm/dma-mapping.h:221: error: implicit declaration of function ‘sg_virt’
include/asm/dma-mapping.h:221: warning: assignment makes pointer from integer without a cast
include/asm/dma-mapping.h: In function ‘dma_sync_sg_for_device’:
include/asm/dma-mapping.h:330: warning: passing argument 2 of ‘dma_cache_sync’ makes pointer from integer without a cast

Fix it by including the correct header file, i.e. linux/scatterlist.h
instead of asm/scatterlist.h.

Signed-off-by: Haavard Skinnemoen &lt;hskinnemoen@atmel.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'for-linus' of ssh://master.kernel.org/pub/scm/linux/kernel/git/hskinnemoen/avr32-2.6</title>
<updated>2007-10-23T15:55:56+00:00</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@woody.linux-foundation.org</email>
</author>
<published>2007-10-23T15:55:56+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/litmus2008.git/commit/?id=f3344c54cee4c446a39d046e47707ed9d259f72c'/>
<id>f3344c54cee4c446a39d046e47707ed9d259f72c</id>
<content type='text'>
* 'for-linus' of ssh://master.kernel.org/pub/scm/linux/kernel/git/hskinnemoen/avr32-2.6:
  [AVR32] ARRAY_SIZE() cleanup
  [AVR32] Implement at32_add_device_cf()
  [AVR32] Implement more at32_add_device_foo() functions
  [AVR32] Fix a couple of sparse warnings
  [AVR32] Wire up AT73C213 sound driver on ATSTK1000 board
  [AVR32] Platform code for pata_at32
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* 'for-linus' of ssh://master.kernel.org/pub/scm/linux/kernel/git/hskinnemoen/avr32-2.6:
  [AVR32] ARRAY_SIZE() cleanup
  [AVR32] Implement at32_add_device_cf()
  [AVR32] Implement more at32_add_device_foo() functions
  [AVR32] Fix a couple of sparse warnings
  [AVR32] Wire up AT73C213 sound driver on ATSTK1000 board
  [AVR32] Platform code for pata_at32
</pre>
</div>
</content>
</entry>
<entry>
<title>fvr32: fixup dma-mapping for new sg layout</title>
<updated>2007-10-23T10:54:14+00:00</updated>
<author>
<name>Jens Axboe</name>
<email>jens.axboe@oracle.com</email>
</author>
<published>2007-10-23T10:54:14+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/litmus2008.git/commit/?id=83fcaf70403ce04c693b52e62c794834b9a86089'/>
<id>83fcaf70403ce04c693b52e62c794834b9a86089</id>
<content type='text'>
Signed-off-by: Jens Axboe &lt;jens.axboe@oracle.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Signed-off-by: Jens Axboe &lt;jens.axboe@oracle.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
