User:Simonea

From eLinux.org
Revision as of 19:06, 13 May 2010 by Simonea (Talk | contribs)

Jump to: navigation, search

Enrolled in ECE 597 at Rose-Hulman Institute of Technology, working on ECE597 Interactive Pong

Lab 5 Part C

I found the following makefile to work, while the suggested alterations and the file in "solutions/lab05c_x86_configuro/app" did not work for me:

# ****************************************************************************
# Makefile
#
# x86 makefile for lab 5 part c.
#
# **NOTE: ensure that the values in setpaths.mak are set properly for where 
#	  the actual packages are
# ****************************************************************************

include ../../setpaths.mak

#Variables
CC := $(LINUX86_GCC)
CC_ROOT := $(LINUX86_DIR)
CFLAGS := -g
LINKER_FLAGS := -lstdc++

#Configuro Vars
CONFIG := app_cfg
XDC:=$(XDC_INSTALL_DIR)/xdc
CONFIGURO:= $(XDC_INSTALL_DIR)/xs xdc.tools.configuro
export XDCPATH:=/home/user/rtsc_primer/examples;$(XDCROOT)
TARGET   := gnu.targets.Linux86
PLATFORM := host.platforms.PC

.PHONY:all
all:app.x86U

.PHONY : clean
clean  :
	@rm -rf app.x86U	
	@rm -rf app.o
	@rm -rf $(CONFIG)

#Primary
app.x86U : app.o $(CONFIG)/linker.cmd
	@$(CC) $(CFLAGS) $(LINKER_FLAGS) $^ -o $@
	@echo $@ successfully created

%.o : %.c compiler.opt
	@$(CC) $(CFLAGS) $(shell cat $(CONFIG)/compiler.opt) -c $< -o $@

compiler.opt linker.cmd : $(CONFIG).cfg 
	@$(CONFIGURO) -c $(CC_ROOT) -t $(TARGET) -p $(PLATFORM) -o $(CONFIG) $^
	@echo "Configuro has completed; it's results are in $(CONFIG) " 

Chapter 2 Listings

Number Caption Listing
2-1 Initial Bootloader Serial Output
Texas Instruments X-Loader 1.4.2 (Feb 19 2009 - 12:01:24)
Reading boot sector
Loading u-boot.bin from nand


U-Boot 2009.11-rc1-00601-g3aa4b51 (Jan 05 2010 - 20:56:38)

OMAP3530-GP ES3.1, CPU-OPP2 L3-165MHz
OMAP3 Beagle board + LPDDR/NAND
I2C:   ready
DRAM:  256 MB
NAND:  256 MiB
In:    serial                                                                   
Out:   serial                                                                   
Err:   serial                                                                   
Board revision C4                                                               
Die ID #1268000400000000040365fa14004019      
2-3 Linux Final Boot Message
Configuring network interfaces... done.
Starting portmap daemon: portmap.
Unknown HZ value! (57) Assume 100.
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.all.rp_filter = 1
INIT: Entering runlevel: 5
Starting system message bus: dbus.
Starting Hardware abstraction layer hald
Configuring leds:
  beagleboard::pmu_stat: none
  beagleboard::usr0: heartbeat
  beagleboard::usr1: mmc0
Starting Dropbear SSH server: dropbear.
Starting advanced power management daemon: No APM support in kernel
(failed.)
Starting syslogd/klogd: done
 * Starting Avahi mDNS/DNS-SD Daemon: avahi-daemon
[ ok ]
Starting Network connection manager daemon: NetworkManager.
Loading kernel modules for gstreamer-ti... [   51.098388] CMEMK module: built o2
[   51.105255]   Reference Linux version 2.6.32
[   51.109558]   File /OE/angstrom-dev/work/beagleboard-angstrom-linux-gnueabi/c
[   51.135498] CMEM Range Overlaps Kernel Physical - allowing overlap
[   51.148284] CMEM phys_start (0x86300000) overlaps kernel (0x80000000 -> 0x90)
[   51.158172] CMEMK Error: Failed to request_mem_region(0x86300000, 16777216)
FATAL: Error inserting cmemk (/lib/modules/2.6.32/kernel/drivers/dsp/cmemk.ko):s
[   51.264160] eth0: link up, 100Mbps, full-duplex, lpa 0x41E1
[   51.273651] DSPLINK Module (1.64) created on Date: Mar 18 2010 Time: 13:22:42
[   51.487915] eth0: link up, 100Mbps, full-duplex, lpa 0x41E1
[   51.497131] SDMAK module: built on Mar 18 2010 at 13:19:31
[   51.502655]   Reference Linux version 2.6.32
[   51.531280]   File /OE/angstrom-dev/work/beagleboard-angstrom-linux-gnueabi/c
  done
Starting PVR
Loading [g_cdc]
[   53.046020] g_cdc gadget: using random self ethernet address
[   53.052154] g_cdc gadget: using random host ethernet address
[   53.067260] usb0: MAC 9e:15:ca:d1:59:76
[   53.071136] usb0: HOST MAC 32:3b:2b:5b:3c:6d
[   53.104949] g_cdc gadget: CDC Composite Gadget, version: King Kamehameha Day8
[   53.120147] g_cdc gadget: g_cdc ready
Starting GPE display manager: gpe-dm

.-------.                                           
|       |                  .-.                      
|   |   |-----.-----.-----.| |   .----..-----.-----.
|       |     | __  |  ---'| '--.|  .-'|     |     |
|   |   |  |  |     |---  ||  --'|  |  |  '  | | | |
'---'---'--'--'--.  |-----''----''--'  '-----'-'-'-'
                -'  |
                '---'

The Angstrom Distribution beagleboard ttyS2

Angstrom 2009.X-test-20100104 beagleboard ttyS2

2-4 Hello World, Embedded Style
#include <stdio.h>

int bss_var;        /* Uninitialized global variable */

int data_var = 1;   /* Initialized global variable */

int main(int argc, char **argv)
{
  void *stack_var;            /* Local variable on the stack */
  
  stack_var = (void *)main;   /* Don't let the compiler */
                              /* optimize it out */

  printf("Hello, World! Main is executing at %p\n", stack_var);
  printf("This address (%p) is in our stack frame\n", &stack_var);

  /* bss section contains uninitialized data */
  printf("This address (%p) is in our bss section\n", &bss_var);

  /* data section contains initializated data */
  printf("This address (%p) is in our data section\n", &data_var);

  return 0;
}

Chapter 4 Listings

