SmallCacheInner-IO.oracle
Pradeep Sindhu May 6, 1988 11:24:10 pm PDT
Don Curry May 20, 1988 7:14:57 pm PDT
TEST COMPLETE
NB: Each line corresponds to one cycle of the DynaBus clock
The state of the cache following Reset is: SmallCacheArrayStateValues.cacheStateValueC
← Logic.SetOracleFileName["SmallCacheInnerTest", "SmallCacheInner-IO"]
← SmallCacheLogic.ArrayPutState[SmallCacheLogic.cacheStateValueC]
Perform the reset sequence:
Assert Reset till x's get flushed out (the last signal appears to be RamForP, which settles 3 cycles after BCtlRamForBCWS6, which settles in cycle 6):
Pradeep Sindhu May 6, 1988 6:28:09 pm PDT
D D D n n D  D B B  G G I P P P P  | D H B  B B R S P P P P P
S A E D D S  S C D  L r S m C B D  | B d D  O S e S R F F D R
h d x F R e  e y a  e a S o m y a  | u r a  w h q t e a a a e
i d e r e r  l c t  n n t d d t t  | s C t  n a u o j u u t s
f r c e s i  e l a  g t o e I e a  | O y a  e r e p e l l a c
t e u e e a  c e I  t  p I n S   | u c O  r e s O c t t  h
C s t z t l  t 0 n  h  I n  e   | t l u  O d t u t  C  e
k s e e I         n   l   |  e t  u O  t   o  d
n           I   |  O   t u     d  u
               n   |  u    t     e  l
                  |  t           e
                  |              
( 0 0 0 1 0 0 ) 0 0 0000 0 0 0 0 0 0 00 | x x xxxx x x x x x x x xx x --A
( 0 0 0 1 0 0 ) 0 0 0000 0 0 0 0 0 0 00 | x x xxxx x x x x x x x xx x
( 0 0 0 1 0 0 ) 0 0 0000 0 0 0 0 0 0 00 | x x xxxx x x x x x x x xx x --B
( 0 0 0 1 0 0 ) 0 0 0000 0 0 0 0 0 0 00 | x x xxxx x x x x x x x xx x
( 0 0 0 1 0 0 ) 0 0 0000 0 0 0 0 0 0 00 | x x xxxx x x x x x 0 x xx x --A
( 0 0 0 1 0 0 ) 0 0 0000 0 0 0 0 0 0 00 | x x xxxx x x x x x 0 x xx x
( 0 0 0 1 0 0 ) 0 0 0000 0 0 0 0 0 0 00 | x x xxxx x x x x x 0 x xx x --B
( 0 0 0 1 0 0 ) 0 0 0000 0 0 0 0 0 0 00 | x x xxxx x x x x x 0 x xx x
( 0 0 0 1 0 0 ) 0 0 0000 0 0 0 0 0 0 00 | x x xxxx x x x x x 0 x xx x --A
( 0 0 0 1 0 0 ) 0 0 0000 0 0 0 0 0 0 00 | x x xxxx x x x x x 0 x xx x
( 0 0 0 1 0 0 ) 0 0 0000 0 0 0 0 0 0 00 | x x xxxx x x x x x 0 x xx x --B
( 0 0 0 1 0 0 ) 0 0 0000 0 0 0 0 0 0 00 | x x xxxx x x x x x 0 x xx x
( 0 0 0 1 0 0 ) 0 0 0000 0 0 0 0 0 0 00 | x x xxxx x x x x x 0 x xx x --A
( 0 0 0 1 0 0 ) 0 0 0000 0 0 0 0 0 0 00 | x x xxxx x x x x x 0 x xx x
( 0 0 0 1 0 0 ) 0 0 0000 0 0 0 0 0 0 00 | x x xxxx x x x x x 0 x xx x --B
( 0 0 0 1 0 0 ) 0 0 0000 0 0 0 0 0 0 00 | x x xxxx x x x x 0 0 x xx x
( 0 0 0 1 0 0 ) 0 0 0000 0 0 0 0 0 0 00 | x x xxxx x x x x 0 0 x xx x --A
( 0 0 0 1 0 0 ) 0 0 0000 0 0 0 0 0 0 00 | x x xxxx x x x x 0 0 x xx x
( 0 0 0 1 0 0 ) 0 0 0000 0 0 0 0 0 0 00 | x x xxxx x x x x 0 0 x xx x --B
( 0 0 0 1 0 0 ) 0 0 0000 0 0 0 0 0 0 00 | x x xxxx x x x x 0 0 x xx x
( 0 0 0 1 0 0 ) 0 0 0000 0 0 0 0 0 0 00 | x x xxxx x x x x 0 0 x xx x --A
( 0 0 0 1 0 0 ) 0 0 0000 0 0 0 0 0 0 00 | x x xxxx x x x x 0 0 x xx x
( 0 0 0 1 0 0 ) 0 0 0000 0 0 0 0 0 0 00 | x x xxxx x x x x 0 0 x xx x --B
( 0 0 0 1 0 0 ) 0 0 0000 0 0 0 0 0 0 00 | x x xxxx x x x x 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 00 | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 00 | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 00 | x 0 xxxx 0 0 0 0 0 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 00 | x 0 xxxx 0 0 0 0 0 0 x xx x
Check that chip Id can be read out (scan path 0):
D D D n n D  D B B  G G I P P P P  | D H B  B B R S P P P P P
S A E D D S  S C D  L r S m C B D  | B d D  O S e S R F F D R
h d x F R e  e y a  e a S o m y a  | u r a  w h q t e a a a e
i d e r e r  l c t  n n t d d t t  | s C t  n a u o j u u t s
f r c e s i  e l a  g t o e I e a  | O y a  e r e p e l l a c
t e u e e a  c e I  t  p I n S   | u c O  r e s O c t t  h
C s t z t l  t 0 n  h  I n  e   | t l u  O d t u t  C  e
k s e e I         n   l   |  e t  u O  t   o  d
n           I   |  O   t u     d  u
               n   |  u    t     e  l
                  |  t           e
                  |              
