Commit graph

10 commits

Author SHA1 Message Date
Subrata Banik
ad42d9c22b soc/intel/meteorlake: Send CSE EOP Async CMD early
This patch sends the CSE EOP command asynchronous implementation early
as part of `soc_init_pre_device`.

Without this patch the duration between asynchronous CSE EOP send and
receive commands is not ample which causes idle delay while waiting
for EOP response.

The goal of the CSE async implementation is to avoid idle delay while
capturing the response from CSE EOP cmd. This patch helps to create
ample duration between CSE EOP command being sent and response being
captured.

TEST=Able to boot google/rex sku to ChromeOS and observed ~100ms of
boot time savings (across warm and cold reset scenarios)

Change-Id: I91ed38edbd5a31d61d4888e1466169a3494d635a
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/74561
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Tarun Tuli <taruntuli@google.com>
2023-04-20 22:04:30 +00:00
Subrata Banik
e70bc423f9 soc/intel/meteorlake: Improve incomplete debug message
This patch improves `incomplete` debug messages for missing ACPI
name PCI devices.

Additionally, using the proper PCI device B:D:F to locate the device
with the missing ACPI name.

Finally, modify the msg time from Debug to Warning to make it more
purposeful.

TEST=Able to build and boot google/rex.

Without this patch:

```
  [DEBUG]  dev->path.devfn=10
  [DEBUG]  dev->path.devfn=a2
  [DEBUG]  dev->path.devfn=b0
```

With this patch:

```
  [WARN]  Missing ACPI Name for PCI: 00:02.0
  [WARN]  Missing ACPI Name for PCI: 00:14.2
  [WARN]  Missing ACPI Name for PCI: 00:16.0
```

Change-Id: I605e59de8cbec18c9a56eaa6e90a34f36ea4cdd9
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/73072
Reviewed-by: Tarun Tuli <taruntuli@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eric Lai <eric_lai@quanta.corp-partner.google.com>
Reviewed-by: Ivy Jian <ivy.jian@quanta.corp-partner.google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2023-02-17 08:30:24 +00:00
Dinesh Gehlot
166c75c778 soc/intel/meteorlake: Use common gpio.h include
Replace the intelblocks/gpio.h, soc/gpio.h and soc/gpio_defs.h
includes with the common gpio.h which will include soc/gpio.h
which will include intelblocks/gpio.h which will include
soc/gpio_defs.h

BUG=b:261778357
TEST=Able to build and boot Google/rex.

Signed-off-by: Dinesh Gehlot <digehlot@google.com>
Change-Id: I58e428cde5e13f4f0dfe528d798c0613b7f8a94a
Reviewed-on: https://review.coreboot.org/c/coreboot/+/71630
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Eric Lai <eric_lai@quanta.corp-partner.google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Elyes Haouas <ehaouas@noos.fr>
2023-01-10 11:32:18 +00:00
Kapil Porwal
cca3c90ed9 soc/intel/meteorlake: Enable support for common IRQ block
Since GPIO IO-APIC IRQs are fixed in hardware (RO registers), this patch
allows MTL boards to dynamically assign PCI IRQs. This means not relying
on FSP defaults, which eliminates the problem of PCI IRQs interfering
with GPIO IRQs routed to the same IRQ, when both have selected IO-APIC
routing.

BUG=none
TEST=Build and boot to google/rex. Check dmesg and make sure that there
is no regression.

IO-APIC interrupts before:
   1:   IO-APIC    1-edge      i8042
   8:   IO-APIC    8-edge      rtc0
   9:   IO-APIC    9-fasteoi   acpi
  14:   IO-APIC   14-fasteoi   INTC1083:00
  16:   IO-APIC   16-fasteoi   idma64.5, ttyS0, intel-ipu6
  28:   IO-APIC   28-fasteoi   idma64.6, pxa2xx-spi.6
  29:   IO-APIC   29-fasteoi   i2c_designware.3
  30:   IO-APIC   30-fasteoi   i2c_designware.4
  32:   IO-APIC   32-fasteoi   idma64.0, i2c_designware.0
  33:   IO-APIC   33-fasteoi   idma64.1, i2c_designware.1
  35:   IO-APIC   35-fasteoi   idma64.2, i2c_designware.2
  88:   IO-APIC   88-fasteoi   ELAN0000:00
  89:   IO-APIC   89-fasteoi   chromeos-ec
  99:   IO-APIC   99-edge      cr50_i2c
 106:   IO-APIC  106-fasteoi   chromeos-ec

