Changes between Version 72 and Version 73 of boot_procedure


Ignore:
Timestamp:
Dec 7, 2019, 10:39:53 PM (5 years ago)
Author:
alain
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • boot_procedure

    v72 v73  
    198198In each cluster[cxy], the core[cxy][0] makes the devices initialization (device == peripheral).
    199199
    200 For multi-channels devices, there is one channel device (called chdev) per channel. For each chdev, almost-mkh creates a dedicate kernel DEV thread, that is in charge of executing all requests targeting this ''chdev'', registered in a dedicated associated waiting queue. The chdev API is defined in the [https://www-soc.lip6.fr/trac/almos-mkh/browser/trunk/kernel/kern/chdev.h  almos-mkh/kernel/kern/chdev.h] and [https://www-soc.lip6.fr/trac/almos-mkh/browser/trunk/kernel/kern/chdev.c  almos-mkh/kernel/kern/chdev.c] files.
    201 
    202 For internal (replicated) devices, the chdev descriptors are allocated in the local cluster. For external (shared) devices, the chdev descriptors are regularly distributed on all clusters. These external chdev are indexed by a global index, and the host cluster is computed from this index by a modulo.
     200The almos-mkh policy regarding peripherals and I/O operations is described [wiki:io_operations here].
     201
     202For multi-channels devices, there is one channel device (called chdev) per channel. For each chdev, almost-mkh creates a dedicated kernel DEV thread, that is in charge of executing all requests targeting this ''chdev''. All these requests are registered in a waiting queue rooted in the ''chdev''. The chdev API is defined in the [https://www-soc.lip6.fr/trac/almos-mkh/browser/trunk/kernel/kern/chdev.h  almos-mkh/kernel/kern/chdev.h] and [https://www-soc.lip6.fr/trac/almos-mkh/browser/trunk/kernel/kern/chdev.c  almos-mkh/kernel/kern/chdev.c] files.
     203
     204For internal (replicated) devices, the ''chdev'' descriptors are allocated in the local cluster. For external (shared) devices, the chdev descriptors are regularly distributed on all clusters. These external chdev are indexed by a global index, and the host cluster is computed from this index by a modulo.
    203205
    204206The internal devices descriptors are created first( ICU, then MMC, then DMA ), because the ICU device is used by all other devices.
     
    206208Then each external chdev descriptor is created in the cluster where it must be created.
    207209
    208 A synchronization barrier is required to avoid  access to devices before initialization. 
     210As any thread, running in any cluster, can access any ''chdev'', located in any other cluster, a synchronization barrier is required to avoid  access to devices before initialization. 
    209211
    210212=== D.) IPI, Idle thread, and VFS root initialization ===