#
f1b2d3ba |
|
24-Feb-2022 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
kernel/x86: Fix and modernize tracing of timer code; no functional change * Fixes functionality of TRACE statements on 64-bit platforms. Change-Id: Iaba8f8b2d49ec1acda3fc2d51e24a207c5bcc97a Reviewed-on: https://review.haiku-os.org/c/haiku/+/4992 Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com> Reviewed-by: Fredrik Holmqvist <fredrik.holmqvist@gmail.com>
|
#
ddb70de4 |
|
11-Jan-2022 |
David Karoly <karolyd577@gmail.com> |
kernel/x86/hpet: fix build with TRACE enabled Change-Id: I8b1d8f0e8ba7e800fe458135197080617be731bd Reviewed-on: https://review.haiku-os.org/c/haiku/+/4860 Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org> Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>
|
#
69a8b954 |
|
23-Jun-2012 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
FixedWidthPointer: Fix ==/!= operators, remove OtherType casts * FixedWidthPointer: - operators ==/!=: Change second operand type from void* to const Type*. Also add non-const version to resolve ambiguity warning when comparing with non-const pointer. - Add Pointer() getter. - Remove templatized cast operators. They are nice for casting the pointer directly to another pointer type, but result in ambiguity. * Make preloaded_image::debug_string_table non-const. Avoids clashes of the const and non-coast FixedWidthPointer comparison operators. A cleaner (but more verbose) solution would be to spezialize FixedWidthPointer for const types.
|
#
62d36f98 |
|
22-Jun-2012 |
Alex Smith <alex@alex-smith.me.uk> |
Removed the addr_t conversion operators from FixedWidthPointer which makes comparison against NULL work properly.
|
#
d8efc6ca |
|
21-Jun-2012 |
Alex Smith <alex@alex-smith.me.uk> |
Changes to kernel_args to make it identical for x86 and x86_64. * Added a FixedWidthPointer template class which uses 64-bit storage to hold a pointer. This is used in place of raw pointers in kernel_args. * Added __attribute__((packed)) to kernel_args and all structures contained within it. This is necessary due to different alignment behaviour for 32-bit and 64-bit compilation with GCC. * With these changes, kernel_args will now come out the same size for both the x86_64 kernel and the loader, excluding the preloaded_image structure which has not yet been changed. * Tested both an x86 GCC2 and GCC4 build, no problems caused by these changes.
|
#
147133b7 |
|
25-May-2010 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* First run through the kernel's private parts to use phys_{addr,size}_t where appropriate. * Typedef'ed page_num_t to phys_addr_t and used it in more places in vm_page.{h,cpp}. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36937 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
ae6721ad |
|
28-Feb-2010 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Small cleanups, undef TRACE_HPET. Still at priority 0. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35661 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
36eb7051 |
|
24-Feb-2010 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Fixed various problems which didn't let HPET timers work on my machine, most notably: - in hpet_clear_hardware_timer() we cleared the HPET_CONF_TIMER_INT_ENABLE flag, and never set it back anymore (now we do, in hpet_set_hardware_timer()) - the incorrect interrupt configuration (although it shouldn't matter in legacy mode). Also test the HPET counter before trying to use it. Improved debug information. HPET timers are still at priority 0, since I coulnd't yet test on other machines (besides mine, QEMU and XenServer 5.5), and doen't work for some reason with SMP enabled. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35611 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
0b102d72 |
|
11-Feb-2010 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
The hpet registers area is already wired, so use the vm_map_physical_memory() call with the true parameter. Fixes a panic at boot when using the hpet timers git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35453 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
fee1bc8e |
|
30-Sep-2009 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Back to timer 2, since timer 0 doesn't work at all. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33368 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
ea40a61a |
|
29-Sep-2009 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Some big changes, still not working on my laptop, since hpet interrupts aren't routed correctly over the 8259, it seems. - Removed passing the hpet_regs around, since there's a static variable. - Added lots of debug dprintfs. - Fixed setting the timer interrupt to edge - Timer is initialized once. - Use the timer 0 instead of 2. - Renamed register definitions to be more readable - Use 64 bits registers and unions where applicable. - Other things I don't remember git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33345 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
8593bcad |
|
28-Sep-2009 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Use the hpet defines in the source. Also shortened some defines using "TN" instead of "TIMER". It's also the same scheme used in the specs git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33334 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
6dc4fd11 |
|
25-Sep-2009 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Uncommented the hpet timer from the timers list. Lowered its priority of hpet timer so it doesn't get picked up first (yet) Changed the debug output to be conditional. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33292 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
6d92e805 |
|
25-Sep-2009 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
- Moved timer conversion to a method, and added LL to the conversion factor to avoid compiler issues. - Removed some useless and commented debug stuff. - Now prints also the global HPET configuration. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33291 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
4687d95b |
|
25-Sep-2009 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Renamed x86_hpet.c to x86_hpet.cpp and fixed the compile errors. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33290 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
69a8b95491c160f03a5b0dab0fa8d1899fe42d4b |
|
23-Jun-2012 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
FixedWidthPointer: Fix ==/!= operators, remove OtherType casts * FixedWidthPointer: - operators ==/!=: Change second operand type from void* to const Type*. Also add non-const version to resolve ambiguity warning when comparing with non-const pointer. - Add Pointer() getter. - Remove templatized cast operators. They are nice for casting the pointer directly to another pointer type, but result in ambiguity. * Make preloaded_image::debug_string_table non-const. Avoids clashes of the const and non-coast FixedWidthPointer comparison operators. A cleaner (but more verbose) solution would be to spezialize FixedWidthPointer for const types.
|
#
62d36f98331067e472188f6c020c2ccd808f48cf |
|
22-Jun-2012 |
Alex Smith <alex@alex-smith.me.uk> |
Removed the addr_t conversion operators from FixedWidthPointer which makes comparison against NULL work properly.
|
#
d8efc6caf6babe278c48e8aa3277376fb68ff455 |
|
21-Jun-2012 |
Alex Smith <alex@alex-smith.me.uk> |
Changes to kernel_args to make it identical for x86 and x86_64. * Added a FixedWidthPointer template class which uses 64-bit storage to hold a pointer. This is used in place of raw pointers in kernel_args. * Added __attribute__((packed)) to kernel_args and all structures contained within it. This is necessary due to different alignment behaviour for 32-bit and 64-bit compilation with GCC. * With these changes, kernel_args will now come out the same size for both the x86_64 kernel and the loader, excluding the preloaded_image structure which has not yet been changed. * Tested both an x86 GCC2 and GCC4 build, no problems caused by these changes.
|
#
147133b76cbb1603bdbff295505f5b830cb4e688 |
|
25-May-2010 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* First run through the kernel's private parts to use phys_{addr,size}_t where appropriate. * Typedef'ed page_num_t to phys_addr_t and used it in more places in vm_page.{h,cpp}. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36937 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
ae6721ad6e2d7b96d070940aca9d85b37420f46d |
|
28-Feb-2010 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Small cleanups, undef TRACE_HPET. Still at priority 0. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35661 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
36eb70516c7b740ccb7e5879a12be011b30b2506 |
|
24-Feb-2010 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Fixed various problems which didn't let HPET timers work on my machine, most notably: - in hpet_clear_hardware_timer() we cleared the HPET_CONF_TIMER_INT_ENABLE flag, and never set it back anymore (now we do, in hpet_set_hardware_timer()) - the incorrect interrupt configuration (although it shouldn't matter in legacy mode). Also test the HPET counter before trying to use it. Improved debug information. HPET timers are still at priority 0, since I coulnd't yet test on other machines (besides mine, QEMU and XenServer 5.5), and doen't work for some reason with SMP enabled. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35611 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
0b102d72d5933cb730ca0a0dab29bad224180a14 |
|
11-Feb-2010 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
The hpet registers area is already wired, so use the vm_map_physical_memory() call with the true parameter. Fixes a panic at boot when using the hpet timers git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35453 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
fee1bc8eed428ed518a5d728046beafc1bda1021 |
|
30-Sep-2009 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Back to timer 2, since timer 0 doesn't work at all. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33368 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
ea40a61a843fb9d80acb1c8fba1979cfe24c1200 |
|
29-Sep-2009 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Some big changes, still not working on my laptop, since hpet interrupts aren't routed correctly over the 8259, it seems. - Removed passing the hpet_regs around, since there's a static variable. - Added lots of debug dprintfs. - Fixed setting the timer interrupt to edge - Timer is initialized once. - Use the timer 0 instead of 2. - Renamed register definitions to be more readable - Use 64 bits registers and unions where applicable. - Other things I don't remember git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33345 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
8593bcad87981276728575b026417e2096d6c9eb |
|
28-Sep-2009 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Use the hpet defines in the source. Also shortened some defines using "TN" instead of "TIMER". It's also the same scheme used in the specs git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33334 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
6dc4fd11a2c4eab281d78038cf794027608d23b6 |
|
25-Sep-2009 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Uncommented the hpet timer from the timers list. Lowered its priority of hpet timer so it doesn't get picked up first (yet) Changed the debug output to be conditional. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33292 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
6d92e80531ecafc3965c25e55adbd82f995389f1 |
|
25-Sep-2009 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
- Moved timer conversion to a method, and added LL to the conversion factor to avoid compiler issues. - Removed some useless and commented debug stuff. - Now prints also the global HPET configuration. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33291 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
4687d95b681d988c5a2a9da7c53f400daa76dc18 |
|
25-Sep-2009 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Renamed x86_hpet.c to x86_hpet.cpp and fixed the compile errors. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33290 a95241bf-73f2-0310-859d-f6bbb57e9c96
|