summaryrefslogtreecommitdiffstats
path: root/sys/boot
Commit message (Collapse)AuthorAgeFilesLines
...
* 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
* Fix a fallout from SSP commit, and make this compile again.ru2008-06-261-2/+1
| | | | | | | | Bonus: including kern.mk just to pick kernel warning flags was an extremely bad idea anyway, because it also picked up CFLAGS (it probably wasn't the case at the time of CVS rev. 1.1, I haven't checked). Remove duplicate CWARNFLAGS from CFLAGS.
* Enable GCC stack protection (aka Propolice) for userland:ru2008-06-2518-0/+39
| | | | | | | | | | | | | | | | | | | | | - 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>
* Implement a workaround for a long-standing problem inolli2008-06-161-8/+32
| | | | | | | | | | | | | | | | | | | | | | libi386's time(), caused by a qemu bug. The bug might be present in other BIOSes, too. qemu either does not simulate the AT RTC correctly or has a broken BIOS 1A/02 implementation, and will return an incorrect value if the RTC is read while it is being updated. The effect is worsened by the fact that qemu's INT 15/86 function ("wait" a.k.a. usleep) is non-implmeneted or broken and returns immediately, causing beastie.4th to spin in a tight loop calling the "read RTC" function millions of times, triggering the problem quickly. Therefore, we keep reading the BIOS value until we get the same result twice. This change fixes beastie.4th's countdown under qemu. Approved by: des (mentor)
* Fix the incorrect calculation of a block address within a single indirectkib2008-06-071-1/+1
| | | | | | | | block. PR: 108215 Submitted by: Yuichiro Goto, y7goto gmail com MFC after: 2 weeks
* Workaround a bug in the BIOS of Dell R900 machines. Specifically, eachjhb2008-06-071-1/+4
| | | | | | | | | | | | | entry in the SMAP is a 20 byte structure and they are queried from the BIOS via sucessive BIOS calls. Due to an apparent bug in the R900's BIOS, for some SMAP requests the BIOS overflows the 20 byte buffer trashing a few bytes of memory immediately after the SMAP structure. As a workaround, add 8 bytes of padding after the SMAP structure used in the loader for SMAP queries. PR: i386/122668 Submitted by: Mike Hibler mike flux.utah.edu, silby MFC after: 3 days
* Add an entry for the jme(4) module.yongari2008-05-271-0/+1
|
* Add an entry for the age(4) module.yongari2008-05-191-0/+1
|
* Revert the previous change and let PROBE_KEYBOARD function identical to -Pjhb2008-04-091-4/+2
| | | | in boot2/gptboot.
* Add a couple of missing wireless NIC driver modules.weongyo2008-04-081-0/+5
| | | | Approved by: thompsa (mentor)
* Add a couple of missing NIC driver modules.brueffer2008-03-281-0/+6
| | | | | Approved by: rwatson (mentor) MFC after: 3 days
* Fix some "in in" typos in comments.brueffer2008-03-262-2/+2
| | | | | | | PR: 121490 Submitted by: Anatoly Borodin <anatoly.borodin@gmail.com> Approved by: rwatson (mentor), jkoshy MFC after: 3 days
OpenPOWER on IntegriCloud