summaryrefslogtreecommitdiffstats
path: root/sys/boot/sparc64
Commit message (Collapse)AuthorAgeFilesLines
* Fix masking of TTE bits; the TD_*_MASK macros need shifting via themarius2009-04-141-5/+7
| | | | | | corresponding TD_*_SHIFT. MFC after: 3 days
* Fix whitespace.marius2009-04-131-3/+3
|
* Fix build when WITH_SSP is set explicitly.ru2009-02-211-2/+1
| | | | Submitted by: Jeremie Le Hen
* - Use the generally more appropriate PROM base rather than themarius2009-02-101-4/+4
| | | | | | | | | kernel one as the non-faulting flush address in the loader so we can can change KERNBASE and VM_MIN_KERNEL_ADDRESS if we ever want to without needing to worry about using a compatible loader. - Correctly check for LOADER_DEBUG. - Add a missing const for page_sizes[].
* 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
* 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.
* 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.
* - 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.
* cosmetic changes and style fixesmarius2008-08-221-4/+7
|
* - 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.
* Enable GCC stack protection (aka Propolice) for userland:ru2008-06-252-0/+4
| | | | | | | | | | | | | | | | | | | | | - 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>
* - Make better use of the global chosen, memory and mmu handles insteadmarius2007-06-171-52/+78
| | | | | | | | | | | | | | | | | | | | | | | | | of obtaining them over and over again and pretending we could do anything useful without them (for chosen this includes adding a declaration and initializing it in OF_init()). - In OF_init() if obtaining the memory or mmu handle fails just call OF_exit() instead of panic() as the loader hasn't initialized the console at these early stages yet and trying to print out something causes a hang. With OF_exit() one at least has a change to get back to the OFW boot monitor and debug the problem. - Fix OF_call_method() on 64-bit machines (this is a merge of sys/dev/ofw/openfirm.c rev 1.6). - Replace OF_alloc_phys(), OF_claim_virt(), OF_map_phys() and OF_release_phys() in the MI part of the loader with wrappers around OF_call_method() in the sparc64. Beside the fact that they duplicate OF_call_method() the formers should never have been in the MI part of the loader as contrary to the OFW spec they use two-cell physical addresses. - Remove unused functions which are also MD dupes of OF_call_method(). - In sys/boot/sparc64/loader/main.c add __func__ to panic strings as different functions use otherwise identical panic strings and make some of the panic strings a tad more user-friendly instead of just mentioning the name of the function that returned an unexpected result.
* - Remove dupe and unused declarations and prototypes.marius2007-06-161-67/+54
| | | | | | | | - Add missing prototypes. - Define global variables not used outside of this module as static. - Replace some outdated hard-coded functions names in panic strings with __func__. - Fix some style(9) bugs.
* add an interface for passing the entire kernel size up front to thekmacy2006-12-181-1/+50
| | | | | loader so that it can memory can be allocated aligned at the beginning of the desired large page
* remove CDDL derive hcall.Skmacy2006-11-231-986/+0
|
* Don't unconditionally compile-in the bcache code. It's only used onmarcel2006-11-021-2/+0
| | | | | i386/amd64 and pc98. Remove useless calls to bcache_init() from the ia64 and sparc64 loaders, as well as from the OFW common code.
* unbreak sparc64 loader buildkmacy2006-10-091-1/+0
| | | | | | | | re-add accidentally deleted asi value remove sun4v only header include Approved by: rwatson (mentor) Reviewed by: jmg
* add sun4v support to the sparc64 boot loaderkmacy2006-10-092-8/+1093
| | | | | | Approved by: rwatson (mentor) Reviewed by: jmg Tested by: kris, dwhite, and jmg
* Reimplementation of world/kernel build options. For details, see:ru2006-03-171-1/+3
| | | | | | | | 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)
* Add loader(8) variables for RB_DFLTROOT, RB_MUTE, and RB_PAUSE:ru2005-09-221-2/+8
| | | | "boot_dfltroot", "boot_mute", and "boot_pause" respectively.
* - Change the code that determines whether to use a serial console andmarius2005-08-151-17/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | which serial device to use in that case respectively to not rely on the OFW names of the input/output and stdin/stdout devices. Instead check whether input and output refers to the same device and is of type serial (uart(4) was already doing this) and for the fallback to a serial console in case a keyboard is the selected input device but unplugged do the same for stdin and stdout in case the input device is nonexistent (PS/2 and USB keyboards) or has a 'keyboard' property (RS232 keyboards). Additionally also check whether the OFW did a fallback to a serial console in the same way in case the output device is nonexistent. While at it save on some variables and for sys/boot/sparc64/loader/metadata.c move the code in question to a new function md_bootserial() so it can be kept in sync with uart_cpu_getdev_console() more easily. This fixes selecting a serial console and the appropriate device when using a device path for the 'input-device' and 'output-device' OFW environment variables instead of an alias for the serial device to use or when using a screen alias that additionally denotes a video mode (like e.g. 'screen:r1024x768x60') but no keyboard is plugged in (amongst others). It also makes the code select a serial console in case the OFW did the same due to a misconfiguration like both 'input-device' and 'output-device' set to 'keyboard' or to a nonexisting device (whether the OFW does a fallback to a serial console in case of a misconfiguration or one ends up with just no console at all highly depends on the OBP version however). - Reduce the size of buffers that only ever need to hold the string 'serial' accordingly. Double the size of buffers that may need to hold a device path as e.g. '/pci@8,700000/ebus@5/serial@1,400000:a' exceeds 32 chars. - Remove the package handle of the '/options' node from the argument list of uart_cpu_getdev_dbgport() as it's unused there and future use is also unlikely. MFC after: 1 week
* Start each of the license/copyright comments with /*-imp2005-01-053-3/+3
|
* NOFORTH -> NO_FORTHru2004-12-211-1/+1
|
* Start the dreaded NOFOO -> NO_FOO conversion.ru2004-12-211-1/+1
| | | | OK'ed by: core
* Remove the last vestiges of the userconfig option. None of this actuallyscottl2004-12-011-4/+0
| | | | did anything, so this commit should be considered a NO-OP.
* Back out v1.24. v1.40 of sys/sparc64/sparc64/bus_machdep.c fixes thekensmith2004-09-081-3/+1
| | | | | | problem this hack was put in place for. MFC to be done if the fix to bus_machdep.c is MFC-ed.
* Temporary bandaid to help sparc64 systems with ATA disks boot. Recentkensmith2004-08-191-1/+3
| | | | | | | | | | | changes to the ATA driver cause a kernel crash, no fault of the ATA code. Work is in progress to add the necessary feature to the sparc64 kernel and this commit will be backed out when it is complete. This bandaid is being put in mostly in the interests of getting the first release snapshot done and out the door. Tested on: Ultra-10 exhibiting the insta-panic. MFC: Real Soon
* Instead of "OpenFirmware", "openfirmware", etc. use the official spellingmarius2004-08-163-3/+3
| | | | | | "Open Firmware" from IEEE 1275 and OpenFirmware.org (no pun intended). Ok'ed by: tmm
* To quote the submitter:marcel2004-04-041-3/+15
| | | | | | | | | | | | | | | | | | | "...If "keyboard" is the selected input-device and "screen" the output-device (both via /options) but the keyboard is unplugged, OF automatically switches to ttya for the console, it even prints a line telling so on "screen". Solaris respects this behaviour and uses ttya as the console in this case and people probably expect FreeBSD to do the same (it's also very handy to temporarily switch consoles)..." "...I changed the comparison of the console device with "ttya" || "ttyb" to "tty" because on AXe boards all 4 onboard UARTs end in SUB-D connectors (ttya and ttyb being 16550 and ttyc and ttyd a SAB82532) and there's no Sun keyboard connector (but PS/2). If one plugs a serial card in a box there also can be more than just ttya and ttyb available for a console..." Submitted by: Marius Strobl <marius@alchemy.franken.de> Has no doubt that the change is correct: marcel
* _start.S -> _start.s as the latter is pure asm file.ru2004-02-112-9/+1
| | | | Repocopied by: joe
* Since loader(8) on SPARC64 is a pure ELF executable (as opposedru2004-02-101-1/+0
| | | | | | to other architectures), there is no reason not to strip(1) it. Tested by: kensmith
* MFi386.ru2004-02-093-52/+28
| | | | | | | | - Factor out common settings and put them in an upper level Makefile.inc. - Properly use PROG for real programs, not their products. - Further reduce diffs to i386 versions. Tested on: sparc64 (panther)
* Convert to __FBSDID.obrien2004-01-043-4/+7
|
* Set RB_SERIAL in boothowto if the firmware output-device is ttya or ttyb.jake2003-11-111-4/+6
| | | | | | This ensures that uart gets a higher console priority than syscons when a serial console is being used. Testing against the "console" environment variable doesn't make sense since we only have one loader console driver.
* NFS support should be conditional on LOADER_NFS_SUPPORT, nottmm2003-07-111-1/+1
| | | | LOADER_NET_SUPPORT.
* Remember to release the loader's heap.jake2003-06-151-1/+7
| | | | Reviewed by: tmm
* Commit a missed change to keep in sync with the MI elf loader.peter2003-05-011-4/+4
|
* Also look for an "elf64 kernel" (for sparc64) and "elf32 kernel" (forpeter2003-04-301-1/+3
| | | | powerpc) when building metadata.
* Cut&Paste considered far too easy:phk2003-04-161-1/+0
| | | | Don't include <sys/disklabel.h>
* Libdisk does not need to include <sys/diskslice.h> any more.phk2003-04-041-2/+0
| | | | | | | | | Move the remaining bits of <sys/diskslice.h> to <i386/include/bootinfo.h> Move i386/pc98 specific bits from <sys/reboot.h> to <i386/include/bootinfo.h> as well. Adjust includes in sys/boot accordingly.
* Fix breakage from earlier inadvertant changes.jake2002-12-201-4/+0
|
* Renamed the loader's zipfs to gzipfs. zipfs.c was repo-copied to gzipfs.c.jake2002-12-191-1/+4
|
* Change the device path representation in libofw to use the full firmwarejake2002-11-103-48/+25
| | | | | | | | | path, instead of an internal i386 specific one. Don't try to interpret a disklabel in ofw_disk.c, open the partition's device node directly and let the firmware do it. This fixes booting from a partition other than 'a' on sparc64, which is needed to support more installation methods. No objection: ppc
* Pass the right number of tlb slots to the kernel. The allocation schemetmm2002-10-181-10/+4
| | | | | | | was changed in r1.4, but I neglected to update most of the code in metadata.c. Pointy hat to: tmm
* Compile in support for zipfs and bzipfs so we can load the gzipped mfsrootjake2002-10-132-0/+14
| | | | that releases use.
* Remove NOFORTH=yes, it seems to work now thanks to scottl.jake2002-09-021-1/+0
|
* - Do not pretend to compile a kernel and remove the definitionrobert2002-08-211-2/+0
| | | | | | | of the _KERNEL macro. - Do not include <sys/pcpu.h> for no reason. Suggested by: jake
* - Define the macro _KERNEL to pretend we are compiling a kernel.robert2002-08-211-1/+2
| | | | | | | | | | This is required by recent changes to <sys/pcpu.h>, which uses the #error preprocessor directive to keep non-kernel applications from using it. _KERNEL is defined below the #include <stand.h>, because <stand.h> removes the definition of _KERNEL. - Move the inclusion of <sys/queue.h> above the inclusion of <sys/linker.h> to avoid syntax errors.
* Print out the strings in vers.o instead of hardcoding the loader banner.jake2002-08-041-2/+4
|
OpenPOWER on IntegriCloud