On Wed, Jan 02, 2019 at 08:11:25PM -0500, James Hastings wrote:
> Hello tech@
> 
> I would like to add PCI devices for latest Intel SoC (Gemini Lake).
> 
> Included a patch for sdhc(4) too that depends on this to enable eMMC.
> The Intel eMMC controller does not like bus power going to 0V. There
> may be other systems (Apollo Lake) that need this quirk too.
> 
> With both patches I am booting from internal eMMC on HP Stream 14.
> 
> Comments? ok?

Looks like we forgot this one year old diff.  I think the pcidevs
change is probably fine.  I will cross-check it and put it in.

For the sdhc change the diff doesn't apply anymore since we added
the same if-condition for 100series and apollo lake already.  I
guess it's time to add gemini lake there as well.

Patrick

> OpenBSD 6.4-current (GENERIC.MP) #22: Wed Jan  2 13:36:31 EST 2019
>     [email protected]:/usr/src/sys/arch/amd64/compile/GENERIC.MP
> real mem = 4102090752 (3912MB)
> avail mem = 3968520192 (3784MB)
> mpath0 at root
> scsibus0 at mpath0: 256 targets
> mainbus0 at root
> bios0 at mainbus0: SMBIOS rev. 3.0 @ 0x75e02000 (36 entries)
> bios0: vendor Insyde version "F.02" date 05/23/2018
> bios0: HP HP Stream Laptop 14-cb1XX
> acpi0 at bios0: rev 2
> acpi0: sleep states S0 S3 S4 S5
> acpi0: tables DSDT FACP UEFI IHIS UEFI SSDT TPM2 SSDT SSDT MSDM BDAT
> DBG2 DBGP HPET LPIT APIC MCFG NPKT PRAM WSMT SSDT SSDT SSDT SSDT SSDT
> SSDT SSDT FPDT WDAT BGRT
> acpi0: wakeup devices PXSX(S4) RP01(S4) PXSX(S4) RP02(S4) PXSX(S4)
> RP03(S4) PXSX(S4) RP04(S4) PXSX(S4) RP05(S4) PXSX(S4) RP06(S4) XHC_(S4)
> HDAS(S3)
> acpitimer0 at acpi0: 3579545 Hz, 24 bits
> acpihpet0 at acpi0: 19200000 Hz
> acpimadt0 at acpi0 addr 0xfee00000: PC-AT compat
> cpu0 at mainbus0: apid 0 (boot processor)
> cpu0: Intel(R) Celeron(R) N4000 CPU @ 1.10GHz, 1097.30 MHz, 06-7a-01
> cpu0:
> FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,EST,TM2,SSSE3,SDBG,CX16,xTPR,PDCM,SSE4.1,SSE4.2,x2APIC,MOVBE,POPCNT,DEADLINE,AES,XSAVE,RDRAND,NXE,PAGE1GB,RDTSCP,LONG,LAHF,3DNOWP,PERF,ITSC,FSGSBASE,SGX,SMEP,ERMS,MPX,RDSEED,SMAP,CLFLUSHOPT,PT,SHA,UMIP,IBRS,IBPB,STIBP,SENSOR,ARAT,XSAVEOPT,XSAVEC,XGETBV1,XSAVES,MELTDOWN
> cpu0: 4MB 64b/line 16-way L2 cache
> cpu0: smt 0, core 0, package 0
> mtrr: Pentium Pro MTRR support, 10 var ranges, 88 fixed ranges
> cpu0: apic clock running at 19MHz
> cpu0: mwait min=64, max=64, C-substates=0.2.0.2.4.2.1.1, IBE
> cpu1 at mainbus0: apid 2 (application processor)
> cpu1: Intel(R) Celeron(R) N4000 CPU @ 1.10GHz, 1096.98 MHz, 06-7a-01
> cpu1:
> FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,EST,TM2,SSSE3,SDBG,CX16,xTPR,PDCM,SSE4.1,SSE4.2,x2APIC,MOVBE,POPCNT,DEADLINE,AES,XSAVE,RDRAND,NXE,PAGE1GB,RDTSCP,LONG,LAHF,3DNOWP,PERF,ITSC,FSGSBASE,SGX,SMEP,ERMS,MPX,RDSEED,SMAP,CLFLUSHOPT,PT,SHA,UMIP,IBRS,IBPB,STIBP,SENSOR,ARAT,XSAVEOPT,XSAVEC,XGETBV1,XSAVES,MELTDOWN
> cpu1: 4MB 64b/line 16-way L2 cache
> cpu1: smt 0, core 1, package 0
> ioapic0 at mainbus0: apid 1 pa 0xfec00000, version 20, 120 pins
> acpimcfg0 at acpi0
> acpimcfg0: addr 0xe0000000, bus 0-63
> acpiprt0 at acpi0: bus 0 (PCI0)
> acpiprt1 at acpi0: bus -1 (RP01)
> acpiprt2 at acpi0: bus -1 (RP02)
> acpiprt3 at acpi0: bus -1 (RP03)
> acpiprt4 at acpi0: bus -1 (RP04)
> acpiprt5 at acpi0: bus 1 (RP05)
> acpiprt6 at acpi0: bus -1 (RP06)
> acpiec0 at acpi0
> ### AML PARSE ERROR (0x4cd5): Undefined name: SMA4
> error evaluating: \\_SB_.PCI0.LPCB.EC0_._REG
> acpiec _REG failed, broken BIOS
> acpipwrres0 at acpi0: DRST
> acpipwrres1 at acpi0: DRST
> acpipwrres2 at acpi0: DRST
> acpipwrres3 at acpi0: DRST
> acpipwrres4 at acpi0: DRST
> acpipwrres5 at acpi0: DRST
> acpicpu0 at acpi0: C3(10@150 mwait.1@0x60), C2(10@50 mwait.1@0x21),
> C1(1000@1 mwait.1@0x1), PSS
> acpicpu1 at acpi0: C3(10@150 mwait.1@0x60), C2(10@50 mwait.1@0x21),
> C1(1000@1 mwait.1@0x1), PSS
> acpitz0 at acpi0: critical temperature is 210 degC
> acpiac0 at acpi0: AC unit offline
> acpibtn0 at acpi0: LID0
> acpibtn1 at acpi0: PWRB
> acpibat0 at acpi0: BAT0 model "Primary" serial   type LION oem "HP"
> acpipci0 at acpi0 PCI0: 0x00000000 0x00000011 0x00000001
> "HPQ6001" at acpi0 not configured
> "HPIC0003" at acpi0 not configured
> "*ETD0742" at acpi0 not configured
> acpicmos0 at acpi0
> "INT3453" at acpi0 not configured
> "INT33A1" at acpi0 not configured
> "MSFT0101" at acpi0 not configured
> "PNP0C14" at acpi0 not configured
> "INT3400" at acpi0 not configured
> "INT3403" at acpi0 not configured
> acpivideo0 at acpi0: GFX0
> acpivout0 at acpivideo0: DD1F
> cpu0: Enhanced SpeedStep 1097 MHz: speeds: 1101, 1100, 1000, 900, 800 MHz
> pci0 at mainbus0 bus 0
> pchb0 at pci0 dev 0 function 0 "Intel Gemini Lake Host" rev 0x03
> "Intel Gemini Lake DPTF" rev 0x03 at pci0 dev 0 function 1 not configured
> "Intel Gemini Lake GNA" rev 0x03 at pci0 dev 0 function 3 not configured
> "Intel UHD Graphics 600" rev 0x03 at pci0 dev 2 function 0 not configured
> azalia0 at pci0 dev 14 function 0 "Intel Gemini Lake HD Audio" rev 0x03: msi
> azalia0: codecs: Realtek ALC282, Intel/0x280d, using Realtek ALC282
> audio0 at azalia0
> "Intel Gemini Lake MEI" rev 0x03 at pci0 dev 15 function 0 not configured
> ppb0 at pci0 dev 19 function 0 "Intel Gemini Lake PCIE" rev 0xf3: msi
> pci1 at ppb0 bus 1
> "Realtek 8822BE" rev 0x00 at pci1 dev 0 function 0 not configured
> xhci0 at pci0 dev 21 function 0 "Intel Gemini Lake xHCI" rev 0x03: msi,
> xHCI 1.0
> usb0 at xhci0: USB revision 3.0
> uhub0 at usb0 configuration 1 interface 0 "Intel xHCI root hub" rev
> 3.00/1.00 addr 1
> sdhc0 at pci0 dev 28 function 0 "Intel Gemini Lake eMMC" rev 0x03: apic
> 1 int 39
> sdhc0: SDHC 3.0, 200 MHz base clock
> sdmmc0 at sdhc0: 8-bit, sd high-speed, mmc high-speed, dma
> pcib0 at pci0 dev 31 function 0 "Intel Gemini Lake LPC" rev 0x03
> "Intel Gemini Lake SMBus" rev 0x03 at pci0 dev 31 function 1 not configured
> isa0 at pcib0
> isadma0 at isa0
> pckbc0 at isa0 port 0x60/5 irq 1 irq 12
> pckbd0 at pckbc0 (kbd slot)
> wskbd0 at pckbd0: console keyboard
> pms0 at pckbc0 (aux slot)
> wsmouse0 at pms0 mux 0
> pcppi0 at isa0 port 0x61
> spkr0 at pcppi0
> wbsio0 at isa0 port 0x2e/2: W83627EHF rev 0x87
> vmm0 at mainbus0: VMX/EPT (using slow L1TF mitigation)
> efifb0 at mainbus0: 1366x768, 32bpp
> wsdisplay0 at efifb0 mux 1: console (std, vt100 emulation), using wskbd0
> wsdisplay0: screen 1-5 added (std, vt100 emulation)
> scsibus1 at sdmmc0: 2 targets, initiator 0
> sd0 at scsibus1 targ 1 lun 0: <Sandisk, DF4032, 0000> SCSI2 0/direct
> removable
> sd0: 29820MB, 512 bytes/sector, 61071360 sectors
> urtwn0 at uhub0 port 2 configuration 1 interface 0 "Realtek 802.11n WLAN
> Adapter" rev 2.00/2.00 addr 2
> urtwn0: MAC/BB RTL8188CUS, RF 6052 1T1R, address
> ugen0 at uhub0 port 5 "Realtek Bluetooth Radio" rev 1.10/1.10 addr 3
> uvideo0 at uhub0 port 6 configuration 1 interface 0 "Chicony Electronics
> Co.,Ltd. HP Webcam" rev 2.00/40.60 addr 4
> video0 at uvideo0
> vscsi0 at root
> scsibus2 at vscsi0: 256 targets
> softraid0 at root
> scsibus3 at softraid0: 256 targets
> root on sd0a (283133d7296536b2.a) swap on sd0b dump on sd0b
> 
> Index: dev/pci/pcidevs
> ===================================================================
> RCS file: /cvs/src/sys/dev/pci/pcidevs,v
> retrieving revision 1.1873
> diff -u -p -r1.1873 pcidevs
> --- dev/pci/pcidevs   18 Dec 2018 04:25:16 -0000      1.1873
> +++ dev/pci/pcidevs   2 Jan 2019 21:36:43 -0000
> @@ -4384,6 +4384,36 @@ product INTEL RCU32            0x3092  RCU32 I2O RA
>  product INTEL 3124           0x3124  3124 SATA
>  product INTEL WL_3165_1              0x3165  Dual Band Wireless AC 3165
>  product INTEL WL_3165_2              0x3166  Dual Band Wireless AC 3165
> +product INTEL GEMINILAKE_IGD_1       0x3184  UHD Graphics 605
> +product INTEL GEMINILAKE_IGD_2       0x3185  UHD Graphics 600
> +product INTEL GEMINILAKE_DPTF        0x318c  Gemini Lake DPTF
> +product INTEL GEMINILAKE_GNA 0x3190  Gemini Lake GNA
> +product INTEL GEMINILAKE_PMC 0x3194  Gemini Lake PMC
> +product INTEL GEMINILAKE_HDA 0x3198  Gemini Lake HD Audio
> +product INTEL GEMINILAKE_MEI 0x319a  Gemini Lake MEI
> +product INTEL GEMINILAKE_XHCI        0x31a8  Gemini Lake xHCI
> +product INTEL GEMINILAKE_I2C_1       0x31ac  Gemini Lake I2C
> +product INTEL GEMINILAKE_UART_1      0x31bc  Gemini Lake HSUART
> +product INTEL GEMINILAKE_UART_2      0x31be  Gemini Lake HSUART
> +product INTEL GEMINILAKE_UART_3      0x31c0  Gemini Lake HSUART
> +product INTEL GEMINILAKE_SPI_1       0x31c2  Gemini Lake SPI
> +product INTEL GEMINILAKE_SPI_2       0x31c4  Gemini Lake SPI
> +product INTEL GEMINILAKE_SPI_3       0x31c6  Gemini Lake SPI
> +product INTEL GEMINILAKE_SD  0x31ca  Gemini Lake SD/MMC
> +product INTEL GEMINILAKE_EMMC        0x31cc  Gemini Lake eMMC
> +product INTEL GEMINILAKE_SDIO        0x31d0  Gemini Lake SDIO
> +product INTEL GEMINILAKE_SMB 0x31d4  Gemini Lake SMBus
> +product INTEL GEMINILAKE_PCIE_1      0x31d6  Gemini Lake PCIE
> +product INTEL GEMINILAKE_PCIE_2      0x31d7  Gemini Lake PCIE
> +product INTEL GEMINILAKE_PCIE_3      0x31d8  Gemini Lake PCIE
> +product INTEL GEMINILAKE_PCIE_4      0x31d9  Gemini Lake PCIE
> +product INTEL GEMINILAKE_PCIE_5      0x31da  Gemini Lake PCIE
> +product INTEL GEMINILAKE_PCIE_6      0x31db  Gemini Lake PCIE
> +product INTEL GEMINIlAKE_WL  0x31dc  Gemini Lake CNVi
> +product INTEL GEMINILAKE_AHCI        0x31e3  Gemini Lake AHCI
> +product INTEL GEMINILAKE_LPC 0x31e8  Gemini Lake LPC
> +product INTEL GEMINILAKE_UART_4      0x31ee  Gemini Lake HSUART
> +product INTEL GEMINILAKE_HOST        0x31f0  Gemini Lake Host
>  product INTEL 31244          0x3200  31244 SATA
>  product INTEL 82855PM_HB     0x3340  82855PM Host
>  product INTEL 82855PM_AGP    0x3341  82855PM AGP
> 
> Index: dev/pci/sdhc_pci.c
> ===================================================================
> RCS file: /cvs/src/sys/dev/pci/sdhc_pci.c,v
> retrieving revision 1.20
> diff -u -p -r1.20 sdhc_pci.c
> --- dev/pci/sdhc_pci.c        30 Apr 2016 11:32:23 -0000      1.20
> +++ dev/pci/sdhc_pci.c        2 Jan 2019 23:17:39 -0000
> @@ -127,6 +127,11 @@ sdhc_pci_attach(struct device *parent, s
>           PCI_PRODUCT(pa->pa_id) == PCI_PRODUCT_ENE_SDCARD)
>               sc->sc.sc_flags |= SDHC_F_NOPWR0;
> 
> +     /* Some Intel eMMC controllers break if set to 0V bus power. */
> +     if (PCI_VENDOR(pa->pa_id) == PCI_VENDOR_INTEL &&
> +         PCI_PRODUCT(pa->pa_id) == PCI_PRODUCT_INTEL_GEMINILAKE_EMMC)
> +             sc->sc.sc_flags |= SDHC_F_NOPWR0;
> +
>       /* Some RICOH controllers need to be bumped into the right mode. */
>       if (PCI_VENDOR(pa->pa_id) == PCI_VENDOR_RICOH &&
>           (PCI_PRODUCT(pa->pa_id) == PCI_PRODUCT_RICOH_R5U822 ||
> 

Reply via email to