Revision history   OpenPOWER Library

 10.2.4.2. Storage Segment Table Pointer One Register (SSTP1_An) 

 The Storage Segment Table Pointer One Register (SSTP1_An) contains the lower bits of the storage segment table (SST) virtual address. There is an independent SSTP1_An Register for each AFU. When the AFU is virtualized across partitions, this register is automatically loaded by the PSL from the contents of the process element. Privilege software must set the virtual address using MMIO when the AFU is owned by a single process (that is, the dedicated-process programming model).

 This register is initialized by the operating system or from the process element. The process element information is used when the PSL scheduled processes area is enabled (PSL_SPAP_An[V] = '1').

 When the AFU is operating in a virtualized programming model, the data returned when reading this register is indeterminate. CAIA-compliant devices should return the corresponding process element data when an interrupt is pending for diagnostic purposes.

 There is one register for each PSL slice. Access to these registers should be privileged. These registers must be accessed using a single 64-bit store operation. System software must perform the following sequence, in order, to update the segment table pointer:

  1. Disable the segment table pointer by setting the enable bit to '0' in the segment table pointer one register.

  2. Invalidate all the SLB entries by writing the SLB Invalidate All Register (SLBIA_An) for the respective AFU function.

  3. Set the new contents for the upper bits of the segment table virtual address pointer in SSTP0_An.

  4. Set the new contents for the lower bits of the segment table virtual address pointer in SSTP1_An.

 Note: Some implementations can support a cache of ERATs to improve performance. Setting the valid bit to '0' does not invalidate any cached translations. The SLB Invalidate All Register (SLBIA_An) must be used for this purpose.

Access Type

Read/Write

 Base Address Offset

 (P2_Base | P2(n)) + x'0028'; where n is an AFU number.

STVA_L

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

STVA_L

Reserved

V

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

Bits

Field Name

Description

 0:55

 STVA_L

 Lower bits of the 78-bit virtual address pointer to the storage segment table for the corresponding AFU.

Note: The lower 8-bits of the 78-bit storage segment table virtual address are always '0' (that is, 256 byte aligned).

 56:62

 Reserved

 Set to zeros.

 The data for this register is reserved for future use. Writing to this register causes the contents of the segment lookaside buffer to be voided.

 63

 V

 When set, indicates that the storage segment table virtual address is valid.


loading table of contents...