IO-APIC interrupts after:
   1:   IO-APIC    1-edge      i8042
   8:   IO-APIC    8-edge      rtc0
   9:   IO-APIC    9-fasteoi   acpi
  14:   IO-APIC   14-fasteoi   INTC1083:00
  16:   IO-APIC   16-fasteoi   intel-ipu6
  20:   IO-APIC   20-fasteoi   idma64.5, ttyS0
  27:   IO-APIC   27-fasteoi   idma64.0, i2c_designware.0
  28:   IO-APIC   28-fasteoi   idma64.1, i2c_designware.1
  30:   IO-APIC   30-fasteoi   idma64.2, i2c_designware.2
  31:   IO-APIC   31-fasteoi   i2c_designware.3
  32:   IO-APIC   32-fasteoi   i2c_designware.4
  35:   IO-APIC   35-fasteoi   idma64.6, pxa2xx-spi.6
  88:   IO-APIC   88-fasteoi   ELAN0000:00
  89:   IO-APIC   89-fasteoi   chromeos-ec
  99:   IO-APIC   99-edge      cr50_i2c
 106:   IO-APIC  106-fasteoi   chromeos-ec

_PRT before:
  Package (0x04) ==> 0x001FFFFF, Zero, Zero, 0x10
  Package (0x04) ==> 0x001FFFFF, One, Zero, 0x11
  Package (0x04) ==> 0x001FFFFF, 0x02, Zero, 0x12
  Package (0x04) ==> 0x001FFFFF, 0x03, Zero, 0x13
  Package (0x04) ==> 0x001EFFFF, Zero, Zero, 0x10
  Package (0x04) ==> 0x001EFFFF, One, Zero, 0x11
  Package (0x04) ==> 0x001EFFFF, 0x02, Zero, 0x1B
  Package (0x04) ==> 0x001EFFFF, 0x03, Zero, 0x1C
  Package (0x04) ==> 0x001CFFFF, Zero, Zero, 0x10
  Package (0x04) ==> 0x001CFFFF, One, Zero, 0x11
  Package (0x04) ==> 0x001CFFFF, 0x02, Zero, 0x12
  Package (0x04) ==> 0x001CFFFF, 0x03, Zero, 0x13
  Package (0x04) ==> 0x0019FFFF, Zero, Zero, 0x1D
  Package (0x04) ==> 0x0019FFFF, One, Zero, 0x1E
  Package (0x04) ==> 0x0019FFFF, 0x02, Zero, 0x1F
  Package (0x04) ==> 0x0017FFFF, Zero, Zero, 0x10
  Package (0x04) ==> 0x0016FFFF, Zero, Zero, 0x10
  Package (0x04) ==> 0x0016FFFF, One, Zero, 0x11
  Package (0x04) ==> 0x0016FFFF, 0x02, Zero, 0x12
  Package (0x04) ==> 0x0016FFFF, 0x03, Zero, 0x13
  Package (0x04) ==> 0x0015FFFF, Zero, Zero, 0x20
  Package (0x04) ==> 0x0015FFFF, One, Zero, 0x21
  Package (0x04) ==> 0x0015FFFF, 0x02, Zero, 0x22
  Package (0x04) ==> 0x0015FFFF, 0x03, Zero, 0x23
  Package (0x04) ==> 0x0014FFFF, Zero, Zero, 0x10
  Package (0x04) ==> 0x0014FFFF, One, Zero, 0x11
  Package (0x04) ==> 0x0014FFFF, 0x02, Zero, 0x12
  Package (0x04) ==> 0x0012FFFF, Zero, Zero, 0x1A
  Package (0x04) ==> 0x0012FFFF, One, Zero, 0x25
  Package (0x04) ==> 0x0012FFFF, 0x02, Zero, 0x19
  Package (0x04) ==> 0x0010FFFF, Zero, Zero, 0x17
  Package (0x04) ==> 0x0010FFFF, One, Zero, 0x16
  Package (0x04) ==> 0x000DFFFF, Zero, Zero, 0x10
  Package (0x04) ==> 0x000DFFFF, One, Zero, 0x11
  Package (0x04) ==> 0x000BFFFF, Zero, Zero, 0x10
  Package (0x04) ==> 0x0008FFFF, Zero, Zero, 0x10
  Package (0x04) ==> 0x0007FFFF, Zero, Zero, 0x10
  Package (0x04) ==> 0x0007FFFF, One, Zero, 0x11
  Package (0x04) ==> 0x0007FFFF, 0x02, Zero, 0x12
  Package (0x04) ==> 0x0007FFFF, 0x03, Zero, 0x13
  Package (0x04) ==> 0x0006FFFF, Zero, Zero, 0x10
  Package (0x04) ==> 0x0006FFFF, One, Zero, 0x11
  Package (0x04) ==> 0x0006FFFF, 0x02, Zero, 0x12
  Package (0x04) ==> 0x0006FFFF, 0x03, Zero, 0x13
  Package (0x04) ==> 0x0005FFFF, Zero, Zero, 0x10
  Package (0x04) ==> 0x0004FFFF, Zero, Zero, 0x10
  Package (0x04) ==> 0x0002FFFF, Zero, Zero, 0x10
  Package (0x04) ==> 0x0001FFFF, Zero, Zero, 0x10
  Package (0x04) ==> 0x0001FFFF, One, Zero, 0x11
  Package (0x04) ==> 0x0001FFFF, 0x02, Zero, 0x12
  Package (0x04) ==> 0x0001FFFF, 0x03, Zero, 0x13

