Commit Graph

247 Commits

Author SHA1 Message Date
Bahadir Balban
27c0c34e3d Irqs are working. Scheduler modified to come back from no tasks.
- Userspace irq handling for timer.
- If no runnable task is left. scheduler busy loops in user context
  of last runnable task until a new task becomes runnable.
2009-12-14 11:48:40 +02:00
Bahadir Balban
d85ccdb3fe Fixed few more anomalies with threaded irqs.
There is a bug that causes the sleeping irq
thread to never wake up. Investigating.
2009-12-13 20:35:04 +02:00
Bahadir Balban
0c4bd69357 Reimplemented atomic destructive read. Revised irq control capabilities. 2009-12-13 18:49:35 +02:00
Bahadir Balban
c7069a8e8e Fixed minor issues on capability list sharing. 2009-12-13 18:02:47 +02:00
Bahadir Balban
8fe15ba811 Fixed all compilation errors with timer service 2009-12-12 15:31:01 +02:00
Bahadir Balban
8681c1d8c9 Updated the timer service to introduce irq handling. 2009-12-12 15:17:29 +02:00
Bahadir Balban
41b7176a58 2 posix containers tested with changes. Inline assemblers fixed.
Inline assembler for irq disabling had no output variables defined.
2009-12-12 01:54:39 +02:00
Bahadir Balban
32c0bb3a76 Converted all wait/wakeup runqueue lock/unlock paths to irq versions.
Irqs can now touch runqueues and do async wakeups. This necessitated
that we implement all wake up wait and runqueue locking work with irqs.

All this, assumes that in an SMP setup we may have cross-cpu wake ups,
runqueue manipulation. If we later decide that we only wake up threads
in the current container, (and lock containers to cpus) we won't really
need spinlocks, or irq disabling anymore. The current set up might be
trivially less responsive, but is more flexible.
2009-12-12 01:20:14 +02:00
Amit Mahajan
54301e8026 Test container working, but logic seems wrong 2009-12-09 15:56:21 +05:30
Amit Mahajan
57f157c4a5 And now we have working thread demo container. 2009-12-09 12:05:06 +05:30
Amit Mahajan
b106aa902f test and thread_demo container compiling, but crashing at runtime 2009-12-08 14:01:06 +05:30
Amit Mahajan
8d2571cd1f Capability print functions shifted to l4lib and various capability.h
cleaned
2009-12-08 13:02:48 +05:30
Amit Mahajan
2d4a785231 Deleted misplaced baremetal containers present in bahadir's repo. 2009-12-08 11:21:50 +05:30
Bahadir Balban
2908c40816 Undefined instruction handling/ipc revised, tests added, cleaned up. 2009-12-04 15:22:56 +02:00
Bahadir Balban
93dc1ed49e Merge branch 'undeftest' of git://git.l4dev.org/~prem/codezero into prem 2009-12-04 14:11:06 +02:00
Bahadir Balban
21545152c8 Fixed false positive mmap return value error checks.
Normally a pointer with its topmost bits set may cause false errors
due to the fact that such pointers result in negative integer casts.

The remedy is to use IS_ERR() macro that accepts only down to -1000
as error and any values below as valid.
2009-12-04 13:34:14 +02:00
Bahadir Balban
2b89fed572 Merge branch 'rebase' of git://git.l4dev.org/~amit/codezero into devel
Conflicts:
	config/cml/examples/posix/two_posix.cml
2009-12-04 13:18:14 +02:00
Amit Mahajan
a185985fe5 Example cml files updated for new default memory region assignments 2009-12-04 11:08:54 +05:30
Bahadir Balban
7628cc1e1d Merge branch 'rebase' of git://git.l4dev.org/~amit/codezero into amit
Conflicts:
	conts/baremetal/timer_service/main.c
2009-12-04 00:41:51 +02:00
Amit Mahajan
3d2b87d488 CLCD added as new capability, code note added yet 2009-12-04 00:54:23 +05:30
Bahadir Balban
2c93de65bf Removed 2 arguments from l4_capability_control
l4_capability_control works well for almost all system calls
using a buffer pointer to the capability that it operates on.

