Current-Users archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: VIA Padlock on AMD64
Hi,
I just noticed that padlock driver was made to compile on amd64
recently. I believe it should be included in modules Makefile
(/sys/modules/Makefile) as well (as per my git diff in previous
messages).
Index: sys/modules/Makefile
==================================================================
--- sys/modules/Makefile
+++ sys/modules/Makefile
@@ -318,11 +318,10 @@
SUBDIR+= ati_pcigart
SUBDIR+= compat_freebsd
SUBDIR+= mach64drm
SUBDIR+= mgadrm
SUBDIR+= nsclpcsio
-SUBDIR+= padlock
SUBDIR+= r128drm
SUBDIR+= radeondrm
SUBDIR+= savagedrm
SUBDIR+= sisdrm
SUBDIR+= tdfxdrm
@@ -339,10 +338,11 @@
SUBDIR+= drmkms_linux
SUBDIR+= drmkms_pci
SUBDIR+= i915drm
SUBDIR+= i915drmkms
SUBDIR+= pad
+SUBDIR+= padlock
#
# ISA modules
#
SUBDIR+= aps
SUBDIR+= finsio
On Sun, Apr 5, 2020 at 2:41 PM Andrius V <vezhlys%gmail.com@localhost> wrote:
>
> I created a patch to show the intention. It builds and "padlock"
> attaches to the CPU. On another hand, I failed to find any application
> which would be taking advantage of padlock (including i386). Neither
> openssl (tried speed tests), nor openssh (some commands I found in
> internet) showed any difference with padlock module or without it.
> Maybe some patching is needed but it seems hardware acceleration is
> ignored with these apps. If somebody know a good way to test it on
> NetBSD, I would be glad to hear it.
>
> On the side note, same goes to viadrmums module (it's i386 only now)
> but at least on VX900 I ended up with the crash, so I guess it may be
> incompatible with amd64 (though it builds successfully). Will try to
> test VX800 later on.
>
> diff --git a/distrib/sets/lists/modules/md.amd64
> b/distrib/sets/lists/modules/md.amd64
> index 1ab3209f278..bd4752d4a53 100644
> --- a/distrib/sets/lists/modules/md.amd64
> +++ b/distrib/sets/lists/modules/md.amd64
> @@ -193,6 +193,8 @@
> ./@MODULEDIR@/odcm/odcm.kmod modules-base-kernel kmod
> ./@MODULEDIR@/pad modules-base-kernel kmod
> ./@MODULEDIR@/pad/pad.kmod modules-base-kernel kmod
> +./@MODULEDIR@/padlock modules-base-kernel kmod
> +./@MODULEDIR@/padlock/padlock.kmod modules-base-kernel kmod
> ./@MODULEDIR@/powernow modules-base-kernel kmod
> ./@MODULEDIR@/powernow/powernow.kmod modules-base-kernel kmod
> ./@MODULEDIR@/pwdog modules-base-kernel kmod
> diff --git a/sys/arch/amd64/conf/GENERIC b/sys/arch/amd64/conf/GENERIC
> index 44a0d35b400..c556feb5618 100644
> --- a/sys/arch/amd64/conf/GENERIC
> +++ b/sys/arch/amd64/conf/GENERIC
> @@ -86,6 +86,7 @@ coretemp* at cpu? # Intel on-die thermal sensor
> est0 at cpu0 # Intel Enhanced SpeedStep (non-ACPI)
> hyperv0 at cpu0 # Microsoft Hyper-V
> #odcm0 at cpu0 # On-demand clock modulation
> +padlock0 at cpu0 # VIA Padlock
> powernow0 at cpu0 # AMD PowerNow! and Cool'n'Quiet (non-ACPI)
> vmt0 at cpu0 # VMware Tools
>
> diff --git a/sys/arch/x86/x86/via_padlock.c b/sys/arch/x86/x86/via_padlock.c
> index f23f891a642..e9d5f812f17 100644
> --- a/sys/arch/x86/x86/via_padlock.c
> +++ b/sys/arch/x86/x86/via_padlock.c
> @@ -341,7 +341,7 @@ via_padlock_cbc(void *cw, void *src, void *dst,
> void *key, int rep,
> lcr0(cr0 & ~(CR0_EM|CR0_TS));
>
> /* Do the deed */
> - __asm __volatile("pushfl; popfl"); /* force key reload */
> + __asm __volatile("pushf; popf"); /* force key reload */
> __asm __volatile(".byte 0xf3, 0x0f, 0xa7, 0xd0" : /* rep xcrypt-cbc */
> : "a" (iv), "b" (key), "c" (rep), "d" (cw),
> "S" (src), "D" (dst)
> : "memory", "cc");
>
> diff --git a/sys/modules/Makefile b/sys/modules/Makefile
> index 4a29a4a23cd..3595b37f246 100644
> --- a/sys/modules/Makefile
> +++ b/sys/modules/Makefile
> @@ -321,7 +321,6 @@ SUBDIR+= compat_freebsd
> SUBDIR+= mach64drm
> SUBDIR+= mgadrm
> SUBDIR+= nsclpcsio
> -SUBDIR+= padlock
> SUBDIR+= r128drm
> SUBDIR+= radeondrm
> SUBDIR+= savagedrm
> @@ -342,6 +341,7 @@ SUBDIR+= drmkms_pci
> SUBDIR+= i915drm
> SUBDIR+= i915drmkms
> SUBDIR+= pad
> +SUBDIR+= padlock
> #
> # ISA modules
> #
>
> On Tue, Mar 24, 2020 at 10:57 AM Andrius V <vezhlys%gmail.com@localhost> wrote:
> >
> > Hi,
> >
> > I accidentally noticed that padlock engine is not included on AMD64
> > port (neither as module or built-in). Is there any reason it excluded
> > from it? The build currently fails because inline asm code is using
> > pushl, popl instructions in the code in via_padlock_cbc method, but
> > replacing them with pushf, popf seemingly fixes the build and padlock
> > attaches. Since VIA has x86-64 based CPUs and all of them has the
> > engine, probably it makes sense to include it?
> >
> > Regards,
> > Andrius V
Home |
Main Index |
Thread Index |
Old Index