Difference between revisions of "User:Collinjc"

From eLinux.org
Jump to: navigation, search
m (Chapter 4)
m (Chapter 4)
 
(11 intermediate revisions by the same user not shown)
Line 45: Line 45:
 
</pre>
 
</pre>
  
==Listings==
+
= Listings =
 
== Chapter 2 ==
 
== Chapter 2 ==
  
Line 78: Line 78:
 
</pre>
 
</pre>
 
|-
 
|-
| 2-2
+
| '''2-2'''
| 2-7
+
| '''2-7'''
| Loading the Linux Kernel
+
| '''Loading the Linux Kernel'''
 
| <pre>
 
| <pre>
 
2996196 bytes read
 
2996196 bytes read
Line 229: Line 229:
 
! Listing
 
! Listing
 
|-
 
|-
| 4-1
+
| '''4-1'''
| 4-7
+
| '''4-7'''
| Kernel Build Output
+
| '''Kernel Build Output'''
 
| <pre>  LD      init/built-in.o
 
| <pre>  LD      init/built-in.o
 
scripts/kconfig/conf -s arch/arm/Kconfig
 
scripts/kconfig/conf -s arch/arm/Kconfig
Line 281: Line 281:
 
| Link Stage: vmlinux
 
| Link Stage: vmlinux
 
| <pre>
 
| <pre>
 +
??
 
</pre>
 
</pre>
 
|-
 
|-
Line 287: Line 288:
 
| Kernel Subdirectory
 
| Kernel Subdirectory
 
| <pre>
 
| <pre>
 +
collinjc@lug linux-omap-2.6.29-r46/git % ls -ls arch/arm/plat-omap/ | grep -v \\.o
 +
total 764K
 +
8.0K -rw-r--r-- 1 collinjc students 8.0K Mar 19 19:48 Kconfig
 +
4.0K -rw-r--r-- 1 collinjc students  824 Mar 15 02:52 Makefile
 +
4.0K -rw-r--r-- 1 collinjc students 2.4K Mar 11 07:46 bootreason.c
 +
16K -rw-r--r-- 1 collinjc students  15K Mar 11 07:46 clock.c
 +
12K -rw-r--r-- 1 collinjc students 8.1K Mar 11 07:46 common.c
 +
4.0K -rw-r--r-- 1 collinjc students 1.6K Mar 11 07:46 component-version.c
 +
4.0K -rw-r--r-- 1 collinjc students 4.0K Mar 11 07:46 cpu-omap.c
 +
4.0K -rw-r--r-- 1 collinjc students 2.0K Mar 11 07:46 debug-devices.c
 +
8.0K -rw-r--r-- 1 collinjc students 7.0K Mar 11 07:46 debug-leds.c
 +
12K -rw-r--r-- 1 collinjc students 9.8K Mar 11 07:46 devices.c
 +
60K -rwxr-xr-x 1 collinjc students  59K Mar 15 02:51 dma.c
 +
24K -rw-r--r-- 1 collinjc students  21K Mar 11 07:46 dmtimer.c
 +
12K -rw-r--r-- 1 collinjc students 9.5K Mar 15 02:51 fb.c
 +
16K -rw-r--r-- 1 collinjc students  13K Mar 11 07:46 gpio-switch.c
 +
48K -rw-r--r-- 1 collinjc students  47K Mar 11 07:46 gpio.c
 +
8.0K -rw-r--r-- 1 collinjc students 5.8K Mar 11 07:46 i2c.c
 +
  0 drwxr-xr-x 3 collinjc students  72 Mar 11 07:46 include
 +
4.0K -rw-r--r-- 1 collinjc students 3.7K Mar 11 07:46 io.c
 +
20K -rw-r--r-- 1 collinjc students  20K Mar 15 02:52 iommu.c
 +
20K -rw-r--r-- 1 collinjc students  17K Mar 15 03:17 iommu.ko
 +
4.0K -rw-r--r-- 1 collinjc students 1.9K Mar 15 03:16 iommu.mod.c
 +
4.0K -rw-r--r-- 1 collinjc students 2.2K Mar 15 02:52 iopgtable.h
 +
20K -rw-r--r-- 1 collinjc students  19K Mar 15 02:52 iovmm.c
 +
16K -rw-r--r-- 1 collinjc students  15K Mar 15 03:17 iovmm.ko
 +
4.0K -rw-r--r-- 1 collinjc students 1.8K Mar 15 03:16 iovmm.mod.c
 +
12K -rw-r--r-- 1 collinjc students  12K Mar 11 07:46 mailbox.c
 +
28K -rw-r--r-- 1 collinjc students  26K Mar 11 07:46 mcbsp.c
 +
4.0K -rw-r--r-- 1 collinjc students 2.1K Mar 11 07:46 mux.c
 +
4.0K -rw-r--r-- 1 collinjc students 2.7K Mar 11 07:46 ocpi.c
 +
12K -rw-r--r-- 1 collinjc students  11K Mar 11 07:46 sram.c
 +
20K -rw-r--r-- 1 collinjc students  18K Mar 11 07:46 usb.c
 +
16K -rw-r--r-- 1 collinjc students  14K Mar 15 02:51 vram.c
 +
8.0K -rw-r--r-- 1 collinjc students 6.3K Mar 15 02:51 vrfb.c
 
</pre>
 
</pre>
 +
 +
|-
 +
| 4-4
 +
| 4-17
 +
| Snippet from Linux 2.6 .config
 +
| <pre>
 +
1872 #
 +
1873 # USB Input Devices
 +
1874 #
 +
1875 CONFIG_USB_HID=y
 +
1876 # CONFIG_HID_PID is not set
 +
1877 # CONFIG_USB_HIDDEV is not set
 +
1878
 +
1879 #
 +
1880 # Special HID drivers
 +
1881 #
 +
1882 CONFIG_HID_COMPAT=y
 +
1883 CONFIG_HID_A4TECH=y
 +
1884 CONFIG_HID_APPLE=y
 +
1885 CONFIG_HID_BELKIN=y
 +
1886 CONFIG_HID_CHERRY=y
 +
1887 CONFIG_HID_CHICONY=y
 +
1888 CONFIG_HID_CYPRESS=y
 +
1889 CONFIG_HID_EZKEY=y
 +
1890 CONFIG_HID_GYRATION=y
 +
1891 CONFIG_HID_LOGITECH=y
 +
1892 # CONFIG_LOGITECH_FF is not set
 +
1893 # CONFIG_LOGIRUMBLEPAD2_FF is not set
 +
</pre>
 +
 +
|-
 +
| 4-5
 +
| 4-21
 +
| Linux autoconf.h
 +
| <pre>
 +
collinjc@lug linux-omap-2.6.29-r46/git % cat include/linux/autoconf.h| grep CONFIG_USB
 +
#define CONFIG_USB_SISUSBVGA_MODULE 1
 +
#define CONFIG_USB_PHIDGETMOTORCONTROL_MODULE 1
 +
#define CONFIG_USB_MUSB_HDRC 1
 +
#define CONFIG_USB_LEGOTOWER_MODULE 1
 +
#define CONFIG_USB_SERIAL_IR_MODULE 1
 +
#define CONFIG_USB_GSPCA_T613_MODULE 1
 +
#define CONFIG_USB_SERIAL_TI_MODULE 1
 +
#define CONFIG_USB_ETH_RNDIS 1
 +
#define CONFIG_USB_SERIAL_MODULE 1
 +
#define CONFIG_USB_W9968CF_MODULE 1
 +
#define CONFIG_USB_RTL8150 1
 +
#define CONFIG_USB_SERIAL_WHITEHEAT_MODULE 1
 +
#define CONFIG_USB_GADGET_MUSB_HDRC 1
 +
#define CONFIG_USB_KAWETH 1
 +
#define CONFIG_USB_ZERO_HNPTEST 1
 +
#define CONFIG_USB_CXACRU_MODULE 1
 +
#define CONFIG_USB_SERIAL_ARK3116_MODULE 1
 +
#define CONFIG_USB_G_PRINTER_MODULE 1
 +
#define CONFIG_USB_NET_PLUSB 1
 +
#define CONFIG_USB_GPIO_VBUS 1
 +
#define CONFIG_USB_EHCI_TT_NEWSCHED 1
 +
#define CONFIG_USB_ACM_MODULE 1
 +
#define CONFIG_USB_ARCH_HAS_EHCI 1
 +
#define CONFIG_USB_USBNET 1
 +
#define CONFIG_USB_LCD_MODULE 1
 +
#define CONFIG_USB_SERIAL_BELKIN_MODULE 1
 +
#define CONFIG_USB_LED_MODULE 1
 +
#define CONFIG_USB_SERIAL_KEYSPAN_USA49WLC 1
 +
#define CONFIG_USB_HID 1
 +
#define CONFIG_USB_GADGET_VBUS_DRAW 2
 +
#define CONFIG_USB_SERIAL_KOBIL_SCT_MODULE 1
 +
#define CONFIG_USB_OTG_UTILS 1
 +
#define CONFIG_USB_ARCH_HAS_OHCI 1
 +
#define CONFIG_USB_CDC_COMPOSITE_MODULE 1
 +
#define CONFIG_USB_SERIAL_GARMIN_MODULE 1
 +
#define CONFIG_USB_SERIAL_MOS7720_MODULE 1
 +
#define CONFIG_USB_SERIAL_NAVMAN_MODULE 1
 +
#define CONFIG_USB_GSPCA_FINEPIX_MODULE 1
 +
#define CONFIG_USB_ETH_MODULE 1
 +
#define CONFIG_USB_SERIAL_MOS7840_MODULE 1
 +
#define CONFIG_USB_ATM_MODULE 1
 +
#define CONFIG_USB_TMC_MODULE 1
 +
#define CONFIG_USB_MUSB_HDRC_HCD 1
 +
#define CONFIG_USB_SERIAL_OTI6858_MODULE 1
 +
#define CONFIG_USB_WDM_MODULE 1
 +
#define CONFIG_USB_MON 1
 +
#define CONFIG_USB_OTG 1
 +
#define CONFIG_USB_PWC_MODULE 1
 +
#define CONFIG_USB_SERIAL_KEYSPAN_USA19 1
 +
#define CONFIG_USB_SERIAL_KEYSPAN_USA28 1
 +
#define CONFIG_USB_PHIDGETKIT_MODULE 1
 +
#define CONFIG_USB_ET61X251_MODULE 1
 +
#define CONFIG_USB_SERIAL_XIRCOM_MODULE 1
 +
#define CONFIG_USB_SPEEDTOUCH_MODULE 1
 +
#define CONFIG_USB_SISUSBVGA_CON 1
 +
#define CONFIG_USB_NET_NET1080 1
 +
#define CONFIG_USB_SERIAL_OPTION_MODULE 1
 +
#define CONFIG_USB_ZR364XX_MODULE 1
 +
#define CONFIG_USB_NET_MCS7830 1
 +
#define CONFIG_USB_VST_MODULE 1
 +
#define CONFIG_USB_GSPCA_MARS_MODULE 1
 +
#define CONFIG_USB_EHCI_ROOT_HUB_TT 1
 +
#define CONFIG_USB_PHIDGET_MODULE 1
 +
#define CONFIG_USB_CYPRESS_CY7C63_MODULE 1
 +
#define CONFIG_USB_GSPCA_SUNPLUS_MODULE 1
 +
#define CONFIG_USB_GSPCA_OV534_MODULE 1
 +
#define CONFIG_USB_SERIAL_IPW_MODULE 1
 +
#define CONFIG_USB_NET_AX8817X 1
 +
#define CONFIG_USB_GSPCA_OV519_MODULE 1
 +
#define CONFIG_USB_SERIAL_IUU_MODULE 1
 +
#define CONFIG_USB_STV06XX_MODULE 1
 +
#define CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV 1
 +
#define CONFIG_USB_STORAGE 1
 +
#define CONFIG_USB_IDMOUSE_MODULE 1
 +
#define CONFIG_USB_PEGASUS 1
 +
#define CONFIG_USB_SERIAL_SPCP8X5_MODULE 1
 +
#define CONFIG_USB_M5602_MODULE 1
 +
#define CONFIG_USB_CATC 1
 +
#define CONFIG_USB_CYTHERM_MODULE 1
 +
#define CONFIG_USB_SERIAL_GENERIC 1
 +
#define CONFIG_USB_IRDA_MODULE 1
 +
#define CONFIG_USB_S2255_MODULE 1
 +
#define CONFIG_USB_SUSPEND 1
 +
#define CONFIG_USB_XUSBATM_MODULE 1
 +
#define CONFIG_USB_PRINTER_MODULE 1
 +
#define CONFIG_USB_TRANCEVIBRATOR_MODULE 1
 +
#define CONFIG_USB_SERIAL_CYPRESS_M8_MODULE 1
 +
#define CONFIG_USB_SE401_MODULE 1
 +
#define CONFIG_USB_MIDI_GADGET_MODULE 1
 +
#define CONFIG_USB_NET_ZAURUS 1
 +
#define CONFIG_USB_SERIAL_OMNINET_MODULE 1
 +
#define CONFIG_USB_SERIAL_KEYSPAN_MODULE 1
 +
#define CONFIG_USB_GSPCA_PAC207_MODULE 1
 +
#define CONFIG_USB_SERIAL_OPTICON_MODULE 1
 +
#define CONFIG_USB_OV511_MODULE 1
 +
#define CONFIG_USB_SUPPORT 1
 +
#define CONFIG_USB_SERIAL_SAFE_MODULE 1
 +
#define CONFIG_USB_ZERO_MODULE 1
 +
#define CONFIG_USB_TEST_MODULE 1
 +
#define CONFIG_USB_SERIAL_CH341_MODULE 1
 +
#define CONFIG_USB_EMI26_MODULE 1
 +
#define CONFIG_USB_EMI62_MODULE 1
 +
#define CONFIG_USB_SERIAL_HP4X_MODULE 1
 +
#define CONFIG_USB_SERIAL_KEYSPAN_USA19W 1
 +
#define CONFIG_USB_SERIAL_KEYSPAN_USA18X 1
 +
#define CONFIG_USB_SERIAL_KEYSPAN_USA28X 1
 +
#define CONFIG_USB_SERIAL_FUNSOFT_MODULE 1
 +
#define CONFIG_USB_GADGETFS_MODULE 1
 +
#define CONFIG_USB_NET_CDC_SUBSET 1
 +
#define CONFIG_USB_SERIAL_KEYSPAN_USA49W 1
 +
#define CONFIG_USB_EHCI_HCD 1
 +
#define CONFIG_USB_DEVICEFS 1
 +
#define CONFIG_USB_GSPCA_TV8532_MODULE 1
 +
#define CONFIG_USB_SERIAL_IPAQ_MODULE 1
 +
#define CONFIG_USB_GSPCA_CONEX_MODULE 1
 +
#define CONFIG_USB_VIDEO_CLASS_MODULE 1
 +
#define CONFIG_USB_GSPCA_ZC3XX_MODULE 1
 +
#define CONFIG_USB_SERIAL_MCT_U232_MODULE 1
 +
#define CONFIG_USB_KONICAWC_MODULE 1
 +
#define CONFIG_USB_SERIAL_KLSI_MODULE 1
 +
#define CONFIG_USB_SERIAL_AIRCABLE_MODULE 1
 +
#define CONFIG_USB_ALI_M5632 1
 +
#define CONFIG_USB_SERIAL_SIERRAWIRELESS_MODULE 1
 +
#define CONFIG_USB_GSPCA_VC032X_MODULE 1
 +
#define CONFIG_USB_GADGET_SELECTED 1
 +
#define CONFIG_USB_GSPCA_STK014_MODULE 1
 +
#define CONFIG_USB_OXU210HP_HCD 1
 +
#define CONFIG_USB_GSPCA_ETOMS_MODULE 1
 +
#define CONFIG_USB_QUICKCAM_MESSENGER_MODULE 1
 +
#define CONFIG_USB_NET_RNDIS_WLAN 1
 +
#define CONFIG_USB_KC2190 1
 +
#define CONFIG_USB_AN2720 1
 +
#define CONFIG_USB_EPSON2888 1
 +
#define CONFIG_USB_ZC0301_MODULE 1
 +
#define CONFIG_USB_ZD1201 1
 +
#define CONFIG_USB_NET_RNDIS_HOST 1
 +
#define CONFIG_USB_G_SERIAL_MODULE 1
 +
#define CONFIG_USB_GADGET_DEBUG_FS 1
 +
#define CONFIG_USB_GSPCA_PAC7311_MODULE 1
 +
#define CONFIG_USB_SERIAL_KEYSPAN_PDA_MODULE 1
 +
#define CONFIG_USB_GSPCA_MODULE 1
 +
#define CONFIG_USB_VICAM_MODULE 1
 +
#define CONFIG_USB_ARMLINUX 1
 +
#define CONFIG_USB_ATMEL_MODULE 1
 +
#define CONFIG_USB_SERIAL_EDGEPORT_TI_MODULE 1
 +
#define CONFIG_USB_SERIAL_CP2101_MODULE 1
 +
#define CONFIG_USB_SERIAL_SIEMENS_MPI_MODULE 1
 +
#define CONFIG_USB_SERIAL_EDGEPORT_MODULE 1
 +
#define CONFIG_USB_MUSB_SOC 1
 +
#define CONFIG_USB_SERIAL_DIGI_ACCELEPORT_MODULE 1
 +
#define CONFIG_USB_MUSB_OTG 1
 +
#define CONFIG_USB_SERIAL_PL2303_MODULE 1
 +
#define CONFIG_USB_SERIAL_KEYSPAN_USA28XA 1
 +
#define CONFIG_USB_DEVICE_CLASS 1
 +
#define CONFIG_USB_SERIAL_DEBUG_MODULE 1
 +
#define CONFIG_USB_SERIAL_KEYSPAN_USA19QI 1
 +
#define CONFIG_USB_SERIAL_KEYSPAN_USA28XB 1
 +
#define CONFIG_USB_ARCH_HAS_HCD 1
 +
#define CONFIG_USB_SERIAL_KEYSPAN_MPR 1
 +
