The NetBSD Project

CVS log for src/sys/arch/arm/vfp/vfp_init.c

[BACK] Up to [cvs.NetBSD.org] / src / sys / arch / arm / vfp

Request diff between arbitrary revisions


Default branch: MAIN
Current tag: MAIN


Revision 1.78 / (download) - annotate - [select for diffs], Sat Aug 20 11:34:08 2022 UTC (18 months, 4 weeks ago) by riastradh
Branch: MAIN
CVS Tags: triaxx-drm, thorpej-ifq-base, thorpej-ifq, thorpej-altq-separation-base, thorpej-altq-separation, netbsd-10-base, netbsd-10-0-RC6, netbsd-10-0-RC5, netbsd-10-0-RC4, netbsd-10-0-RC3, netbsd-10-0-RC2, netbsd-10-0-RC1, netbsd-10, bouyer-sunxi-drm-base, bouyer-sunxi-drm, HEAD
Changes since 1.77: +16 -2 lines
Diff to previous 1.77 (colored)

fpu_kern_enter/leave: Disable IPL assertions.

These don't work because mutex_enter/exit on a spin lock may raise an
IPL but not lower it, if another spin lock was already held.  For
example,

	mutex_enter(some_lock_at_IPL_VM);
	printf("foo\n");
	fpu_kern_enter();
	...
	fpu_kern_leave();
	mutex_exit(some_lock_at_IPL_VM);

will trigger the panic, because printf takes a lock at IPL_HIGH where
the IPL wil remain until the mutex_exit.  (This was a nightmare to
track down before I remembered that detail of spin lock IPL
semantics...)

Revision 1.77 / (download) - annotate - [select for diffs], Fri Apr 1 19:57:22 2022 UTC (23 months, 2 weeks ago) by riastradh
Branch: MAIN
Changes since 1.76: +5 -4 lines
Diff to previous 1.76 (colored)

x86, arm: Allow fpu_kern_enter/leave while cold.

Normally these are forbidden above IPL_VM, so that FPU usage doesn't
block IPL_SCHED or IPL_HIGH interrupts.  But while cold, e.g. during
builtin module initialization at boot, all interrupts are blocked
anyway so it's a moot point.

Also initialize x86 cpu_info_primary.ci_kfpu_spl to -1 so we don't
trip over an assertion about it while cold -- the assertion is meant
to detect reentrance into fpu_kern_enter/leave, which is prohibited.

Also initialize cpu0's ci_kfpu_spl.

Revision 1.76 / (download) - annotate - [select for diffs], Sun Oct 31 16:23:48 2021 UTC (2 years, 4 months ago) by skrll
Branch: MAIN
Changes since 1.75: +71 -93 lines
Diff to previous 1.75 (colored)

Rework Arm (32bit and 64bit) AP startup so that cpu_hatch doesn't sleep.

The AP initialisation code in cpu_init_secondary_processor will read and
initialise the required system registers and state for the BP to attach
and report.

Rework the interrupt handler code for this new sequence. Thankfully,
this removes a bunch of code for bcm2836mp.

The VFP detection handler on <= armv7 relies on the global undefined
handler being in place until the BP attaches vfp. That is, after the
APs have been spun up.

gicv3_its.c has a serialisation issue which is protected against in
the gicv3_its_cpu_init, which is called from cpu_hatch, with a spin
lock. The serialisation issue needs addressing more completely.

Tested on RPI3, Apple M1, QEMU, and lx2k

Fixes PR port-arm/56264:
   diagnostic assertion "l->l_stat == LSONPROC" failed on RPI3

Revision 1.75 / (download) - annotate - [select for diffs], Sun Oct 17 08:47:21 2021 UTC (2 years, 5 months ago) by skrll
Branch: MAIN
Changes since 1.74: +3 -3 lines
Diff to previous 1.74 (colored)

Trailing whitespace

Revision 1.74 / (download) - annotate - [select for diffs], Tue Jun 1 00:30:22 2021 UTC (2 years, 9 months ago) by rin
Branch: MAIN
CVS Tags: thorpej-i2c-spi-conf2-base, thorpej-i2c-spi-conf2, thorpej-i2c-spi-conf-base, thorpej-futex2-base, thorpej-futex2, thorpej-cfargs2-base, thorpej-cfargs2, cjep_sun2x-base1, cjep_sun2x-base, cjep_sun2x
Changes since 1.73: +14 -5 lines
Diff to previous 1.73 (colored)

PR port-arm/55790

Fix KASSERT failure with floating-point exception in userland.

Consider the case in which curlwp owns enabled FPU in vfp_handler().
If FPE is raised, we must skip pcu_load(9) rather than just falling
through. Otherwise, KASSERT fires in vfp_state_load(), since curlwp
already owns enabled FPU.

No regression for ATF is introduced.

Revision 1.73 / (download) - annotate - [select for diffs], Tue Jun 1 00:13:19 2021 UTC (2 years, 9 months ago) by rin
Branch: MAIN
Changes since 1.72: +6 -4 lines
Diff to previous 1.72 (colored)

PR port-arm/55790

Style fix for clarity, in preparation of main fix.

