Bahadir Balban
8ffd4537ea
Added newer platform files.
...
The build can now be done with fine-grain conditions on how to determine
drivers, platforms, arch, subarch etc.
2009-09-11 14:29:24 +03:00
Bahadir Balban
942865e6fc
Working compilation, but adding variant_dir = BUILD it doesn't work
2009-09-11 13:55:46 +03:00
Bahadir Balban
ccd8a61a89
Added container physical regions to cml configuration
2009-09-04 11:41:44 +03:00
Russel Winder
399f1d530d
Pull out the toolchains specification as a separate file and extend to cover the new options in the configuration file.
2009-08-30 13:47:16 +01:00
Bahadir Balban
bda0e064af
Added new subarch, platform, cpu, driver variants for configuration testing.
...
New files are an exact copy of pb926 files, but will help in testing different
configurations and compilations.
2009-08-30 13:21:25 +03:00
Russel Winder
9e894274a3
Refactor the build to try and get as much material as possible out of SConstruct.
2009-08-28 14:10:24 +01:00
Russel Winder
03205855cc
Generalize the configuration processing so that the top-level SConstruct only processes the ARCH symbol and prepares the PLATFORM and SUBARCH entries so as to write the config.h. Everything is now entered in the environment so the SConscript files can be responsible fo rthe processing.
2009-08-28 10:39:19 +01:00
Russel Winder
079b031616
Add check to ensure the source for the required device driver is actually present.
2009-08-28 09:55:55 +01:00
Russel Winder
187b70a829
Remove redundant comments.
2009-08-28 09:23:56 +01:00
Russel Winder
6ca0f2607a
Switch to using a different strategy for building the kernel.
2009-08-27 16:43:47 +01:00
Bahadir Balban
117e3482b6
Capabilities for quantitative resources working.
...
Status:
- Capability initialization is a bit hacky with dummy current etc.
- All container caps belong to the pager
- Tasks refer to their pager's capabilities for mutex allocation - Hacky.
- Kernel container keeps quantitative caps and memory caps in separate lists - Hacky.
These will all evolve and get fixed.
2009-08-22 23:41:53 +03:00
Bahadir Balban
d3d072e47d
Capability accounting for quantitative capabilities - First part done.
...
Need to make sure accounting charges correct containers during init.
Therefore kernel resource spending must also be accounted for.
2009-08-22 12:09:51 +03:00
Bahadir Balban
de087eb1f8
Clean up to kernel code, Added `used' field to capabilities
...
With the addition of used field, capability structure can be
used for resource accounting over the capability.
2009-08-21 12:10:34 +03:00
Bahadir Balban
dabc448c4e
Added freeing of pager init memory, but this memory is currently not utilized.
2009-08-19 16:26:44 +03:00
Bahadir Balban
95b7b65c89
Pager virtual address pool bookkeeping added for all pager virtual addresses
...
Previously virt_to_phys/phys_to_virt macros were used such that they did a
blind offset translation for creating a pager internal virtual address for
user mappings.
This is now changed such that a properly bookkeeped virtual address pool is
used which will avoid any clashes on the virtual space.
2009-08-19 14:44:36 +03:00
Bahadir Balban
5bee43ae99
Merge branch 'newBuild' of /opt/c0-trees/codezero-russel into devel
...
Conflicts:
SConstruct
src/api/SConscript
src/arch/arm/SConscript
src/generic/SConscript
tasks/bootdesc/SConstruct
2009-08-14 17:09:58 +03:00
Bahadir Balban
6a42491751
Fixed uninitialized local vars.
2009-08-14 12:54:54 +03:00
Bahadir Balban
c7404c7322
Fixed boot messages
2009-08-11 15:28:39 +03:00
Bahadir Balban
f82db61519
Added freeing/unmapping of boot memory
2009-08-11 15:01:27 +03:00
Bahadir Balban
f4d9520fef
First working Codezero & POSIX Services with container/capability changes
2009-08-11 11:23:26 +03:00
Bahadir Balban
4f4532210a
Fixed a bug with page_map size by dynamically allocating it.
2009-08-10 23:47:58 +03:00
Bahadir Balban
15b659eaf0
Removed any refs to global id pools.
...
Also added container reference setup to thread creation
2009-08-10 15:16:57 +03:00
Bahadir Balban
aa71161a04
Seems phys_to_page/page_to_phys macros are fixed in mm0
2009-08-09 17:59:32 +03:00
Bahadir Balban
02a3f1ac91
Pager works until end of init_physmem_secondary
2009-08-09 17:22:13 +03:00
Bahadir Balban
961b255257
Replaced kread and kmem_control syscalls with capability_control and container_control respectively.
2009-08-06 16:22:55 +03:00
Bahadir Balban
dccfff80a3
Removed commented out scheduler globals.
2009-08-06 15:02:42 +03:00
Bahadir Balban
e329a7c91a
Removed kmalloc. Initialization path resolved, almost done.
2009-08-06 14:15:39 +03:00
Russel Winder
8b9b254f6c
Make the coding style more consistent with PEP-8.
2009-08-05 11:15:26 +01:00
Bahadir Balban
519bfba8c7
Container/Pager/Capability initialization that works.
...
Need to safely free boot memory and jump to first task's stack.
Need to test scheduler and all syscall entries.
2009-08-04 13:56:11 +03:00
Bahadir Balban
7e8845abf8
Code that compiles until initialization of containers and pagers.
2009-08-02 23:43:14 +03:00
Russel Winder
9b2ff087d0
Add in all the amendments and new files needed to get the kernel building.
2009-08-01 17:50:59 +01:00
Bahadir Balban
82807c2f0a
Code that works until after allocating pgd and pmd caches.
2009-07-29 20:01:40 +03:00
Bahadir Balban
723cf7bde9
Code that compiles and works up to initializing the first memcache.
2009-07-29 19:08:29 +03:00
Bahadir Balban
dd8f773f10
Some more progress on resource management and boot up.
2009-07-29 13:32:38 +03:00
Russel Winder
d40c76de84
Remove all the SCons files pending starting a new build system.
2009-07-28 14:47:00 +01:00
Bahadir Balban
2b0ea24e94
Added 2 more files.
2009-07-25 17:52:06 +03:00
Bahadir Balban
f7b768ee16
More changes for cleaner initialization and support for containers.
2009-07-25 17:44:29 +03:00
Bahadir Balban
0dd8918ae5
Remove all references to ARM registers in system call arguments.
2009-06-10 17:30:02 +03:00
Bahadir Balban
4e43d09325
wait_on_prepare and wait_on_prepared_wait with preemption considered
2009-06-10 15:48:34 +03:00
Bahadir Balban
7ef479733f
Fix to l4_mutex_control for the unexpected sleeping with mutex held
...
when preemption occurs after call to wait_on_prepare
2009-06-10 15:41:30 +03:00
Bahadir Balban
6b3ddadcf5
Cleaned up code for userspace mutexes.
...
- Issues: wait_on_prepare and wait_on_prepared_wait use cases
are erroneous because they may sleep with mutex_control_lock
taken if preemption occurs.
2009-06-10 14:37:23 +03:00
Bahadir Balban
49d47abe97
Evaluated license issues, made some other enhancements.
2009-06-08 17:00:21 +03:00
Bahadir Balban
276b4643c6
Removed linux linked list dependency.
2009-06-02 13:19:17 +03:00
Bahadir Balban
4757f46f71
Minor comment fixes.
2009-06-02 10:26:21 +03:00
Bahadir Balban
13d469f659
Removed all unecessary prints from the mutex test and the kernel
...
- removed (%d) Sleeping print from contended kernel mutexes.
- removed (%d) Waiting print from WAIT_EVENT used by the pager for suspending tasks.
- removed prints from the mutex_control syscall and user mutex test.
2009-06-01 16:02:10 +03:00
Bahadir Balban
3b9cda968d
Added mutex locking to kmalloc/kfree.
2009-06-01 15:18:44 +03:00
Bahadir Balban
1de77f1b93
Merge branch 'devel' into fix-kmalloc
2009-06-01 15:08:28 +03:00
Bahadir Balban
4206c6e3fc
An extra mutex_unlock has been removed
2009-06-01 15:06:07 +03:00
Bahadir Balban
53f54f2328
Modified kmalloc to cater for dynamic memory allocation on a previously allocated size
2009-06-01 14:48:26 +03:00
Bahadir Balban
33200c92df
Mutex implementation almost working.
...
- Fixed a wrong instruction in mutex.S user library
- Added support for blocking lock/unlock
- Divided waiting into wait_on_prepare and wait_on_prepared_wait
so that mutex_control lock is released after getting in the waitqueue.
- Declaring waitqueue on the stack should be done outside wait_on_prepare
Issues:
- Tests can be simplified for atomic data access instead of producer/consumer.
- kmalloc variable sized memory caches are not freed properly. Currently only the
last slot can be freed, occupied correctly. it should be done in any slot, i.e.
1, 2, 3, 4 instead of just 5.
- Need to add a mutex to kmalloc.
2009-06-01 14:11:40 +03:00