#define CONFIG_USB_NET_CDCETHER 1
 +
#define CONFIG_USB_EZUSB 1
 +
#define CONFIG_USB_GSPCA_SPCA500_MODULE 1
 +
#define CONFIG_USB_GSPCA_SPCA501_MODULE 1
 +
#define CONFIG_USB_SERIAL_MOTOROLA_MODULE 1
 +
#define CONFIG_USB_BERRY_CHARGE_MODULE 1
 +
#define CONFIG_USB_SERIAL_EMPEG_MODULE 1
 +
#define CONFIG_USB_GSPCA_SPCA505_MODULE 1
 +
#define CONFIG_USB_GSPCA_SPCA506_MODULE 1
 +
#define CONFIG_USB_LD_MODULE 1
 +
#define CONFIG_USB_SERIAL_FTDI_SIO_MODULE 1
 +
#define CONFIG_USB_GSPCA_SPCA561_MODULE 1
 +
#define CONFIG_USB_GSPCA_SPCA508_MODULE 1
 +
#define CONFIG_USB_FILE_STORAGE_MODULE 1
 +
#define CONFIG_USB_PHIDGETSERVO_MODULE 1
 +
#define CONFIG_USB_SERIAL_KEYSPAN_USA19QW 1
 +
#define CONFIG_USB_UEAGLEATM_MODULE 1
 +
#define CONFIG_USB_INVENTRA_DMA 1
 +
#define CONFIG_USB_NET_SMSC95XX 1
 +
#define CONFIG_USB_STV680_MODULE 1
 +
#define CONFIG_USB_GSPCA_SONIXB_MODULE 1
 +
#define CONFIG_USB_STKWEBCAM_MODULE 1
 +
#define CONFIG_USB 1
 +
#define CONFIG_USB_GADGET_DUALSPEED 1
 +
#define CONFIG_USB_FTDI_ELAN_MODULE 1
 +
#define CONFIG_USB_NET_DM9601 1
 +
#define CONFIG_USB_GSPCA_SONIXJ_MODULE 1
 +
#define CONFIG_USB_IBMCAM_MODULE 1
 +
#define CONFIG_USB_GADGET 1
 +
#define CONFIG_USB_SERIAL_CYBERJACK_MODULE 1
 +
#define CONFIG_USB_SN9C102_MODULE 1
 +
#define CONFIG_USB_SERIAL_VISOR_MODULE 1
 +
#define CONFIG_USB_NET_GL620A 1
 +
#define CONFIG_USB_BELKIN 1
 +
</pre>
 +
 +
|-
 +
| 4-6
 +
| 4-22
 +
| Makefile Targets
 +
| <pre>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
 +
  silentoldconfig - Same as oldconfig, but quietly
 +
  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
 +
  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: /home/users/collinjc/oe/angstrom-dev-backup2/work/beagleboard-angstrom-linux-gnueabi/linux-omap-2.6.29-r46/git/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
 +
  installmandocs  - install man pages generated by mandocs
 +
  mandocs        - man pages
 +
  pdfdocs        - PDF
 +
  psdocs          - Postscript
 +
  xmldocs        - XML DocBook
 +
 +
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
 +
 +
  afeb9260_defconfig      - Build for afeb9260
 +
  am200epdkit_defconfig    - Build for am200epdkit
 +
  ams_delta_defconfig      - Build for ams_delta
 +
  assabet_defconfig        - Build for assabet
 +
  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
 +
  cam60_defconfig          - Build for cam60
 +
  carmeva_defconfig        - Build for carmeva
 +
  cerfcube_defconfig      - Build for cerfcube
 +
  cm_x300_defconfig        - Build for cm_x300
 +
  colibri_defconfig        - Build for colibri
 +
  collie_defconfig        - Build for collie
 +
  corgi_defconfig          - Build for corgi
 +
  csb337_defconfig        - Build for csb337
 +
  csb637_defconfig        - Build for csb637
 +
  dss_omap3_beagle_defconfig - Build for dss_omap3_beagle
 +
  dss_omap_3430sdp_defconfig - Build for dss_omap_3430sdp
 +
  dss_overo_defconfig      - Build for dss_overo
 +
  ebsa110_defconfig        - Build for ebsa110
 +
  ecbat91_defconfig        - Build for ecbat91
 +
  edb7211_defconfig        - Build for edb7211
 +
  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
 +
  imx27ads_defconfig      - Build for imx27ads
 +
  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
 +
  littleton_defconfig      - Build for littleton
 +
  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
 +
  msm_defconfig            - Build for msm
 +
  mv78xx0_defconfig        - Build for mv78xx0
 +
  mx1ads_defconfig        - Build for mx1ads
 +
  mx31ads_defconfig        - Build for mx31ads
 +
  mx31litekit_defconfig    - Build for mx31litekit
 +
  mx31moboard_defconfig    - Build for mx31moboard
 +
  mx31pdk_defconfig        - Build for mx31pdk
 +
  n770_defconfig          - Build for n770
 +
  n800_defconfig          - Build for n800
 +
  neocore926_defconfig    - Build for neocore926
 +
  neponset_defconfig      - Build for neponset
 +
  netwinder_defconfig      - Build for netwinder
 +
  netx_defconfig          - Build for netx
 +
  ns9xxx_defconfig        - Build for ns9xxx
 +
  omap2_evm_defconfig      - Build for omap2_evm
 +
  omap3_beagle_defconfig  - Build for omap3_beagle
 +
  omap3_evm_defconfig      - Build for omap3_evm
 +
  omap3_pandora_defconfig  - Build for omap3_pandora
 +
  omap_2430sdp_defconfig  - Build for omap_2430sdp
 +
  omap_3430sdp_defconfig  - Build for omap_3430sdp
 +
  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_h3_1710_defconfig  - Build for omap_h3_1710
 +
  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
 +
  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
 +
  pcm037_defconfig        - Build for pcm037
 +
  pcm038_defconfig        - Build for pcm038
 +
  picotux200_defconfig    - Build for picotux200
 +
  pleb_defconfig          - Build for pleb
 +
  pnx4008_defconfig        - Build for pnx4008
 +
  pxa255-idp_defconfig    - Build for pxa255-idp
 +
  qil-a9260_defconfig      - Build for qil-a9260
 +
  realview-smp_defconfig  - Build for realview-smp
 +
  realview_defconfig      - Build for realview
 +
  rpc_defconfig            - Build for rpc
 +
  rx51_defconfig          - Build for rx51
 +
  s3c2410_defconfig        - Build for s3c2410
 +
  s3c6400_defconfig        - Build for s3c6400
 +
  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
 +
  sx1_defconfig            - Build for sx1
 +
  tct_hammer_defconfig    - Build for tct_hammer
 +
  trizeps4_defconfig      - Build for trizeps4
 +
  usb-a9260_defconfig      - Build for usb-a9260
 +
  usb-a9263_defconfig      - Build for usb-a9263
 +
  versatile_defconfig      - Build for versatile
 +
  viper_defconfig          - Build for viper
 +
  w90p910_defconfig        - Build for w90p910
 +
  xm_x2xx_defconfig        - Build for xm_x2xx
 +
  yl9200_defconfig        - Build for yl9200
 +
  zylonite_defconfig      - Build for zylonite
 +
 +
  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
 +
</pre>
 +
 +
|-
 +
| 4-7
 +
| 4-27
 +
| Partial Listing of Kconfig for ARM Architecture
 +
| <pre>
 +
 +
</pre>
 +
 +
|-
 +
| 4-8
 +
| 4-30
 +
| Snippet from .../arch/arm/Kconfig
 +
| <pre>
 +
183 config VECTORS_BASE
 +
184        hex
 +
185        default 0xffff0000 if MMU || CPU_HIGH_VECTOR
 +
186        default DRAM_BASE if REMAP_VECTORS_TO_RAM
 +
187        default 0x00000000
 +
188        help
 +
189          The base address of exception vectors.
 +
190
 +
191 source "init/Kconfig"
 +
192
 +
193 source "kernel/Kconfig.freezer"
 +
194
 +
195 menu "System Type"
 +
196
 +
197 choice
 +
198        prompt "ARM system type"
 +
199        default ARCH_VERSATILE
 +
200
 +
201 config ARCH_AAEC2000
 +
202        bool "Agilent AAEC-2000 based"
 +
203        select CPU_ARM920T
 +
204        select ARM_AMBA
 +
205        select HAVE_CLK
 +
206        help
 +
207          This enables support for systems based on the Agilent AAEC-2000
 +
208
 +
209 config ARCH_INTEGRATOR
 +
210        bool "ARM Ltd. Integrator family"
 +
211        select ARM_AMBA                                                                               
 +
212        select HAVE_CLK                                                                               
 +
213        select COMMON_CLKDEV                                                                           
 +
214        select ICST525
 +
215        help
 +
216          Support for ARM's Integrator platform.
 +
</pre>
 +
 +
|-
 +
| 4-9
 +
| 4-30
 +
| Snippet from .../arch/arm/plat-omap/Kconfig
 +
| <pre>
 +
....
 +
config OMAP_BOOT_REASON
 +
        bool "Support for boot reason"
 +
        depends on OMAP_BOOT_TAG
 +
        default n
 +
        help
 +
          Say Y, if you want to have a procfs entry for reading the boot
 +
          reason in user-space.
 +
 +
config OMAP_COMPONENT_VERSION
 +
        bool "Support for component version display"
 +
        depends on OMAP_BOOT_TAG && PROC_FS
 +
        default n
 +
        help
 +
          Say Y, if you want to have a procfs entry for reading component
 +
          versions (supplied by the bootloader) in user-space.
 +
 +
config OMAP_GPIO_SWITCH
 +
        bool "GPIO switch support"
 +
        default n
 +
        help
 +
          Say Y, if you want to have support for reporting of GPIO
 +
          switches (e.g. cover switches) via sysfs. Your bootloader has
 +
          to provide information about the switches to the kernel via the
 +
          ATAG_BOARD mechanism if they're not defined by the board config.
 +
 +
config OMAP_MUX
 +
        bool "OMAP multiplexing support"
 +
        depends on ARCH_OMAP
 +
        default y
 +
        help
 +
          Pin multiplexing support for OMAP boards. If your bootloader
 +
          sets the multiplexing correctly, say N. Otherwise, or if unsure,
 +
          say Y.
 +
 +
config OMAP_MUX_DEBUG
 +
        bool "Multiplexing debug output"
 +
        depends on OMAP_MUX
 +
        help
 +
          Makes the multiplexing functions print out a lot of debug info.
 +
          This is useful if you want to find out the correct values of the
 +
....
 +
</pre>
 +
 +
|-
 +
| '''4-10'''
 +
| '''4-32'''
 +
| '''Customized .config File Snippet'''
 +
| <pre>
 +
#
 +
# OMAP Feature Selections
 +
#
 +
# CONFIG_OMAP_DEBUG_POWERDOMAIN is not set
 +
# CONFIG_OMAP_DEBUG_CLOCKDOMAIN is not set
 +
# CONFIG_OMAP_SMARTREFLEX is not set
 +
CONFIG_OMAP_RESET_CLOCKS=y
 +
CONFIG_OMAP_BOOT_TAG=y
 +
CONFIG_OMAP_BOOT_REASON=y
 +
# CONFIG_OMAP_COMPONENT_VERSION is not set
 +
CONFIG_OMAP_GPIO_SWITCH=y
 +
# CONFIG_OMAP_GPIO_SWITCH_2 is not set
 +
# CONFIG_OMAP_MUX is not set
 +
CONFIG_OMAP_MCBSP=y
 +
# CONFIG_OMAP_MBOX_FWK is not set
 +
CONFIG_OMAP_IOMMU=m
 +
# CONFIG_OMAP_MPU_TIMER is not set
 +
CONFIG_OMAP_32K_TIMER=y
 +
CONFIG_OMAP_32K_TIMER_HZ=128
 +
CONFIG_OMAP_TICK_GPTIMER=12
 +
CONFIG_OMAP_DM_TIMER=y
 +
# CONFIG_OMAP_LL_DEBUG_UART1 is not set
 +
# CONFIG_OMAP_LL_DEBUG_UART2 is not set
 +
CONFIG_OMAP_LL_DEBUG_UART3=y
 +
CONFIG_ARCH_OMAP34XX=y
 +
CONFIG_ARCH_OMAP3430=y
 +
</pre>
 +
 +
|-
 +
| 4-11
 +
| 4-33
 +
| Makefile from .../arch/arm/plat-omap/ Kernel Subdirectory
 +
| <pre>
 +
#
 +
# Makefile for the linux kernel.
 +
#
 +
 +
# Common support
 +
obj-y := common.o sram.o clock.o devices.o dma.o mux.o gpio.o \
 +
        usb.o fb.o vram.o vrfb.o io.o
 +
obj-m :=
 +
obj-n :=
 +
obj-  :=
 +
 +
# OCPI interconnect support for 1710, 1610 and 5912
 +
obj-$(CONFIG_ARCH_OMAP16XX) += ocpi.o
 +
 +
obj-$(CONFIG_OMAP_MCBSP) += mcbsp.o
 +
obj-$(CONFIG_OMAP_IOMMU) += iommu.o iovmm.o
 +
 +
obj-$(CONFIG_CPU_FREQ) += cpu-omap.o
 +
obj-$(CONFIG_OMAP_DM_TIMER) += dmtimer.o
 +
obj-$(CONFIG_OMAP_BOOT_REASON) += bootreason.o
 +
obj-$(CONFIG_OMAP_COMPONENT_VERSION) += component-version.o
 +
obj-$(CONFIG_OMAP_GPIO_SWITCH) += gpio-switch.o
 +
obj-$(CONFIG_OMAP_DEBUG_DEVICES) += debug-devices.o
 +
obj-$(CONFIG_OMAP_DEBUG_LEDS) += debug-leds.o
 +
i2c-omap-$(CONFIG_I2C_OMAP) := i2c.o
 +
obj-y += $(i2c-omap-m) $(i2c-omap-y)
 +
 +
# OMAP mailbox framework
 +
obj-$(CONFIG_OMAP_MBOX_FWK) += mailbox.o
 +
</pre>
 +
 
|}
 
|}
  
 +
== Chapter 5 ==
 +
 +
{|
 +
! Number
 +
! Page
 +
! Caption
 +
! Listing
 +
|-
 +
| 5-1
 +
| 5-2
 +
| Final Kernel Build Sequence:  ARM/BeagleBoard
 +
| <pre>
 +
$ export OETREE="${HOME}/oe"
 +
$ PATH=${OETREE}/angstrom-dev/staging/i686-linux/usr/bin/:${PATH}
 +
$ PATH=${OETREE}/angstrom-dev/cross/armv7a/bin/:${PATH}
 +
$ make CROSS_CO  UPD    include/linux/compile.h
 +
 +
....
 +
 +
  CC      init/version.o
 +
  LD      init/built-in.o
 +
  LD      .tmp_vmlinux1
 +
  KSYM    .tmp_kallsyms1.S
 +
  AS      .tmp_kallsyms1.o
 +
  LD      .tmp_vmlinux2
 +
  KSYM    .tmp_kallsyms2.S
 +
  AS      .tmp_kallsyms2.o
 +
  LD      vmlinux
 +
  SYSMAP  System.map
 +
  SYSMAP  .tmp_System.map
 +
  OBJCOPY arch/arm/boot/Image
 +
  Kernel: arch/arm/boot/Image is ready
 +
  AS      arch/arm/boot/compressed/head.o
 +
  GZIP    arch/arm/boot/compressed/piggy.gz
 +
  AS      arch/arm/boot/compressed/piggy.o
 +
  CC      arch/arm/boot/compressed/misc.o
 +
  LD      arch/arm/boot/compressed/vmlinux
 +
  OBJCOPY arch/arm/boot/zImage
 +
  Kernel: arch/arm/boot/zImage is ready
 +
  UIMAGE  arch/arm/boot/uImage
 +
Image Name:  Linux-2.6.29-omap1
 +
Created:      Fri Apr  2 00:21:21 2010
 +
Image Type:  ARM Linux Kernel Image (uncompressed)
 +
Data Size:    2991252 Bytes = 2921.14 kB = 2.85 MB
 +
Load Address: 80008000
 +
Entry Point:  80008000
 +
  Image arch/arm/boot/uImage is readyMPILE=arm-angstrom-linux-gnueabi- uImage
 +
 +
</pre>
 +
 +
|-
 +
| 5-2
 +
| 5-5
 +
| Assembly File .../arch/arm/boot/compressed/piggy.S
 +
| <pre>
 +
        .section .piggydata,#alloc
 +
        .globl  input_data
 +
input_data:
 +
        .incbin "arch/arm/boot/compressed/piggy.gz"
 +
        .globl  input_data_end
 +
input_data_end:
 +
</pre>
 +
 +
|-
 +
| 5-3
 +
| 5-7
 +
| Final Kernel Build Sequence:  ARM/BeagleBoard
 +
| <pre>Reading boot sector
 +
Loading u-boot.bin from mmc
 +
 +
 +
U-Boot 2009.11-rc1 (Jan 08 2010 - 21:19:52)
 +
 +
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 #1e30000400000000040365fa1400400a
 +
Hit any key to stop autoboot: 10 ��� 9 ��� 8 ��� 7 ��� 6 ��� 5 ��� 4 ��� 3 ��� 2 ��� 1 ��� 0
 +
mmc1 is available
 +
reading uImage
 +
 +
2996196 bytes read
 +
## Booting kernel from Legacy Image at 80300000 ...
 +
  Image Name:  Angstrom/2.6.29/beagleboard
 +
  Image Type:  ARM Linux Kernel Image (uncompressed)
 +
  Data Size:    2996132 Bytes =  2.9 MB
 +
  Load Address: 80008000
 +
  Entry Point:  80008000
 +
  Verifying Checksum ... OK
 +
  Loading Kernel Image ... OK
 +
OK
 +
 +
Starting kernel ...
 +
 +
Uncompressing Linux.................................................................................................................................................................................................. done, booting the kernel.
 +
[    0.000000] Linux version 2.6.29-omap1 (koen@dominion) (gcc version 4.3.3 (GCC) ) #1 PREEMPT Wed Oct 21 13:11:52 CEST 2009
 +
[    0.000000] CPU: ARMv7 Processor [411fc083] revision 3 (ARMv7), cr=10c5387f
 +
[    0.000000] CPU: VIPT nonaliasing data cache, VIPT nonaliasing instruction cache
 +
[    0.000000] Machine: OMAP3 Beagle Board
 +
[    0.000000] Memory policy: ECC disabled, Data cache writeback
 +
[    0.000000] OMAP3430 ES3.1
 +
[    0.000000] SRAM: Mapped pa 0x40200000 to va 0xd7000000 size: 0x100000
 +
[    0.000000] Reserving 14680064 bytes SDRAM for VRAM
 +
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 65024
 +
[    0.000000] Kernel command line: console=ttyS2,115200n8 root=/dev/mmcblk0p2 rw rootwait
 +
[    0.000000] Clocking rate (Crystal/DPLL/ARM core): 26.0/332/720 MHz
 +
[    0.000000] GPMC revision 5.0
 +
[    0.000000] IRQ: Found an INTC at 0xd8200000 (revision 4.0) with 96 interrupts
 +
[    0.000000] Total of 96 interrupts on 1 active controller
 +
[    0.000000] OMAP34xx GPIO hardware version 2.5
 +
[    0.000000] PID hash table entries: 1024 (order: 10, 4096 bytes)
 +
[    0.000000] OMAP clockevent source: GPTIMER12 at 32768 Hz
 +
[    0.000000] Console: colour dummy device 80x30
 +
[    0.000000] Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)
 +