Number Caption Listing
4-3 Kernel Subdirectory omap1
simonea@simonea-2:/home/simonea/oe/linux-omap-2.6/arch/arm$ ls -l mach-omap1
total 432
-rwxrwx--x 1 simonea elinux  7080 2010-03-11 23:14 board-ams-delta.c
-rwxrwx--x 1 simonea elinux  9081 2010-03-11 23:14 board-fsample.c
-rwxrwx--x 1 simonea elinux  2514 2010-03-11 23:14 board-generic.c
-rwxrwx--x 1 simonea elinux 11159 2010-03-11 23:14 board-h2.c
-rwxrwx--x 1 simonea elinux  1585 2010-03-11 23:14 board-h2.h
-rwxrwx--x 1 simonea elinux  1862 2010-03-11 23:14 board-h2-mmc.c
-rwxrwx--x 1 simonea elinux 10227 2010-03-11 23:14 board-h3.c
-rwxrwx--x 1 simonea elinux  1550 2010-03-11 23:14 board-h3.h
-rwxrwx--x 1 simonea elinux  1668 2010-03-11 23:14 board-h3-mmc.c
-rwxrwx--x 1 simonea elinux  8037 2010-03-11 23:14 board-htcherald.c
-rwxrwx--x 1 simonea elinux 11497 2010-03-11 23:14 board-innovator.c
-rwxrwx--x 1 simonea elinux 10347 2010-03-11 23:14 board-nokia770.c
-rwxrwx--x 1 simonea elinux 15686 2010-03-11 23:14 board-osk.c
-rwxrwx--x 1 simonea elinux  9547 2010-03-11 23:14 board-palmte.c
-rwxrwx--x 1 simonea elinux  7198 2010-03-11 23:14 board-palmtt.c
-rwxrwx--x 1 simonea elinux  8167 2010-03-11 23:14 board-palmz71.c
-rwxrwx--x 1 simonea elinux  7691 2010-03-11 23:14 board-perseus2.c
-rwxrwx--x 1 simonea elinux 10377 2010-03-11 23:14 board-sx1.c
-rwxrwx--x 1 simonea elinux  1614 2010-03-11 23:14 board-sx1-mmc.c
-rwxrwx--x 1 simonea elinux  6996 2010-03-11 23:14 board-voiceblue.c
-rwxrwx--x 1 simonea elinux 14005 2010-03-11 23:14 clock.c
-rwxrwx--x 1 simonea elinux 24059 2010-03-11 23:14 clock_data.c
-rwxrwx--x 1 simonea elinux  3880 2010-03-11 23:14 clock.h
-rwxrwx--x 1 simonea elinux  7542 2010-03-11 23:14 devices.c
-rwxrwx--x 1 simonea elinux   692 2010-03-11 23:14 flash.c
-rwxrwx--x 1 simonea elinux  5186 2010-03-11 23:14 fpga.c
-rwxrwx--x 1 simonea elinux  1025 2010-03-11 23:14 i2c.c
-rwxrwx--x 1 simonea elinux  6447 2010-03-11 23:14 id.c
drwxrwx--x 3 simonea elinux  4096 2010-03-11 23:14 include
-rwxrwx--x 1 simonea elinux  3552 2010-03-11 23:14 io.c
-rwxrwx--x 1 simonea elinux  7074 2010-03-11 23:14 irq.c
-rwxrwx--x 1 simonea elinux  6527 2010-03-11 23:14 Kconfig
-rwxrwx--x 1 simonea elinux 10873 2010-03-11 23:14 lcd_dma.c
-rwxrwx--x 1 simonea elinux  1461 2010-03-11 23:14 leds.c
-rwxrwx--x 1 simonea elinux   146 2010-03-11 23:14 leds.h
-rwxrwx--x 1 simonea elinux  3222 2010-03-11 23:14 leds-h2p2-debug.c
-rwxrwx--x 1 simonea elinux  1565 2010-03-11 23:14 leds-innovator.c
-rwxrwx--x 1 simonea elinux  2044 2010-03-11 23:14 leds-osk.c
-rwxrwx--x 1 simonea elinux  4798 2010-03-11 23:14 mailbox.c
-rwxrwx--x 1 simonea elinux  1776 2010-03-11 23:14 Makefile
-rwxrwx--x 1 simonea elinux    87 2010-03-11 23:14 Makefile.boot
-rwxrwx--x 1 simonea elinux  5597 2010-03-11 23:14 mcbsp.c
-rwxrwx--x 1 simonea elinux 20719 2010-03-11 23:14 mux.c
-rwxrwx--x 1 simonea elinux  2279 2010-03-11 23:14 opp_data.c
-rwxrwx--x 1 simonea elinux   705 2010-03-11 23:14 opp.h
-rwxrwx--x 1 simonea elinux 19611 2010-03-11 23:14 pm.c
-rwxrwx--x 1 simonea elinux  9084 2010-03-11 23:14 pm.h
-rwxrwx--x 1 simonea elinux  6043 2010-03-11 23:14 serial.c
-rwxrwx--x 1 simonea elinux  9282 2010-03-11 23:14 sleep.S
-rwxrwx--x 1 simonea elinux  1543 2010-03-11 23:14 sram.S
-rwxrwx--x 1 simonea elinux  7096 2010-03-11 23:14 time.c
-rwxrwx--x 1 simonea elinux  6121 2010-03-11 23:14 timer32k.c
4-3 Kernel Subdirectory omap2
simonea@simonea-2:/home/simonea/oe/linux-omap-2.6/arch/arm$ ls -l mach-omap2
total 1952
-rwxrwx--x 1 simonea elinux   5333 2010-03-11 23:14 board-2430sdp.c
-rwxrwx--x 1 simonea elinux  19575 2010-03-11 23:14 board-3430sdp.c
-rwxrwx--x 1 simonea elinux   2645 2010-03-11 23:14 board-3630sdp.c
-rwxrwx--x 1 simonea elinux   3467 2010-03-11 23:14 board-4430sdp.c
-rwxrwx--x 1 simonea elinux   8117 2010-03-11 23:14 board-am3517evm.c
-rwxrwx--x 1 simonea elinux   8653 2010-03-11 23:14 board-apollon.c
-rwxrwx--x 1 simonea elinux  22418 2010-03-11 23:14 board-cm-t35.c
-rwxrwx--x 1 simonea elinux  17097 2010-03-11 23:14 board-devkit8000.c
-rwxrwx--x 1 simonea elinux   1763 2010-03-11 23:14 board-generic.c
-rwxrwx--x 1 simonea elinux   9359 2010-03-11 23:14 board-h4.c
-rwxrwx--x 1 simonea elinux  14145 2010-03-11 23:14 board-igep0020.c
-rwxrwx--x 1 simonea elinux   9466 2010-03-11 23:14 board-ldp.c
-rwxrwx--x 1 simonea elinux  15510 2010-03-11 23:14 board-n8x0.c
-rwxrwx--x 1 simonea elinux  11863 2010-03-11 23:14 board-omap3beagle.c
-rwxrwx--x 1 simonea elinux  18257 2010-03-11 23:14 board-omap3evm.c
-rwxrwx--x 1 simonea elinux  15568 2010-03-11 23:14 board-omap3pandora.c
-rwxrwx--x 1 simonea elinux  14241 2010-03-11 23:14 board-omap3touchbook.c
-rwxrwx--x 1 simonea elinux  12529 2010-03-11 23:14 board-overo.c
-rwxrwx--x 1 simonea elinux   3544 2010-03-11 23:14 board-rx51.c
-rwxrwx--x 1 simonea elinux  20958 2010-03-11 23:14 board-rx51-peripherals.c
-rwxrwx--x 1 simonea elinux   4914 2010-03-11 23:14 board-rx51-sdram.c
-rwxrwx--x 1 simonea elinux   6955 2010-03-11 23:14 board-sdp-flash.c
-rwxrwx--x 1 simonea elinux   2311 2010-03-11 23:14 board-zoom2.c
-rwxrwx--x 1 simonea elinux   2002 2010-03-11 23:14 board-zoom3.c
-rwxrwx--x 1 simonea elinux   3863 2010-03-11 23:14 board-zoom-debugboard.c
-rwxrwx--x 1 simonea elinux   6928 2010-03-11 23:14 board-zoom-peripherals.c
-rwxrwx--x 1 simonea elinux   2709 2010-03-11 23:14 clkt2xxx_apll.c
-rwxrwx--x 1 simonea elinux   4517 2010-03-11 23:14 clkt2xxx_dpllcore.c
-rwxrwx--x 1 simonea elinux   1339 2010-03-11 23:14 clkt2xxx_osc.c
-rwxrwx--x 1 simonea elinux   1044 2010-03-11 23:14 clkt2xxx_sys.c
-rwxrwx--x 1 simonea elinux   6350 2010-03-11 23:14 clkt2xxx_virt_prcm_set.c
-rwxrwx--x 1 simonea elinux   3190 2010-03-11 23:14 clkt34xx_dpll3m2.c
-rwxrwx--x 1 simonea elinux  10683 2010-03-11 23:14 clkt_clksel.c
-rwxrwx--x 1 simonea elinux  11398 2010-03-11 23:14 clkt_dpll.c
-rwxrwx--x 1 simonea elinux  57617 2010-03-11 23:14 clock2420_data.c
-rwxrwx--x 1 simonea elinux   1825 2010-03-11 23:14 clock2430.c
-rwxrwx--x 1 simonea elinux  60193 2010-03-11 23:14 clock2430_data.c
-rwxrwx--x 1 simonea elinux   1545 2010-03-11 23:14 clock2xxx.c
-rwxrwx--x 1 simonea elinux   1303 2010-03-11 23:14 clock2xxx.h
-rwxrwx--x 1 simonea elinux   4195 2010-03-11 23:14 clock34xx.c
-rwxrwx--x 1 simonea elinux    430 2010-03-11 23:14 clock34xx.h
-rwxrwx--x 1 simonea elinux   4195 2010-03-11 23:14 clock3517.c
-rwxrwx--x 1 simonea elinux    355 2010-03-11 23:14 clock3517.h
-rwxrwx--x 1 simonea elinux   2027 2010-03-11 23:14 clock36xx.c
-rwxrwx--x 1 simonea elinux    313 2010-03-11 23:14 clock36xx.h
-rwxrwx--x 1 simonea elinux   2585 2010-03-11 23:14 clock3xxx.c
-rwxrwx--x 1 simonea elinux 109556 2010-03-11 23:14 clock3xxx_data.c
-rwxrwx--x 1 simonea elinux    563 2010-03-11 23:14 clock3xxx.h
-rwxrwx--x 1 simonea elinux  82933 2010-03-11 23:14 clock44xx_data.c
-rwxrwx--x 1 simonea elinux    445 2010-03-11 23:14 clock44xx.h
-rwxrwx--x 1 simonea elinux  14082 2010-03-11 23:14 clock.c
-rwxrwx--x 1 simonea elinux   1216 2010-03-11 23:14 clock_common_data.c
-rwxrwx--x 1 simonea elinux  29903 2010-03-11 23:14 clockdomain.c
-rwxrwx--x 1 simonea elinux   8265 2010-03-11 23:14 clockdomains44xx.h
-rwxrwx--x 1 simonea elinux  24077 2010-03-11 23:14 clockdomains.h
-rwxrwx--x 1 simonea elinux   5076 2010-03-11 23:14 clock.h
-rwxrwx--x 1 simonea elinux  29027 2010-03-11 23:14 cm44xx.h
-rwxrwx--x 1 simonea elinux   1421 2010-03-11 23:14 cm4xxx.c
-rwxrwx--x 1 simonea elinux   1683 2010-03-11 23:14 cm.c
-rwxrwx--x 1 simonea elinux   4467 2010-03-11 23:14 cm.h
-rwxrwx--x 1 simonea elinux  14321 2010-03-11 23:14 cm-regbits-24xx.h
-rwxrwx--x 1 simonea elinux  27452 2010-03-11 23:14 cm-regbits-34xx.h
-rwxrwx--x 1 simonea elinux  60074 2010-03-11 23:14 cm-regbits-44xx.h
-rwxrwx--x 1 simonea elinux  15102 2010-03-11 23:14 control.c
-rwxrwx--x 1 simonea elinux  14037 2010-03-11 23:14 cpuidle34xx.c
-rwxrwx--x 1 simonea elinux  18888 2010-03-11 23:14 devices.c
-rwxrwx--x 1 simonea elinux  15462 2010-03-11 23:14 dpll3xxx.c
-rwxrwx--x 1 simonea elinux   1522 2010-03-11 23:14 emu.c
-rwxrwx--x 1 simonea elinux  15087 2010-03-11 23:14 gpmc.c
-rwxrwx--x 1 simonea elinux   3562 2010-03-11 23:14 gpmc-nand.c
-rwxrwx--x 1 simonea elinux   9348 2010-03-11 23:14 gpmc-onenand.c
-rwxrwx--x 1 simonea elinux   5045 2010-03-11 23:14 gpmc-smc91x.c
-rwxrwx--x 1 simonea elinux   6968 2010-03-11 23:14 hsmmc.c
-rwxrwx--x 1 simonea elinux   1238 2010-03-11 23:14 hsmmc.h
-rwxrwx--x 1 simonea elinux   1538 2010-03-11 23:14 i2c.c
-rwxrwx--x 1 simonea elinux  10740 2010-03-11 23:14 id.c
drwxrwx--x 3 simonea elinux   4096 2010-03-11 23:14 include
-rwxrwx--x 1 simonea elinux   7975 2010-03-11 23:14 io.c
-rwxrwx--x 1 simonea elinux   7914 2010-03-11 23:14 iommu2.c
-rwxrwx--x 1 simonea elinux   7481 2010-03-11 23:14 irq.c
-rwxrwx--x 1 simonea elinux   3448 2010-03-11 23:14 Kconfig
-rwxrwx--x 1 simonea elinux  12216 2010-03-11 23:14 mailbox.c
-rwxrwx--x 1 simonea elinux   4943 2010-03-11 23:14 Makefile
-rwxrwx--x 1 simonea elinux     86 2010-03-11 23:14 Makefile.boot
-rwxrwx--x 1 simonea elinux   7650 2010-03-11 23:14 mcbsp.c
-rwxrwx--x 1 simonea elinux  83424 2010-03-11 23:14 mux34xx.c
-rwxrwx--x 1 simonea elinux  20813 2010-03-11 23:14 mux34xx.h
-rwxrwx--x 1 simonea elinux  26941 2010-03-11 23:14 mux.c
-rwxrwx--x 1 simonea elinux   5089 2010-03-11 23:14 mux.h
-rwxrwx--x 1 simonea elinux   2196 2010-03-11 23:14 omap3-iommu.c
-rwxrwx--x 1 simonea elinux    847 2010-03-11 23:14 omap44xx-smc.S
-rwxrwx--x 1 simonea elinux   1588 2010-03-11 23:14 omap-headsmp.S
-rwxrwx--x 1 simonea elinux   4151 2010-03-11 23:14 omap_hwmod_2420_data.c
-rwxrwx--x 1 simonea elinux   4243 2010-03-11 23:14 omap_hwmod_2430_data.c
-rwxrwx--x 1 simonea elinux   5122 2010-03-11 23:14 omap_hwmod_3xxx_data.c
-rwxrwx--x 1 simonea elinux  42966 2010-03-11 23:14 omap_hwmod.c
-rwxrwx--x 1 simonea elinux   1796 2010-03-11 23:14 omap_hwmod_common_data.c
-rwxrwx--x 1 simonea elinux    736 2010-03-11 23:14 omap_hwmod_common_data.h
-rwxrwx--x 1 simonea elinux   4059 2010-03-11 23:14 omap-smp.c
-rwxrwx--x 1 simonea elinux   4994 2010-03-11 23:14 opp2420_data.c
-rwxrwx--x 1 simonea elinux   4914 2010-03-11 23:14 opp2430_data.c
-rwxrwx--x 1 simonea elinux  15591 2010-03-11 23:14 opp2xxx.h
-rwxrwx--x 1 simonea elinux  13927 2010-03-11 23:14 pm24xx.c
-rwxrwx--x 1 simonea elinux  29998 2010-03-11 23:14 pm34xx.c
-rwxrwx--x 1 simonea elinux  14658 2010-03-11 23:14 pm-debug.c
-rwxrwx--x 1 simonea elinux   2526 2010-03-11 23:14 pm.h
-rwxrwx--x 1 simonea elinux  27931 2010-03-11 23:14 powerdomain.c
-rwxrwx--x 1 simonea elinux   2659 2010-03-11 23:14 powerdomains24xx.h
-rwxrwx--x 1 simonea elinux   6376 2010-03-11 23:14 powerdomains34xx.h
-rwxrwx--x 1 simonea elinux   8752 2010-03-11 23:14 powerdomains44xx.h
-rwxrwx--x 1 simonea elinux   3730 2010-03-11 23:14 powerdomains.h
-rwxrwx--x 1 simonea elinux  20105 2010-03-11 23:14 prcm.c
-rwxrwx--x 1 simonea elinux  16366 2010-03-11 23:14 prcm-common.h
-rwxrwx--x 1 simonea elinux  33309 2010-03-11 23:14 prm44xx.h
-rwxrwx--x 1 simonea elinux  14824 2010-03-11 23:14 prm.h
-rwxrwx--x 1 simonea elinux   8244 2010-03-11 23:14 prm-regbits-24xx.h
-rwxrwx--x 1 simonea elinux  19792 2010-03-11 23:14 prm-regbits-34xx.h
-rwxrwx--x 1 simonea elinux  80743 2010-03-11 23:14 prm-regbits-44xx.h
-rwxrwx--x 1 simonea elinux   1207 2010-03-11 23:14 sdram-hynix-h8mbx00u0mer-0em.h
-rwxrwx--x 1 simonea elinux   1306 2010-03-11 23:14 sdram-micron-mt46h32m32lf-6.h
-rwxrwx--x 1 simonea elinux   1141 2010-03-11 23:14 sdram-numonyx-m65kxxxxam.h
-rwxrwx--x 1 simonea elinux   1254 2010-03-11 23:14 sdram-qimonda-hyb18m512160af-6.h
-rwxrwx--x 1 simonea elinux   4290 2010-03-11 23:14 sdrc2xxx.c
-rwxrwx--x 1 simonea elinux   4676 2010-03-11 23:14 sdrc.c
-rwxrwx--x 1 simonea elinux   1935 2010-03-11 23:14 sdrc.h
-rwxrwx--x 1 simonea elinux  18740 2010-03-11 23:14 serial.c
-rwxrwx--x 1 simonea elinux   4039 2010-03-11 23:14 sleep24xx.S
-rwxrwx--x 1 simonea elinux  19716 2010-03-11 23:14 sleep34xx.S
-rwxrwx--x 1 simonea elinux  10217 2010-03-11 23:14 sram242x.S
-rwxrwx--x 1 simonea elinux  10217 2010-03-11 23:14 sram243x.S
-rwxrwx--x 1 simonea elinux   9800 2010-03-11 23:14 sram34xx.S
-rwxrwx--x 1 simonea elinux   6480 2010-03-11 23:14 timer-gp.c
-rwxrwx--x 1 simonea elinux    974 2010-03-11 23:14 timer-mpu.c
-rwxrwx--x 1 simonea elinux   7046 2010-03-11 23:14 usb-ehci.c
-rwxrwx--x 1 simonea elinux   3089 2010-03-11 23:14 usb-musb.c
-rwxrwx--x 1 simonea elinux   8813 2010-03-11 23:14 usb-tusb6010.c
4-6 Makefile Targets
simonea@simonea-2:/home/simonea/oelinux-omap-2.6$ make ARCH=arm help
Cleaning targets:
  clean           - Remove most generated files but keep the config and
                    enough build support to build external modules
  mrproper        - Remove all generated files + config + various backup files
  distclean       - mrproper + remove editor backup and patch files