Replace condition ``curcpu()->ci_pcu_curlwp[PCU_FPU] == curlwp'' with
``curlwp->l_pcu_cpu[PCU_FPU] == curcpu()''. And add KASSERT to check
the two conditions are equivalent, as done for MI pcu code:

https://nxr.netbsd.org/xref/src/sys/kern/subr_pcu.c#323

No functional changes.

Revision 1.72 / (download) - annotate - [select for diffs], Fri Oct 30 18:54:37 2020 UTC (3 years, 4 months ago) by skrll
Branch: MAIN
CVS Tags: thorpej-futex-base, thorpej-futex, thorpej-cfargs-base, thorpej-cfargs, cjep_staticlib_x-base1, cjep_staticlib_x-base, cjep_staticlib_x
Branch point for: thorpej-i2c-spi-conf
Changes since 1.71: +3 -3 lines
Diff to previous 1.71 (colored)

Retire arm_[di]sb in favour of the isb() and dsb(sy) macro invocations.

Revision 1.71 / (download) - annotate - [select for diffs], Sat Aug 1 02:13:04 2020 UTC (3 years, 7 months ago) by riastradh
Branch: MAIN
Changes since 1.70: +46 -5 lines
Diff to previous 1.70 (colored)

Add kthread_fpu_enter/exit support to arm.

Revision 1.70 / (download) - annotate - [select for diffs], Mon Jul 27 20:51:29 2020 UTC (3 years, 7 months ago) by riastradh
Branch: MAIN
Changes since 1.69: +5 -2 lines
Diff to previous 1.69 (colored)

Enable ChaCha NEON code on armv7 too.

The 4-blocks-at-a-time assembly helper is disabled for now; adapting
it to armv7 is going to be a little annoying with only 16 128-bit
vector registers.

(Should also do a fifth block in the integer registers for 320 bytes
at a time.)

Revision 1.69 / (download) - annotate - [select for diffs], Sat Jul 25 22:12:56 2020 UTC (3 years, 7 months ago) by riastradh
Branch: MAIN
Changes since 1.68: +3 -3 lines
Diff to previous 1.68 (colored)

Split aes_impl declarations out into aes_impl.h.

This will make it less painful to add more operations to struct
aes_impl without having to recompile everything that just uses the
block cipher directly or similar.

Revision 1.68 / (download) - annotate - [select for diffs], Mon Jul 13 16:54:03 2020 UTC (3 years, 8 months ago) by riastradh
Branch: MAIN
Changes since 1.67: +4 -11 lines
Diff to previous 1.67 (colored)

Use pcu_save_all_on_cpu, not pcu_save.

We don't care what curlwp is here; we care whose state is in the fpu
registers.

Revision 1.67 / (download) - annotate - [select for diffs], Mon Jul 13 16:53:06 2020 UTC (3 years, 8 months ago) by riastradh
Branch: MAIN
Changes since 1.66: +10 -9 lines
Diff to previous 1.66 (colored)

Limit arm32 fpu_kern_enter/leave to IPL_VM or below.

Revision 1.66 / (download) - annotate - [select for diffs], Mon Jun 29 23:56:31 2020 UTC (3 years, 8 months ago) by riastradh
Branch: MAIN
Changes since 1.65: +10 -4 lines
Diff to previous 1.65 (colored)

New permutation-based AES implementation using ARM NEON.

Also derived from Mike Hamburg's public-domain vpaes code.

Revision 1.65 / (download) - annotate - [select for diffs], Mon Jun 29 23:54:06 2020 UTC (3 years, 8 months ago) by riastradh
Branch: MAIN
Changes since 1.64: +71 -2 lines
Diff to previous 1.64 (colored)

Implement fpu_kern_enter/leave for arm32.

Revision 1.64 / (download) - annotate - [select for diffs], Tue Oct 29 16:18:23 2019 UTC (4 years, 4 months ago) by joerg
Branch: MAIN
CVS Tags: phil-wifi-20200421, phil-wifi-20200411, phil-wifi-20200406, phil-wifi-20191119, is-mlppp-base, is-mlppp, bouyer-xenpvh-base2, bouyer-xenpvh-base1, bouyer-xenpvh-base, bouyer-xenpvh, ad-namecache-base3, ad-namecache-base2, ad-namecache-base1, ad-namecache-base, ad-namecache
Changes since 1.63: +6 -6 lines
Diff to previous 1.63 (colored)

Explicitly annotate FPU requirements for LLVM MC.

When using GCC, this annotations change the global state, but there is
no push/pop functionality for .fpu to avoid this problem. The state is
local to each inline assembler block with LLVM MC.

Revision 1.63 / (download) - annotate - [select for diffs], Sat Sep 7 19:42:42 2019 UTC (4 years, 6 months ago) by tnn
Branch: MAIN
Changes since 1.62: +4 -2 lines
Diff to previous 1.62 (colored)

Cortex A12 is marketed as A17 but has a distinct part number

observed on Rockchip RK3288

