summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/i386/shared (unfollow)
Commit message (Collapse)AuthorFilesLines
2018-04-24bsps/i386: Move shared files to bspsSebastian Huber10-4275/+0
This patch is a part of the BSP source reorganization. Update #3285.
2018-04-23bsps: Move PCI drivers to bspsSebastian Huber2-692/+0
This patch is a part of the BSP source reorganization. Update #3285.
2018-04-23bsps: Move interrupt controller support to bspsSebastian Huber6-1452/+0
This patch is a part of the BSP source reorganization. Update #3285.
2018-04-20bsps: Move doxygen.h files to bspsSebastian Huber1-23/+0
This patch is a part of the BSP source reorganization. Update #3285.
2018-04-12bsps: Move legacy console driver to bspsSebastian Huber1-1/+1
This patch is a part of the BSP source reorganization. Update #3285.
2018-03-16i386/smp: Export _CPU_SMP_Prepare_start_multitasking as a functionAmaan Cheval1-0/+5
When it's a macro, a function declaration causes a compiler error due to the macro being expanded. Partial log showing error: https://gist.github.com/AmaanC/ab3521141479aa6f61ea25f5d74ebb4d Closes #3331
2018-01-25Remove make preinstallChris Johns8-976/+0
A speciality of the RTEMS build system was the make preinstall step. It copied header files from arbitrary locations into the build tree. The header files were included via the -Bsome/build/tree/path GCC command line option. This has at least seven problems: * The make preinstall step itself needs time and disk space. * Errors in header files show up in the build tree copy. This makes it hard for editors to open the right file to fix the error. * There is no clear relationship between source and build tree header files. This makes an audit of the build process difficult. * The visibility of all header files in the build tree makes it difficult to enforce API barriers. For example it is discouraged to use BSP-specifics in the cpukit. * An introduction of a new build system is difficult. * Include paths specified by the -B option are system headers. This may suppress warnings. * The parallel build had sporadic failures on some hosts. This patch removes the make preinstall step. All installed header files are moved to dedicated include directories in the source tree. Let @RTEMS_CPU@ be the target architecture, e.g. arm, powerpc, sparc, etc. Let @RTEMS_BSP_FAMILIY@ be a BSP family base directory, e.g. erc32, imx, qoriq, etc. The new cpukit include directories are: * cpukit/include * cpukit/score/cpu/@RTEMS_CPU@/include * cpukit/libnetworking The new BSP include directories are: * bsps/include * bsps/@RTEMS_CPU@/include * bsps/@RTEMS_CPU@/@RTEMS_BSP_FAMILIY@/include There are build tree include directories for generated files. The include directory order favours the most general header file, e.g. it is not possible to override general header files via the include path order. The "bootstrap -p" option was removed. The new "bootstrap -H" option should be used to regenerate the "headers.am" files. Update #3254.
2018-01-04bsp/pc386: Use public include pathChris Johns1-1/+1
Update #3254.
2017-09-12Simplify and unify BSP_output_charSebastian Huber1-1/+0
The BSP_output_char should output a char and not mingle with high level processing, e.g. '\n' to '\r\n' translation. Move this translation to rtems_putc(). Remove it from all the BSP_output_char implementations. Close #3122.
2017-06-21i386/shared/comm/i386-stub-glue.c: Fix duplicate const warningJoel Sherrill1-1/+1
2017-06-20bsps: Improve interrupt vector enable/disable APISebastian Huber2-14/+6
Change bsp_interrupt_vector_enable() and bsp_interrupt_vector_disable() to not return a status code. Add bsp_interrupt_assert() and use it to validate the vector number in the vector enable/disable implementations.
2017-06-12i386: Support thread-local storage (TLS)Sebastian Huber1-1/+2
Update #2468.
2017-03-22termios: Synchronize with latest FreeBSD headersKevin Kirspel1-1/+1
Adding modified FreeBSD headers to synchronize RTEMS termios with FreeBSD. Modify termios to support dedicated input and output baud for termios structure. Updated BSPs to use dedicated input and output baud in termios structure. Updated tools to use dedicated input and output baud in termios structure. Updated termios testsuites to use dedicated input and output baud in termios structure. Close #2897.
2016-10-17bsps/i386: replace global interrupt disable by SMP build supporting locking.Pavel Pisa3-22/+51
2016-10-11bsps/i386: Separate variable for i8259 IRQs disable due to in progress state.Pavel Pisa1-19/+36
The global state of enabled and disabled interrupts has to hold interrupts really disabled by drivers and system. If the state is combined with interrupts temporarily disabled because they are processed at given time then it is impossible to maintain state by interrupt handlers in drivers.
2016-06-24bsps: Include missing <rtems/bspIo.h>Sebastian Huber1-0/+1
2016-05-25i386/pc386: Fix printk formatting warnings.Chris Johns2-2/+3
2016-05-11i386/pc386: Clean out removed functions.Chris Johns1-46/+0
2016-05-11i386/pc386: Add x86 debug register support for hardware break points.Chris Johns1-1/+157
2016-05-11i386/pc386: EOI the master and slave for slave IRQ signals.Chris Johns1-6/+33
2016-05-11i386/pc386: Fix interrupt support.Chris Johns7-172/+469
Fix the interrupt and stop the spurious interrupt from happening. The fix moves the EOI to C code and cleans that functionality out of the asm part of the ISR handler. The code checks the ISR and IRR registers on the enable. Only ack the master for a slave IRQ if the slave has no other pending requests.
2016-05-11i386/pc386: Add support for the gdb stub to use available console drivers.Chris Johns3-206/+302
Move the gdb stub from the i386 UART code to use the libchip drivers. Use any ports discovered during the probes. Add gdb control to the boot command line. Change the device naming to the full device path, not a partial path. For example /dev/com1.
2016-03-15pc386: Do not include rtems/pci.h from bsp.h. Add bsp/bspimpl.hJoel Sherrill2-1/+22
Start to migrate private symbols to bsp/bspimpl.h.
2016-03-10Add shared PCI support and enhance pc386 to support non-legacy PCI ↵Joel Sherrill2-130/+217
configuration space This patch fundamentally results from enhancements to the pc386 BSP to support systems which do **NOT** have the legacy PCI BIOS. The patch adds support for detecting when legacy PCI BIOS is not present and then using IO space to access to PCI Configuration Space. This resulted in dynamically selected between two implementations of PCI and refactoring out the shared methods. This patch adds shared implementations of pci_bus_count() and pci_find_device(). Subsequent patches will remove implementations of these methods in other BSPs where possible.
2016-03-10i386/shared/pci/pcibios.c: Remove unused pcib_find_by_class()Joel Sherrill1-36/+0
2016-03-10i386/shared/pci/pcibios.c: Remove unused pcib_special_cycle()Joel Sherrill1-30/+0
2016-03-10pc386: Eliminate pcibios.h and begin removal obsolete PCI BIOS API usesJoel Sherrill2-79/+24
This first step eliminates the following as public APIs for the pc386 BSP: + pcib_conf_read8 + pcib_conf_read16 + pcib_conf_read32 + pcib_conf_write8 + pcib_conf_write16 + pcib_conf_write32 The if_fxp.c driver uses these enough where I provided local macros to allow the code to be mostly unmodified. On other architectures these names have been used privately. It will take multiple patches to completely eliminate these symbols from the RTEMS source tree. The focus of the first effort is just to eliminate these as a public pc386 API so support can be added for systems without legacy PCI BIOS.
2016-03-04score: Distribute clock tick to all online CPUsSebastian Huber1-1/+10
Update #2554.
2016-03-03i386: refactor libcpu/cpu.h into rtems/score/i386.hJoel Sherrill4-4/+4
Fixes #2515.
2016-02-03Delete unused API extensionsSebastian Huber1-1/+0
2015-10-26basdefs.h: Add and use RTEMS_PACKEDSebastian Huber2-3/+3
2015-10-26basdefs.h: Add and use RTEMS_UNUSEDSebastian Huber1-1/+1
2015-09-30bsps/i386: Interrupt server supportSebastian Huber3-1/+18
2015-01-09smp: Add and use _SMP_Should_start_processor()Sebastian Huber1-5/+1
2014-12-23pc386: scan all functions of multi-function PCI devicesTill Strauman1-7/+23
The current algorithm scans all PCI busses (0..ff) and all devices (0..31) on each bus for bridges and determines the maximum of all subordinate busses encountered. However, the algorithm does not scan all functions present in multi-function devices -- I have a PCI express root complex (82801H) where multiple (non-zero index) functions are 'PCI bridges' whose subordinate bus number is missed by the original algorithm. This commit makes sure that the scan is extended to all functions of multi-function devices. See #2067
2014-12-04i386: doxygen and comments related to VESA real mode framebufferJan Dolezal2-22/+80
2014-12-04i386/pc386: cammelCase (struct and function names) to underscores, typedefed ↵Jan Dolezal2-4/+6
structs, break >80 chars lines, removed newlines at EOFs fb_vesa_rm.c: removed inline from functions declared in fb_vesa.h removed unnecessary printks in the end of patch edid.h, vbe3.h: switched from custom *PACKED_ATTRIBUTE at the structs to the RTEMS_COMPILER_PACKED_ATTRIBUTE for easier maintainability of doxygen
2014-11-20i386/shared/realmode_int: real mode interrupt interfaceJan Dolezal2-0/+491
2014-11-20i386: global descriptor table manipulation functionsJan Dolezal1-36/+120
2014-10-16libbsp/i386/shared: Fix warningsJoel Sherrill4-30/+20
2014-10-16i386/shared/comm/uart.c: Remove unused uart_set_driver_handler() methodJoel Sherrill1-21/+0
2014-10-13libbsp/i386/shared/comm: Fix warningsJoel Sherrill4-9/+9
2014-10-13i386/pc386: Clean up and fix warningsJoel Sherrill3-14/+16
2014-10-10i386/pc386: Eliminate multiple warningsJoel Sherrill1-4/+8
2014-10-02Fix assertion "BUF != NULL" for i386Moroz.Oleg1-4/+4
BSP_uart_termios_write_com1 and BSP_uart_termios_write_com2
2014-04-15score: Add clustered/partitioned schedulingSebastian Huber1-1/+7
Clustered/partitioned scheduling helps to control the worst-case latencies in the system. The goal is to reduce the amount of shared state in the system and thus prevention of lock contention. Modern multi-processor systems tend to have several layers of data and instruction caches. With clustered/partitioned scheduling it is possible to honour the cache topology of a system and thus avoid expensive cache synchronization traffic. We have clustered scheduling in case the set of processors of a system is partitioned into non-empty pairwise-disjoint subsets. These subsets are called clusters. Clusters with a cardinality of one are partitions. Each cluster is owned by exactly one scheduler instance.
2014-04-14score: SMP initialization changesSebastian Huber1-5/+13
Add and use _CPU_SMP_Start_processor(). Add and use _CPU_SMP_Finalize_initialization(). This makes most _CPU_SMP_Initialize() functions a bit simpler since we can calculate the minimum value of the count of processors requested by the application configuration and the count of physically or virtually available processors in the high-level code. The CPU port has now the ability to signal a processor start failure. With the support for clustered/partitioned scheduling the presence of particular processors can be configured to be optional or mandatory. There will be a fatal error only in case mandatory processors are not present. The CPU port may use a timeout to monitor the start of a processor.
2014-03-21Change all references of rtems.com to rtems.org.Chris Johns9-9/+9
2014-02-19score: Rename rtems_smp_process_interrupt()Sebastian Huber1-5/+3
Rename rtems_smp_process_interrupt() into _SMP_Inter_processor_interrupt_handler(). Delete unused header file <rtems/bspsmp.h>.
2014-02-19score: Rename rtems_smp_secondary_cpu_initialize()Sebastian Huber1-1/+2
Rename rtems_smp_secondary_cpu_initialize() into _SMP_Start_multitasking_on_secondary_processor(). Move declaration to <rtems/score/smpimpl.h>.