Configuration targets:
  config          - Update current config utilising a line-oriented program
  menuconfig      - Update current config utilising a menu based program
  xconfig         - Update current config utilising a QT based front-end
  gconfig         - Update current config utilising a GTK based front-end
  oldconfig       - Update current config utilising a provided .config as base
  localmodconfig  - Update current config disabling modules not loaded
  localyesconfig  - Update current config converting local mods to core
  silentoldconfig - Same as oldconfig, but quietly, additionally update deps
  randconfig      - New config with random answer to all options
  defconfig       - New config with default answer to all options
  allmodconfig    - New config selecting modules when possible
  allyesconfig    - New config where all options are accepted with yes
  allnoconfig     - New config where all options are answered with no

Other generic targets:
  all             - Build all targets marked with [*]
* vmlinux         - Build the bare kernel
* modules         - Build all modules
  modules_install - Install all modules to INSTALL_MOD_PATH (default: /)
  firmware_install- Install all firmware to INSTALL_FW_PATH
                    (default: $(INSTALL_MOD_PATH)/lib/firmware)
  dir/            - Build all files in dir and below
  dir/file.[ois]  - Build specified target only
  dir/file.ko     - Build module including final link
  modules_prepare - Set up for building external modules
  tags/TAGS       - Generate tags file for editors
  cscope          - Generate cscope index
  kernelrelease   - Output the release version string
  kernelversion   - Output the version stored in Makefile
  headers_install - Install sanitised kernel headers to INSTALL_HDR_PATH
                    (default: /dump/hw/oe/linux-omap-2.6/usr)

