<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src/sys/boot/ia64/common/copy.c, branch main</title>
<subtitle>FreeBSD source tree</subtitle>
<id>https://cgit-dev.freebsd.org/src/atom?h=main</id>
<link rel='self' href='https://cgit-dev.freebsd.org/src/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/'/>
<updated>2014-07-07T00:27:09Z</updated>
<entry>
<title>Remove ia64.</title>
<updated>2014-07-07T00:27:09Z</updated>
<author>
<name>Marcel Moolenaar</name>
<email>marcel@FreeBSD.org</email>
</author>
<published>2014-07-07T00:27:09Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=e7d939bda22b07be6b68ba38835c9167212fd56e'/>
<id>urn:sha1:e7d939bda22b07be6b68ba38835c9167212fd56e</id>
<content type='text'>
This includes:
o   All directories named *ia64*
o   All files named *ia64*
o   All ia64-specific code guarded by __ia64__
o   All ia64-specific makefile logic
o   Mention of ia64 in comments and documentation

This excludes:
o   Everything under contrib/
o   Everything under crypto/
o   sys/xen/interface
o   sys/sys/elf_common.h

Discussed at: BSDcan
</content>
</entry>
<entry>
<title>Turn PBVM page table entries into PTEs so that they can be inserted</title>
<updated>2011-04-30T20:16:49Z</updated>
<author>
<name>Marcel Moolenaar</name>
<email>marcel@FreeBSD.org</email>
</author>
<published>2011-04-30T20:16:49Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=c989b08beb4a150ac66865c7567758f87ed4fb59'/>
<id>urn:sha1:c989b08beb4a150ac66865c7567758f87ed4fb59</id>
<content type='text'>
into the TLB as-is.

While here, have ia64_platform_alloc() return ~0UL on failure.
</content>
</entry>
<entry>
<title>Use the new arch_loadaddr I/F to align ELF objects to PBVM page</title>
<updated>2011-04-03T23:49:20Z</updated>
<author>
<name>Marcel Moolenaar</name>
<email>marcel@FreeBSD.org</email>
</author>
<published>2011-04-03T23:49:20Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=76ceb3c6eea5df0ccf978161d04d4394af7a59ba'/>
<id>urn:sha1:76ceb3c6eea5df0ccf978161d04d4394af7a59ba</id>
<content type='text'>
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.
</content>
</entry>
<entry>
<title>o   Make sure the page table has a size that is mappable. Certain page</title>
<updated>2011-03-13T22:04:19Z</updated>
<author>
<name>Marcel Moolenaar</name>
<email>marcel@FreeBSD.org</email>
</author>
<published>2011-03-13T22:04:19Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=72e168018936130e7b848a95a2b19d9c09cee250'/>
<id>urn:sha1:72e168018936130e7b848a95a2b19d9c09cee250</id>
<content type='text'>
    sizes are not supported.
o   Map the PBVM page table.
o   Map the PBVM using the largest possible power of 2 that is less than
    the amount of PBVM used and round down to a valid page size. Note
    that the current kernel is between 8MB and 16MB in size, which would
    mean that 8MB would be the typical size of the mapping, if only 8MB
    wasn't an invalid page size. In practice, we end up mapping the first
    4MB of PBVM in most cases.
</content>
</entry>
<entry>
<title>Implement Pre-Boot Virtual Memory (PBVM). There's no 1-to-1 mapping</title>
<updated>2011-03-11T22:14:02Z</updated>
<author>
<name>Marcel Moolenaar</name>
<email>marcel@FreeBSD.org</email>
</author>
<published>2011-03-11T22:14:02Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=76dd0353014715dba637e7e221abbffd00892123'/>
<id>urn:sha1:76dd0353014715dba637e7e221abbffd00892123</id>
<content type='text'>
between kernel virtual address and physical address anymore. This so
that we can link the kernel at some virtual address without having
to worry whether the corresponding physical memory exists and is
available. The PBVM uses 64KB pages that are mapped to physical
addresses using a page table. The page table is at least 1 EFI page
in size, but can grow up to 1MB. This effectively gives us a memory
size between 32MB and 8GB -- i.e. enough to load a DVD image if one
wants to.

The loader assigns physical memory based on the EFI memory map and
makes sure that all physical memory is naturally aligned and a power
of 2. At this time there's no consideration for allocating physical
memory that is close to the BSP.

The kernel is informed about the physical address of the page table
and its size and can locate all PBVM pages through it.

The loader does not wire the PBVM page table yet. Instead it wires
all of the PBVM with a single translation. This is fine for now,
but a follow-up commit will fix it. We cannot handle more than 32MB
right now.

Note that the loader will map as much of the loaded kernel and
modules as possible, but it's up to the kernel to handle page faults
for references that aren't mapped. To make that easier, the page
table is mapped at a fixed virtual address.
</content>
</entry>
<entry>
<title>Remove LDR_LOG2_PGSZ, ia64_pgtbl and ia64_pgtblsz. They are part of</title>
<updated>2006-11-19T20:04:11Z</updated>
<author>
<name>Marcel Moolenaar</name>
<email>marcel@FreeBSD.org</email>
</author>
<published>2006-11-19T20:04:11Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=56d881b91772149fadf97ef2231cccfe739481ec'/>
<id>urn:sha1:56d881b91772149fadf97ef2231cccfe739481ec</id>
<content type='text'>
a WIP and not used yet.
</content>
</entry>
<entry>
<title>Major rework of the ia64 loaders. The two primary objectives are:</title>
<updated>2006-11-05T22:03:04Z</updated>
<author>
<name>Marcel Moolenaar</name>
<email>marcel@FreeBSD.org</email>
</author>
<published>2006-11-05T22:03:04Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=0463b4a2fbc8754a3dc9cb08d8655dc475f7a70d'/>
<id>urn:sha1:0463b4a2fbc8754a3dc9cb08d8655dc475f7a70d</id>
<content type='text'>
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.
</content>
</entry>
<entry>
<title>o  Introduce efimd_va2pa() to translate addresses in efi_copy{in|out}()</title>
<updated>2004-11-28T00:30:22Z</updated>
<author>
<name>Marcel Moolenaar</name>
<email>marcel@FreeBSD.org</email>
</author>
<published>2004-11-28T00:30:22Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=f3beed66fa5278d5df254cdd2bc31a9220576781'/>
<id>urn:sha1:f3beed66fa5278d5df254cdd2bc31a9220576781</id>
<content type='text'>
   and efi_readin(). This removes MD code from copy.c.
o  Don't unconditionally add pal.S to SRCS. It's specific to ia64.
</content>
</entry>
<entry>
<title>Use __FBSDID rather than rcsid[].</title>
<updated>2003-04-03T21:36:33Z</updated>
<author>
<name>David E. O'Brien</name>
<email>obrien@FreeBSD.org</email>
</author>
<published>2003-04-03T21:36:33Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=8368cf8f75949c1d998e41a4b98fc8d6db4332de'/>
<id>urn:sha1:8368cf8f75949c1d998e41a4b98fc8d6db4332de</id>
<content type='text'>
</content>
</entry>
<entry>
<title>o  Remove namespace pollution from param.h:</title>
<updated>2002-05-19T04:42:19Z</updated>
<author>
<name>Marcel Moolenaar</name>
<email>marcel@FreeBSD.org</email>
</author>
<published>2002-05-19T04:42:19Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=23c12a63cfb7dc91e781a670978fecfce7bf769a'/>
<id>urn:sha1:23c12a63cfb7dc91e781a670978fecfce7bf769a</id>
<content type='text'>
   -  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.
</content>
</entry>
</feed>
