OpenCores
URL https://opencores.org/ocsvn/or1k_soc_on_altera_embedded_dev_kit/or1k_soc_on_altera_embedded_dev_kit/trunk

Subversion Repositories or1k_soc_on_altera_embedded_dev_kit

[/] [or1k_soc_on_altera_embedded_dev_kit/] [trunk/] [linux-2.6/] [linux-2.6.24/] [Documentation/] [sh/] [register-banks.txt] - Blame information for rev 3

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 3 xianfeng
        Notes on register bank usage in the kernel
2
        ==========================================
3
 
4
Introduction
5
------------
6
 
7
The SH-3 and SH-4 CPU families traditionally include a single partial register
8
bank (selected by SR.RB, only r0 ... r7 are banked), whereas other families
9
may have more full-featured banking or simply no such capabilities at all.
10
 
11
SR.RB banking
12
-------------
13
 
14
In the case of this type of banking, banked registers are mapped directly to
15
r0 ... r7 if SR.RB is set to the bank we are interested in, otherwise ldc/stc
16
can still be used to reference the banked registers (as r0_bank ... r7_bank)
17
when in the context of another bank. The developer must keep the SR.RB value
18
in mind when writing code that utilizes these banked registers, for obvious
19
reasons. Userspace is also not able to poke at the bank1 values, so these can
20
be used rather effectively as scratch registers by the kernel.
21
 
22
Presently the kernel uses several of these registers.
23
 
24
        - r0_bank, r1_bank (referenced as k0 and k1, used for scratch
25
          registers when doing exception handling).
26
        - r2_bank (used to track the EXPEVT/INTEVT code)
27
                - Used by do_IRQ() and friends for doing irq mapping based off
28
                  of the interrupt exception vector jump table offset
29
        - r6_bank (global interrupt mask)
30
                - The SR.IMASK interrupt handler makes use of this to set the
31
                  interrupt priority level (used by local_irq_enable())
32
        - r7_bank (current)
33
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.