aboutsummaryrefslogtreecommitdiff
path: root/sys/powerpc/aim/locore32.S
Commit message (Collapse)AuthorAgeFilesLines
* powerpc64: Add a trap stack areaLeandro Lupori2019-02-041-0/+6
| | | | | | | | | | | | | | | | | | | | Currently, the trap code switches to the the temporary stack in the dbtrap section. It works in most cases, but in the beginning of the execution, the temp stack is being used, as starting in the powerpc_init() code. In this current scenario, the stack is being overwritten, which causes the return of breakpoint() to take abnormal execution. This current patchset create a small stack to use by the dbtrap: codepath avoiding the corruption of the temporary stack. PR: 224872 Submitted by: breno.leitao_gmail.com Reviewed by: jhibbits Differential Revision: https://reviews.freebsd.org/D14484 Notes: svn path=/head/; revision=343744
* powerpc: Don't include KERNBASE in genassym, it's unnecessaryJustin Hibbits2018-11-281-0/+1
| | | | | | | | | | | | A related future change, which changes KERNBASE for Book-E for some reason causes a "KERNBASE redefined" error with assym.inc, even though it only changed the value of KERNBASE and nothing else. Since machine/vmparam.h is already included in booke/locore.S, and the requisite guards are already in place for properly handling KERNBASE in vmparam.h, just remove it from genassym, and include vmparam.h in the AIM locore files. Notes: svn path=/head/; revision=341148
* Rename assym.s to assym.incEd Maste2018-03-201-1/+1
| | | | | | | | | | | | assym is only to be included by other .s files, and should never actually be assembled by itself. Reviewed by: imp, bdrewery (earlier) Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D14180 Notes: svn path=/head/; revision=331254
* Use the cookie now set by loader to determine whether the value passed toNathan Whitehorn2017-11-261-1/+3
| | | | | | | | | | | | | | | | PowerPC kernels in r6 is actually metadata from loader(8) or gibberish left in r6, which is not required to be anything under the PAPR/ePAPR/CHRP/OF standards, by another boot loader. Note that, as a result, systems need a new boot loader to boot PPC kernels after this revision without ending up at a mountroot prompt. New boot loaders are backwards compatible and can boot older kernels. Reviewed by: jhibbits MFC after: 2 months Notes: svn path=/head/; revision=326220
* Remove dead code and dead comments, most notably the implemenation of theNathan Whitehorn2016-01-101-66/+5
| | | | | | | | now-obsolete setfault(). No NetBSD code exists in the AIM locore files, so update the copyrights there. Notes: svn path=/head/; revision=293641
* Make 32-bit PowerPC kernels, like 64-bit PowerPC kernels, position-independentNathan Whitehorn2015-03-071-23/+34
| | | | | | | | | executables. The goal here, not yet accomplished, is to let the e500 kernel run under QEMU by setting KERNBASE to something that fits in low memory and then having the kernel relocate itself at runtime. Notes: svn path=/head/; revision=279750
* Remove FreeBSD/wii.Rui Paulo2015-02-101-3/+1
| | | | | | | | | | | | | This port failed to gain traction and probably only a couple Wii consoles ran FreeBSD all the way to single user mode with an md(4). IPC support was never implemented, so it was impossible to use any peripheral Any further development, if any, will happen at https://github.com/rpaulo/wii. Discussed with: nathanw (a long time ago), jhibbits Notes: svn path=/head/; revision=278495
* Refactor PowerPC (especially AIM) init sequence to be less baroque.Nathan Whitehorn2015-01-181-50/+6
| | | | | | | MFC after: 2 months Notes: svn path=/head/; revision=277334
* - For kernel compiled only with KDTRACE_HOOKS and not any lock debuggingAttilio Rao2013-11-251-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | option, unbreak the lock tracing release semantic by embedding calls to LOCKSTAT_PROFILE_RELEASE_LOCK() direclty in the inlined version of the releasing functions for mutex, rwlock and sxlock. Failing to do so skips the lockstat_probe_func invokation for unlocking. - As part of the LOCKSTAT support is inlined in mutex operation, for kernel compiled without lock debugging options, potentially every consumer must be compiled including opt_kdtrace.h. Fix this by moving KDTRACE_HOOKS into opt_global.h and remove the dependency by opt_kdtrace.h for all files, as now only KDTRACE_FRAMES is linked there and it is only used as a compile-time stub [0]. [0] immediately shows some new bug as DTRACE-derived support for debug in sfxge is broken and it was never really tested. As it was not including correctly opt_kdtrace.h before it was never enabled so it was kept broken for a while. Fix this by using a protection stub, leaving sfxge driver authors the responsibility for fixing it appropriately [1]. Sponsored by: EMC / Isilon storage division Discussed with: rstone [0] Reported by: rstone [1] Discussed with: philip Notes: svn path=/head/; revision=258541
* Setup BAT0 and BAT1 on the Wii.Adrian Chadd2012-11-211-1/+4
| | | | | | | | | | | | | | | This is the missing piece for FreeBSD/Wii, but there's still a lot of work ahead. We have to reset the MMU in locore before continuing the boot process because we don't know how the boot loaders might have setup the BATs. We also disable the PCI BAT because there's no PCI bus on the Wii. Thanks to Nathan Whitehorn and Peter Grenhan for their help. Submitted by: Margarida Gouveia Notes: svn path=/head/; revision=243370
* Implement DTrace for PowerPC. This includes both 32-bit and 64-bit.Justin Hibbits2012-11-071-0/+2
| | | | | | | | | | | | | | There is one known issue: Some probes will display an error message along the lines of: "Invalid address (0)" I tested this with both a simple dtrace probe and dtruss on a few different binaries on 32-bit. I only compiled 64-bit, did not run it, but I don't expect problems without the modules loaded. Volunteers are welcome. MFC after: 1 month Notes: svn path=/head/; revision=242723
* The `end' symbol doesn't match the end of the kernel image because it'sRui Paulo2012-06-291-3/+4
| | | | | | | | | | | | | | | | relative to the start address (unless the start address is 0, which is not the case). This is currently not a problem because all powerpc architectures are using loader(8) which passes metadata to the kernel including the correct `endkernel' address. If we don't use loader(8), register 4 and 5 will have the size of the kernel ELF file, not its end address. We fix that simply by adding `kernel_text' to `end' to compute `endkernel'. Discussed with: nathanw Notes: svn path=/head/; revision=237737
* Zero BSS on start, in case the ELF loader that started the kernel did notNathan Whitehorn2011-12-161-0/+11
| | | | | | | | | do this for us. This can happen on some embedded systems. Submitted by: rpaulo Notes: svn path=/head/; revision=228605
* This a follow up commit from r224216 for powerpc 32-bit. IncreaseAndreas Tobler2011-07-251-2/+2
| | | | | | | | | | the storage size for sintrcnt/sintrnames to .long. Reviewed by: nwhitehorn Approved by: re (kib) Notes: svn path=/head/; revision=224400
* - Remove the eintrcnt/eintrnames usage and introduce the concept ofAttilio Rao2011-07-181-2/+5
| | | | | | | | | | | | | | | | | | | sintrcnt/sintrnames which are symbols containing the size of the 2 tables. - For amd64/i386 remove the storage of intr* stuff from assembly files. This area can be widely improved by applying the same to other architectures and likely finding an unified approach among them and move the whole code to be MI. More work in this area is expected to happen fairly soon. No MFC is previewed for this patch. Tested by: pluknet Reviewed by: jhb Approved by: re (kib) Notes: svn path=/head/; revision=224187
* Use the ABI-mandated thread pointer register (r2 for ppc32, r13 for ppc64)Nathan Whitehorn2011-06-231-2/+1
| | | | | | | | | | | | | | | | | | instead of a PCPU field for curthread. This averts a race on SMP systems with a high interrupt rate where the thread looking up the value of curthread could be preempted and migrated between obtaining the PCPU pointer and reading the value of pc_curthread, resulting in curthread being observed to be the current thread on the thread's original CPU. This played merry havoc with the system, in particular with mutexes. Many thanks to jhb for helping me work this one out. Note that Book-E is in principle susceptible to the same problem, but has not been modified yet due to lack of Book-E hardware. MFC after: 2 weeks Notes: svn path=/head/; revision=223485
* MFpseries:Nathan Whitehorn2011-06-021-13/+0
| | | | | | | | | | | | | Renovate and improve the AIM Open Firmware support: - Add RTAS (Run-Time Abstraction Services) support, found on all IBM systems and some Apple ones - Improve support for 32-bit real mode Open Firmware systems - Pull some more OF bits over from the AIM directory - Fix memory detection on IBM LPARs and systems with more than one /memory node (by andreast@) Notes: svn path=/head/; revision=222613
* MFppc64:Nathan Whitehorn2010-07-131-0/+207
Kernel sources for 64-bit PowerPC, along with build-system changes to keep 32-bit kernels compiling (build system changes for 64-bit kernels are coming later). Existing 32-bit PowerPC kernel configurations must be updated after this change to specify their architecture. Notes: svn path=/head/; revision=209975