#
02463fb4 |
|
05-Mar-2024 |
X512 <danger_mail@list.ru> |
kernel/int: consolidate interrupt vector number to `int32` This is no-op for 32 bit platforms because `int32` is defined as `long` there. Change interrupt vector number from 64 bits to 32 bits for 64 bit platforms. Change-Id: I52d1ad616cab16488804e9733c7afaf772a670ba Reviewed-on: https://review.haiku-os.org/c/haiku/+/7507 Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org> Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com>
|
#
b799d160 |
|
15-Jun-2023 |
David Karoly <karolyd577@gmail.com> |
kernel/arm/paging: implement Modified Flag * Introduce SWDBM flag similarly to the arm64 port * Reuse TEX[2] for SWDBM flag which should be availble to be used by the operating system if TEX remap is enabled. * Introduce SetAndClearPageTableEntryFlags for updating accessed and modified flags atomically * Startup sequence is handled similarly to accessed flag, i.e. set Modified flag in initially mapped pages in bootloader and early map. * Once the kernel initialization has progressed enough, pages are mapped as read-only and modified flag handling is done in the page fault handler. Change-Id: I8f761e2c6325d1b91481abd569d5e8befded0761 Reviewed-on: https://review.haiku-os.org/c/haiku/+/6518 Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org> Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
|
#
f61fb770 |
|
30-May-2023 |
David Karoly <karolyd577@gmail.com> |
kernel/arm: don't set Accessed Flag when initially mapping a page Pages should not be marked as accessed when initially mapping them. However, there's a short interval during kernel startup when new pages are mapped but the fault handler is not installed yet. Therefore, we set Accessed Flag to 1 in early_map. Once the kernel initialization has progressed enough, we start mapping new pages with Accessed Flag set to 0. The chicken and egg problem of initially mapping the vector page is tackled by preallocating the vector page in the boot loader. Change-Id: Ie3be4f81812d7a090af57e8c79420598d16182b9 Reviewed-on: https://review.haiku-os.org/c/haiku/+/6450 Reviewed-by: Fredrik Holmqvist <fredrik.holmqvist@gmail.com> Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
|
#
cce0386a |
|
10-May-2023 |
David Karoly <karolyd577@gmail.com> |
kernel/arm/paging: implement Accessed Flag handling Change-Id: Ida5f8faa538df9244e44ef30a73b61b2ffb693af Reviewed-on: https://review.haiku-os.org/c/haiku/+/6444 Reviewed-by: Fredrik Holmqvist <fredrik.holmqvist@gmail.com> Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
|
#
c13766fc |
|
09-May-2023 |
David Karoly <karolyd577@gmail.com> |
kernel/arm: check for access flag fault in page fault handler Change-Id: Icc782a692e5dcd861958ffea934386b4d4e569c7 Reviewed-on: https://review.haiku-os.org/c/haiku/+/6428 Reviewed-by: waddlesplash <waddlesplash@gmail.com>
|
#
19537d01 |
|
07-May-2023 |
David Karoly <karolyd577@gmail.com> |
kernel/arm: adjust function names for getting/setting SCTLR Change-Id: I28d6101c772a5065beec5af20f6d2a0c1855ae6c Reviewed-on: https://review.haiku-os.org/c/haiku/+/6421 Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org> Reviewed-by: David Karoly <karolyd577@gmail.com>
|
#
60b19d7e |
|
17-Mar-2023 |
David Karoly <karolyd577@gmail.com> |
kernel/arm: implement signals, fork, restart syscall Change-Id: I24219b83d90710ef719190183ba6f069f82dae61 Reviewed-on: https://review.haiku-os.org/c/haiku/+/6198 Tested-by: Automation <automation@haiku-os.org> Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
|
#
3bfbf2fb |
|
05-Sep-2022 |
David Karoly <karolyd577@gmail.com> |
kernel/arm: check for PXN and alignment fault in page fault handler Change-Id: I2a863b57b1252343c9c029d1bb5af8d328558576 Reviewed-on: https://review.haiku-os.org/c/haiku/+/5620 Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org> Reviewed-by: waddlesplash <waddlesplash@gmail.com>
|
#
72274d4a |
|
05-Sep-2022 |
David Karoly <karolyd577@gmail.com> |
kernel/arm: refactor page fault handling Introduce common page fault handler so we don't have to do code duplication. Change-Id: Ib9fa6a3d38e137e43911a24a3405c7c3f1de5908 Reviewed-on: https://review.haiku-os.org/c/haiku/+/5619 Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org> Reviewed-by: waddlesplash <waddlesplash@gmail.com>
|
#
17569c02 |
|
04-Sep-2022 |
David Karoly <karolyd577@gmail.com> |
kernel/arm: clean up arch-specific defines * align fault syndrome and fault address register naming with ARM Architecture Reference Manual (i.e. IFSR, DFSR, IFAR, DFAR) * move PSR bitfield defines to arch_cpu_defs.h Change-Id: I813045eec335ffbdd75270ad5a1afb2f222f73c8 Reviewed-on: https://review.haiku-os.org/c/haiku/+/5618 Reviewed-by: Fredrik Holmqvist <fredrik.holmqvist@gmail.com> Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
|
#
c791590a |
|
02-Sep-2022 |
David Karoly <karolyd577@gmail.com> |
kernel/arm: fix iframe unwinding * add missing call to thread_get_current_thread() * apply some better formatting to iframe printout * pass iframe in lr to exception handlers * add missing iframe scope in syscall handler (was removed previously by mistake) Change-Id: I01c34f2114cd874f72f91be428921ad2002e256a Reviewed-on: https://review.haiku-os.org/c/haiku/+/5611 Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org> Reviewed-by: waddlesplash <waddlesplash@gmail.com>
|
#
e96dc7db |
|
01-Sep-2022 |
David Karoly <karolyd577@gmail.com> |
kernel/arm/int: print user SP and LR from iframe Change-Id: If3ad93f00c869321b1897f8e779e435b25d244f7 Reviewed-on: https://review.haiku-os.org/c/haiku/+/5609 Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org> Reviewed-by: David Karoly <karolyd577@gmail.com>
|
#
1b95b1e8 |
|
03-Jul-2022 |
David Karoly <karolyd577@gmail.com> |
kernel/arm/int: convert TRACE to new syntax and hush Change-Id: I8945ad621aee2bc1c8d8852bb1c220936e567d86 Reviewed-on: https://review.haiku-os.org/c/haiku/+/5430 Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk> Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
|
#
cda13c63 |
|
14-Mar-2022 |
Adrien Destugues <pulkomandy@pulkomandy.tk> |
ARM: add support for Allwinner A10 interrupt controller Untested so far. Change-Id: I3453115599cf2112858a194173212401ae4ac1b7 Reviewed-on: https://review.haiku-os.org/c/haiku/+/5104 Reviewed-by: Fredrik Holmqvist <fredrik.holmqvist@gmail.com> Reviewed-by: David Karoly <karolyd577@gmail.com> Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com> Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
|
#
4c6e7a4b |
|
24-Feb-2022 |
David Karoly <karolyd577@gmail.com> |
kernel/arm: implement prefetch abort handler Change-Id: I39c330a44ad36ede41c7727017dd733d07288be9 Reviewed-on: https://review.haiku-os.org/c/haiku/+/4983 Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org> Reviewed-by: Fredrik Holmqvist <fredrik.holmqvist@gmail.com>
|
#
1b895c83 |
|
22-Feb-2022 |
David Karoly <karolyd577@gmail.com> |
kernel/arm: implement syscall handler Change-Id: I75f2fb7808f55a460835276ca66cce8a26e8403d Reviewed-on: https://review.haiku-os.org/c/haiku/+/4980 Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org> Reviewed-by: X512 <danger_mail@list.ru> Reviewed-by: Fredrik Holmqvist <fredrik.holmqvist@gmail.com>
|
#
4ddef6e7 |
|
18-Feb-2022 |
David Karoly <karolyd577@gmail.com> |
kernel/arm: detect read/write access in data abort handler Use Data Fault Status Register's bit 11 to initialize isWrite. see: ARMv7 Architecture Reference Manual,section B3.9.5 Distinguishing read and write accesses on Data Abort exceptions Change-Id: I7da6702fc0e9579e5cb09cba3c5c89f004ec268a Reviewed-on: https://review.haiku-os.org/c/haiku/+/4972 Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org> Reviewed-by: Jérôme Duval <jerome.duval@gmail.com> Reviewed-by: waddlesplash <waddlesplash@gmail.com>
|
#
b3780b56 |
|
03-Dec-2021 |
David Karoly <karolyd577@gmail.com> |
kernel/arch/arm/int: enable OMAP3 and PXA intc drivers Change-Id: I83ab8cd4c474bd374f66a39d9a60c778dd7033e8 Reviewed-on: https://review.haiku-os.org/c/haiku/+/4757 Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
|
#
36d65a78 |
|
02-Dec-2021 |
David Karoly <karolyd577@gmail.com> |
kernel/arch/arm/int: add initialization code for GICv2 Change-Id: I4f98a4e0277ce37e758cabbb04806cf13f351f1e Reviewed-on: https://review.haiku-os.org/c/haiku/+/4674 Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org> Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
|
#
3c259739 |
|
01-Dec-2021 |
Augustin Cavalier <waddlesplash@gmail.com> |
kernel/int: Allow arch_int_assign_to_cpu to make its own decisions. For now this is used on RISCV64 to indicate that interrupts will always be on CPU 0. However, in the future, some architectures may want or require interrupts to be "steered" in various ways, and this also paves the way for that. Change-Id: Iec79870cf5c4898d102d0e624de19602271ae772 Reviewed-on: https://review.haiku-os.org/c/haiku/+/4721 Reviewed-by: waddlesplash <waddlesplash@gmail.com> Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com> Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
|
#
65aab788 |
|
25-Oct-2021 |
David Karoly <karolyd577@gmail.com> |
kernel/arch/arm/int: add irq postlude Change-Id: If3dcd2f7d3c0385ecc699b4de4359a14a189fff0 Reviewed-on: https://review.haiku-os.org/c/haiku/+/4673 Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org> Reviewed-by: Fredrik Holmqvist <fredrik.holmqvist@gmail.com>
|
#
d5bac4fd |
|
20-Oct-2021 |
David Karoly <karolyd577@gmail.com> |
kernel/arch/arm: fix build - comment out fdt stuff as it's completely broken now Change-Id: I8c0c5da0a915969176afea9e0e2cc2f831a18d59 Reviewed-on: https://review.haiku-os.org/c/haiku/+/4619 Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com> Reviewed-by: Adrien Destugues <pulkomandy@gmail.com> Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
|
#
aa3083e0 |
|
29-Jan-2017 |
Freeman Lou <freemanlou2430@yahoo.com> |
Style fixes to various parts of the system. Signed-off-by: Adrien Destugues <pulkomandy@pulkomandy.tk> This patch was never applied after GSoC 2012. Rebase the parts that still apply so we can close the ticket. Fixes #9490.
|
#
a52dd58d |
|
31-Oct-2014 |
Ithamar R. Adema <ithamar@upgrade-android.com> |
ARM: kernel: introduce SoC abstraction This introduces InterruptController and HardwareTimer classes to handle the SoC specific implementations of timers and ints for the ARM platform. These could be improved and moved to a more 'generic' level once we're confident they are 'good enough'. NOTE: The OMAP timer implementation is fully untested and probably completely non-functional....
|
#
95e97463 |
|
14-Sep-2014 |
Paweł Dziepak <pdziepak@quarnos.org> |
kernel: add generic wrapper for accessing user memory This patch adds user_access() which can be used to gracefully handle page faults that may happen when accessing user memory. It is used by arch_cpu_user{memcpy, memset, strlcpy}() to allow using optimized functions from the standard library. Currently only x64 uses this, but nothing really is arch specific here. Signed-off-by: Paweł Dziepak <pdziepak@quarnos.org>
|
#
3eb1ffdb |
|
15-Feb-2014 |
Ithamar R. Adema <ithamar@upgrade-android.com> |
kernel/arm: implement stubs for new functions These were mostly introduced after the scheduler merge.
|
#
e7c330c6 |
|
18-Sep-2013 |
Ithamar R. Adema <ithamar@upgrade-android.com> |
ARM: improve error output, fix iframe reporting.
|
#
cc65466f |
|
17-Sep-2013 |
Ithamar R. Adema <ithamar@upgrade-android.com> |
ARM: kernel: Make KDL more useful on ARM This adds the -mapcs-frame compiler flag for ARM to have "stable" stack frames, adds support to the kernel for dumping stack crawls, and initial support for iframes. There' much more functionality to unlock in KDL, but this makes debugging already a lot more comfortable.....
|
#
966f2076 |
|
06-Mar-2013 |
Pawel Dziepak <pdziepak@quarnos.org> |
x86: enable data execution prevention Set execute disable bit for any page that belongs to area with neither B_EXECUTE_AREA nor B_KERNEL_EXECUTE_AREA set. In order to take advanage of NX bit in 32 bit protected mode PAE must be enabled. Thus, from now on it is also enabled when the CPU supports NX bit. vm_page_fault() takes additional argument which indicates whether page fault was caused by an illegal instruction fetch.
|
#
85db2281 |
|
04-Dec-2012 |
Michael Lotz <mmlr@mlotz.ch> |
Style cleanup only.
|
#
e2b8ceb2 |
|
07-Nov-2012 |
Ithamar R. Adema <ithamar@upgrade-android.com> |
ARM/int: remove CPU fault handler debug output
|
#
f86b5828 |
|
06-Nov-2012 |
Ithamar R. Adema <ithamar@upgrade-android.com> |
ARM: Cleanup of port support code. This also implements the fault handler correctly now, and cleans up the exception handling. Seems a lot more stable now, no unexpected panics or faults happening anymore.
|
#
02081e09 |
|
04-Nov-2012 |
Ithamar R. Adema <ithamar@upgrade-android.com> |
ARM: Initial implementation of interrupt/exception handling. This contains both the common ARM(v5) vector handling as well as the PXA(verdex) specific interrupt controller code, to be seperated when ARM support for FDT is implemented. Functional enough to handle interrupts, needs work on KDL support.
|
#
258d4ef9 |
|
26-Apr-2012 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
kernel arm: Quick style cleanup; No functional change
|
#
9de17be6 |
|
14-Apr-2010 |
Axel Dörfler <axeld@pinc-software.de> |
* Moved I/O APIC initialization to a later point, now the APCI and DPC modules can safely be used. * Since using the I/O APIC is disabled by default, I've removed the "return" that prevented its use when enabled. Let's see if it already does anything. * Adapted other arch_int.cpp with a bit of cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36290 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
e50cf876 |
|
02-Dec-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Moved the VM headers into subdirectory vm/. * Renamed vm_cache.h/vm_address_space.h to VMCache.h/VMAddressSpace. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34449 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
23eafdaf |
|
13-Aug-2009 |
François Revol <revol@free.fr> |
[GSoC] [ARM] Patch by Johannes Wischert. - stubbed out many arch kernel functions (borrowed from other archs), - partially implement ELF relocations code, enough to load the kernel, - move uart.c to kernel sources and use the same one for the loader, - default implementation for gensyscalls, - assembler code functions for interrupt masking (enable/disable/restore/query). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32327 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
a52dd58d2da9adad93ad49b33181da57849c8ad5 |
|
31-Oct-2014 |
Ithamar R. Adema <ithamar@upgrade-android.com> |
ARM: kernel: introduce SoC abstraction This introduces InterruptController and HardwareTimer classes to handle the SoC specific implementations of timers and ints for the ARM platform. These could be improved and moved to a more 'generic' level once we're confident they are 'good enough'. NOTE: The OMAP timer implementation is fully untested and probably completely non-functional....
|
#
95e97463d265c9f4a6e43265ef0f1f63a0825b21 |
|
14-Sep-2014 |
Paweł Dziepak <pdziepak@quarnos.org> |
kernel: add generic wrapper for accessing user memory This patch adds user_access() which can be used to gracefully handle page faults that may happen when accessing user memory. It is used by arch_cpu_user{memcpy, memset, strlcpy}() to allow using optimized functions from the standard library. Currently only x64 uses this, but nothing really is arch specific here. Signed-off-by: Paweł Dziepak <pdziepak@quarnos.org>
|
#
3eb1ffdb6cf7e94ae25af3a9571429101945c955 |
|
15-Feb-2014 |
Ithamar R. Adema <ithamar@upgrade-android.com> |
kernel/arm: implement stubs for new functions These were mostly introduced after the scheduler merge.
|
#
e7c330c6f3d36d1ccb98be6f0eb4bae1ff9be160 |
|
18-Sep-2013 |
Ithamar R. Adema <ithamar@upgrade-android.com> |
ARM: improve error output, fix iframe reporting.
|
#
cc65466f0de34d946d9311517f4e7781b7294ef8 |
|
17-Sep-2013 |
Ithamar R. Adema <ithamar@upgrade-android.com> |
ARM: kernel: Make KDL more useful on ARM This adds the -mapcs-frame compiler flag for ARM to have "stable" stack frames, adds support to the kernel for dumping stack crawls, and initial support for iframes. There' much more functionality to unlock in KDL, but this makes debugging already a lot more comfortable.....
|
#
966f207668d19610dae34d5331150e3742815bcf |
|
06-Mar-2013 |
Pawel Dziepak <pdziepak@quarnos.org> |
x86: enable data execution prevention Set execute disable bit for any page that belongs to area with neither B_EXECUTE_AREA nor B_KERNEL_EXECUTE_AREA set. In order to take advanage of NX bit in 32 bit protected mode PAE must be enabled. Thus, from now on it is also enabled when the CPU supports NX bit. vm_page_fault() takes additional argument which indicates whether page fault was caused by an illegal instruction fetch.
|
#
85db22817795bddf17313dd977740bcaadc2f851 |
|
04-Dec-2012 |
Michael Lotz <mmlr@mlotz.ch> |
Style cleanup only.
|
#
e2b8ceb23c2f85f51e4541a11fd1838be45a3e2c |
|
07-Nov-2012 |
Ithamar R. Adema <ithamar@upgrade-android.com> |
ARM/int: remove CPU fault handler debug output
|
#
f86b5828486b661145eb15952ec14648c9bb8d9b |
|
06-Nov-2012 |
Ithamar R. Adema <ithamar@upgrade-android.com> |
ARM: Cleanup of port support code. This also implements the fault handler correctly now, and cleans up the exception handling. Seems a lot more stable now, no unexpected panics or faults happening anymore.
|
#
02081e0950d201a246c8adb86a92a8bb65e28490 |
|
04-Nov-2012 |
Ithamar R. Adema <ithamar@upgrade-android.com> |
ARM: Initial implementation of interrupt/exception handling. This contains both the common ARM(v5) vector handling as well as the PXA(verdex) specific interrupt controller code, to be seperated when ARM support for FDT is implemented. Functional enough to handle interrupts, needs work on KDL support.
|
#
258d4ef93d3f51cef60b05d1c5ae418108b55782 |
|
26-Apr-2012 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
kernel arm: Quick style cleanup; No functional change
|
#
9de17be600220db91400c27772b19546284f470f |
|
14-Apr-2010 |
Axel Dörfler <axeld@pinc-software.de> |
* Moved I/O APIC initialization to a later point, now the APCI and DPC modules can safely be used. * Since using the I/O APIC is disabled by default, I've removed the "return" that prevented its use when enabled. Let's see if it already does anything. * Adapted other arch_int.cpp with a bit of cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36290 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
e50cf8765be50a7454c9488db38b638cf90805af |
|
02-Dec-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Moved the VM headers into subdirectory vm/. * Renamed vm_cache.h/vm_address_space.h to VMCache.h/VMAddressSpace. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34449 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
23eafdaf313f2e756170f6a543205311a4d9bc96 |
|
13-Aug-2009 |
François Revol <revol@free.fr> |
[GSoC] [ARM] Patch by Johannes Wischert. - stubbed out many arch kernel functions (borrowed from other archs), - partially implement ELF relocations code, enough to load the kernel, - move uart.c to kernel sources and use the same one for the loader, - default implementation for gensyscalls, - assembler code functions for interrupt masking (enable/disable/restore/query). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32327 a95241bf-73f2-0310-859d-f6bbb57e9c96
|