Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

3 Commits   0 Branches   0 Tags
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  1) ===========================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  2) Atomic Operation Control (ATOMCTL) Register
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  3) ===========================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  4) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  5) We Have Atomic Operation Control (ATOMCTL) Register.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  6) This register determines the effect of using a S32C1I instruction
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  7) with various combinations of:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  8) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  9)      1. With and without an Coherent Cache Controller which
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10)         can do Atomic Transactions to the memory internally.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12)      2. With and without An Intelligent Memory Controller which
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13)         can do Atomic Transactions itself.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) The Core comes up with a default value of for the three types of cache ops::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17)       0x28: (WB: Internal, WT: Internal, BY:Exception)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) On the FPGA Cards we typically simulate an Intelligent Memory controller
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) which can implement  RCW transactions. For FPGA cards with an External
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) Memory controller we let it to the atomic operations internally while
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) doing a Cached (WB) transaction and use the Memory RCW for un-cached
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) operations.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) For systems without an coherent cache controller, non-MX, we always
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) use the memory controllers RCW, thought non-MX controlers likely
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) support the Internal Operation.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) CUSTOMER-WARNING:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30)    Virtually all customers buy their memory controllers from vendors that
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31)    don't support atomic RCW memory transactions and will likely want to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32)    configure this register to not use RCW.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) Developers might find using RCW in Bypass mode convenient when testing
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) with the cache being bypassed; for example studying cache alias problems.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) See Section 4.3.12.4 of ISA; Bits::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39)                              WB     WT      BY
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40)                            5   4 | 3   2 | 1   0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) =========    ==================      ==================      ===============
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43)   2 Bit
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44)   Field
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45)   Values     WB - Write Back         WT - Write Thru         BY - Bypass
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) =========    ==================      ==================      ===============
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47)     0        Exception               Exception               Exception
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48)     1        RCW Transaction         RCW Transaction         RCW Transaction
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49)     2        Internal Operation      Internal Operation      Reserved
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50)     3        Reserved                Reserved                Reserved
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) =========    ==================      ==================      ===============