Commit Graph

3194 Commits

Author SHA1 Message Date
Gregory Nutt
48f29ce348 More vfork(): If we get to vfork() via system call, then we need to clone some system call information so that the return form the cloned system call works correctly 2014-09-29 10:59:15 -06:00
Gregory Nutt
2b0c657b1f Fix vfork(). Now that arguments are kept on the stack, the way that arguments are passed from parent to child in vfork() must change. This bug has always been present, but was not visible with the old strdup() way of passing arguments 2014-09-29 10:45:44 -06:00
Gregory Nutt
083e808ad8 This completes the implementation of shared memory support 2014-09-24 09:27:17 -06:00
Gregory Nutt
7e9c8b5926 STM32 CAN correction suggested by Max Holtzberg 2014-09-24 08:23:05 -06:00
Gregory Nutt
327628ca19 Build support for platform-specific shared memory logic. Not logic yet in place 2014-09-24 07:39:06 -06:00
Gregory Nutt
74bb07eeb4 Build support for platform-specific shared memory logic. Not logic yet in place 2014-09-24 07:38:11 -06:00
Gregory Nutt
238e18cc0a Move include/nuttx/mm.h to include/nuttx/mm/mm.h 2014-09-24 07:29:09 -06:00
Gregory Nutt
25b52a111e Cosmetic 2014-09-23 16:03:52 -06:00
Gregory Nutt
a9864bc100 Extend virtual/physical address conversions to include addresses in shared memory. 2014-09-23 16:03:08 -06:00
Gregory Nutt
cce614c67e Fix some inconsistent field name in struct task_group_s: addrenv should be tg_addrenv. 2014-09-23 16:01:44 -06:00
Gregory Nutt
df26163f1f Add logic necessary to handler remapping of shared memory on contex switches 2014-09-23 13:19:30 -06:00
Gregory Nutt
bc01f422df More NxWM build fixes 2014-09-20 16:47:00 -06:00
Gregory Nutt
1ca6adadfa More naming changes to get the stm3240g-eval/nxterm configuration building again 2014-09-20 15:53:28 -06:00
Gregory Nutt
2eef637ca2 SAMA5D4-EK/nsh: WM8904 support enabled; README updated 2014-09-18 14:29:20 -06:00
Gregory Nutt
e94adf8ff4 Ooops... a file that I forgot to add yesterday 2014-09-17 09:52:07 -06:00
Gregory Nutt
52a1f19023 Fixes to avoid some hang conditions using STM32 CAN 2014-09-17 08:35:03 -06:00
Gregory Nutt
e409b64bdc Only SAM4 family has RTTDIS bit in the MR register. SourceForge bug #33 from Fabien Comte 2014-09-17 07:42:12 -06:00
Gregory Nutt
04f75c42cc Add a sharable version of arm_virtpgaddr() 2014-09-16 16:49:44 -06:00
Gregory Nutt
d936f1a918 First round of changes to get the ELF configuration building again 2014-09-16 15:37:05 -06:00
Gregory Nutt
c20907b86c These files were deleted and moved to a different location (see previos commit) 2014-09-16 13:36:51 -06:00
Gregory Nutt
8058de7874 remove tailing blank line 2014-09-16 13:36:14 -06:00
Gregory Nutt
bd6f7c50e8 Move common/up_signal_dispatch.c to armv6-m, armv7-m, and armv7-a. The armv7-a version needs to be different to handle the case where we are dispatch kernel mode signals when running under a user mode group 2014-09-16 13:35:29 -06:00
Gregory Nutt
8c3fd5a162 Correct stack handling is signal deliver to user processes 2014-09-16 13:33:13 -06:00
Gregory Nutt
ebc10e0237 Move some share-able logic from sama5/sam_pgalloc.c to armv7-a/arm_physpgaddr.c 2014-09-16 13:31:48 -06:00
Gregory Nutt
4a04ea48e4 Move some share-able logic from sama5/sam_pgalloc.c to armv7-a/arm_physpgaddr.c 2014-09-16 13:31:24 -06:00
Gregory Nutt
9879f47bbb Move some share-able logic from sama5/sam_pgalloc.c to armv7-a/arm_physpgaddr.c 2014-09-16 13:29:43 -06:00
Gregory Nutt
4f1ca4cbb7 Partial fix to an cache cleaning problem 2014-09-15 16:04:42 -06:00
Gregory Nutt
35a282bc30 Fix an error in a debug statement 2014-09-15 15:15:57 -06:00
Gregory Nutt
e2952e4088 Eliminate a bug introduced in last checking 2014-09-15 15:10:50 -06:00
Gregory Nutt
d14d3b29bb ARMv7-A: Improvements to assertion output for kernel mode 2014-09-15 15:03:55 -06:00
Gregory Nutt
9aae0adffa If we are configured to use a kernel stack while in SYSCALL handling, then we need to switch back to the user stack to deliver a signal 2014-09-15 11:38:48 -06:00
Gregory Nutt
949cc1b20c Fix a typo in system call when fetching parameter from the stack: regs[REG_PC]+4 is the address, not regs[REG_PC+4] 2014-09-15 10:55:10 -06:00
Gregory Nutt
946b916f69 Initial integration of kernel stack (does not work) 2014-09-14 11:19:34 -06:00
Gregory Nutt
16ddffc941 Add the initial implementation of the process kernel stack logic. Not yet integrated into the main OS logic nor tested. 2014-09-14 09:53:54 -06:00
Gregory Nutt
ffff51c1b1 Rename everything associated with the dynamic process stack to ustack to make room in the name space for a kstack 2014-09-14 09:10:09 -06:00
Gregory Nutt
d956936535 Add logic need to manage a virtualized stack. Not yet incorporated into base OS logic. 2014-09-13 13:45:35 -06:00
Gregory Nutt
5d4f336b1f Move static helper routines from arm_addrenv.c and may them global so that they can be shared both forthcoming stack address environment logic. 2014-09-13 13:17:44 -06:00
Gregory Nutt
f4bcb27962 Add a configuration option for dynamic stack management 2014-09-13 12:25:32 -06:00
Gregory Nutt
fe48417a96 Comsetic updates to comments, debug output 2014-09-12 10:31:58 -06:00
Gregory Nutt
fba35f0c41 ARMv7-A: Modify up_fullcontextrestore() for CONFIG_BUILD_KERNEL. It changed CPSR while in kernel. That will crash is the new CPSR is user mode while executing in kernel space. Fixed by adding a SYS_context_restore system call. There is an alternative, simpler modification to up_fullcontextrestore() that could have been done: It might have been possible to use the SPSR instead of the CPRSR and then do an exception return from up_fullcontextrestore(). That would be more efficient, but I never tried it. 2014-09-12 08:04:27 -06:00
Gregory Nutt
6084fad7e0 Fix logic for returning from exceptions to user-mode contexts 2014-09-11 18:43:30 -06:00
Gregory Nutt
62e608be8c All tasks, even user mode tasks, must start in supervisor mode until they get past the start-up trampoline 2014-09-11 18:42:52 -06:00
Gregory Nutt
4821587509 Update some comments/function headers 2014-09-11 17:15:26 -06:00
Gregory Nutt
401b8543cd Tighten up some ARM assembly language. You can always do better 2014-09-11 15:12:08 -06:00
Gregory Nutt
bd7f16d16a ARMv7-A: Exception register save/restore needs to work a little differently if we support user mode processes 2014-09-11 14:34:10 -06:00
Gregory Nutt
998c5ee0a9 Trivial kernel build related fixes for consistency 2014-09-11 12:35:23 -06:00
Gregory Nutt
1f23ad9bad Misc fixes to repair some of the breakage to the SAMA5D4-EK elf configuration caused by changes for the knsh configuration 2014-09-11 10:31:12 -06:00
Gregory Nutt
442d2adb7a Fix for UART7 and UART8 on STM32 clock enable from Aton 2014-09-11 10:27:40 -06:00
Gregory Nutt
006cf7d745 Add logic to initialize the per-process user heap when each user process is started 2014-09-10 15:55:36 -06:00
Gregory Nutt
2da0392ae2 SAMA5D4-EK: These configurations now use the fixed DRAM mapping for manipulating the page memory pool. 2014-09-10 08:44:09 -06:00
Gregory Nutt
6238e87aaa Add configuration to use the fixed DRAM mapping for the page pool (if available) instead of remapping dynamically to access L2 page tables and page data. Also, add logic in address environment creation to initialize the shared data at the beginning of the .bss/.data process memory region. 2014-09-10 08:41:01 -06:00
Gregory Nutt
8a99c421ff pcDuino: Several fixes so that it still builds after other Cortex-A changes. 2014-09-10 06:24:39 -06:00
Gregory Nutt
aaf190dcf6 ELF relocations. Some relocation types do not have a named symbol associated with them. The design did not account for that case 2014-09-09 16:52:51 -06:00
Gregory Nutt
068115e7d6 SAM3X/Arduino Due: Fix typo in sam3x_periphclks.h; add SCLK definitions to board.h header file. From Fabien Comte 2014-09-08 06:14:59 -06:00
Gregory Nutt
8b64dc003e SAMA5D4-EK: In kernel build with address environment, need logic to map user virtual addresses to physical addresses, and vice versa 2014-09-07 19:25:30 -06:00
Gregory Nutt
53bd807186 Fix loop counter... was overrunning a table on larger ELF files 2014-09-07 14:42:04 -06:00
Gregory Nutt
dcc711f3f2 Correct size comparison (pages vs. sections) 2014-09-07 13:47:01 -06:00
Gregory Nutt
3dd3b1f5e2 The 'make export' target needs to bundle up the user C startup file (crt0), not the kernel head object 2014-09-04 13:31:34 -06:00
Gregory Nutt
70e5350942 Mostly cosmetic changes 2014-09-04 10:28:38 -06:00
Gregory Nutt
15e439d6de I love/hate conditional compilation 2014-09-03 11:43:23 -06:00
Gregory Nutt
12775801c9 Add support for delivery of use-mode signals in the kernel build. 2014-09-02 15:58:14 -06:00
Gregory Nutt
aa7efbb52e Restructuring of build to allow use of use-space allocators by kernel logic in the kernel build. 2014-09-02 11:22:09 -06:00
Gregory Nutt
8557f1a1bb Space at the beginning of the process data space is now reserved for user heap management structures. In the kernel build mode, these heap structures are shared between the kernel and use code in order to allocate user-specific data. 2014-09-02 11:21:23 -06:00
Gregory Nutt
4d8367a009 sbrk() need to initialized the memory manager on the first call 2014-09-02 08:05:11 -06:00
Gregory Nutt
31b8137956 There used to be two ways to pass parameters to new tasks, depending upon the configuration: Either (1) argv[] as created as an array with each string strdup'ed. Or (1) argv[] array and strings were created on the stack before the new task was started. Now, there is only one way, way (1). Way (2) might be slightly more compact, but this is not worth carry the complexity of two different ways of doing the same thing. 2014-09-01 15:39:34 -06:00
Gregory Nutt
587520a7d2 Completes the implementation of sbrk() (untested) 2014-09-01 10:46:51 -06:00
Gregory Nutt
4537a905f6 ARMv7 address environment: Static functions not marked static 2014-09-01 08:49:08 -06:00
Gregory Nutt
2fd3413d35 Fix common heap allocation logic, taking into account the kernel build requirements 2014-09-01 07:57:54 -06:00
Gregory Nutt
ec086adfae Reanem kzalloc to kmm_zalloc for consistency 2014-08-31 17:34:44 -06:00
Gregory Nutt
10ca085b09 Rename kmalloc to kmm_malloc for consistency 2014-08-31 17:26:36 -06:00
Gregory Nutt
fcd7b9336e Rename kfree to kmm_free for consistency with other naming conventions 2014-08-31 17:04:02 -06:00
Gregory Nutt
bcb5a5316e Rename kumalloc to kumm_malloc and kuzalloc to kumm_zalloc for consistency with other naming 2014-08-31 16:24:24 -06:00
Gregory Nutt
1643c35609 Rename kufree to kumm_free for consistency with other naming 2014-08-31 16:15:11 -06:00
Gregory Nutt
31608cd434 Rename kmemalign to kmm_memalign for consitency with other naming 2014-08-31 14:57:31 -06:00
Gregory Nutt
4c01f5c1b7 Clean up some kernel build heap allocation issues. The Cortex-A kernel build now compiles without errors (but cannot link until brk() and sbrk() are implemented). 2014-08-31 12:50:05 -06:00
Gregory Nutt
10aa9ad087 Remove CONFIG_MM_MULTIHEAP. Non-multiheap operation is no longer supported 2014-08-31 10:54:55 -06:00
Gregory Nutt
05b6217876 ARMv7-A: A little more logic and a few more fixes for Cortex-A kernel build 2014-08-31 07:15:46 -06:00
Gregory Nutt
729bc9f9a7 Various changes/fixes to get configs/stm32f4discovery/kostest working after the big configuration renaming (and after a long period of bit rot) 2014-08-29 16:23:46 -06:00
Gregory Nutt
5fb235c615 Some initial clean-up in verifying the CONFIG_BUILD_PROTECTED configuration change 2014-08-29 15:07:35 -06:00
Gregory Nutt
e11679acf8 Rename CONFIG_NUTTX_KERNEL to CONFIG_BUILD_PROTECTED; Partially integrate new CONFIG_BUILD_KERNEL 2014-08-29 14:47:22 -06:00
Gregory Nutt
67721c50f1 Fix hard coded values in dispatch_sysall inline assembly. Back out/corect part of last change; that was going the wrong direction. 2014-08-29 10:10:47 -06:00
Gregory Nutt
48c2c9ed08 Fix a cloned typo 2014-08-29 10:09:07 -06:00
Gregory Nutt
db69d94935 Fix ARM7/9 and Cortex-A SYSCALLs: For threads in SVC mode, the SVC instructions clobbers R14. This must be taken account in the inline assembly 2014-08-29 10:07:11 -06:00
Gregory Nutt
27e463dfaa Various fixes to the ARMv7-A system call logic 2014-08-29 08:24:00 -06:00
Gregory Nutt
8196b629a4 Rename arch/arm/src/armv7-a/syscall.h to svcall.h to work around some include path name collisions; fix some compilation errors in SYSCALL logic when debug is enabled 2014-08-29 07:48:16 -06:00
Gregory Nutt
8dd679e875 ARMv7-A: Add SYSCALL handling logic 2014-08-28 14:52:14 -06:00
Gregory Nutt
cbf0141d6c Add an ARMv7-A system call definition header file 2014-08-28 13:21:36 -06:00
Gregory Nutt
3561aac62a The system call library can now be built with CONFIG_NUTTX_KERNEL. New select: CONFIG_LIB_SYSCALL 2014-08-28 12:09:49 -06:00
Gregory Nutt
4fa5b52e43 Cortex-A address environments: Fix issue with page privileges 2014-08-28 11:00:41 -06:00
Gregory Nutt
26f6d90fa9 Remove a warning 2014-08-28 10:04:41 -06:00
Gregory Nutt
9be4972862 STM32 FLASH fixes: use size_t instead of uint16_t, make interface more generic. From Freddie Chopin 2014-08-28 09:11:20 -06:00
Gregory Nutt
35b11a7533 Fix an error introduced into ALL implmentations of interrupt dispatch logic 2014-08-28 08:41:57 -06:00
Gregory Nutt
8bdde7b2d1 Add address environment support to ALL implementatins of up_release_pending() 2014-08-28 08:10:19 -06:00
Gregory Nutt
1b24afe6fc Add address environment support to ALL implementatins of up_reprioritize_rtr() 2014-08-28 07:54:07 -06:00
Gregory Nutt
0e9a0150ba ARM: Move address environment switch from the task switchers to the interrupt handler. That may save doing the actin multiple times per interrupt 2014-08-28 06:49:05 -06:00
Gregory Nutt
540a7e4a35 ARM: Move address environment switch from the task switchers to the interrupt handler. That may save doing the actin multiple times per interrupt 2014-08-28 06:34:09 -06:00
Gregory Nutt
756054d745 Add ADDRENV support to ALL implmentations of _exit() 2014-08-27 16:31:02 -06:00
Gregory Nutt
7055bce8b4 Add ADDRENV support to ALL implementations of up_unblock_task() 2014-08-27 16:15:46 -06:00
Gregory Nutt
5bf114e604 Add ADDRENV support to all implementations of up_block_task() 2014-08-27 15:36:52 -06:00
Gregory Nutt
8ec74b1a9e Minor address environment clean-up. Cannot generate debug contexts in certain contexts 2014-08-27 14:22:00 -06:00
Gregory Nutt
dd80c63af6 CC3200 Launchpad updates 2014-08-26 16:31:47 -06:00
Gregory Nutt
e3258a3b1f Support the the TC3200 from Jim Ewing 2014-08-26 15:13:57 -06:00
Gregory Nutt
032ff50313 Add up_addrenv_coherent which will be called before address environment switches 2014-08-26 14:53:19 -06:00
Gregory Nutt
d6a4eb6266 up_coherent_dcache should do nothing the the length is zero 2014-08-26 14:51:53 -06:00
Gregory Nutt
e8094292e3 Rename up_addrenv_assign() to up_addrenv_clone() and generalize its arguments so that can be used for other purposes 2014-08-26 12:16:05 -06:00
Gregory Nutt
cb8e081dba Mostly cosmetic use of uintptr_t to hold addresses instead of uint32_t 2014-08-26 10:44:10 -06:00
Gregory Nutt
b1066775a2 Fix confusion about what is a page of data and what is a page of L2 page table; restructure functions to reduce duplicated logic 2014-08-26 10:41:43 -06:00
Gregory Nutt
45d0b2c5fb Add lots of debug output 2014-08-26 07:54:43 -06:00
Gregory Nutt
b3473bfa26 Cortex-A address environment: Fix some section mapping and address increments 2014-08-26 06:33:26 -06:00
Gregory Nutt
a593729cb2 ARMv7-A: Use of write back might be unpredictable 2014-08-25 16:34:22 -06:00
Gregory Nutt
cfa8174fe4 Bugfixes.. still integrating SAMA5 ELF with address environment 2014-08-25 15:27:58 -06:00
Gregory Nutt
9857f09baf SAMA5 ELF configuration with address environments finally builds without errors 2014-08-25 13:59:02 -06:00
Gregory Nutt
699a54a022 Misc changed to get the SAMA5 ELF configuration with address environments working 2014-08-25 13:28:13 -06:00
Gregory Nutt
8907616478 Cortex-A/SAMA5 address environment support is code complete (untested) 2014-08-25 11:18:32 -06:00
Gregory Nutt
2566ba7b1d Change naming of ELF interfaces from arch_ to up_ for consistency 2014-08-25 06:47:14 -06:00
Gregory Nutt
1f5813a763 After cached related fix, the ELF example is now functional 2014-08-24 14:12:45 -06:00
Gregory Nutt
839e206a4a Modify ADDRENV Kconfigs. Z180 does not need all of the virtual address settings that the ARM does 2014-08-24 12:54:37 -06:00
Gregory Nutt
dde84a0a20 addrenv interface changes: up_addrenv_create() may need to create .text and .bss/.data separately because of differing access privileges (read/execute vs read/write). And, as a consequence, up_addrenv_vaddr() needs to be split into up_addrenv_vtext(0 and up_addrenv_vdata(). 2014-08-24 11:54:14 -06:00
Gregory Nutt
95c79c675c Add addrenv.h; First cut at Cortex-A address environment structures; Add configuration options to setup address enviornment 2014-08-24 09:57:53 -06:00
Gregory Nutt
66abb71c57 Change CONFIG_ADDRENV to CONFIG_ARCH_ADDRENV; change how it is selected -- the architecure must first declare support 2014-08-24 06:42:11 -06:00
Gregory Nutt
41196945d6 ARMv7-A: Add skeleton environment and build support for process address environments 2014-08-23 18:59:24 -06:00
Gregory Nutt
01566dd322 STM32 serial: MAke uart_devs[] const. From Freddie Chopin 2014-08-22 16:20:52 -06:00
Gregory Nutt
52b3735310 Recent STM32 UART change: Wasn't that logic backward? Shouldn't that have been disable the USART if (1) we don't have than many USARTs OR (2) we don't have that particular USART -- not AND. 2014-08-22 16:16:23 -06:00
Gregory Nutt
b01d3e396e STM32 F401: Only 3 USARTS, but need to set STM32_NUSARTS to six because they are not numbered sequentially 2014-08-22 09:02:58 -06:00
Gregory Nutt
033de28cfa STM32 F401: Correct support for USART6 on this chip. From Freddie Chopin 2014-08-22 06:49:16 -06:00
Gregory Nutt
2bc16b2ba5 wdog.h does not contain any application interface, only internal OS interface. Further, it is non-standard. Move wdog.h from include/ to include/nuttx. For the same reason, move the description of the watchdog timer interfaces from the Users Guide to the Porting Guide. 2014-08-21 11:16:55 -06:00
Gregory Nutt
96e1bf0ec2 NSH link management now works! The last fix was to the Ethernet drivers: They cannot disable clocking to the Ethernet blok on ifdown. Otherwise, we cannot communicate with the PHY 2014-08-17 17:54:46 -06:00
Gregory Nutt
754541a381 Change the way PHY interrupts work: disable automatically. Then we have to re-subscribe each time after the interrupt fires 2014-08-17 16:51:56 -06:00
Gregory Nutt
2fab4eaa5a In order to get PHY interrupts, they must be enabled at the PHY (still don't get PHY interrupts) 2014-08-17 13:03:18 -06:00
Gregory Nutt
e0ef5a08bc For all SAM Ethernet, need to enable management interface before reading PHY regisers in IOCTL 2014-08-17 11:09:54 -06:00
Gregory Nutt
2edcca009c SAM3/4 Ethernet: Clone ioctl support from the SAMA5 2014-08-17 06:54:37 -06:00
Gregory Nutt
4c90c03028 Use the device name assigned by the registration process, not our best guess 2014-08-16 15:14:39 -06:00
Gregory Nutt
8f6f564971 More of the PHY event notification logic change: Fix some compile errors when full feature is enabled; Add some missing ioctol logic 2014-08-16 15:04:09 -06:00
Gregory Nutt
329ae8024d Implement all network ioctls, including the new ioctl to setup PHY event notifications. 2014-08-16 14:09:14 -06:00
Gregory Nutt
85070e057e Modified to support the change to the network ioctl signature changes. Also add support for new ioctl to setup PHY event notifications. 2014-08-16 14:08:58 -06:00
Gregory Nutt
74735bb495 Fix conditional compilation error 2014-08-12 10:00:58 -06:00
Gregory Nutt
511d7bb38a Adds support for localtime. From Max Neklyudov 2014-08-12 06:18:22 -06:00
Gregory Nutt
1474a56014 Fix a computation error in the fix for the last computational error 2014-08-11 12:07:49 -06:00
Gregory Nutt
304b3b547c Correct time conversion, 1000000 not 1000 to convert seconds to microseconds. 2014-08-11 11:14:10 -06:00
Gregory Nutt
6e7cb4be58 Comment out reassessment of timer in the middle of context switches. Need to revisit 2014-08-11 07:05:47 -06:00
Gregory Nutt
bb1213ab89 SAMA5 Tickless: Corrects some logic errors with timer/counter frequency 2014-08-10 19:04:18 -06:00
Gregory Nutt
bffc875d2e Cosmetic 2014-08-10 16:09:45 -06:00
Gregory Nutt
a2ee73235d Cosmetic changed, updated README files, improved comments 2014-08-10 13:11:31 -06:00
Gregory Nutt
77d49f50e0 Don't try to return time remaining if the timespec pointer is NULL 2014-08-10 11:39:16 -06:00
Gregory Nutt
9a4e1f6fdd Move TC debug options to one file 2014-08-10 11:38:44 -06:00
Gregory Nutt
33965a21e3 Update comments 2014-08-10 11:38:08 -06:00
Gregory Nutt
42b1bcdf33 SAMA5: Fix bugs in timer/counter interrupts and one-shot timer 2014-08-10 10:47:38 -06:00
Gregory Nutt
9cb0b680ac SAMA5 Timer/counter repair: Missing sem_post() caused a hang 2014-08-09 18:34:52 -06:00
Gregory Nutt
c61ec08ee8 SAMA5: Use the one-shot and free-running timers to implement tickless OS support for SAMA5 2014-08-09 17:14:51 -06:00
Gregory Nutt
19ee65ac3e SAMA5 free-running timer: Add support for a free-running timer wrapper around the low-level timer/counter logic. 2014-08-09 16:43:48 -06:00