This Linux Utils Release is targetted for the various DaVinci- and OMAP-based
platforms running Linux, but is generally usable for any Linux-based system.
The CMEM (Contiguous Memory) utility library provides the ability for
user-mode applications to allocate and free blocks of physically contiguous
memory. This is typically done to manage multimedia data buffers which
will be worked on by multimedia algorithms, but the memory provided by this
library can be used for any purpose.
The reason multimedia algorithms often require physically contiguous
memory is that sometimes they're on another processor which may not
contain an MMU (e.g. the C674 processor on a OMAP-L138 device), and/or
Linux-based algorithms utilize hardware accelerators (e.g. DMA, image
co-processors, etc) which don't access memory through an MMU.
CMEM needs to cache-invalidate heap block during "free" operation for cached allocations
The following enhancements were resolved:
ID
Headline
SDOCM00065628
Update LinuxUtils EDMA module to handle newly coded return value from edma_alloc_channel()
2.25.01.06
The following defects were resolved:
ID
Headline
SDOCM00064125
LinuxUtils SDMAK kernel driver needs to base channel ownership on file struct instead of task struct
The following enhancements were resolved:
ID
Headline
2.25
New features
Device validation on OMAP-L138 and DM6467T
General
While this release fixes a few bugs (see immediately below), the
biggest change is with the ioctl() command IDs - they have changed
to incorporate a module-specific "magic" code so as to not conflict
with other device driver ioctl() command IDs. This fact means that
it is critical that the user update the sub-module user libraries
in conjunction with their associated kernel modules, although a
mismatch between kernel module and user library will be reported
during the module's "init" function (and the "init" will fail).
The following defects were resolved:
ID
Headline
SDOCM00062638
CMEM_registerAlloc() API bug with pool-based allocations
SDOCM00062704
LinuxUtils EDMA kernel module does not correctly auto-release resources in a multi-threaded application
The following enhancements were resolved:
ID
Headline
SDOCM00061526
Need to remove "init_mm" reference from CMEM kernel module source code (cmemk.c)
2.24.03
General
Added sharing capability to VICP/IRQK resources. This allows separate
processes to access the same resource simultaneously. For a given
process, or threads within a process, sharing is accomplished by
allowing mutliple "register" w/o any intervening "unregister".
The following defects were resolved:
ID
Headline
The following enhancements were resolved:
ID
Headline
SDOCM00060312
Allow sharing of Linux Utils VICP resources
2.24.02
General
Fixed problem in EDMA (see Headline immediately below in defects).
The following defects were resolved:
ID
Headline
SDOCM00058845
EDMA module in Linux Utils should not allow partial freeing of a multi-PaRAM EDMA_getResource() allocation
The following enhancements were resolved:
ID
Headline
2.24.01
General
CMEMK now tracks buffer ownership through the calling process' file
descriptor instead of the calling process' "task" descriptor.
The following defects were resolved:
ID
Headline
The following enhancements were resolved:
ID
Headline
SDOCM00058042
CMEM should track buffer ownership through the file descriptor instead of the process descriptor
2.24
General
CMEMK can now be insmod'ed w/o any memory blocks
The following defects were resolved:
ID
Headline
SDOCM00057541
Linux Utils IRQK module can crash kernel if an operation is requested on a resource that's already been released
SDOCM00057542
Linux Utils EDMAK module does not have mutex locks around registration list manipulation
The following enhancements were resolved:
ID
Headline
SDOCM00056992
CMEM should allow no memory block to be specified, so it can be used just for cache operations and virt-to-phys translations
2.23.01
General
Added "banner" display to all kernel modules
CMEM now registers its memory blocks with Linux kernel
All kernel modules now support varied Linux 2.6.x versions
Enhanced resource ownership for multiple owners (EDMAK and CMEMK>
Added "close on exec" flag for all kernel modules' open() calls
The following defects were resolved:
ID
Headline
SDOCM00056304
Linux Utils IRQK kernel module returns wrong value from irq handler function irqHandler()
The following enhancements were resolved:
ID
Headline
2.23
General
Fixed problem with never-ending "make clean" when issued in
ti/sdo/linuxutils/edma/apps
Added OMAPL137 flavor of ti/sdo/linuxutils/cmem/apps/insmod_rmmod
shell script "insmod_rmmod_omapL137.sh"
Validated on Linux 2.6.29 kernel
Added "resource tracking" to CMEM and EDMA kernel modules, so that
unreleased resources get automatically released upon close() and
'rmmod'
The following defects were resolved:
ID
Headline
SDOCM00054009
Linux Utils 2.22.01 does not "export" insmod_rmmod_omapL137.sh
The following enhancements were resolved:
ID
Headline
SDOCM00045995
Validate Linux Utils on 2.6.27 kernel
SDOCM00046045
CMEM should track owner process of buffers and force-free owned buffers when process closes device file
SDOCM00055139
LinuxUtils edmak should release all resources if processes that have requested resources are no longer running
2.22
General
Modified IRQ module to conform to definitions in LSP 2.10
Added "glibc" and "uclibc" goals in interface makefiles to better
facilitate building for individual toolchains
The following enhancements were resolved:
ID
Headline
SDOCM00050455
Create a makefile variable called RULES_MAKE to point to Rules.make
2.21
General
Added VICP module
Added IRQ module
2.20
General
Added SDMA module
Added EDMA module
Added 2nd memory block support to CMEM
The following defects were resolved:
ID
Headline
SDSCM00019164
Failure to insmod cmem results in misleading Codec Engine error
messages
2.10
General
Added allowOverlap insmod command line argument
Added CMEM_getBlock() for retrieving CMEM memory block bounds
The following defects were resolved:
ID
Headline
SDSCM00019818
cat /proc/cmem needs more than one page of memory to avoid buffer
overflow
The following enhancements were resolved:
ID
Headline
SDSCM00023295
CMEM needs insmod config parameter to support allowing kernel memory
& CMEM memory to overlap
2.00
General
Added cached buffer support
Added heap-based allocation in addition to pool based allocation
Added overlap detection for kernel memory and CMEM memory, as well
as an 'insmod' parameter for allowing this overlap
Added support for building for DM355
Modified licensing. The CMEM kernel driver is now licensed under
the GPL 2 license. The CMEM user-mode library is now licensed under
the LGPL 2 license.
The following defects were resolved:
ID
Headline
SDSCM00019947
CMEM causes Linux kernel Oops when insufficient memory exists for
specified pools
The following enhancements were resolved:
ID
Headline
SDSCM00018886
CMEM should allow an option not to partition its area into pools but
to use it for allocation of arbitrarily-sized buffers
The Linux Utils packages are available in the "packages/"
subdirectory of the product. If you have a previous release of the
Linux Utils product, you can install this release next to it, and
modify your application and/or server builds to use this newer
release.
If you're using an SDK, this is often done by setting the
CMEM_INSTALL_DIR variable in a top-level makefile (e.g.
some SDK's include a Rules.make file ).
Note, if you're upgrading from a release earlier than Linux Utils 3.23.00.01,
be sure to review the Upgrade section for each of the releases between
your current release and this one. Previous release notes are
available in the relnotes_archive directory.
This product's version follows a version format, M.mm.pp.bb,
where M is a single digit Major number, mm is 2 digit
minor number, pp is a 2 digit patch number, and b is an
unrestricted set of digits used as an incrementing build counter.
To support multiple side-by-side installations of the product, the
product version is encoded in the top level directory,
ex. linuxutils_4_00_00_06.
Subsequent releases of patch upgrades will be identified by the patch
number, e.g. Linux Utils 4.00.01.XX with directory linuxutils_4_00_01_XX.
Typically, these patches only include critical bug fixes.