_PRT after:
  Package (0x04) ==> 0x0001FFFF, 0x00, 0x00, 0x00000010
  Package (0x04) ==> 0x0002FFFF, 0x00, 0x00, 0x00000011
  Package (0x04) ==> 0x0004FFFF, 0x00, 0x00, 0x00000012
  Package (0x04) ==> 0x0005FFFF, 0x00, 0x00, 0x00000010
  Package (0x04) ==> 0x0006FFFF, 0x00, 0x00, 0x00000010
  Package (0x04) ==> 0x0006FFFF, 0x01, 0x00, 0x00000011
  Package (0x04) ==> 0x0006FFFF, 0x02, 0x00, 0x00000012
  Package (0x04) ==> 0x0007FFFF, 0x00, 0x00, 0x00000013
  Package (0x04) ==> 0x0007FFFF, 0x01, 0x00, 0x00000014
  Package (0x04) ==> 0x0007FFFF, 0x02, 0x00, 0x00000015
  Package (0x04) ==> 0x0007FFFF, 0x03, 0x00, 0x00000016
  Package (0x04) ==> 0x0008FFFF, 0x00, 0x00, 0x00000017
  Package (0x04) ==> 0x000BFFFF, 0x00, 0x00, 0x00000013
  Package (0x04) ==> 0x000DFFFF, 0x00, 0x00, 0x00000014
  Package (0x04) ==> 0x000DFFFF, 0x01, 0x00, 0x00000015
  Package (0x04) ==> 0x0010FFFF, 0x00, 0x00, 0x00000016
  Package (0x04) ==> 0x0010FFFF, 0x01, 0x00, 0x00000017
  Package (0x04) ==> 0x0012FFFF, 0x00, 0x00, 0x00000018
  Package (0x04) ==> 0x0012FFFF, 0x01, 0x00, 0x00000019
  Package (0x04) ==> 0x0012FFFF, 0x02, 0x00, 0x00000011
  Package (0x04) ==> 0x0014FFFF, 0x01, 0x00, 0x00000012
  Package (0x04) ==> 0x0014FFFF, 0x00, 0x00, 0x0000001A
  Package (0x04) ==> 0x0014FFFF, 0x02, 0x00, 0x00000013
  Package (0x04) ==> 0x0015FFFF, 0x00, 0x00, 0x0000001B
  Package (0x04) ==> 0x0015FFFF, 0x01, 0x00, 0x0000001C
  Package (0x04) ==> 0x0015FFFF, 0x02, 0x00, 0x0000001D
  Package (0x04) ==> 0x0015FFFF, 0x03, 0x00, 0x0000001E
  Package (0x04) ==> 0x0016FFFF, 0x00, 0x00, 0x00000014
  Package (0x04) ==> 0x0016FFFF, 0x01, 0x00, 0x00000015
  Package (0x04) ==> 0x0016FFFF, 0x02, 0x00, 0x00000016
  Package (0x04) ==> 0x0016FFFF, 0x03, 0x00, 0x00000017
  Package (0x04) ==> 0x0017FFFF, 0x00, 0x00, 0x00000010
  Package (0x04) ==> 0x0019FFFF, 0x00, 0x00, 0x0000001F
  Package (0x04) ==> 0x0019FFFF, 0x01, 0x00, 0x00000020
  Package (0x04) ==> 0x0019FFFF, 0x02, 0x00, 0x00000021
  Package (0x04) ==> 0x001CFFFF, 0x00, 0x00, 0x00000010
  Package (0x04) ==> 0x001CFFFF, 0x01, 0x00, 0x00000011
  Package (0x04) ==> 0x001CFFFF, 0x02, 0x00, 0x00000012
  Package (0x04) ==> 0x001CFFFF, 0x03, 0x00, 0x00000013
  Package (0x04) ==> 0x001EFFFF, 0x00, 0x00, 0x00000014
  Package (0x04) ==> 0x001EFFFF, 0x01, 0x00, 0x00000015
  Package (0x04) ==> 0x001EFFFF, 0x02, 0x00, 0x00000022
  Package (0x04) ==> 0x001EFFFF, 0x03, 0x00, 0x00000023
  Package (0x04) ==> 0x001FFFFF, 0x01, 0x00, 0x00000017
  Package (0x04) ==> 0x001FFFFF, 0x02, 0x00, 0x00000014
  Package (0x04) ==> 0x001FFFFF, 0x03, 0x00, 0x00000015
  Package (0x04) ==> 0x001FFFFF, 0x00, 0x00, 0x00000016

