From: Alexander Bluhm Subject: Re: AMD SEV 4/5: Add ccp(4) to MAKEDEV To: Hans-J?rg H?xer Cc: tech@openbsd.org, mlarkin@nested.page, dv@sisu.io Date: Mon, 2 Sep 2024 15:52:45 +0200 On Wed, Aug 28, 2024 at 03:26:33PM +0200, Hans-J?rg H?xer wrote: > this will add ccp(4) to MAKEDEV (after sync). Two questions come to my mind: - do we need ccp0 ccp1 ccp2 ? - would /deb/psp be more suitable ? I do have a machine where two ccp attach. Full dmesg below. ccp0 at pci4 dev 0 function 2 "AMD 17h Crypto" rev 0x00: msix: RNG ccp1 at pci5 dev 0 function 1 "AMD 17h Crypto" rev 0x00: msix: RNG It does not support SEV, and it is unclear how a PSP would work there. I discussed with hshoexer@ and we concluded to keep a single /dev/ccp without numbering for now. We can change when we find a machine that needs it. To avoid further confusion we prefered ccp over psp. But now jsg@ moved the relevant part from dev/ic/ccp.c to dev/ic/psp.c . ccp (cryptographic co-processor) does not need ioctl. Only psp (platform security processor) is used by /dev/ccp. Should we call it /dev/psp? Naming is hard. bluhm > ---------------------------------------------------------------------------- > commit 39cb0e19f7e1908cabb66b407151fbc74b6c3cd9 > Author: Hans-Joerg Hoexer > Date: Wed Aug 28 13:15:25 2024 +0200 > > ccp(4): Add ccp(4) to MAKEDEV > > diff --git a/etc/MAKEDEV.common b/etc/MAKEDEV.common > index 1e7bb3d235a..516133c9d02 100644 > --- a/etc/MAKEDEV.common > +++ b/etc/MAKEDEV.common > @@ -167,6 +167,7 @@ target(all, bpf)dnl > target(all, kcov)dnl > target(all, dt)dnl > target(all, kstat)dnl > +target(all, ccp)dnl > dnl > _mkdev(all, {-all-}, {-dnl > show_target(all)dnl > @@ -535,3 +536,5 @@ __devitem(kstat, kstat, Kernel Statistics)dnl > _mkdev(kstat, kstat, {-M kstat c major_kstat_c 0 640-})dnl > __devitem(efi, efi, EFI runtime services)dnl > _mkdev(efi, efi, {-M efi c major_efi_c 0 600-})dnl > +__devitem(ccp, ccp, Cryptographic Co-Processor)dnl > +_mkdev(ccp, ccp, {-M ccp c major_ccp_c 0 600-})dnl > diff --git a/etc/etc.amd64/MAKEDEV.md b/etc/etc.amd64/MAKEDEV.md > index ccc5a3c37bd..e2b8b478edd 100644 > --- a/etc/etc.amd64/MAKEDEV.md > +++ b/etc/etc.amd64/MAKEDEV.md > @@ -99,6 +99,7 @@ _DEV(vmm, 10) > _DEV(vscsi, 89) > _DEV(pvbus, 95) > _DEV(kstat, 51) > +_DEV(ccp, 101) > dnl > divert(__mddivert)dnl > dnl OpenBSD 7.6-beta (GENERIC.MP) #0: Sun Sep 1 20:17:36 CEST 2024 root@ot33.obsd-lab.genua.de:/usr/src/sys/arch/amd64/compile/GENERIC.MP real mem = 17028726784 (16239MB) avail mem = 16489250816 (15725MB) random: good seed from bootblocks mpath0 at root scsibus0 at mpath0: 256 targets mainbus0 at root bios0 at mainbus0: SMBIOS rev. 2.8 @ 0xdab19000 (51 entries) bios0: vendor American Megatrends Inc. version "1.0c" date 06/30/2020 bios0: genua Super Server acpi0 at bios0: ACPI 6.1 acpi0: sleep states S0 S5 acpi0: tables DSDT FACP APIC FPDT FIDT SSDT SPMI SSDT MCFG SSDT CRAT CDIT BERT EINJ HEST HPET SSDT UEFI SSDT WSMT acpi0: wakeup devices S0D0(S0) S0D1(S0) S0D2(S0) S0D3(S0) S1D0(S0) S1D1(S0) S1D2(S0) S1D3(S0) acpitimer0 at acpi0: 3579545 Hz, 32 bits acpimadt0 at acpi0 addr 0xfee00000: PC-AT compat cpu0 at mainbus0: apid 0 (boot processor) cpu0: AMD EPYC 3151 4-Core Processor, 2700.00 MHz, 17-01-02, patch 0800126f cpu0: cpuid 1 edx=178bfbff ecx=76d8320b cpu0: cpuid 6 eax=4 ecx=1 cpu0: cpuid 7.0 ebx=209c01a9 cpu0: cpuid d.1 eax=f cpu0: cpuid 80000001 edx=2fd3fbff ecx=35c233ff cpu0: cpuid 80000007 edx=6799 cpu0: cpuid 80000008 ebx=1007 cpu0: cpuid 8000001F eax=f ecx=f edx=1 cpu0: 32KB 64b/line 8-way D-cache, 64KB 64b/line 4-way I-cache, 512KB 64b/line 8-way L2 cache, 8MB 64b/line 16-way L3 cache cpu0: smt 0, core 0, package 0 mtrr: Pentium Pro MTRR support, 8 var ranges, 88 fixed ranges cpu0: apic clock running at 100MHz cpu0: mwait min=64, max=64, C-substates=1.1, IBE cpu1 at mainbus0: apid 2 (application processor) cpu1: AMD EPYC 3151 4-Core Processor, 2700.00 MHz, 17-01-02, patch 0800126f cpu1: smt 0, core 1, package 0 cpu2 at mainbus0: apid 8 (application processor) cpu2: AMD EPYC 3151 4-Core Processor, 2700.00 MHz, 17-01-02, patch 0800126f cpu2: smt 0, core 4, package 0 cpu3 at mainbus0: apid 10 (application processor) cpu3: AMD EPYC 3151 4-Core Processor, 2700.00 MHz, 17-01-02, patch 0800126f cpu3: smt 0, core 5, package 0 cpu4 at mainbus0: apid 1 (application processor) cpu4: AMD EPYC 3151 4-Core Processor, 2700.00 MHz, 17-01-02, patch 0800126f cpu4: smt 1, core 0, package 0 cpu5 at mainbus0: apid 3 (application processor) cpu5: AMD EPYC 3151 4-Core Processor, 2700.00 MHz, 17-01-02, patch 0800126f cpu5: smt 1, core 1, package 0 cpu6 at mainbus0: apid 9 (application processor) cpu6: AMD EPYC 3151 4-Core Processor, 2700.00 MHz, 17-01-02, patch 0800126f cpu6: smt 1, core 4, package 0 cpu7 at mainbus0: apid 11 (application processor) cpu7: AMD EPYC 3151 4-Core Processor, 2700.00 MHz, 17-01-02, patch 0800126f cpu7: smt 1, core 5, package 0 ioapic0 at mainbus0: apid 128 pa 0xfec00000, version 21, 24 pins, can't remap ioapic1 at mainbus0: apid 129 pa 0xefff0000, version 21, 32 pins, can't remap acpimcfg0 at acpi0 acpimcfg0: addr 0xf0000000, bus 0-127 acpihpet0 at acpi0: 14318180 Hz acpiprt0 at acpi0: bus 0 (PCI0) acpiprt1 at acpi0: bus -1 (D0A0) acpiprt2 at acpi0: bus 1 (D0A2) acpiprt3 at acpi0: bus 2 (ASTB) acpiprt4 at acpi0: bus 3 (D0A4) acpiprt5 at acpi0: bus -1 (D0B0) acpiprt6 at acpi0: bus -1 (D0B1) acpiprt7 at acpi0: bus 5 (S0D0) acpiprt8 at acpi0: bus 6 (BR17) acpipci0 at acpi0 PCI0: 0x00000010 0x00000011 0x00000000 acpicmos0 at acpi0 com0 at acpi0 UAR1 addr 0x3f8/0x8 irq 4: ns16550a, 16 byte fifo com0: console com1 at acpi0 UAR2 addr 0x2f8/0x8 irq 3: ns16550a, 16 byte fifo "IPI0001" at acpi0 not configured dwiic0 at acpi0 I2CA addr 0xfedc2000/0x1000 irq 10 iic0 at dwiic0 dwiic1 at acpi0 I2CB addr 0xfedc3000/0x1000 irq 11 iic1 at dwiic1 dwiic2 at acpi0 I2CC addr 0xfedc4000/0x1000 irq 12 iic2 at dwiic2 dwiic3 at acpi0 I2CD addr 0xfedc5000/0x1000 irq 13 iic3 at dwiic3 dwiic4 at acpi0 I2CE addr 0xfedc6000/0x1000 irq 14 iic4 at dwiic4 dwiic5 at acpi0 I2CF addr 0xfedcb000/0x1000 irq 15 iic5 at dwiic5 amdgpio0 at acpi0 GPIO uid 0 addr 0xfed81500/0x300 irq 7, 184 pins acpibtn0 at acpi0: PWRB acpicpu0 at acpi0: C2(0@400 io@0x814), C1(0@1 mwait), PSS acpicpu1 at acpi0: C2(0@400 io@0x814), C1(0@1 mwait), PSS acpicpu2 at acpi0: C2(0@400 io@0x814), C1(0@1 mwait), PSS acpicpu3 at acpi0: C2(0@400 io@0x814), C1(0@1 mwait), PSS acpicpu4 at acpi0: C2(0@400 io@0x814), C1(0@1 mwait), PSS acpicpu5 at acpi0: C2(0@400 io@0x814), C1(0@1 mwait), PSS acpicpu6 at acpi0: C2(0@400 io@0x814), C1(0@1 mwait), PSS acpicpu7 at acpi0: C2(0@400 io@0x814), C1(0@1 mwait), PSS acpipwrres0 at acpi0: P0SA acpipwrres1 at acpi0: P3SA acpipwrres2 at acpi0: P0SA acpipwrres3 at acpi0: P3SA acpipwrres4 at acpi0: P0SA acpipwrres5 at acpi0: P3SA acpipwrres6 at acpi0: P0SA acpipwrres7 at acpi0: P3SA acpipwrres8 at acpi0: P0SA acpipwrres9 at acpi0: P3SA acpipwrres10 at acpi0: P0SA acpipwrres11 at acpi0: P3SA acpipwrres12 at acpi0: P0SA acpipwrres13 at acpi0: P3SA acpipwrres14 at acpi0: P0SA acpipwrres15 at acpi0: P3SA ipmi at mainbus0 not configured cpu0: 2700 MHz: speeds: 2700 1900 1200 MHz pci0 at mainbus0 bus 0 ksmn0 at pci0 dev 0 function 0 "AMD 17h Root Complex" rev 0x00 pchb0 at pci0 dev 1 function 0 "AMD 17h PCIE" rev 0x00 ppb0 at pci0 dev 1 function 3 "AMD 17h PCIE" rev 0x00: msi pci1 at ppb0 bus 1 ppb1 at pci1 dev 0 function 0 "ASPEED Technology AST1150 PCI" rev 0x04 pci2 at ppb1 bus 2 vga1 at pci2 dev 0 function 0 "ASPEED Technology AST2000" rev 0x41 wsdisplay at vga1 not configured ppb2 at pci0 dev 1 function 5 "AMD 17h PCIE" rev 0x00: msi pci3 at ppb2 bus 3 em0 at pci3 dev 0 function 0 "Intel I350" rev 0x01: msi, address 3c:ec:ef:7a:d3:4c em1 at pci3 dev 0 function 1 "Intel I350" rev 0x01: msi, address 3c:ec:ef:7a:d3:4d em2 at pci3 dev 0 function 2 "Intel I350" rev 0x01: msi, address 3c:ec:ef:7a:d3:4e em3 at pci3 dev 0 function 3 "Intel I350" rev 0x01: msi, address 3c:ec:ef:7a:d3:4f pchb1 at pci0 dev 2 function 0 "AMD 17h PCIE" rev 0x00 pchb2 at pci0 dev 3 function 0 "AMD 17h PCIE" rev 0x00 pchb3 at pci0 dev 4 function 0 "AMD 17h PCIE" rev 0x00 pchb4 at pci0 dev 7 function 0 "AMD 17h PCIE" rev 0x00 ppb3 at pci0 dev 7 function 1 "AMD 17h PCIE" rev 0x00 pci4 at ppb3 bus 5 vendor "AMD", unknown product 0x145a (class instrumentation unknown subclass 0x00, rev 0x00) at pci4 dev 0 function 0 not configured ccp0 at pci4 dev 0 function 2 "AMD 17h Crypto" rev 0x00: msix: RNG xhci0 at pci4 dev 0 function 3 "AMD 17h xHCI" rev 0x00: msix, xHCI 1.0 usb0 at xhci0: USB revision 3.0 uhub0 at usb0 configuration 1 interface 0 "AMD xHCI root hub" rev 3.00/1.00 addr 1 pchb5 at pci0 dev 8 function 0 "AMD 17h PCIE" rev 0x00 ppb4 at pci0 dev 8 function 1 "AMD 17h PCIE" rev 0x00 pci5 at ppb4 bus 6 vendor "AMD", unknown product 0x1455 (class instrumentation unknown subclass 0x00, rev 0x00) at pci5 dev 0 function 0 not configured ccp1 at pci5 dev 0 function 1 "AMD 17h Crypto" rev 0x00: msix: RNG ahci0 at pci5 dev 0 function 2 "AMD FCH AHCI" rev 0x51: msi, AHCI 1.3.1 ahci0: port 0: 6.0Gb/s ahci0: port 2: 1.5Gb/s scsibus1 at ahci0: 32 targets sd0 at scsibus1 targ 0 lun 0: naa.5001b448bab0d42d sd0: 238475MB, 512 bytes/sector, 488397168 sectors, thin cd0 at scsibus1 targ 2 lun 0: removable piixpm0 at pci0 dev 20 function 0 "AMD FCH SMBus" rev 0x59: SMI iic6 at piixpm0 iic7 at piixpm0 pcib0 at pci0 dev 20 function 3 "AMD FCH LPC" rev 0x51 pchb6 at pci0 dev 24 function 0 "AMD 17h Data Fabric" rev 0x00 pchb7 at pci0 dev 24 function 1 "AMD 17h Data Fabric" rev 0x00 pchb8 at pci0 dev 24 function 2 "AMD 17h Data Fabric" rev 0x00 pchb9 at pci0 dev 24 function 3 "AMD 17h Data Fabric" rev 0x00 pchb10 at pci0 dev 24 function 4 "AMD 17h Data Fabric" rev 0x00 pchb11 at pci0 dev 24 function 5 "AMD 17h Data Fabric" rev 0x00 pchb12 at pci0 dev 24 function 6 "AMD 17h Data Fabric" rev 0x00 pchb13 at pci0 dev 24 function 7 "AMD 17h Data Fabric" rev 0x00 isa0 at pcib0 isadma0 at isa0 pcppi0 at isa0 port 0x61 spkr0 at pcppi0 vmm0 at mainbus0: SVM/RVI uhub1 at uhub0 port 1 configuration 1 interface 0 "Genesys Logic USB2.0 Hub" rev 2.00/32.98 addr 2 ugen0 at uhub1 port 3 "Identiv uTrust 2700 R Smart Card Reader" rev 2.00/2.02 addr 3 uftdi0 at uhub1 port 4 configuration 1 interface 0 "FTDI FT232R USB UART" rev 2.00/6.00 addr 4 ucom0 at uftdi0 portno 1: usb0.1.00004.0 uhub2 at uhub0 port 2 configuration 1 interface 0 "Genesys Logic USB2.0 Hub" rev 2.00/32.98 addr 5 uhub3 at uhub2 port 3 configuration 1 interface 0 "ATEN International product 0x7000" rev 2.00/0.00 addr 6 uhub3: port 2 power on failed, TIMEOUT uhidev0 at uhub3 port 1 configuration 1 interface 0 "ATEN International product 0x2419" rev 1.10/1.00 addr 7 uhidev0: iclass 3/1 ukbd0 at uhidev0: 8 variable keys, 6 key codes wskbd0 at ukbd0 mux 1 uhidev1 at uhub3 port 1 configuration 1 interface 1 "ATEN International product 0x2419" rev 1.10/1.00 addr 7 uhidev1: iclass 3/1 ums0 at uhidev1: 3 buttons, Z dir wsmouse0 at ums0 mux 0 uhidev2 at uhub0 port 3 configuration 1 interface 0 "GASIA PS2toUSB Adapter" rev 1.10/2.01 addr 8 uhidev2: iclass 3/1 ukbd1 at uhidev2: 8 variable keys, 6 key codes wskbd1 at ukbd1 mux 1 uhidev3 at uhub0 port 3 configuration 1 interface 1 "GASIA PS2toUSB Adapter" rev 1.10/2.01 addr 8 uhidev3: iclass 3/1, 3 report ids ums1 at uhidev3 reportid 1: 5 buttons, Z dir wsmouse1 at ums1 mux 0 uhid0 at uhidev3 reportid 2: input=1, output=0, feature=0 ucc0 at uhidev3 reportid 3: 573 usages, 20 keys, array wskbd2 at ucc0 mux 1 vscsi0 at root scsibus2 at vscsi0: 256 targets softraid0 at root scsibus3 at softraid0: 256 targets root on sd0a (c0227a64aecf2156.a) swap on sd0b dump on sd0b