Static analysers
  checkstack      - Generate a list of stack hogs
  namespacecheck  - Name space analysis on compiled kernel
  versioncheck    - Sanity check on version.h usage
  includecheck    - Check for duplicate included header files
  export_report   - List the usages of all exported symbols
  headers_check   - Sanity check on exported headers
  headerdep       - Detect inclusion cycles in headers

Kernel packaging:
  rpm-pkg         - Build both source and binary RPM kernel packages
  binrpm-pkg      - Build only the binary kernel package
  deb-pkg         - Build the kernel as an deb package
  tar-pkg         - Build the kernel as an uncompressed tarball
  targz-pkg       - Build the kernel as a gzip compressed tarball
  tarbz2-pkg      - Build the kernel as a bzip2 compressed tarball

Documentation targets:
 Linux kernel internal documentation in different formats:
  htmldocs        - HTML
  pdfdocs         - PDF
  psdocs          - Postscript
  xmldocs         - XML DocBook
  mandocs         - man pages
  installmandocs  - install man pages generated by mandocs
  cleandocs       - clean all generated DocBook files

Architecture specific targets (arm):
* zImage        - Compressed kernel image (arch/arm/boot/zImage)
  Image         - Uncompressed kernel image (arch/arm/boot/Image)
* xipImage      - XIP kernel image, if configured (arch/arm/boot/xipImage)
  uImage        - U-Boot wrapped zImage
  bootpImage    - Combined zImage and initial RAM disk
                  (supply initrd image via make variable INITRD=<path>)
  install       - Install uncompressed kernel
  zinstall      - Install compressed kernel
                  Install using (your) ~/bin/installkernel or
                  (distribution) /sbin/installkernel or
                  install to $(INSTALL_PATH) and run lilo

  acs5k_defconfig          - Build for acs5k
  acs5k_tiny_defconfig     - Build for acs5k_tiny
  afeb9260_defconfig       - Build for afeb9260
  am200epdkit_defconfig    - Build for am200epdkit
  am3517_evm_defconfig     - Build for am3517_evm
  ams_delta_defconfig      - Build for ams_delta
  assabet_defconfig        - Build for assabet
  at572d940hfek_defconfig  - Build for at572d940hfek
  at91cap9adk_defconfig    - Build for at91cap9adk
  at91rm9200dk_defconfig   - Build for at91rm9200dk
  at91rm9200ek_defconfig   - Build for at91rm9200ek
  at91sam9260ek_defconfig  - Build for at91sam9260ek
  at91sam9261ek_defconfig  - Build for at91sam9261ek
  at91sam9263ek_defconfig  - Build for at91sam9263ek
  at91sam9g20ek_defconfig  - Build for at91sam9g20ek
  at91sam9rlek_defconfig   - Build for at91sam9rlek
  ateb9200_defconfig       - Build for ateb9200
  badge4_defconfig         - Build for badge4
  bcmring_defconfig        - Build for bcmring
  cam60_defconfig          - Build for cam60
  carmeva_defconfig        - Build for carmeva
  cerfcube_defconfig       - Build for cerfcube
  cm_t35_defconfig         - Build for cm_t35
  cm_x2xx_defconfig        - Build for cm_x2xx
  cm_x300_defconfig        - Build for cm_x300
  colibri_pxa270_defconfig - Build for colibri_pxa270
  colibri_pxa300_defconfig - Build for colibri_pxa300
  collie_defconfig         - Build for collie
  corgi_defconfig          - Build for corgi
  cpu9260_defconfig        - Build for cpu9260
  cpu9g20_defconfig        - Build for cpu9g20
  cpuat91_defconfig        - Build for cpuat91
  csb337_defconfig         - Build for csb337
  csb637_defconfig         - Build for csb637
  da8xx_omapl_defconfig    - Build for da8xx_omapl
  davinci_all_defconfig    - Build for davinci_all
  devkit8000_defconfig     - Build for devkit8000
  dove_defconfig           - Build for dove
  ebsa110_defconfig        - Build for ebsa110
  ecbat91_defconfig        - Build for ecbat91
  edb7211_defconfig        - Build for edb7211
  em_x270_defconfig        - Build for em_x270
  ep93xx_defconfig         - Build for ep93xx
  eseries_pxa_defconfig    - Build for eseries_pxa
  ezx_defconfig            - Build for ezx
  footbridge_defconfig     - Build for footbridge
  fortunet_defconfig       - Build for fortunet
  h3600_defconfig          - Build for h3600
  h5000_defconfig          - Build for h5000
  h7201_defconfig          - Build for h7201
  h7202_defconfig          - Build for h7202
  hackkit_defconfig        - Build for hackkit
  htcherald_defconfig      - Build for htcherald
  igep0020_defconfig       - Build for igep0020
  integrator_defconfig     - Build for integrator
  iop13xx_defconfig        - Build for iop13xx
  iop32x_defconfig         - Build for iop32x
  iop33x_defconfig         - Build for iop33x
  ixp2000_defconfig        - Build for ixp2000
  ixp23xx_defconfig        - Build for ixp23xx
  ixp4xx_defconfig         - Build for ixp4xx
  jornada720_defconfig     - Build for jornada720
  kafa_defconfig           - Build for kafa
  kb9202_defconfig         - Build for kb9202
  kirkwood_defconfig       - Build for kirkwood
  ks8695_defconfig         - Build for ks8695
  lart_defconfig           - Build for lart
  loki_defconfig           - Build for loki
  lpd270_defconfig         - Build for lpd270
  lpd7a400_defconfig       - Build for lpd7a400
  lpd7a404_defconfig       - Build for lpd7a404
  lubbock_defconfig        - Build for lubbock
  lusl7200_defconfig       - Build for lusl7200
  magician_defconfig       - Build for magician
  mainstone_defconfig      - Build for mainstone
  mini2440_defconfig       - Build for mini2440
  msm_defconfig            - Build for msm
  mv78xx0_defconfig        - Build for mv78xx0
  mx1ads_defconfig         - Build for mx1ads
  mx1_defconfig            - Build for mx1
  mx21_defconfig           - Build for mx21
  mx27_defconfig           - Build for mx27
  mx31pdk_defconfig        - Build for mx31pdk
  mx3_defconfig            - Build for mx3
  n770_defconfig           - Build for n770
  n8x0_defconfig           - Build for n8x0
  neocore926_defconfig     - Build for neocore926
  neponset_defconfig       - Build for neponset
  netwinder_defconfig      - Build for netwinder
  netx_defconfig           - Build for netx
  nhk8815_defconfig        - Build for nhk8815
  ns9xxx_defconfig         - Build for ns9xxx
  nuc910_defconfig         - Build for nuc910
  nuc950_defconfig         - Build for nuc950
  nuc960_defconfig         - Build for nuc960
  omap_2430sdp_defconfig   - Build for omap_2430sdp
  omap_3430sdp_defconfig   - Build for omap_3430sdp
  omap_3630sdp_defconfig   - Build for omap_3630sdp
  omap3_beagle_defconfig   - Build for omap3_beagle
  omap3_defconfig          - Build for omap3
  omap3_evm_defconfig      - Build for omap3_evm
  omap3_pandora_defconfig  - Build for omap3_pandora
  omap3_touchbook_defconfig - Build for omap3_touchbook
  omap_4430sdp_defconfig   - Build for omap_4430sdp
  omap_apollon_2420_defconfig - Build for omap_apollon_2420
  omap_generic_1510_defconfig - Build for omap_generic_1510
  omap_generic_1610_defconfig - Build for omap_generic_1610
  omap_generic_1710_defconfig - Build for omap_generic_1710
  omap_generic_2420_defconfig - Build for omap_generic_2420
  omap_h2_1610_defconfig   - Build for omap_h2_1610
  omap_h4_2420_defconfig   - Build for omap_h4_2420
  omap_innovator_1510_defconfig - Build for omap_innovator_1510
  omap_innovator_1610_defconfig - Build for omap_innovator_1610
  omap_ldp_defconfig       - Build for omap_ldp
  omap_osk_5912_defconfig  - Build for omap_osk_5912
  omap_perseus2_730_defconfig - Build for omap_perseus2_730
  omap_zoom2_defconfig     - Build for omap_zoom2
  omap_zoom3_defconfig     - Build for omap_zoom3
  onearm_defconfig         - Build for onearm
  orion5x_defconfig        - Build for orion5x
  overo_defconfig          - Build for overo
  palmte_defconfig         - Build for palmte
  palmtt_defconfig         - Build for palmtt
  palmz71_defconfig        - Build for palmz71
  palmz72_defconfig        - Build for palmz72
  pcm027_defconfig         - Build for pcm027
  picotux200_defconfig     - Build for picotux200
  pleb_defconfig           - Build for pleb
  pnx4008_defconfig        - Build for pnx4008
  pxa168_defconfig         - Build for pxa168
  pxa255-idp_defconfig     - Build for pxa255-idp
  pxa3xx_defconfig         - Build for pxa3xx
  pxa910_defconfig         - Build for pxa910
  qil-a9260_defconfig      - Build for qil-a9260
  realview_defconfig       - Build for realview
  realview-smp_defconfig   - Build for realview-smp
  rpc_defconfig            - Build for rpc
  rx51_defconfig           - Build for rx51
  s3c2410_defconfig        - Build for s3c2410
  s3c6400_defconfig        - Build for s3c6400
  s5pc100_defconfig        - Build for s5pc100
  sam9_l9260_defconfig     - Build for sam9_l9260
  shannon_defconfig        - Build for shannon
  shark_defconfig          - Build for shark
  simpad_defconfig         - Build for simpad
  spitz_defconfig          - Build for spitz
  stmp378x_defconfig       - Build for stmp378x
  stmp37xx_defconfig       - Build for stmp37xx
  sx1_defconfig            - Build for sx1
  tct_hammer_defconfig     - Build for tct_hammer
  trizeps4_defconfig       - Build for trizeps4
  u300_defconfig           - Build for u300
  u8500_defconfig          - Build for u8500
  usb-a9260_defconfig      - Build for usb-a9260
  usb-a9263_defconfig      - Build for usb-a9263
  versatile_defconfig      - Build for versatile
  viper_defconfig          - Build for viper
  xcep_defconfig           - Build for xcep
  yl9200_defconfig         - Build for yl9200
  zeus_defconfig           - Build for zeus

  make V=0|1 [targets] 0 => quiet build (default), 1 => verbose build
  make V=2   [targets] 2 => give reason for rebuild of target
  make O=dir [targets] Locate all output files in "dir", including .config
  make C=1   [targets] Check all c source with $CHECK (sparse by default)
  make C=2   [targets] Force check of all c source with $CHECK

