Gregory Nutt
2043e1a114
IOBs: Move from driver/iob to a better location in mm/iob
2017-05-09 07:35:30 -06:00
Gregory Nutt
a55e937643
Correct mispelling
2017-04-22 17:03:34 -06:00
Gregory Nutt
bfb93338f6
Move net/iob to drivers/iob so that the I/O buffering feature can be available to other drivers when networking is disabled.
2017-04-20 16:08:49 -06:00
Gregory Nutt
370e188fa3
Convert more drivers to use new interrupt argument structure.
2017-02-28 09:05:01 -06:00
Mark Schulte
b3222bbc8a
irq_dispatch: Add argument pointer to irq_dispatch
...
Provide a user defined callback context for irq's, such that when
registering a callback users can provide a pointer that will get
passed back when the isr is called.
2017-02-27 06:27:56 -06:00
Gregory Nutt
1d290c2b37
setvbuf: Add support for disabling I/O buffering. Initially cut; untested.
2017-02-09 09:24:44 -06:00
Gregory Nutt
0db31d0cd1
SMP: Fix a typo introduced in c5b00ccfc4
2017-01-16 08:48:05 -06:00
Gregory Nutt
a2083fbc92
Update some comments
2017-01-15 12:35:03 -06:00
Gregory Nutt
2837eff0cd
SMP: Most cosmetic clean-up from review of previous commit.
2017-01-14 09:22:13 -06:00
Gregory Nutt
c5b00ccfc4
SMP Signals: Fix some SMP signal delivery logic. Was not handling some critical sections correctly and was missing logic to signal tasks running on other CPUs.
2017-01-14 08:28:37 -06:00
Gregory Nutt
3ed091376c
In all implementations of _exit(), use enter_critical_section() vs. disabling local interrupts.
2017-01-13 11:08:24 -06:00
Gregory Nutt
c9b15ebb6a
Xtensa ESP32: Remove call to sched_lock()/unock() from inter-cpu interrupt logic. Results in recursive call to sched_mergepending().
2016-12-25 09:26:20 -06:00
Gregory Nutt
b87fc91466
Revert "Xtensa SMP: Avoid a nasty situation in SMP by assuring that up_release_pending() is not re-entered."
...
This reverts commit 733a57b4df
.
2016-12-25 07:12:46 -06:00
Gregory Nutt
efb86382c3
SMP: Back out deferred IRQ locking. This was accidentally merged into master and it looks like it is going to be more work than I thought to get it working again. Changes will go to the irqlock branch.
2016-12-24 19:53:37 -06:00
Gregory Nutt
1b790a61cd
Xtensa ESP32: Add stack checking logic.
2016-12-23 15:51:33 -06:00
Gregory Nutt
c7f5435637
Implement deferred IRQ locking. The rest of the support for Xtensa. Untested.
2016-12-23 11:56:45 -06:00
Gregory Nutt
cb1cc66d81
Implement deferred IRQ locking. Adds partial support for Xtensa. More is needed.
2016-12-23 11:39:44 -06:00
Gregory Nutt
5f9caad078
Xtensa ESP32: Correct copyright info; update some comments
2016-12-22 12:34:55 -06:00
Gregory Nutt
714e6f80ca
Xtensa ESP32: Corrects a problem with dispatching to signal handlers: Cannot vector directly to the signal handling function as in other ABIs under the Xtensa Window ABI. In that case, we need to go through a tiny hook when performs the correct window call (call4) otherwise registers will be scrambled in the signal handler
2016-12-22 11:19:38 -06:00
Gregory Nutt
d9a64b9ca9
Xtensa ESP32: Some fixes from integration of ostest configuration. Almost works: There are some assertions in xtensa_sigdeliver()
2016-12-22 09:34:39 -06:00
Gregory Nutt
733a57b4df
Xtensa SMP: Avoid a nasty situation in SMP by assuring that up_release_pending() is not re-entered.
2016-12-21 13:34:01 -06:00
Gregory Nutt
588d2b506f
Xtensa ESP32: Oddly, an rsync barrier when writing to co-processor register corrects problem.
2016-12-21 08:04:48 -06:00
Gregory Nutt
1b7162a0db
Eliminate a warning
2016-12-21 08:04:48 -06:00
Gregory Nutt
81697f2285
Xtensa ESP32: Fix APP CPU startup... Can't use semaphores on the IDLE thread.
2016-12-20 11:26:37 -06:00
Gregory Nutt
6d5a718b98
Xtensa ESP32: A few fixes for APP CPU start-up
2016-12-20 10:38:27 -06:00
Gregory Nutt
4e9a0ffea5
Xtensa ESP32: Update APP CPU startup logic to match current Expressif example code.
2016-12-20 09:00:04 -06:00
Gregory Nutt
3b681586c0
Xtensa ESP32: Missing prologue/epilogue macros on C callable function
2016-12-20 08:31:36 -06:00
Gregory Nutt
e5182acbe3
Xtensa ESP32: Make sure that SMP configuratin still builds without errors.
2016-12-19 14:12:19 -06:00
Gregory Nutt
e61549d8b9
Xtensa ESP32: Clean-up and fixes from last commits
2016-12-19 13:57:37 -06:00
Gregory Nutt
097f09cb02
Xtensa ESP32: Corrects timer initialization and timer input frequency.
2016-12-19 11:50:28 -06:00
Gregory Nutt
a9a39800a4
Xtensa ESP32: Fixes some double faults and user errors, but I do not fully understand why.
2016-12-19 11:14:08 -06:00
Gregory Nutt
886ce88b4f
Xtensa ESP32: Automatically mount /proc at start-up.
2016-12-19 09:43:16 -06:00
Gregory Nutt
2b0b698d72
ESP32 Serial: Add logic to prevent infinite loops in interrupt handler.
2016-12-18 16:04:25 -06:00
Gregory Nutt
71bb79a6c7
ESP32 Serial: Fix some register bit definitions.
2016-12-18 15:11:34 -06:00
Gregory Nutt
4bd530d026
Xtensa ESP32: Last change should be conditioned on the window ABI.
2016-12-18 13:17:31 -06:00
Gregory Nutt
665c1647b5
Xtensa ESP32: Need to spill registers to memory as the last dying action before switching to a new thread.
2016-12-18 12:54:47 -06:00
Gregory Nutt
586f0aab50
Fix context save logic when called in window ABI configuration. Add an IDLE stack. Don't depend on the mystery stack received from the bootloader.
2016-12-18 10:08:08 -06:00
Gregory Nutt
93e6d16f75
Xtensa ESP32: wsr, not rsr.
2016-12-17 11:23:10 -06:00
Gregory Nutt
a88c50d366
Xtensa ESP32: Need to clone some logic for syncrhonous context switch. Window spill logic in the conmon restores logic is inappropriate in this context
2016-12-17 11:00:12 -06:00
Gregory Nutt
6b80e5f15f
Xtensa ESP32: Fix clobbered a9 in co-processor context save/restore
2016-12-17 11:00:12 -06:00
Gregory Nutt
8de1127899
Xtensa ESP32: Using wrong register to disable interrupts.
2016-12-17 11:00:12 -06:00
Gregory Nutt
38ebe6c13f
Xtensa ESP32: Change that should have been included in a previous commit was not.
2016-12-17 08:11:32 -06:00
Gregory Nutt
05e798488b
One register getting clobber on context save
2016-12-17 08:10:10 -06:00
Gregory Nutt
adbacfc42c
Xtensa ESP32: Fix a duplicate in Kconfig files. Level 1 should return via RFE.
2016-12-17 07:07:33 -06:00
Gregory Nutt
6599feb310
Xtensa ESP32: Fixes a few issue with restoring registers on interrupt return, but there is still a problem
2016-12-16 17:56:22 -06:00
Gregory Nutt
cdd8dc72a5
Xtensa ESP32: Basically a redesign of the interrupt dispatch logic.
2016-12-16 15:36:52 -06:00
Gregory Nutt
d4ad5f04d3
Xtensa ESP32: Minor rearchitecting of how CPU interrupts are enabled. MOre to come.
2016-12-16 14:13:09 -06:00
Gregory Nutt
cd3d414ba2
Xtensa: Fix some missing SMP logic
2016-12-16 13:37:28 -06:00
Gregory Nutt
34a994b0f6
Correct a logic problem the prevented dumping the IDLE thread's stack on an assertion
2016-12-16 13:21:01 -06:00
Gregory Nutt
6337fadd8c
Missing escape character on CR of CR-LF expansion.
2016-12-16 10:49:42 -06:00
Gregory Nutt
935e49f5bb
Update some comments
2016-12-16 09:38:08 -06:00
Gregory Nutt
f1a5b91cd8
Use r6, not r2 when passing paramters with call4
2016-12-16 09:21:44 -06:00
Gregory Nutt
41cf32a20e
Fix windowspill register handling + Use r6, not r2 when passing paramters with call4
2016-12-16 09:20:36 -06:00
Gregory Nutt
aa5a8b0ca2
Xtensa: Make sure that all C callable assembly functions includes ENTRY prologue and RET epilogue.
2016-12-15 14:02:19 -06:00
Gregory Nutt
c56268b416
Fix missing CALL0 ABI condition.
2016-12-15 11:06:41 -06:00
Gregory Nutt
ea9e6c48e4
Cosmetic update to comments.
2016-12-15 10:43:34 -06:00
Gregory Nutt
10b9a10d2f
Xtensa ESP32: Fix several build-related issues associated with vector section
2016-12-15 10:08:26 -06:00
Gregory Nutt
b5e979d58f
ESP32: Fix a couple of bugs associated with handling of CPU interrupts.
2016-12-14 13:31:44 -06:00
Gregory Nutt
4052ec2d90
Add missing ENTRY() and RET() macros in C callable assembly language. At one time I though the that the ESP32 support the CALL0 ABI. I was mistaken so there may be a few more like this.
2016-12-14 12:14:51 -06:00
Gregory Nutt
730ca4ce41
Fix missing semicolons in DEBUGASSERT statements
2016-12-14 09:06:09 -06:00
Angus Gratton
dd5e47a418
ESP32 core v2: Two changes (1) flushes the UART TX buffer in the esp32 serial shutdown routine. The ROM bootloader does not flush the FIFO before handing over to user code, so some of this output is not currently seen when the UART is reconfigured in early stages of startup. And changes the openocd config file's default flash voltage from 1.8V to 3.3V. This is not necessary right now, but may save some hard-to-debug moments down the track (3.3V-only flash running at 1.8V often half-works and does weird things...)
2016-12-14 08:15:03 -06:00
Gregory Nutt
a7b688e87b
sched notes: Add additional note to see if/when CPU is started in SMP mode.
2016-12-07 09:08:20 -06:00
Gregory Nutt
d65be718c2
sched_note: Extend OS instrumentation to include some SMP events.
2016-11-27 17:14:57 -06:00
Gregory Nutt
e3fe320e08
SMP: Add support for linking spinlocks into a special, non-cached memory region.
2016-11-26 08:47:03 -06:00
Gregory Nutt
6a875bcb61
Xtensa: Add EXPERIMENTAL hooks to support lazy co-processor state restore in the future.
2016-11-16 06:48:13 -06:00
Gregory Nutt
c84db68103
Xtensa ESP32: Fix some compilation errors that snuck with some of the last changes
2016-11-14 13:29:08 -06:00
Gregory Nutt
ac1bb127b6
Correct some C++ style comments.
2016-11-08 08:51:03 -06:00
Gregory Nutt
b6d6b774e9
Xtensa: In this model, co-processor state restore must enable co-processors in CPENABLE.
2016-11-08 08:23:52 -06:00
Gregory Nutt
b0dffdc2ca
Fix a number of header files with mismatched 'extern C {' and '}'
2016-11-05 07:25:05 -06:00
Gregory Nutt
5cfb83ec81
ESP32: File repeated in Make.defs
2016-11-03 17:47:09 -06:00
Gregory Nutt
0a5b4f684a
arch: Disable priority inheritance on all semaphores used for signaling in the rest of the MCU drivers
2016-11-03 17:38:26 -06:00
Gregory Nutt
54d7656f18
Update some comments
2016-11-03 07:04:03 -06:00
Gregory Nutt
cfcc7edded
Xtensa/ESP32: Add window spill logic; Add C++ support to linker script
2016-10-31 17:51:48 -06:00
Gregory Nutt
4d0b0e44f1
Xtensa/ESP32: Add up_cpu_idlestack() and fix some compile issues.
2016-10-31 14:56:48 -06:00
Gregory Nutt
28d1478480
Xtensa/ESP32: Add CPU1 startup logic
2016-10-31 13:15:15 -06:00
Gregory Nutt
a8e3f79494
Xtensa/ESP32: Add User Exception handler
2016-10-31 12:04:52 -06:00
Gregory Nutt
a787a99071
ESP32: Add inter-cpu interrupts
2016-10-31 08:29:28 -06:00
Gregory Nutt
63d5ab5b67
Add logic to attach inter-CPU interrupts. Fix some compilation errors.
2016-10-30 16:15:04 -06:00
Gregory Nutt
6ff833e56e
Forgot to add a file in the last commit
2016-10-30 15:40:42 -06:00
Gregory Nutt
85ed3dae9a
Update some compilation issues
2016-10-30 15:38:51 -06:00
Gregory Nutt
a4c3fef0b7
Xtensa: Add more exception vectors. All just cause a PANIC now.
2016-10-30 12:20:11 -06:00
Gregory Nutt
fdede8099b
Xtensa/ESP32: Add Level1 handler, panic handler, remove EXECHOOKS.
2016-10-30 10:57:57 -06:00
Gregory Nutt
eaa5968a22
Xtensa: Convert some CALL0 C calls to be compatible with Window ABI
2016-10-30 08:46:35 -06:00
Gregory Nutt
261e0edc61
Xtensa: Adapt co-processor state save/restore functions so that they are call-able from C with Windows ABI.
2016-10-30 08:35:09 -06:00
Gregory Nutt
c0da94fc3e
Xtensa: Remove xtensa_macros.h; duplicates xtensa_abi.h
2016-10-30 07:45:28 -06:00
Gregory Nutt
8c96221093
Xtensa: Replace CONFIG_XTENSA_CALL0_ABI with compiler defined __XTENSA_CALL0_ABI__
2016-10-30 07:37:51 -06:00
Gregory Nutt
dc82fa81b8
Xtensa: Remove XTENSA_EXTRA_SA_SIZE. It is not used.
2016-10-30 07:09:24 -06:00
Gregory Nutt
4997ec7a1e
ESP32 Core V2: Add an SMP configuration to support development (not yet usable).
2016-10-29 14:56:07 -06:00
Gregory Nutt
c993a0267c
Xtensa: Add Window vector
2016-10-29 12:30:24 -06:00
Gregory Nutt
804f9c5de7
Xtensa: Rename some files.
2016-10-29 11:24:02 -06:00
Gregory Nutt
d346f25aae
Xtensa/ESP32: Fix some compile issues related to new co-processor logic
2016-10-29 10:27:46 -06:00
Gregory Nutt
4943b09ffa
Xtensa: Remove co-processor ownership array. I think that this is not needed (but I might be wrong).
2016-10-29 09:50:51 -06:00
Gregory Nutt
ccf5b4e357
Xtensa: Cleanup of co-processor logic; remove some unnecessary things.
2016-10-29 09:36:33 -06:00
Gregory Nutt
2fa8b9ba34
Xtensa ESP32: Co-processor state is code complete but uncompiled and untested.
2016-10-28 13:03:25 -06:00
Gregory Nutt
9345c6f4db
Xtensa: More co-processor save logic. Still not complete.
2016-10-28 11:56:35 -06:00
Gregory Nutt
a90d0bbf2e
ESP32: A little more co-processor logic. Still not complete.
2016-10-28 11:19:23 -06:00
Gregory Nutt
b4b26285f1
ESP32: Add tie-asm.h
2016-10-28 10:53:14 -06:00
Gregory Nutt
be2a801e30
Xtensa: Add xtensa_coproc.h
2016-10-28 10:33:20 -06:00
Gregory Nutt
e93bcda8ae
ESP32: Partial co-processor state save logic. Incomplete and will probably be redesigned.
2016-10-28 09:05:39 -06:00
Gregory Nutt
1e7f78e5c0
ESP32: Add implementation of up_putc
2016-10-27 18:27:19 -06:00