( 0 1 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 00 | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 1 1 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 00 | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 1 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 00 | x 0 xxxx 0 0 0 0 0 0 x xx x --B
( 1 1 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 00 | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 1 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 00 | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 1 1 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 00 | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 1 0 0000 0 0 0 0 0 0 00 | 0 0 xxxx 0 0 0 0 0 0 x xx x --B
( 1 0 0 1 1 0 ) 1 0 0000 0 0 0 0 0 0 00 | 1 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 1 0 0000 0 0 0 0 0 0 00 | 1 0 xxxx 0 0 0 0 0 0 x xx x --A
( 1 0 0 1 1 0 ) 1 0 0000 0 0 0 0 0 0 00 | 0 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 1 0 0000 0 0 0 0 0 0 00 | 0 0 xxxx 0 0 0 0 0 0 x xx x --B
( 1 0 0 1 1 0 ) 1 0 0000 0 0 0 0 0 0 00 | 1 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 1 0 0000 0 0 0 0 0 0 00 | 1 0 xxxx 0 0 0 0 0 0 x xx x --A
( 1 0 0 1 1 0 ) 1 0 0000 0 0 0 0 0 0 00 | 0 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 1 0 0000 0 0 0 0 0 0 00 | 0 0 xxxx 0 0 0 0 0 0 x xx x --B
( 1 0 0 1 1 0 ) 1 0 0000 0 0 0 0 0 0 00 | 0 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 1 0 0000 0 0 0 0 0 0 00 | 0 0 xxxx 0 0 0 0 0 0 x xx x --A
( 1 0 0 1 1 0 ) 1 0 0000 0 0 0 0 0 0 00 | 0 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 1 0 0000 0 0 0 0 0 0 00 | 0 0 xxxx 0 0 0 0 0 0 x xx x --B
( 1 0 0 1 1 0 ) 1 0 0000 0 0 0 0 0 0 00 | 1 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 1 0 0000 0 0 0 0 0 0 00 | 1 0 xxxx 0 0 0 0 0 0 x xx x --A
( 1 0 0 1 1 0 ) 1 0 0000 0 0 0 0 0 0 00 | 0 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 1 0 0000 0 0 0 0 0 0 00 | 0 0 xxxx 0 0 0 0 0 0 x xx x --B
( 1 0 0 1 1 0 ) 1 0 0000 0 0 0 0 0 0 00 | 1 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 1 0 0000 0 0 0 0 0 0 00 | 1 0 xxxx 0 0 0 0 0 0 x xx x --A
( 1 0 0 1 1 0 ) 1 0 0000 0 0 0 0 0 0 00 | 0 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 1 0 0000 0 0 0 0 0 0 00 | 0 0 xxxx 0 0 0 0 0 0 x xx x --B
( 1 0 0 1 1 0 ) 1 0 0000 0 0 0 0 0 0 00 | 1 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 1 0 0000 0 0 0 0 0 0 00 | 1 0 xxxx 0 0 0 0 0 0 x xx x --A
( 1 0 0 1 1 0 ) 1 0 0000 0 0 0 0 0 0 00 | 1 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 1 0 0000 0 0 0 0 0 0 00 | 1 0 xxxx 0 0 0 0 0 0 x xx x --B
( 1 0 0 1 1 0 ) 1 0 0000 0 0 0 0 0 0 00 | 1 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 1 0 0000 0 0 0 0 0 0 00 | 1 0 xxxx 0 0 0 0 0 0 x xx x --A
( 1 0 0 1 1 0 ) 1 0 0000 0 0 0 0 0 0 00 | 0 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 1 0 0000 0 0 0 0 0 0 00 | 0 0 xxxx 0 0 0 0 0 0 x xx x --B
( 1 0 0 1 1 0 ) 1 0 0000 0 0 0 0 0 0 00 | 1 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 1 0 0000 0 0 0 0 0 0 00 | 1 0 xxxx 0 0 0 0 0 0 x xx x --A
( 1 0 0 1 1 0 ) 1 0 0000 0 0 0 0 0 0 00 | 0 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 00 | x 0 xxxx 0 0 0 0 0 0 x xx x --B
( 1 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 00 | x 0 xxxx 0 0 0 0 0 0 x xx x
Shift In MyId (scan path 1) (Recall that MyId is only one bit so only one bit needs to be shifted in):
D D D n n D  D B B  G G I P P P P  | D H B  B B R S P P P P P
S A E D D S  S C D  L r S m C B D  | B d D  O S e S R F F D R
h d x F R e  e y a  e a S o m y a  | u r a  w h q t e a a a e
i d e r e r  l c t  n n t d d t t  | s C t  n a u o j u u t s
f r c e s i  e l a  g t o e I e a  | O y a  e r e p e l l a c
t e u e e a  c e I  t  p I n S   | u c O  r e s O c t t  h
C s t z t l  t 0 n  h  I n  e   | t l u  O d t u t  C  e
k s e e I         n   l   |  e t  u O  t   o  d
n           I   |  O   t u     d  u
               n   |  u    t     e  l
                  |  t           e
                  |              
( 0 1 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 00 | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 1 1 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 00 | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 1 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 00 | x 0 xxxx 0 0 0 0 0 0 x xx x --B
( 1 1 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 00 | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 1 0 1 1 1 ) 0 0 0000 0 0 0 0 0 0 00 | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 1 1 0 1 1 1 ) 0 0 0000 0 0 0 0 0 0 00 | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 1 ) 1 0 0000 0 0 0 0 0 0 00 | x 0 xxxx 0 0 0 0 0 0 x xx x --B
( 1 0 0 1 1 1 ) 1 0 0000 0 0 0 0 0 0 00 | 1 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 1 ) 1 0 0000 0 0 0 0 0 0 00 | 1 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 1 0 0000 0 0 0 0 0 0 00 | 1 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 1 0 0000 0 0 0 0 0 0 00 | 1 0 xxxx 0 0 0 0 0 0 x xx x --B
( 0 0 0 1 1 0 ) 1 0 0000 0 0 0 0 0 0 00 | 1 0 xxxx 0 0 0 0 0 0 x xx x
SmallCacheInner-IO:
IO Read Miss:
IO Read [30], Kernel Mode:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 CF30 | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 CF30 | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 xx | x 0 xxxx 0 0 0 0 1 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 1 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x x xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x x xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x x xxxx 0 0 0 0 1 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x x xxxx 0 0 0 0 1 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x x xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x x xxxx 0 0 2 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x x xxxx 0 0 0 0 1 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x x xxxx 0 0 0 0 1 0 x xx x
Let the grant come here, so we send our IOReadRqst
( 0 0 0 1 1 0 ) 0 0 0000 0 1 0 0 0 0 xx | x x xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 1 0 0 0 0 xx | x 18130 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 1 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x x xxxx 0 0 0 0 1 0 x xx x
Here's our IOReadRqst on our input wires, followed immediately by the IOReadRply
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 18130 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 1 0 x xx x --B
( 0 0 0 1 1 0 ) 0 00000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 1 0 x xx x
( 0 0 0 1 1 0 ) 0 18930 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 00AB 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 1 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 1 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 1 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 1 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x AB x
IO Write Miss:
IO Write Miss [30], Kernel Mode:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 DF30 | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 DF30 | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 DFAB | x 0 xxxx 0 0 0 0 1 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 AB | x 0 xxxx 0 0 0 0 1 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x x xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x x xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x x xxxx 0 0 0 0 1 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x x xxxx 0 0 0 0 1 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x x xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x x xxxx 0 0 2 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x x xxxx 0 0 0 0 1 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x x xxxx 0 0 0 0 1 0 x xx x
Let the grant come here, so we send our IOWriteRqst
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x x xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 1 0 0 0 0 xx | x x xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 1 0 0 0 0 xx | x 19130 0 0 0 0 1 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0xxAB 0 0 0 0 1 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 1 0 x xx x --B
( 0 0 0 1 1 0 ) 0 19130 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 1 0 x xx x
Here's our IOWriteRqst on our input wires, followed immediately by the IOWriteRply
( 0 0 0 1 1 0 ) 0 000AB 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 19930 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 00000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 1 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 1 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 1 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 1 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x
Check the operation of each IO location in turn:
CWSOld:
Write CWSOld [01], Kernel Mode:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D F 01 | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D F 01 | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D F AB | x 0 xxxx 0 0 0 0 0 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 AB | x 0 xxxx 0 0 0 0 0 0 x xx x
Read it back [01]:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 01 | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 01 | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x AB x
Write CWSOld [01], User Mode:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 1 D F 01 | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 1 D F 01 | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D F CD | x 0 xxxx 0 0 0 0 0 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 CD | x 0 xxxx 0 0 0 0 0 0 x xx x
Read it back [01]:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 1 C 0 01 | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 1 C 0 01 | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x CD x
Write CWSOld [01], User Mode, ByteWrite:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 1 D 3 01 | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 1 D 3 01 | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D 3 03 | x 0 xxxx 0 0 0 0 0 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 03 | x 0 xxxx 0 0 0 0 0 0 x xx x
Read it back [01]:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 01 | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 01 | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x C3 x
CWSNew:
Write CWSOld [03], Kernel Mode:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D F 03 | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D F 03 | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D F 0F | x 0 xxxx 0 0 0 0 0 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 0F | x 0 xxxx 0 0 0 0 0 0 x xx x
Read it back [03]:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 03 | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 03 | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x 0F x
Write CWSOld [03], User Mode:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 1 D F 03 | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 1 D F 03 | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D F F0 | x 0 xxxx 0 0 0 0 0 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 F0 | x 0 xxxx 0 0 0 0 0 0 x xx x
Read it back [03]:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 1 C 0 03 | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 1 C 0 03 | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x F0 x
Write CWSOld [03], User Mode, ByteWrite:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 1 D 1 03 | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 1 D 1 03 | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D 1 03 | x 0 xxxx 0 0 0 0 0 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 03 | x 0 xxxx 0 0 0 0 0 0 x xx x
Read it back [03]:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 03 | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 03 | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x F3 x
AID:
Write AID [09], Kernel Mode:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D F 09 | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D F 09 | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D F 11 | x 0 xxxx 0 0 0 0 0 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 11 | x 0 xxxx 0 0 0 0 0 0 x xx x
Read it back [09]:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 09 | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 09 | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x 11 x
Write AID [09], ByteWrite:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D 3 09 | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D 3 09 | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D 3 02 | x 0 xxxx 0 0 0 0 0 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 02 | x 0 xxxx 0 0 0 0 0 0 x xx x
Read it back [09]:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 09 | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 09 | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x 12 x
Write AID [09], User Mode: Should generate protection fault
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 1 D F 09 | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 1 D F 09 | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D F F0 | x 0 xxxx 0 0 0 0 1 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 F0 | x 0 xxxx 0 0 0 0 1 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 1 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 1 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 1 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 1 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 1 x x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 1 1 3 xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x
FaultCode:
Write FaultCode [0B], Kernel Mode:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D F 0B | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D F 0B | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D F 22 | x 0 xxxx 0 0 0 0 0 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 22 | x 0 xxxx 0 0 0 0 0 0 x xx x
Read it back [0B]:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 0B | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 0B | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x 22 x
Write FaultCode [0B], ByteWrite:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D 3 0B | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D 3 0B | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D 3 03 | x 0 xxxx 0 0 0 0 0 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 03 | x 0 xxxx 0 0 0 0 0 0 x xx x
Read it back [0B]:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 0B | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 0B | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x 23 x
Write FaultCode [0B], User Mode: Should generate protection fault
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 1 D F 0B | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 1 D F 0B | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D F F0 | x 0 xxxx 0 0 0 0 1 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 F0 | x 0 xxxx 0 0 0 0 1 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 1 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 1 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 1 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 1 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 1 x x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 1 1 3 xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x
InterruptStatus:
Write InterruptStatus [0D], Kernel Mode:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D F 0D | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D F 0D | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D F 33 | x 0 xxxx 0 0 0 0 0 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 33 | x 0 xxxx 0 0 0 0 0 0 x xx x
Read it back [0D]:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 0D | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 0D | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x 33 x
Write InterruptStatus [0D], ByteWrite:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D 3 0D | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D 3 0D | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D 3 04 | x 0 xxxx 0 0 0 0 0 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 04 | x 0 xxxx 0 0 0 0 0 0 x xx x
Read it back [0D]:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 0D | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 0D | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x 34 x
Write InterruptStatus [0D], User Mode: Should generate protection fault
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 1 D F 0D | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 1 D F 0D | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D F F0 | x 0 xxxx 0 0 0 0 1 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 F0 | x 0 xxxx 0 0 0 0 1 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 1 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 1 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 1 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 1 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 1 x x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 1 1 3 xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x
InterruptMask:
Write InterruptMask [0F], Kernel Mode:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D F 0F | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D F 0F | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D F 44 | x 0 xxxx 0 0 0 0 0 0 x xx 1 --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 44 | x 0 xxxx 0 0 0 0 0 0 x xx 1
Read it back [0F]:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 0F | x 0 xxxx 0 0 0 0 0 0 x xx 1 --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 0F | x 0 xxxx 0 0 0 0 0 0 x xx 1
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx 1 --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x 44 1
Write InterruptMask [0F], ByteWrite:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D 3 0F | x 0 xxxx 0 0 0 0 0 0 x xx 1 --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D 3 0F | x 0 xxxx 0 0 0 0 0 0 x xx 1
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D 3 05 | x 0 xxxx 0 0 0 0 0 0 x xx 1 --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 05 | x 0 xxxx 0 0 0 0 0 0 x xx 1
Read it back [0F]:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 0F | x 0 xxxx 0 0 0 0 0 0 x xx 1 --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 0F | x 0 xxxx 0 0 0 0 0 0 x xx 1
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx 1 --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x 45 1
Write InterruptMask [0F], User Mode: Should generate protection fault
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 1 D F 0F | x 0 xxxx 0 0 0 0 0 0 x xx 1 --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 1 D F 0F | x 0 xxxx 0 0 0 0 0 0 x xx 1
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D F F0 | x 0 xxxx 0 0 0 0 1 0 x xx 1 --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 F0 | x 0 xxxx 0 0 0 0 1 0 x xx 1
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx 1 --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx 1
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 1 0 x xx 1 --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 1 0 x xx 1
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx 1 --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx 1
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 1 0 x xx 1 --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 1 0 x xx 1
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx 1 --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx 1
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 1 x x xx 1 --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 1 1 3 xx 1
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx 1 --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx 1
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx 1 --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx 1
Write 00 to InterruptMask [0F], Kernel Mode:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D F 0F | x 0 xxxx 0 0 0 0 0 0 x xx 1 --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D F 0F | x 0 xxxx 0 0 0 0 0 0 x xx 1
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D F 00 | x 0 xxxx 0 0 0 0 0 0 x xx 0 --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 00 | x 0 xxxx 0 0 0 0 0 0 x xx 0
Read it back to check:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 0F | x 0 xxxx 0 0 0 0 0 0 x xx 0 --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 0F | x 0 xxxx 0 0 0 0 0 0 x xx 0
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx 0 --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x 00 0
Write AA to InterruptMask [0F], Kernel Mode:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D F 0F | x 0 xxxx 0 0 0 0 0 0 x xx 0 --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D F 0F | x 0 xxxx 0 0 0 0 0 0 x xx 0
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D F AA | x 0 xxxx 0 0 0 0 0 0 x xx 1 --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 AA | x 0 xxxx 0 0 0 0 0 0 x xx 1
Read it back to check:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 0F | x 0 xxxx 0 0 0 0 0 0 x xx 1 --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 0F | x 0 xxxx 0 0 0 0 0 0 x xx 1
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx 1 --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x AA 1
Write 00 to InterruptStatus [0D], Kernel Mode:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D F 0D | x 0 xxxx 0 0 0 0 0 0 x xx 1 --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D F 0D | x 0 xxxx 0 0 0 0 0 0 x xx 1
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D F 00 | x 0 xxxx 0 0 0 0 0 0 x xx 0 --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 00 | x 0 xxxx 0 0 0 0 0 0 x xx 0
Read it back to check:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 0D | x 0 xxxx 0 0 0 0 0 0 x xx 0 --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 0D | x 0 xxxx 0 0 0 0 0 0 x xx 0
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx 0 --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x 00 0
Starting at the highest order bit, set and then clear each bit, checking that SetReschedule is correctly generated. Since we wrote 1010 1010 (AA) into InterruptMask, we should get the alternating pattern 1010 1010 for SetReschedule.
Set bit 0:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D F 1D | x 0 xxxx 0 0 0 0 0 0 x xx 0 --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D F 1D | x 0 xxxx 0 0 0 0 0 0 x xx 0
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D F 80 | x 0 xxxx 0 0 0 0 0 0 x xx 1 --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 80 | x 0 xxxx 0 0 0 0 0 0 x xx 1
Check that bit 0 got set:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 0D | x 0 xxxx 0 0 0 0 0 0 x xx 1 --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 0D | x 0 xxxx 0 0 0 0 0 0 x xx 1
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx 1 --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x 80 1
Clear bit 0:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D F 15 | x 0 xxxx 0 0 0 0 0 0 x xx 1 --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D F 15 | x 0 xxxx 0 0 0 0 0 0 x xx 1
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D F 80 | x 0 xxxx 0 0 0 0 0 0 x xx 0 --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 80 | x 0 xxxx 0 0 0 0 0 0 x xx 0
Check that bit 0 got cleared:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 0D | x 0 xxxx 0 0 0 0 0 0 x xx 0 --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 0D | x 0 xxxx 0 0 0 0 0 0 x xx 0
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx 0 --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x 00 0
Set bit 1:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D F 1D | x 0 xxxx 0 0 0 0 0 0 x xx 0 --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D F 1D | x 0 xxxx 0 0 0 0 0 0 x xx 0
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D F 40 | x 0 xxxx 0 0 0 0 0 0 x xx 0 --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 40 | x 0 xxxx 0 0 0 0 0 0 x xx 0
Check that bit 1 got set:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 0D | x 0 xxxx 0 0 0 0 0 0 x xx 0 --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 0D | x 0 xxxx 0 0 0 0 0 0 x xx 0
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx 0 --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x 40 0
Clear bit 1:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D F 15 | x 0 xxxx 0 0 0 0 0 0 x xx 0 --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D F 15 | x 0 xxxx 0 0 0 0 0 0 x xx 0
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D F 40 | x 0 xxxx 0 0 0 0 0 0 x xx 0 --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 40 | x 0 xxxx 0 0 0 0 0 0 x xx 0
Check that bit 1 got cleared:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 0D | x 0 xxxx 0 0 0 0 0 0 x xx 0 --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 0D | x 0 xxxx 0 0 0 0 0 0 x xx 0
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx 0 --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x 00 0
Set bit 2:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D F 1D | x 0 xxxx 0 0 0 0 0 0 x xx 0 --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D F 1D | x 0 xxxx 0 0 0 0 0 0 x xx 0
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D F 20 | x 0 xxxx 0 0 0 0 0 0 x xx 1 --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 20 | x 0 xxxx 0 0 0 0 0 0 x xx 1
Check that bit 2 got set:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 0D | x 0 xxxx 0 0 0 0 0 0 x xx 1 --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 0D | x 0 xxxx 0 0 0 0 0 0 x xx 1
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx 1 --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x 20 1
Clear bit 2:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D F 15 | x 0 xxxx 0 0 0 0 0 0 x xx 1 --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D F 15 | x 0 xxxx 0 0 0 0 0 0 x xx 1
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D F 20 | x 0 xxxx 0 0 0 0 0 0 x xx 0 --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 20 | x 0 xxxx 0 0 0 0 0 0 x xx 0
Check that bit 2 got cleared:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 0D | x 0 xxxx 0 0 0 0 0 0 x xx 0 --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 0D | x 0 xxxx 0 0 0 0 0 0 x xx 0
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx 0 --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x 00 0
Set bit 3:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D F 1D | x 0 xxxx 0 0 0 0 0 0 x xx 0 --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D F 1D | x 0 xxxx 0 0 0 0 0 0 x xx 0
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D F 10 | x 0 xxxx 0 0 0 0 0 0 x xx 0 --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 10 | x 0 xxxx 0 0 0 0 0 0 x xx 0
Check that bit 3 got set:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 0D | x 0 xxxx 0 0 0 0 0 0 x xx 0 --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 0D | x 0 xxxx 0 0 0 0 0 0 x xx 0
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx 0 --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x 10 0
Clear bit 3:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D F 15 | x 0 xxxx 0 0 0 0 0 0 x xx 0 --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D F 15 | x 0 xxxx 0 0 0 0 0 0 x xx 0
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D F 10 | x 0 xxxx 0 0 0 0 0 0 x xx 0 --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 10 | x 0 xxxx 0 0 0 0 0 0 x xx 0
Check that bit 3 got cleared:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 0D | x 0 xxxx 0 0 0 0 0 0 x xx 0 --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 0D | x 0 xxxx 0 0 0 0 0 0 x xx 0
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx 0 --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x 00 0
Set bit 4:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D F 1D | x 0 xxxx 0 0 0 0 0 0 x xx 0 --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D F 1D | x 0 xxxx 0 0 0 0 0 0 x xx 0
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D F 08 | x 0 xxxx 0 0 0 0 0 0 x xx 1 --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 08 | x 0 xxxx 0 0 0 0 0 0 x xx 1
Check that bit 4 got set:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 0D | x 0 xxxx 0 0 0 0 0 0 x xx 1 --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 0D | x 0 xxxx 0 0 0 0 0 0 x xx 1
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx 1 --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x 08 1
Clear bit 4:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D F 15 | x 0 xxxx 0 0 0 0 0 0 x xx 1 --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D F 15 | x 0 xxxx 0 0 0 0 0 0 x xx 1
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D F 08 | x 0 xxxx 0 0 0 0 0 0 x xx 0 --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 08 | x 0 xxxx 0 0 0 0 0 0 x xx 0
Check that bit 4 got cleared:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 0D | x 0 xxxx 0 0 0 0 0 0 x xx 0 --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 0D | x 0 xxxx 0 0 0 0 0 0 x xx 0
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx 0 --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x 00 0
Set bit 5:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D F 1D | x 0 xxxx 0 0 0 0 0 0 x xx 0 --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D F 1D | x 0 xxxx 0 0 0 0 0 0 x xx 0
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D F 04 | x 0 xxxx 0 0 0 0 0 0 x xx 0 --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 04 | x 0 xxxx 0 0 0 0 0 0 x xx 0
Check that bit 5 got set:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 0D | x 0 xxxx 0 0 0 0 0 0 x xx 0 --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 0D | x 0 xxxx 0 0 0 0 0 0 x xx 0
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx 0 --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x 04 0
Clear bit 5:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D F 15 | x 0 xxxx 0 0 0 0 0 0 x xx 0 --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D F 15 | x 0 xxxx 0 0 0 0 0 0 x xx 0
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D F 04 | x 0 xxxx 0 0 0 0 0 0 x xx 0 --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 04 | x 0 xxxx 0 0 0 0 0 0 x xx 0
Check that bit 5 got cleared:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 0D | x 0 xxxx 0 0 0 0 0 0 x xx 0 --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 0D | x 0 xxxx 0 0 0 0 0 0 x xx 0
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx 0 --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x 00 0
Set bit 6:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D F 1D | x 0 xxxx 0 0 0 0 0 0 x xx 0 --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D F 1D | x 0 xxxx 0 0 0 0 0 0 x xx 0
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D F 02 | x 0 xxxx 0 0 0 0 0 0 x xx 1 --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 02 | x 0 xxxx 0 0 0 0 0 0 x xx 1
Check that bit 6 got set:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 0D | x 0 xxxx 0 0 0 0 0 0 x xx 1 --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 0D | x 0 xxxx 0 0 0 0 0 0 x xx 1
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx 1 --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x 02 1
Clear bit 6:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D F 15 | x 0 xxxx 0 0 0 0 0 0 x xx 1 --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D F 15 | x 0 xxxx 0 0 0 0 0 0 x xx 1
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D F 02 | x 0 xxxx 0 0 0 0 0 0 x xx 0 --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 02 | x 0 xxxx 0 0 0 0 0 0 x xx 0
Check that bit 6 got cleared:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 0D | x 0 xxxx 0 0 0 0 0 0 x xx 0 --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 0D | x 0 xxxx 0 0 0 0 0 0 x xx 0
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx 0 --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x 00 0
Set bit 7:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D F 1D | x 0 xxxx 0 0 0 0 0 0 x xx 0 --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D F 1D | x 0 xxxx 0 0 0 0 0 0 x xx 0
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D F 01 | x 0 xxxx 0 0 0 0 0 0 x xx 0 --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 01 | x 0 xxxx 0 0 0 0 0 0 x xx 0
Check that bit 7 got set:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 0D | x 0 xxxx 0 0 0 0 0 0 x xx 0 --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 0D | x 0 xxxx 0 0 0 0 0 0 x xx 0
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx 0 --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x 01 0
Clear bit 7:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D F 15 | x 0 xxxx 0 0 0 0 0 0 x xx 0 --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D F 15 | x 0 xxxx 0 0 0 0 0 0 x xx 0
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D F 01 | x 0 xxxx 0 0 0 0 0 0 x xx 0 --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 01 | x 0 xxxx 0 0 0 0 0 0 x xx 0
Check that bit 7 got cleared:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 0D | x 0 xxxx 0 0 0 0 0 0 x xx 0 --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 0D | x 0 xxxx 0 0 0 0 0 0 x xx 0
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx 0 --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x 00 0
Modes:
Write Modes [25], Kernel Mode:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D F 25 | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D F 25 | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D F 44 | x 0 xxxx 0 0 0 0 0 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 44 | x 0 xxxx 0 0 0 0 0 0 x xx x
Read it back [25]:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 25 | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 25 | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x 44 x
Write Modes [25], ByteWrite:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D 3 25 | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D 3 25 | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D 3 05 | x 0 xxxx 0 0 0 0 0 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 05 | x 0 xxxx 0 0 0 0 0 0 x xx x
Read it back [25]:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 25 | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 25 | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x 45 x
Write Modes [25], User Mode: Should generate protection fault
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 1 D F 25 | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 1 D F 25 | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D F F0 | x 0 xxxx 0 0 0 0 1 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 F0 | x 0 xxxx 0 0 0 0 1 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 1 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 1 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 1 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 1 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 1 x x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 1 1 3 xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x
LocalFaultCode:
Write LocalFaultCode [29], Kernel Mode:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D F 29 | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D F 29 | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D F 44 | x 0 xxxx 0 0 0 0 0 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 44 | x 0 xxxx 0 0 0 0 0 0 x xx x
Read it back [29]:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 29 | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 29 | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x FF x
Write LocalFaultCode [29], ByteWrite:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D 3 29 | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D 3 29 | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D 3 05 | x 0 xxxx 0 0 0 0 0 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 05 | x 0 xxxx 0 0 0 0 0 0 x xx x
Read it back [29]:
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 29 | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 29 | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 C 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x FF x
Write LocalFaultCode [29], User Mode: Should generate protection fault
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 1 D F 29 | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 1 D F 29 | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 D F F0 | x 0 xxxx 0 0 0 0 1 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 F0 | x 0 xxxx 0 0 0 0 1 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 1 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 1 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 1 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 1 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 1 x x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 1 1 3 xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x --A
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x --B
( 0 0 0 1 1 0 ) 0 0 0000 0 0 0 0 0 0 xx | x 0 xxxx 0 0 0 0 0 0 x xx x
.