Difference between revisions of "EBC Listings for Embedded Linux Primer"

From eLinux.org
Jump to: navigation, search
(Chapter 5: Added lISTING 5-10)
m (Added Header/Footer)
(13 intermediate revisions by the same user not shown)
Line 1: Line 1:
[[Category:ECE597]]
+
[[Category:ECE497]]
 +
{{YoderHead}}
  
 
Here are the listing from the Embedded Linux Primer as done on the Beagle.
 
Here are the listing from the Embedded Linux Primer as done on the Beagle.
  
== Chapter 2 ==
+
* [[ECE497 Listings for Embedded Linux Primer Chapter 2]]
 +
* [[ECE497 Listings for Embedded Linux Primer Chapter 4]]
 +
* [[ECE497 Listings for Embedded Linux Primer Chapter 5]]
 +
* [[ECE497 Listings for Embedded Linux Primer Chapter 6]]
 +
* [[ECE497 Listings for Embedded Linux Primer Chapter 7]]
 +
* [[ECE497 Listings for Embedded Linux Primer Chapter 8]]
  
{|
+
{{YoderFoot}}
! Number
+
! Page
+
! Caption
+
! Listing
+
|-
+
| 2-1
+
| 2-6
+
| Initial Bootloader Serial Output
+
| <pre>
+
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 #5444000400000000040365fa1400e007
+
Hit any key to stop autoboot:  0
+
OMAP3 beagleboard.org #
+
</pre>
+
|-
+
| 2-2
+
| 2-7
+
| Loading the Linux Kernel
+
|
+
|-
+
| 2-3
+
| 2-9
+
| Linux Final Boot Messages
+
| <pre>
+
</pre>
+
|-
+
| 2-4
+
| 2-21
+
| Hello World, Embedded Style
+
| <pre>
+
#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;
+
}
+
</pre>
+
|-
+
| 2-5
+
| 2-22
+
| Hello Output for Host Computer
+
| <pre>
+
</pre>
+
|-
+
| 2-5
+
| 2-22
+
| Hello Output for Beagle
+
| <pre>
+
</pre>
+
|}
+
 
+
== Chapter 4 ==
+
 
