This appeared on the IA-64 Linux kernel mailing
David Mosberger firstname.lastname@example.org
Thu, 5 Apr 2001 13:26:40 -0700
The latest IA-64 patch is now available at:
in file linux-2.4.3-ia64-010405.diff*
CAVEAT: You will need a NEW BOOTLOADER with this patch. More on this
What this patch does:
- Switch over to new bootstrap procedure developed by
Stephane: the kernel is now booted in physical mode and the
bootloader is now completely decoupled from the kernel: it
simply loads the kernel as an ELF file and then jumps to the
entry point. It has no special knowledge of where the
ZERO_PAGE is anymore, etc. The new bootloader also supports
compressed kernel. The Makefile supports this via "make
compressed": this target will produce "vmlinux" with all
debug info in it and "vmlinux.gz", a stripped and compressed
version of the kernel.
- Sync up with Linus' 2.4.3 changes. Warning: the locking
strategy changed for page table allocation. If you have
code that calls pmd_alloc(), you'll need to update that code
to use the mm->page_table_lock (I already made these changes
for the IA-32 subsystem and for the AGP driver).
- Add McKinley support (Alex).
- The IA-32 execve() no longer has to clear r8 through r15
(it's already done in the generic execve() path).
- Use 64MB instead of 256MB pages in the identity mapped
regions and load the kernel at address 68MB. This avoids
problems with conflicting memory attributes due to the first
1MB of address space (Asit).
- Don't panic in efivars.c just because EFI variables are not
supported. Note: please do not call BUG() *UNLESS* you're
dealing with a problem that absolutely positiveley would
kill the kernel, delete your files, or some such. Linux is
very careful not to panic for silly reasons and we'd like to
keep it that way.
- Change ptrace.c so sync_kernel_register_backing_store()
works again. Update unaligned.c and process.c accordingly.
This hasn't been well tested yet, but strace still works and
doing an inferior call with gdb no longer seems to corrupt
the stacked registers, so there is hope. ;-) Thanks to Kevin
for tracking down this issue. Also, hopefully fix
PTRACE_GETSIGINFO, PTRACE_SETSIGINFO, and the ptrace and
core dump handling of ar.rnat.
- Fix the initialization ordering bug that caused the 2.4.2
kernels to get stuck when using a page size smaller than
- Fix a buglet in get_unmapped_area(). Thanks to Matthew
Wilcox for reporting this. (This bug had no negative
effect on any existing IA-64 implementation.)
- Fix thinko in printk() rate limiting code (Khalid).
- Update efirtc driver to move /proc/efirtc to
/proc/driver/efirtc and to use a format more in line with
the regular RTC driver (Stephane).
- Hack fs/binfmt_elf so that the auxiliary information is
passed independent of whether the binary is statically or
dynamically linked (Rich, I haven't run this past Linus yet,
but I hope he won't have an issue with it; it really makes
no sense at all to not pass this info for static binaries:
an ELF file is an ELF file, no matter whether it's static or
- Fix access_ok() to reject attempts to fool the kernel into
giving access to the virtually mapped page table (this
required moving the initial stack pointer down by one page).
- Various minor clean ups.
In case it isn't clear yet: this patch has far more changes than I'd
normally feel comfortable with (we're trying to _stabilize_ things,
remember...). However, as things go, several issues cropped up all at
the same time and this pretty much forced us to adopt a new bootstrap
procedure. And since we had to update the bootloader anyhow, this
provided an opportunity to clean up some of the cruft that has
accumulated over the past couple of months. The good news is that
while this patch may cause some pain, in my opinion the compressed
kernel support alone makes it well worth it. ;-) Still, test long and
well before shipping this kernel as part of a distro...
Now, as far as the new bootloader is concerned: Stephane has done all
the heavy lifting here and he'll soon send out an announcement with
pointers to both source and binary.
o The patch below is for informational purposes only. Get the real
thing from ftp.kernel.org.
o The patch below has been tested on 2P Big Sur and on the HP Ski
simulator, in both cases with UP and MP. As usual, YMMV.