[    0.000000] Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
 +
[    0.000000] Memory: 128MB 128MB = 256MB total
 +
[    0.000000] Memory: 238848KB available (5632K code, 576K data, 204K init)
 +
[    0.000000] Calibrating delay loop... 740.48 BogoMIPS (lpj=2891776)
 +
[    0.000000] Mount-cache hash table entries: 512
 +
[    0.000000] CPU: Testing write buffer coherency: ok
 +
[    0.000000] net_namespace: 1036 bytes
 +
[    0.000000] regulator: core version 0.5
 +
[    0.000000] NET: Registered protocol family 16
 +
[    0.000000] GPIO-156 autorequested
 +
[    0.000000] GPIO-159 autorequested
 +
[    0.000000] Found NAND on CS0
 +
[    0.000000] Registering NAND on CS0
 +
[ 3130.761016] OMAP DMA hardware revision 4.0
 +
[ 3130.794372] bio: create slab <bio-0> at 0
 +
[ 3130.854797] OMAP DSS rev 2.0
 +
[ 3130.854888] OMAP DISPC rev 3.0
 +
[ 3130.854919] OMAP VENC rev 2
 +
[ 3130.855041] OMAP DSI rev 1.0
 +
[ 3130.870819] i2c_omap i2c_omap.1: bus 1 rev3.12 at 2600 kHz
 +
[ 3130.874114] twl4030: PIH (irq 7) chaining IRQs 368..375
 +
[ 3130.874145] twl4030: power (irq 373) chaining IRQs 376..383
 +
[ 3130.874603] twl4030: gpio (irq 368) chaining IRQs 384..401
 +
[ 3130.876922] regulator: VMMC1: 1850 <--> 3150 mV normal standby
 +
[ 3130.877655] regulator: VDAC: 1800 mV normal standby
 +
[ 3130.878356] regulator: VUSB1V5: 1500 <--> 0 mV normal standby
 +
[ 3130.879211] regulator: VUSB1V8: 1800 <--> 0 mV normal standby
 +
[ 3130.879913] regulator: VUSB3V1: 3100 <--> 0 mV normal standby
 +
[ 3130.880615] regulator: VPLL2: 1800 mV normal standby
 +
[ 3130.881347] regulator: VMMC2: 2800 <--> 3150 mV normal standby
 +
[ 3130.882049] regulator: VSIM: 1800 <--> 3000 mV normal standby
 +
[ 3130.882202] i2c_omap i2c_omap.2: bus 2 rev3.12 at 400 kHz
 +
[ 3130.894989] i2c_omap i2c_omap.3: bus 3 rev3.12 at 100 kHz
 +
[ 3130.896759] SCSI subsystem initialized
 +
[ 3130.899688] twl4030_usb twl4030_usb: Initialized TWL4030 USB module
 +
[ 3130.900909] usbcore: registered new interface driver usbfs
 +
[ 3130.901367] usbcore: registered new interface driver hub
 +
[ 3130.901702] usbcore: registered new device driver usb
 +
[ 3130.904205] Bluetooth: Core ver 2.14
 +
[ 3130.904632] NET: Registered protocol family 31
 +
[ 3130.904632] Bluetooth: HCI device and connection manager initialized
 +
[ 3130.904663] Bluetooth: HCI socket layer initialized
 +
[ 3130.905242] cfg80211: Using static regulatory domain info
 +
[ 3130.905242] cfg80211: Regulatory domain: US
 +