Execute "make" or "make all" to build all targets marked with [*]
For further info see the ./README file
4-8 Snippet from .../arch/arm/Kconfig
 205 source "init/Kconfig"
 206
 207 source "kernel/Kconfig.freezer"
 208
 209 menu "System Type"
 210
 211 config MMU
 212     bool "MMU-based Paged Memory Management Support"
 213     default y
 214     help
 215       Select if you want MMU-based virtualised addressing space
 216       support by paged memory management. If unsure, say 'Y'.
 217
 218 choice
 219     prompt "ARM system type"
 220     default ARCH_VERSATILE
 221
 222 config ARCH_AAEC2000
 223     bool "Agilent AAEC-2000 based"
 224     select CPU_ARM920T
 225     select ARM_AMBA
 226     select HAVE_CLK
 227     help
 228       This enables support for systems based on the Agilent AAEC-2000
4-9 Snippet from .../arch/arm/mach-omap2/Kconfig
comment "OMAP Core Type"
  2     depends on ARCH_OMAP2
  3
  4 config ARCH_OMAP2420
  5     bool "OMAP2420 support"
  6     depends on ARCH_OMAP2
  7     select OMAP_DM_TIMER
  8     select ARCH_OMAP_OTG
4-9 Snippet from .../arch/arm/mach-omap1/Kconfig
comment "OMAP Core Type"
  2     depends on ARCH_OMAP1
  3
  4 config ARCH_OMAP730
  5     depends on ARCH_OMAP1
  6     bool "OMAP730 Based System"
  7     select CPU_ARM926T
  8     select ARCH_OMAP_OTG
