| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
Update #2833.
|
|
|
|
| |
Update #2833.
|
|
|
|
| |
Update #2833.
|
|
|
|
| |
Update #2468.
|
| |
|
|
|
|
| |
Fix format warnings.
|
|
|
|
|
|
| |
There is no need to save the thread pointer in _CPU_Context_switch()
since it is a thread invariant. It is initialized once in
_CPU_Context_Initialize().
|
|
|
|
|
|
| |
Enable/disable vector routines now check for a valid vector. Without
these guards, the enable/disable vector routines will not work with the
interrupt server.
|
|
|
|
| |
Update #2833.
|
|
|
|
|
|
|
| |
Remove obsolete support for OFILL, OFDEL, NLDLY, CRDLY, BSDLY, VTDLY,
and FFDLY which is not present on FreeBSD and not implemented in Linux.
Update #2833.
|
|
|
|
| |
Update #2833.
|
|
|
|
| |
Update #2289.
|
|
|
|
|
|
|
|
|
|
| |
There are mismatched sections in the bootloader input:
ld: Warning: ticker.exe uses hard float, ticker.ralf uses soft float
ld: ticker.exe: compiled normally and linked with modules compiled with -mrelocatable
ld: failed to merge target specific data of file ticker.exe
Suppress this error explicitly.
|
|
|
|
|
|
| |
Set the proper output format in the linker script for the bootloader.
Otherwise the generic linker is used since Binutils 2.28 which does not
understand the PowerPC-specific relocations.
|
|
|
|
| |
Closes #3015.
|
|
|
|
| |
Update #2493.
|
|
|
|
| |
Update #2676.
|
|
|
|
| |
Update #2477.
|
| |
|
|
|
|
| |
Closes #3025.
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
The SYM define concatenates the input with the compiler set
__USER_LABEL_PREFIX__ define. This define appears to be '_' in GCC but
empty in Clang. Therefore when compiling with Clang/LLVM 'SYM(start)'
and 'start' defines the same symbol, and the compiler complains that the
symbol is defined twice.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- All references of %0 changed to %g0
- 'call label,0' changed to 'call label'. According to the sparc
specification call does not take any registers
- '.seg "text"' changed to '.section ".text"'
- the synonym stub is replaced with stb
- the synonym stuh is replaced with sth
|
| |
|
|
|
|
|
|
|
|
| |
The following functions now reports to the user that an overrun has
occured by returning errno EIO:
* grtc_read, on overrun and no more data in the DMA buffer
* ioctl(GRTC_IOC_RECV), on overrun and no more frames in the DMA buffer
* ioctl(GRTC_IOC_ISSTARTED), EIO is returned on overrun
|
| |
|
|
|
|
|
| |
Since DMA buffers are managed by the user, responsibility is put on
the user to cope with SMP in the application.
|
|
|
|
|
|
|
|
| |
This driver was initially intended for APBUART access on GRLIB PCI
peripherals (AMBA-over-PCI). There are already many APBUART drivers
for LEON. Instead of using this one the termios APBUART should work
on AMBA-over-PCI systems with recent changes on LEON3, however that
has not been tested yet.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
The common interrupt layer for GRLIB PCI perihperals is prepared for SMP
support by this patch. The existing locking (interrupt disabling) is
replaced by a new requirement on the user to implement locking before
calling the genirq API. This approach avoids taking more locks than
necessary.
The split up of the locks also introduces that the user must allocate
memory to describe ISR handlers, to avoid calling malloc()/free() while
possessing a spin-lock and interrupts are globally disabled.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
It is also required to use semaphore release instead of flush when stopping
or on BUSOFF/AHBERR condition. Otherwise a task just about to wait
(taking the semaphore) could end up locked because the semaphore count is
still the same.
There was previously a scenario where the semaphore flush would not always make
semaphore obtain to return in case of BUSOFF, AHBERROR or grcan_stop. It has to
do with the rtems_semaphore_flush() not releasing the semaphore but just aborts
any _current_ waiter.
|
|
|
|
| |
this is to avoid owning the spin-lock during semaphore operations.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When bus-off condition is detected by the ISR, it sets the started flag to
STATE_BUSOFF. This is monitored by the user functions grcan_read() and
grcan_write() each time they want to enable DMA or update interrupt mask. If
they detect that ISR has detected bus-off then they will return either with an
error or with the number of CAN messages processed. Future calls to functions
which require STARTED mode will be rejected and grcan_isstarted() will return
0. The next call to grcan_stop() will do the transition from BUSOFF->STOPPED
and the device can then be started again with grcan_start().
Similar to a bus-off condition, the AHB error condition detected by the ISR
will trigger the same shut-down logic of the driver. The difference is that
the state entered is STATE_AHBERR and the routines will return a different
value to indicate AHB error state.
This commit also fixes an issue where ISR was not always unregistered on close.
User functions can cause these transitions:
STATE_STOPPED -> STATE_STARTED (grcan_start)
STATE_STARTED -> STATE_STOPPED (grcan_stop)
STATE_BUSOFF -> STATE_STOPPED (grcan_stop, grcan_close)
STATE_AHBERR -> STATE_STOPPED (grcan_stop, grcan_close)
ISR can cause these transition
STATE_STARTED -> STATE_BUSOFF (grcan_interrupt)
STATE_STARTED -> STATE_AHBERR (grcan_interrupt)
STATE_BUSOFF/AHBERR is entered from ISR on bus-off condition. At transition
the ISR disables DMA, masks all interrupts and flushes semaphores.
Other related updates:
* Statistics are updated from the ISR. Update is now spin-locked to ensure a
consistent user view.
* The debug output has been updated to include state changes.
* For read/write/flush, return error (-4) if driver aborted the operation
due to bus-off. Likewise if abourted due to AHB error -5 is returned.
* Collect bus-off statistics
Related to the new BUSOFF and AHBERR states the API has been updated to
reflect the current SW driver state. The isstarted() function has been
replaced with get_state().
|
| |
|
|
|
|
|
| |
There was a potential read-modify-write race on the interrupt mask (imr)
register between the ISR and user functions.
|
| |
|
|
|
|
|
| |
Locking the stats structure when copying to user buffer ensures a consistent
view to the user.
|
| |
|
|
|
|
| |
This commit does not contain any change of functionality.
|
|
|
|
|
|
|
|
| |
This commit preserves all driver services, using a function based user
interface instead of the I/O interface.
The messages count parameter is now number of CAN messages instead of
number of bytes.
|
|
|
|
|
|
| |
Prefix BSP specific symbols with BSP name:
dbg_uart -> leon3_debug_uart
debug_uart_index -> leon3_debug_uart_index
|
| |
|
| |
|