[ 3130.905273] (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
 +
[ 3130.905273] (2402000 KHz - 2472000 KHz @ 40000 KHz), (600 mBi, 2700 mBm)
 +
[ 3130.905303] (5170000 KHz - 5190000 KHz @ 40000 KHz), (600 mBi, 2300 mBm)
 +
[ 3130.905303] (5190000 KHz - 5210000 KHz @ 40000 KHz), (600 mBi, 2300 mBm)
 +
[ 3130.905334] (5210000 KHz - 5230000 KHz @ 40000 KHz), (600 mBi, 2300 mBm)
 +
[ 3130.905334] (5230000 KHz - 5330000 KHz @ 40000 KHz), (600 mBi, 2300 mBm)
 +
[ 3130.905364] (5735000 KHz - 5835000 KHz @ 40000 KHz), (600 mBi, 3000 mBm)
 +
[ 3130.905364] cfg80211: Calling CRDA for country: US
 +
[ 3130.908111] musb_hdrc: version 6.0, musb-dma, otg (peripheral+host), debug=0
 +
[ 3130.910308] musb_hdrc: USB OTG mode controller at d80ab000 using DMA, IRQ 92
 +
[ 3130.911560] NET: Registered protocol family 2
 +
[ 3130.911804] IP route cache hash table entries: 2048 (order: 1, 8192 bytes)
 +
[ 3130.912292] TCP established hash table entries: 8192 (order: 4, 65536 bytes)
 +
[ 3130.912445] TCP bind hash table entries: 8192 (order: 3, 32768 bytes)
 +
[ 3130.912567] TCP: Hash tables configured (established 8192 bind 8192)
 +
[ 3130.912567] TCP reno registered
 +
[ 3130.912780] NET: Registered protocol family 1
 +
[ 3130.916107] VFS: Disk quotas dquot_6.5.2
 +
[ 3130.916168] Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
 +
[ 3130.916656] squashfs: version 4.0 (2009/01/31) Phillip Lougher
 +
[ 3130.917236] JFFS2 version 2.2. (NAND) (SUMMARY)  © 2001-2006 Red Hat, Inc.
 +
[ 3130.917938] msgmni has been set to 466
 +
[ 3130.921691] alg: No test for stdrng (krng)
 +
[ 3130.921783] io scheduler noop registered
 +
[ 3130.921783] io scheduler anticipatory registered
 +
[ 3130.921813] io scheduler deadline registered
 +
[ 3130.921966] io scheduler cfq registered (default)
 +
[ 3130.941101] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
 +
[ 3130.963867] serial8250.0: ttyS0 at MMIO 0x4806a000 (irq = 72) is a ST16654
 +
[ 3130.985321] serial8250.0: ttyS1 at MMIO 0x4806c000 (irq = 73) is a ST16654
 +
[ 3131.007293] serial8250.0: ttyS2 at MMIO 0x49020000 (irq = 74) is a ST16654
 +
[ 3131.007324] console [ttyS2] enabled
 +
[ 3131.527282] brd: module loaded
 +
[ 3131.535125] loop: module loaded
 +
[ 3131.538909] enc28j60 spi4.0: enc28j60 Ethernet driver 1.01 loaded
 +
[ 3131.547546] enc28j60 spi4.0: enc28j60 chip not found
 +
[ 3131.552612] enc28j60: probe of spi4.0 failed with error -5
 +
[ 3131.558593] usbcore: registered new interface driver catc
 +
[ 3131.564178] catc: v2.8:CATC EL1210A NetMate USB Ethernet driver
 +
[ 3131.570770] usbcore: registered new interface driver kaweth
 +
[ 3131.576416] pegasus: v0.6.14 (2006/09/27), Pegasus/Pegasus II USB Ethernet driver
 +
[ 3131.584228] usbcore: registered new interface driver pegasus
 +
[ 3131.589935] rtl8150: v0.6.2 (2004/08/27):rtl8150 based usb-ethernet driver
 +
[ 3131.597106] usbcore: registered new interface driver rtl8150
 +
[ 3131.603057] usbcore: registered new interface driver asix
 +
[ 3131.608734] usbcore: registered new interface driver cdc_ether
 +
[ 3131.614837] usbcore: registered new interface driver dm9601
 +
[ 3131.620666] usbcore: registered new interface driver smsc95xx
 +
[ 3131.626708] usbcore: registered new interface driver gl620a
 +
[ 3131.632598] usbcore: registered new interface driver net1080
 +
[ 3131.638519] usbcore: registered new interface driver plusb
 +
[ 3131.644256] usbcore: registered new interface driver rndis_host
 +
[ 3131.650482] usbcore: registered new interface driver cdc_subset
 +
[ 3131.656646] usbcore: registered new interface driver zaurus
 +
[ 3131.662536] usbcore: registered new interface driver MOSCHIP usb-ethernet driver
 +
[ 3131.670257] Broadcom 43xx driver loaded [ Features: L, Firmware-ID: FW13 ]
 +
[ 3131.677551] usbcore: registered new interface driver zd1211rw
 +
[ 3131.683532] usbcore: registered new interface driver rtl8187
 +
[ 3131.689514] usbcore: registered new interface driver rndis_wlan
 +
[ 3131.695739] usbcore: registered new interface driver zd1201
 +
[ 3131.701629] usbcore: registered new interface driver usb8xxx
 +
[ 3131.707550] usbcore: registered new interface driver rt2500usb
 +
[ 3131.713714] usbcore: registered new interface driver rt73usb
 +
[ 3131.719665] usbcore: registered new interface driver p54usb
 +
[ 3131.725341] i2c /dev entries driver
 +
[ 3131.730346] Driver 'sd' needs updating - please use bus_type methods
 +
[ 3131.736968] Driver 'sr' needs updating - please use bus_type methods
 +
[ 3131.744293] omap2-nand driver initializing
 +
[ 3131.748718] NAND device: Manufacturer ID: 0x2c, Chip ID: 0xba (Micron NAND 256MiB 1,8V 16-bit)
 +
[ 3131.757751] cmdlinepart partition parsing not available
 +
[ 3131.763061] Creating 5 MTD partitions on "omap2-nand":
 +
[ 3131.768218] 0x000000000000-0x000000080000 : "X-Loader"
 +
[ 3131.775146] 0x000000080000-0x000000260000 : "U-Boot"
 +
[ 3131.782012] 0x000000260000-0x000000280000 : "U-Boot Env"
 +
[ 3131.788452] 0x000000280000-0x000000680000 : "Kernel"
 +
[ 3131.796173] 0x000000680000-0x000010000000 : "File System"
 +
[ 3131.911987] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
 +
[ 3131.918853] ehci-omap ehci-omap.0: OMAP-EHCI Host Controller
 +
[ 3131.925384] ehci-omap ehci-omap.0: new USB bus registered, assigned bus number 1
 +
[ 3131.933166] ehci-omap ehci-omap.0: irq 77, io mem 0x48064800
 +
[ 3131.950286] ehci-omap ehci-omap.0: USB 2.0 started, EHCI 1.00
 +
[ 3131.956695] usb usb1: configuration #1 chosen from 1 choice
 +
[ 3131.962738] hub 1-0:1.0: USB hub found
 +
[ 3131.966583] hub 1-0:1.0: 3 ports detected
 +
[ 3131.972351] Initializing USB Mass Storage driver...
 +
[ 3131.977630] usbcore: registered new interface driver usb-storage
 +
[ 3131.983734] USB Mass Storage support registered.
 +
[ 3131.988922] mice: PS/2 mouse device common for all mice
 +
[ 3131.994750] input: gpio-keys as /devices/platform/gpio-keys/input/input0
 +
[ 3132.003601] input: twl4030_pwrbutton as /devices/platform/i2c_omap.1/i2c-adapter/i2c-1/1-0049/twl4030_pwrbutton/input/input1
 +
[ 3132.295349] usb 1-2: new high speed USB device using ehci-omap and address 2
 +
[ 3132.459320] usb 1-2: configuration #1 chosen from 1 choice
 +
[ 3132.465362] hub 1-2:1.0: USB hub found
 +
[ 3132.469390] hub 1-2:1.0: 4 ports detected
 +
[ 3132.763183] usb 1-2.1: new high speed USB device using ehci-omap and address 3
 +
[ 3132.902313] usb 1-2.1: configuration #1 chosen from 1 choice
 +
[ 3133.013031] i2c_omap i2c_omap.2: controller timed out
 +
[ 3133.018157] rtc-ds1307: probe of 2-0068 failed with error -5
 +
[ 3133.025421] OMAP Watchdog Timer Rev 0x31: initial timeout 60 sec
 +
[ 3133.031738] Bluetooth: HCI UART driver ver 2.2
 +
[ 3133.036254] Bluetooth: HCI H4 protocol initialized
 +
[ 3133.041076] Bluetooth: HCI BCSP protocol initialized
 +
[ 3133.046112] Bluetooth: HCILL protocol initialized
 +
[ 3133.050842] Bluetooth: Broadcom Blutonium firmware driver ver 1.2
 +
[ 3133.057281] usbcore: registered new interface driver bcm203x
 +
[ 3133.063018] Bluetooth: Digianswer Bluetooth USB driver ver 0.10
 +
[ 3133.069213] usbcore: registered new interface driver bpa10x
 +
[ 3133.074829] Bluetooth: BlueFRITZ! USB driver ver 1.2
 +
[ 3133.080078] usbcore: registered new interface driver bfusb
 +
[ 3133.085845] Bluetooth: Generic Bluetooth USB driver ver 0.4
 +
[ 3133.091796] usbcore: registered new interface driver btusb
 +
[ 3133.097381] Bluetooth: Generic Bluetooth SDIO driver ver 0.1
 +
[ 3133.104034] mmci-omap-hs mmci-omap-hs.0: Failed to get debounce clock
 +
[ 3133.216308] mmci-omap-hs mmci-omap-hs.1: Failed to get debounce clock
 +
[ 3133.222869] regulator: Unable to get requested regulator: vmmc_aux
 +
[ 3133.231506] Registered led device: beagleboard::usr0
 +
[ 3133.236785] Registered led device: beagleboard::usr1
 +
[ 3133.247497] usbcore: registered new interface driver usbhid
 +
[ 3133.253143] usbhid: v2.6:USB HID core driver
 +
[ 3133.258453] Advanced Linux Sound Architecture Driver Version 1.0.18a.
 +
[ 3133.265960] usbcore: registered new interface driver snd-usb-audio
 +
[ 3133.272521] No device for DAI twl4030
 +
[ 3133.276214] No device for DAI omap-mcbsp-dai-0
 +
[ 3133.280883] No device for DAI omap-mcbsp-dai-1
 +
[ 3133.285339] No device for DAI omap-mcbsp-dai-2
 +
[ 3133.289947] No device for DAI omap-mcbsp-dai-3
 +
[ 3133.294433] No device for DAI omap-mcbsp-dai-4
 +
[ 3133.298919] OMAP3 Beagle SoC init
 +
[ 3133.302642] TWL4030 Audio Codec init
 +
[ 3133.307403] asoc: twl4030 <-> omap-mcbsp-dai-0 mapping ok
 +
[ 3133.321624] ALSA device list:
 +
[ 3133.324615]  #0: omap3beagle (twl4030)
 +
[ 3133.329040] oprofile: using arm/armv7
 +
[ 3133.332916] TCP cubic registered
 +
[ 3133.336303] NET: Registered protocol family 17
 +
[ 3133.340850] NET: Registered protocol family 15
 +
[ 3133.345367] Bluetooth: L2CAP ver 2.11
 +
[ 3133.349090] Bluetooth: L2CAP socket layer initialized
 +
[ 3133.354156] Bluetooth: SCO (Voice Link) ver 0.6
 +
[ 3133.358764] Bluetooth: SCO socket layer initialized
 +
[ 3133.369445] Bluetooth: RFCOMM socket layer initialized
 +
[ 3133.374755] Bluetooth: RFCOMM TTY layer initialized
 +
[ 3133.379669] Bluetooth: RFCOMM ver 1.10
 +
[ 3133.383453] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
 +
[ 3133.388824] Bluetooth: BNEP filters: protocol multicast
 +
[ 3133.394073] Bluetooth: HIDP (Human Interface Emulation) ver 1.2
 +
[ 3133.403198] RPC: Registered udp transport module.
 +
[ 3133.407989] RPC: Registered tcp transport module.
 +
[ 3133.412841] lib80211: common routines for IEEE802.11 drivers
 +
[ 3133.418609] ThumbEE CPU extension supported.
 +
[ 3133.423156] Power Management for TI OMAP3.
 +
[ 3133.433868] Disabling unused clock "sr2_fck"
 +
[ 3133.438262] Disabling unused clock "sr1_fck"
 +
[ 3133.442596] Disabling unused clock "mcbsp_fck"
 +
[ 3133.447052] Disabling unused clock "mcbsp_fck"
 +
[ 3133.451538] Disabling unused clock "mcbsp_fck"
 +
[ 3133.456024] Disabling unused clock "mcbsp_ick"
 +
[ 3133.460510] Disabling unused clock "mcbsp_ick"
 +
[ 3133.464996] Disabling unused clock "mcbsp_ick"
 +
[ 3133.469482] Disabling unused clock "gpt2_ick"
 +
[ 3133.473876] Disabling unused clock "gpt3_ick"
 +
[ 3133.478271] Disabling unused clock "gpt4_ick"
 +
[ 3133.482666] Disabling unused clock "gpt5_ick"
 +
[ 3133.487060] Disabling unused clock "gpt6_ick"
 +
[ 3133.491455] Disabling unused clock "gpt7_ick"
 +
[ 3133.495849] Disabling unused clock "gpt8_ick"
 +
[ 3133.500244] Disabling unused clock "gpt9_ick"
 +
[ 3133.504608] Disabling unused clock "wdt3_ick"
 +
[ 3133.509033] Disabling unused clock "wdt3_fck"
 +
[ 3133.513641] Disabling unused clock "gpio2_dbck"
 +
[ 3133.518188] Disabling unused clock "gpio3_dbck"
 +
[ 3133.522766] Disabling unused clock "gpio4_dbck"
 +
[ 3133.527343] Disabling unused clock "gpio5_dbck"
 +
[ 3133.531921] Disabling unused clock "gpio6_dbck"
 +
[ 3133.536499] Disabling unused clock "gpt9_fck"
 +
[ 3133.540863] Disabling unused clock "gpt8_fck"
 +
[ 3133.545288] Disabling unused clock "gpt7_fck"
 +
[ 3133.549652] Disabling unused clock "gpt6_fck"
 +
[ 3133.554077] Disabling unused clock "gpt5_fck"
 +
[ 3133.558441] Disabling unused clock "gpt4_fck"
 +
[ 3133.562866] Disabling unused clock "gpt3_fck"
 +
[ 3133.567230] Disabling unused clock "gpt2_fck"
 +
[ 3133.571655] Disabling unused clock "gpt1_ick"
 +
[ 3133.576049] Disabling unused clock "wdt1_ick"
 +
[ 3133.580413] Disabling unused clock "wdt2_ick"
 +
[ 3133.584838] Disabling unused clock "wdt2_fck"
 +
[ 3133.589202] Disabling unused clock "gpio1_dbck"
 +
[ 3133.593780] Disabling unused clock "gpt1_fck"
 +
[ 3133.598175] Disabling unused clock "cam_ick"
 +
[ 3133.602508] Disabling unused clock "cam_mclk"
 +
[ 3133.607116] Disabling unused clock "des1_ick"
 +
[ 3133.611511] Disabling unused clock "sha11_ick"
 +
[ 3133.615997] Disabling unused clock "rng_ick"
 +
[ 3133.620300] Disabling unused clock "aes1_ick"
 +
[ 3133.624694] Disabling unused clock "ssi_ick"
 +
[ 3133.628997] Disabling unused clock "mailboxes_ick"
 +
[ 3133.633850] Disabling unused clock "mcbsp_ick"
 +
[ 3133.638336] Disabling unused clock "mcbsp_ick"
 +
[ 3133.642791] Disabling unused clock "gpt10_ick"
 +
[ 3133.647277] Disabling unused clock "gpt11_ick"
 +
[ 3133.651763] Disabling unused clock "hdq_ick"
 +
[ 3133.656066] Disabling unused clock "mspro_ick"
 +
[ 3133.660552] Disabling unused clock "des2_ick"
 +
[ 3133.664947] Disabling unused clock "sha12_ick"
 +
[ 3133.669433] Disabling unused clock "aes2_ick"
 +
[ 3133.673828] Disabling unused clock "icr_ick"
 +
[ 3133.678131] Disabling unused clock "pka_ick"
 +
[ 3133.682434] Disabling unused clock "ssi_ssr_fck"
 +
[ 3133.687103] Disabling unused clock "hdq_fck"
 +
[ 3133.691406] Disabling unused clock "mcbsp_fck"
 +
[ 3133.695892] Disabling unused clock "mcbsp_fck"
 +
[ 3133.700561] Disabling unused clock "mspro_fck"
 +
[ 3133.705047] Disabling unused clock "gpt11_fck"
 +
[ 3133.709533] Disabling unused clock "gpt10_fck"
 +
[ 3133.713989] Disabling unused clock "dpll4_m6x2_ck"
 +
[ 3133.718841] Disabling unused clock "dpll3_m3x2_ck"
 +
[ 3133.723693] Disabling unused clock "sys_clkout1"
 +
[ 3133.728363] VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 1
 +
[ 3133.742828] registered taskstats version 1
 +
[ 3133.764251] Console: switching to colour frame buffer device 80x30
 +
[ 3133.778198] clock: clksel_round_rate_div: dpll4_m4_ck target_rate 48000000
 +
[ 3133.785125] clock: new_div = 9, new_rate = 48000000
 +
[ 3133.795593] drivers/rtc/hctosys.c: unable to open rtc device (rtc0)
 +
[ 3133.887939] mmc0: new high speed SDHC card at address a9ed
 +
[ 3133.894042] mmcblk0: mmc0:a9ed SD08G 7.42 GiB
 +
[ 3133.898986]  mmcblk0: p1 p2
 +
[ 3134.070312] eth0 (asix): not using net_device_ops yet
 +
[ 3134.076110] eth0: register 'asix' at usb-ehci-omap.0-2.1, ASIX AX88772 USB 2.0 Ethernet, 00:50:b6:06:c3:f3
 +
[ 3134.134582] kjournald starting.  Commit interval 5 seconds
 +
[ 3134.169372] usb 1-2.4: new high speed USB device using ehci-omap and address 4
 +
[ 3134.295684] usb 1-2.4: configuration #1 chosen from 1 choice
 +
[ 3134.301910] hub 1-2.4:1.0: USB hub found
 +
[ 3134.305999] hub 1-2.4:1.0: 4 ports detected
 +
[ 3134.390747] EXT3 FS on mmcblk0p2, internal journal
 +
[ 3134.395599] EXT3-fs: mounted filesystem with ordered data mode.
 +
[ 3134.401641] VFS: Mounted root (ext3 filesystem) on device 179:2.
 +
[ 3134.407836] Freeing init memory: 204K
 +
 +
INIT: version 2.86 booting
 +
 +
Starting udev[ 3140.940948] twl4030_rtc twl4030_rtc: rtc core: registered twl4030_rtc as rtc0
 +
[ 3140.948486] twl4030_rtc twl4030_rtc: Power up reset detected.
 +
[ 3141.017303] twl4030_rtc twl4030_rtc: Enabling TWL4030-RTC.
 +
[ 3141.952758] uncorrectable error : <3>end_request: I/O error, dev mtdblock0, sector 0
 +
[ 3141.960601] Buffer I/O error on device mtdblock0, logical block 0
 +
[ 3142.023376] uncorrectable error : <3>end_request: I/O error, dev mtdblock0, sector 8
 +
[ 3142.031188] Buffer I/O error on device mtdblock0, logical block 1
 +
[ 3142.067901] uncorrectable error : <3>end_request: I/O error, dev mtdblock0, sector 16
 +
[ 3142.075836] Buffer I/O error on device mtdblock0, logical block 2
 +
[ 3142.100311] uncorrectable error : <3>end_request: I/O error, dev mtdblock0, sector 24
 +
[ 3142.108215] Buffer I/O error on device mtdblock0, logical block 3
 +
[ 3142.139556] uncorrectable error : <3>end_request: I/O error, dev mtdblock0, sector 0
 +
[ 3142.162719] Buffer I/O error on device mtdblock0, logical block 0
 +
and populating dev cache
 +
Remounting root file system...
 +
[ 3147.624511] NET: Registered protocol family 10
 +
[ 3147.699707] NET: Registered protocol family 23
 +
[ 3147.727874] IrCOMM protocol (Dag Brattli)
 +
Unknown HZ value! (70) Assume 100.
 +
ALSA: Restoring mixer settings...
 +
Configuring network interfaces... [ 3149.568145] eth0: link up, 100Mbps, full-duplex, lpa 0x45E1
 +
eth0      no wireless extensions.
 +
 +
udhcpc (v1.13.2) started
 +
run-parts: /etc/udhcpc.d/00avahi-autoipd exited with code 1
 +
Sending discover...
 +
[ 3149.732147] eth0: link up, 100Mbps, full-duplex, lpa 0x45E1
 +
Sending discover...
 +
Sending select for 192.168.1.108...
 +
Lease of 192.168.1.108 obtained, lease time 86400
 +
run-parts: /etc/udhcpc.d/00avahi-autoipd exited with code 1
 +
adding dns 192.168.1.1
 +
done.
 +
Starting portmap daemon: portmap.
 +
Unknown HZ value! (75) Assume 100.
 +
net.ipv4.conf.default.rp_filter = 1
 +
net.ipv4.conf.all.rp_filter = 1
 +
Wed Mar 10 03:00:00 GMT 2010
 +
 +
INIT: Entering runlevel: 5
 +
 +
Configuring leds:
 +
  beagleboard::usr0: heartbeat
 +
  beagleboard::usr1: mmc0
 +
Starting Dropbear SSH server: dropbear.
 +
Starting advanced power management daemon: No APM support in kernel
 +
(failed.)
 +
Starting Vixie-cron.
 +
Starting system message bus: dbus.
 +
Starting Hardware abstraction layer hald
 +
Starting syslogd/klogd: done
 +
* Starting Avahi mDNS/DNS-SD Daemon: avahi-daemon
 +
[ ok ]
 +
Starting Connection Manager
 +
Running ntpdate to synchronize clock.
 +
Starting GPE display manager: gpe-dm
 +
 +
.-------.                                         
 +
|      |                  .-.                     
 +
|  |  |-----.-----.-----.| |  .----..-----.-----.
 +
|      |    | __  |  ---'| '--.|  .-'|    |    |
 +
|  |  |  |  |    |---  ||  --'|  |  |  '  | | | |
 +
'---'---'--'--'--.  |-----''----''--'  '-----'-'-'-'
 +
                -'  |
 +
                '---'
 +
 +
The Angstrom Distribution beagleboard ttyS2
 +
 +
Angstrom 2009.X-stable beagleboard ttyS2
 +
 +
beagleboard login: root
 +
</pre>
 +
 +
|-
 +
| 5-4
 +
| 5-17
 +
| Console Setup Code Snippet from .../kernel/printk.c
 +
| <pre>
 +
* Set up a list of consoles.  Called from init/main.c
 +
*/
 +
static int __init console_setup(char *str)
 +
{
 +
        char buf[sizeof(console_cmdline[0].name) + 4]; /* 4 for index */
 +
        char *s, *options, *brl_options = NULL;
 +
        int idx;
 +
 +
#ifdef CONFIG_A11Y_BRAILLE_CONSOLE
 +
        if (!memcmp(str, "brl,", 4)) {
 +
                brl_options = "";
 +
                str += 4;
 +
        } else if (!memcmp(str, "brl=", 4)) {
 +
                brl_options = str + 4;
 +
                str = strchr(brl_options, ',');
 +
                if (!str) {
 +
                        printk(KERN_ERR "need port name after brl=\n");
 +
                        return 1;
 +
                }
 +
                *(str++) = 0;
 +
        }
 +
#endif
 +
 +
        /*
 +
        * Decode str into name, index, options.
 +
        */
 +
        if (str[0] >= '0' && str[0] <= '9') {
 +
                strcpy(buf, "ttyS");
 +
                strncpy(buf + 4, str, sizeof(buf) - 5);
 +
        } else {
 +
                strncpy(buf, str, sizeof(buf) - 1);
 +
        }
 +
        buf[sizeof(buf) - 1] = 0;
 +
        if ((options = strchr(str, ',')) != NULL)
 +
                *(options++) = 0;
 +
#ifdef __sparc__
 +
        if (!strcmp(str, "ttya"))
 +
                strcpy(buf, "ttyS0");
 +
        if (!strcmp(str, "ttyb"))
 +
                strcpy(buf, "ttyS1");
 +
#endif
 +
        for (s = buf; *s; s++)
 +
                if ((*s >= '0' && *s <= '9') || *s == ',')
 +
                        break;
 +
        idx = simple_strtoul(s, NULL, 10);
 +
        *s = 0;
 +
 +
        __add_preferred_console(buf, idx, options, brl_options);
 +
        console_set_on_cmdline = 1;
 +
        return 1;
 +
}
 +
__setup("console=", console_setup);
 +
</pre>
 +
 +
|-
 +
| 5-5
 +
| 5-18
 +
| Family of __setup Macro Definitions from .../include/linux/init.h
 +
| <pre>
 +
#define __setup_param(str, unique_id, fn, early)                        \
 +
        static char __setup_str_##unique_id[] __initdata __aligned(1) = str; \
 +
        static struct obs_kernel_param __setup_##unique_id      \
 +
                __used __section(.init.setup)                  \
 +
                __attribute__((aligned((sizeof(long)))))        \
 +
                = { __setup_str_##unique_id, fn, early }
 +
 +
#define __setup(str, fn)                                        \
 +
        __setup_param(str, fn, fn, 0)
 +
</pre>
 +
 +
|-
 +
| 5-6
 +
| 5-19
 +
| Kernel Command Line Processing
 +
| <pre>
 +
extern struct obs_kernel_param __setup_start[], __setup_end[];
 +
 +
static int __init obsolete_checksetup(char *line)
 +
{
 +
        struct obs_kernel_param *p;
 +
        int had_early_param = 0;
 +
 +
        p = __setup_start;
 +
        do {
 +
                int n = strlen(p->str);
 +
                if (!strncmp(line, p->str, n)) {
 +
                        if (p->early) {
 +
                                /* Already done in parse_early_param?
 +
                                * (Needs exact match on param part).
 +
                                * Keep iterating, as we can have early
 +
                                * params and __setups of same names 8( */
 +
                                if (line[n] == '\0' || line[n] == '=')
 +
                                        had_early_param = 1;
 +
                        } else if (!p->setup_func) {
 +
                                printk(KERN_WARNING "Parameter %s is obsolete,"
 +
                                      " ignored\n", p->str);
 +
                                return 1;
 +
                        } else if (p->setup_func(line + n))
 +
                                return 1;
 +
                }
 +
                p++;
 +
        } while (p < __setup_end);
 +
 +
        return had_early_param;
 +
}
 +
</pre>
 +
 +
|-
 +
| 5-7
 +
| 5-22
 +
| Example Initialization Routine - .../arch/arm/kernel/setup.c
 +
| <pre>
 +
static void (*init_machine)(void) __initdata;
 +
 +
static int __init customize_machine(void)
 +
{
 +
        /* customizes platform devices, or adds new ones */
 +
        if (init_machine)
 +
                init_machine();
 +
        return 0;
 +
}
 +
arch_initcall(customize_machine);
 +
</pre>
 +
 +
|-
 +
| 5-8
 +
| 5-22
 +
| initcall Family of Macros - .../include/linux/init.h
 +
| <pre>
 +
#define __define_initcall(level,fn,id) \
 +
        static initcall_t __initcall_##fn##id __used \
 +
        __attribute__((__section__(".initcall" level ".init"))) = fn
 +
 +
/*
 +
* Early initcalls run before initializing SMP.
 +
*
 +
* Only for built-in code, not modules.
 +
*/
 +
#define early_initcall(fn)              __define_initcall("early",fn,early)
 +
 +
/*
 +
* A "pure" initcall has no dependencies on anything else, and purely
 +
* initializes variables that couldn't be statically initialized.
 +
*
 +
* This only exists for built-in code, not for modules.
 +
*/
 +
#define pure_initcall(fn)              __define_initcall("0",fn,0)
 +
 +
#define core_initcall(fn)              __define_initcall("1",fn,1)
 +
#define core_initcall_sync(fn)          __define_initcall("1s",fn,1s)
 +
#define postcore_initcall(fn)          __define_initcall("2",fn,2)
 +
#define postcore_initcall_sync(fn)      __define_initcall("2s",fn,2s)
 +
#define arch_initcall(fn)              __define_initcall("3",fn,3)
 +
#define arch_initcall_sync(fn)          __define_initcall("3s",fn,3s)
 +
#define subsys_initcall(fn)            __define_initcall("4",fn,4)
 +
#define subsys_initcall_sync(fn)        __define_initcall("4s",fn,4s)
 +
#define fs_initcall(fn)                __define_initcall("5",fn,5)
 +
#define fs_initcall_sync(fn)            __define_initcall("5s",fn,5s)
 +
#define rootfs_initcall(fn)            __define_initcall("rootfs",fn,rootfs)
 +
#define device_initcall(fn)            __define_initcall("6",fn,6)
 +
#define device_initcall_sync(fn)        __define_initcall("6s",fn,6s)
 +
#define late_initcall(fn)              __define_initcall("7",fn,7)
 +
#define late_initcall_sync(fn)          __define_initcall("7s",fn,7s)
 +
 +
#define __initcall(fn) device_initcall(fn)
 +
 +
#define __exitcall(fn) \
 +
 +
</pre>
 +
 +
|-
 +
| 5-9
 +
| 5-24
 +
| Creation of Kernel init Thread
 +
| <pre>
 +
static noinline void __init_refok rest_init(void)
 +
        __releases(kernel_lock)
 +
{
 +
        int pid;
 +
 +
        kernel_thread(kernel_init, NULL, CLONE_FS | CLONE_SIGHAND);
 +
        numa_default_policy();
 +
        pid = kernel_thread(kthreadd, NULL, CLONE_FS | CLONE_FILES);
 +
        kthreadd_task = find_task_by_pid_ns(pid, &init_pid_ns);
 +
        unlock_kernel();
 +
 +
        /*
 +
        * The boot idle thread must execute schedule()
 +
        * at least once to get things moving:
 +
        */
 +
        init_idle_bootup_task(current);
 +
        rcu_scheduler_starting();
 +
        preempt_enable_no_resched();
 +
        schedule();
 +
        preempt_disable();
 +
 +
        /* Call into cpu_idle with preempt disabled */
 +
        cpu_idle();
 +
}
 +
</pre>
 +
 +
|-
 +
| 5-10
 +
| 5-25
 +
| Initialization via initcalls
 +
| <pre>
 +
extern initcall_t __initcall_start[], __initcall_end[], __early_initcall_end[];
 +
 +
static void __init do_initcalls(void)
 +
{
 +
        initcall_t *call;
 +
 +
        for (call = __early_initcall_end; call < __initcall_end; call++)
 +
                do_one_initcall(*call);
 +
 +
        /* Make sure there is no pending stuff from the initcall sequence */
 +
        flush_scheduled_work();
 +
}
 +
</pre>
 +
 +
|-
 +
| 5-11
 +
| 5-27
 +
| Final Boot Steps from main.c
 +
| <pre>
 +
static noinline int init_post(void)
 +
{
 +
        /* need to finish all async __init code before freeing the memory */
 +
        async_synchronize_full();
 +
        free_initmem();
 +
        unlock_kernel();
 +
        mark_rodata_ro();
 +
        system_state = SYSTEM_RUNNING;
 +
        numa_default_policy();
 +
 +
        if (sys_open((const char __user *) "/dev/console", O_RDWR, 0) < 0)
 +
                printk(KERN_WARNING "Warning: unable to open an initial console.\n");
 +
 +
        (void) sys_dup(0);
 +
        (void) sys_dup(0);
 +
 +
        current->signal->flags |= SIGNAL_UNKILLABLE;
 +
 +
        if (ramdisk_execute_command) {
 +
                run_init_process(ramdisk_execute_command);
 +
                printk(KERN_WARNING "Failed to execute %s\n",
 +
                                ramdisk_execute_command);
 +
        }
 +
 +
        /*
 +
        * We try each of these until one succeeds.
 +
        *
 +
        * The Bourne shell can be used instead of init if we are
 +
        * trying to recover a really broken machine.
 +
        */
 +
        if (execute_command) {
 +
                run_init_process(execute_command);
 +
                printk(KERN_WARNING "Failed to execute %s.  Attempting "
 +
                                        "defaults...\n", execute_command);
 +
        }
 +
 +
...
 +
        run_init_process("/sbin/init");
 +
        run_init_process("/etc/init");
 +
        run_init_process("/bin/init");
 +
        run_init_process("/bin/sh");
 +
 +
        panic("No init found.  Try passing init= option to kernel.");
 +
}
 +
</pre>
 +
|}
 +
 +
== Chapter 6 ==
 +
 +
== Chapter 8 ==
  
 
[[Category:ECE597]]
 
[[Category:ECE597]]

Latest revision as of 16:30, 13 April 2010

I am majoring in computer engineering and pursuing a certificate in optical communications. I am currently enrolled in ECE597, hoping to explore the applications of Linux in an embedded environment as well as the necessary considerations that must be made in developing for such an environment. I have a keen interest and a great deal of experience with Linux and am a member of the Rose-Hulman Linux Users' Group.

I am currently working on a script to automate the bitbake process with multiple cores. This is a copy of the script in its current form. Please note that it is a work in progress.

#!/bin/sh
# bitbake automation
# J. Cody Collins

START=$(date +%s)

MAXTRIES=15
COUNT=1

export OETREE="${HOME}/oe"

echo "set environment variables"
. ${OETREE}/sourceme.txt 

echo "Go to the OE tree"
cd ${OETREE}/openembedded 

echo "Make sure it's up to date"
git pull --rebase

echo "Start building"
bitbake $1

while [ $? -ne 0 ]; do
	if [ $COUNT -lt $MAXTRIES ]; then
		((COUNT++))
		echo "re-running bitbake -- trial $COUNT"
		# Give the user a chance to kill the task
		sleep 5
		bitbake $1
	else
		echo "Maximum tries exceeded. Exiting..."
		break
	fi
done

END=$(date +%s)
DIFF=$(( $END - $START ))
echo "Build took $DIFF seconds."
echo "Completed after $COUNT attempts."

Listings

Chapter 2

Number Page Caption Listing
2-1 2-6 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 mmc


U-Boot 2009.11-rc1 (Jan 08 2010 - 21:19:52)

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 #1e30000400000000040365fa1400400a
Hit any key to stop autoboot:  0
OMAP3 beagleboard.org #
2-2 2-7 Loading the Linux Kernel
2996196 bytes read
## Booting kernel from Legacy Image at 80300000 ...
   Image Name:   Angstrom/2.6.29/beagleboard
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    2996132 Bytes =  2.9 MB
   Load Address: 80008000
   Entry Point:  80008000
   Verifying Checksum ... OK
   Loading Kernel Image ... OK
OK

Starting kernel ...

Uncompressing Linux.................................................................................................................................................................................................. done, booting the kernel.
[    0.000000] Linux version 2.6.29-omap1 (koen@dominion) (gcc version 4.3.3 (GCC) ) #1 PREEMPT Wed Oct 21 13:11:52 CEST 2009
[    0.000000] CPU: ARMv7 Processor [411fc083] revision 3 (ARMv7), cr=10c5387f
[    0.000000] CPU: VIPT nonaliasing data cache, VIPT nonaliasing instruction cache
[    0.000000] Machine: OMAP3 Beagle Board
[    0.000000] Memory policy: ECC disabled, Data cache writeback
[    0.000000] OMAP3430 ES3.1
[    0.000000] SRAM: Mapped pa 0x40200000 to va 0xd7000000 size: 0x100000
[    0.000000] Reserving 14680064 bytes SDRAM for VRAM
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 65024
[    0.000000] Kernel command line: console=ttyS2,115200n8 root=/dev/mmcblk0p2 rw rootwait
[    0.000000] Clocking rate (Crystal/DPLL/ARM core): 26.0/332/720 MHz
[    0.000000] GPMC revision 5.0
[    0.000000] IRQ: Found an INTC at 0xd8200000 (revision 4.0) with 96 interrupts
[    0.000000] Total of 96 interrupts on 1 active controller
[    0.000000] OMAP34xx GPIO hardware version 2.5
[    0.000000] PID hash table entries: 1024 (order: 10, 4096 bytes)
[    0.000000] OMAP clockevent source: GPTIMER12 at 32768 Hz
[    0.000000] Console: colour dummy device 80x30
[    0.000000] Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)
[    0.000000] Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
[    0.000000] Memory: 128MB 128MB = 256MB total
[    0.000000] Memory: 238848KB available (5632K code, 576K data, 204K init)
[    0.000000] Calibrating delay loop... 740.48 BogoMIPS (lpj=2891776)
[    0.000000] Mount-cache hash table entries: 512
[    0.000000] CPU: Testing write buffer coherency: ok
2-3 2-9 Linux Final Boot Messages
Lease of 192.168.1.108 obtained, lease time 86400
run-parts: /etc/udhcpc.d/00avahi-autoipd exited with code 1
adding dns 192.168.1.1
done.
Starting portmap daemon: portmap.
Unknown HZ value! (75) Assume 100.
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.all.rp_filter = 1
Wed Mar 10 03:00:00 GMT 2010
^MINIT: Entering runlevel: 5^M
Configuring leds:
  beagleboard::usr0: heartbeat
  beagleboard::usr1: mmc0