+
{|
+
! Number
+
! Page
+
! Caption
+
! Listing
+
|-
+
| 4-1
+
| 4-7
+
| Kernel Build Output
+
| <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_COMPILE=arm-angstrom-linux-gnueabi- uImage
+
  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
+
  CALL    scripts/checksyscalls.sh
+
  CHK    include/linux/compile.h
+
  CC      arch/arm/mach-omap2/io.o
+
  CC      arch/arm/mach-omap2/devices.o
+
      .
+
      .  <lines of output omitted here>
+
      .
+
  LD      vmlinux
+
  SYSMAP  System.map
+
  SYSMAP  .tmp_System.map
+
  OBJCOPY arch/arm/boot/Image
+
  Kernel: arch/arm/boot/Image is ready
+
  GZIP    arch/arm/boot/compressed/piggy.gz
+
  AS      arch/arm/boot/compressed/piggy.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:      Tue Mar  9 12:58:27 2010
+
Image Type:  ARM Linux Kernel Image (uncompressed)
+
Data Size:    2991236 Bytes = 2921.13 kB = 2.85 MB
+
Load Address: 0x80008000
+
Entry Point:  0x80008000
+
  Image arch/arm/boot/uImage is ready
+
</pre>
+
|-
+
| 4-2
+
| 4-9
+
| Link Stage: vmlinux
+
| <pre>
+
</pre>
+
|-
+
| 4-3
+
| 4-15
+
| Kernel Subdirectory
+
| <pre>
+
$ ls -ls arch/arm/plat-omap/ | grep -v \\.o
+
total 776
+
  8 -rw-r--r-- 1 yoder yoder  7933 Mar  9 12:14 Kconfig
+
  8 -rw-r--r-- 1 yoder yoder  7799 Mar  9 12:14 Kconfig.backup
+
  8 -rw-r--r-- 1 yoder yoder  7799 Mar  8 11:28 Kconfig~
+
  4 -rw-r--r-- 1 yoder yoder    824 Mar  8 11:28 Makefile
+
  4 -rw-r--r-- 1 yoder yoder  2404 Mar  8 11:18 bootreason.c
+
16 -rw-r--r-- 1 yoder yoder  15334 Mar  8 11:18 clock.c
+
12 -rw-r--r-- 1 yoder yoder  8210 Mar  8 11:18 common.c
+
  4 -rw-r--r-- 1 yoder yoder  1593 Mar  8 11:18 component-version.c
+
  4 -rw-r--r-- 1 yoder yoder  4053 Mar  8 11:18 cpu-omap.c
+
  4 -rw-r--r-- 1 yoder yoder  1975 Mar  8 11:18 debug-devices.c
+
  8 -rw-r--r-- 1 yoder yoder  7120 Mar  8 11:18 debug-leds.c
+
12 -rw-r--r-- 1 yoder yoder  9975 Mar  8 11:18 devices.c
+
60 -rwxr-xr-x 1 yoder yoder  59827 Mar  8 11:26 dma.c
+
24 -rw-r--r-- 1 yoder yoder  20791 Mar  8 11:18 dmtimer.c
+
12 -rw-r--r-- 1 yoder yoder  9675 Mar  8 11:25 fb.c
+
16 -rw-r--r-- 1 yoder yoder  12815 Mar  8 11:18 gpio-switch.c
+
48 -rw-r--r-- 1 yoder yoder  47671 Mar  8 11:18 gpio.c
+
  8 -rw-r--r-- 1 yoder yoder  5841 Mar  8 11:18 i2c.c
+
  4 drwxr-xr-x 3 yoder yoder  4096 Mar  8 11:18 include
+
  4 -rw-r--r-- 1 yoder yoder  3749 Mar  8 11:18 io.c
+
20 -rw-r--r-- 1 yoder yoder  19782 Mar  8 11:28 iommu.c
+
20 -rw-r--r-- 1 yoder yoder  17214 Mar  8 13:42 iommu.ko
+
  4 -rw-r--r-- 1 yoder yoder  1924 Mar  8 13:40 iommu.mod.c
+
  4 -rw-r--r-- 1 yoder yoder  2152 Mar  8 11:28 iopgtable.h
+
20 -rw-r--r-- 1 yoder yoder  19139 Mar  8 11:28 iovmm.c
+
16 -rw-r--r-- 1 yoder yoder  14686 Mar  8 13:42 iovmm.ko
+
  4 -rw-r--r-- 1 yoder yoder  1764 Mar  8 13:40 iovmm.mod.c
+
12 -rw-r--r-- 1 yoder yoder  12069 Mar  8 11:18 mailbox.c
+
28 -rw-r--r-- 1 yoder yoder  26560 Mar  8 11:18 mcbsp.c
+
  4 -rw-r--r-- 1 yoder yoder  2109 Mar  8 11:18 mux.c
+
  4 -rw-r--r-- 1 yoder yoder  2739 Mar  8 11:18 ocpi.c
+
12 -rw-r--r-- 1 yoder yoder  10915 Mar  8 11:18 sram.c
+
20 -rw-r--r-- 1 yoder yoder  18290 Mar  8 11:18 usb.c
+
16 -rw-r--r-- 1 yoder yoder  13911 Mar  8 11:26 vram.c
+
  8 -rw-r--r-- 1 yoder yoder  6426 Mar  8 11:26 vrfb.c
+
 
+
</pre>
+
|-
+
| 4-4
+
| 4-17
+
| Snippet from Linux 2.6 .config
+
| <pre>
+
...
+
#
+
# USB Input Devices
+
#
+
CONFIG_USB_HID=y
+
# CONFIG_HID_PID is not set
+
# CONFIG_USB_HIDDEV is not set
+
 
+
#
+
# Special HID drivers
+
#
+
CONFIG_HID_COMPAT=y
+
CONFIG_HID_A4TECH=y
+
CONFIG_HID_APPLE=y
+
CONFIG_HID_BELKIN=y
+
CONFIG_HID_CHERRY=y
+
...
+
</pre>
+
|-
+
| 4-5
+
| 4-21
+
| Linux autoconf.h
+
| <pre>
+
#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
+
...
+
</pre>
+
|-
+
| 4-6
+
| 4-22
+
| Makefile Targets
+
| <pre>
+
$ make help
+
Cleaning targets:
+
  clean   - Remove most generated files but keep the config and
+
                    enough build support to build external modules
+
  mrproper   - Remove all generated files + config + various backup files
+
  distclean   - mrproper + remove editor backup and patch files
+
 
+
Configuration targets:
+
  config   - Update current config utilising a line-oriented program
+
  menuconfig   - Update current config utilising a menu based program
+
  xconfig   - Update current config utilising a QT based front-end
+
  gconfig   - Update current config utilising a GTK based front-end
+
  oldconfig   - Update current config utilising a provided .config as base
+
  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/yoder/oe/angstrom-dev/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>
+
...
+
source "init/Kconfig"
+
 
+
source "kernel/Kconfig.freezer"
+
 
+
menu "System Type"
+
 
+
choice
+
prompt "ARM system type"
+
default ARCH_VERSATILE
+
 
+
config ARCH_AAEC2000
+
bool "Agilent AAEC-2000 based"
+
select CPU_ARM920T
+
select ARM_AMBA
+
select HAVE_CLK
+
help
+
  This enables support for systems based on the Agilent AAEC-2000
+
 
+
config ARCH_INTEGRATOR
+
bool "ARM Ltd. Integrator family"
+
...
+
source "arch/arm/plat-omap/Kconfig"
+
</pre>
+
|-
+
| 4-9
+
| 4-30
+
| Snippet from .../arch/arm/plat-omap/Kconfig
+
| <pre>
+
if ARCH_OMAP
+
 
+
menu "TI OMAP Implementations"
+
 
+
config ARCH_OMAP_OTG
+
bool
+
 
+
choice
+
prompt "OMAP System Type"
+
default ARCH_OMAP1
+
 
+
config ARCH_OMAP1
+
bool "TI OMAP1"
+
 
+
config ARCH_OMAP2
+
bool "TI OMAP2"
+
select CPU_V6
+
 
+
config ARCH_OMAP3
+
bool "TI OMAP3"
+
select CPU_V7
+
 
+
endchoice
+
...
+
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.
+
</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_SWITCH2=y
+
# CONFIG_OMAP_MUX is not set
+
CONFIG_OMAP_MCBSP=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_COMPILE=arm-angstrom-linux-gnueabi- uImage
+
... < many build steps omitted for clarity >
+
  LD      vmlinux
+
  SYSMAP  System.map
+
  SYSMAP  .tmp_System.map
+
  OBJCOPY arch/arm/boot/Image
+
  Kernel: arch/arm/boot/Image is ready
+
  GZIP    arch/arm/boot/compressed/piggy.gz
+
  AS      arch/arm/boot/compressed/piggy.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:      Tue Mar  9 12:58:27 2010
+
Image Type:  ARM Linux Kernel Image (uncompressed)
+
Data Size:    2991236 Bytes = 2921.13 kB = 2.85 MB
+
Load Address: 0x80008000
+
Entry Point:  0x80008000
+
  Image arch/arm/boot/uImage is ready
+
</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 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..................................................................................................
+
[    0.000000] Linux version 2.6.29-omap1 (koen@dominion) (gcc version 4.3.3 (GCC) ) #1 PREEMPT Wed Oct 21 13:11:52 9
+
[    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 console=tty0 root=/dev/mmcblk0p2 rw rootfstype=ext3 rootw0
+
[    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] console [tty0] enabled                                                                               
+
[    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... 750.98 BogoMIPS (lpj=2932736)                                             
+
[    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                                                                             
+
[  17.966888] OMAP DMA hardware revision 4.0                                                                       
+
[  18.000305] bio: create slab <bio-0> at 0                                                                       
+
[  18.061981] OMAP DSS rev 2.0                                                                                     
+
[  18.062103] OMAP DISPC rev 3.0                                                                                   
+
[  18.062133] OMAP VENC rev 2                                                                                     
+
[  18.062255] OMAP DSI rev 1.0                                                                                     
+
[  18.078216] i2c_omap i2c_omap.1: bus 1 rev3.12 at 2600 kHz                                                       
+
[  18.081542] twl4030: PIH (irq 7) chaining IRQs 368..375                                                         
+
[  18.081604] twl4030: power (irq 373) chaining IRQs 376..383                                                     
+
[  18.082092] twl4030: gpio (irq 368) chaining IRQs 384..401                                                       
+
[  18.084442] regulator: VMMC1: 1850 <--> 3150 mV normal standby                                                   
+
[  18.085235] regulator: VDAC: 1800 mV normal standby                                                             
+
[  18.085968] regulator: VUSB1V5: 1500 <--> 0 mV normal standby                                                   
+
[  18.086822] regulator: VUSB1V8: 1800 <--> 0 mV normal standby                                                   
+
[  18.087585] regulator: VUSB3V1: 3100 <--> 0 mV normal standby                                                   
+
[  18.088287] regulator: VPLL2: 1800 mV normal standby                                                             
+
[  18.089050] regulator: VMMC2: 2800 <--> 3150 mV normal standby                                                   
+
[  18.089813] regulator: VSIM: 1800 <--> 3000 mV normal standby                                                   
+
[  18.089996] i2c_omap i2c_omap.2: bus 2 rev3.12 at 400 kHz                                                       
+
[  18.102722] i2c_omap i2c_omap.3: bus 3 rev3.12 at 100 kHz                                                       
+
[  18.104492] SCSI subsystem initialized                                                                           
+
[  18.107452] twl4030_usb twl4030_usb: Initialized TWL4030 USB module                                             
+
[  18.108764] usbcore: registered new interface driver usbfs                                                       
+
[  18.109252] usbcore: registered new interface driver hub                                                         
+
[  18.109619] usbcore: registered new device driver usb                                                           
+
[  18.112121] Bluetooth: Core ver 2.14                                                                             
+
[  18.112548] NET: Registered protocol family 31                                                                   
+
[  18.112579] Bluetooth: HCI device and connection manager initialized                                             
+
[  18.112640] Bluetooth: HCI socket layer initialized                                                             
+
[  18.113250] cfg80211: Using static regulatory domain info                                                       
+
[  18.113281] cfg80211: Regulatory domain: US                                                                     
+
[  18.113311]  (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)                                   
+
[  18.113342]  (2402000 KHz - 2472000 KHz @ 40000 KHz), (600 mBi, 2700 mBm)                                       
+
[  18.113403]  (5170000 KHz - 5190000 KHz @ 40000 KHz), (600 mBi, 2300 mBm)                                       
+
[  18.113433]  (5190000 KHz - 5210000 KHz @ 40000 KHz), (600 mBi, 2300 mBm)                                       
+
[  18.113464]  (5210000 KHz - 5230000 KHz @ 40000 KHz), (600 mBi, 2300 mBm)                                       
+
[  18.113494]  (5230000 KHz - 5330000 KHz @ 40000 KHz), (600 mBi, 2300 mBm)                                       
+
[  18.113525]  (5735000 KHz - 5835000 KHz @ 40000 KHz), (600 mBi, 3000 mBm)                                       
+
[  18.113586] cfg80211: Calling CRDA for country: US                                                               
+
[  18.116333] musb_hdrc: version 6.0, musb-dma, otg (peripheral+host), debug=0                                     
+
[  18.118591] musb_hdrc: USB OTG mode controller at d80ab000 using DMA, IRQ 92                                     
+
[  18.119873] NET: Registered protocol family 2                                                                   
+
[  18.120117] IP route cache hash table entries: 2048 (order: 1, 8192 bytes)                                       
+
[  18.120635] TCP established hash table entries: 8192 (order: 4, 65536 bytes)                                     
+
[  18.120849] TCP bind hash table entries: 8192 (order: 3, 32768 bytes)                                           
+
[  18.120971] TCP: Hash tables configured (established 8192 bind 8192)                                             
+
[  18.121002] TCP reno registered                                                                                 
+
[  18.121215] NET: Registered protocol family 1                                                                   
+
[  18.124542] VFS: Disk quotas dquot_6.5.2                                                                         
+
[  18.124664] Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)                                           
+
[  18.125152] squashfs: version 4.0 (2009/01/31) Phillip Lougher                                                   
+
[  18.125762] JFFS2 version 2.2. (NAND) (SUMMARY)  �© 2001-2006 Red Hat, Inc.                                     
+
[  18.126495] msgmni has been set to 466                                                                           
+
[  18.130279] alg: No test for stdrng (krng)                                                                       
+
[  18.130401] io scheduler noop registered                                                                         
+
[  18.130432] io scheduler anticipatory registered                                                                 
+
[  18.130462] io scheduler deadline registered                                                                     
+
[  18.130645] io scheduler cfq registered (default)                                                               
+
[  18.149841] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled                                             
+
[  18.172973] serial8250.0: ttyS0 at MMIO 0x4806a000 (irq = 72) is a ST16654                                       
+
[  18.194763] serial8250.0: ttyS1 at MMIO 0x4806c000 (irq = 73) is a ST16654                                       
+
[  18.217071] serial8250.0: ttyS2 at MMIO 0x49020000 (irq = 74) is a ST16654                                       
+
[  18.217132] console [ttyS2] enabled                                                                             
+
[  18.747802] brd: module loaded                                                                                   
+
[  18.755737] loop: module loaded                                                                                 
+
[  18.759490] enc28j60 spi4.0: enc28j60 Ethernet driver 1.01 loaded                                               
+
[  18.768646] enc28j60 spi4.0: enc28j60 chip not found                                                             
+
[  18.773681] enc28j60: probe of spi4.0 failed with error -5                                                       
+
[  18.779785] usbcore: registered new interface driver catc                                                       
+
[  18.785308] catc: v2.8:CATC EL1210A NetMate USB Ethernet driver                                                 
+
[  18.791564] usbcore: registered new interface driver kaweth                                                     
+
[  18.797180] pegasus: v0.6.14 (2006/09/27), Pegasus/Pegasus II USB Ethernet driver                               
+
[  18.804992] usbcore: registered new interface driver pegasus                                                     
+
[  18.810760] rtl8150: v0.6.2 (2004/08/27):rtl8150 based usb-ethernet driver                                       
+
[  18.817932] usbcore: registered new interface driver rtl8150                                                     
+
[  18.823883] usbcore: registered new interface driver asix                                                       
+
[  18.829559] usbcore: registered new interface driver cdc_ether                                                   
+
[  18.835723] usbcore: registered new interface driver dm9601                                                     
+
[  18.841613] usbcore: registered new interface driver smsc95xx                                                   
+
[  18.847686] usbcore: registered new interface driver gl620a                                                     
+
[  18.853515] usbcore: registered new interface driver net1080                                                     
+
[  18.859497] usbcore: registered new interface driver plusb                                                       
+
[  18.865295] usbcore: registered new interface driver rndis_host                                                 
+
[  18.871520] usbcore: registered new interface driver cdc_subset                                                 
+
[  18.877777] usbcore: registered new interface driver zaurus                                                     
+
[  18.883605] usbcore: registered new interface driver MOSCHIP usb-ethernet driver                                 
+
[  18.891357] Broadcom 43xx driver loaded [ Features: L, Firmware-ID: FW13 ]                                       
+
[  18.898681] usbcore: registered new interface driver zd1211rw                                                   
+
[  18.904754] usbcore: registered new interface driver rtl8187                                                     
+
[  18.910766] usbcore: registered new interface driver rndis_wlan                                                 
+
[  18.916992] usbcore: registered new interface driver zd1201                                                     
+
[  18.922882] usbcore: registered new interface driver usb8xxx                                                     
+
[  18.928894] usbcore: registered new interface driver rt2500usb                                                   
+
[  18.935058] usbcore: registered new interface driver rt73usb                                                     
+
[  18.941070] usbcore: registered new interface driver p54usb                                                     
+
[  18.946685] i2c /dev entries driver                                                                             
+
[  18.951751] Driver 'sd' needs updating - please use bus_type methods                                             
+
[  18.958465] Driver 'sr' needs updating - please use bus_type methods                                             
+
[  18.965759] omap2-nand driver initializing                                                                       
+
[  18.970184] NAND device: Manufacturer ID: 0x2c, Chip ID: 0xba (Micron NAND 256MiB 1,8V 16-bit)                   
+
[  18.979248] cmdlinepart partition parsing not available                                                         
+
[  18.984527] Creating 5 MTD partitions on "omap2-nand":                                                           
+
[  18.989746] 0x000000000000-0x000000080000 : "X-Loader"                                                           
+
[  18.996765] 0x000000080000-0x000000260000 : "U-Boot"                                                             
+
[  19.003692] 0x000000260000-0x000000280000 : "U-Boot Env"                                                         
+
[  19.010192] 0x000000280000-0x000000680000 : "Kernel"                                                             
+
[  19.018005] 0x000000680000-0x000010000000 : "File System"                                                       
+
[  19.135314] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver                                           
+
[  19.142211] ehci-omap ehci-omap.0: OMAP-EHCI Host Controller                                                     
+
[  19.148773] ehci-omap ehci-omap.0: new USB bus registered, assigned bus number 1                                 
+
[  19.156585] ehci-omap ehci-omap.0: irq 77, io mem 0x48064800                                                     
+
[  19.173980] ehci-omap ehci-omap.0: USB 2.0 started, EHCI 1.00                                                   
+
[  19.180419] usb usb1: configuration #1 chosen from 1 choice                                                     
+
[  19.186462] hub 1-0:1.0: USB hub found                                                                           
+
[  19.190368] hub 1-0:1.0: 3 ports detected                                                                       
+
[  19.196166] Initializing USB Mass Storage driver...                                                             
+
[  19.201507] usbcore: registered new interface driver usb-storage                                                 
+
[  19.207611] USB Mass Storage support registered.                                                                 
+
[  19.212829] mice: PS/2 mouse device common for all mice                                                         
+
[  19.218688] input: gpio-keys as /devices/platform/gpio-keys/input/input0                                         
+
[  19.227600] input: twl4030_pwrbutton as /devices/platform/i2c_omap.1/i2c-adapter/i2c-1/1-0049/twl4030_pwrbutton/i1
+
[  19.519744] usb 1-2: new high speed USB device using ehci-omap and address 2                                     
+
[  19.683166] usb 1-2: configuration #1 chosen from 1 choice                                                       
+
[  19.689208] hub 1-2:1.0: USB hub found                                                                           
+
[  19.693237] hub 1-2:1.0: 4 ports detected                                                                       
+
[  19.986877] usb 1-2.2: new high speed USB device using ehci-omap and address 3                                   
+
[  20.126037] usb 1-2.2: configuration #1 chosen from 1 choice                                                     
+
[  20.236846] i2c_omap i2c_omap.2: controller timed out                                                           
+
[  20.242004] rtc-ds1307: probe of 2-0068 failed with error -5                                                     
+
[  20.249267] OMAP Watchdog Timer Rev 0x31: initial timeout 60 sec                                                 
+
[  20.255615] Bluetooth: HCI UART driver ver 2.2                                                                   
+
[  20.260162] Bluetooth: HCI H4 protocol initialized                                                               
+
[  20.264984] Bluetooth: HCI BCSP protocol initialized                                                             
+
[  20.270050] Bluetooth: HCILL protocol initialized                                                               
+
[  20.274810] Bluetooth: Broadcom Blutonium firmware driver ver 1.2                                               
+
[  20.281280] usbcore: registered new interface driver bcm203x                                                     
+
[  20.287048] Bluetooth: Digianswer Bluetooth USB driver ver 0.10                                                 
+
[  20.293273] usbcore: registered new interface driver bpa10x                                                     
+
[  20.298950] Bluetooth: BlueFRITZ! USB driver ver 1.2                                                             
+
[  20.304199] usbcore: registered new interface driver bfusb                                                       
+
[  20.309967] Bluetooth: Generic Bluetooth USB driver ver 0.4                                                     
+
[  20.316009] usbcore: registered new interface driver btusb                                                       
+
[  20.321563] Bluetooth: Generic Bluetooth SDIO driver ver 0.1                                                     
+
[  20.328247] mmci-omap-hs mmci-omap-hs.0: Failed to get debounce clock                                           
+
[  20.440093] mmci-omap-hs mmci-omap-hs.1: Failed to get debounce clock                                           
+
[  20.446685] regulator: Unable to get requested regulator: vmmc_aux                                               
+
[  20.455291] Registered led device: beagleboard::usr0                                                             
+
[  20.460571] Registered led device: beagleboard::usr1                                                             
+
[  20.471374] usbcore: registered new interface driver usbhid                                                     
+
[  20.477020] usbhid: v2.6:USB HID core driver                                                                     
+
[  20.482543] Advanced Linux Sound Architecture Driver Version 1.0.18a.                                           
+
[  20.489898] usbcore: registered new interface driver snd-usb-audio                                               
+
[  20.496551] No device for DAI twl4030                                                                           
+
[  20.500274] No device for DAI omap-mcbsp-dai-0                                                                   
+
[  20.504913] No device for DAI omap-mcbsp-dai-1                                                                   
+
[  20.509399] No device for DAI omap-mcbsp-dai-2                                                                   
+
[  20.513977] No device for DAI omap-mcbsp-dai-3                                                                   
+
[  20.518493] No device for DAI omap-mcbsp-dai-4                                                                   
+
[  20.522979] OMAP3 Beagle SoC init                                                                               
+
[  20.526733] TWL4030 Audio Codec init                                                                             
+
[  20.531555] asoc: twl4030 <-> omap-mcbsp-dai-0 mapping ok                                                       
+
[  20.545837] ALSA device list:                                                                                   
+
[  20.548858]  #0: omap3beagle (twl4030)                                                                         
+
[  20.553192] oprofile: using arm/armv7                                                                           
+
[  20.557220] TCP cubic registered                                                                                 
+
[  20.560485] NET: Registered protocol family 17                                                                   
+
[  20.565032] NET: Registered protocol family 15                                                                   
+
[  20.569580] Bluetooth: L2CAP ver 2.11                                                                           
+
[  20.573303] Bluetooth: L2CAP socket layer initialized                                                           
+
[  20.578430] Bluetooth: SCO (Voice Link) ver 0.6                                                                 
+
[  20.583038] Bluetooth: SCO socket layer initialized                                                             
+
[  20.593780] Bluetooth: RFCOMM socket layer initialized                                                           
+
[  20.599060] Bluetooth: RFCOMM TTY layer initialized                                                             
+
[  20.604095] Bluetooth: RFCOMM ver 1.10                                                                           
+
[  20.607879] Bluetooth: BNEP (Ethernet Emulation) ver 1.3                                                         
+
[  20.613281] Bluetooth: BNEP filters: protocol multicast                                                         
+
[  20.618560] Bluetooth: HIDP (Human Interface Emulation) ver 1.2                                                 
+
[  20.627746] RPC: Registered udp transport module.                                                               
+
[  20.632507] RPC: Registered tcp transport module.                                                               
+
[  20.637634] lib80211: common routines for IEEE802.11 drivers                                                     
+
[  20.643463] ThumbEE CPU extension supported.                                                                     
+
[  20.647766] Power Management for TI OMAP3.                                                                       
+
[  20.658599] Disabling unused clock "sr2_fck"                                                                     
+
[  20.662933] Disabling unused clock "sr1_fck"                                                                     
+
[  20.667266] Disabling unused clock "mcbsp_fck"                                                                   
+
[  20.671783] Disabling unused clock "mcbsp_fck"                                                                   
+
[  20.676300] Disabling unused clock "mcbsp_fck"                                                                   
+
[  20.680786] Disabling unused clock "mcbsp_ick"                                                                   
+
[  20.685302] Disabling unused clock "mcbsp_ick"                                                                   
+
[  20.689788] Disabling unused clock "mcbsp_ick"                                                                   
+
[  20.694274] Disabling unused clock "gpt2_ick"                                                                   
+
[  20.698730] Disabling unused clock "gpt3_ick"                                                                   
+
[  20.703125] Disabling unused clock "gpt4_ick"                                                                   
+
[  20.707550] Disabling unused clock "gpt5_ick"                                                                   
+
[  20.711944] Disabling unused clock "gpt6_ick"                                                                   
+
[  20.716369] Disabling unused clock "gpt7_ick"                                                                   
+
[  20.720794] Disabling unused clock "gpt8_ick"                                                                   
+
[  20.725189] Disabling unused clock "gpt9_ick"                                                                   
+
[  20.729827] Disabling unused clock "wdt3_ick"                                                                   
+
[  20.734222] Disabling unused clock "wdt3_fck"                                                                   
+
[  20.738647] Disabling unused clock "gpio2_dbck"                                                                 
+
[  20.743225] Disabling unused clock "gpio3_dbck"                                                                 
+
[  20.747802] Disabling unused clock "gpio4_dbck"                                                                 
+
[  20.752410] Disabling unused clock "gpio5_dbck"                                                                 
+
[  20.756988] Disabling unused clock "gpio6_dbck"                                                                 
+
[  20.761596] Disabling unused clock "gpt9_fck"                                                                   
+
[  20.765991] Disabling unused clock "gpt8_fck"                                                                   
+
[  20.770416] Disabling unused clock "gpt7_fck"                                                                   
+
[  20.774810] Disabling unused clock "gpt6_fck"                                                                   
+
[  20.779235] Disabling unused clock "gpt5_fck"                                                                   
+
[  20.783660] Disabling unused clock "gpt4_fck"                                                                   
+
[  20.788055] Disabling unused clock "gpt3_fck"                                                                   
+
[  20.792480] Disabling unused clock "gpt2_fck"                                                                   
+
[  20.796875] Disabling unused clock "gpt1_ick"                                                                   
+
[  20.801300] Disabling unused clock "wdt1_ick"                                                                   
+
[  20.805694] Disabling unused clock "wdt2_ick"                                                                   
+
[  20.810119] Disabling unused clock "wdt2_fck"                                                                   
+
[  20.814544] Disabling unused clock "gpio1_dbck"                                                                 
+
[  20.819122] Disabling unused clock "gpt1_fck"                                                                   
+
[  20.823730] Disabling unused clock "cam_ick"                                                                     
+
[  20.828063] Disabling unused clock "cam_mclk"                                                                   
+
[  20.832519] Disabling unused clock "des1_ick"                                                                   
+
[  20.836914] Disabling unused clock "sha11_ick"                                                                   
+
[  20.841430] Disabling unused clock "rng_ick"                                                                     
+
[  20.845764] Disabling unused clock "aes1_ick"                                                                   
+
[  20.850158] Disabling unused clock "ssi_ick"                                                                     
+
[  20.854492] Disabling unused clock "mailboxes_ick"                                                               
+
[  20.859313] Disabling unused clock "mcbsp_ick"                                                                   
+
[  20.863830] Disabling unused clock "mcbsp_ick"                                                                   
+
[  20.868316] Disabling unused clock "gpt10_ick"                                                                   
+
[  20.872833] Disabling unused clock "gpt11_ick"                                                                   
+
[  20.877349] Disabling unused clock "hdq_ick"                                                                     
+
[  20.881652] Disabling unused clock "mspro_ick"                                                                   
+
[  20.886169] Disabling unused clock "des2_ick"                                                                   
+
[  20.890563] Disabling unused clock "sha12_ick"                                                                   
+
[  20.895080] Disabling unused clock "aes2_ick"                                                                   
+
[  20.899475] Disabling unused clock "icr_ick"                                                                     
+
[  20.903808] Disabling unused clock "pka_ick"                                                                     
+
[  20.908111] Disabling unused clock "ssi_ssr_fck"                                                                 
+
[  20.912811] Disabling unused clock "hdq_fck"                                                                     
+
[  20.917327] Disabling unused clock "mcbsp_fck"                                                                   
+
[  20.921813] Disabling unused clock "mcbsp_fck"                                                                   
+
[  20.926330] Disabling unused clock "mspro_fck"                                                                   
+
[  20.930816] Disabling unused clock "gpt11_fck"                                                                   
+
[  20.935333] Disabling unused clock "gpt10_fck"                                                                   
+
[  20.939849] Disabling unused clock "dpll4_m6x2_ck"                                                               
+
[  20.944702] Disabling unused clock "dpll3_m3x2_ck"                                                               
+
[  20.949554] Disabling unused clock "sys_clkout1"                                                                 
+
[  20.954254] VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 1                             
+
[  20.968780] registered taskstats version 1                                                                       
+
[  20.974121] fbcvt: 1024x768@60: CVT Name - .786M3-R                                                             
+
[  21.001678] Console: switching to colour frame buffer device 128x48                                             
+
[  21.019104] clock: clksel_round_rate_div: dpll4_m4_ck target_rate 48000000                                       
+
[  21.026214] clock: new_div = 9, new_rate = 48000000                                                             
+
[  21.034088] drivers/rtc/hctosys.c: unable to open rtc device (rtc0)                                             
+
[  21.056976] mmc0: new high speed SD card at address 1145                                                         
+
[  21.063049] mmcblk0: mmc0:1145 SD02G 1.83 GiB                                                                   
+
[  21.067962]  mmcblk0: p1 p2                                                                                     
+
[  21.294006] eth0 (asix): not using net_device_ops yet                                                           
+
[  21.299926] eth0: register 'asix' at usb-ehci-omap.0-2.2, ASIX AX88772 USB 2.0 Ethernet, 00:50:b6:06:c4:57       
+
[  21.393066] usb 1-2.4: new high speed USB device using ehci-omap and address 4                                   
+
[  21.518951] usb 1-2.4: configuration #1 chosen from 1 choice                                                     
+
[  21.526580] hub 1-2.4:1.0: USB hub found                                                                         
+
[  21.531372] hub 1-2.4:1.0: 4 ports detected                                                                     
+
[  21.823577] usb 1-2.4.1: new low speed USB device using ehci-omap and address 5                                 
+
[  21.953704] usb 1-2.4.1: configuration #1 chosen from 1 choice                                                   
+
[  21.967559] input: Logitech Optical USB Mouse as /devices/platform/ehci-omap.0/usb1/1-2/1-2.4/1-2.4.1/1-2.4.1:1.02
+
[  21.986114] generic-usb 0003:046D:C016.0001: input: USB HID v1.10 Mouse [Logitech Optical USB Mouse] on usb-ehci-0
+
[  22.088409] usb 1-2.4.2: new low speed USB device using ehci-omap and address 6                                 
+
[  22.219512] usb 1-2.4.2: configuration #1 chosen from 1 choice                                                   
+
[  22.235900] input: HID 04f3:0103 as /devices/platform/ehci-omap.0/usb1/1-2/1-2.4/1-2.4.2/1-2.4.2:1.0/input/input3
+
[  22.250885] generic-usb 0003:04F3:0103.0002: input: USB HID v1.10 Keyboard [HID 04f3:0103] on usb-ehci-omap.0-2.40
+
[  22.276123] input: HID 04f3:0103 as /devices/platform/ehci-omap.0/usb1/1-2/1-2.4/1-2.4.2/1-2.4.2:1.1/input/input4
+
[  22.292663] generic-usb 0003:04F3:0103.0003: input: USB HID v1.10 Device [HID 04f3:0103] on usb-ehci-omap.0-2.4.21
+
[  26.784179] kjournald starting.  Commit interval 5 seconds                                                       
+
[  26.829589] EXT3 FS on mmcblk0p2, internal journal                                                               
+
[  26.839569] EXT3-fs: recovery complete.                                                                         
+
[  27.092559] EXT3-fs: mounted filesystem with ordered data mode.                                                 
+
[  27.103057] VFS: Mounted root (ext3 filesystem) on device 179:2.                                                 
+
[  27.113800] Freeing init memory: 204K                                                                           
+
[  34.775878] uncorrectable error : <3>end_request: I/O error, dev mtdblock0, sector 0                             
+
[  34.783721] Buffer I/O error on device mtdblock0, logical block 0                                               
+
[  35.148834] uncorrectable error : <3>end_request: I/O error, dev mtdblock0, sector 8                             
+
[  35.156768] Buffer I/O error on device mtdblock0, logical block 1                                               
+
[  35.267791] uncorrectable error : <3>end_request: I/O error, dev mtdblock0, sector 16                           
+
[  35.275726] Buffer I/O error on device mtdblock0, logical block 2                                               
+
[  35.331329] uncorrectable error : <3>end_request: I/O error, dev mtdblock0, sector 24                           
+
[  35.339263] Buffer I/O error on device mtdblock0, logical block 3                                               
+
[  35.394592] uncorrectable error : <3>end_request: I/O error, dev mtdblock0, sector 0                             
+
[  35.402435] Buffer I/O error on device mtdblock0, logical block 0                                               
+
[  36.684143] FAT: IO charset iso8859-1 not found                                                                 
+
[  39.959899] ipv6: disagrees about version of symbol struct_module                                               
+
[  39.994750] irda: disagrees about version of symbol struct_module                                               
+
[  40.005432] ircomm: disagrees about version of symbol struct_module                                             
+
[  40.017547] ircomm_tty: disagrees about version of symbol struct_module                                         
+
[  41.687622] eth0: link up, 100Mbps, full-duplex, lpa 0xC5E1                                                     
+
[  41.948944] eth0: link up, 100Mbps, full-duplex, lpa 0xC5E1                                                     
+
[  42.976959] ipv6: disagrees about version of symbol struct_module                                               
+
[  43.062438] ipv6: disagrees about version of symbol struct_module                                               
+
[  44.849395] ipv6: disagrees about version of symbol struct_module                                               
+
[  45.715362] ipv6: disagrees about version of symbol struct_module                                               
+
[  45.858184] ipv6: disagrees about version of symbol struct_module                                               
+
[  45.925842] ipv6: disagrees about version of symbol struct_module                                               
+
[  46.094299] ipv6: disagrees about version of symbol struct_module                                               
+
                                                                                                                   
+
.-------.                                                                                                           
+
|      |                  .-.                                                                                     
+
|  |  |-----.-----.-----.| |  .----..-----.-----.                                                               
+
|      |    | __  |  ---'| '--.|  .-'|    |    |                                                               
+
|  |  |  |  |    |---  ||  --'|  |  |  '  | | | |                                                               
+
'---'---'--'--'--.  |-----''----''--'  '-----'-'-'-'                                                               
+
                -'  |                                                                                               
+
                '---'                                                                                               
+
                                                                                                                   
+
The Angstrom Distribution beagleboard ttyS2                                                                         
+
                                                                                                                   
+
Angstrom 2009.X-stable beagleboard ttyS2                                                                           
+
                                                                                                                   
+
beagleboard login:
+
</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;
+
 
+
        ...
+
        <body omitted for clarity...>
+
        ...
+
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>
+
    1 extern struct obs_kernel_param __setup_start[], __setup_end[];
+
    2
+
    3 static int __init obsolete_checksetup(char *line)
+
    4 {
+
    5 struct obs_kernel_param *p;
+
    6 int had_early_param = 0;
+
    7
+
    8 p = __setup_start;
+
    9 do {
+
    10 int n = strlen(p->str);
+
    11 if (!strncmp(line, p->str, n)) {
+
    12 if (p->early) {
+
    13 /* Already done in parse_early_param?
+
    14 * (Needs exact match on param part).
+
    15 * Keep iterating, as we can have early
+
    16 * params and __setups of same names 8( */
+
    17 if (line[n] == '\0' || line[n] == '=')
+
    18 had_early_param = 1;
+
    19 } else if (!p->setup_func) {
+
    20 printk(KERN_WARNING "Parameter %s is obsolete,"
+
    21       " ignored\n", p->str);
+
    22 return 1;
+
    23 } else if (p->setup_func(line + n))
+
    24 return 1;
+
    25 }
+
    26 p++;
+
    27 } while (p < __setup_end);
+
    28
+
    29 return had_early_param;
+
    30 }
+
</pre>
+
|-
+
| 5-7
+
| 5-22
+
| Example Initialization Routine - .../arch/arm/kernel/setup.c
+
| <pre>
+
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)
+
...
+
</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-25
+
| Creation of Kernel init Thread
+
| <pre>
+
 
+
</pre>
+
|}
+

Revision as of 17:54, 28 May 2012

thumb‎ Embedded Linux Class by Mark A. Yoder


Here are the listing from the Embedded Linux Primer as done on the Beagle.




thumb‎ Embedded Linux Class by Mark A. Yoder