summaryrefslogtreecommitdiffstats
path: root/cpukit/score/cpu/x86_64 (follow)
Commit message (Collapse)AuthorAgeFilesLines
* score: Add _CPU_Get_TLS_thread_pointer()Sebastian Huber2023-09-151-0/+8
| | | | | | | | Add _CPU_Get_TLS_thread_pointer() to get the thread pointer which is used to get the address of thread-local storage objects associated with a thread. Update #4920.
* x86_64/include/rtems/score/cpuimpl.h: Address unused parameter warningJoel Sherrill2023-08-211-5/+9
|
* score: Remove CPU port specific cpuatomic.hSebastian Huber2023-06-121-14/+0
| | | | | All CPU ports used the same <rtems/score/cpustdatomic.h> header file to provide the atomic operations. Remove the header file indirection.
* Update company nameSebastian Huber2023-05-201-1/+1
| | | | | The embedded brains GmbH & Co. KG is the legal successor of embedded brains GmbH.
* bsps/amd64: increase CPU alignment to 16Karel Gardas2023-04-291-1/+1
| | | | AMD64 requires SSE support which operates on 128bit data values.
* score: Add CPU_THREAD_LOCAL_STORAGE_VARIANTSebastian Huber2022-10-141-0/+2
| | | | Update #3835.
* Do not use RTEMS_INLINE_ROUTINESebastian Huber2022-09-193-18/+18
| | | | | | | Directly use "static inline" which is available in C99 and later. This brings the RTEMS implementation closer to standard C. Close #3935.
* score: Remove _CPU_Counter_difference()Sebastian Huber2022-09-091-9/+0
| | | | | | | All CPU ports used the same _CPU_Counter_difference() implementation. Remove this CPU port interface and mandate a monotonically increasing CPU counter. Close #3456.
* score: Add _CPU_Use_thread_local_storage()Sebastian Huber2022-07-041-0/+7
| | | | | | | | | | | | At some point during system initialization, the idle threads are created. Afterwards, the boot processor basically executes within the context of an idle thread with thread dispatching disabled. On some architectures, the thread-local storage area of the associated thread must be set in dedicated processor registers. Add the new CPU port function to do this: void _CPU_Use_thread_local_storage( const Context_Control *context ) Close #4672.
* x86_64/elf_machdep.h: Replace stub with NetBSD versionRyan Long2022-04-081-4/+76
| | | | | | | The other ports included that architecture's version of this file from NetBSD. This patch follows that pattern. closes #4641
* build: Remove old build systemSebastian Huber2021-09-211-9/+0
| | | | | Close #3250. Close #4081.
* score: Canonicalize _CPU_Fatal_halt()Sebastian Huber2021-07-283-8/+15
| | | | | | | | Move _CPU_Fatal_halt() declaration to <rtems/score/cpuimpl.h> and make sure it is a proper declaration of a function which does not return. Fix the type of the error code. If necessary, add the implementation to cpu.c. Implementing _CPU_Fatal_halt() as a function makes it possible to wrap this function for example to fully test _Terminate().
* score: Remove processor event broadcast/receiveSebastian Huber2021-07-281-10/+0
| | | | | | Remove _CPU_SMP_Processor_event_broadcast() and _CPU_SMP_Processor_event_receive(). These functions are hard to use since they are subject to the lost wake up problem.
* score: Remove _CPU_Initialize_vectors()Sebastian Huber2021-06-241-2/+0
| | | | | | | This CPU port macro was not used. Since the _ISR_Vector_table[] is statically allocated, CPU ports could initialize this table in _CPU_Initialize() if necessary. Remove _CPU_Initialize_vectors() to simplify the CPU port interface.
* Remove superfluous <rtems/score/wkspace.h> includesSebastian Huber2021-04-201-1/+0
|
* rtems: Improve RTEMS_NO_RETURN attributeSebastian Huber2020-10-101-3/+1
| | | | | | | | | | | Provide RTEMS_NO_RETURN also in case RTEMS_DEBUG is defined to prevent errors like this: error: no return statement in function returning non-void [-Werror=return-type] Use C11 and C++11 standard means to declare a no-return function. Close #4122.
* score: Add CPU_USE_LIBC_INIT_FINI_ARRAYKinsey Moore2020-06-301-0/+2
| | | | | | | | This introduces the CPU_USE_LIBC_INIT_FINI_ARRAY define for use by CPU ports to determine which global constructor and destructor methods are used instead of placing architecture defines where they shouldn't be. Close #4018
* score: Remove superfluous FP types/definesSebastian Huber2020-02-122-28/+5
| | | | Update #3835.
* doxygen: score: Add x86-64 CPU architecture groupAndreas Dachsberger2019-04-022-0/+24
| | | | Update #3706.
* Remove superfluous <rtems/system.h> includesSebastian Huber2019-03-141-1/+0
|
* Remove explicit file names from @fileSebastian Huber2019-02-282-2/+2
| | | | | | This makes the @file documentation independent of the actual file name. Update #3707.
* x86_64: Remove use of proc_ptrSebastian Huber2018-11-123-34/+1
| | | | Update #3585.
* x86_64: Remove duplicate _CPU_Thread_Idle_body()Sebastian Huber2018-11-121-5/+0
|
* build: Include header.am in cpukit/Makefile.amSebastian Huber2018-10-102-18/+8
| | | | | Include all cpukit/*/header.am files in cpukit/Makefile.am. This gets rid of all subtree Makefile.am and the sudirs hack.
* build: Merge score/cpu/*/Makefile.amSebastian Huber2018-10-101-11/+0
|
* build: Remove specialized CPPFLAGSSebastian Huber2018-10-091-1/+0
|
* score: Remove CPU_PROVIDES_IDLE_THREAD_BODYSebastian Huber2018-10-052-1/+1
| | | | | | | Remove the CPU_PROVIDES_IDLE_THREAD_BODY option to avoid unnecessary conditional compilation. Close #3539.
* bsps/x86_64: Add APIC timer based clock driverAmaan Cheval2018-08-131-0/+23
| | | | | | | | | The APIC timer is calibrated by running the i8254 PIT for a fraction of a second (determined by PIT_CALIBRATE_DIVIDER) and counting how many times the APIC counter has ticked. The calibration can be run multiple times (determined by APIC_TIMER_NUM_CALIBRATIONS) and averaged out. Updates #2898.
* bsps/x86_64: Add support for RTEMS interruptsAmaan Cheval2018-08-136-33/+250
| | | | Updates #2898.
* bsps/x86_64: Add paging support with 1GiB super pagesAmaan Cheval2018-08-131-0/+13
| | | | Updates #2898.
* bsps/x86_64: Reorganize header files and compile-optionsAmaan Cheval2018-08-137-22/+81
| | | | Updates #2898.
* score: Remove CPU_PARTITION_ALIGNMENTSebastian Huber2018-08-021-1/+0
| | | | | | | | | | | | | | Use the CPU_SIZEOF_POINTER alignment instead. The internal alignment requirement is defined by the use of Chain_Node (consisting of two pointers) to manage the free chain of partitions. It seems that previously the condition CPU_PARTITION_ALIGNMENT >= sizeof(Chain_Node) was true on all CPU ports. Now, we need an additional check. Update #3482.
* score: Add _CPU_Instruction_illegal()Sebastian Huber2018-07-231-0/+5
| | | | | | | | On some architectures/simulators it is difficult to provoke an exception with misaligned or illegal data loads. Use an illegal instruction instead. Update #3433.
* score: Add _CPU_Instruction_no_operation()Sebastian Huber2018-07-201-0/+5
| | | | | This helps to reduce the use of architecture-specific defines throughout the code base.
* score: Move context validation declarationsSebastian Huber2018-07-202-16/+12
| | | | | | | The context validation support functions _CPU_Context_validate() and _CPU_Context_volatile_clobber() are used only by one test program (spcontext01). Move the function declarations to the CPU port implementation header file.
* x86_64/console: Add NS16550 polled console driverAmaan Cheval2018-07-112-0/+17
| | | | | | This addition allows us to successfully run the sample hello.exe test. Updates #2898.
* bsp/x86_64: Minimal bootable BSPAmaan Cheval2018-07-1111-0/+893
Current state: - Basic context initialization and switching code. - Stubbed console (empty functions). - Mostly functional linker script (may need tweaks if we ever want to move away from the large code model (see: CPU_CFLAGS). - Fully functional boot, by using FreeBSD's bootloader to load RTEMS's ELF for UEFI-awareness. In short, the current state with this commit lets us boot, go through the system initialization functions, and then call user application's Init task too. Updates #2898.