Home | History | Annotate | Download | only in conf
History log of /src/sys/arch/xen/conf/Makefile.xen
RevisionDateAuthorComments
 1.50  02-May-2020  bouyer Introduce Xen PVH support in GENERIC.
This is compiled in with
options XENPVHVM
x86 changes:
- add Xen section and xen pvh entry points to locore.S. Set vm_guest
to VM_GUEST_XENPVH in this entry point.
Most of the boot procedure (especially page table setup and switch to
paged mode) is shared with native.
- change some x86_delay() to delay_func(), which points to x86_delay() for
native/HVM, and xen_delay() for PVH

Xen changes:
- remove Xen bits from init_x86_64_ksyms() and init386_ksyms()
and move to xen_init_ksyms(), used for both PV and PVH
- set ISA no-legacy-devices property for PVH
- factor out code from Xen's cpu_bootconf() to xen_bootconf()
in xen_machdep.c
- set up a specific pvh_consinit() which starts with printk()
(which uses a simple hypercall that is available early) and switch to
xencons when we can use pmap_kenter_pa().
 1.49  25-Apr-2020  bouyer Merge the bouyer-xenpvh branch, bringing in Xen PV drivers support under HVM
guests in GENERIC.
Xen support can be disabled at runtime with
boot -c
disable hypervisor
 1.48  02-Feb-2019  cherry branches: 1.48.10;
Switch NetBSD/xen to use XEN api tag RELEASE-4.11.1

The headers for this api are in sys/external/mit/xen-include-public/dist/
 1.47  22-Sep-2018  rin - Determine KERN_AS automatically depending on whether OPT_MODULAR is
set or not, in the same way as libcompat.

- Specify OPT_MODULAR in the port Makefile instead of KERN_AS.

Now, KERN_AS=library is used for kernels without module(7) for all ports.

OK christos
 1.46  02-Jun-2018  christos branches: 1.46.2;
disable sanitizers and relro
 1.45  21-Jan-2018  maxv branches: 1.45.2;
Fix the build, on Xen too amd64_trap.S needs to be compiled independently.
 1.44  12-Dec-2017  pgoyette Remove trailing '&&' from shell script to fix the build.

From a-rin on https://gist.github.com/a-rin/940abb80d45eb7ac75b8110b8466f149
 1.43  10-Dec-2017  christos - Allow multiple .BEGIN targets
- Make their protection consistent
 1.42  09-Aug-2017  maxv Remove several dead entries from the x86 makefiles. Looks like people (me
included) regularly forget to take care of this.
 1.41  02-Feb-2017  maxv branches: 1.41.6;
