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

From eLinux.org
Jump to: navigation, search
(Chapter 5: Added Listing 5-11)
m (Added |list to Category)
 
(13 intermediate revisions by the same user not shown)
Line 1: Line 1:
[[Category:ECE597]]
+
[[Category:ECE497 |list]]
 +
{{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-27
 
| Final Boot Steps from main.c
 
| <pre>
 
static noinline int init_post(void)
 
{
 
 
 
<... lines trimmed for clarity ...>
 
 
 
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>
 
|}
 

Latest revision as of 13:40, 3 October 2013