summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/i386/shared (follow)
Commit message (Collapse)AuthorAgeFilesLines
* bsps/i386: Move shared files to bspsSebastian Huber2018-04-2410-4275/+0
| | | | | | This patch is a part of the BSP source reorganization. Update #3285.
* bsps: Move PCI drivers to bspsSebastian Huber2018-04-232-692/+0
| | | | | | This patch is a part of the BSP source reorganization. Update #3285.
* bsps: Move interrupt controller support to bspsSebastian Huber2018-04-236-1452/+0
| | | | | | This patch is a part of the BSP source reorganization. Update #3285.
* bsps: Move doxygen.h files to bspsSebastian Huber2018-04-201-23/+0
| | | | | | This patch is a part of the BSP source reorganization. Update #3285.
* bsps: Move legacy console driver to bspsSebastian Huber2018-04-121-1/+1
| | | | | | This patch is a part of the BSP source reorganization. Update #3285.
* i386/smp: Export _CPU_SMP_Prepare_start_multitasking as a functionAmaan Cheval2018-03-161-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
* Remove make preinstallChris Johns2018-01-258-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.
* bsp/pc386: Use public include pathChris Johns2018-01-041-1/+1
| | | | Update #3254.
* Simplify and unify BSP_output_charSebastian Huber2017-09-121-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.
* i386/shared/comm/i386-stub-glue.c: Fix duplicate const warningJoel Sherrill2017-06-211-1/+1
|
* bsps: Improve interrupt vector enable/disable APISebastian Huber2017-06-202-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.
* i386: Support thread-local storage (TLS)Sebastian Huber2017-06-121-1/+2
| | | | Update #2468.
* termios: Synchronize with latest FreeBSD headersKevin Kirspel2017-03-221-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.
* bsps/i386: replace global interrupt disable by SMP build supporting locking.Pavel Pisa2016-10-173-22/+51
|
* bsps/i386: Separate variable for i8259 IRQs disable due to in progress state.Pavel Pisa2016-10-111-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.
* bsps: Include missing <rtems/bspIo.h>Sebastian Huber2016-06-241-0/+1
|
* i386/pc386: Fix printk formatting warnings.Chris Johns2016-05-252-2/+3
|
* i386/pc386: Clean out removed functions.Chris Johns2016-05-111-46/+0
|
* i386/pc386: Add x86 debug register support for hardware break points.Chris Johns2016-05-111-1/+157
|
* i386/pc386: EOI the master and slave for slave IRQ signals.Chris Johns2016-05-111-6/+33
|
* i386/pc386: Fix interrupt support.Chris Johns2016-05-117-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.
* i386/pc386: Add support for the gdb stub to use available console drivers.Chris Johns2016-05-113-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.
* pc386: Do not include rtems/pci.h from bsp.h. Add bsp/bspimpl.hJoel Sherrill2016-03-152-1/+22
| | | | Start to migrate private symbols to bsp/bspimpl.h.
* Add shared PCI support and enhance pc386 to support non-legacy PCI ↵Joel Sherrill2016-03-102-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.
* i386/shared/pci/pcibios.c: Remove unused pcib_find_by_class()Joel Sherrill2016-03-101-36/+0
|
* i386/shared/pci/pcibios.c: Remove unused pcib_special_cycle()Joel Sherrill2016-03-101-30/+0
|
* pc386: Eliminate pcibios.h and begin removal obsolete PCI BIOS API usesJoel Sherrill2016-03-102-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.
* score: Distribute clock tick to all online CPUsSebastian Huber2016-03-041-1/+10
| | | | Update #2554.
* i386: refactor libcpu/cpu.h into rtems/score/i386.hJoel Sherrill2016-03-034-4/+4
| | | | Fixes #2515.
* Delete unused API extensionsSebastian Huber2016-02-031-1/+0
|
* basdefs.h: Add and use RTEMS_PACKEDSebastian Huber2015-10-262-3/+3
|
* basdefs.h: Add and use RTEMS_UNUSEDSebastian Huber2015-10-261-1/+1
|
* bsps/i386: Interrupt server supportSebastian Huber2015-09-303-1/+18
|
* smp: Add and use _SMP_Should_start_processor()Sebastian Huber2015-01-091-5/+1
|
* pc386: scan all functions of multi-function PCI devicesTill Strauman2014-12-231-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
* i386: doxygen and comments related to VESA real mode framebufferJan Dolezal2014-12-042-22/+80
|
* i386/pc386: cammelCase (struct and function names) to underscores, typedefed ↵Jan Dolezal2014-12-042-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
* i386/shared/realmode_int: real mode interrupt interfaceJan Dolezal2014-11-202-0/+491
|
* i386: global descriptor table manipulation functionsJan Dolezal2014-11-201-36/+120
|
* libbsp/i386/shared: Fix warningsJoel Sherrill2014-10-164-30/+20
|
* i386/shared/comm/uart.c: Remove unused uart_set_driver_handler() methodJoel Sherrill2014-10-161-21/+0
|
* libbsp/i386/shared/comm: Fix warningsJoel Sherrill2014-10-134-9/+9
|
* i386/pc386: Clean up and fix warningsJoel Sherrill2014-10-133-14/+16
|
* i386/pc386: Eliminate multiple warningsJoel Sherrill2014-10-101-4/+8
|
* Fix assertion "BUF != NULL" for i386Moroz.Oleg2014-10-021-4/+4
| | | | BSP_uart_termios_write_com1 and BSP_uart_termios_write_com2
* score: Add clustered/partitioned schedulingSebastian Huber2014-04-151-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.
* score: SMP initialization changesSebastian Huber2014-04-141-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.
* Change all references of rtems.com to rtems.org.Chris Johns2014-03-219-9/+9
|
* score: Rename rtems_smp_process_interrupt()Sebastian Huber2014-02-191-5/+3
| | | | | | Rename rtems_smp_process_interrupt() into _SMP_Inter_processor_interrupt_handler(). Delete unused header file <rtems/bspsmp.h>.
* score: Rename rtems_smp_secondary_cpu_initialize()Sebastian Huber2014-02-191-1/+2
| | | | | | Rename rtems_smp_secondary_cpu_initialize() into _SMP_Start_multitasking_on_secondary_processor(). Move declaration to <rtems/score/smpimpl.h>.