Commit Graph

449 Commits

Author SHA1 Message Date
Gregory Nutt
0f249016a0 Eliminate some warnings 2016-06-13 14:01:32 -06:00
Gregory Nutt
a1469a3e95 Add CONFIG_DEBUG_ERROR. Change names of *dbg() * *err() 2016-06-11 15:50:49 -06:00
Gregory Nutt
e99301d7c2 Rename *lldbg to *llerr 2016-06-11 14:55:27 -06:00
Gregory Nutt
1cdc746726 Rename CONFIG_DEBUG to CONFIG_DEBUG_FEATURES 2016-06-11 14:14:08 -06:00
Gregory Nutt
fc3540cffe Replace all occurrences of vdbg with vinfo 2016-06-11 11:59:51 -06:00
Gregory Nutt
3a74a438d9 Rename CONFIG_DEBUG_VERBOSE to CONFIG_DEBUG_INFO 2016-06-11 11:50:18 -06:00
Steve
a75c48c183 Fix for a minor typo that I introduced somewhere along the way during my testing. This makes the bridge code actually compile… 2016-05-21 17:09:50 -06:00
Steve
bd3ef36eda SUMMARY
-------
   This patch enhances networking support for the simulation under Linux.
   Includes updated support for Linux TUN/TAP, and the addition of support for
   Linux bridge devices.

CHANGES
-------
   o Check to see if the d_txavail callback is present before calling it in
     the arp send code.  This prevents a segfault when simulating the telnetd
     daemon with arp send enabled.

   o Adjust the simulation's netdriver_loop() so it will detect and respond to
     ARP requests.

   o Do not attempt to take the tap device's hardware address for use by the
     simulation.  That hardware address belongs to the host end of the link,
     not the simulation end.  Generate a randomized MAC address instead.

   o Do not assign an IP address to the interface on the host side of the TAP
     link.

   + Provide two modes: "host route" and "bridge".

   + In host route mode, maintain a host route that points any traffic for the
     simulation's IP address to the tap device.  In this mode, so long as the
     simulation's IP is a free address in the same subnet as the host, no
     additional configuration will be required to talk to it from the host.
     Note that address changes are handled automatically if they follow the
     rule of if-down/set-address/if-up, which everything seems to.

   + In bridge mode, add the tap device to the specified bridge instance.  See
     configs/sim/NETWORK-LINUX.txt for information and usage examples.  This
     enables much more flexible configurations (with fewer headaches), such as
     running multiple simulations on a single host, all of which can access
     the network the host is connected to.

   o Refresh configurations in configs/sim where CONFIG_NET=y.  They default
     to "host route" mode.

   o Add configs/sim/NETWORK-LINUX.txt

CAVEATS
-------
   - The MAC address generation code is extremely simplistic, and does not
     check for potential conflicts on the network.  Probably not an issue, but
     something to be aware of.

   - I was careful to leave it in a state where Cygwin/pcap should still work,
     but I don't have a Windows environment to test in.  This should be
     checked.

   - I don't know if this was ever intended to work with OS X.  I didn't even
     try to test it there.

NOTES
-----
   - Was able to get telnetd working and simulate nsh over telnet, but only so
     long as listen backlogs were disabled.

     There appears to be a bug in the backlog code where sockets are being
     returned in SYN_RCVD state instead of waiting until they're ESTABLISHED;
     if you perform an immediate send after accepting the connection, it will
     confuse the stack and the send will hang; additionally, the connection
     will never reach ESTABLISHED state.

     Can be worked around by adding a sleep(1) after the accept in telnetd.  I
     don't have the necessary knowledge of the IP stack to know what the
     correct fix is.
