276486 |
31-Dec-2014 |
ngie |
MFC r264400,r265836:
r264400:
NO_MAN= has been deprecated in favor of MAN= for some time, go ahead and finish the job. ncurses is now the only Makefile in the tree that uses it since it wasn't a simple mechanical change, and will be addressed in a future commit.
r265836:
Remove last two NO_MAN= in the tree. In both of these cases, MAN= is what is needed. |
259073 |
07-Dec-2013 |
peter |
Hoist all the mergeinfo up to the root in preparation for enforcing merges to the root only. All MFC's were rerecorded to the root.
Going forward, if an MFC includes mergeinfo, it will need to be made to the root and committed from the root. Merges with --ignore-ancestry or diff | patch can go anywhere.
The mergeinfo in HEAD is in a bad state from years of neglect and manual tampering and this was branched into 10.x. This confuses the coalescing code and prevents it from doing its job.
Approved by: re (gjb, implicit) |
256281 |
10-Oct-2013 |
gjb |
Copy head (r256279) to stable/10 as part of the 10.0-RELEASE cycle.
Approved by: re (implicit) Sponsored by: The FreeBSD Foundation
|
223758 |
04-Jul-2011 |
attilio |
With retirement of cpumask_t and usage of cpuset_t for representing a mask of CPUs, pc_other_cpus and pc_cpumask become highly inefficient.
Remove them and replace their usage with custom pc_cpuid magic (as, atm, pc_cpumask can be easilly represented by (1 << pc_cpuid) and pc_other_cpus by (all_cpus & ~(1 << pc_cpuid))).
This change is not targeted for MFC because of struct pcpu members removal and dependency by cpumask_t retirement.
MD review by: marcel, marius, alc Tested by: pluknet MD testing by: marcel, marius, gonzo, andreast
|
222813 |
07-Jun-2011 |
attilio |
etire the cpumask_t type and replace it with cpuset_t usage.
This is intended to fix the bug where cpu mask objects are capped to 32. MAXCPU, then, can now arbitrarely bumped to whatever value. Anyway, as long as several structures in the kernel are statically allocated and sized as MAXCPU, it is suggested to keep it as low as possible for the time being.
Technical notes on this commit itself: - More functions to handle with cpuset_t objects are introduced. The most notable are cpusetobj_ffs() (which calculates a ffs(3) for a cpuset_t object), cpusetobj_strprint() (which prepares a string representing a cpuset_t object) and cpusetobj_strscan() (which creates a valid cpuset_t starting from a string representation). - pc_cpumask and pc_other_cpus are target to be removed soon. With the moving from cpumask_t to cpuset_t they are now inefficient and not really useful. Anyway, for the time being, please note that access to pcpu datas is protected by sched_pin() in order to avoid migrating the CPU while reading more than one (possible) word - Please note that size of cpuset_t objects may differ between kernel and userland. While this is not directly related to the patch itself, it is good to understand that concept and possibly use the patch as a reference on how to deal with cpuset_t objects in userland, when accessing kernland members. - KTR_CPUMASK is changed and now is represented through a string, to be set as the example reported in NOTES.
Please additively note that no MAXCPU is bumped in this patch, but private testing has been done until to MAXCPU=128 on a real 8x8x2(htt) machine (amd64).
Please note that the FreeBSD version is not yet bumped because of the upcoming pcpu changes. However, note that this patch is not targeted for MFC.
People to thank for the time spent on this patch: - sbruno, pluknet and Nicholas Esborn (nick AT desert DOT net) tested several revision of the patches and really helped in improving stability of this work. - marius fixed several bugs in the sparc64 implementation and reviewed patches related to ktr. - jeff and jhb discussed the basic approach followed. - kib and marcel made targeted review on some specific part of the patch. - marius, art, nwhitehorn and andreast reviewed MD specific part of the patch. - marius, andreast, gonzo, nwhitehorn and jceel tested MD specific implementations of the patch. - Other people have made contributions on other patches that have been already committed and have been listed separately.
Companies that should be mentioned for having participated at several degrees: - Yahoo! for having offered the machines used for testing on big count of CPUs. - The FreeBSD Foundation for having sponsored my devsummit attendance, which has been instrumental. - Sandvine for having offered offices and infrastructure during development.
(I really hope I didn't forget anyone, if it happened I apologize in advance).
|
220313 |
04-Apr-2011 |
marcel |
Use the new arch_loadaddr I/F to align ELF objects to PBVM page boundaries. For good measure, align all other objects to cache lines boundaries.
Use the new arch_loadseg I/F to keep track of kernel text and data so that we can wire as much of it as is possible. It is the responsibility of the kernel to link critical (read IVT related) code and data at the front of the respective segment so that it's covered by TRs before the kernel has a chance to add more translations.
Use a better way of determining whether we're loading a legacy kernel or not. We can't check for the presence of the PBVM page table, because we may have unloaded that kernel and loaded an older (legacy) kernel after that. Simply use the latest load address for it.
|
220283 |
03-Apr-2011 |
marcel |
Make the ski loader functional again after the previous set of changes.
|
219691 |
16-Mar-2011 |
marcel |
MFaltix: Add support for Pre-Boot Virtual Memory (PBVM) to the loader.
PBVM allows us to link the kernel at a fixed virtual address without having to make any assumptions about the physical memory layout. On the SGI Altix 350 for example, there's no usuable physical memory below 192GB. Also, the PBVM allows us to control better where we're going to physically load the kernel and its modules so that we can make sure we load the kernel in memory that's close to the BSP.
The PBVM is managed by a simple page table. The minimum size of the page table is 4KB (EFI page size) and the maximum is currently set to 1MB. A page in the PBVM is 64KB, as that's the maximum alignment one can specify in a linker script. The bottom line is that PBVM is between 64KB and 8GB in size.
The loader maps the PBVM page table at a fixed virtual address and using a single translations. The PBVM itself is also mapped using a single translation for a maximum of 32MB.
While here, increase the heap in the EFI loader from 512KB to 2MB and set the stage for supporting relocatable modules.
|
218822 |
18-Feb-2011 |
dim |
Merge binutils 2.17.50 to head. This brings a number of improvements to x86 CPU support, better support for powerpc64, some new directives, and many other things. Bump __FreeBSD_version, and add a note to UPDATING.
Thanks to the many people that have helped to test this.
Obtained from: projects/binutils-2.17
|
211680 |
23-Aug-2010 |
imp |
MF tbemd: Minor tweaks, prefer MACHINE_CPUARCH generally to MACHINE_ARCH (which simplifies some powerpc/powerpc64 ifs)
|
193530 |
05-Jun-2009 |
jkim |
Import ACPICA 20090521.
|
188895 |
21-Feb-2009 |
ru |
Fix build when WITH_SSP is set explicitly.
Submitted by: Jeremie Le Hen
|
180012 |
25-Jun-2008 |
ru |
Enable GCC stack protection (aka Propolice) for userland: - It is opt-out for now so as to give it maximum testing, but it may be turned opt-in for stable branches depending on the consensus. You can turn it off with WITHOUT_SSP. - WITHOUT_SSP was previously used to disable the build of GNU libssp. It is harmless to steal the knob as SSP symbols have been provided by libc for a long time, GNU libssp should not have been much used. - SSP is disabled in a few corners such as system bootstrap programs (sys/boot), process bootstrap code (rtld, csu) and SSP symbols themselves. - It should be safe to use -fstack-protector-all to build world, however libc will be automatically downgraded to -fstack-protector because it breaks rtld otherwise. - This option is unavailable on ia64.
Enable GCC stack protection (aka Propolice) for kernel: - It is opt-out for now so as to give it maximum testing. - Do not compile your kernel with -fstack-protector-all, it won't work.
Submitted by: Jeremie Le Hen <jeremie@le-hen.org>
|
167814 |
22-Mar-2007 |
jkim |
Catch up with ACPI-CA 20070320 import.
|
164010 |
05-Nov-2006 |
marcel |
Major rework of the ia64 loaders. The two primary objectives are: 1. Make libefi portable by removing ia64 specific code and build it on i386 and amd64 by default to prevent regressions. These changes include fixes and improvements over previous code to establish or improve APIs where none existed or when the amount of kluging was unacceptably high. 2. Increase the amount of sharing between the efi and ski loaders to improve maintainability of the loaders and simplify making changes to the loader-kernel handshaking in the future.
The version of the efi and ski loaders are now both changed to 1.2 as user visible improvements and changes have been made.
|
163927 |
03-Nov-2006 |
marcel |
Properly calculate the checksum of the APIC table.
|
163897 |
02-Nov-2006 |
marcel |
Extend struct devdesc with a unit field, called d_unit. Promote the device (kind) specific unit field to the common field. This change allows a future version of libefi to work without requiring anything more than what is defined in struct devdesc and as such makes it possible to compile said version of libefi for different platforms without requiring that those platforms have identical derivatives of struct devdesc.
|
163893 |
02-Nov-2006 |
marcel |
Don't unconditionally compile-in the bcache code. It's only used on i386/amd64 and pc98. Remove useless calls to bcache_init() from the ia64 and sparc64 loaders, as well as from the OFW common code.
|
158467 |
12-May-2006 |
jhb |
Remove more Alpha bits from the boot code including fixing several stale comments.
|
156813 |
17-Mar-2006 |
ru |
Reimplementation of world/kernel build options. For details, see:
http://lists.freebsd.org/pipermail/freebsd-current/2006-March/061725.html
The src.conf(5) manpage is to follow in a few days.
Brought to you by: imp, jhb, kris, phk, ru (all bugs are mine)
|
150469 |
22-Sep-2005 |
ru |
Add loader(8) variables for RB_DFLTROOT, RB_MUTE, and RB_PAUSE: "boot_dfltroot", "boot_mute", and "boot_pause" respectively.
|
139738 |
05-Jan-2005 |
imp |
Start each of the license/copyright comments with /*-
|
139123 |
21-Dec-2004 |
ru |
NOFORTH -> NO_FORTH
|
139103 |
21-Dec-2004 |
ru |
Start the dreaded NOFOO -> NO_FOO conversion.
OK'ed by: core
|
138249 |
01-Dec-2004 |
scottl |
Remove the last vestiges of the userconfig option. None of this actually did anything, so this commit should be considered a NO-OP.
|
135968 |
30-Sep-2004 |
ru |
Added support for the -D boot option.
|
135700 |
24-Sep-2004 |
marcel |
Replace misuse of NULL with 0UL.
|
135699 |
24-Sep-2004 |
marcel |
Remove the dependency on the Intel EFI headers in sys/boot/efi. Instead use <machine/efi.h> for the necessary definitions. This makes the EFI code in sys/boot/efi totally unused, except for pure EFI loaders. As such, maintenance and porting (to IA-32) of the EFI code is made as easy as possible.
|
135697 |
24-Sep-2004 |
marcel |
Post repocopy build fixes.
|
135442 |
18-Sep-2004 |
marcel |
Remove useless include of <machine/fpu.h>.
|
127919 |
05-Apr-2004 |
imp |
Remove advertising clause from University of California Regent's license, per letter dated July 22, 1999.
Approved by: core
|
125767 |
13-Feb-2004 |
marcel |
Don't create a mapfile during link. It's not needed for the build.
|
125729 |
12-Feb-2004 |
ru |
Tidy up makefiles.
Tested by: marcel
|
123343 |
09-Dec-2003 |
marcel |
Fix the build of libski now that we use the "official" MADT table definitions. Those are slightly different than the ones we used before ACPI-CA 20031203 got imported. No structural or functional change.
|
122351 |
09-Nov-2003 |
marcel |
Implement PAL_HALT_LIGHT now that the kernel halts the processor when idle. All we have to do is return.
|
122350 |
09-Nov-2003 |
marcel |
Do not strip skiload when installed. The stripped binary does not load in the simulator.
|
119880 |
08-Sep-2003 |
obrien |
Use __FBSDID(). Also some minor style cleanups.
|
117677 |
17-Jul-2003 |
marcel |
Fix the ski loader, broken by the gcc upgrade. Update the linker script to match the one for the EFI loader and rewrite __start() in assembly to have gp defined without getting in the way of the compiler.
|
114379 |
01-May-2003 |
peter |
Enable the i386 loader to load and run an amd64 kernel. If this puts things over floppy size limits, I can exclude it for release builds or something like that. Most of the changes are to get the load_elf.c file into a seperate elf32_ or elf64_ namespace so that you can have two ELF loaders present at once. Note that for 64 bit kernels, it actually starts up the kernel already in 64 bit mode with paging enabled. This is really easy because we have a known minimum feature set.
Of note is that for amd64, we have to pass in the bios int 15 0xe821 memory map because once in long mode, you absolutely cannot make VM86 calls. amd64 does not use 'struct bootinfo' at all. It is a pure loader metadata startup, just like sparc64 and powerpc. Much of the infrastructure to support this was adapted from sparc64.
|
113042 |
04-Apr-2003 |
marcel |
Remove `#ifndef lint' left behind after previous change.
|
113038 |
03-Apr-2003 |
obrien |
Use __FBSDID rather than rcsid[].
|
111536 |
26-Feb-2003 |
obrien |
Consistently use NOFORTH to control the usage of ficl.
|
111168 |
20-Feb-2003 |
marcel |
Simplify page alignment.
|
110211 |
01-Feb-2003 |
marcel |
Remove special casing for running in the simulator from the kernel and instead add platform, firmware and EFI stubs to the loader. The net effect of this change is that besides a special console and disk driver, the kernel has no knowledge of the simulator. This has the following advantages: o Simulator support is much harder to break, o It's easier to make use of more feature complete simulators. This would only need a change in the simulator specific loader, o Running SMP kernels within the simulator. Note that ski at this time does not simulate IPIs, so there's no way to start APs.
The platform, firmware and EFI stubs describe the following hardware: o 4 CPU Itanium, o 128 MB RAM within the 4GB address space, o 64 MB RAM above the 4GB address space.
NOTE: The stubs in the skiloader describe a machine that should in parts be defined by the simulator. Things like processor interrupt block and AP wakeup vector cannot be choosen at random because they require interpretation by the simulator. Currently the simulator is ignorant of this.
This change introduces an unofficial SSC call SSC_SAL_SET_VECTORS which is ignored by the simulator.
Tested with: ski (version 0.943 for linux)
|
110206 |
01-Feb-2003 |
marcel |
SSC calls use break immediate 0x80000. 0x80001 only works for break.i. Ski is rather broken in this respect.
|
108100 |
19-Dec-2002 |
jake |
Renamed the loader's zipfs to gzipfs. zipfs.c was repo-copied to gzipfs.c.
|
103834 |
23-Sep-2002 |
peter |
At great personal risk, add a __packed and __aligned(x) define that expand to __attribute__((packed)) and __attribute__((aligned(x))) respectively. Replace the handful of gcc-ism's that use __attribute__((aligned(16))) etc around the kernel with __aligned(16).
There are over 400 __attribute__((packed)) to deal with, that can come later. I just want to use __packed in new code rather than add more gcc-ism's.
|
98472 |
20-Jun-2002 |
peter |
Add boot_serial and boot_multicons variables to set RB_SERIAL and RB_MULTIPLE since this seems to be the easiest way to add these flags for non-forth loaders etc.
|
96912 |
19-May-2002 |
marcel |
o Remove namespace pollution from param.h: - Don't include ia64_cpu.h and cpu.h - Guard definitions by _NO_NAMESPACE_POLLUTION - Move definition of KERNBASE to vmparam.h
o Move definitions of IA64_RR_{BASE|MASK} to vmparam.h o Move definitions of IA64_PHYS_TO_RR{6|7} to vmparam.h
o While here, remove some left-over Alpha references.
|
96342 |
10-May-2002 |
obrien |
-ffreestanding is the word. (also resort some CFLAGS such that the more "important" value are first so they are easier to see)
|
94023 |
07-Apr-2002 |
peter |
Set BINDIR
|
93926 |
06-Apr-2002 |
peter |
Make it a bit closer to the EFI build and tie up some loose ends.
|
93924 |
06-Apr-2002 |
peter |
Do not add the ficl/alpha subdir to the ia64 include path. Try ficl/ia64 instead.
|
93459 |
30-Mar-2002 |
marcel |
Pass the address of the bootinfo block to the kernel in register r8. Keep it at the hardwired address for now. Bump the version.
|
93400 |
29-Mar-2002 |
marcel |
Fix the beforeinstall target. We install ${PROG}.help if loader.help exists, otherwise we install it anyway. I interpret this as a very high desire to install ${PROG}.help. Alas, ${PROG}.help doesn't exist at the moment and neither does loader.help, so in practice this just doesn't work, no matter how you interpret it. The compromise is to install ${PROG}.help IFF it exists. I realize we lost creativity with this commit, but style should have been preserved, AFAICT :-)
|
93319 |
28-Mar-2002 |
marcel |
Duplicate the logic used elsewhere to define LIBSTAND.
|
92658 |
19-Mar-2002 |
peter |
Add -ffreestanding to avoid printf/puts/putchar conversions
|
86586 |
19-Nov-2001 |
peter |
Remove bootinfo.bi_kernel. It isn't used by the kernel. struct bootinfo should go away on ia64, we should be loader metadata based since that is the only way we can boot (loader, skiload).
|
86585 |
19-Nov-2001 |
peter |
Fix a dependency violation, same as in libefi/elf_freebsd.c a while back.
|
83948 |
26-Sep-2001 |
peter |
Make this 'make obj' safe
|
83710 |
20-Sep-2001 |
dfr |
Add definition of SSC_GET_RTC.
|
83666 |
19-Sep-2001 |
dfr |
Implement time().
|
83521 |
15-Sep-2001 |
dfr |
Add a fake memory descriptor for the I/O port space.
|
83502 |
15-Sep-2001 |
dfr |
Fill in the bootinfo's memory map.
|
83498 |
15-Sep-2001 |
dfr |
Remove dead code.
|
83408 |
13-Sep-2001 |
dfr |
Update code which creates bootinfo.
|
83370 |
12-Sep-2001 |
dfr |
A command file for SKI which runs the loader up to the first instruction of the loaded kernel.
|
83364 |
12-Sep-2001 |
dfr |
Add a version of the loader which runs under SKI, the HP ia64 simulator. This loader is quite functional and can load and run kernels. The kernels don't quite work right after loading but that should be easily fixable.
|