4-10 Customized .config File Snippet
# TI OMAP Implementations
 229 #
 230 CONFIG_ARCH_OMAP_OTG=y
 231 # CONFIG_ARCH_OMAP1 is not set
 232 CONFIG_ARCH_OMAP2PLUS=y
 233 # CONFIG_ARCH_OMAP2 is not set
 234 CONFIG_ARCH_OMAP3=y
 235 # CONFIG_ARCH_OMAP4 is not set
 236
 237 #
 238 # OMAP Feature Selections
 239 #
 240 # CONFIG_OMAP_RESET_CLOCKS is not set
 241 # CONFIG_OMAP_MUX is not set
 242 # CONFIG_OMAP_MCBSP is not set
 243 # CONFIG_OMAP_MBOX_FWK is not set
 244 # CONFIG_OMAP_MPU_TIMER is not set
 245 CONFIG_OMAP_32K_TIMER=y
 246 # CONFIG_OMAP3_L2_AUX_SECURE_SAVE_RESTORE is not set
 247 CONFIG_OMAP_32K_TIMER_HZ=128
 248 CONFIG_OMAP_DM_TIMER=y
 249 # CONFIG_OMAP_PM_NONE is not set
 250 CONFIG_OMAP_PM_NOOP=y
 251 CONFIG_ARCH_OMAP3430=y
 252 CONFIG_OMAP_PACKAGE_CBB=y
 253
 254 #
 255 # OMAP Board Type
 256 #
 257 CONFIG_MACH_OMAP3_BEAGLE=y
 258 # CONFIG_MACH_DEVKIT8000 is not set
 259 # CONFIG_MACH_OMAP_LDP is not set
 260 # CONFIG_MACH_OVERO is not set
 261 # CONFIG_MACH_OMAP3EVM is not set
 262 # CONFIG_MACH_OMAP3517EVM is not set
 263 # CONFIG_MACH_OMAP3_PANDORA is not set
 264 # CONFIG_MACH_OMAP3_TOUCHBOOK is not set
 265 # CONFIG_MACH_OMAP_3430SDP is not set
 266 # CONFIG_MACH_NOKIA_RX51 is not set
 267 # CONFIG_MACH_OMAP_ZOOM2 is not set
 268 # CONFIG_MACH_OMAP_ZOOM3 is not set
 269 # CONFIG_MACH_CM_T35 is not set
 270 # CONFIG_MACH_IGEP0020 is not set
 271 # CONFIG_MACH_OMAP_3630SDP is not set
 272 # CONFIG_OMAP3_EMU is not set
 273 # CONFIG_OMAP3_SDRC_AC_TIMING is not set
4-11 Makefile from .../arch/arm/mach-omap2 Kernel Subdirectory
  2 # Makefile for the linux kernel.
  3 #
  4
  5 # Common support
  6 obj-y := id.o io.o control.o mux.o devices.o serial.o gpmc.o timer-gp.o
  7
  8 omap-2-3-common             = irq.o sdrc.o
  9 hwmod-common                = omap_hwmod.o \
 10                       omap_hwmod_common_data.o
 11 prcm-common             = prcm.o powerdomain.o
 12 clock-common                = clock.o clock_common_data.o \
 13                       clockdomain.o clkt_dpll.o \
 14                       clkt_clksel.o
 15
 16 obj-$(CONFIG_ARCH_OMAP2) += $(omap-2-3-common) $(prcm-common) $(hwmod-common    )
 17 obj-$(CONFIG_ARCH_OMAP3) += $(omap-2-3-common) $(prcm-common) $(hwmod-common    )
 18 obj-$(CONFIG_ARCH_OMAP4) += $(prcm-common)
 19
 20 obj-$(CONFIG_OMAP_MCBSP) += mcbsp.o
 

Chapter 5 Listings

Number Caption Listing
5-2 Assembly File piggy.gzip.S
 .section .piggydata,#alloc
  2     .globl  input_data
  3 input_data:
  4     .incbin "arch/arm/boot/compressed/piggy.gzip"
  5     .globl  input_data_end
  6 input_data_end:
5-4 Console Setup Code Snippet
/*
 838  * Set up a list of consoles.  Called from init/main.c
 839  */
 840 static int __init console_setup(char *str)
 841 {
 842     char buf[sizeof(console_cmdline[0].name) + 4]; /* 4 for index */
 843     char *s, *options, *brl_options = NULL;
 844     int idx;
 845
 887     return 1;
 888 }
 889 __setup("console=", console_setup);
5-5 Family of _setup Macro Definitions from init.h
 #define __setup_param(str, unique_id, fn, early)            \