Revision 1.62 / (download) - annotate - [select for diffs], Sat Apr 6 08:48:53 2019 UTC (4 years, 11 months ago) by skrll
Branch: MAIN
CVS Tags: phil-wifi-20190609, netbsd-9-base, netbsd-9-3-RELEASE, netbsd-9-2-RELEASE, netbsd-9-1-RELEASE, netbsd-9-0-RELEASE, netbsd-9-0-RC2, netbsd-9-0-RC1, netbsd-9, isaki-audio2-base, isaki-audio2
Changes since 1.61: +16 -10 lines
Diff to previous 1.61 (colored)

Install the undefined instruction handlers only once, i.e. when attaching
on the BP.

Revision 1.61 / (download) - annotate - [select for diffs], Sun Mar 17 08:41:42 2019 UTC (5 years ago) by skrll
Branch: MAIN
Changes since 1.60: +3 -3 lines
Diff to previous 1.60 (colored)

Trailing whitespace

Revision 1.60 / (download) - annotate - [select for diffs], Sun Jan 27 02:08:37 2019 UTC (5 years, 1 month ago) by pgoyette
Branch: MAIN
Changes since 1.59: +2 -2 lines
Diff to previous 1.59 (colored)

Merge the [pgoyette-compat] branch

Revision 1.59 / (download) - annotate - [select for diffs], Wed Aug 15 06:00:02 2018 UTC (5 years, 7 months ago) by skrll
Branch: MAIN
CVS Tags: pgoyette-compat-20190127, pgoyette-compat-20190118, pgoyette-compat-1226, pgoyette-compat-1126, pgoyette-compat-1020, pgoyette-compat-0930, pgoyette-compat-0906
Changes since 1.58: +4 -2 lines
Diff to previous 1.58 (colored)

Sprinkle #include "opt_cputypes.h"

Revision 1.58 / (download) - annotate - [select for diffs], Wed Aug 15 05:52:15 2018 UTC (5 years, 7 months ago) by skrll
Branch: MAIN
Changes since 1.57: +4 -1 lines
Diff to previous 1.57 (colored)

Add __KERNEL_RCSID

Revision 1.57 / (download) - annotate - [select for diffs], Sun Apr 8 09:19:27 2018 UTC (5 years, 11 months ago) by bouyer
Branch: MAIN
CVS Tags: phil-wifi-base, pgoyette-compat-0728, pgoyette-compat-0625, pgoyette-compat-0521, pgoyette-compat-0502, pgoyette-compat-0422, pgoyette-compat-0415
Branch point for: phil-wifi
Changes since 1.56: +1 -8 lines
Diff to previous 1.56 (colored)

Remove the call to vfp_fpscr_handler() from vfp_handler(). It actually never
avoids a full FPU switch, and costs a function call and a few tests.

Discussed on port-arm@ on october 2017:
http://mail-index.netbsd.org/port-arm/2017/10/16/msg004411.html

Revision 1.56 / (download) - annotate - [select for diffs], Fri Mar 2 23:07:55 2018 UTC (6 years ago) by christos
Branch: MAIN
CVS Tags: pgoyette-compat-base, pgoyette-compat-0407, pgoyette-compat-0330, pgoyette-compat-0322, pgoyette-compat-0315
Branch point for: pgoyette-compat
Changes since 1.55: +10 -5 lines
Diff to previous 1.55 (colored)

Add more vfp directives for gcc-6

Revision 1.55 / (download) - annotate - [select for diffs], Mon Oct 16 15:13:00 2017 UTC (6 years, 5 months ago) by bouyer
Branch: MAIN
CVS Tags: tls-maxphys-base-20171202
Changes since 1.54: +1 -10 lines
Diff to previous 1.54 (colored)

We KASSERT((fregs->vfp_fpexc & VFP_FPEXC_EN) == 0) just before, so
enabled is always false. remove.

Revision 1.54 / (download) - annotate - [select for diffs], Mon Oct 16 15:08:24 2017 UTC (6 years, 5 months ago) by bouyer
Branch: MAIN
Changes since 1.53: +9 -1 lines
Diff to previous 1.53 (colored)

In the REENABLE case, make sur the fpexc copy in the pcb also has
VFP_FPEXC_EN set. Otherwise we could trap on every context switch even if
the CPU already has the VFP state.

Revision 1.53 / (download) - annotate - [select for diffs], Fri May 26 21:17:46 2017 UTC (6 years, 9 months ago) by jmcneill
Branch: MAIN
CVS Tags: perseant-stdc-iso10646-base, perseant-stdc-iso10646, nick-nhusb-base-20170825, netbsd-8-base
Branch point for: netbsd-8
Changes since 1.52: +4 -1 lines
Diff to previous 1.52 (colored)

Recognize Cortex-A57 FPU, GIC, and Generic Timer.

Revision 1.52 / (download) - annotate - [select for diffs], Wed Mar 22 23:36:02 2017 UTC (6 years, 11 months ago) by chs
Branch: MAIN
CVS Tags: prg-localcount2-base3, prg-localcount2-base2, prg-localcount2-base1, prg-localcount2-base, prg-localcount2, pgoyette-localcount-20170426, jdolecek-ncq-base, jdolecek-ncq, bouyer-socketcan-base1
Changes since 1.51: +3 -3 lines
Diff to previous 1.51 (colored)

in vfp_state_load(), fix backwards logic for fpinst vs. fpinst2.

