Commit graph

688 commits

Author SHA1 Message Date
Stefan Lankes
81a24913ca fix bug by disabling LwIP 2011-08-02 13:05:08 +02:00
Stefan Lankes
026d5e264c use table_lock to avoid GPs during a task switch 2011-08-02 10:24:17 +02:00
Stefan Lankes
744abc36c8 minor optimization on single core systems 2011-08-02 07:07:16 +02:00
Stefan Lankes
5ffa35351c minor optimizations... IRQ handler calls directly the LwIP stack 2011-08-01 13:26:11 -07:00
Stefan Lankes
d5bfc4f28c avoid races on SMP systems
=> signalizes with a new flag, that a task switch is finished
2011-08-01 22:01:39 +02:00
Stefan Lankes
2538fd7d0b use nicer output messages 2011-08-01 22:00:05 +02:00
Stefan Lankes
5c9ef35170 use tcpip_input instead of ethernet_input
=> With NO_SYS=0, netif->input must be set to tcpip_input for all netif types (whether ethernet, PPP, slipif, etc.)
2011-08-01 21:57:38 +02:00
Stefan Lankes
3f2d9a2405 add support of LwIP's "lightweight" synchronization mechanisms 2011-08-01 21:56:16 +02:00
Stefan Lankes
253ec92ca0 remove obsolete wait function
=> IRQ handler uses directly the LwIP stacks
2011-08-01 21:52:57 +02:00
Stefan Lankes
a26f88c940 cosmetic changes 2011-07-31 19:17:42 +02:00
Stefan Lankes
27ee238684 search MP table on all systems 2011-07-31 19:15:06 +02:00
Stefan Lankes
ee30cdd0bf enable LWIP's raw ip for the ping example 2011-07-31 19:13:59 +02:00
Stefan Lankes
0410594ae8 fix bug in handling the timer interrupt
=> sending EOI before task switching
2011-07-30 22:47:27 +02:00
Stefan Lankes
5290cd0002 using of the correct data types
=> avoids some conflicts on other architectures
2011-07-30 22:46:08 +02:00
Stefan Lankes
8c9504a87f add some additional error checks 2011-07-30 17:40:09 +02:00
Stefan Lankes
f76f4ac70d fix wrong initialization of current_task 2011-07-30 17:36:21 +02:00
Stefan Lankes
fba32ec692 using of the correct data types
=> avoids some conflicts on other architectures
2011-07-30 17:34:30 +02:00
Stefan Lankes
1f681afcb1 cosmetic changes 2011-07-30 17:29:43 +02:00
Stefan Lankes
30f84a4007 fix bug in irq handling 2011-07-30 17:28:09 +02:00
Stefan Lankes
4735eb6651 redirect qemu's monitor to stdio 2011-07-30 17:24:06 +02:00
Stefan Lankes
0d867265d9 set LWIP_RAW to 0 because we don't nee raw pcbs => speeds up input processing 2011-07-26 14:54:06 -07:00
Stefan Lankes
ff2b9da103 do not longer search a MP table, if MAX_CORES is set to 1 2011-07-22 21:17:15 +02:00
Stefan Lankes
ff8c37d68d use "real" atomic operations to set a value in atomic_t 2011-07-22 21:08:38 +02:00
Stefan Lankes
83bd42a020 remove type 2011-07-21 21:57:15 +02:00
Stefan Lankes
dd9ddbca46 add memory barrier 2011-07-21 19:15:48 +02:00
Stefan Lankes
ab37b024b0 simply the scheduler => move code from entry.asm to timer.c 2011-07-21 09:59:29 +02:00
Stefan Lankes
b228c2260f reduce the number of per_core calls 2011-07-21 09:58:42 +02:00
Stefan Lankes
28a535dbeb SMP version is currently buggy => please define MAX_CORES as 1 2011-07-20 09:51:50 +02:00
Stefan Lankes
e57a447fda minor changes in using the per_core macro, add additional output messages by an exception & cosmetic changes 2011-07-20 09:47:46 +02:00
Stefan Lankes
20c944b099 avoid a task migration during the calculation of the current task
=> temporary clearing the IF flag
2011-07-20 08:24:24 +02:00
Stefan Lankes
dfa928de78 reduce the number of function calls to determine the core id 2011-07-19 21:22:54 +02:00
Stefan Lankes
8e9accd6ed cosmetic changes 2011-07-19 09:58:40 +02:00
Stefan Lankes
a422926dda cosmetic changes 2011-07-19 09:23:55 +02:00
Stefan Lankes
d05ffcacac we use the same handler for exceptions and interrupts => interrupts has to push a virtual error code on the stack 2011-07-19 09:10:12 +02:00
Stefan Lankes
b1c5bf67c2 use a more robust method to find the MP table 2011-07-19 07:36:24 +02:00
Stefan Lankes
d203a070f4 add IPI support to flush the TLB on the other cores 2011-07-19 07:16:49 +02:00
Stefan Lankes
85768e6f58 fix bug in APIC code
=> before we enable the interrupts,  we map the APIC registers
2011-07-18 15:51:26 +02:00
Stefan Lankes
82e6604a2c demo also shows the core number on which the application is running 2011-07-18 09:51:16 +02:00
Stefan Lankes
da8b078184 align timer_ticks to a cache line 2011-07-18 09:32:52 +02:00
Stefan Lankes
e595fae384 add SMP support
- this is experimental version
- by setting MAX_CORES to 1, you are to disable the SMP support
2011-07-18 09:14:28 +02:00
Stefan Lankes
09b3655ea4 reserve a page for the boot code of the application processors 2011-07-18 09:13:33 +02:00
Stefan Lankes
ba1cbc97c8 on a SMP system, only the boot processor increases the timer value 2011-07-18 09:10:23 +02:00
Stefan Lankes
36a8ed9e31 add helper functions for reading and writing CMOS entries 2011-07-18 09:06:09 +02:00
Stefan Lankes
35ec905b7e move processor initialization code into the function cpu_init 2011-07-18 09:01:35 +02:00
Stefan Lankes
e7c0f53562 redesign of the boot code of the application processor 2011-07-18 08:35:57 +02:00
Stefan Lankes
1fb1379a9c remove typo 2011-07-18 08:35:14 +02:00
Stefan Lankes
afbe7ea520 fix typo 2011-07-16 07:52:14 +02:00
Stefan Lankes
18ce8eff11 some code cleanups 2011-07-15 09:22:31 +02:00
Stefan Lankes
a61607d2e7 add additional error messages 2011-07-12 10:26:50 -07:00
Stefan Lankes
ff1bc7c470 remove typo 2011-07-11 23:42:25 -07:00