Only for sharing/granting of capability lists, it is yet to be
decided how to provide a grant target id.
2009-12-02 16:47:05 +02:00
Bahadir Balban
b12349f2e4 Moved all threading functions to libl4/include/l4lib/thread/* 2009-12-02 16:15:47 +02:00
Bahadir Balban
c9fc6d9341 Reorganized a few header file comments 2009-12-02 15:31:02 +02:00
Amit Mahajan
fcc1e52bea Test and Threads_demo containers interchanged by mistake earlier.
Corrected
2009-12-02 00:14:32 +05:30
Amit Mahajan
cf9f3aab5b Timer service enhanced for sleep 2009-12-01 23:31:23 +05:30
Bahadir Balban
26c5b4f0b0 Added standard capability.h to all pre-defined projects 2009-12-01 15:51:41 +02:00
Bahadir Balban
0bd2b78215 Updated two_posix example cml 2009-12-01 14:36:50 +02:00
Amit Mahajan
3caa43d756 Restrictions on naming of baremetal containers removed and we have an
automation script for integrating containers in baremetal/
2009-11-30 19:22:27 +05:30
Bahadir Balban
e82d62f64b Merge branch 'rebase' of git://git.l4dev.org/~amit/codezero into devel
Conflicts:
	conts/baremetal/baremetal5/main.c
2009-11-30 15:36:36 +02:00
Amit Mahajan
9eb5515641 Timer container sleep ipc definition added 2009-11-30 18:36:29 +05:30
Amit Mahajan
438fd780f8 MR register handling added in UART service 2009-11-30 18:26:05 +05:30
Bahadir Balban
7518cbf5ba Corrected mis-copied capability print function. 2009-11-30 13:19:53 +02:00
Amit Mahajan
b9362985e0 Typos' in Bahadir's repo corrected, we are in good shape now and in sync
with bahadir's latest devel branch
2009-11-30 16:07:36 +05:30
Bahadir Balban
1c2e33c929 Updated capability print function 2009-11-30 00:42:24 +02:00
Bahadir Balban
f4989ab2d2 Style fixes to uart service sources 2009-11-29 23:38:38 +02:00
Amit Mahajan
41c87d9c8c Errors due to rebasing corrected. Still not done, ahve some problem in
IRQ patches added.
2009-11-29 12:16:51 +05:30
Amit Mahajan
16b984510f PBA8 platform removed 2009-11-29 11:50:02 +05:30
Amit Mahajan
41a64fcd23 Independent compilation of libl4 and libmem working fine. 2009-11-29 11:45:48 +05:30
Amit Mahajan
88da7c2f36 Timer devices removed, based on PAGE granularity mappings. 2009-11-29 11:45:48 +05:30
Amit Mahajan
1080c9e122 Issues due to capability uattr updation resolved 2009-11-29 11:45:48 +05:30
Amit Mahajan
b48f817bd8 Timer Code tested 2009-11-29 11:45:48 +05:30
Amit Mahajan
d18751fbe8 UART service tested. 2009-11-29 11:45:48 +05:30
Amit Mahajan
26268a30d2 Testing UART service 2009-11-29 11:45:47 +05:30
Amit Mahajan
9f57cb7c67 Timer capability added, Baremetal5 added as Timer Sevice, Code not
tested yet.
2009-11-29 11:45:47 +05:30
Amit Mahajan
b53cc73747 Testing Inter container IPC for UART service 2009-11-29 11:45:47 +05:30
Amit Mahajan
a10a77a0a0 Added UART service as baremetal4 container 2009-11-29 11:44:06 +05:30
Bahadir Balban
b5e6c66426 UTCB update
Added 8 notify slots of 1 byte each. These will be notification
slots for irqs and other threads.

Also now userspace refers to kernel's utcb definition, so they're
in sync.
2009-11-24 14:45:43 +02:00
Bahadir Balban
e0c40ece5d Added a new irq_control system call
This is currently an empty call. It will be used for registering,
receiving and releasing irqs.
2009-11-23 16:46:51 +02:00
Bahadir Balban
328040e98a Renamed all thread symbols in l4lib with l4lib_ prefix. They were clasing with mm0
The threading work will be revised and prefixes changed to a more meaningful name
later on.
2009-11-23 13:18:58 +02:00
Bahadir Balban
e690949b3b tcb_alloc_init of l4lib was clashing with mm0 definitions. 2009-11-23 12:59:33 +02:00