Revision 1.51 / (download) - annotate - [select for diffs], Thu Mar 16 16:13:20 2017 UTC (7 years ago) by chs
Branch: MAIN
CVS Tags: pgoyette-localcount-20170320
Changes since 1.50: +14 -12 lines
Diff to previous 1.50 (colored)

allow pcu_save() and pcu_discard() to be called on other threads,
ptrace needs to use it that way.

Revision 1.50 / (download) - annotate - [select for diffs], Thu Mar 3 17:01:31 2016 UTC (8 years ago) by skrll
Branch: MAIN
CVS Tags: pgoyette-localcount-base, pgoyette-localcount-20170107, pgoyette-localcount-20161104, pgoyette-localcount-20160806, pgoyette-localcount-20160726, nick-nhusb-base-20170204, nick-nhusb-base-20161204, nick-nhusb-base-20161004, nick-nhusb-base-20160907, nick-nhusb-base-20160529, nick-nhusb-base-20160422, nick-nhusb-base-20160319, localcount-20160914, bouyer-socketcan-base
Branch point for: pgoyette-localcount, bouyer-socketcan
Changes since 1.49: +4 -1 lines
Diff to previous 1.49 (colored)

Get the RPI3 working (in aarch32 mode) by recognising Cortex A53 CPUs.
While I'm here add some A57/A72 info as well.

My RPI3 works with FB console - the uart needs some help with its clocks.

Revision 1.49 / (download) - annotate - [select for diffs], Thu Nov 12 10:49:35 2015 UTC (8 years, 4 months ago) by jmcneill
Branch: MAIN
CVS Tags: nick-nhusb-base-20151226
Changes since 1.48: +2 -2 lines
Diff to previous 1.48 (colored)

change some register dumps from aprint_verbose to aprint_debug

Revision 1.48 / (download) - annotate - [select for diffs], Tue Apr 28 17:14:21 2015 UTC (8 years, 10 months ago) by jmcneill
Branch: MAIN
CVS Tags: nick-nhusb-base-20150921, nick-nhusb-base-20150606
Changes since 1.47: +3 -1 lines
Diff to previous 1.47 (colored)

isb after writing cpacr, from Andrew Turner

Revision 1.47 / (download) - annotate - [select for diffs], Mon Mar 23 17:42:02 2015 UTC (8 years, 11 months ago) by matt
Branch: MAIN
CVS Tags: nick-nhusb-base-20150406
Changes since 1.46: +11 -7 lines
Diff to previous 1.46 (colored)

Fix some inverted return values.  Don't return SIGILL if there is an active
FPU exception.

Revision 1.46 / (download) - annotate - [select for diffs], Fri Mar 20 01:27:34 2015 UTC (9 years ago) by matt
Branch: MAIN
Changes since 1.45: +2 -2 lines
Diff to previous 1.45 (colored)

Remove extra )

Revision 1.45 / (download) - annotate - [select for diffs], Fri Mar 20 00:54:30 2015 UTC (9 years ago) by matt
Branch: MAIN
Changes since 1.44: +6 -4 lines
Diff to previous 1.44 (colored)

Not only check to see if we own the VFP but that the VFP is enabled.

Revision 1.44 / (download) - annotate - [select for diffs], Tue Mar 17 22:34:10 2015 UTC (9 years ago) by matt
Branch: MAIN
Changes since 1.43: +5 -1 lines
Diff to previous 1.43 (colored)

Don't try to catch undefined VFP instructions if we own the the FPU.
Let them raise SIGILL.

Revision 1.43 / (download) - annotate - [select for diffs], Tue Mar 17 17:20:55 2015 UTC (9 years ago) by matt
Branch: MAIN
Changes since 1.42: +8 -3 lines
Diff to previous 1.42 (colored)

If we own the FPU, don't take anymore undefined faults.  Instead generate
SIGILLs since we obviously don't understand the instruction.

Revision 1.42 / (download) - annotate - [select for diffs], Mon Feb 9 07:55:52 2015 UTC (9 years, 1 month ago) by slp
Branch: MAIN
Changes since 1.41: +4 -1 lines
Diff to previous 1.41 (colored)

Add VFP IDs for QEMU's emulated Cortex-A15.

Revision 1.41 / (download) - annotate - [select for diffs], Fri Jul 18 22:54:53 2014 UTC (9 years, 8 months ago) by matt
Branch: MAIN
CVS Tags: tls-maxphys-base, tls-earlyentropy-base, nick-nhusb-base, netbsd-7-base
Branch point for: nick-nhusb, netbsd-7
Changes since 1.40: +2 -2 lines
Diff to previous 1.40 (colored)

fix typo reported in PR/48948

Revision 1.40 / (download) - annotate - [select for diffs], Sun Jun 15 23:07:36 2014 UTC (9 years, 9 months ago) by matt
Branch: MAIN
Changes since 1.39: +7 -5 lines
Diff to previous 1.39 (colored)

Cleanup a bit of the init logic.

Revision 1.39 / (download) - annotate - [select for diffs], Fri May 16 00:48:41 2014 UTC (9 years, 10 months ago) by rmind
Branch: MAIN
CVS Tags: rmind-smpnet-nbase, rmind-smpnet-base
Changes since 1.38: +40 -114 lines
Diff to previous 1.38 (colored)

