Up to [cvs.NetBSD.org] / src / sys / arch / i386 / i386
Request diff between arbitrary revisions
Default branch: MAIN
Current tag: MAIN
Revision 1.24 / (download) - annotate - [select for diffs], Fri Apr 20 22:23:24 2012 UTC (12 months, 4 weeks ago) by rmind
Branch: MAIN
CVS Tags: yamt-pagecache-base8,
yamt-pagecache-base7,
yamt-pagecache-base6,
yamt-pagecache-base5,
tls-maxphys-nbase,
tls-maxphys-base,
tls-maxphys,
khorben-n900,
jmcneill-usbmp-base9,
jmcneill-usbmp-base10,
agc-symver-base,
agc-symver,
HEAD
Changes since 1.23: +2 -4
lines
Diff to previous 1.23 (colored)
- Convert x86 MD code, mainly pmap(9) e.g. TLB shootdown code, to use kcpuset(9) and thus replace hardcoded CPU bitmasks. This removes the limitation of maximum CPUs. - Support up to 256 CPUs on amd64 architecture by default. Bug fixes, improvements, completion of Xen part and testing on 64-core AMD Opteron(tm) Processor 6282 SE (also, as Xen HVM domU with 128 CPUs) by Manuel Bouyer.
Revision 1.23 / (download) - annotate - [select for diffs], Thu Apr 19 18:00:35 2012 UTC (13 months ago) by jym
Branch: MAIN
Changes since 1.22: +3 -3
lines
Diff to previous 1.22 (colored)
Set the CR0_AM bit so processes can enable alignment check errors under x86 through PSL_AC bit. ATF test incoming shortly.
Revision 1.22 / (download) - annotate - [select for diffs], Wed Jul 28 17:05:51 2010 UTC (2 years, 9 months ago) by jym
Branch: MAIN
CVS Tags: yamt-pagecache-base4,
yamt-pagecache-base3,
yamt-pagecache-base2,
yamt-pagecache-base,
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,
rmind-uvmplock-nbase,
rmind-uvmplock-base,
netbsd-6-base,
matt-mips64-premerge-20101231,
jym-xensuspend-nbase,
jym-xensuspend-base,
jruoho-x86intr-base,
jruoho-x86intr,
jmcneill-usbmp-pre-base2,
jmcneill-usbmp-base8,
jmcneill-usbmp-base7,
jmcneill-usbmp-base6,
jmcneill-usbmp-base5,
jmcneill-usbmp-base4,
jmcneill-usbmp-base3,
jmcneill-usbmp-base2,
jmcneill-usbmp-base,
jmcneill-audiomp3-base,
jmcneill-audiomp3,
cherry-xenmp-base,
cherry-xenmp,
bouyer-quota2-nbase,
bouyer-quota2-base,
bouyer-quota2
Branch point for: yamt-pagecache,
netbsd-6,
jmcneill-usbmp
Changes since 1.21: +15 -2
lines
Diff to previous 1.21 (colored)
Enable the NX bit feature early in i386 MP trampoline code (do not rely on cpu_init_msrs() to do it). Having NX bit set on a page will raise a #GP on fetch if NXE is not enabled, which can happen early when structures (like idlelwp) are allocated with just rw- rights. NX is enabled with PAE (if host supports it). Exact same issue as for amd64, some weeks ago. Same player, shoot again...
Revision 1.21 / (download) - annotate - [select for diffs], Sat Jul 24 00:45:55 2010 UTC (2 years, 9 months ago) by jym
Branch: MAIN
Changes since 1.20: +8 -2
lines
Diff to previous 1.20 (colored)
Welcome PAE inside i386 current.
This patch is inspired by work previously done by Jeremy Morse, ported by me
to -current, merged with the work previously done for port-xen, together with
additionals fixes and improvements.
PAE option is disabled by default in GENERIC (but will be enabled in ALL in
the next few days).
In quick, PAE switches the CPU to a mode where physical addresses become
36 bits (64 GiB). Virtual address space remains at 32 bits (4 GiB). To cope
with the increased size of the physical address, they are manipulated as
64 bits variables by kernel and MMU.
When supported by the CPU, it also allows the use of the NX/XD bit that
provides no-execution right enforcement on a per physical page basis.
Notes:
- reworked locore.S
- introduce cpu_load_pmap(), used to switch pmap for the curcpu. Due to the
different handling of pmap mappings with PAE vs !PAE, Xen vs native, details
are hidden within this function. This helps calling it from assembly,
as some features, like BIOS calls, switch to pmap_kernel before mapping
trampoline code in low memory.
- some changes in bioscall and kvm86_call, to reflect the above.
- the L3 is "pinned" per-CPU, and is only manipulated by a
reduced set of functions within pmap. To track the L3, I added two
elements to struct cpu_info, namely ci_l3_pdirpa (PA of the L3), and
ci_l3_pdir (the L3 VA). Rest of the code considers that it runs "just
like" a normal i386, except that the L2 is 4 pages long (PTP_LEVELS is
still 2).
- similar to the ci_pae_l3_pdir{,pa} variables, amd64's xen_current_user_pgd
becomes an element of cpu_info (slowly paving the way for MP world).
- bootinfo_source struct declaration is modified, to cope with paddr_t size
change with PAE (it is not correct to assume that bs_addr is a paddr_t when
compiled with PAE - it should remain 32 bits). bs_addrs is now a
void * array (in bootloader's code under i386/stand/, the bs_addrs
is a physaddr_t, which is an unsigned long).
- fixes in multiboot code (same reason as bootinfo): paddr_t size
change. I used Elf32_* types, use RELOC() where necessary, and move the
memcpy() functions out of the if/else if (I do not expect sym and str tables
to overlap with ELF).
- 64 bits atomic functions for pmap
- all pmap_pdirpa access are now done through the pmap_pdirpa macro. It
hides the L3/L2 stuff from PAE, as well as the pm_pdirpa change in
struct pmap (it now becomes a PDP_SIZE array, with or without PAE).
- manipulation of recursive mappings ( PDIR_SLOT_{,A}PTEs ) is done via
loops on PDP_SIZE.
See also http://mail-index.netbsd.org/port-i386/2010/07/17/msg002062.html
No objection raised on port-i386@ and port-xen@R for about a week.
XXX kvm(3) will be fixed in another patch to properly handle both PAE and !PAE
kernel dumps (VA => PA macros are slightly different, and need proper 64 bits
PA support in kvm_i386).
XXX Mixing PAE and !PAE modules may lead to unwanted/unexpected results. This
cannot be solved easily, and needs lots of thinking before being declared
safe (paddr_t/bus_addr_t size handling, PD/PT macros abstractions).
Revision 1.20 / (download) - annotate - [select for diffs], Tue Feb 9 23:09:47 2010 UTC (3 years, 3 months ago) by jym
Branch: MAIN
CVS Tags: yamt-nfs-mp-base9,
uebayasi-xip-base1
Branch point for: rmind-uvmplock
Changes since 1.19: +4 -4
lines
Diff to previous 1.19 (colored)
Use CR0_PE (enable protected mode) instead of hardcoding constant.
Revision 1.19 / (download) - annotate - [select for diffs], Fri Nov 27 03:23:10 2009 UTC (3 years, 5 months ago) by rmind
Branch: MAIN
CVS Tags: uebayasi-xip-base,
matt-premerge-20091211
Branch point for: uebayasi-xip
Changes since 1.18: +3 -3
lines
Diff to previous 1.18 (colored)
- Use uvm_lwp_setuarea() instead of directly setting address to lwp_t::l_addr. - Replace most remaining uses of l_addr with uvm_lwp_getuarea() or lwp_getpcb(). - Amend assembly in ports where it accesses PCB via struct user. - Rename L_ADDR to L_PCB in few places. Reduce sys/user.h inclusions.
Revision 1.18 / (download) - annotate - [select for diffs], Tue Aug 26 13:07:48 2008 UTC (4 years, 8 months ago) by drochner
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,
wrstuden-revivesa-base-4,
wrstuden-revivesa-base-3,
wrstuden-revivesa-base-2,
nick-hppapmap-base4,
nick-hppapmap-base3,
nick-hppapmap-base2,
nick-hppapmap-base,
nick-hppapmap,
netbsd-5-base,
netbsd-5-2-RELEASE,
netbsd-5-2-RC1,
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-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,
jymxensuspend-base,
haad-nbase2,
haad-dm-base2,
haad-dm-base1,
haad-dm-base,
ad-audiomp2-base,
ad-audiomp2
Branch point for: jym-xensuspend
Changes since 1.17: +2 -8
lines
Diff to previous 1.17 (colored)
remove stray .globl declaration for nonexistent cpu_id, from Henning Petersen per PR port-i386/39398 being here, remove some more unneeded .globls
Revision 1.17 / (download) - annotate - [select for diffs], Fri Jun 27 00:41:39 2008 UTC (4 years, 10 months ago) by gmcgarry
Branch: MAIN
CVS Tags: simonb-wapbl-nbase,
simonb-wapbl-base
Branch point for: haad-dm
Changes since 1.16: +11 -8
lines
Diff to previous 1.16 (colored)
Replace lines beginning with assembler-style comments with c-style comments, since '#' can be interpretted as a preprocessor directive. Remove single quote ''' from assembler-style comments, as the preprocessor may ignore everything between them. Fixes compilation with pcc.
Revision 1.16 / (download) - annotate - [select for diffs], Tue May 13 22:39:17 2008 UTC (5 years ago) by ad
Branch: MAIN
CVS Tags: yamt-pf42-base4,
yamt-pf42-base3,
yamt-pf42-base2,
yamt-nfs-mp-base2,
wrstuden-revivesa-base-1,
wrstuden-revivesa-base,
hpcarm-cleanup-nbase
Branch point for: simonb-wapbl
Changes since 1.15: +7 -4
lines
Diff to previous 1.15 (colored)
Be more conservative during AP startup. Don't let the AP access the lapic or do any setup until the boot processor has finished the init sequence, and add a few more delays.
Revision 1.15 / (download) - annotate - [select for diffs], Sun May 11 22:26:59 2008 UTC (5 years ago) by ad
Branch: MAIN
Changes since 1.14: +3 -3
lines
Diff to previous 1.14 (colored)
- Decouple the APIC ID from cpu_info[]. - Probe TSC frequency on each AP when hatching.
Revision 1.14 / (download) - annotate - [select for diffs], Mon Apr 28 20:23:24 2008 UTC (5 years ago) by martin
Branch: MAIN
Branch point for: wrstuden-revivesa
Changes since 1.13: +2 -9
lines
Diff to previous 1.13 (colored)
Remove clause 3 and 4 from TNF licenses
Revision 1.13 / (download) - annotate - [select for diffs], Tue Dec 11 23:06:14 2007 UTC (5 years, 5 months ago) by lukem
Branch: MAIN
CVS Tags: yamt-pf42-baseX,
yamt-pf42-base,
yamt-nfs-mp-base,
yamt-lazymbuf-base15,
yamt-lazymbuf-base14,
yamt-kmem-base3,
vmlocking2-base3,
nick-net80211-sync-base,
nick-net80211-sync,
mjf-devfs-base,
matt-armv6-nbase,
matt-armv6-base,
keiichi-mipv6-nbase,
keiichi-mipv6-base,
keiichi-mipv6,
hpcarm-cleanup-base,
bouyer-xeni386-nbase,
bouyer-xeni386-base,
ad-socklock-base1
Branch point for: yamt-pf42,
yamt-nfs-mp,
mjf-devfs2
Changes since 1.12: +4 -2
lines
Diff to previous 1.12 (colored)
Use __KERNEL_RCSID(). For these .S files, the following style was adopted, a la .C files and <sys/cdefs.h>: * move <machine/asm.h> to the top * use __KERNEL_RCSID() immediately after it
Revision 1.12 / (download) - annotate - [select for diffs], Wed Nov 14 14:45:12 2007 UTC (5 years, 6 months ago) by ad
Branch: MAIN
CVS Tags: yamt-kmem-base2,
yamt-kmem-base,
vmlocking2-base2,
vmlocking2-base1,
vmlocking-nbase,
reinoud-bufcleanup-nbase,
reinoud-bufcleanup-base,
jmcneill-pm-base,
cube-autoconf-base,
cube-autoconf,
bouyer-xenamd64-base2,
bouyer-xenamd64-base
Branch point for: yamt-kmem,
vmlocking2,
bouyer-xeni386
Changes since 1.11: +2 -3
lines
Diff to previous 1.11 (colored)
Nit.
Revision 1.11 / (download) - annotate - [select for diffs], Thu Oct 18 15:28:35 2007 UTC (5 years, 7 months ago) by yamt
Branch: MAIN
CVS Tags: jmcneill-base
Branch point for: mjf-devfs
Changes since 1.10: +9 -1
lines
Diff to previous 1.10 (colored)
merge yamt-x86pmap branch. - reduce differences between amd64 and i386. notably, share pmap.c between them. it makes several i386 pmap improvements available to amd64, including tlb shootdown reduction and bug fixes from Stephan Uphoff. - implement deferred pmap switching for amd64. - remove LARGEPAGES option. always use large pages if available. also, make it work on amd64.
Revision 1.10 / (download) - annotate - [select for diffs], Wed Oct 17 19:54:46 2007 UTC (5 years, 7 months ago) by garbled
Branch: MAIN
CVS Tags: yamt-x86pmap-base4
Changes since 1.9: +1 -1
lines
Diff to previous 1.9 (colored)
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.
Revision 1.9 / (download) - annotate - [select for diffs], Thu May 17 14:51:21 2007 UTC (6 years ago) by yamt
Branch: MAIN
CVS Tags: yamt-x86pmap-base3,
yamt-x86pmap-base2,
yamt-x86pmap-base,
vmlocking-base,
ppcoea-renovation-base,
nick-csl-alignment-base5,
nick-csl-alignment-base,
nick-csl-alignment,
mjf-ufs-trans-base,
matt-mips64-base,
matt-mips64,
hpcarm-cleanup
Branch point for: yamt-x86pmap,
matt-armv6,
jmcneill-pm,
bouyer-xenamd64
Changes since 1.8: +5 -5
lines
Diff to previous 1.8 (colored)
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.
Revision 1.8 / (download) - annotate - [select for diffs], Sun Dec 11 12:17:41 2005 UTC (7 years, 5 months ago) by christos
Branch: MAIN
CVS Tags: yamt-uio_vmspace-base5,
yamt-uio_vmspace,
yamt-splraiseipl-base5,
yamt-splraiseipl-base4,
yamt-splraiseipl-base3,
yamt-splraiseipl-base2,
yamt-splraiseipl-base,
yamt-splraiseipl,
yamt-pdpolicy-base9,
yamt-pdpolicy-base8,
yamt-pdpolicy-base7,
yamt-pdpolicy-base6,
yamt-pdpolicy-base5,
yamt-pdpolicy-base4,
yamt-pdpolicy-base3,
yamt-pdpolicy-base2,
yamt-pdpolicy-base,
yamt-pdpolicy,
yamt-idlelwp-base8,
wrstuden-fixsa-newbase,
wrstuden-fixsa-base-1,
wrstuden-fixsa-base,
wrstuden-fixsa,
thorpej-atomic-base,
thorpej-atomic,
simonb-timecounters-base,
simonb-timecounters,
simonb-timcounters-final,
rpaulo-netinet-merge-pcb-base,
rpaulo-netinet-merge-pcb,
reinoud-bufcleanup,
post-newlock2-merge,
peter-altq-base,
peter-altq,
newlock2-nbase,
newlock2-base,
newlock2,
netbsd-4-base,
netbsd-4-0-RELEASE,
netbsd-4-0-RC5,
netbsd-4-0-RC4,
netbsd-4-0-RC3,
netbsd-4-0-RC2,
netbsd-4-0-RC1,
netbsd-4-0-1-RELEASE,
netbsd-4-0,
netbsd-4,
matt-nb4-arm-base,
matt-nb4-arm,
gdamore-uart-base,
gdamore-uart,
elad-kernelauth-base,
elad-kernelauth,
chap-midi-nbase,
chap-midi-base,
chap-midi,
ad-audiomp-base,
ad-audiomp,
abandoned-netbsd-4-base,
abandoned-netbsd-4
Branch point for: yamt-idlelwp,
vmlocking,
ppcoea-renovation,
mjf-ufs-trans
Changes since 1.7: +1 -1
lines
Diff to previous 1.7 (colored)
merge ktrace-lwp.
Revision 1.7 / (download) - annotate - [select for diffs], Mon Nov 7 11:42:34 2005 UTC (7 years, 6 months ago) by yamt
Branch: MAIN
CVS Tags: yamt-readahead-pervnode,
yamt-readahead-perfile,
yamt-readahead-base3,
yamt-readahead-base2,
yamt-readahead-base,
yamt-readahead,
ktrace-lwp-base
Changes since 1.6: +2 -3
lines
Diff to previous 1.6 (colored)
some assym cleanup. - move copyin and friends from locore.S to their own file, copy.S. share it between i386 and xen. - defparam KERNBASE and kill KERNBASE_LOCORE hack. - add more symbols to assym.h and use it where appropriate.
Revision 1.6 / (download) - annotate - [select for diffs], Fri Feb 13 11:36:14 2004 UTC (9 years, 3 months ago) by wiz
Branch: MAIN
CVS Tags: yamt-vop-base3,
yamt-vop-base2,
yamt-vop-base,
yamt-vop,
yamt-km-base4,
yamt-km-base3,
yamt-km-base2,
yamt-km-base,
yamt-km,
thorpej-vnode-attr-base,
thorpej-vnode-attr,
netbsd-3-base,
netbsd-3-1-RELEASE,
netbsd-3-1-RC4,
netbsd-3-1-RC3,
netbsd-3-1-RC2,
netbsd-3-1-RC1,
netbsd-3-1-1-RELEASE,
netbsd-3-1,
netbsd-3-0-RELEASE,
netbsd-3-0-RC6,
netbsd-3-0-RC5,
netbsd-3-0-RC4,
netbsd-3-0-RC3,
netbsd-3-0-RC2,
netbsd-3-0-RC1,
netbsd-3-0-3-RELEASE,
netbsd-3-0-2-RELEASE,
netbsd-3-0-1-RELEASE,
netbsd-3-0,
netbsd-3,
netbsd-2-base,
netbsd-2-1-RELEASE,
netbsd-2-1-RC6,
netbsd-2-1-RC5,
netbsd-2-1-RC4,
netbsd-2-1-RC3,
netbsd-2-1-RC2,
netbsd-2-1-RC1,
netbsd-2-1,
netbsd-2-0-base,
netbsd-2-0-RELEASE,
netbsd-2-0-RC5,
netbsd-2-0-RC4,
netbsd-2-0-RC3,
netbsd-2-0-RC2,
netbsd-2-0-RC1,
netbsd-2-0-3-RELEASE,
netbsd-2-0-2-RELEASE,
netbsd-2-0-1-RELEASE,
netbsd-2-0,
netbsd-2,
matt-timespec,
kent-audio2-base,
kent-audio2,
kent-audio1-beforemerge,
kent-audio1-base,
kent-audio1
Branch point for: yamt-lazymbuf
Changes since 1.5: +2 -2
lines
Diff to previous 1.5 (colored)
Uppercase CPU, plural is CPUs.
Revision 1.5 / (download) - annotate - [select for diffs], Sat Aug 9 08:58:50 2003 UTC (9 years, 9 months ago) by martin
Branch: MAIN
Changes since 1.4: +2 -2
lines
Diff to previous 1.4 (colored)
KERNBASE -> KERNBASE_LOCORE (make it compile again)
Revision 1.4 / (download) - annotate - [select for diffs], Thu Jun 26 16:48:18 2003 UTC (9 years, 10 months ago) by drochner
Branch: MAIN
Branch point for: ktrace-lwp
Changes since 1.3: +2 -2
lines
Diff to previous 1.3 (colored)
remove unneeded cpu_feature declaration
Revision 1.3 / (download) - annotate - [select for diffs], Tue Apr 8 23:48:49 2003 UTC (10 years, 1 month ago) by thorpej
Branch: MAIN
Changes since 1.2: +2 -2
lines
Diff to previous 1.2 (colored)
Use PAGE_SIZE rather than NBPG.
Revision 1.2 / (download) - annotate - [select for diffs], Sat Mar 1 16:36:37 2003 UTC (10 years, 2 months ago) by fvdl
Branch: MAIN
Changes since 1.1: +6 -4
lines
Diff to previous 1.1 (colored)
Follow the spec more closely, and do an ljmp immediately after enabling protected mode, not several instructions afterwards.
Revision 1.1 / (download) - annotate - [select for diffs], Fri Nov 22 15:01:18 2002 UTC (10 years, 5 months ago) by fvdl
Branch: MAIN
CVS Tags: nathanw_sa_before_merge,
nathanw_sa_base,
gmcgarry_ucred_base,
gmcgarry_ucred,
gmcgarry_ctxsw_base,
gmcgarry_ctxsw,
fvdl_fs64_base
Branch point for: nathanw_sa
.s -> .S rename. New files: vector.S and spl.S, they have been split off from locore.s, plus parts of isa/vector.s and isa/icu.s