osmocom-bb/src
Pau Espin 3348f49179 Migrate network identifier fields to modern osmocom structures
This allows using well tested standarized API to print, compare, etc. usual
identifiers like PLMN, LAI, etc.
It also simplifies code by avoiding passing lots of parameters and
making it easier to identify which fields go packed together.
This is specially important since in the future more of those
identifiers will be added for GPRS.

Change-Id: I07a9289825c09ed748e53d36a746ea164c8a5d7f
2023-05-22 16:12:04 +02:00
..
host Migrate network identifier fields to modern osmocom structures 2023-05-22 16:12:04 +02:00
shared l1gprs: fix NULL pointer dereference in l1gprs_unregister_tbf() 2023-03-18 20:05:04 +07:00
target Cosmetic: fix encoding of ui-experiment/font.h 2023-02-20 11:11:03 +01:00
target_dsp Fix common misspellings and typos 2019-10-17 08:07:39 +00:00
Makefile fixup: gsmmap: move this utility to 'layer23/src/misc/' 2023-01-04 03:23:29 +07:00
README.building README.building: cosmetic: correct wiki links 2018-05-20 15:34:16 +03:00
README.development update git URLs (git -> https; gitea) 2022-06-18 13:59:31 +02:00

README.development

= Contributing to OsmocomBB development =

Feel free to help us by extending the code.  Always make sure to
send back all your patches to Gerrit (recommended) or to the
baseband-devel@lists.osmocom.org mailing list - Free Software
is all about sharing. For details, see:

https://osmocom.org/projects/cellular-infrastructure/wiki/Gerrit
https://gerrit.osmocom.org/

== Coding Style ==

Like all C language Osmocom projects, we use the Linux Kernel coding
style, you can find it in the Documentation/CodingStyle subdirectory
of any Linux Kernel source. For details, see:

https://osmocom.org/projects/cellular-infrastructure/wiki/Coding_standards

== More Information ==

Please consult the https://osmocom.org/projects/baseband/wiki/.

If you have any technical questions regarding the code, don't hesitate
to ask the baseband-devel@lists.osmocom.org mailing list.

== subdirectories containing libraries and code ==

=== src/shared/libosmocore ===

This is a library of various utility routines, including linked lists,
message buffers, bit-vectors, memory allocator, signals, select loop
handling, timers - as well as some more specifically GSM related things
like a TLV parser, a Comp128V1 implementation and utility functions for
RSL (TS 08.58) and CC/MM/RR (TS 04.08).

libosmocore is maintained in https://gitea.osmocom.org/osmocom/libosmocore, so

	DO NOT DIRECTLY COMMIT TO libosmocore IN THIS REPOSITORY!

We simply maintain a copy (synchronized by git-subtree) in this
repository for the ease of building and to make sure everyone is using
the proper/compatible version of libosmocore

Please note, whatever you add to libosmocore will need to build as a
Linux userspace program (using glibc) just as well as on the OsmocomBB
embedded target without OS.  So please refrain from using fancy
functions.


=== src/target/firmware ===

The firmware is what we build for the actual target (phone).  It was
written with some idea of modularity in mind, i.e. we have

 * Ti Calypso specific code in calypso/
 * Analog Baseband code in abb/
 * RF Mixer code in rf/
 * Layer1 code in layer1/
 * NOR flash handling in flash/
 * LCD display handling in display/
 * minimal C-Library code in lib/
 * communications utility routines in comm/
 * Board (phone model/family) specific code in board/
   * board/compal_e88 is the Motorola C115-C124 family
   * board/compal_e99 is the Motorola C155 family
 * Applications (each app builds one firmware image) in apps/

=== src/target/trx_toolkit ===

A set of tools in Python for debugging TRX interface and creating
a virtual Um-interface between OsmocomBB and OsmoBTS. For details,
please refer:

https://osmocom.org/projects/baseband/wiki/TRX_Interface
https://osmocom.org/projects/baseband/wiki/FakeTRX
target/trx_toolkit/README

=== src/target_dsp/calypso ===

This is where we keep some (assembly) code that we wrote for
the DSP that is part of the Calypso DBB.

=== src/host/layer23 ===

The Layer2 (LAPDm / TS 04.06) and Layer3 (CC/MM/RR / TS 04.08)
implementations, as they are growing.