cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

n2-asm.S (1538B)


      1/* SPDX-License-Identifier: GPL-2.0 */
      2/* n2-asm.S: Niagara2 RNG hypervisor call assembler.
      3 *
      4 * Copyright (C) 2008 David S. Miller <davem@davemloft.net>
      5 */
      6#include <linux/linkage.h>
      7#include <asm/hypervisor.h>
      8#include "n2rng.h"
      9
     10	.text
     11
     12ENTRY(sun4v_rng_get_diag_ctl)
     13	mov	HV_FAST_RNG_GET_DIAG_CTL, %o5
     14	ta	HV_FAST_TRAP
     15	retl
     16	 nop
     17ENDPROC(sun4v_rng_get_diag_ctl)
     18
     19ENTRY(sun4v_rng_ctl_read_v1)
     20	mov	%o1, %o3
     21	mov	%o2, %o4
     22	mov	HV_FAST_RNG_CTL_READ, %o5
     23	ta	HV_FAST_TRAP
     24	stx	%o1, [%o3]
     25	retl
     26	 stx	%o2, [%o4]
     27ENDPROC(sun4v_rng_ctl_read_v1)
     28
     29ENTRY(sun4v_rng_ctl_read_v2)
     30	save	%sp, -192, %sp
     31	mov	%i0, %o0
     32	mov	%i1, %o1
     33	mov	HV_FAST_RNG_CTL_READ, %o5
     34	ta	HV_FAST_TRAP
     35	stx	%o1, [%i2]
     36	stx	%o2, [%i3]
     37	stx	%o3, [%i4]
     38	stx	%o4, [%i5]
     39	ret
     40	restore	%g0, %o0, %o0
     41ENDPROC(sun4v_rng_ctl_read_v2)
     42
     43ENTRY(sun4v_rng_ctl_write_v1)
     44	mov	%o3, %o4
     45	mov	HV_FAST_RNG_CTL_WRITE, %o5
     46	ta	HV_FAST_TRAP
     47	retl
     48	 stx	%o1, [%o4]
     49ENDPROC(sun4v_rng_ctl_write_v1)
     50
     51ENTRY(sun4v_rng_ctl_write_v2)
     52	mov	HV_FAST_RNG_CTL_WRITE, %o5
     53	ta	HV_FAST_TRAP
     54	retl
     55	 nop
     56ENDPROC(sun4v_rng_ctl_write_v2)
     57
     58ENTRY(sun4v_rng_data_read_diag_v1)
     59	mov	%o2, %o4
     60	mov	HV_FAST_RNG_DATA_READ_DIAG, %o5
     61	ta	HV_FAST_TRAP
     62	retl
     63	 stx	%o1, [%o4]
     64ENDPROC(sun4v_rng_data_read_diag_v1)
     65
     66ENTRY(sun4v_rng_data_read_diag_v2)
     67	mov	%o3, %o4
     68	mov	HV_FAST_RNG_DATA_READ_DIAG, %o5
     69	ta	HV_FAST_TRAP
     70	retl
     71	 stx	%o1, [%o4]
     72ENDPROC(sun4v_rng_data_read_diag_v2)
     73
     74ENTRY(sun4v_rng_data_read)
     75	mov	%o1, %o4
     76	mov	HV_FAST_RNG_DATA_READ, %o5
     77	ta	HV_FAST_TRAP
     78	retl
     79	 stx	%o1, [%o4]
     80ENDPROC(sun4v_rng_data_read)