Increase KERNTEXTOFF from 1MB to 2MB on amd64. [1MB; 2MB[ is now handled
by UVM, so there is no physical loss.

On amd64 we always remap the kernel text with 2MB pages, and because of the
1MB start address we were forced to map [0MB; 2MB[ inside the first large
page. The problem is, the lower half is used by UVM to allocate physical
pages, and it is possible that some of these could be used by userland. We
could end up with userland-controllable data mapped into the kernel text on
a privileged page, which is far from being a good idea from a security pov.

I am not fixing i386 yet, because the large page size depends on PAE, and
we probably don't want to have a text located at 4MB on low-memory systems.

(note: I didn't introduce this issue, it was already there when I came in)
 1.40  24-Aug-2015  uebayasi branches: 1.40.2; 1.40.4;
Define ${LINKSCRIPT} in one place.
 1.39  18-Aug-2015  uebayasi ${KERN_LDSCRIPT} -> ${KERNLDSCRIPT}
 1.38  15-Nov-2014  uebayasi branches: 1.38.2;
Use LINKSCRIPT.
 1.37  20-Jul-2014  joerg Restrict -mno-fp-ret-in-387 to GCC.
 1.36  17-Jul-2014  bouyer Sync DEFCOPTS and CFLAGS with i386 and amd64 counterparts.
Especially -fno-omit-frame-pointer
 1.35  19-Dec-2011  joerg branches: 1.35.6; 1.35.20;
Move Clang-warning flags for ah_regdomain.c into sys/conf, they are
platform independent. Use the selective -Wno-* flags instead of
-Wno-error.
 1.34  17-Aug-2011  joerg branches: 1.34.2; 1.34.6;
Works with clang's integrated assembler now.
 1.33  30-May-2011  joerg Disable -Werror for ah_regdomain.c if building with clang as workaround
for http://llvm.org/bugs/show_bug.cgi?id=10030.
 1.32  20-May-2011  joerg LLVM's assembler parser doesn't support .code32 yet, so disable it as
needed.
 1.31  12-Jan-2011  joerg branches: 1.31.2;
Allow use of traditional CPP to be set on a per platform base in sys.mk.
Honour this for dependency processing in bsd.dep.mk. Switch i386 and
amd64 assembly to use ISO C90 preprocessor concat and drop the
-traditional-cpp on this platform.
 1.30  06-Jul-2010  mrg remove almost all the ability to build netbsd with an a.out target.
we're ELF now, and there are many missing checks against OBJECT_FMT.
if we ever consider switching, the we can figure out what new ones
we need but for now it's just clutter.

this doesn't remove any of the support for exec_aout or any actually
required-for-boot a.out support, only the ability to build a netbsd
release in a.out format. ie, most of this code has been dead for
over a decade.

i've tested builds on vax, amd64, i386, mac68k, macppc, sparc, atari,
amiga, shark, cats, dreamcast, landisk, mmeye and x68k. this covers
the 5 MACHINE_ARCH's affected, and all the other arch code touched.
it also includes some actual run-time testing of sparc, i386 and
shark, and i performed binary comparison upon amiga and x68k as well.


some minor details relevant:
- move shlib.[ch] from ld.aout_so into ldconfig proper, and cut them
down to only the parts ldconfig needs
- remove various unused source files
- switch amiga bootblocks to using elf2bb.h instead of aout2bb.h
 1.29  25-Nov-2009  tron branches: 1.29.2; 1.29.4;
Enable SSP (Stack Smash Protection) in x86 kernels by default (except
in i386 *TINY kernels). The NetBSD/i386 "ALL" kernel is unconditionally
compiled with SSP enabled.

Change approved by the core team.
 1.28  11-Dec-2008  alc branches: 1.28.2;
Clean-up makefile stub used to include in the build the binary HAL object
 1.27  30-Oct-2008  joerg branches: 1.27.2; 1.27.8;
New assym.h dependency.
 1.26  25-Jan-2008  joerg branches: 1.26.6; 1.26.10; 1.26.16; 1.26.18;
Refactor in_cksum/in4_cksum/in6_cksum implementations:
- All three functions are included in the kernel by default.
They call a backend function cpu_in_cksum after possibly
computing the checksum of the pseudo header.
- cpu_in_cksum is the core to implement the one-complement sum.
The default implementation is moderate fast on most platforms
and provides a 32bit accumulator with 16bit addends for L32 platforms
and a 64bit accumulator with 32bit addends for L64 platforms.
It handles edge cases like very large mbuf chains (could happen with
native IPv6 in the future) and provides a good base for new native
implementations.
- Modify i386 and amd64 assembly to use the new interface.

This disables the MD implementations on !x86 until the conversion is
done. For Alpha, the portable version is faster.
 1.25  17-Jan-2008  lukem Remove unnecessary references to config_time.h.
 1.24  11-Jan-2008  bouyer Merge the bouyer-xeni386 branch to head, at tag bouyer-xeni386-merge1 (the
branch is still active and will see i386PAE support developement).
Sumary of changes:
- switch xeni386 to the x86/x86/pmap.c, and the xen/x86/x86_xpmap.c
pmap bootstrap.
- merge back most of xen/i386/ to i386/i386
- change the build to reduce diffs between i386 and amd64 in file locations
- remove include files that were identical to the i386/amd64 counterparts,
the build will find them via the xen-ma/machine link.
 1.23  03-Jan-2008  joerg Add assym.h dependency.
 1.22  02-Jan-2008  joerg Add some missing dependencies on assym.h.
 1.21  01-Jan-2008  yamt add some dependencies on assym.h.
 1.20  22-Nov-2007  bouyer branches: 1.20.6;
Pull up the bouyer-xenamd64 branch to HEAD. This brings in amd64 support
to NetBSD/Xen, both Dom0 and DomU.
 1.19  09-Feb-2007  ad branches: 1.19.6; 1.19.22; 1.19.24; 1.19.28; 1.19.30;
Merge newlock2 to head.
 1.18  28-May-2006  pavel branches: 1.18.6;
Give Xen its own linker script, which does not set the physical load address
specially. In Xen, the system is already in virtual mode when the kernel is
started, so the old behavior of setting physical address to virtual address
was actually correct, and the previous change made NetBSD/Xen kernels
unbootable.

Pointed out, explained and tested by <bouyer>.
 1.17  14-May-2006  elad branches: 1.17.2;
integrate kauth.
 1.16  04-Apr-2006  gdamore Convert existing ath users to new Makefile, except for amd64, which needs
the rules due to needing to conditionally postprocess the HAL object file.

Macppc needs a a non-ELF HAL (EABI) object, so take care of that by default
in the atheros include file.
 1.15  02-Apr-2006  gdamore Reorganize ath layout as requested by sam@ and suggested by dyoung@ in
http://mail-index.netbsd.org/tech-net/2006/03/15/0000.html.

The new layout almost precisely matches FreeBSD, and should make
future imports much easier.

At the same time, import the current 0.9.16.16 HAL from FreeBSD. According
to sam@, this is the proper version we should be using.
 1.14  08-Mar-2006  dyoung branches: 1.14.2;
config(8) creates opt_ah.h, no need to do so here.
 1.13  03-Mar-2006  he branches: 1.13.2; 1.13.4;
Before symlinking opt_ah.h, make sure the target doesn't already exist.
This fixes a build problem with UPDATE set.
 1.12  11-Dec-2005  christos branches: 1.12.4; 1.12.6;
merge ktrace-lwp.
 1.11  08-Nov-2005  yamt copy.S should belong to MD_SFILES, not MD_CFILES.
 1.10  07-Nov-2005  yamt 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.
 1.9  22-Jun-2005  dyoung branches: 1.9.2;
Resolve conflicts in importation of 18-May-2005 ath(4) / net80211(9)
from FreeBSD. Introduce compatibility shims (sys/dev/ic/ath_netbsd.[ch],
sys/net80211/ieee80211_netbsd.[ch]). Update drivers (an, atu, atw,
awi, ipw, iwi, rtw, wi) for the new net80211(9) API.
 1.8  19-Jun-2005  chs copy the athhal glue from Makefile.i386.
 1.7  07-Jun-2005  sjg Sometimes .BEGIN target is not wanted - eg in sub-make's.
 1.6  31-May-2005  christos s/GENASSYM/GENASSYM_CONF/ so we can use "GENASSYM" as the program name.
 1.5  21-Jun-2004  jmc branches: 1.5.2; 1.5.14;
Ignore errors on some rm -rf's for platforms that aren't quite
POSIX compliant
and return errors on r/o source (FreeBSD) for -rf. Fixes PR#25022
 1.4  04-Jun-2004  thorpej Add the %MAKEOPTIONSAPPEND token at the end of the file, after the
common Makefile.kern.inc has been included.
 1.3  14-May-2004  cl use relative links: using $S fails if $S is relative to another dir
than the one where it's used
 1.2  12-May-2004  cl ``build.sh -m xen-i386 release'' now builds a release for NetBSD/xen
for i386. The resulting release consists of:
- NetBSD/xen for i386 kernel, loader and docuemntation
- NetBSD/i386 userland sets
 1.1  11-Mar-2004  cl branches: 1.1.2;
Add port to the Xen virtual machine monitor.
(see http://www.cl.cam.ac.uk/Research/SRG/netos/xen/)
 1.1.2.2  22-Jun-2004  tron branches: 1.1.2.2.2;
Pull up revision 1.5 (requested by jmc in ticket #531):
Ignore errors on some rm -rf's for platforms that aren't quite
POSIX compliant
and return errors on r/o source (FreeBSD) for -rf. Fixes PR#25022
 1.1.2.1  22-May-2004  he Pull up revisions 1.2-1.3 (requested by cl in ticket #337):
Upgrade xen support:
- add block device driver
- network device driver bug fixes
- support for vga/keyboard/mouse
- support for domain0 operations
- fix /dev/mem and i386_iopl, reboot, event dispatch
- fix clock support, cpu speed report, lazy fpu switching
- add xen12load loader
- sys/arch/xen parts of build.sh release support
[cl, ticket #337]
 1.1.2.2.2.1  06-Feb-2005  jmc Pull up patch (requested by martti in ticket #1086)
Move ipf to sys/dist/ipf and sync w. trunk
 1.5.14.1  29-Mar-2006  tron Apply patch (requested by bouyer in ticket #1231):
Add support for ath at pci for XEN domain0.
 1.5.2.5  10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.5.2.4  21-Sep-2004  skrll Fix the sync with head I botched.
 1.5.2.3  18-Sep-2004  skrll Sync with HEAD.
 1.5.2.2  03-Aug-2004  skrll Sync with HEAD
 1.5.2.1  21-Jun-2004  skrll file Makefile.xen was added on branch ktrace-lwp on 2004-08-03 10:43:10 +0000
 1.9.2.5  04-Feb-2008  yamt sync with head.
 1.9.2.4  21-Jan-2008  yamt sync with head
 1.9.2.3  07-Dec-2007  yamt sync with head
 1.9.2.2  26-Feb-2007  yamt sync with head.
 1.9.2.1  21-Jun-2006  yamt sync with head.
 1.12.6.2  01-Jun-2006  kardel Sync with head.
 1.12.6.1  22-Apr-2006  simonb Sync with head.
 1.12.4.1  09-Sep-2006  rpaulo sync with head
 1.13.4.1  19-Apr-2006  elad sync with head - hopefully this will work
 1.13.2.3  26-Jun-2006  yamt sync with head.
 1.13.2.2  11-Apr-2006  yamt sync with head
 1.13.2.1  13-Mar-2006  yamt sync with head.
 1.14.2.1  24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.17.2.1  19-Jun-2006  chap Sync with head.
 1.18.6.1  28-Jan-2007  ad xen MD changes.
 1.19.30.2  18-Feb-2008  mjf Sync with HEAD.
 1.19.30.1  08-Dec-2007  mjf Sync with HEAD.
 1.19.28.2  19-Nov-2007  bouyer Get rid of arch/xenamd64, step 2: move xenamd64/include to xen/include/amd64
 1.19.28.1  19-Nov-2007  bouyer Get rid of arch/xenamd64, step 1: empty xenamd64/conf
- move xenamd64/conf/std.xen to amd64/conf/
- define arch to amd64 amd64/conf/std.xen, and i386 in xen/conf/std.xen
(machine is xen)
- enclose content of amd64/conf/files.amd64 and i386/conf/files.i386 in
ifndef xen/endif, so it can be transparently inclued for xen kernels
- support MACHINE_ARCH=x86_64 in xen/conf/Makefile*
 1.19.24.2  23-Mar-2008  matt sync with HEAD
 1.19.24.1  09-Jan-2008  matt sync with HEAD
 1.19.22.1  27-Nov-2007  joerg Sync with HEAD. amd64 Xen support needs testing.
 1.19.6.1  03-Dec-2007  ad Sync with HEAD.
 1.20.6.7  19-Jan-2008  bouyer Sync with HEAD
 1.20.6.6  10-Jan-2008  bouyer Change xeni386 build to match xenamd64:
- machine/ points to xen/include/i386
- remove includes that were identical to the i386/include/ ones; the build
will find them though the xen-ma/machine link.
- include xen files using xen/ not machine/
 1.20.6.5  09-Jan-2008  bouyer Merge Xen suport in i386/i386/spl.S.
 1.20.6.4  09-Jan-2008  bouyer Merge Xen support back to i386/i386/vector.S
 1.20.6.3  08-Jan-2008  bouyer Sync with HEAD
 1.20.6.2  06-Jan-2008  bouyer Merge needed changes to genassym.cf and locore.S for xeni386 back to
arch/i386. Switch xeni386 to use the arch/i386 cpu.h.
 1.20.6.1  02-Jan-2008  bouyer Sync with HEAD
 1.26.18.1  19-Jan-2009  skrll Sync with HEAD.
 1.26.16.1  13-Dec-2008  haad Update haad-dm branch to haad-dm-base2.
 1.26.10.3  11-Aug-2010  yamt sync with head.
 1.26.10.2  11-Mar-2010  yamt sync with head
 1.26.10.1  04-May-2009  yamt sync with head.
 1.26.6.1  17-Jan-2009  mjf Sync with HEAD.
 1.27.8.1  21-Apr-2010  matt sync to netbsd-5
 1.27.2.1  07-Aug-2009  snj Pull up following revision(s) (requested by sborrill in ticket #905):
sys/arch/alpha/conf/Makefile.alpha: revision 1.81
sys/arch/amd64/conf/Makefile.amd64: revision 1.26
sys/arch/i386/conf/Makefile.i386: revision 1.162
sys/arch/macppc/conf/Makefile.macppc: revision 1.31
sys/arch/mips/conf/Makefile.mips: revision 1.52
sys/arch/sparc64/conf/Makefile.sparc64: revision 1.68
sys/arch/xen/conf/Makefile.xen: revision 1.28
Clean-up makefile stub used to include in the build the binary HAL object
 1.28.2.3  27-Aug-2011  jym Sync with HEAD. Most notably: uvm/pmap work done by rmind@, and MP Xen
work of cherry@.

No regression observed on suspend/restore.
 1.28.2.2  28-Mar-2011  jym Sync with HEAD. TODO before merge:
- shortcut for suspend code in sysmon, when powerd(8) is not running.
Borrow ``xs_watch'' thread context?
- bug hunting in xbd + xennet resume. Rings are currently thrashed upon
resume, so current implementation force flush them on suspend. It's not
really needed.
 1.28.2.1  24-Oct-2010  jym Sync with HEAD
 1.29.4.2  31-May-2011  rmind sync with head
 1.29.4.1  05-Mar-2011  rmind sync with head
 1.29.2.1  17-Aug-2010  uebayasi Sync with HEAD.
 1.31.2.1  06-Jun-2011  jruoho Sync with HEAD.
 1.34.6.1  18-Feb-2012  mrg merge to -current.
 1.34.2.1  17-Apr-2012  yamt sync with head
 1.35.20.1  10-Aug-2014  tls Rebase.
 1.35.6.2  03-Dec-2017  jdolecek update from HEAD
 1.35.6.1  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.38.2.3  28-Aug-2017  skrll Sync with HEAD
 1.38.2.2  05-Feb-2017  skrll Sync with HEAD
 1.38.2.1  22-Sep-2015  skrll Sync with HEAD
 1.40.4.1  21-Apr-2017  bouyer Sync with HEAD
 1.40.2.1  20-Mar-2017  pgoyette Sync with HEAD
 1.41.6.1  07-Mar-2018  martin Pull up the following revisions (via patch), requested by maxv in ticket #610:

sys/arch/amd64/amd64/amd64_trap.S 1.8,1.10,1.12 (partial),1.13-1.15,
1.19 (partial),1.20,1.21,1.22,1.24
(via patch)
sys/arch/amd64/amd64/locore.S 1.129 (partial),1.132 (via patch)
sys/arch/amd64/amd64/trap.c 1.97 (partial),1.111 (via patch)
sys/arch/amd64/amd64/vector.S 1.54,1.55 (via patch)
sys/arch/amd64/include/frameasm.h 1.21,1.23 (via patch)
sys/arch/x86/x86/cpu.c 1.138 (via patch)
sys/arch/xen/conf/Makefile.xen 1.45 (via patch)

Rename and reorder several things in amd64_trap.S.
Compile amd64_trap.S as a file.
Introduce nmitrap and doubletrap.
Have the CPU clear PSL_D automatically in the syscall entry point.
 1.45.2.2  30-Sep-2018  pgoyette Ssync with HEAD
 1.45.2.1  25-Jun-2018  pgoyette Sync with HEAD
 1.46.2.1  10-Jun-2019  christos Sync with HEAD
 1.48.10.1  16-Apr-2020  bouyer Reorganise sources to make it possible to include Xen PVHVM support in
native kernels. Among others:
- move xen/include/amd64/hypercall.h to amd64/include/xen and
xen/include/i386/hypercall.h to i386/include/xen
- exclude some native files from the build for xenpv
- add xen to "machine" config statement for amd64 and i386
- split arch/xen/conf/files.xen to arch/xen/conf/files.xen (for pv drivers)
and arch/xen/conf/files.xen.pv (for full pv support)
- add GENERIC_XENHVM kernel config which includes GENERIC and add Xen PV
drivers.

RSS XML Feed