Revision history   OpenPOWER Library

 10.2.4.1. Storage Segment Table Pointer Zero Register (SSTP0_An) 

 The Storage Segment Table Pointer Zero Register (SSTP0_An) contains the upper bits of the storage segment table (SST) virtual address. There is an independent SSTP0_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 effective-to-real-address translations (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'0020'; where n is an AFU number.

B

KS

KP

N

L

C

Rsvd

LP

Reserved

SegTableSize

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

Reserved

STVA_U

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:1

 B

 Segment size selector.

 The segment size selector defines the size of the segment containing the segment table.

 2

 KS

 Supervisor (privileged) state storage key.

 For more information about the KS bit, see the SLB entry section in the Power ISA, Book III .

 3

 KP

 Problem state storage key.

 For more information about the KP bit, see the SLB entry section in the Power ISA, Book III .

 4

 N

 No-execute segment if N = '1'.

 For more information about the N bit, see the SLB entry section in the Power ISA, Book III .

 5

 L

 Virtual page size selector bit 0.

 For more information about the L bit, see the SLB entry section in the Power ISA, Book III .

 6

 C

 Class.

 For more information about the C bit, see the SLB entry section in the Power ISA, Book III .

 7

 Reserved

 Reserved.

 8:9

 LP

 Virtual page size selector bits 1:2.

 For more information about the LP field, see the SLB entry section in the Power ISA, Book III .

 10:19

 Reserved

 Set to zeros.

 20:31

 SegTableSize

 Segment table size.

 The segment table size field is used to specify the size of the segment table. This field is used as a mask for the real address calculation for the primary and secondary hash of the segment table. For more information, see Section 9.1, “Storage Segment Table”.

000000000000

Segment table contains 2 segment table groups (256 bytes).

000000000001

Segment table contains 4 segment table groups (512 bytes).

...

000000001111

Segment table contains 32 segment table groups (4 KB).

...

111111111111

Segment table contains 8K segment table groups (1 MB).

 32:49

 Reserved

 Set to zeros.

 50:63

 STVA_U

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


loading table of contents...