Signed-off-by: Kapil Porwal <kapilporwal@google.com>
Change-Id: I013cd5faab6f425ab1af91fe2a36ac3b8aeef443
Reviewed-on: https://review.coreboot.org/c/coreboot/+/71113
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2023-01-06 11:54:28 +00:00
Subrata Banik
4ed30cae08 soc/intel/meteorlake: Move P2SB PCI resource into P2SB device
This patch ensures the P2SB PCI device resource is getting reserved
so that the resource allocator is not assigning this resource to any
other PCI device during the PCI enumeration.

BUG=b:254207628
TEST=Able to ensure on the Google/Rex device, the PCI enumeration
is not assigning the P2SB BAR (0xE000_0000) to TBT Root Port3.
Instead the 0xE000_0000 address is being assigned to the P2SB
PCI device.

Without this patch:
[SPEW ]     PCI: 00:07.3 resource base e0000000 size c200000 align
            20 gran 20 limit ec1fffff flags 60080202 index 20
[DEBUG]      GENERIC: 1.0
[DEBUG]      NONE
[SPEW ]      NONE resource base e0000000 size c200000 align 12 gran
             12 limit ec1fffff flags 40000200 index 10

With this patch:
[SPEW ]     PCI: 00:07.3 resource base e1000000 size c200000 align
            20 gran 20 limit ed1fffff flags 60080202 index 20
[DEBUG]      GENERIC: 1.0
[DEBUG]      NONE
[SPEW ]      NONE resource base e1000000 size c200000 align 12 gran
             12 limit ed1fffff flags 40000200 index 10
......
[DEBUG]     PCI: 00:1f.1
[SPEW ]     PCI: 00:1f.1 resource base e0000000 size 1000000 align
            0 gran 0 limit 0 flags f0000200 index 10