pcu(9):
- Remove PCU_KERNEL (hi matt!) and significantly simplify the code.
  This experimental feature was tried on ARM did not meet the expectations.
  It may be revived one day, but it should be done in a much simpler way.
- Add a message structure for xcall function, pass the LWP ower and thus
  optimise a race condition: if LWP is discarding its state on a remote CPU,
  but another LWP already did it - do not cause an unecessary re-faulting.
- Reduce the variety of flags for PCU operations (only PCU_VALID and
  PCU_REENABLE are used now), pass them only to the pcu_state_load().
- Rename pcu_used_p() to pcu_valid_p(); hopefully it is less confusing.
- pcu_save_all_on_cpu: SPL ought to be used here.
- Update and improve the pcu(9) man page; it needs wizd(8) though.

Revision 1.38 / (download) - annotate - [select for diffs], Sun Apr 6 00:54:52 2014 UTC (9 years, 11 months ago) by matt
Branch: MAIN
CVS Tags: yamt-pagecache-base9
Changes since 1.37: +3 -3 lines
Diff to previous 1.37 (colored)

propogation -> propagation

Revision 1.37 / (download) - annotate - [select for diffs], Fri Mar 28 21:39:09 2014 UTC (9 years, 11 months ago) by matt
Branch: MAIN
CVS Tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15
Branch point for: tls-earlyentropy
Changes since 1.36: +65 -93 lines
Diff to previous 1.36 (colored)

Various MP changes.

Revision 1.36 / (download) - annotate - [select for diffs], Tue Mar 18 07:03:22 2014 UTC (10 years ago) by matt
Branch: MAIN
Changes since 1.35: +6 -2 lines
Diff to previous 1.35 (colored)

Enable VFP on MV88SV58XX

Revision 1.35 / (download) - annotate - [select for diffs], Tue Mar 4 08:32:23 2014 UTC (10 years ago) by matt
Branch: MAIN
CVS Tags: riastradh-drm2-base3
Changes since 1.34: +8 -6 lines
Diff to previous 1.34 (colored)

Add a different version vfp_fpscr_changable if FPU_VFP was not defined.
If no FPU was found, reinit vfp_fpscr_changeable/default to values appropriate
for softfloat.

Revision 1.34 / (download) - annotate - [select for diffs], Mon Mar 3 08:45:18 2014 UTC (10 years ago) by matt
Branch: MAIN
Changes since 1.33: +34 -12 lines
Diff to previous 1.33 (colored)

Query the media and vfp feature registers to determine what our default
mode should be and what bits in the fpscr can be changed.
Print what features are supported:
vfp0 at cpu0: NEON MPE (VFP 3.0+), rounding, NaN propogation, denormals

Revision 1.33 / (download) - annotate - [select for diffs], Sat Jan 25 17:30:56 2014 UTC (10 years, 1 month ago) by skrll
Branch: MAIN
Changes since 1.32: +37 -26 lines
Diff to previous 1.32 (colored)

Improve PCU/VFP handling to the point that the atf tests don't trigger
KASSERTs on the Raspberry PI and its arm1176jzf-s.

XXX Need to emulate bounce instructions to get correct exception codes,
XXX etc.

Revision 1.32 / (download) - annotate - [select for diffs], Fri Jan 24 08:26:39 2014 UTC (10 years, 1 month ago) by skrll
Branch: MAIN
Changes since 1.31: +4 -4 lines
Diff to previous 1.31 (colored)

Be consistent about setting fpscr for Runfast.  No functional change.

Revision 1.31 / (download) - annotate - [select for diffs], Thu Jan 23 17:44:13 2014 UTC (10 years, 1 month ago) by skrll
Branch: MAIN
Changes since 1.30: +2 -2 lines
Diff to previous 1.30 (colored)

Fix typo in #define name

Revision 1.30 / (download) - annotate - [select for diffs], Tue Jan 21 12:47:20 2014 UTC (10 years, 1 month ago) by skrll
Branch: MAIN
Changes since 1.29: +2 -2 lines
Diff to previous 1.29 (colored)

Typo in comment

Revision 1.29 / (download) - annotate - [select for diffs], Fri Dec 27 12:16:01 2013 UTC (10 years, 2 months ago) by matt
Branch: MAIN
Changes since 1.28: +11 -6 lines
Diff to previous 1.28 (colored)

Switch to using FP instructions instead of cp10/11 instructions.

Revision 1.28 / (download) - annotate - [select for diffs], Sat Dec 14 15:47:18 2013 UTC (10 years, 3 months ago) by matt
Branch: MAIN
Changes since 1.27: +8 -3 lines
Diff to previous 1.27 (colored)

If we can't enable VFP/VFP2 via the CPACCESS register, bail since there
isn't a VFP.

Revision 1.27 / (download) - annotate - [select for diffs], Mon Nov 18 18:02:01 2013 UTC (10 years, 4 months ago) by matt
Branch: MAIN
Changes since 1.26: +14 -10 lines
Diff to previous 1.26 (colored)

Before checking for an exception, make sure we own the VFP.