Starting Dropbear SSH server: dropbear.
Starting advanced power management daemon: No APM support in kernel
(failed.)
Starting Vixie-cron.
Starting system message bus: dbus.
Starting Hardware abstraction layer hald
Starting syslogd/klogd: done
 * Starting Avahi mDNS/DNS-SD Daemon: avahi-daemon
[ ok ]
Starting Connection Manager
Running ntpdate to synchronize clock.
Starting GPE display manager: gpe-dm

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

The Angstrom Distribution beagleboard ttyS2

Angstrom 2009.X-stable beagleboard ttyS2

beagleboard login: root
2-4 2-21 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;
}
2-5 2-22 Hello Output for Host Computer
collinjc@collinjc-eee ~ % ./a.out                                                                                     [1021]
Hello, World! Main is executing at 0x80483e4
This address (0xbfe6b58c) is in our stack frame
This address (0x804a020) is in our bss section
This address (0x804a014) is in our data section
2-5 2-22 Hello Output for Beagle
root@beagleboard:~# ./a.out 
Hello, World! Main is executing at 0x8380
This address (0xbea11cd4) is in our stack frame
This address (0x10670) is in our bss section
This address (0x10668) is in our data section

Chapter 4

Number Page Caption Listing
4-1 4-7 Kernel Build Output
  LD      init/built-in.o
scripts/kconfig/conf -s arch/arm/Kconfig
  CHK     include/linux/version.h