Signed-off-by: Subrata Banik <subratabanik@google.com>
Change-Id: Ib0789b442af23f6be81c666e284633ef342dffe0
Reviewed-on: https://review.coreboot.org/c/coreboot/+/68909
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Ivy Jian <ivy.jian@quanta.corp-partner.google.com>
Reviewed-by: Eric Lai <eric_lai@quanta.corp-partner.google.com>
Reviewed-by: Tarun Tuli <taruntuli@google.com>
2022-10-29 08:33:26 +00:00
John Zhao
54a03e43af soc/intel/meteorlake: Provide access to IOE through P2SB SBI for TCSS
This change provides access to IOE through P2SB Sideband interface for
Meteor Lake TCSS functions of pad configuration and Thunderbolt
authentication. There is a policy of locking the P2SB access at the end
of platform initialization. The tbt_authentication is read from IOM
register through IOE P2SB at early silicon initialization phase and its
usage is deferred to usb4 driver.

BUG=b:213574324
TEST=Built coreboot and validated booting to OS successfully on MTLRVP
board. No boot hung was observed.

Signed-off-by: John Zhao <john.zhao@intel.com>
Signed-off-by: Subrata Banik <subratabanik@google.com>
Change-Id: I8dcee90080c6e70dadc011cc1dbef3659fdbc8f7
Reviewed-on: https://review.coreboot.org/c/coreboot/+/66951
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Reviewed-by: Eric Lai <eric_lai@quanta.corp-partner.google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2022-08-26 04:13:51 +00:00
Subrata Banik
c6d6f60bc4 Revert "soc/intel/meteorlake: Provide access to IOE through P2SB SBI for TCSS"
This reverts commit eb80b1efa3.

Reason for revert: Results into hard hang with serial debug msg inside FSP-S.

Signed-off-by: Subrata Banik <subratabanik@google.com>
Change-Id: I8e7cf804828da8939f591eb0770c8daf830c8d94
Reviewed-on: https://review.coreboot.org/c/coreboot/+/66304
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Tarun Tuli <taruntuli@google.com>
Reviewed-by: Ivy Jian <ivy.jian@quanta.corp-partner.google.com>
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
2022-08-18 07:17:35 +00:00
John Zhao
eb80b1efa3 soc/intel/meteorlake: Provide access to IOE through P2SB SBI for TCSS
This change provides access to IOE through P2SB Sideband interface for
Meteor Lake TCSS functions of pad configuration and Thunderbolt
authentication. There is a policy of locking the P2SB access at the end
of platform initialization. The tbt_authentication is read from IOM
register through IOE P2SB at early silicon initialization phase and its
usage is deferred to usb4 driver.

BUG=b:213574324
TEST=Built coreboot and validated booting to OS successfully on MTLRVP
board. No boot hung was observed.

Change-Id: Icd644c945bd293a8b9c4a364aaed99ec4a7c12f9
Signed-off-by: John Zhao <john.zhao@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/66410
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Tarun Tuli <taruntuli@google.com>
2022-08-12 17:11:22 +00:00
Angel Pons
c7c746c3b2 soc/intel/meteorlake: Account for GSPI2 everywhere
Commit e54a8fd432 (soc/intel/meteorlake:
Add entry for GSPI2 device) added an entry for the GSPI2 device in the
devicetree, but did not add any other entries. Ensure that the rest of
the code is aware of the GSPI2 device to avoid any problems.

Change-Id: Ib59bd289751bd96402c4adc61ffbee3bebe0edb0
Found-by: Coverity CID 1490681
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/65916
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Tarun Tuli <taruntuli@google.com>
2022-07-18 15:38:14 +00:00
Ravi Sarawadi
91ffac8c04 soc/intel/mtl: Do initial Meteor Lake SoC commit till ramstage
List of changes:
1. Add required SoC programming till ramstage
2. Include only required headers into include/soc
3. Fill required FSP-S UPD to call FSP-S API

BUG=b:224325352
TEST= Build 'util/abuild/abuild -p none -t google/rex -a -c max'.

Signed-off-by: Ravi Sarawadi <ravishankar.sarawadi@intel.com>
Change-Id: Ie746c0bfcf1f315a4ab6f540cc7c4933157551d7
Reviewed-on: https://review.coreboot.org/c/coreboot/+/63364
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Tarun Tuli <taruntuli@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2022-06-29 05:28:39 +00:00