231     static const char __setup_str_##unique_id[] __initconst \
232         __aligned(1) = str; \
233     static struct obs_kernel_param __setup_##unique_id  \
234         __used __section(.init.setup)           \
235         __attribute__((aligned((sizeof(long)))))    \
236         = { __setup_str_##unique_id, fn, early }
237
238 #define __setup(str, fn)                    \
239     __setup_param(str, fn, fn, 0)
5-6 Kernel Command Line Processing
204 extern struct obs_kernel_param __setup_start[], __setup_end[];
205
206 static int __init obsolete_checksetup(char *line)
207 {
208     struct obs_kernel_param *p;
209     int had_early_param = 0;
210
211     p = __setup_start;
212     do {
213         int n = strlen(p->str);
214         if (!strncmp(line, p->str, n)) {
215             if (p->early) {
216                 /* Already done in parse_early_param?
217                  * (Needs exact match on param part).
218                  * Keep iterating, as we can have early
219                  * params and __setups of same names 8( */
220                 if (line[n] == '\0' || line[n] == '=')
221                     had_early_param = 1;
222             } else if (!p->setup_func) {
223                 printk(KERN_WARNING "Parameter %s is obsolete,"
224                        " ignored\n", p->str);
225                 return 1;
226             } else if (p->setup_func(line + n))
227                 return 1;
228         }
229         p++;
230     } while (p < __setup_end);
231
232     return had_early_param;
233 }
5-7 Example Initialization Routine
655 static int __init customize_machine(void)
656 {
657     /* customizes platform devices, or adds new ones */
658     if (init_machine)
659         init_machine();
660     return 0;
661 }
662 arch_initcall(customize_machine);
5-8 initcall Family of Macros
#define __define_initcall(level,fn,id) \
171     static initcall_t __initcall_##fn##id __used \
172     __attribute__((__section__(".initcall" level ".init"))) = fn
173
174 /*
175  * Early initcalls run before initializing SMP.
176  *
177  * Only for built-in code, not modules.
178  */
179 #define early_initcall(fn)      __define_initcall("early",fn,early)
180
181 /*
182  * A "pure" initcall has no dependencies on anything else, and purely
183  * initializes variables that couldn't be statically initialized.
184  *
185  * This only exists for built-in code, not for modules.
186  */
187 #define pure_initcall(fn)       __define_initcall("0",fn,0)
188
189 #define core_initcall(fn)       __define_initcall("1",fn,1)
190 #define core_initcall_sync(fn)      __define_initcall("1s",fn,1s)
191 #define postcore_initcall(fn)       __define_initcall("2",fn,2)
192 #define postcore_initcall_sync(fn)  __define_initcall("2s",fn,2s)
193 #define arch_initcall(fn)       __define_initcall("3",fn,3)
194 #define arch_initcall_sync(fn)      __define_initcall("3s",fn,3s)
195 #define subsys_initcall(fn)     __define_initcall("4",fn,4)
196 #define subsys_initcall_sync(fn)    __define_initcall("4s",fn,4s)
197 #define fs_initcall(fn)         __define_initcall("5",fn,5)
198 #define fs_initcall_sync(fn)        __define_initcall("5s",fn,5s)
199 #define rootfs_initcall(fn)     __define_initcall("rootfs",fn,rootfs)
200 #define device_initcall(fn)     __define_initcall("6",fn,6)
201 #define device_initcall_sync(fn)    __define_initcall("6s",fn,6s)
202 #define late_initcall(fn)       __define_initcall("7",fn,7)
203 #define late_initcall_sync(fn)      __define_initcall("7s",fn,7s)
204
205 #define __initcall(fn) device_initcall(fn)
5-9 Creation of Kernel init Thread
 static noinline void __init_refok rest_init(void)
425     __releases(kernel_lock)
426 {
427     int pid;
428
429     rcu_scheduler_starting();
430     kernel_thread(kernel_init, NULL, CLONE_FS | CLONE_SIGHAND);
431     numa_default_policy();
432     pid = kernel_thread(kthreadd, NULL, CLONE_FS | CLONE_FILES);
433     rcu_read_lock();
434     kthreadd_task = find_task_by_pid_ns(pid, &init_pid_ns);
435     rcu_read_unlock();
436     unlock_kernel();
437
438     /*
439      * The boot idle thread must execute schedule()
440      * at least once to get things moving:
441      */
442     init_idle_bootup_task(current);
443     preempt_enable_no_resched();
444     schedule();
445     preempt_disable();
446
447     /* Call into cpu_idle with preempt disabled */
448     cpu_idle();
449 }
5-10 Initialization via initcalls
765 extern initcall_t __initcall_start[], __initcall_end[], __early_initcall_end[];
766
767 static void __init do_initcalls(void)
768 {
769     initcall_t *fn;
770
771     for (fn = __early_initcall_end; fn < __initcall_end; fn++)
772         do_one_initcall(*fn);
773
774     /* Make sure there is no pending stuff from the initcall sequence */
775     flush_scheduled_work();
776 }
5-11 Final Kernel Boot Steps from main.c
814 static noinline int init_post(void)
815     __releases(kernel_lock)
816 {
817     /* need to finish all async __init code before freeing the memory */
818     async_synchronize_full();
819     free_initmem();
820     unlock_kernel();
821     mark_rodata_ro();
822     system_state = SYSTEM_RUNNING;
823     numa_default_policy();
824
825
826     current->signal->flags |= SIGNAL_UNKILLABLE;
827
828     if (ramdisk_execute_command) {
829         run_init_process(ramdisk_execute_command);
830         printk(KERN_WARNING "Failed to execute %s\n",
831                 ramdisk_execute_command);
832     }
833
834     /*
835      * We try each of these until one succeeds.
836      *
837      * The Bourne shell can be used instead of init if we are
838      * trying to recover a really broken machine.
839      */
840     if (execute_command) {
841         run_init_process(execute_command);
842         printk(KERN_WARNING "Failed to execute %s.  Attempting "
843                     "defaults...\n", execute_command);
844     }
845     run_init_process("/sbin/init");
846     run_init_process("/etc/init");
847     run_init_process("/bin/init");
848     run_init_process("/bin/sh");
849
850     panic("No init found.  Try passing init= option to kernel. "
851           "See Linux Documentation/init.txt for guidance.");
852 }

Chapter 6 Listings

Number Caption Listing
6-2 Final Boot Steps from main.c
 if (execute_command) {
841         run_init_process(execute_command);
842         printk(KERN_WARNING "Failed to execute %s.  Attempting "
843                     "defaults...\n", execute_command);
844     }
845     run_init_process("/sbin/init");
846     run_init_process("/etc/init");
847     run_init_process("/bin/init");
848     run_init_process("/bin/sh");
849
850     panic("No init found.  Try passing init= option to kernel. "
851           "See Linux Documentation/init.txt for guidance.");
6-4 Runlevel Directory Structure
simonea@simonea-2:/etc$ ls -dl rc*
drwxr-xr-x 2 root root 4096 2010-03-09 21:35 rc0.d
drwxr-xr-x 2 root root 4096 2010-03-09 21:35 rc1.d
drwxr-xr-x 2 root root 4096 2010-03-09 21:35 rc2.d
drwxr-xr-x 2 root root 4096 2010-03-09 21:35 rc3.d
drwxr-xr-x 2 root root 4096 2010-03-09 21:35 rc4.d
drwxr-xr-x 2 root root 4096 2010-03-09 21:35 rc5.d
drwxr-xr-x 2 root root 4096 2010-03-09 21:35 rc6.d
-rwxr-xr-x 1 root root  306 2008-08-24 14:34 rc.local
drwxr-xr-x 2 root root 4096 2010-03-09 00:51 rcS.d
6-4 Runlevel Directory Structure for BeagleBoard
root@beagleboard:~# ls -dl /etc/rc*
drwxr-xr-x 2 root root 4096 Mar 16  2010 /etc/rc0.d
drwxr-xr-x 2 root root 4096 Mar 16  2010 /etc/rc1.d
drwxr-xr-x 2 root root 4096 Mar 16  2010 /etc/rc2.d
drwxr-xr-x 2 root root 4096 Mar 16  2010 /etc/rc3.d
drwxr-xr-x 2 root root 4096 Mar 16  2010 /etc/rc4.d
drwxr-xr-x 2 root root 4096 Mar 16  2010 /etc/rc5.d
drwxr-xr-x 2 root root 4096 Mar 16  2010 /etc/rc6.d
drwxr-xr-x 2 root root 4096 Mar 16 10:14 /etc/rcS.d
6-5 Example Runlevel Directory
simonea@simonea-2:/etc$ ls -ls rc5.d/
total 4
4 -rw-r--r-- 1 root root 556 2008-08-12 10:09 README
0 lrwxrwxrwx 1 root root  18 2008-08-24 14:34 S10sysklogd -> ../init.d/sysklogd
0 lrwxrwxrwx 1 root root  15 2008-08-24 14:34 S11klogd -> ../init.d/klogd
0 lrwxrwxrwx 1 root root  15 2008-08-24 14:35 S12acpid -> ../init.d/acpid
0 lrwxrwxrwx 1 root root  14 2008-08-24 14:46 S12dbus -> ../init.d/dbus
0 lrwxrwxrwx 1 root root  22 2009-02-03 11:39 S14avahi-daemon -> ../init.d/avahi-daem                   on
0 lrwxrwxrwx 1 root root  14 2008-08-29 20:58 S15bind -> ../init.d/bind
0 lrwxrwxrwx 1 root root  15 2008-09-02 14:27 S15bind9 -> ../init.d/bind9
0 lrwxrwxrwx 1 root root  13 2008-08-24 15:46 S16ssh -> ../init.d/ssh
0 lrwxrwxrwx 1 root root  23 2008-08-29 21:08 S17mysql-ndb-mgm -> ../init.d/mysql-ndb                   -mgm
0 lrwxrwxrwx 1 root root  19 2008-08-29 21:08 S18mysql-ndb -> ../init.d/mysql-ndb
0 lrwxrwxrwx 1 root root  15 2008-08-29 21:08 S19mysql -> ../init.d/mysql
0 lrwxrwxrwx 1 root root  14 2008-09-02 14:51 S20dhcp -> ../init.d/dhcp
0 lrwxrwxrwx 1 root root  15 2008-08-24 14:40 S20exim4 -> ../init.d/exim4
0 lrwxrwxrwx 1 root root  20 2008-08-25 09:50 S20fancontrol -> ../init.d/fancontrol
0 lrwxrwxrwx 1 root root  17 2008-08-25 09:50 S20hddtemp -> ../init.d/hddtemp
0 lrwxrwxrwx 1 root root  25 2008-08-24 16:37 S20inetutils-inetd -> ../init.d/inetuti                   ls-inetd
0 lrwxrwxrwx 1 root root  20 2008-08-24 14:40 S20nfs-common -> ../init.d/nfs-common
0 lrwxrwxrwx 1 root root  27 2008-09-03 00:59 S20nfs-kernel-server -> ../init.d/nfs-k                   ernel-server
0 lrwxrwxrwx 1 root root  23 2008-08-24 14:40 S20openbsd-inetd -> ../init.d/openbsd-i                   netd
0 lrwxrwxrwx 1 root root  14 2010-02-12 16:30 S20pimd -> ../init.d/pimd
0 lrwxrwxrwx 1 root root  25 2008-08-24 14:40 S20policycoreutils -> ../init.d/policyc                   oreutils
0 lrwxrwxrwx 1 root root  15 2010-03-09 21:35 S20rsync -> ../init.d/rsync
0 lrwxrwxrwx 1 root root  15 2008-09-02 14:26 S20samba -> ../init.d/samba
0 lrwxrwxrwx 1 root root  23 2008-08-28 13:54 S20smartmontools -> ../init.d/smartmont                   ools
0 lrwxrwxrwx 1 root root  17 2009-12-06 18:23 S20vboxdrv -> ../init.d/vboxdrv
0 lrwxrwxrwx 1 root root  16 2009-01-04 02:15 S20xinetd -> ../init.d/xinetd
0 lrwxrwxrwx 1 root root  13 2009-12-06 18:23 S21fam -> ../init.d/fam
0 lrwxrwxrwx 1 root root  13 2008-08-24 15:54 S23ntp -> ../init.d/ntp
0 lrwxrwxrwx 1 root root  13 2009-01-04 09:41 S24hal -> ../init.d/hal
0 lrwxrwxrwx 1 root root  15 2008-08-24 14:54 S25mdadm -> ../init.d/mdadm
0 lrwxrwxrwx 1 root root  25 2008-09-03 00:56 S25nfs-user-server -> ../init.d/nfs-use                   r-server
0 lrwxrwxrwx 1 root root  22 2009-09-06 17:46 S40dhcp3-server -> ../init.d/dhcp3-serv                   er
0 lrwxrwxrwx 1 root root  24 2008-08-29 21:08 S40mythtv-backend -> ../init.d/mythtv-b                   ackend
0 lrwxrwxrwx 1 root root  17 2008-09-02 20:22 S41apcupsd -> ../init.d/apcupsd
0 lrwxrwxrwx 1 root root  13 2008-08-24 14:40 S89atd -> ../init.d/atd
0 lrwxrwxrwx 1 root root  14 2008-08-24 14:34 S89cron -> ../init.d/cron
0 lrwxrwxrwx 1 root root  17 2008-08-24 15:45 S91apache2 -> ../init.d/apache2
0 lrwxrwxrwx 1 root root  18 2009-02-27 12:58 S99fail2ban -> ../init.d/fail2ban
0 lrwxrwxrwx 1 root root  18 2008-08-24 14:34 S99rc.local -> ../init.d/rc.local
0 lrwxrwxrwx 1 root root  19 2008-08-24 14:34 S99rmnologin -> ../init.d/rmnologin
0 lrwxrwxrwx 1 root root  21 2008-09-03 00:37 S99shorewall -> /etc/init.d/shorewall
0 lrwxrwxrwx 1 root root  23 2008-08-24 14:34 S99stop-bootlogd -> ../init.d/stop-boot                   logd
0 lrwxrwxrwx 1 root root  18 2008-08-24 14:53 S99webmin -> /etc/init.d/webmin
6-5 Example Runlevel Directory for BeagleBoard
root@beagleboard:/etc# ls -ls rc5.d/
total 0
0 lrwxrwxrwx 1 root root 16 Mar 16  2010 S02dbus-1 -> ../init.d/dbus-1
0 lrwxrwxrwx 1 root root 20 Mar 16  2010 S05led-config -> ../init.d/led-config
0 lrwxrwxrwx 1 root root 18 Mar 16  2010 S10dropbear -> ../init.d/dropbear
0 lrwxrwxrwx 1 root root 14 Mar 16  2010 S20apmd -> ../init.d/apmd
0 lrwxrwxrwx 1 root root 16 Mar 16  2010 S20syslog -> ../init.d/syslog
0 lrwxrwxrwx 1 root root 22 Mar 16  2010 S21avahi-daemon -> ../init.d/avahi-daemon
0 lrwxrwxrwx 1 root root 24 Mar 16  2010 S28NetworkManager -> ../init.d/NetworkManager
0 lrwxrwxrwx 1 root root 20 Mar 16  2010 S50usb-gadget -> ../init.d/usb-gadget
0 lrwxrwxrwx 1 root root 16 Mar 16  2010 S99gpe-dm -> ../init.d/gpe-dm
0 lrwxrwxrwx 1 root root 19 Mar 16  2010 S99rmnologin -> ../init.d/rmnologin