2016-05-20 17:36:14 -06:00
Gregory Nutt
fb484a581f All GCC final arch/*/src/Makefiles: Allow --start-group and --end-group to be redefined for the case where GCC is used to link (instead of LD). Suggested by Paul Alexander Patience. 2016-05-17 10:43:15 -06:00
Gregory Nutt
a3f3cc12c0 Update some comments; Fix grammatic error in ChangeLog. 2016-05-13 17:36:08 -06:00
Gregory Nutt
faca2fb1e7 ARMv7-A/i.MX6: Add logic to handle allocation of CPU IDLE thread stacks more efficiently 2016-05-13 11:39:42 -06:00
Gregory Nutt
70782b0f14 ARMv7-A i.MX6: More SMP logic. Still untested. 2016-05-12 15:04:46 -06:00
Gregory Nutt
aa64214877 FB: Add a display number to the framebuffer planeinfo structure 2016-04-17 10:08:27 -06:00
Gregory Nutt
46846c0c24 Framebuffer driver: Add a display number to each interface in order to support multiple displays 2016-04-14 12:23:15 -06:00
Gregory Nutt
267e20c729 PM: Add domain to all PM interfaces. Internal PM data structures now handle multiple PM domains. 2016-03-27 13:01:32 -06:00
Gregory Nutt
32acc35c88 PM: Add activity domain to all PM callbacks 2016-03-27 11:18:54 -06:00
Gregory Nutt
35707e4d48 SIM: Update scheduler implementation to match prototype changes 2016-03-22 18:18:37 -06:00
Gregory Nutt
e767df5994 SIM: Add another name to the NuttX names list 2016-03-22 13:00:09 -06:00
Gregory Nutt
be5b79875f Fix an error in the simulator version of up_unblock_task() 2016-03-21 15:20:14 -06:00
Gregory Nutt
bd846c2e72 All architectures: Register the schedule note driver if enabled 2016-03-17 17:00:59 -06:00
Gregory Nutt
82c58eb609 SIM: Register the schedule note driver if enabled 2016-03-17 14:43:29 -06:00
Gregory Nutt
8fbe5b6243 sim: Omit built-in scheduler imstrumentation if buffered instrumentation is selected. 2016-03-17 09:50:33 -06:00
Gregory Nutt
411cf0ba1f SMP: Add per-CPU initialization logic 2016-03-13 07:16:26 -06:00
Gregory Nutt
2b2f157569 Forgot to add a file before last commit 2016-03-12 15:28:58 -06:00
Gregory Nutt
6288e381ee Conform to revised SMP interfaces. Improve i.MX6 SMP startup handshake. 2016-03-12 15:22:45 -06:00
Gregory Nutt
a74c19bbae SIM: Add TLS support to to the simulator 2016-03-11 14:03:27 -06:00
Gregory Nutt
c6a0f284e4 Remove comments before empty sections in C files 2016-02-21 14:19:01 -06:00
Gregory Nutt
bd0d46138c SIM: Trivial, uninteresting change to file inclusion in IDLE loop 2016-02-20 14:56:25 -06:00
Gregory Nutt
de885064d2 SIM: Clean up some comments 2016-02-18 14:56:17 -06:00
Gregory Nutt
526c90986a sim SMP: CPU0 should not be the main thread. That introduces an asymmetry since the main thread has no pthread_t ID. Instead, start an additional pthread for CPU0. The main thread will just wait and do nothing in this case 2016-02-18 14:54:48 -06:00
Gregory Nutt
08e2fc0be8 Can't call sdbg() from a signal handler; And another name to nuttx-names.dat 2016-02-18 12:29:37 -06:00
Gregory Nutt
3508e22f3f SMP: Rename sim_cpupause to sim_cpu_pause for consistency with other naming 2016-02-18 11:46:08 -06:00
Gregory Nutt
3deac3d43d SMP: Initial implementation of up_cpu_pause and up_cpu_resume. Does not yet work. 2016-02-18 11:12:43 -06:00
Gregory Nutt
e3ea40e4f9 SMP: Cosmetic renaming to clarify functionality of SMP interfaces. Update comments. 2016-02-17 13:35:23 -06:00
Gregory Nutt
063caf3a90 Add warnings and some comments 2016-02-16 16:08:59 -06:00
Gregory Nutt
8ac45d4f4d Add some additional schedule instrumentation 2016-02-16 15:19:44 -06:00
Gregory Nutt
b4dae46fd7 SIM: Add scheduler instrumentation 2016-02-16 13:40:15 -06:00
Gregory Nutt
9234eec334 SIM: Needs to include stdint.h 2016-02-16 10:12:06 -06:00
Gregory Nutt
17cf9a57a0 Update some comments 2016-02-16 07:50:09 -06:00
Gregory Nutt
1e218415d6 Most cosmetic; fix spelling of teriminate 2016-02-16 07:24:28 -06:00
Gregory Nutt
d2f13e4b12 SIM: If SMP is enabled, show CPU on assertion 2016-02-15 13:47:05 -06:00
Gregory Nutt
e238b29ddf SIM: Add pthread_yield to the list of name collisions 2016-02-15 11:44:53 -06:00
Gregory Nutt
83bc1c97c3 Rename irqsave() and irqrestore() to up_irq_save() and up_irq_restore() 2016-02-14 16:11:25 -06:00
Gregory Nutt
70e502adb0 Replace irqsave() with enter_critical_section(); replace irqrestore() with leave_critical_section() 2016-02-13 19:11:09 -06:00
Gregory Nutt
a884818e32 SIM: Add empty stubs for SMP function up_cpustop and up_cpustart 2016-02-12 17:12:01 -06:00
Gregory Nutt
d22aa4b588 SIM: In SMP simulation, use pthread_yield(), not up_hostusleep() to reliquish the CPU. 2016-02-12 08:13:44 -06:00
Gregory Nutt
62e6275fe5 SIM:Add missing mutex unlock; need to used up_hostusleep(), not usleep(), in up_idle 2016-02-11 17:18:28 -06:00
Gregory Nutt
e41de0a00e SIM: Move IDLE thread initialization from sim to OS since it should be common 2016-02-11 14:10:19 -06:00
Gregory Nutt
ac6c9cf617 SIM: Add SMP idle thread setup logic -- forgot to add files before last commit. 2016-02-11 12:17:41 -06:00
Gregory Nutt
b087cb7f9a SIM: Add SMP idle thread setup logic 2016-02-11 12:16:19 -06:00
Gregory Nutt
0dbbf19fea SIM: Kconfig now indicates that it supports multiple CPUs. 2016-02-10 17:29:04 -06:00
Gregory Nutt
52f88b0625 SIM: Add simulation of a multi-CPU processor 2016-02-10 14:58:21 -06:00
Gregory Nutt
5e91bf9a03 SIM: Add a fake spinlock.h header file that may be useful someday for testing of SMP features 2016-02-10 10:33:37 -06:00
Gregory Nutt
a1126361da sim: Replace explict references to g_readytorun with indirect references via the this_task() macro 2016-02-06 17:05:55 -06:00
Gregory Nutt
1166e311b0 Networking: Remove the HSEC argument from devif_timer. 2016-02-03 11:17:15 -06:00
Gregory Nutt
a9dec09444 Minor fix to comment 2016-01-27 08:16:46 -06:00
Gregory Nutt
b7cbbab761 Remove CONFIG_SPI_OWNBUS: Now it is not just a good idea, it is the law 2016-01-23 18:10:21 -06:00
Gregory Nutt
4bd6adb725 Add dummy hwfeatures method to all SPI interfaces 2016-01-23 15:09:38 -06:00
Gregory Nutt
2030784891 sim: Add more symbols to nuttx-names.dat 2016-01-14 15:14:25 -06:00
Gregory Nutt
927b1dcc1f Initialize the telnet factory as part of the common architecture intialization 2015-12-07 11:40:29 -06:00
Gregory Nutt
3afc0799ad Eliminate a warning 2015-12-05 10:35:11 -06:00
Gregory Nutt
e421258808 Move sim/src/up_appinit.c to configs/sim/src where it really belongs 2015-11-29 13:54:03 -06:00
Gregory Nutt
2afd4595e4 Re-think how __KERNEL__ option is set in architecture Makefiles. Should be passed in EXTRADEFINES 2015-11-26 06:59:35 -06:00
Gregory Nutt
4aa3dcb51a __KERNEL__ should be defined when compiler architecture specific logic 2015-11-25 18:05:36 -06:00
Gregory Nutt
f4e8f84887 __KERNEL__ should be defined when compiler architecture specific logic 2015-11-25 17:52:14 -06:00
Gregory Nutt
14d7ede265 All instances of up_initialize() should call loop_register() is CONFIG_DEV_LOOP=y 2015-11-25 17:10:41 -06:00
Ken Pettit
641ca79321 arch/sim/src: Add a special file system for use with simulator that supports access to the host file system from the simulation. From Ken Petit 2015-11-25 08:36:44 -06:00
Gregory Nutt
d7c5ff98f4 Fix a typo 2015-11-23 18:55:38 +00:00
Gregory Nutt
edb1439d8f Last change introduced warnings when CONFIG_SIM_M32=y; This fixes those warnings too 2015-11-23 12:44:59 -06:00
Gregory Nutt
9f98dfecb7 sim: Eliminate a warning 2015-11-23 11:59:33 -06:00
Ken Pettit
992d7d1e85 arch/sim/src/up_spiflash.c: Add support for W25 FLASH simulation. From Ken Petit 2015-11-18 07:08:38 -06:00
Gregory Nutt
c340185cb3 arch/sim: Fix spacing/alignment issues 2015-10-14 07:14:28 -06:00
Gregory Nutt
7a63e976ad Remove TABs 2015-10-04 16:00:42 -06:00
Gregory Nutt
aaa697ec83 Remove dangling whitespace 2015-10-04 15:27:17 -06:00
Gregory Nutt
6fc6d17760 Fix some spacing problems 2015-10-04 14:59:08 -06:00
Gregory Nutt
cae0c9a2e3 Standardize the width of all comment boxes in header files 2015-10-02 17:47:23 -06:00
Gregory Nutt
36726b1bc4 Standardize the width of all comment boxes in header files 2015-10-02 17:42:29 -06:00
Gregory Nutt
82cc93c71b Add some comments to a Kconfig file 2015-09-24 14:53:04 -06:00
Gregory Nutt
50b64f6991 Sim target on Cygwin64: Modern Cygwin X86_64 machines follow the Microsoft ABI for parameter passing. The older,inux System 5 ABI will not work on X86_64-based Cygwin machines. With this change, the simulator agains works with the newer Cygwin64 platform 2015-09-24 14:41:57 -06:00
Gregory Nutt
569a29a327 Simulation: Newer versions of Cygwin tools do not seem to pre-pend symbol names with underscore character 2015-09-24 09:08:52 -06:00
Gregory Nutt
26eada3446 In all up_initialize() functions, automatically initialize TUN driver is so configureded 2015-09-06 09:35:29 -06:00
Paul A. Patience
a0dc724a5d Correct #if to #ifdef when the macro can be undefined. Fix bug in AT32UC3 clock initialization: AVR32_CLOCK_PLL_OSC1 should be AVR32_CLOCK_PLL0_OSC1 and AVR32_CLOCK_PLL1_OSC1. 2015-09-01 13:47:06 -04:00
Gregory Nutt
01cfe8c315 Networking: Move where the local loopback device is initialized from board_app_intiialize() to up_intiialize() so that it will happen automatically 2015-08-24 14:25:49 -06:00
Gregory Nutt
c9603b27c0 sim: Add logic to initialize the local loopback device is so configured 2015-08-24 13:46:05 -06:00
Gregory Nutt
0843af5367 Fixes that call sched_resume_scheduler and sched_suspend_scheduler must include nuttx/sched.h 2015-07-29 16:51:26 -06:00
Gregory Nutt
eddf8161a5 Add scheduler resume/suspend calls to all implementations of up_release_pending() 2015-07-26 10:13:29 -06:00
Gregory Nutt
37969b8279 Add scheduler resume/suspend calls to all implementations of up_reprioritize_rtr() 2015-07-26 09:46:28 -06:00
Gregory Nutt
838c5355eb Correct resume scheduler hooks and add suspend scheduler hooks to all implementations of up_unblock_task 2015-07-26 09:07:47 -06:00
Gregory Nutt
a92c0a10ab Add scheduler resume/suspend calls in all implementations of up_block_task() 2015-07-26 08:31:23 -06:00
Gregory Nutt
9d98177daa Add logic to reset the replenish the sporadic scheduler when a task is resumed 2015-07-24 09:54:28 -06:00
Gregory Nutt
724c1eacaa Add support for a BOARDIOC_RESET boardctl() command. Enable configuration options to support BOARDIOC_RESET for ARMv6-M and ARMv7-M 2015-07-04 10:39:24 -06:00
Gregory Nutt
36ddd9f691 Simulatin: Save the intial terminal mode and restore this before terminating. Otherwise, the NSH shutdown command leaves the console in raw mode 2015-07-04 08:43:10 -06:00
Gregory Nutt
749907cbbe sim configuration: Add support for board_app_initialize() which is needed when CONFIG_LIB_BOARDCTL=y 2015-07-04 08:16:45 -06:00
Gregory Nutt
8db3a7a13e Add a board_app_initilize() stub function needed by the simulatin when CONFIG_LIB_BOARDCTL=y 2015-07-04 07:35:14 -06:00
Gregory Nutt
37e681f89a Implementment board_power_off() for the simulation platform. 2015-07-04 07:22:38 -06:00
Gregory Nutt
fb926e7283 Fix references to the no-longer-existent misc/ directory in comments, README files, and documentation 2015-06-28 08:08:57 -06:00
Gregory Nutt
29136e51cc Clean up and review of header files for conformance to standards 2015-06-12 19:26:01 -06:00
Gregory Nutt
a25d0908f8 Simulator: Add more name conversons. From Max Neklyudov 2015-05-29 08:20:06 -06:00
Gregory Nutt
95c885977a apps/examples/ostest: Add a test for the sigprocmask, sighold, and sigrelse 2015-04-09 15:53:59 -06:00
Gregory Nutt
ae15c6963c Make some file section headers more consistent with standard 2015-04-08 08:04:12 -06:00