summaryrefslogtreecommitdiff
path: root/meta-quanta/meta-gsj/recipes-gsj/quanta-nvme-powerctrl/README.md
blob: 63b52d74611b855c13ecf693a988578c5bb5a8b9 (plain)
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
### NVME SSD Power Control Manager

#### Description
    The package mantains for SSD power control and related noification handle Deamon

#### Design

     The service power supply design follow PCI Express Card Electromechanical Specification Revision 3.0 in Section 2.2

     nvme_gpio.service follow section 2.2.1 Initial power-Up to initinal and adjust related signal.

     nvme_powermanager.service follow section 2.2.2 power management states monitor PRESENT signal and update related signal.

#### Process

    * Plugging
        1. U2_[SSD_index] PRSNT_N will be input low
        2. Set PWR_U2_[SSD_index]_EN to high
        3. Check PWRGD_U2_[SSD_index] is high
        4-1. If PWRGD_U2_[SSD_index] is high (PWR Good)
		    - Wait 5ms
		    - Enable PCI Clock by SMBus 9FGL0851
		    - Wait 100ms
            - Set RST_BMC_U2 to high

        4-2. If PWRGD_U2_[SSD_index] is low (PWR Fail)
		    - Set RST_BMC_U2_[SSD_index]_R_N to low
            - Wait 100ms
            - Disable PCI Clock by SMBus

    * Removing
        1. U2_[SSD_index] PRSNT_N will be input high
        2. Set RST_BMC_U2 to low
        3. Wait 100ms
        4. Disable PCI Clock by SMBus
        5. Wait 5ms
        6. PWR_U2_[SSD_index]_EN to low

#### Test

    1. PRESENT detect SSD: The hardware design has been implemented.
    2. Initial SSD slot Power output: nvme_gpio service has tested on Module. It could sucess initial gpios and set correct power output.
    3. Detect PRESENT and change power setting: nvme_powermanager service has tested on Module. It could success detect SSD plugged or removal change power output.
    4. Improve initial power-up sequence: For matched hardware default initial power-up setting, the nvme_gpio service only set unplugged slot related signal.
    5. Improve service execute sequence: nvme_powermanager.service must wait for nvme_gpio.service ensure gpio export complete.