Revision 1.26 / (download) - annotate - [select for diffs], Fri Aug 23 18:11:47 2013 UTC (10 years, 6 months ago) by matt
Branch: MAIN
Changes since 1.25: +2 -2 lines
Diff to previous 1.25 (colored)

Deal with lack of VFP.

Revision 1.25 / (download) - annotate - [select for diffs], Fri Aug 23 05:22:01 2013 UTC (10 years, 6 months ago) by matt
Branch: MAIN
Changes since 1.24: +12 -9 lines
Diff to previous 1.24 (colored)

Reap LWP_VFPUSED and use PCU internal tracking.
Add bool vfp_used_p(void);

Revision 1.24 / (download) - annotate - [select for diffs], Thu Aug 22 19:50:54 2013 UTC (10 years, 6 months ago) by drochner
Branch: MAIN
Changes since 1.23: +3 -3 lines
Diff to previous 1.23 (colored)

-extend the pcu(9) API by a function which saves all context on the
 current CPU, and use it if a CPU is taken offline
-add a bool argument to pcu_discard which tells whether the internal
 "LWP has used the coprocessor" flag should be set or reset. The flag
 is reported by pcu_used_p(). If set, future accesses should use the
 state stored in the PCB. If reset, it should be reset to default.
 The former case is useful for setmcontext().
 With that, it should not be necessary anymore to manage the "FPU used"
 state by an additional MD variable.

approved by matt

Revision 1.23 / (download) - annotate - [select for diffs], Sun Aug 18 06:28:18 2013 UTC (10 years, 7 months ago) by matt
Branch: MAIN
Changes since 1.22: +2 -1 lines
Diff to previous 1.22 (colored)

Move parts of cpu.h that are not needed by MI code in <arm/locore.h>
Don't include <machine/cpu.h> or <machine/frame.h>, use <arm/locore.h>
Use <arm/asm.h> instead of <machine/arm.h>

Revision 1.22 / (download) - annotate - [select for diffs], Sat Aug 3 20:16:44 2013 UTC (10 years, 7 months ago) by matt
Branch: MAIN
Changes since 1.21: +3 -3 lines
Diff to previous 1.21 (colored)

