Back to home page

OSCL-LXR

 
 

    


0001 ===========================================
0002 Atomic Operation Control (ATOMCTL) Register
0003 ===========================================
0004 
0005 We Have Atomic Operation Control (ATOMCTL) Register.
0006 This register determines the effect of using a S32C1I instruction
0007 with various combinations of:
0008 
0009      1. With and without an Coherent Cache Controller which
0010         can do Atomic Transactions to the memory internally.
0011 
0012      2. With and without An Intelligent Memory Controller which
0013         can do Atomic Transactions itself.
0014 
0015 The Core comes up with a default value of for the three types of cache ops::
0016 
0017       0x28: (WB: Internal, WT: Internal, BY:Exception)
0018 
0019 On the FPGA Cards we typically simulate an Intelligent Memory controller
0020 which can implement  RCW transactions. For FPGA cards with an External
0021 Memory controller we let it to the atomic operations internally while
0022 doing a Cached (WB) transaction and use the Memory RCW for un-cached
0023 operations.
0024 
0025 For systems without an coherent cache controller, non-MX, we always
0026 use the memory controllers RCW, thought non-MX controlers likely
0027 support the Internal Operation.
0028 
0029 CUSTOMER-WARNING:
0030    Virtually all customers buy their memory controllers from vendors that
0031    don't support atomic RCW memory transactions and will likely want to
0032    configure this register to not use RCW.
0033 
0034 Developers might find using RCW in Bypass mode convenient when testing
0035 with the cache being bypassed; for example studying cache alias problems.
0036 
0037 See Section 4.3.12.4 of ISA; Bits::
0038 
0039                              WB     WT      BY
0040                            5   4 | 3   2 | 1   0
0041 
0042 =========    ==================      ==================      ===============
0043   2 Bit
0044   Field
0045   Values     WB - Write Back         WT - Write Thru         BY - Bypass
0046 =========    ==================      ==================      ===============
0047     0        Exception               Exception               Exception
0048     1        RCW Transaction         RCW Transaction         RCW Transaction
0049     2        Internal Operation      Internal Operation      Reserved
0050     3        Reserved                Reserved                Reserved
0051 =========    ==================      ==================      ===============