#
02283e08 |
|
20-Jul-2016 |
François Revol <revol@free.fr> |
M68K: drop the custom C arch_cpu_user_mem*() for the default impl I didn't notice there was a C++ version that didn't require writing asm. I'll have to write them anyway for speed someday.
|
#
990d34ef |
|
20-Jul-2016 |
François Revol <revol@free.fr> |
M68K: add arch_cpu_idle and arch_cpu_pause inline stubs Remove the stub from arch_cpu.cpp We might want to implement a 040 CPU module providing idle using LPSTOP.
|
#
dc5a16bb |
|
02-Jul-2012 |
Rene Gollent <anevilyak@gmail.com> |
Add TODO note with respect to needed asm implementations.
|
#
ea2abd11 |
|
02-Aug-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Renamed the ROUNDOWN macro to ROUNDDOWN. Also changed the implementation of ROUNDUP to use '*' and '/' -- the compiler will optimize that for powers of two anyway and this implementation works for other numbers as well. * The thread::fault_handler use in C[++] code was broken with gcc 4. At least when other functions were invoked. Trying to trick the compiler wasn't a particularly good idea anyway, since the next compiler version could break the trick again. So the general policy is to use the fault handlers only in assembly code where we have full control. Changed that for x86 (save for the vm86 mode, which has a similar mechanism), but not for the other architectures. * Introduced fault_handler, fault_handler_stack_pointer, and fault_jump_buffer fields in the cpu_ent structure, which must be used instead of thread::fault_handler in the kernel debugger. Consequently user_memcpy() must not be used in the kernel debugger either. Introduced a debug_memcpy() instead. * Introduced debug_call_with_fault_handler() function which calls a function in a setjmp() and fault handler context. The architecture specific backend arch_debug_call_with_fault_handler() has only been implemented for x86 yet. * Introduced debug_is_kernel_memory_accessible() for use in the kernel debugger. It determines whether a range of memory can be accessed in the way specified. The architecture specific back end arch_vm_translation_map_is_kernel_page_accessible() has only been implemented for x86 yet. * Added arch_debug_unset_current_thread() (only implemented for x86) to unset the current thread pointer in the kernel debugger. When entering the kernel debugger we do some basic sanity checks of the currently set thread structure and unset it, if they fail. This allows certain commands (most importantly the stack trace command) to avoid accessing the thread structure. * x86: When handling a double fault, we do now install a special handler for page faults. This allows us to gracefully catch faulting commands, even if e.g. the thread structure is toast. We are now in much better shape to deal with double faults. Hopefully avoiding the triple faults that some people have been experiencing on their hardware and ideally even allowing to use the kernel debugger normally. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32073 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
5222f12a |
|
12-Oct-2008 |
François Revol <revol@free.fr> |
- Add m68k pendant of: r27529 & r27778 - handle skipIframes parameter r27530 - allow faults with ints disabled if there is a handler r27648 - call the end-of-interrupt thread callback r27718 - add <asm_defs.h>, not used yet r27722 - register the commpage as image and symbols (but we don't use it yet) - remove dupped call to thread_get_current_thread() - use 16MB iospace for now, 4MB seems too small. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27999 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
b061bf24 |
|
01-Aug-2008 |
François Revol <revol@free.fr> |
cleanup git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26723 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
36ee9f5c |
|
24-Jul-2008 |
François Revol <revol@free.fr> |
- use a physical page for natfeat debug output for now - add 040 cpu and mmu stuff - use leftover from the page root table to put interrupt vector table to set VBR to git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26627 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
0ae19574 |
|
23-Jul-2008 |
François Revol <revol@free.fr> |
- Cleanup - rewrote early_query() to use the TT0 mapping to remove the page_hole stuff. - fixed natfeat, using a page set up from the bootloader for now as it wants physical address. At least it's enough to see from the debugger: load kernel... kernel entry at 8003711a Welcome to kernel debugger output! Haiku revision: 26582 PANIC: unknown cpu_type 68040 Welcome to Kernel Debugging Land... Running on CPU 0 kdebug> git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26599 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
1fd024be |
|
22-Jun-2008 |
François Revol <revol@free.fr> |
- missing ppc stub - kernel_m68K almost links now, jsut bails out on the linker script... git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26096 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
f0c5a3da |
|
22-Jun-2008 |
François Revol <revol@free.fr> |
- Add missing globals - stubbed commpage stuff. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26094 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
4237dbd0 |
|
22-Jun-2008 |
François Revol <revol@free.fr> |
kernel compiles but doesn't link yet. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26092 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
a3dc7ef0 |
|
19-Jun-2008 |
François Revol <revol@free.fr> |
- some cpu and platform fixes. - we'll just use decimal chip number (68030, ...) to identify cpu, fpu, and mmu for simplicity. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26041 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
807cf76d |
|
26-Apr-2008 |
François Revol <revol@free.fr> |
memory barrier functions available for drivers. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25183 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
4e44040d |
|
03-Nov-2007 |
François Revol <revol@free.fr> |
Ditto. cleanup Less ppc, more m68k :) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22822 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
ac1a8a0c |
|
27-Oct-2007 |
François Revol <revol@free.fr> |
Note on 060 equivalent of HLT. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22750 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
42b025be |
|
24-Oct-2007 |
François Revol <revol@free.fr> |
No need for ppc code there. 68030 invalidates only 1 long of a cache line each time. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22715 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
829748d8 |
|
24-Oct-2007 |
François Revol <revol@free.fr> |
Fix flushing the ATC, add flushing icache. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22709 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
ee75f852 |
|
24-Oct-2007 |
François Revol <revol@free.fr> |
This should handle TLB flushing on m68k (it's called ATC though). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22706 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
845a180f |
|
21-Oct-2007 |
François Revol <revol@free.fr> |
Unfinished kernel support for m68k. Based on ppc/x86 from r22648. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22650 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
dc5a16bb70c95c64b1203682acf5a67e19b2b882 |
|
02-Jul-2012 |
Rene Gollent <anevilyak@gmail.com> |
Add TODO note with respect to needed asm implementations.
|
#
ea2abd110bd6a4518a954477562e2dd94a5fef9d |
|
02-Aug-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Renamed the ROUNDOWN macro to ROUNDDOWN. Also changed the implementation of ROUNDUP to use '*' and '/' -- the compiler will optimize that for powers of two anyway and this implementation works for other numbers as well. * The thread::fault_handler use in C[++] code was broken with gcc 4. At least when other functions were invoked. Trying to trick the compiler wasn't a particularly good idea anyway, since the next compiler version could break the trick again. So the general policy is to use the fault handlers only in assembly code where we have full control. Changed that for x86 (save for the vm86 mode, which has a similar mechanism), but not for the other architectures. * Introduced fault_handler, fault_handler_stack_pointer, and fault_jump_buffer fields in the cpu_ent structure, which must be used instead of thread::fault_handler in the kernel debugger. Consequently user_memcpy() must not be used in the kernel debugger either. Introduced a debug_memcpy() instead. * Introduced debug_call_with_fault_handler() function which calls a function in a setjmp() and fault handler context. The architecture specific backend arch_debug_call_with_fault_handler() has only been implemented for x86 yet. * Introduced debug_is_kernel_memory_accessible() for use in the kernel debugger. It determines whether a range of memory can be accessed in the way specified. The architecture specific back end arch_vm_translation_map_is_kernel_page_accessible() has only been implemented for x86 yet. * Added arch_debug_unset_current_thread() (only implemented for x86) to unset the current thread pointer in the kernel debugger. When entering the kernel debugger we do some basic sanity checks of the currently set thread structure and unset it, if they fail. This allows certain commands (most importantly the stack trace command) to avoid accessing the thread structure. * x86: When handling a double fault, we do now install a special handler for page faults. This allows us to gracefully catch faulting commands, even if e.g. the thread structure is toast. We are now in much better shape to deal with double faults. Hopefully avoiding the triple faults that some people have been experiencing on their hardware and ideally even allowing to use the kernel debugger normally. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32073 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
5222f12a3258fc1a52606765ce4e729a5af5fc72 |
|
12-Oct-2008 |
François Revol <revol@free.fr> |
- Add m68k pendant of: r27529 & r27778 - handle skipIframes parameter r27530 - allow faults with ints disabled if there is a handler r27648 - call the end-of-interrupt thread callback r27718 - add <asm_defs.h>, not used yet r27722 - register the commpage as image and symbols (but we don't use it yet) - remove dupped call to thread_get_current_thread() - use 16MB iospace for now, 4MB seems too small. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27999 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
b061bf24716ff7a42063435ee9372fa7d50f4148 |
|
01-Aug-2008 |
François Revol <revol@free.fr> |
cleanup git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26723 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
36ee9f5c625f4d16cd61636148f3e8591b5f66a5 |
|
24-Jul-2008 |
François Revol <revol@free.fr> |
- use a physical page for natfeat debug output for now - add 040 cpu and mmu stuff - use leftover from the page root table to put interrupt vector table to set VBR to git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26627 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
0ae1957465684431b9b568cdab1302fce2b4406f |
|
23-Jul-2008 |
François Revol <revol@free.fr> |
- Cleanup - rewrote early_query() to use the TT0 mapping to remove the page_hole stuff. - fixed natfeat, using a page set up from the bootloader for now as it wants physical address. At least it's enough to see from the debugger: load kernel... kernel entry at 8003711a Welcome to kernel debugger output! Haiku revision: 26582 PANIC: unknown cpu_type 68040 Welcome to Kernel Debugging Land... Running on CPU 0 kdebug> git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26599 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
1fd024be6aeca22864132b39b549b4cd36fa47f1 |
|
22-Jun-2008 |
François Revol <revol@free.fr> |
- missing ppc stub - kernel_m68K almost links now, jsut bails out on the linker script... git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26096 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
f0c5a3da4b596f2d3de4cfa6478ee8f5c1c2f60b |
|
22-Jun-2008 |
François Revol <revol@free.fr> |
- Add missing globals - stubbed commpage stuff. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26094 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
4237dbd0fc80f59eca07b21a2d43bca8a21a41e6 |
|
22-Jun-2008 |
François Revol <revol@free.fr> |
kernel compiles but doesn't link yet. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26092 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
a3dc7ef06c18a924338b8fd916d7ea47ac50fd84 |
|
19-Jun-2008 |
François Revol <revol@free.fr> |
- some cpu and platform fixes. - we'll just use decimal chip number (68030, ...) to identify cpu, fpu, and mmu for simplicity. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26041 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
807cf76df012895d6de2cea198c9c3b0558948b1 |
|
26-Apr-2008 |
François Revol <revol@free.fr> |
memory barrier functions available for drivers. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25183 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
4e44040df4d2763e5df092771c9464d4692fdaa3 |
|
03-Nov-2007 |
François Revol <revol@free.fr> |
Ditto. cleanup Less ppc, more m68k :) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22822 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
ac1a8a0c8df62c1b873b2219004b41b8c68dd7fa |
|
27-Oct-2007 |
François Revol <revol@free.fr> |
Note on 060 equivalent of HLT. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22750 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
42b025bece891177eafd84c4397568bc2435aaa9 |
|
24-Oct-2007 |
François Revol <revol@free.fr> |
No need for ppc code there. 68030 invalidates only 1 long of a cache line each time. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22715 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
829748d89de3b641c3d05ea327041b8bbfd753cb |
|
24-Oct-2007 |
François Revol <revol@free.fr> |
Fix flushing the ATC, add flushing icache. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22709 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
ee75f8527bdc29acec852e55c3a28c76e76012e4 |
|
24-Oct-2007 |
François Revol <revol@free.fr> |
This should handle TLB flushing on m68k (it's called ATC though). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22706 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
845a180f3d7a99ca0cd7fa51fa509dc37dcd29ee |
|
21-Oct-2007 |
François Revol <revol@free.fr> |
Unfinished kernel support for m68k. Based on ppc/x86 from r22648. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22650 a95241bf-73f2-0310-859d-f6bbb57e9c96
|