soc/intel/common/block/fast_spi: Add SPI Vendor Component Lock
Add fast_spi_set_vcl() to be called by the SOC lockdown function if SPI Vendor Specific Component Capabilities are desired. Change-Id: I6d9b58e90fa16c539b90c6b961862e97e1bf29a2 Signed-off-by: Marc Jones <marcjones@sysproconsulting.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/72478 Reviewed-by: David Hendricks <david.hendricks@gmail.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
parent
17d9d897f0
commit
b64fdcc0fa
|
@ -464,6 +464,17 @@ void fast_spi_set_bde(void)
|
||||||
pci_or_config32(dev, SPI_BIOS_DECODE_EN, SPI_BIOS_DECODE_LOCK);
|
pci_or_config32(dev, SPI_BIOS_DECODE_EN, SPI_BIOS_DECODE_LOCK);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Set FAST_SPIBAR + SPIBAR_SFDP0_VSCC0 (0xc4) Vendor Control Lock */
|
||||||
|
void fast_spi_set_vcl(void)
|
||||||
|
{
|
||||||
|
void *spibar = fast_spi_get_bar();
|
||||||
|
uint32_t vcss;
|
||||||
|
|
||||||
|
vcss = read32(spibar + SPIBAR_SFDP0_VSCC0);
|
||||||
|
vcss |= SPIBAR_SFDP0_VSCC0_VCL;
|
||||||
|
write32(spibar + SPIBAR_SFDP0_VSCC0, vcss);
|
||||||
|
}
|
||||||
|
|
||||||
void fast_spi_clear_outstanding_status(void)
|
void fast_spi_clear_outstanding_status(void)
|
||||||
{
|
{
|
||||||
void *spibar = fast_spi_get_bar();
|
void *spibar = fast_spi_get_bar();
|
||||||
|
|
|
@ -39,6 +39,7 @@
|
||||||
#define SPIBAR_OPMENU_UPPER 0xac
|
#define SPIBAR_OPMENU_UPPER 0xac
|
||||||
#define SPIBAR_FDOC 0xb4
|
#define SPIBAR_FDOC 0xb4
|
||||||
#define SPIBAR_FDOD 0xb8
|
#define SPIBAR_FDOD 0xb8
|
||||||
|
#define SPIBAR_SFDP0_VSCC0 0xc4
|
||||||
#define SPIBAR_PTINX 0xcc
|
#define SPIBAR_PTINX 0xcc
|
||||||
#define SPIBAR_PTDATA 0xd0
|
#define SPIBAR_PTDATA 0xd0
|
||||||
|
|
||||||
|
@ -133,6 +134,12 @@
|
||||||
(SPI_OPTYPE_1 << 2) | (SPI_OPTYPE_0))
|
(SPI_OPTYPE_1 << 2) | (SPI_OPTYPE_0))
|
||||||
#define SPI_OPPREFIX ((0x50 << 8) | 0x06) /* EWSR and WREN */
|
#define SPI_OPPREFIX ((0x50 << 8) | 0x06) /* EWSR and WREN */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Spi Flash Vendor Specific Component Capabilities
|
||||||
|
* for Component 0 (0xc4) register
|
||||||
|
*/
|
||||||
|
#define SPIBAR_SFDP0_VSCC0_VCL (1 << 30)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Register Offset of BIOS Vendor Specific Component Capabilities (VSCC)
|
* Register Offset of BIOS Vendor Specific Component Capabilities (VSCC)
|
||||||
* for Component 0 Register
|
* for Component 0 Register
|
||||||
|
|
|
@ -107,5 +107,9 @@ void fast_spi_cache_ext_bios_postcar(struct postcar_frame *pcf);
|
||||||
* Set FAST_SPIBAR BIOS Decode Lock bit
|
* Set FAST_SPIBAR BIOS Decode Lock bit
|
||||||
*/
|
*/
|
||||||
void fast_spi_set_bde(void);
|
void fast_spi_set_bde(void);
|
||||||
|
/*
|
||||||
|
* Set FAST_SPIBAR Vendor Component Lock bit.
|
||||||
|
*/
|
||||||
|
void fast_spi_set_vcl(void);
|
||||||
|
|
||||||
#endif /* SOC_INTEL_COMMON_BLOCK_FAST_SPI_H */
|
#endif /* SOC_INTEL_COMMON_BLOCK_FAST_SPI_H */
|
||||||
|
|
Loading…
Reference in New Issue