Commit Graph

93 Commits

Author SHA1 Message Date
matt
023f325fbf Add a machdep.cpu_arch sysctl 2013-02-03 15:57:09 +00:00
matt
cd300de5a1 Add simple sysctls for cpu_id, fpu_id, neon_present, simd_present,
simdex_present.
Add struct sysctls to return the isar, mmfr, pfr, and mvfr sets.
2013-01-31 22:34:26 +00:00
matt
cb72f6574f 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.
2012-12-05 19:05:45 +00:00
msaitoh
335564ef1d Use snprintf() instead of sprintf(). 2012-11-30 08:15:45 +00:00
msaitoh
1ba55f16aa s/,/;/ 2012-11-30 08:12:27 +00:00
skrll
08a4aba755 C99 types 2012-11-12 18:00:34 +00:00
matt
ee6cde04ff Don't use an asm in pmap_activate to update the TTBR, use cpu_setttb instead
but add a second argument to it to indicate whether the TLB/caches need to be
flushed.  Default cortex to pmap_needs_fixup = 1.  But check the MMFR3 field
to see if the fixed can be skipped.
Use a cf_flag bit 0 to indicate whether the A9 L2 cache should disable (bit 0 = 1)
or enabeld (bit = 0).

With these changes, the A9 MMU can use traverse caches to do MMU tablewalks
Also, make sure all memory has the shareable bit for the A9.
2012-09-22 00:33:36 +00:00
matt
ce2db8d32f Switch cortex_a9 back to need_ptesync = 1
Add code to disable the L2 cache on cortex-a9 (for now).
Add evcnt for all the fault types.
Move cache info in a structure and have one for the pcache and one for scache.
Probe L1/L2 caches properly for ARMv7
2012-09-07 11:48:59 +00:00
matt
977dafe551 Use new armv7 CP15 register to print out cache types.
If the cpu_cc_freq is set, report it.
Add macros to make inlines for reading/writing co-processor registers.
2012-08-29 17:44:25 +00:00
matt
d33dd4cbcd Use device_t 2012-08-14 20:39:49 +00:00
matt
c58ada7b56 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.]
2012-08-12 05:05:47 +00:00
matt
e07e1443a1 Refresh cortex cpus 2012-07-14 07:55:28 +00:00
skrll
5a97b2bf96 Remove the ARM1156T2 bloat - it only has an MPU. Prompted by matt@ 2012-05-20 18:08:05 +00:00
skrll
e75558347a Add the ARM1156T2-S 2012-05-20 17:58:32 +00:00
skrll
66190ce721 Add the 'Z' to the 1176 cpu product name.
ok matt@
2012-05-20 17:56:30 +00:00
bsh
4a303aca68 add MPCore to CPU-ID table
add branch predict bit to arm11_options
2011-03-10 08:06:27 +00:00
kiyohara
4f2a5779d9 Add support Marvell Sheeva Core and SoC. (Orion/Kirkwood)
Discovery Innovation not yet.
2010-10-02 05:37:58 +00:00
matt
8497a9555d Fix cache probing on Cortex. Add missing CORTEX dependency in cpu.c 2010-06-19 20:42:43 +00:00
matt
257eed1c8d Fix c&p error. 2010-06-19 19:49:24 +00:00
matt
30ce2039ad Cleanup the armv7 changes. Add ARM_ARCH_7. Use CPU_CORTEX instead of
CPU_CORTEXA8 everywhere since there more types of Cortex than just the A8.
CPU_CORTEXA8 still exists but causes CPU_CORTEX to be defined.
Add CPU_CORTEXA9 as well.  Use .arch armv7a to get us the isb/dsb
instructions.

Test booted to root device prompt on a Beagleboard.
All ARM kernels successfully test built.
2010-06-19 19:44:57 +00:00
jmcneill
5ddffda4bf PR port-arm/43299: Support added for igepv2/cortexa8/omap3530
Apply patch from PR, with build fixes. ok skrll, matt
2010-06-16 22:06:53 +00:00
mrg
07b833621b rename a local cpu_name structure member to avoid potential conflict
with <sys/cpu.h>'s.
2010-01-23 15:58:13 +00:00
matt
3f7f9e3161 Fix some missing things for CPU_ID_FA526. 2008-10-25 18:15:19 +00:00
matt
8e41274d19 Add entry for FA526. 2008-10-24 13:23:45 +00:00
matt
736e9962f0 Add Cortex cpus 2008-10-21 19:03:24 +00:00
matt
825088eda6 Merge kernel changes in matt-armv6 to HEAD. 2008-04-27 18:58:43 +00:00
rearnsha
b45167b608 VFP support. 2008-03-15 10:16:43 +00:00
garbled
d974db0ada Merge the ppcoea-renovation branch to HEAD.
This branch was a major cleanup and rototill of many of the various OEA
cpu based PPC ports that focused on sharing as much code as possible
between the various ports to eliminate near-identical copies of files in
every tree.  Additionally there is a new PIC system that unifies the
interface to interrupt code for all different OEA ppc arches.  The work
for this branch was done by a variety of people, too long to list here.