make[1]: `include/asm-arm/mach-types.h' is up to date.
  CHK     include/linux/utsrelease.h
  SYMLINK include/asm -> include/asm-arm
  CC      kernel/bounds.s
  GEN     include/linux/bounds.h
  CC      arch/arm/kernel/asm-offsets.s
  GEN     include/asm/asm-offsets.h
  CALL    scripts/checksyscalls.sh
  CC      scripts/mod/empty.o
  MKELF   scripts/mod/elfconfig.h
  HOSTCC  scripts/mod/file2alias.o
  HOSTCC  scripts/mod/modpost.o
.....output removed.....
  LD      .tmp_vmlinux1
  KSYM    .tmp_kallsyms1.S
  AS      .tmp_kallsyms1.o
  LD      .tmp_vmlinux2
  KSYM    .tmp_kallsyms2.S
  AS      .tmp_kallsyms2.o
  LD      vmlinux
  SYSMAP  System.map
  SYSMAP  .tmp_System.map
  OBJCOPY arch/arm/boot/Image
  Kernel: arch/arm/boot/Image is ready
  AS      arch/arm/boot/compressed/head.o
  GZIP    arch/arm/boot/compressed/piggy.gz
  AS      arch/arm/boot/compressed/piggy.o
  CC      arch/arm/boot/compressed/misc.o
  LD      arch/arm/boot/compressed/vmlinux
  OBJCOPY arch/arm/boot/zImage
  Kernel: arch/arm/boot/zImage is ready
  UIMAGE  arch/arm/boot/uImage
Image Name:   Linux-2.6.29-omap1
Created:      Mon Mar 22 18:48:45 2010
Image Type:   ARM Linux Kernel Image (uncompressed)
Data Size:    2994248 Bytes = 2924.07 kB = 2.86 MB
Load Address: 80008000
Entry Point:  80008000
  Image arch/arm/boot/uImage is ready

4-2 4-9 Link Stage: vmlinux
??
4-3 4-14 Kernel Subdirectory
collinjc@lug linux-omap-2.6.29-r46/git % ls -ls arch/arm/plat-omap/ | grep -v \\.o
total 764K
8.0K -rw-r--r-- 1 collinjc students 8.0K Mar 19 19:48 Kconfig
4.0K -rw-r--r-- 1 collinjc students  824 Mar 15 02:52 Makefile
4.0K -rw-r--r-- 1 collinjc students 2.4K Mar 11 07:46 bootreason.c
 16K -rw-r--r-- 1 collinjc students  15K Mar 11 07:46 clock.c
 12K -rw-r--r-- 1 collinjc students 8.1K Mar 11 07:46 common.c
4.0K -rw-r--r-- 1 collinjc students 1.6K Mar 11 07:46 component-version.c
4.0K -rw-r--r-- 1 collinjc students 4.0K Mar 11 07:46 cpu-omap.c
4.0K -rw-r--r-- 1 collinjc students 2.0K Mar 11 07:46 debug-devices.c
8.0K -rw-r--r-- 1 collinjc students 7.0K Mar 11 07:46 debug-leds.c
 12K -rw-r--r-- 1 collinjc students 9.8K Mar 11 07:46 devices.c
 60K -rwxr-xr-x 1 collinjc students  59K Mar 15 02:51 dma.c
 24K -rw-r--r-- 1 collinjc students  21K Mar 11 07:46 dmtimer.c
 12K -rw-r--r-- 1 collinjc students 9.5K Mar 15 02:51 fb.c
 16K -rw-r--r-- 1 collinjc students  13K Mar 11 07:46 gpio-switch.c
 48K -rw-r--r-- 1 collinjc students  47K Mar 11 07:46 gpio.c
8.0K -rw-r--r-- 1 collinjc students 5.8K Mar 11 07:46 i2c.c
   0 drwxr-xr-x 3 collinjc students   72 Mar 11 07:46 include
4.0K -rw-r--r-- 1 collinjc students 3.7K Mar 11 07:46 io.c
 20K -rw-r--r-- 1 collinjc students  20K Mar 15 02:52 iommu.c
 20K -rw-r--r-- 1 collinjc students  17K Mar 15 03:17 iommu.ko
4.0K -rw-r--r-- 1 collinjc students 1.9K Mar 15 03:16 iommu.mod.c
4.0K -rw-r--r-- 1 collinjc students 2.2K Mar 15 02:52 iopgtable.h
 20K -rw-r--r-- 1 collinjc students  19K Mar 15 02:52 iovmm.c
 16K -rw-r--r-- 1 collinjc students  15K Mar 15 03:17 iovmm.ko
4.0K -rw-r--r-- 1 collinjc students 1.8K Mar 15 03:16 iovmm.mod.c
 12K -rw-r--r-- 1 collinjc students  12K Mar 11 07:46 mailbox.c
 28K -rw-r--r-- 1 collinjc students  26K Mar 11 07:46 mcbsp.c
4.0K -rw-r--r-- 1 collinjc students 2.1K Mar 11 07:46 mux.c
4.0K -rw-r--r-- 1 collinjc students 2.7K Mar 11 07:46 ocpi.c
 12K -rw-r--r-- 1 collinjc students  11K Mar 11 07:46 sram.c
 20K -rw-r--r-- 1 collinjc students  18K Mar 11 07:46 usb.c
 16K -rw-r--r-- 1 collinjc students  14K Mar 15 02:51 vram.c
8.0K -rw-r--r-- 1 collinjc students 6.3K Mar 15 02:51 vrfb.c
4-4 4-17 Snippet from Linux 2.6 .config
1872 #
1873 # USB Input Devices
1874 #
1875 CONFIG_USB_HID=y
1876 # CONFIG_HID_PID is not set
1877 # CONFIG_USB_HIDDEV is not set
1878 
1879 #
1880 # Special HID drivers
1881 #
1882 CONFIG_HID_COMPAT=y
1883 CONFIG_HID_A4TECH=y
1884 CONFIG_HID_APPLE=y
1885 CONFIG_HID_BELKIN=y
1886 CONFIG_HID_CHERRY=y
1887 CONFIG_HID_CHICONY=y
1888 CONFIG_HID_CYPRESS=y
1889 CONFIG_HID_EZKEY=y
1890 CONFIG_HID_GYRATION=y
1891 CONFIG_HID_LOGITECH=y
1892 # CONFIG_LOGITECH_FF is not set
1893 # CONFIG_LOGIRUMBLEPAD2_FF is not set
4-5 4-21 Linux autoconf.h
collinjc@lug linux-omap-2.6.29-r46/git % cat include/linux/autoconf.h| grep CONFIG_USB
#define CONFIG_USB_SISUSBVGA_MODULE 1
#define CONFIG_USB_PHIDGETMOTORCONTROL_MODULE 1
#define CONFIG_USB_MUSB_HDRC 1
#define CONFIG_USB_LEGOTOWER_MODULE 1
#define CONFIG_USB_SERIAL_IR_MODULE 1
#define CONFIG_USB_GSPCA_T613_MODULE 1
#define CONFIG_USB_SERIAL_TI_MODULE 1
#define CONFIG_USB_ETH_RNDIS 1
#define CONFIG_USB_SERIAL_MODULE 1
#define CONFIG_USB_W9968CF_MODULE 1
#define CONFIG_USB_RTL8150 1
#define CONFIG_USB_SERIAL_WHITEHEAT_MODULE 1
#define CONFIG_USB_GADGET_MUSB_HDRC 1
#define CONFIG_USB_KAWETH 1
#define CONFIG_USB_ZERO_HNPTEST 1
#define CONFIG_USB_CXACRU_MODULE 1
#define CONFIG_USB_SERIAL_ARK3116_MODULE 1
#define CONFIG_USB_G_PRINTER_MODULE 1
#define CONFIG_USB_NET_PLUSB 1
#define CONFIG_USB_GPIO_VBUS 1
#define CONFIG_USB_EHCI_TT_NEWSCHED 1
#define CONFIG_USB_ACM_MODULE 1
#define CONFIG_USB_ARCH_HAS_EHCI 1
#define CONFIG_USB_USBNET 1
#define CONFIG_USB_LCD_MODULE 1
#define CONFIG_USB_SERIAL_BELKIN_MODULE 1
#define CONFIG_USB_LED_MODULE 1
#define CONFIG_USB_SERIAL_KEYSPAN_USA49WLC 1
#define CONFIG_USB_HID 1
#define CONFIG_USB_GADGET_VBUS_DRAW 2
#define CONFIG_USB_SERIAL_KOBIL_SCT_MODULE 1
#define CONFIG_USB_OTG_UTILS 1
#define CONFIG_USB_ARCH_HAS_OHCI 1
#define CONFIG_USB_CDC_COMPOSITE_MODULE 1
#define CONFIG_USB_SERIAL_GARMIN_MODULE 1
#define CONFIG_USB_SERIAL_MOS7720_MODULE 1
#define CONFIG_USB_SERIAL_NAVMAN_MODULE 1
#define CONFIG_USB_GSPCA_FINEPIX_MODULE 1
#define CONFIG_USB_ETH_MODULE 1
#define CONFIG_USB_SERIAL_MOS7840_MODULE 1
#define CONFIG_USB_ATM_MODULE 1
#define CONFIG_USB_TMC_MODULE 1
#define CONFIG_USB_MUSB_HDRC_HCD 1
#define CONFIG_USB_SERIAL_OTI6858_MODULE 1
#define CONFIG_USB_WDM_MODULE 1
#define CONFIG_USB_MON 1
#define CONFIG_USB_OTG 1
#define CONFIG_USB_PWC_MODULE 1
#define CONFIG_USB_SERIAL_KEYSPAN_USA19 1
#define CONFIG_USB_SERIAL_KEYSPAN_USA28 1
#define CONFIG_USB_PHIDGETKIT_MODULE 1
#define CONFIG_USB_ET61X251_MODULE 1
#define CONFIG_USB_SERIAL_XIRCOM_MODULE 1
#define CONFIG_USB_SPEEDTOUCH_MODULE 1
#define CONFIG_USB_SISUSBVGA_CON 1
#define CONFIG_USB_NET_NET1080 1
#define CONFIG_USB_SERIAL_OPTION_MODULE 1
#define CONFIG_USB_ZR364XX_MODULE 1
#define CONFIG_USB_NET_MCS7830 1
#define CONFIG_USB_VST_MODULE 1
#define CONFIG_USB_GSPCA_MARS_MODULE 1
#define CONFIG_USB_EHCI_ROOT_HUB_TT 1
#define CONFIG_USB_PHIDGET_MODULE 1
#define CONFIG_USB_CYPRESS_CY7C63_MODULE 1
#define CONFIG_USB_GSPCA_SUNPLUS_MODULE 1
#define CONFIG_USB_GSPCA_OV534_MODULE 1
#define CONFIG_USB_SERIAL_IPW_MODULE 1
#define CONFIG_USB_NET_AX8817X 1
#define CONFIG_USB_GSPCA_OV519_MODULE 1
#define CONFIG_USB_SERIAL_IUU_MODULE 1
#define CONFIG_USB_STV06XX_MODULE 1
#define CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV 1
#define CONFIG_USB_STORAGE 1
#define CONFIG_USB_IDMOUSE_MODULE 1
#define CONFIG_USB_PEGASUS 1
#define CONFIG_USB_SERIAL_SPCP8X5_MODULE 1
#define CONFIG_USB_M5602_MODULE 1
#define CONFIG_USB_CATC 1
#define CONFIG_USB_CYTHERM_MODULE 1
#define CONFIG_USB_SERIAL_GENERIC 1
#define CONFIG_USB_IRDA_MODULE 1
#define CONFIG_USB_S2255_MODULE 1
#define CONFIG_USB_SUSPEND 1
#define CONFIG_USB_XUSBATM_MODULE 1
#define CONFIG_USB_PRINTER_MODULE 1
#define CONFIG_USB_TRANCEVIBRATOR_MODULE 1
#define CONFIG_USB_SERIAL_CYPRESS_M8_MODULE 1
#define CONFIG_USB_SE401_MODULE 1
#define CONFIG_USB_MIDI_GADGET_MODULE 1
#define CONFIG_USB_NET_ZAURUS 1
#define CONFIG_USB_SERIAL_OMNINET_MODULE 1
#define CONFIG_USB_SERIAL_KEYSPAN_MODULE 1
#define CONFIG_USB_GSPCA_PAC207_MODULE 1
#define CONFIG_USB_SERIAL_OPTICON_MODULE 1
#define CONFIG_USB_OV511_MODULE 1
#define CONFIG_USB_SUPPORT 1
#define CONFIG_USB_SERIAL_SAFE_MODULE 1
#define CONFIG_USB_ZERO_MODULE 1
#define CONFIG_USB_TEST_MODULE 1
#define CONFIG_USB_SERIAL_CH341_MODULE 1
#define CONFIG_USB_EMI26_MODULE 1
#define CONFIG_USB_EMI62_MODULE 1
#define CONFIG_USB_SERIAL_HP4X_MODULE 1
#define CONFIG_USB_SERIAL_KEYSPAN_USA19W 1
#define CONFIG_USB_SERIAL_KEYSPAN_USA18X 1
#define CONFIG_USB_SERIAL_KEYSPAN_USA28X 1
#define CONFIG_USB_SERIAL_FUNSOFT_MODULE 1
#define CONFIG_USB_GADGETFS_MODULE 1
#define CONFIG_USB_NET_CDC_SUBSET 1
#define CONFIG_USB_SERIAL_KEYSPAN_USA49W 1
#define CONFIG_USB_EHCI_HCD 1
#define CONFIG_USB_DEVICEFS 1
#define CONFIG_USB_GSPCA_TV8532_MODULE 1
#define CONFIG_USB_SERIAL_IPAQ_MODULE 1
#define CONFIG_USB_GSPCA_CONEX_MODULE 1
#define CONFIG_USB_VIDEO_CLASS_MODULE 1
#define CONFIG_USB_GSPCA_ZC3XX_MODULE 1
#define CONFIG_USB_SERIAL_MCT_U232_MODULE 1
#define CONFIG_USB_KONICAWC_MODULE 1
#define CONFIG_USB_SERIAL_KLSI_MODULE 1
#define CONFIG_USB_SERIAL_AIRCABLE_MODULE 1
#define CONFIG_USB_ALI_M5632 1
#define CONFIG_USB_SERIAL_SIERRAWIRELESS_MODULE 1
#define CONFIG_USB_GSPCA_VC032X_MODULE 1
#define CONFIG_USB_GADGET_SELECTED 1
#define CONFIG_USB_GSPCA_STK014_MODULE 1
#define CONFIG_USB_OXU210HP_HCD 1
#define CONFIG_USB_GSPCA_ETOMS_MODULE 1
#define CONFIG_USB_QUICKCAM_MESSENGER_MODULE 1
#define CONFIG_USB_NET_RNDIS_WLAN 1
#define CONFIG_USB_KC2190 1
#define CONFIG_USB_AN2720 1
#define CONFIG_USB_EPSON2888 1
#define CONFIG_USB_ZC0301_MODULE 1
#define CONFIG_USB_ZD1201 1
#define CONFIG_USB_NET_RNDIS_HOST 1
#define CONFIG_USB_G_SERIAL_MODULE 1
#define CONFIG_USB_GADGET_DEBUG_FS 1
#define CONFIG_USB_GSPCA_PAC7311_MODULE 1
#define CONFIG_USB_SERIAL_KEYSPAN_PDA_MODULE 1
#define CONFIG_USB_GSPCA_MODULE 1
#define CONFIG_USB_VICAM_MODULE 1
#define CONFIG_USB_ARMLINUX 1
#define CONFIG_USB_ATMEL_MODULE 1
#define CONFIG_USB_SERIAL_EDGEPORT_TI_MODULE 1
#define CONFIG_USB_SERIAL_CP2101_MODULE 1
#define CONFIG_USB_SERIAL_SIEMENS_MPI_MODULE 1
#define CONFIG_USB_SERIAL_EDGEPORT_MODULE 1
#define CONFIG_USB_MUSB_SOC 1
#define CONFIG_USB_SERIAL_DIGI_ACCELEPORT_MODULE 1
#define CONFIG_USB_MUSB_OTG 1
#define CONFIG_USB_SERIAL_PL2303_MODULE 1
#define CONFIG_USB_SERIAL_KEYSPAN_USA28XA 1
#define CONFIG_USB_DEVICE_CLASS 1
#define CONFIG_USB_SERIAL_DEBUG_MODULE 1
#define CONFIG_USB_SERIAL_KEYSPAN_USA19QI 1
#define CONFIG_USB_SERIAL_KEYSPAN_USA28XB 1
#define CONFIG_USB_ARCH_HAS_HCD 1
#define CONFIG_USB_SERIAL_KEYSPAN_MPR 1
#define CONFIG_USB_NET_CDCETHER 1
#define CONFIG_USB_EZUSB 1
#define CONFIG_USB_GSPCA_SPCA500_MODULE 1
#define CONFIG_USB_GSPCA_SPCA501_MODULE 1
#define CONFIG_USB_SERIAL_MOTOROLA_MODULE 1
#define CONFIG_USB_BERRY_CHARGE_MODULE 1
#define CONFIG_USB_SERIAL_EMPEG_MODULE 1
#define CONFIG_USB_GSPCA_SPCA505_MODULE 1
#define CONFIG_USB_GSPCA_SPCA506_MODULE 1
#define CONFIG_USB_LD_MODULE 1
#define CONFIG_USB_SERIAL_FTDI_SIO_MODULE 1
#define CONFIG_USB_GSPCA_SPCA561_MODULE 1
#define CONFIG_USB_GSPCA_SPCA508_MODULE 1
#define CONFIG_USB_FILE_STORAGE_MODULE 1
#define CONFIG_USB_PHIDGETSERVO_MODULE 1
#define CONFIG_USB_SERIAL_KEYSPAN_USA19QW 1
#define CONFIG_USB_UEAGLEATM_MODULE 1
#define CONFIG_USB_INVENTRA_DMA 1
#define CONFIG_USB_NET_SMSC95XX 1
#define CONFIG_USB_STV680_MODULE 1
#define CONFIG_USB_GSPCA_SONIXB_MODULE 1
#define CONFIG_USB_STKWEBCAM_MODULE 1
#define CONFIG_USB 1
#define CONFIG_USB_GADGET_DUALSPEED 1
#define CONFIG_USB_FTDI_ELAN_MODULE 1
#define CONFIG_USB_NET_DM9601 1
#define CONFIG_USB_GSPCA_SONIXJ_MODULE 1
#define CONFIG_USB_IBMCAM_MODULE 1
#define CONFIG_USB_GADGET 1
#define CONFIG_USB_SERIAL_CYBERJACK_MODULE 1
#define CONFIG_USB_SN9C102_MODULE 1
#define CONFIG_USB_SERIAL_VISOR_MODULE 1
#define CONFIG_USB_NET_GL620A 1
#define CONFIG_USB_BELKIN 1
4-6 4-22 Makefile Targets
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
  silentoldconfig - Same as oldconfig, but quietly
  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
  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: /home/users/collinjc/oe/angstrom-dev-backup2/work/beagleboard-angstrom-linux-gnueabi/linux-omap-2.6.29-r46/git/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
  installmandocs  - install man pages generated by mandocs
  mandocs         - man pages
  pdfdocs         - PDF
  psdocs          - Postscript
  xmldocs         - XML DocBook

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

  afeb9260_defconfig       - Build for afeb9260
  am200epdkit_defconfig    - Build for am200epdkit
  ams_delta_defconfig      - Build for ams_delta
  assabet_defconfig        - Build for assabet
  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
  cam60_defconfig          - Build for cam60
  carmeva_defconfig        - Build for carmeva
  cerfcube_defconfig       - Build for cerfcube
  cm_x300_defconfig        - Build for cm_x300
  colibri_defconfig        - Build for colibri
  collie_defconfig         - Build for collie
  corgi_defconfig          - Build for corgi
  csb337_defconfig         - Build for csb337
  csb637_defconfig         - Build for csb637
  dss_omap3_beagle_defconfig - Build for dss_omap3_beagle
  dss_omap_3430sdp_defconfig - Build for dss_omap_3430sdp
  dss_overo_defconfig      - Build for dss_overo
  ebsa110_defconfig        - Build for ebsa110
  ecbat91_defconfig        - Build for ecbat91
  edb7211_defconfig        - Build for edb7211
  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
  imx27ads_defconfig       - Build for imx27ads
  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
  littleton_defconfig      - Build for littleton
  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
  msm_defconfig            - Build for msm
  mv78xx0_defconfig        - Build for mv78xx0
  mx1ads_defconfig         - Build for mx1ads
  mx31ads_defconfig        - Build for mx31ads
  mx31litekit_defconfig    - Build for mx31litekit
  mx31moboard_defconfig    - Build for mx31moboard
  mx31pdk_defconfig        - Build for mx31pdk
  n770_defconfig           - Build for n770
  n800_defconfig           - Build for n800
  neocore926_defconfig     - Build for neocore926
  neponset_defconfig       - Build for neponset
  netwinder_defconfig      - Build for netwinder
  netx_defconfig           - Build for netx
  ns9xxx_defconfig         - Build for ns9xxx
  omap2_evm_defconfig      - Build for omap2_evm
  omap3_beagle_defconfig   - Build for omap3_beagle
  omap3_evm_defconfig      - Build for omap3_evm
  omap3_pandora_defconfig  - Build for omap3_pandora
  omap_2430sdp_defconfig   - Build for omap_2430sdp
  omap_3430sdp_defconfig   - Build for omap_3430sdp
  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_h3_1710_defconfig   - Build for omap_h3_1710
  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
  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
  pcm037_defconfig         - Build for pcm037
  pcm038_defconfig         - Build for pcm038
  picotux200_defconfig     - Build for picotux200
  pleb_defconfig           - Build for pleb
  pnx4008_defconfig        - Build for pnx4008
  pxa255-idp_defconfig     - Build for pxa255-idp
  qil-a9260_defconfig      - Build for qil-a9260
  realview-smp_defconfig   - Build for realview-smp
  realview_defconfig       - Build for realview
  rpc_defconfig            - Build for rpc
  rx51_defconfig           - Build for rx51
  s3c2410_defconfig        - Build for s3c2410
  s3c6400_defconfig        - Build for s3c6400
  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
  sx1_defconfig            - Build for sx1
  tct_hammer_defconfig     - Build for tct_hammer
  trizeps4_defconfig       - Build for trizeps4
  usb-a9260_defconfig      - Build for usb-a9260
  usb-a9263_defconfig      - Build for usb-a9263
  versatile_defconfig      - Build for versatile
  viper_defconfig          - Build for viper
  w90p910_defconfig        - Build for w90p910
  xm_x2xx_defconfig        - Build for xm_x2xx
  yl9200_defconfig         - Build for yl9200
  zylonite_defconfig       - Build for zylonite

  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-7 4-27 Partial Listing of Kconfig for ARM Architecture

4-8 4-30 Snippet from .../arch/arm/Kconfig
 183 config VECTORS_BASE
 184         hex
 185         default 0xffff0000 if MMU || CPU_HIGH_VECTOR
 186         default DRAM_BASE if REMAP_VECTORS_TO_RAM
 187         default 0x00000000
 188         help
 189           The base address of exception vectors.
 190 
 191 source "init/Kconfig"
 192 
 193 source "kernel/Kconfig.freezer"
 194 
 195 menu "System Type"
 196 
 197 choice
 198         prompt "ARM system type"
 199         default ARCH_VERSATILE
 200 
 201 config ARCH_AAEC2000
 202         bool "Agilent AAEC-2000 based"
 203         select CPU_ARM920T
 204         select ARM_AMBA
 205         select HAVE_CLK
 206         help
 207           This enables support for systems based on the Agilent AAEC-2000
 208 
 209 config ARCH_INTEGRATOR
 210         bool "ARM Ltd. Integrator family"
 211         select ARM_AMBA                                                                                 
 212         select HAVE_CLK                                                                                 
 213         select COMMON_CLKDEV                                                                            
 214         select ICST525
 215         help
 216           Support for ARM's Integrator platform.
4-9 4-30 Snippet from .../arch/arm/plat-omap/Kconfig
....
config OMAP_BOOT_REASON
        bool "Support for boot reason"
        depends on OMAP_BOOT_TAG
        default n
        help
          Say Y, if you want to have a procfs entry for reading the boot
          reason in user-space.

config OMAP_COMPONENT_VERSION
        bool "Support for component version display"
        depends on OMAP_BOOT_TAG && PROC_FS
        default n
        help
          Say Y, if you want to have a procfs entry for reading component
          versions (supplied by the bootloader) in user-space.

config OMAP_GPIO_SWITCH
        bool "GPIO switch support"
        default n
        help
          Say Y, if you want to have support for reporting of GPIO
          switches (e.g. cover switches) via sysfs. Your bootloader has
          to provide information about the switches to the kernel via the
          ATAG_BOARD mechanism if they're not defined by the board config.

config OMAP_MUX
        bool "OMAP multiplexing support"
        depends on ARCH_OMAP
        default y
        help
          Pin multiplexing support for OMAP boards. If your bootloader
          sets the multiplexing correctly, say N. Otherwise, or if unsure,
          say Y.

config OMAP_MUX_DEBUG
        bool "Multiplexing debug output"
        depends on OMAP_MUX
        help
          Makes the multiplexing functions print out a lot of debug info.
          This is useful if you want to find out the correct values of the
....
4-10 4-32 Customized .config File Snippet
#
# OMAP Feature Selections
#
# CONFIG_OMAP_DEBUG_POWERDOMAIN is not set
# CONFIG_OMAP_DEBUG_CLOCKDOMAIN is not set
# CONFIG_OMAP_SMARTREFLEX is not set
CONFIG_OMAP_RESET_CLOCKS=y
CONFIG_OMAP_BOOT_TAG=y
CONFIG_OMAP_BOOT_REASON=y
# CONFIG_OMAP_COMPONENT_VERSION is not set
CONFIG_OMAP_GPIO_SWITCH=y
# CONFIG_OMAP_GPIO_SWITCH_2 is not set
# CONFIG_OMAP_MUX is not set
CONFIG_OMAP_MCBSP=y
# CONFIG_OMAP_MBOX_FWK is not set
CONFIG_OMAP_IOMMU=m
# CONFIG_OMAP_MPU_TIMER is not set
CONFIG_OMAP_32K_TIMER=y
CONFIG_OMAP_32K_TIMER_HZ=128
CONFIG_OMAP_TICK_GPTIMER=12
CONFIG_OMAP_DM_TIMER=y
# CONFIG_OMAP_LL_DEBUG_UART1 is not set
# CONFIG_OMAP_LL_DEBUG_UART2 is not set
CONFIG_OMAP_LL_DEBUG_UART3=y
CONFIG_ARCH_OMAP34XX=y
CONFIG_ARCH_OMAP3430=y
4-11 4-33 Makefile from .../arch/arm/plat-omap/ Kernel Subdirectory
#
# Makefile for the linux kernel.
#

# Common support
obj-y := common.o sram.o clock.o devices.o dma.o mux.o gpio.o \
         usb.o fb.o vram.o vrfb.o io.o
obj-m :=
obj-n :=
obj-  :=

# OCPI interconnect support for 1710, 1610 and 5912
obj-$(CONFIG_ARCH_OMAP16XX) += ocpi.o

obj-$(CONFIG_OMAP_MCBSP) += mcbsp.o
obj-$(CONFIG_OMAP_IOMMU) += iommu.o iovmm.o

obj-$(CONFIG_CPU_FREQ) += cpu-omap.o
obj-$(CONFIG_OMAP_DM_TIMER) += dmtimer.o
obj-$(CONFIG_OMAP_BOOT_REASON) += bootreason.o
obj-$(CONFIG_OMAP_COMPONENT_VERSION) += component-version.o
obj-$(CONFIG_OMAP_GPIO_SWITCH) += gpio-switch.o
obj-$(CONFIG_OMAP_DEBUG_DEVICES) += debug-devices.o
obj-$(CONFIG_OMAP_DEBUG_LEDS) += debug-leds.o
i2c-omap-$(CONFIG_I2C_OMAP) := i2c.o
obj-y += $(i2c-omap-m) $(i2c-omap-y)

# OMAP mailbox framework
obj-$(CONFIG_OMAP_MBOX_FWK) += mailbox.o

Chapter 5

Number Page Caption Listing
5-1 5-2 Final Kernel Build Sequence: ARM/BeagleBoard
$ export OETREE="${HOME}/oe"
$ PATH=${OETREE}/angstrom-dev/staging/i686-linux/usr/bin/:${PATH}
$ PATH=${OETREE}/angstrom-dev/cross/armv7a/bin/:${PATH}
$ make CROSS_CO  UPD     include/linux/compile.h

....

  CC      init/version.o
  LD      init/built-in.o
  LD      .tmp_vmlinux1
  KSYM    .tmp_kallsyms1.S
  AS      .tmp_kallsyms1.o
  LD      .tmp_vmlinux2
  KSYM    .tmp_kallsyms2.S
  AS      .tmp_kallsyms2.o
  LD      vmlinux
  SYSMAP  System.map
  SYSMAP  .tmp_System.map
  OBJCOPY arch/arm/boot/Image
  Kernel: arch/arm/boot/Image is ready
  AS      arch/arm/boot/compressed/head.o
  GZIP    arch/arm/boot/compressed/piggy.gz
  AS      arch/arm/boot/compressed/piggy.o
  CC      arch/arm/boot/compressed/misc.o
  LD      arch/arm/boot/compressed/vmlinux
  OBJCOPY arch/arm/boot/zImage
  Kernel: arch/arm/boot/zImage is ready
  UIMAGE  arch/arm/boot/uImage
Image Name:   Linux-2.6.29-omap1
Created:      Fri Apr  2 00:21:21 2010
Image Type:   ARM Linux Kernel Image (uncompressed)
Data Size:    2991252 Bytes = 2921.14 kB = 2.85 MB
Load Address: 80008000
Entry Point:  80008000
  Image arch/arm/boot/uImage is readyMPILE=arm-angstrom-linux-gnueabi- uImage

5-2 5-5 Assembly File .../arch/arm/boot/compressed/piggy.S
        .section .piggydata,#alloc
        .globl  input_data
input_data:
        .incbin "arch/arm/boot/compressed/piggy.gz"
        .globl  input_data_end
input_data_end:
5-3 5-7 Final Kernel Build Sequence: ARM/BeagleBoard
Reading boot sector
Loading u-boot.bin from mmc


U-Boot 2009.11-rc1 (Jan 08 2010 - 21:19:52)

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 #1e30000400000000040365fa1400400a
Hit any key to stop autoboot: 10 ��� 9 ��� 8 ��� 7 ��� 6 ��� 5 ��� 4 ��� 3 ��� 2 ��� 1 ��� 0 
mmc1 is available
reading uImage

2996196 bytes read
## Booting kernel from Legacy Image at 80300000 ...
   Image Name:   Angstrom/2.6.29/beagleboard
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    2996132 Bytes =  2.9 MB
   Load Address: 80008000
   Entry Point:  80008000
   Verifying Checksum ... OK
   Loading Kernel Image ... OK
OK

Starting kernel ...

Uncompressing Linux.................................................................................................................................................................................................. done, booting the kernel.
[    0.000000] Linux version 2.6.29-omap1 (koen@dominion) (gcc version 4.3.3 (GCC) ) #1 PREEMPT Wed Oct 21 13:11:52 CEST 2009
[    0.000000] CPU: ARMv7 Processor [411fc083] revision 3 (ARMv7), cr=10c5387f
[    0.000000] CPU: VIPT nonaliasing data cache, VIPT nonaliasing instruction cache
[    0.000000] Machine: OMAP3 Beagle Board
[    0.000000] Memory policy: ECC disabled, Data cache writeback
[    0.000000] OMAP3430 ES3.1
[    0.000000] SRAM: Mapped pa 0x40200000 to va 0xd7000000 size: 0x100000
[    0.000000] Reserving 14680064 bytes SDRAM for VRAM
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 65024
[    0.000000] Kernel command line: console=ttyS2,115200n8 root=/dev/mmcblk0p2 rw rootwait
[    0.000000] Clocking rate (Crystal/DPLL/ARM core): 26.0/332/720 MHz
[    0.000000] GPMC revision 5.0
[    0.000000] IRQ: Found an INTC at 0xd8200000 (revision 4.0) with 96 interrupts
[    0.000000] Total of 96 interrupts on 1 active controller
[    0.000000] OMAP34xx GPIO hardware version 2.5
[    0.000000] PID hash table entries: 1024 (order: 10, 4096 bytes)
[    0.000000] OMAP clockevent source: GPTIMER12 at 32768 Hz
[    0.000000] Console: colour dummy device 80x30
[    0.000000] Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)
[    0.000000] Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
[    0.000000] Memory: 128MB 128MB = 256MB total
[    0.000000] Memory: 238848KB available (5632K code, 576K data, 204K init)
[    0.000000] Calibrating delay loop... 740.48 BogoMIPS (lpj=2891776)
[    0.000000] Mount-cache hash table entries: 512
[    0.000000] CPU: Testing write buffer coherency: ok
[    0.000000] net_namespace: 1036 bytes
[    0.000000] regulator: core version 0.5
[    0.000000] NET: Registered protocol family 16
[    0.000000] GPIO-156 autorequested
[    0.000000] GPIO-159 autorequested
[    0.000000] Found NAND on CS0
[    0.000000] Registering NAND on CS0
[ 3130.761016] OMAP DMA hardware revision 4.0
[ 3130.794372] bio: create slab <bio-0> at 0
[ 3130.854797] OMAP DSS rev 2.0
[ 3130.854888] OMAP DISPC rev 3.0
[ 3130.854919] OMAP VENC rev 2
[ 3130.855041] OMAP DSI rev 1.0
[ 3130.870819] i2c_omap i2c_omap.1: bus 1 rev3.12 at 2600 kHz
[ 3130.874114] twl4030: PIH (irq 7) chaining IRQs 368..375
[ 3130.874145] twl4030: power (irq 373) chaining IRQs 376..383
[ 3130.874603] twl4030: gpio (irq 368) chaining IRQs 384..401
[ 3130.876922] regulator: VMMC1: 1850 <--> 3150 mV normal standby
[ 3130.877655] regulator: VDAC: 1800 mV normal standby
[ 3130.878356] regulator: VUSB1V5: 1500 <--> 0 mV normal standby
[ 3130.879211] regulator: VUSB1V8: 1800 <--> 0 mV normal standby
[ 3130.879913] regulator: VUSB3V1: 3100 <--> 0 mV normal standby
[ 3130.880615] regulator: VPLL2: 1800 mV normal standby
[ 3130.881347] regulator: VMMC2: 2800 <--> 3150 mV normal standby
[ 3130.882049] regulator: VSIM: 1800 <--> 3000 mV normal standby
[ 3130.882202] i2c_omap i2c_omap.2: bus 2 rev3.12 at 400 kHz
[ 3130.894989] i2c_omap i2c_omap.3: bus 3 rev3.12 at 100 kHz
[ 3130.896759] SCSI subsystem initialized
[ 3130.899688] twl4030_usb twl4030_usb: Initialized TWL4030 USB module
[ 3130.900909] usbcore: registered new interface driver usbfs
[ 3130.901367] usbcore: registered new interface driver hub
[ 3130.901702] usbcore: registered new device driver usb
[ 3130.904205] Bluetooth: Core ver 2.14
[ 3130.904632] NET: Registered protocol family 31
[ 3130.904632] Bluetooth: HCI device and connection manager initialized
[ 3130.904663] Bluetooth: HCI socket layer initialized
[ 3130.905242] cfg80211: Using static regulatory domain info
[ 3130.905242] cfg80211: Regulatory domain: US
[ 3130.905273] 	(start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
[ 3130.905273] 	(2402000 KHz - 2472000 KHz @ 40000 KHz), (600 mBi, 2700 mBm)
[ 3130.905303] 	(5170000 KHz - 5190000 KHz @ 40000 KHz), (600 mBi, 2300 mBm)
[ 3130.905303] 	(5190000 KHz - 5210000 KHz @ 40000 KHz), (600 mBi, 2300 mBm)
[ 3130.905334] 	(5210000 KHz - 5230000 KHz @ 40000 KHz), (600 mBi, 2300 mBm)
[ 3130.905334] 	(5230000 KHz - 5330000 KHz @ 40000 KHz), (600 mBi, 2300 mBm)
[ 3130.905364] 	(5735000 KHz - 5835000 KHz @ 40000 KHz), (600 mBi, 3000 mBm)
[ 3130.905364] cfg80211: Calling CRDA for country: US
[ 3130.908111] musb_hdrc: version 6.0, musb-dma, otg (peripheral+host), debug=0
[ 3130.910308] musb_hdrc: USB OTG mode controller at d80ab000 using DMA, IRQ 92
[ 3130.911560] NET: Registered protocol family 2
[ 3130.911804] IP route cache hash table entries: 2048 (order: 1, 8192 bytes)
[ 3130.912292] TCP established hash table entries: 8192 (order: 4, 65536 bytes)
[ 3130.912445] TCP bind hash table entries: 8192 (order: 3, 32768 bytes)
[ 3130.912567] TCP: Hash tables configured (established 8192 bind 8192)
[ 3130.912567] TCP reno registered
[ 3130.912780] NET: Registered protocol family 1
[ 3130.916107] VFS: Disk quotas dquot_6.5.2
[ 3130.916168] Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
[ 3130.916656] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[ 3130.917236] JFFS2 version 2.2. (NAND) (SUMMARY)  © 2001-2006 Red Hat, Inc.
[ 3130.917938] msgmni has been set to 466
[ 3130.921691] alg: No test for stdrng (krng)
[ 3130.921783] io scheduler noop registered
[ 3130.921783] io scheduler anticipatory registered
[ 3130.921813] io scheduler deadline registered
[ 3130.921966] io scheduler cfq registered (default)
[ 3130.941101] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
[ 3130.963867] serial8250.0: ttyS0 at MMIO 0x4806a000 (irq = 72) is a ST16654
[ 3130.985321] serial8250.0: ttyS1 at MMIO 0x4806c000 (irq = 73) is a ST16654
[ 3131.007293] serial8250.0: ttyS2 at MMIO 0x49020000 (irq = 74) is a ST16654
[ 3131.007324] console [ttyS2] enabled
[ 3131.527282] brd: module loaded
[ 3131.535125] loop: module loaded
[ 3131.538909] enc28j60 spi4.0: enc28j60 Ethernet driver 1.01 loaded
[ 3131.547546] enc28j60 spi4.0: enc28j60 chip not found
[ 3131.552612] enc28j60: probe of spi4.0 failed with error -5
[ 3131.558593] usbcore: registered new interface driver catc
[ 3131.564178] catc: v2.8:CATC EL1210A NetMate USB Ethernet driver
[ 3131.570770] usbcore: registered new interface driver kaweth
[ 3131.576416] pegasus: v0.6.14 (2006/09/27), Pegasus/Pegasus II USB Ethernet driver
[ 3131.584228] usbcore: registered new interface driver pegasus
[ 3131.589935] rtl8150: v0.6.2 (2004/08/27):rtl8150 based usb-ethernet driver
[ 3131.597106] usbcore: registered new interface driver rtl8150
[ 3131.603057] usbcore: registered new interface driver asix
[ 3131.608734] usbcore: registered new interface driver cdc_ether
[ 3131.614837] usbcore: registered new interface driver dm9601
[ 3131.620666] usbcore: registered new interface driver smsc95xx
[ 3131.626708] usbcore: registered new interface driver gl620a
[ 3131.632598] usbcore: registered new interface driver net1080
[ 3131.638519] usbcore: registered new interface driver plusb
[ 3131.644256] usbcore: registered new interface driver rndis_host
[ 3131.650482] usbcore: registered new interface driver cdc_subset
[ 3131.656646] usbcore: registered new interface driver zaurus
[ 3131.662536] usbcore: registered new interface driver MOSCHIP usb-ethernet driver
[ 3131.670257] Broadcom 43xx driver loaded [ Features: L, Firmware-ID: FW13 ]
[ 3131.677551] usbcore: registered new interface driver zd1211rw
[ 3131.683532] usbcore: registered new interface driver rtl8187
[ 3131.689514] usbcore: registered new interface driver rndis_wlan
[ 3131.695739] usbcore: registered new interface driver zd1201
[ 3131.701629] usbcore: registered new interface driver usb8xxx
[ 3131.707550] usbcore: registered new interface driver rt2500usb
[ 3131.713714] usbcore: registered new interface driver rt73usb
[ 3131.719665] usbcore: registered new interface driver p54usb
[ 3131.725341] i2c /dev entries driver
[ 3131.730346] Driver 'sd' needs updating - please use bus_type methods
[ 3131.736968] Driver 'sr' needs updating - please use bus_type methods
[ 3131.744293] omap2-nand driver initializing
[ 3131.748718] NAND device: Manufacturer ID: 0x2c, Chip ID: 0xba (Micron NAND 256MiB 1,8V 16-bit)
[ 3131.757751] cmdlinepart partition parsing not available
[ 3131.763061] Creating 5 MTD partitions on "omap2-nand":
[ 3131.768218] 0x000000000000-0x000000080000 : "X-Loader"
[ 3131.775146] 0x000000080000-0x000000260000 : "U-Boot"
[ 3131.782012] 0x000000260000-0x000000280000 : "U-Boot Env"
[ 3131.788452] 0x000000280000-0x000000680000 : "Kernel"
[ 3131.796173] 0x000000680000-0x000010000000 : "File System"
[ 3131.911987] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[ 3131.918853] ehci-omap ehci-omap.0: OMAP-EHCI Host Controller
[ 3131.925384] ehci-omap ehci-omap.0: new USB bus registered, assigned bus number 1
[ 3131.933166] ehci-omap ehci-omap.0: irq 77, io mem 0x48064800
[ 3131.950286] ehci-omap ehci-omap.0: USB 2.0 started, EHCI 1.00
[ 3131.956695] usb usb1: configuration #1 chosen from 1 choice
[ 3131.962738] hub 1-0:1.0: USB hub found
[ 3131.966583] hub 1-0:1.0: 3 ports detected
[ 3131.972351] Initializing USB Mass Storage driver...
[ 3131.977630] usbcore: registered new interface driver usb-storage
[ 3131.983734] USB Mass Storage support registered.
[ 3131.988922] mice: PS/2 mouse device common for all mice
[ 3131.994750] input: gpio-keys as /devices/platform/gpio-keys/input/input0
[ 3132.003601] input: twl4030_pwrbutton as /devices/platform/i2c_omap.1/i2c-adapter/i2c-1/1-0049/twl4030_pwrbutton/input/input1
[ 3132.295349] usb 1-2: new high speed USB device using ehci-omap and address 2
[ 3132.459320] usb 1-2: configuration #1 chosen from 1 choice
[ 3132.465362] hub 1-2:1.0: USB hub found
[ 3132.469390] hub 1-2:1.0: 4 ports detected
[ 3132.763183] usb 1-2.1: new high speed USB device using ehci-omap and address 3
[ 3132.902313] usb 1-2.1: configuration #1 chosen from 1 choice
[ 3133.013031] i2c_omap i2c_omap.2: controller timed out
[ 3133.018157] rtc-ds1307: probe of 2-0068 failed with error -5
[ 3133.025421] OMAP Watchdog Timer Rev 0x31: initial timeout 60 sec
[ 3133.031738] Bluetooth: HCI UART driver ver 2.2
[ 3133.036254] Bluetooth: HCI H4 protocol initialized
[ 3133.041076] Bluetooth: HCI BCSP protocol initialized
[ 3133.046112] Bluetooth: HCILL protocol initialized
[ 3133.050842] Bluetooth: Broadcom Blutonium firmware driver ver 1.2
[ 3133.057281] usbcore: registered new interface driver bcm203x
[ 3133.063018] Bluetooth: Digianswer Bluetooth USB driver ver 0.10
[ 3133.069213] usbcore: registered new interface driver bpa10x
[ 3133.074829] Bluetooth: BlueFRITZ! USB driver ver 1.2
[ 3133.080078] usbcore: registered new interface driver bfusb
[ 3133.085845] Bluetooth: Generic Bluetooth USB driver ver 0.4
[ 3133.091796] usbcore: registered new interface driver btusb
[ 3133.097381] Bluetooth: Generic Bluetooth SDIO driver ver 0.1
[ 3133.104034] mmci-omap-hs mmci-omap-hs.0: Failed to get debounce clock
[ 3133.216308] mmci-omap-hs mmci-omap-hs.1: Failed to get debounce clock
[ 3133.222869] regulator: Unable to get requested regulator: vmmc_aux
[ 3133.231506] Registered led device: beagleboard::usr0
[ 3133.236785] Registered led device: beagleboard::usr1
[ 3133.247497] usbcore: registered new interface driver usbhid
[ 3133.253143] usbhid: v2.6:USB HID core driver
[ 3133.258453] Advanced Linux Sound Architecture Driver Version 1.0.18a.
[ 3133.265960] usbcore: registered new interface driver snd-usb-audio
[ 3133.272521] No device for DAI twl4030
[ 3133.276214] No device for DAI omap-mcbsp-dai-0
[ 3133.280883] No device for DAI omap-mcbsp-dai-1
[ 3133.285339] No device for DAI omap-mcbsp-dai-2
[ 3133.289947] No device for DAI omap-mcbsp-dai-3
[ 3133.294433] No device for DAI omap-mcbsp-dai-4
[ 3133.298919] OMAP3 Beagle SoC init
[ 3133.302642] TWL4030 Audio Codec init 
[ 3133.307403] asoc: twl4030 <-> omap-mcbsp-dai-0 mapping ok
[ 3133.321624] ALSA device list:
[ 3133.324615]   #0: omap3beagle (twl4030)
[ 3133.329040] oprofile: using arm/armv7
[ 3133.332916] TCP cubic registered
[ 3133.336303] NET: Registered protocol family 17
[ 3133.340850] NET: Registered protocol family 15
[ 3133.345367] Bluetooth: L2CAP ver 2.11
[ 3133.349090] Bluetooth: L2CAP socket layer initialized
[ 3133.354156] Bluetooth: SCO (Voice Link) ver 0.6
[ 3133.358764] Bluetooth: SCO socket layer initialized
[ 3133.369445] Bluetooth: RFCOMM socket layer initialized
[ 3133.374755] Bluetooth: RFCOMM TTY layer initialized
[ 3133.379669] Bluetooth: RFCOMM ver 1.10
[ 3133.383453] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[ 3133.388824] Bluetooth: BNEP filters: protocol multicast
[ 3133.394073] Bluetooth: HIDP (Human Interface Emulation) ver 1.2
[ 3133.403198] RPC: Registered udp transport module.
[ 3133.407989] RPC: Registered tcp transport module.
[ 3133.412841] lib80211: common routines for IEEE802.11 drivers
[ 3133.418609] ThumbEE CPU extension supported.
[ 3133.423156] Power Management for TI OMAP3.
[ 3133.433868] Disabling unused clock "sr2_fck"
[ 3133.438262] Disabling unused clock "sr1_fck"
[ 3133.442596] Disabling unused clock "mcbsp_fck"
[ 3133.447052] Disabling unused clock "mcbsp_fck"
[ 3133.451538] Disabling unused clock "mcbsp_fck"
[ 3133.456024] Disabling unused clock "mcbsp_ick"
[ 3133.460510] Disabling unused clock "mcbsp_ick"
[ 3133.464996] Disabling unused clock "mcbsp_ick"
[ 3133.469482] Disabling unused clock "gpt2_ick"
[ 3133.473876] Disabling unused clock "gpt3_ick"
[ 3133.478271] Disabling unused clock "gpt4_ick"
[ 3133.482666] Disabling unused clock "gpt5_ick"
[ 3133.487060] Disabling unused clock "gpt6_ick"
[ 3133.491455] Disabling unused clock "gpt7_ick"
[ 3133.495849] Disabling unused clock "gpt8_ick"
[ 3133.500244] Disabling unused clock "gpt9_ick"
[ 3133.504608] Disabling unused clock "wdt3_ick"
[ 3133.509033] Disabling unused clock "wdt3_fck"
[ 3133.513641] Disabling unused clock "gpio2_dbck"
[ 3133.518188] Disabling unused clock "gpio3_dbck"
[ 3133.522766] Disabling unused clock "gpio4_dbck"
[ 3133.527343] Disabling unused clock "gpio5_dbck"
[ 3133.531921] Disabling unused clock "gpio6_dbck"
[ 3133.536499] Disabling unused clock "gpt9_fck"
[ 3133.540863] Disabling unused clock "gpt8_fck"
[ 3133.545288] Disabling unused clock "gpt7_fck"
[ 3133.549652] Disabling unused clock "gpt6_fck"
[ 3133.554077] Disabling unused clock "gpt5_fck"
[ 3133.558441] Disabling unused clock "gpt4_fck"
[ 3133.562866] Disabling unused clock "gpt3_fck"
[ 3133.567230] Disabling unused clock "gpt2_fck"
[ 3133.571655] Disabling unused clock "gpt1_ick"
[ 3133.576049] Disabling unused clock "wdt1_ick"
[ 3133.580413] Disabling unused clock "wdt2_ick"
[ 3133.584838] Disabling unused clock "wdt2_fck"
[ 3133.589202] Disabling unused clock "gpio1_dbck"
[ 3133.593780] Disabling unused clock "gpt1_fck"
[ 3133.598175] Disabling unused clock "cam_ick"
[ 3133.602508] Disabling unused clock "cam_mclk"
[ 3133.607116] Disabling unused clock "des1_ick"
[ 3133.611511] Disabling unused clock "sha11_ick"
[ 3133.615997] Disabling unused clock "rng_ick"
[ 3133.620300] Disabling unused clock "aes1_ick"
[ 3133.624694] Disabling unused clock "ssi_ick"
[ 3133.628997] Disabling unused clock "mailboxes_ick"
[ 3133.633850] Disabling unused clock "mcbsp_ick"
[ 3133.638336] Disabling unused clock "mcbsp_ick"
[ 3133.642791] Disabling unused clock "gpt10_ick"
[ 3133.647277] Disabling unused clock "gpt11_ick"
[ 3133.651763] Disabling unused clock "hdq_ick"
[ 3133.656066] Disabling unused clock "mspro_ick"
[ 3133.660552] Disabling unused clock "des2_ick"
[ 3133.664947] Disabling unused clock "sha12_ick"
[ 3133.669433] Disabling unused clock "aes2_ick"
[ 3133.673828] Disabling unused clock "icr_ick"
[ 3133.678131] Disabling unused clock "pka_ick"
[ 3133.682434] Disabling unused clock "ssi_ssr_fck"
[ 3133.687103] Disabling unused clock "hdq_fck"
[ 3133.691406] Disabling unused clock "mcbsp_fck"
[ 3133.695892] Disabling unused clock "mcbsp_fck"
[ 3133.700561] Disabling unused clock "mspro_fck"
[ 3133.705047] Disabling unused clock "gpt11_fck"
[ 3133.709533] Disabling unused clock "gpt10_fck"
[ 3133.713989] Disabling unused clock "dpll4_m6x2_ck"
[ 3133.718841] Disabling unused clock "dpll3_m3x2_ck"
[ 3133.723693] Disabling unused clock "sys_clkout1"
[ 3133.728363] VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 1
[ 3133.742828] registered taskstats version 1
[ 3133.764251] Console: switching to colour frame buffer device 80x30
[ 3133.778198] clock: clksel_round_rate_div: dpll4_m4_ck target_rate 48000000
[ 3133.785125] clock: new_div = 9, new_rate = 48000000
[ 3133.795593] drivers/rtc/hctosys.c: unable to open rtc device (rtc0)
[ 3133.887939] mmc0: new high speed SDHC card at address a9ed
[ 3133.894042] mmcblk0: mmc0:a9ed SD08G 7.42 GiB 
[ 3133.898986]  mmcblk0: p1 p2
[ 3134.070312] eth0 (asix): not using net_device_ops yet
[ 3134.076110] eth0: register 'asix' at usb-ehci-omap.0-2.1, ASIX AX88772 USB 2.0 Ethernet, 00:50:b6:06:c3:f3
[ 3134.134582] kjournald starting.  Commit interval 5 seconds
[ 3134.169372] usb 1-2.4: new high speed USB device using ehci-omap and address 4
[ 3134.295684] usb 1-2.4: configuration #1 chosen from 1 choice
[ 3134.301910] hub 1-2.4:1.0: USB hub found
[ 3134.305999] hub 1-2.4:1.0: 4 ports detected
[ 3134.390747] EXT3 FS on mmcblk0p2, internal journal
[ 3134.395599] EXT3-fs: mounted filesystem with ordered data mode.
[ 3134.401641] VFS: Mounted root (ext3 filesystem) on device 179:2.
[ 3134.407836] Freeing init memory: 204K

INIT: version 2.86 booting

Starting udev[ 3140.940948] twl4030_rtc twl4030_rtc: rtc core: registered twl4030_rtc as rtc0
[ 3140.948486] twl4030_rtc twl4030_rtc: Power up reset detected.
[ 3141.017303] twl4030_rtc twl4030_rtc: Enabling TWL4030-RTC.
[ 3141.952758] uncorrectable error : <3>end_request: I/O error, dev mtdblock0, sector 0
[ 3141.960601] Buffer I/O error on device mtdblock0, logical block 0
[ 3142.023376] uncorrectable error : <3>end_request: I/O error, dev mtdblock0, sector 8
[ 3142.031188] Buffer I/O error on device mtdblock0, logical block 1
[ 3142.067901] uncorrectable error : <3>end_request: I/O error, dev mtdblock0, sector 16
[ 3142.075836] Buffer I/O error on device mtdblock0, logical block 2
[ 3142.100311] uncorrectable error : <3>end_request: I/O error, dev mtdblock0, sector 24
[ 3142.108215] Buffer I/O error on device mtdblock0, logical block 3
[ 3142.139556] uncorrectable error : <3>end_request: I/O error, dev mtdblock0, sector 0
[ 3142.162719] Buffer I/O error on device mtdblock0, logical block 0
 and populating dev cache
Remounting root file system...
[ 3147.624511] NET: Registered protocol family 10
[ 3147.699707] NET: Registered protocol family 23
[ 3147.727874] IrCOMM protocol (Dag Brattli)
Unknown HZ value! (70) Assume 100.
ALSA: Restoring mixer settings...
Configuring network interfaces... [ 3149.568145] eth0: link up, 100Mbps, full-duplex, lpa 0x45E1
eth0      no wireless extensions.

udhcpc (v1.13.2) started
run-parts: /etc/udhcpc.d/00avahi-autoipd exited with code 1
Sending discover...
[ 3149.732147] eth0: link up, 100Mbps, full-duplex, lpa 0x45E1
Sending discover...
Sending select for 192.168.1.108...
Lease of 192.168.1.108 obtained, lease time 86400
run-parts: /etc/udhcpc.d/00avahi-autoipd exited with code 1
adding dns 192.168.1.1
done.
Starting portmap daemon: portmap.
Unknown HZ value! (75) Assume 100.
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.all.rp_filter = 1
Wed Mar 10 03:00:00 GMT 2010

INIT: Entering runlevel: 5

Configuring leds:
  beagleboard::usr0: heartbeat
  beagleboard::usr1: mmc0
Starting Dropbear SSH server: dropbear.
Starting advanced power management daemon: No APM support in kernel
(failed.)
Starting Vixie-cron.
Starting system message bus: dbus.
Starting Hardware abstraction layer hald
Starting syslogd/klogd: done
 * Starting Avahi mDNS/DNS-SD Daemon: avahi-daemon
[ ok ]
Starting Connection Manager
Running ntpdate to synchronize clock.
Starting GPE display manager: gpe-dm

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

The Angstrom Distribution beagleboard ttyS2

Angstrom 2009.X-stable beagleboard ttyS2

beagleboard login: root
5-4 5-17 Console Setup Code Snippet from .../kernel/printk.c
 * Set up a list of consoles.  Called from init/main.c
 */
static int __init console_setup(char *str)
{
        char buf[sizeof(console_cmdline[0].name) + 4]; /* 4 for index */
        char *s, *options, *brl_options = NULL;
        int idx;

#ifdef CONFIG_A11Y_BRAILLE_CONSOLE
        if (!memcmp(str, "brl,", 4)) {
                brl_options = "";
                str += 4;
        } else if (!memcmp(str, "brl=", 4)) {
                brl_options = str + 4;
                str = strchr(brl_options, ',');
                if (!str) {
                        printk(KERN_ERR "need port name after brl=\n");
                        return 1;
                }
                *(str++) = 0;
        }
#endif

        /*
         * Decode str into name, index, options.
         */
        if (str[0] >= '0' && str[0] <= '9') {
                strcpy(buf, "ttyS");
                strncpy(buf + 4, str, sizeof(buf) - 5);
        } else {
                strncpy(buf, str, sizeof(buf) - 1);
        }
        buf[sizeof(buf) - 1] = 0;
        if ((options = strchr(str, ',')) != NULL)
                *(options++) = 0;
#ifdef __sparc__
        if (!strcmp(str, "ttya"))
                strcpy(buf, "ttyS0");
        if (!strcmp(str, "ttyb"))
                strcpy(buf, "ttyS1");
#endif
        for (s = buf; *s; s++)
                if ((*s >= '0' && *s <= '9') || *s == ',')
                        break;
        idx = simple_strtoul(s, NULL, 10);
        *s = 0;

        __add_preferred_console(buf, idx, options, brl_options);
        console_set_on_cmdline = 1;
        return 1;
}
__setup("console=", console_setup);
5-5 5-18 Family of __setup Macro Definitions from .../include/linux/init.h
#define __setup_param(str, unique_id, fn, early)                        \
        static char __setup_str_##unique_id[] __initdata __aligned(1) = str; \
        static struct obs_kernel_param __setup_##unique_id      \
                __used __section(.init.setup)                   \
                __attribute__((aligned((sizeof(long)))))        \
                = { __setup_str_##unique_id, fn, early }

#define __setup(str, fn)                                        \
        __setup_param(str, fn, fn, 0)
5-6 5-19 Kernel Command Line Processing
extern struct obs_kernel_param __setup_start[], __setup_end[];

static int __init obsolete_checksetup(char *line)
{
        struct obs_kernel_param *p;
        int had_early_param = 0;

        p = __setup_start;
        do {
                int n = strlen(p->str);
                if (!strncmp(line, p->str, n)) {
                        if (p->early) {
                                /* Already done in parse_early_param?
                                 * (Needs exact match on param part).
                                 * Keep iterating, as we can have early
                                 * params and __setups of same names 8( */
                                if (line[n] == '\0' || line[n] == '=')
                                        had_early_param = 1;
                        } else if (!p->setup_func) {
                                printk(KERN_WARNING "Parameter %s is obsolete,"
                                       " ignored\n", p->str);
                                return 1;
                        } else if (p->setup_func(line + n))
                                return 1;
                }
                p++;
        } while (p < __setup_end);

        return had_early_param;
}
5-7 5-22 Example Initialization Routine - .../arch/arm/kernel/setup.c
static void (*init_machine)(void) __initdata;

static int __init customize_machine(void)
{
        /* customizes platform devices, or adds new ones */
        if (init_machine)
                init_machine();
        return 0;
}
arch_initcall(customize_machine);
5-8 5-22 initcall Family of Macros - .../include/linux/init.h
#define __define_initcall(level,fn,id) \
        static initcall_t __initcall_##fn##id __used \
        __attribute__((__section__(".initcall" level ".init"))) = fn

/*
 * Early initcalls run before initializing SMP.
 *
 * Only for built-in code, not modules.
 */
#define early_initcall(fn)              __define_initcall("early",fn,early)

/*
 * A "pure" initcall has no dependencies on anything else, and purely
 * initializes variables that couldn't be statically initialized.
 *
 * This only exists for built-in code, not for modules.
 */
#define pure_initcall(fn)               __define_initcall("0",fn,0)

#define core_initcall(fn)               __define_initcall("1",fn,1)
#define core_initcall_sync(fn)          __define_initcall("1s",fn,1s)
#define postcore_initcall(fn)           __define_initcall("2",fn,2)
#define postcore_initcall_sync(fn)      __define_initcall("2s",fn,2s)
#define arch_initcall(fn)               __define_initcall("3",fn,3)
#define arch_initcall_sync(fn)          __define_initcall("3s",fn,3s)
#define subsys_initcall(fn)             __define_initcall("4",fn,4)
#define subsys_initcall_sync(fn)        __define_initcall("4s",fn,4s)
#define fs_initcall(fn)                 __define_initcall("5",fn,5)
#define fs_initcall_sync(fn)            __define_initcall("5s",fn,5s)
#define rootfs_initcall(fn)             __define_initcall("rootfs",fn,rootfs)
#define device_initcall(fn)             __define_initcall("6",fn,6)
#define device_initcall_sync(fn)        __define_initcall("6s",fn,6s)
#define late_initcall(fn)               __define_initcall("7",fn,7)
#define late_initcall_sync(fn)          __define_initcall("7s",fn,7s)

#define __initcall(fn) device_initcall(fn)

#define __exitcall(fn) \

5-9 5-24 Creation of Kernel init Thread
static noinline void __init_refok rest_init(void)
        __releases(kernel_lock)
{
        int pid;

        kernel_thread(kernel_init, NULL, CLONE_FS | CLONE_SIGHAND);
        numa_default_policy();
        pid = kernel_thread(kthreadd, NULL, CLONE_FS | CLONE_FILES);
        kthreadd_task = find_task_by_pid_ns(pid, &init_pid_ns);
        unlock_kernel();

        /*
         * The boot idle thread must execute schedule()
         * at least once to get things moving:
         */
        init_idle_bootup_task(current);
        rcu_scheduler_starting();
        preempt_enable_no_resched();
        schedule();
        preempt_disable();

        /* Call into cpu_idle with preempt disabled */
        cpu_idle();
}
5-10 5-25 Initialization via initcalls
extern initcall_t __initcall_start[], __initcall_end[], __early_initcall_end[];

static void __init do_initcalls(void)
{
        initcall_t *call;

        for (call = __early_initcall_end; call < __initcall_end; call++)
                do_one_initcall(*call);

        /* Make sure there is no pending stuff from the initcall sequence */
        flush_scheduled_work();
}
5-11 5-27 Final Boot Steps from main.c
static noinline int init_post(void)
{
        /* need to finish all async __init code before freeing the memory */
        async_synchronize_full();
        free_initmem();
        unlock_kernel();
        mark_rodata_ro();
        system_state = SYSTEM_RUNNING;
        numa_default_policy();

        if (sys_open((const char __user *) "/dev/console", O_RDWR, 0) < 0)
                printk(KERN_WARNING "Warning: unable to open an initial console.\n");

        (void) sys_dup(0);
        (void) sys_dup(0);

        current->signal->flags |= SIGNAL_UNKILLABLE;

        if (ramdisk_execute_command) {
                run_init_process(ramdisk_execute_command);
                printk(KERN_WARNING "Failed to execute %s\n",
                                ramdisk_execute_command);
        }

        /*
         * We try each of these until one succeeds.
         *
         * The Bourne shell can be used instead of init if we are
         * trying to recover a really broken machine.
         */
        if (execute_command) {
                run_init_process(execute_command);
                printk(KERN_WARNING "Failed to execute %s.  Attempting "
                                        "defaults...\n", execute_command);
        }

...
        run_init_process("/sbin/init");
        run_init_process("/etc/init");
        run_init_process("/bin/init");
        run_init_process("/bin/sh");

        panic("No init found.  Try passing init= option to kernel.");
}

Chapter 6

Chapter 8