Add VFP_FPSCR_RN (even though it's 0) just to be explicit.

Revision 1.21 / (download) - annotate - [select for diffs], Fri Aug 2 03:48:19 2013 UTC (10 years, 7 months ago) by matt
Branch: MAIN
Changes since 1.20: +71 -117 lines
Diff to previous 1.20 (colored)

Use armreg inlines.
Add exception -> trapsignal code.

Revision 1.20 / (download) - annotate - [select for diffs], Thu Jun 20 05:24:46 2013 UTC (10 years, 9 months ago) by matt
Branch: MAIN
CVS Tags: riastradh-drm2-base2, riastradh-drm2-base1, riastradh-drm2-base, riastradh-drm2
Branch point for: rmind-smpnet
Changes since 1.19: +6 -1 lines
Diff to previous 1.19 (colored)

Add support for the Cortex-A15 Neon/VFP unit

Revision 1.19 / (download) - annotate - [select for diffs], Tue Feb 5 23:23:34 2013 UTC (11 years, 1 month ago) by matt
Branch: MAIN
CVS Tags: khorben-n900, agc-symver-base, agc-symver
Changes since 1.18: +3 -3 lines
Diff to previous 1.18 (colored)

Use the mrc form of the vmrs rX, mvfrX instruction to shut up gas.

Revision 1.18 / (download) - annotate - [select for diffs], Thu Jan 31 22:35:25 2013 UTC (11 years, 1 month ago) by matt
Branch: MAIN
Changes since 1.17: +7 -1 lines
Diff to previous 1.17 (colored)

Add support for machdep neon_present and id_mvfr sysctls

Revision 1.17 / (download) - annotate - [select for diffs], Mon Jan 28 23:49:13 2013 UTC (11 years, 1 month ago) by matt
Branch: MAIN
Changes since 1.16: +2 -1 lines
Diff to previous 1.16 (colored)

Add a machdep.fpu_present sysctl for ld.elf_so to use in ld.so.conf to load
libc_vfp.so.

Revision 1.16 / (download) - annotate - [select for diffs], Mon Jan 28 06:14:45 2013 UTC (11 years, 1 month ago) by matt
Branch: MAIN
Changes since 1.15: +5 -1 lines
Diff to previous 1.15 (colored)

Disable bzero_page_vfp and bcopy_page_vfp since it really isn't any faster
than memcpy.

Revision 1.15 / (download) - annotate - [select for diffs], Mon Dec 31 03:23:53 2012 UTC (11 years, 2 months ago) by matt
Branch: MAIN
CVS Tags: yamt-pagecache-base8
Changes since 1.14: +2 -2 lines
Diff to previous 1.14 (colored)

Always re-enable the VFP when loading for a kernel LWP.

Revision 1.14 / (download) - annotate - [select for diffs], Mon Dec 31 00:01:48 2012 UTC (11 years, 2 months ago) by matt
Branch: MAIN
Changes since 1.13: +2 -2 lines
Diff to previous 1.13 (colored)

print the PC of the VFP kernel fault in the panic message.

Revision 1.13 / (download) - annotate - [select for diffs], Wed Dec 26 18:34:56 2012 UTC (11 years, 2 months ago) by matt
Branch: MAIN
Changes since 1.12: +190 -79 lines
Diff to previous 1.12 (colored)

Add support for PCU_KERNEL and vfp_kernel_acquire/vfp_kernel_release.
Add an undefined handler to catch NEON instructions.

Revision 1.12 / (download) - annotate - [select for diffs], Tue Dec 11 01:52:30 2012 UTC (11 years, 3 months ago) by matt
Branch: MAIN
CVS Tags: yamt-pagecache-base7
Changes since 1.11: +37 -5 lines
Diff to previous 1.11 (colored)

Add code to patch pmap_{copy,zero}_page_generic to change calls to
b{copy,zero}_page to b{copy,zero}_page_vfp

Revision 1.11 / (download) - annotate - [select for diffs], Mon Dec 10 01:35:28 2012 UTC (11 years, 3 months ago) by matt
Branch: MAIN
Changes since 1.10: +8 -7 lines
Diff to previous 1.10 (colored)

move inlines into FPU_VFP

Revision 1.10 / (download) - annotate - [select for diffs], Sat Dec 8 06:49:00 2012 UTC (11 years, 3 months ago) by matt
Branch: MAIN
Changes since 1.9: +65 -11 lines
Diff to previous 1.9 (colored)

On Cortex, make sure to load/save the upper 16 64-FP registers.
When creating a mcontext_t, make sure _UC_ARM_VFP is set.

Revision 1.9 / (download) - annotate - [select for diffs], Wed Dec 5 19:30:10 2012 UTC (11 years, 3 months ago) by matt
Branch: MAIN
Changes since 1.8: +7 -1 lines
Diff to previous 1.8 (colored)

For armv7 (cortex), disable access to the upper 16 FP registers (restrict
the register space to 16 64-bit FP registers).

Revision 1.8 / (download) - annotate - [select for diffs], Wed Dec 5 19:05:46 2012 UTC (11 years, 3 months ago) by matt
Branch: MAIN
Changes since 1.7: +34 -1 lines
Diff to previous 1.7 (colored)

ARMFPE hasn't compiled since NetBSD 4.  Remove it.
Complete support for FPU_VFP.
fpregs now contains vfpreg.
XXX vfpreg only has space for 16 64-bit FP registers though VFPv3 and later
have 32 64-bit FP registers.

Revision 1.7 / (download) - annotate - [select for diffs], Sat Sep 22 19:45:54 2012 UTC (11 years, 5 months ago) by matt
Branch: MAIN
CVS Tags: yamt-pagecache-base6
Changes since 1.6: +29 -20 lines
Diff to previous 1.6 (colored)

Only use CPACR register for ARM11 and CORTEX cores.
Add VFP ids for other CORTEX CPUs.

Revision 1.6 / (download) - annotate - [select for diffs], Sat Sep 22 01:44:12 2012 UTC (11 years, 5 months ago) by matt
Branch: MAIN
Changes since 1.5: +22 -2 lines
Diff to previous 1.5 (colored)

Before testing for VFP, make sure CP10 is enabled.  (And CP11 for Neon too).

Revision 1.5 / (download) - annotate - [select for diffs], Thu Aug 16 18:16:25 2012 UTC (11 years, 7 months ago) by matt
Branch: MAIN
Branch point for: tls-maxphys
Changes since 1.4: +2 -1 lines
Diff to previous 1.4 (colored)

Add include of <arm/pcb.h>

Revision 1.4 / (download) - annotate - [select for diffs], Sun Aug 12 05:05:47 2012 UTC (11 years, 7 months ago) by matt
Branch: MAIN
Changes since 1.3: +235 -170 lines
Diff to previous 1.3 (colored)

Rework VFP support to use PCU.
Add emulation of instruction which save/restore the VFP FPSCR.
Add a sysarch hook to VFP FPSCR manipulation.

[The emulation will be used by libc to store/fetch exception modes and
rounding mode on a per-thread basis.]

Revision 1.3 / (download) - annotate - [select for diffs], Sat Nov 21 20:32:28 2009 UTC (14 years, 3 months ago) by rmind
Branch: MAIN
CVS Tags: yamt-pagecache-base5, yamt-pagecache-base4, yamt-pagecache-base3, yamt-pagecache-base2, yamt-pagecache-base, yamt-nfs-mp-base9, yamt-nfs-mp-base11, yamt-nfs-mp-base10, uebayasi-xip-base7, uebayasi-xip-base6, uebayasi-xip-base5, uebayasi-xip-base4, uebayasi-xip-base3, uebayasi-xip-base2, uebayasi-xip-base1, uebayasi-xip-base, uebayasi-xip, rmind-uvmplock-nbase, rmind-uvmplock-base, rmind-uvmplock, netbsd-6-base, netbsd-6-1-RELEASE, netbsd-6-1-RC4, netbsd-6-1-RC3, netbsd-6-1-RC2, netbsd-6-1-RC1, netbsd-6-1-5-RELEASE, netbsd-6-1-4-RELEASE, netbsd-6-1-3-RELEASE, netbsd-6-1-2-RELEASE, netbsd-6-1-1-RELEASE, netbsd-6-1, netbsd-6-0-RELEASE, netbsd-6-0-RC2, netbsd-6-0-RC1, netbsd-6-0-6-RELEASE, netbsd-6-0-5-RELEASE, netbsd-6-0-4-RELEASE, netbsd-6-0-3-RELEASE, netbsd-6-0-2-RELEASE, netbsd-6-0-1-RELEASE, netbsd-6-0, netbsd-6, matt-premerge-20091211, matt-nb6-plus-nbase, matt-nb6-plus-base, matt-mips64-premerge-20101231, jym-xensuspend-nbase, jym-xensuspend-base, jruoho-x86intr-base, jruoho-x86intr, jmcneill-usbmp-pre-base2, jmcneill-usbmp-base9, jmcneill-usbmp-base8, jmcneill-usbmp-base7, jmcneill-usbmp-base6, jmcneill-usbmp-base5, jmcneill-usbmp-base4, jmcneill-usbmp-base3, jmcneill-usbmp-base2, jmcneill-usbmp-base10, jmcneill-usbmp-base, jmcneill-usbmp, jmcneill-audiomp3-base, jmcneill-audiomp3, cherry-xenmp-base, cherry-xenmp, bouyer-quota2-nbase, bouyer-quota2-base, bouyer-quota2
Branch point for: yamt-pagecache, matt-nb6-plus
Changes since 1.2: +26 -20 lines
Diff to previous 1.2 (colored)

Use lwp_getpcb() on ARM (and acorn26/32), clean from struct user usage.

Revision 1.2 / (download) - annotate - [select for diffs], Wed Mar 18 10:22:24 2009 UTC (15 years ago) by cegger
Branch: MAIN
CVS Tags: yamt-nfs-mp-base8, yamt-nfs-mp-base7, yamt-nfs-mp-base6, yamt-nfs-mp-base5, yamt-nfs-mp-base4, yamt-nfs-mp-base3, nick-hppapmap-base4, nick-hppapmap-base3, nick-hppapmap-base, jymxensuspend-base
Changes since 1.1: +3 -3 lines
Diff to previous 1.1 (colored)

Ansify function definitions w/o arguments. Generated with sed.

Revision 1.1 / (download) - annotate - [select for diffs], Sat Mar 15 10:17:10 2008 UTC (16 years ago) by rearnsha
Branch: MAIN
CVS Tags: yamt-pf42-baseX, yamt-pf42-base4, yamt-pf42-base3, yamt-pf42-base2, yamt-pf42-base, yamt-pf42, yamt-nfs-mp-base2, yamt-nfs-mp-base, yamt-lazymbuf-base15, yamt-lazymbuf-base14, wrstuden-revivesa-base-4, wrstuden-revivesa-base-3, wrstuden-revivesa-base-2, wrstuden-revivesa-base-1, wrstuden-revivesa-base, wrstuden-revivesa, simonb-wapbl-nbase, simonb-wapbl-base, simonb-wapbl, nick-hppapmap-base2, netbsd-5-base, netbsd-5-2-RELEASE, netbsd-5-2-RC1, netbsd-5-2-3-RELEASE, netbsd-5-2-2-RELEASE, netbsd-5-2-1-RELEASE, netbsd-5-2, netbsd-5-1-RELEASE, netbsd-5-1-RC4, netbsd-5-1-RC3, netbsd-5-1-RC2, netbsd-5-1-RC1, netbsd-5-1-5-RELEASE, netbsd-5-1-4-RELEASE, netbsd-5-1-3-RELEASE, netbsd-5-1-2-RELEASE, netbsd-5-1-1-RELEASE, netbsd-5-1, netbsd-5-0-RELEASE, netbsd-5-0-RC4, netbsd-5-0-RC3, netbsd-5-0-RC2, netbsd-5-0-RC1, netbsd-5-0-2-RELEASE, netbsd-5-0-1-RELEASE, netbsd-5-0, netbsd-5, mjf-devfs2-base, matt-nb5-pq3-base, matt-nb5-pq3, matt-nb5-mips64-u2-k2-k4-k7-k8-k9, matt-nb5-mips64-u1-k1-k5, matt-nb5-mips64-premerge-20101231, matt-nb5-mips64-premerge-20091211, matt-nb5-mips64-k15, matt-nb5-mips64, matt-nb4-mips64-k7-u2a-k9b, matt-mips64-base2, matt-armv6-nbase, keiichi-mipv6-nbase, keiichi-mipv6-base, hpcarm-cleanup-nbase, haad-nbase2, haad-dm-base2, haad-dm-base1, haad-dm-base, haad-dm, chris-arm-intr-rework-base7, ad-socklock-base1, ad-audiomp2-base, ad-audiomp2
Branch point for: yamt-nfs-mp, yamt-lazymbuf, nick-hppapmap, matt-armv6, keiichi-mipv6, jym-xensuspend, chris-arm-intr-rework

VFP support.

This form allows you to request diff's between any two revisions of a file. You may select a symbolic revision name using the selection box or you may type in a numeric name using the type-in text box.




CVSweb <webmaster@jp.NetBSD.org>