I met the same problem. I use the FSP1.1 and the 0:17h:0 disappears after raminit.
It seems that the FSP disable the SATA.

The SATA device can be disabled if SCFD is set. But it can not re-enable.

SATA Controller Function Disable (SCFD): BIOS program this bit to 1 to disable
the SATA Controller function. When 0, SATA Controller function is enabled. When
disable, SATA Host Controller will not claimed the register access targeting its
Configuration Space. In IOSF primary Fabric Decode scheme, it's expected BIOS also
program the corresponding bit used by the Fabric Decoder accordingly hence both
SATA SIP and Fabric Decoder are in sync, and BIOS need to program this bit before
programming the one in Fabric Decoder. Once this bit is set, BIOS isnot able to revert
it back to Function Enable until next round of platform reset.


From: coreboot <coreboot-bounces@coreboot.org> on behalf of roman perepelitsin <perepelitsin.roman@gmail.com>
Sent: Wednesday, March 28, 2018 2:51 PM
To: coreboot@coreboot.org
Subject: [coreboot] SATA init on FSP 2.0 for Skylake
I got a little problem with SATA controller in H110 Skylake PCH (desktop). SATA device geographical address - 0:17h:0 on PCI, and it enabled via devicetree.cb. This params correctly send in FspSiliconInit. After this coreboot run PCI bus scan. And my SATA device return 0xffffffff on PCI read config cycles. I search in Intel datasheet for specific SATA disable pin or something else, but there is no methods that can make SATA inactive. Maybe somebody advice about it? 

Perepelitsin Roman