source: rtems-libbsd/libbsd.txt @ 8f5adbc

4.1155-freebsd-126-freebsd-12freebsd-9.3
Last change on this file since 8f5adbc was 8f5adbc, checked in by Joel Sherrill <joel.sherrill@…>, on 03/09/12 at 16:21:17

Initial addition of documentation

  • Property mode set to 100644
File size: 3.0 KB
Line 
1RTEMS BSD USB and TCP/IP Developers Guide
2=========================================
3Joel Sherrill <joel.sherrill@oarcorp.com>
4:Author Initials: JRS
5:toc:
6:icons:
7:numbered:
8:website: http://www.rtems.org/
9
10RTEMS uses FreeBSD as the source of its TCP/IP and USB stacks.
11This is a developers guide which captures information on the
12process of merging code from FreeBSD, building this library,
13RTEMS specific support files, and general guidelines on what
14modifications to the FreeBSD source are permitted.
15
16**************************************************************
17This is a work in progress and is very likely to be incomplete.
18Please help by adding to it.
19**************************************************************
20
21== Source Code Version Information
22
23* FreeBSD 8.2 SVN r222496
24* RTEMS 4.11
25  - BSP must have support for all new BSD sys sections
26  - It is preferable if the BSP uses linkcmds.base.
27  - BSP must be from an architecture with Programmable Interrupt Controller
28    interrupt model.
29
30== To Do
31* Adapt generic IRQ PIC interface code to Simple Vectored Interrupt Model
32  so that those architectures can use new TCP/IP and USB code.
33* in_cksum implementations for architectures not supported by FreeBSD.
34  This will require figuring out where to put implementations that do
35  not originate from FreeBSD and are populated via the script.
36* generic in_cksum implementation is missing in_cksum_split so currently
37  cannot be used.
38
39== FreeBSD Source
40
41You should be able to rely on FreebSD manual pages and documentation
42for details on the code itself.
43
44=== Automatically Generated FreeBSD Files
45
46The FreeBSD source tarball includes a file named Makefile.rtems which
47has stanzas to automatically generate some files.
48
49http://www.freebsd.org/cgi/man.cgi?query=kobj&apropos=0&sektion=0&manpath=FreeBSD+9.0-RELEASE&arch=default&format=html
50
51=== Rules for Modifying FreeBSD Source
52
53* Only add lines.  Subtract code by added "ifndef __rtems__". This makes
54merging easier in the future.
55
56== libbsd Source
57
58=== What is in git
59
60The git source is a self-contained kit with FreeBSD and RTEMS components
61pre-merged. The Makefile in this kit is automatically generated.
62
63Any changes to sources in the freebsd or contrib directories will need to
64be merged upstream into our master FreeBSD svn checkout.
65
66=== Building git
67
68You need to configure RTEMS for the desired BSP and install it. Then edit
69the file config.inc to set RTEMS_MAKEFILE_PATH appropriately.
70
71[listing]
72----
73make
74make install
75make -C testsuite
76----
77
78At this point, we expect multiple linker errors. That is what we are
79currently working on.
80
81
82=== Organization
83
84The top level directory contains a few directories and files. The following
85are important to understand:
86
87* freebsd-to-rtems.py - script to convert to and free FreeBSD and RTEMS trees
88* Makefile - automatically generated
89* contrib/ - from FreeBSD by script.
90* freebsd/ - from FreeBSD by script.
91* rtemsbsd/ - RTEMS specific implementations of FreeBSD kernel support routines.
92* testsuite/ - RTEMS specific tests
93* libbsd.txt - Documentation in Asciidoc
94
Note: See TracBrowser for help on using the repository browser.