summaryrefslogtreecommitdiffstats
path: root/sys/boot
Commit message (Collapse)AuthorAgeFilesLines
...
* Add a GPT-aware variant of zfsboot which should be used in a similar mannerdfr2008-11-194-5/+188
| | | | | | | | to gptboot, i.e. installed in a freebsd-boot partition using /sbin/gpart or /sbin/gpt. Tweak the /boot/loader ZFS support so that it can find ZFS pools that are contained in GPT partitions.
* If we free the GPT partition list in bd_open_gpt() because of an error, don'tdfr2008-11-191-2/+4
| | | | try to free it again in bd_closedisk(). While I'm here, fix a DEBUG print.
* Fix building without ZFS (can't find library)ache2008-11-181-0/+2
|
* Update ZFS from version 6 to 13 and bring some FreeBSD-specific changes.pjd2008-11-1714-15/+3512
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This bring huge amount of changes, I'll enumerate only user-visible changes: - Delegated Administration Allows regular users to perform ZFS operations, like file system creation, snapshot creation, etc. - L2ARC Level 2 cache for ZFS - allows to use additional disks for cache. Huge performance improvements mostly for random read of mostly static content. - slog Allow to use additional disks for ZFS Intent Log to speed up operations like fsync(2). - vfs.zfs.super_owner Allows regular users to perform privileged operations on files stored on ZFS file systems owned by him. Very careful with this one. - chflags(2) Not all the flags are supported. This still needs work. - ZFSBoot Support to boot off of ZFS pool. Not finished, AFAIK. Submitted by: dfr - Snapshot properties - New failure modes Before if write requested failed, system paniced. Now one can select from one of three failure modes: - panic - panic on write error - wait - wait for disk to reappear - continue - serve read requests if possible, block write requests - Refquota, refreservation properties Just quota and reservation properties, but don't count space consumed by children file systems, clones and snapshots. - Sparse volumes ZVOLs that don't reserve space in the pool. - External attributes Compatible with extattr(2). - NFSv4-ACLs Not sure about the status, might not be complete yet. Submitted by: trasz - Creation-time properties - Regression tests for zpool(8) command. Obtained from: OpenSolaris
* Add ale(4), a driver for Atheros AR8121/AR8113/AR8114 PCIe ethernetyongari2008-11-121-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | controller. The controller is also known as L1E(AR8121) and L2E(AR8113/AR8114). Unlike its predecessor Attansic L1, AR8121/AR8113/AR8114 uses completely different Rx logic such that it requires separate driver. Datasheet for AR81xx is not available to open source driver writers but it shares large part of Tx and PHY logic of L1. I still don't understand some part of register meaning and some MAC statistics counters but the driver seems to have no critical issues for performance and stability. The AR81xx requires copy operation to pass received frames to upper stack such that ale(4) consumes a lot of CPU cycles than that of other controller. A couple of silicon bugs also adds more CPU cycles to address the known hardware bug. However, if you have fast CPU you can still saturate the link. Currently ale(4) supports the following hardware features. - MSI. - TCP Segmentation offload. - Hardware VLAN tag insertion/stripping with checksum offload. - Tx TCP/UDP checksum offload and Rx IP/TCP/UDP checksum offload. - Tx/Rx interrupt moderation. - Hardware statistics counters. - Jumbo frame. - WOL. AR81xx PCIe ethernet controllers are mainly found on ASUS EeePC or P5Q series of ASUS motherboards. Special thanks to Jeremy Chadwick who sent the hardware to me. Without his donation writing a driver for AR81xx would never have been possible. Big thanks to all people who reported feedback or tested patches. HW donated by: koitsu Tested by: bsam, Joao Barros <joao.barros <> gmail DOT com > Jan Henrik Sylvester <me <> janh DOT de > Ivan Brawley < ivan <> brawley DOT id DOT au >, CURRENT ML
* Modify our boot block to pick an output device, without which boot1 will failnwhitehorn2008-10-312-0/+5
| | | | | | on G4 machines. On the assumption that most people using FreeBSD on Apple hardware are not using serial consoles, set boot1's output to screen. This should be revisited. While here, reduce verbosity of boot1.
* Initial support of loader(8) for ARM machines running U-Boot.raj2008-10-1412-6/+436
| | | | | | | | | | This uses the common U-Boot support lib (sys/boot/uboot, already used on FreeBSD/powerpc), and assumes the underlying firmware has the modern API for stand-alone apps enabled in the config (CONFIG_API). Only netbooting is supported at the moment. Obtained from: Marvell, Semihalf
* Add a simple HFS boot block implementation for booting PowerPC macs. It createsnwhitehorn2008-10-147-1/+906
| | | | | | | a small HFS filesystem with a CHRP boot script and an early-stage bootloader derived from the sparc64 boot block. Obtained from: sparc64
* Don't close OF disk devices on PowerPC. This fixes loader when booting fromnwhitehorn2008-10-131-0/+2
| | | | disk on my Blue & White G3 system.
* More diff reductions against ixp425/boot2/boot2.c. This time, weimp2008-10-071-0/+87
| | | | | | | | | | | | bring in FIXUP_BOOT_DRV functionality as an #ifdef. This is not enabled at this time, and the md5 remains constant with this change. Apart from the 'accept any partitioning scheme on the device' changes, this was the biggest delta... # and yes, we'll merge these into one source file if we can do that in a # way that makes sense. Obtained from: sys/boot/arm/ixp425/boot2/boot2.c
* Diff reduction with boot/arm/at91/boot2/boot2.c: indent this statementimp2008-10-071-1/+1
| | | | correctly.
* don't hardcode ccsam2008-10-071-3/+3
| | | | Submitted by: Andrey Eltsov
* Use CPUID to see if the current CPU supports long mode when attemping tojhb2008-10-071-1/+47
| | | | | | | | boot an amd64 kernel. If not, then fail the boot request with an error message. Otherwise, the boot attempt will fail with a BTX fault when trying to read the EFER MSR. MFC after: 3 days
* Add a boot loader for ixp425 based boards like the Gateworks Avilajhay2008-10-067-0/+1473
| | | | and ADI Pronghorn Metro with Redboot on them.
* Bring in the trivial differences between this code and John Hay's newimp2008-10-051-17/+26
| | | | | | | | | | | | code. Added a copyright for the work I did to this file a couple of years ago. Add John's copyright too, since I'm sure I'll be pulling more into this code. This also implements a new -n option to not allow breaking into the boot sequence which was original in the patch John posted (not in the original i386 code I based this boot2.c on, only the name is the same). I haven't checked to see if he did that, or if it was one of Sam's improvements. Submitted by: jhay@
* Remove XMODEM_DL support. It never was complete and only serves toimp2008-10-053-14/+0
| | | | increase the diffs with other arm boot2 loaders.
* Indent with 8-space tabs. This reduces the diffs to the newer ixp425imp2008-10-051-165/+169
| | | | boot2 and may make it easier to merge these files in the future...
* Disable ATAPI DMA as it's once again broken in that it causes datamarius2008-10-051-1/+1
| | | | | | | corruption with the on-board AcerLabs M5229 controllers. While at it, remove the pointless "nothing to autoload yet." message. MFC after: 3 days
* Minor style(9) fixes for U-Boot API glue.raj2008-10-044-25/+23
|
* U-Boot API glue improvements:raj2008-10-044-42/+45
| | | | | | | | - extend ub_dev_read() and ub_dev_recv() so that the actual len and all error codes can be passed and processed properly; unify behaviour of these routines - introduce syscall general error code (API_ESYSC)
* - Add ae(4) to loader.conf.stas2008-10-041-0/+1
| | | | | Approved by: kib (mentor) MFC after: 1 week
* Backout rev 183181. It appears that I should have been using boot-devicesobomax2008-09-192-30/+1
| | | | | | | of "cd:,\\:tbxi" with properly configured boot.tbxi, instead of booting \boot\loader directly. Rev 183168 could probably stay, since it can be viewed as an anti-foot-shooting measure and has no impact on normal operation. I can revert it as well, if anybody objects.
* On PowerPC send output to both "/chosen/stdout" and "screen" nodes, unlesssobomax2008-09-192-1/+30
| | | | | | | | | | | | | they point to the very same device. This should make loader usable on some (all?) PowerMacs, where "/chosen/stdout" is disconneted from the "screen" by the OF init process by default, except when user actually has requested interaction with OF by holding ALT-CMD-O-F. Along with rev 183168 this should provide a way to build bootable FreeBSD/ppc installation or live CD that works OOB. Also, it should bring PowerMac experience closer to that on other arches. MFC after: 1 week (assiming re@ blessing)
* No FORTH for MIPS.obrien2008-09-181-0/+4
|
* Revert r177108 and restore r60506 for sparc64 as long as libstandmarius2008-09-101-0/+3
| | | | | | | | isn't fixed to only open the network device once and not do a open and close dance on every file access; the firmwares of newer sparc64 machines perform an auto-negotiation with every open which in turn causes netbooting to take horribly long if we open and close the device over and over again.
* Work around Cheetah+ erratum 34 (USIII+ erratum #10) by relocatingmarius2008-09-101-0/+110
| | | | | | | | the locked entry in it16 slot 0, which typically is occupied by the PROM, and manually entering locked entries in slots != 0. Thanks to Hubert Feyrer for donating the Blade 2000 this change was developed on.
* Resurrect the sbni(4) driver. Someone finally tested the MPSAFE patches andjhb2008-09-101-0/+1
| | | | | | the driver worked ok with them. Tested by: friends of yar
* USIII and beyond CPUs have stricter requirements when it comesmarius2008-09-081-1/+2
| | | | | | | | | | | | | | | | | | to synchronization needed after stores to internal ASIs in order to make side-effects visible. This mainly requires the MEMBAR #Sync after such stores to be replaced with a FLUSH. We use KERNBASE as the address to FLUSH as it is guaranteed to not trap. Actually, the USII synchronization rules also already require a FLUSH in pretty much all of the cases changed. We're also hitting an additional USIII synchronization rule which requires stores to AA_IMMU_SFSR to be immediately followed by a DONE, FLUSH or RETRY. Doing so triggers a RED state exception though so leave the MEMBAR #Sync. Linux apparently also has gotten away with doing the same for quite some time now, apart from the fact that it's not clear to me why we need to clear the valid bit from the SFSR in the first place. Reviewed by: nwhitehorn
* Ensure interrupts are off while in {d,i}tlb_va_to_pa_sun4u().marius2008-09-041-2/+10
| | | | | I think this is necessary in order to make sure the workarounds in {d,i}tlb_get_data_sun4u() work correctly.
* Improve loader support for U-Boot.raj2008-09-033-65/+188
| | | | | | | | | - add new diag commands: devinfo, sysinfo for U-Boot-style details about the system configuration - better memory info summary - style corrections Obtained from: Semihalf
* Show info about net devices in loader's 'lsdev' command. While there fix style.raj2008-09-032-175/+188
|
* Use current SP instead of global data ptr for the U-Boot API signature ↵raj2008-09-031-1/+1
| | | | | | | | | | | | search hint. Global data (pointed by R2 on PowerPC) in principle is not guaranteed to be in proximity of U-Boot heap (where the API signature is placed) accross different architectures and platforms. Instead, use U-Boot stack pointer as a hint for the search instead of the global data; this method tends to be more uniform accross different platforms. Obtained from: Semihalf
* Make metadata.c shared across all platforms using U-Boot.raj2008-09-033-3/+4
| | | | This will [soon] be needed for ARM.
* Move U-Boot compatibility library to WARNS=2 level.raj2008-09-038-40/+49
|
* - Read ASI_{D,I}TLB_DATA_ACCESS_REG twice in order to work aroundmarius2008-08-301-21/+60
| | | | | | | | | | | | | | | errata of USIII and beyond (USIII erratum #19, USIII+ erratum #1, USIIIi erratum #1). - Use the cheetah PA mask in {d,i}tlb_va_to_pa_sun4u() for USIII and beyond. This is done so that these functions will still mask the debug bits of spitfire-class CPUs once we increase TD_PA_BITS to match the number of bits used for the PA by cheetah-class CPUs. - Change {d,i}tlb_enter_sun4u() to also set TLB_CTX_KERNEL as the context of the mappings entered. This is more or less cosmetic as TLB_CTX_KERNEL is 0. - Now that we have to distinguish between different sun4u CPUs in the loader anyway, no longer do trial and error when reading the portid property.
* Add geom_journalmatteo2008-08-261-0/+1
| | | | | PR: conf/126829 MFC after: 2 days
* cosmetic changes and style fixesmarius2008-08-221-4/+7
|
* Add an entry for the upgt(4) module.weongyo2008-08-111-0/+1
|
* - Initialize the vm86 structure to a known-good state. Specifically, alwaysjhb2008-08-084-4/+18
| | | | | | | | | set the %eflags used during a BIOS call via BTX to 0x202. Previously the flags field was uninitialized garbage, and thus it was "random" if interrupts were enabled or not during BIOS calls. - Use constants from <machine/psl.h> for fields in %eflags. MFC after: 3 days
* Fix the hangs reported with the real mode BTX:jhb2008-08-081-11/+22
| | | | | | | | | | | | | - I had errantly assumed that all user requests should run with interrupts enabled. User requests for software interrupts, however, need to disable interrupts (and tracing) just like hardware interrupts. - Disable alignment checking when emulating a hardware interrupt as well (based on the description of the real mode operation of the 'INT' instruction in the IA-32 manuals). - Use constants for fields in %eflags. Tested by: bz MFC after: 3 days
* - Reimplement {d,i}tlb_enter() and {d,i}tlb_va_to_pa() in C. There'smarius2008-08-072-122/+109
| | | | | | | | | | | | | | | no particular reason for them to be implemented in assembler and having them in C allows easier extension as well as using more C macros and {d,i}tlb_slot_max rather than hard-coding magic (and actually spitfire-only) values. - Fix the compilation of pmap_print_tte(). - Change pmap_print_tlb() to use ldxa() rather than re-rolling it inline as well as TLB_DAR_SLOT and {d,i}tlb_slot_max rather than hardcoding magic (and actually spitfire-only) values. - While at it, suffix the above mentioned functions with "_sun4u" to underline they're architecture-specific. - Use __FBSDID and macros instead of magic values in locore.S. - Remove unused includes and smp_stack in locore.S.
* Add coretemp(4) and k8temp(4).rpaulo2008-08-041-0/+2
| | | | MFC after: 1 day
* Dereferencing uninitialized pointers considered harmful. Prior to thiscperciva2008-08-041-0/+4
| | | | | | | | | commit, calling i386_parsedev(..., X, ...) where X is "ad", "bge", or any other disk or network device name without a unit number, would result in dereferencing whatever happened to be on the stack where the variable "cp" is stored. Found by: LLVM/Clang Static Checker
* Setting a variable to the same value twice doesn't actually make itcperciva2008-08-041-1/+1
| | | | | | more likely to have the right value. Remove superfluous assignments. Found by: LLVM/Clang Static Checker
* Only descend into the boot directory for the architecture if itimp2008-07-231-1/+4
| | | | actually exists and is a directory or symlink to a directory.
* Add an accept filter for TCP based DNS requests. It waits until thedwmalone2008-07-181-0/+1
| | | | whole first request is present before returning from accept.
* Remove the sbni(4) driver. No one responded to calls to test it onjhb2008-07-041-1/+0
| | | | current@ and stable@.
* Remove the oltr(4) driver. No one responded to calls for testing onjhb2008-07-041-2/+0
| | | | | | | | current@ and stable@ for the locking patches. The driver can always be revived if someone tests it. This driver also sleeps in its if_init routine, so it likely doesn't really work at all anyway in modern releases.
* Remove Japanese document.nyan2008-07-041-65/+0
|
* Fix off-by-one error.nyan2008-07-011-1/+1
| | | | MFC after: 1 week
OpenPOWER on IntegriCloud