TODO:
bebox still needs work to complete the transition to -renovation.
ofppc still needs a bunch of work, which I will be looking at.
ev64260 still needs to be renovated
amigappc was not attempted.

NOTES:
pmppc was removed as an arch, and moved to a evbppc target.
2007-10-17 19:52:51 +00:00
yamt
f03010953f merge yamt-idlelwp branch. asked by core@. some ports still needs work.
from doc/BRANCHES:

	idle lwp, and some changes depending on it.

	1. separate context switching and thread scheduling.
	   (cf. gmcgarry_ctxsw)
	2. implement idle lwp.
	3. clean up related MD/MI interfaces.
	4. make scheduler(s) modular.
2007-05-17 14:51:11 +00:00
christos
87f8f1a9a7 Scott Allan in http://mail-index.netbsd.org/port-arm/2006/07/31/0000.html
Patch to add support for ARM9E
2007-01-06 00:50:54 +00:00
christos
1e1acd26ce From Scott Alan in http://mail-index.netbsd.org/port-arm/2006/07/26/0000.html
identify_arm_cpu() prints out a helpful message when it detects that you're
trying to run on a CPU that you didn't configure for.  Unfortunately, the
check for class_option being NULL is backward, so it either won't print the
class_option, or it will try to dereference a NULL.  The patch just flips the
!= NULL to be == NULL.
2007-01-06 00:37:28 +00:00
drochner
b68c2aadca use km_alloc to get wired kernel memory for kernel stacks
of idle processes for secondary CPUs
(affects the MULTIPROCESSOR case only - does this exist?)
(untested)
2006-03-15 18:31:11 +00:00
christos
95e1ffb156 merge ktrace-lwp. 2005-12-11 12:16:03 +00:00
nonaka
c678505909 Added i80219. 2005-07-20 14:38:11 +00:00
bsh
c61364bf3e The first step to support Intel PXA270.
kernel config option CPU_XSCALE_PXA2X0 is now obsoleted by
CPU_XSCALE_PXA250 and CPU_XSCALE_PXA270.  If both of them are defined,
CPU is determined run-time.
2005-07-04 00:42:36 +00:00
rearnsha
80a3b6d023 Very basic support for the ARM1136.
This code takes no advantage of any 'new' features provided by
architecture 6 devices (such as physically tagged caches or new
MMU features), and basically runs the chip in a 'legacy v5' mode.
2005-06-03 15:55:55 +00:00
rearnsha
46a854572c Add support for arm1026ej-s. 2005-05-10 13:02:55 +00:00
bsh
018ab5b974 distinguish PXA255/26x from PXA2[15]0 in CPU attach message 2004-04-14 04:01:49 +00:00
wiz
d20841bb64 Uppercase CPU, plural is CPUs. 2004-02-13 11:36:08 +00:00
chris
25c741b8a6 Fix up some unitialised variables. 2003-10-26 23:11:15 +00:00
rearnsha
ec2b5e2dfd Support for ARM10E class devices. 2003-09-06 09:42:12 +00:00
mycroft
b715eaff3c Recognize some TI processors -- not that you'd want to use them. 2003-09-03 02:07:07 +00:00
martin
d505b18964 Make sure to include opt_foo.h if a defflag option FOO is used. 2003-06-23 11:00:59 +00:00
ichiro
00eb02e3da support IXP425 Intel Network Processor
running on BigEndian
2003-05-23 00:57:23 +00:00
thorpej
b43b1645a2 Use aprint*(). 2003-04-29 01:07:30 +00:00
rjs
ce385ae9b3 Add CPU IDs for PXA B2 and C0 steppings. 2003-02-14 16:00:33 +00:00
wiz
5e442fbbdd specified, not specifed. 2003-01-06 12:38:47 +00:00
chs
4b2625143d change uvm_uarea_alloc() to indicate whether the returned uarea is already
backed by physical pages (ie. because it reused a previously-freed one),
so that we can skip a bunch of useless work in that case.
this fixes the underlying problem behind PR 18543, and also speeds up fork()
quite a bit (eg. 7% on my pc, 1% on my ultra2) when we get a cache hit.
2002-11-17 08:32:43 +00:00
chris
a28f4c93a2 Fix arm kernel build breaks for non multiprocessor systems. 2002-10-13 21:14:28 +00:00
bjh21
75248cc7a1 It appears that MI code requires ci_cpuid to be the CPU number of the CPU
in question, whereas the ARM code was using it to hold the model
identification.  To fix this, rename:

ci_cpuid -> ci_arm_cpuid
ci_cputype -> ci_arm_cputype (for consistency)
ci_cpurev -> ci_arm_cpurev (ditto)
ci_cpunum -> ci_cpuid

This makes top(1) give correct CPU numbers in its "STATE" column (all 0 for
now).
2002-10-13 12:24:57 +00:00