Booting
From AlwaysInnovating
x-load and u-boot
When the device is turned on, the mlo file (x-loader) on the first partition is read. It loads u-boot which has the following environment variables that are hard-coded since 2010-09.a:
- bootargs: tbr=x quiet console=tty1 omapfb.mode=dvi:1024x600MR-16@60 omapfb.vrfb=1 omapfb.vram=0:8M,1:4M root=/dev/mmcblk0p2 rootdelay=1 rootfstype=ext3"
- bootcmd: mmc init; fatload mmc 0 0x82000000 uImage; bootm 0x82000000"
Read the U-boot environment for more information.
U-boots loads the kernel which does an aufs between squashfs files and the second partition overlay folders. If the power button is not pressed during boot, there is no initramfs and the kernel has been directly patched to create this. Read the kernel patch rootfs-touchbook.patch. If the power button is pressed during boot, the initramfs is launched. The kernel launches the init file on the aufs partition.
Kernel
dmesg after boot should look like this (2011-03.a):
[ 0.000000] Linux version 2.6.32 (gregoire@gregoire-laptop) (gcc version 4.3.3 (GCC) ) #1 PREEMPT Tue Mar 15 12:37:47 PDT 2011 [ 0.000000] CPU: ARMv7 Processor [411fc083] revision 3 (ARMv7), cr=10c53c7f [ 0.000000] CPU: VIPT nonaliasing data cache, VIPT nonaliasing instruction cache [ 0.000000] Machine: OMAP3 touchbook Board [ 0.000000] Memory policy: ECC disabled, Data cache writeback [ 0.000000] On node 0 totalpages: 131072 [ 0.000000] free_area_init_node: node 0, pgdat c093b138, node_mem_map c0a0c000 [ 0.000000] Normal zone: 1024 pages used for memmap [ 0.000000] Normal zone: 0 pages reserved [ 0.000000] Normal zone: 130048 pages, LIFO batch:31 [ 0.000000] OMAP3430/3530 ES3.1 (l2cache iva sgx neon isp ) [ 0.000000] SRAM: Mapped pa 0x40200000 to va 0xfe400000 size: 0x100000 [ 0.000000] Reserving 12582912 bytes SDRAM for VRAM [ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 130048 [ 0.000000] Kernel command line: console=tty1 quiet fastboot mpurate=720 tbr=3 vram=12M omapfb.vram=0:8M,1:4M omapfb.vrfb=1 omapfb.mode=dvi:1024x600MR-16@60 omapdss.def_disp=dvi root=/dev/mmcblk0p2 rw rootfstype=ext3 rootwait [ 0.000000] PID hash table entries: 2048 (order: 1, 8192 bytes) [ 0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes) [ 0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes) [ 0.000000] Memory: 512MB = 512MB total [ 0.000000] Memory: 490752KB available (5376K code, 1076K data, 3640K init, 0K highmem) [ 0.000000] Hierarchical RCU implementation. [ 0.000000] NR_IRQS:402 [ 0.000000] Clocking rate (Crystal/Core/MPU): 26.0/332/500 MHz [ 0.000000] Reprogramming SDRC clock to 332000000 Hz [ 0.000000] GPMC revision 5.0 [ 0.000000] IRQ: Found an INTC at 0xfa200000 (revision 4.0) with 96 interrupts [ 0.000000] Total of 96 interrupts on 1 active controller [ 0.000000] OMAP GPIO hardware version 2.5 [ 0.000000] OMAP clockevent source: GPTIMER12 at 32768 Hz [ 0.000000] Console: colour dummy device 80x30 [ 0.000000] console [tty1] enabled [ 0.000000] Calibrating delay loop... 509.42 BogoMIPS (lpj=1990656) [ 0.000000] Mount-cache hash table entries: 512 [ 0.000000] CPU: Testing write buffer coherency: ok [ 0.000000] tmpfs: No value for mount option 'mode' [ 0.000000] devtmpfs: initialized [ 0.000000] regulator: core version 0.5 [ 0.000000] NET: Registered protocol family 16 [ 0.000000] Touch Book rev. A*/B*/C* [ 0.000000] Found NAND on CS0 [ 0.000000] Registering NAND on CS0 [ 0.000000] Accepting to support 720MHz [ 0.000000] Target VDD1 OPP = 6, VDD2 OPP = 3 [ 20.475128] OMAP DMA hardware revision 4.0 [ 20.483673] bio: create slab <bio-0> at 0 [ 20.485260] SCSI subsystem initialized [ 20.486968] usbcore: registered new interface driver usbfs [ 20.487152] usbcore: registered new interface driver hub [ 20.487365] usbcore: registered new device driver usb [ 20.487823] i2c_omap i2c_omap.1: bus 1 rev3.12 at 2600 kHz [ 20.490875] twl4030: PIH (irq 7) chaining IRQs 368..375 [ 20.490905] twl4030: power (irq 373) chaining IRQs 376..383 [ 20.491333] twl4030: gpio (irq 368) chaining IRQs 384..401 [ 20.492248] regulator: VUSB1V5: 1500 mV normal standby [ 20.492523] regulator: VUSB1V8: 1800 mV normal standby [ 20.492797] regulator: VUSB3V1: 3100 mV normal standby [ 20.494567] twl4030_usb twl4030_usb: Initialized TWL4030 USB module [ 20.495086] regulator: VMMC1: 1850 <--> 3150 mV normal standby [ 20.495361] regulator: VDAC: 1800 mV normal standby [ 20.495697] regulator: VPLL2: 1800 mV normal standby [ 20.496002] regulator: VSIM: 1800 <--> 3000 mV normal standby [ 20.506225] i2c_omap i2c_omap.3: bus 3 rev3.12 at 100 kHz [ 20.507904] Bluetooth: Core ver 2.15 [ 20.508148] NET: Registered protocol family 31 [ 20.508178] Bluetooth: HCI device and connection manager initialized [ 20.508178] Bluetooth: HCI socket layer initialized [ 20.508514] Switching to clocksource 32k_counter [ 20.516845] musb_hdrc: version 6.0, musb-dma, otg (peripheral+host), debug=0 [ 20.519317] musb_hdrc: ConfigData=0xde (UTMI-8, dyn FIFOs, bulk combine (X), bulk split (X), HB-ISO Rx, HB-ISO Tx, SoftConn) [ 20.519348] musb_hdrc: MHDRC RTL version 1.400 [ 20.519378] musb_hdrc: setup fifo_mode 4 [ 20.519409] musb_hdrc: 28/31 max ep, 16384/16384 memory [ 20.519439] musb_hdrc: USB OTG mode controller at fa0ab000 using DMA, IRQ 92 [ 20.520233] NET: Registered protocol family 2 [ 20.520507] IP route cache hash table entries: 4096 (order: 2, 16384 bytes) [ 20.521148] TCP established hash table entries: 16384 (order: 5, 131072 bytes) [ 20.521606] TCP bind hash table entries: 16384 (order: 4, 65536 bytes) [ 20.521881] TCP: Hash tables configured (established 16384 bind 16384) [ 20.521881] TCP reno registered [ 20.521911] UDP hash table entries: 256 (order: 0, 4096 bytes) [ 20.521942] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes) [ 20.522247] NET: Registered protocol family 1 [ 21.222106] ashmem: initialized [ 21.222808] VFS: Disk quotas dquot_6.5.2 [ 21.222900] Dquot-cache hash table entries: 1024 (order 0, 4096 bytes) [ 21.223449] squashfs: version 4.0 (2009/01/31) Phillip Lougher [ 21.224792] JFFS2 version 2.2. (NAND) (SUMMARY) © 2001-2006 Red Hat, Inc. [ 21.225677] fuse init (API version 7.13) [ 21.226654] aufs 2-standalone.tree-32-20100308 [ 21.226684] msgmni has been set to 959 [ 21.231842] alg: No test for stdrng (krng) [ 21.232177] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 253) [ 21.232208] io scheduler noop registered [ 21.232208] io scheduler deadline registered [ 21.232391] io scheduler cfq registered (default) [ 21.290344] OMAP DSS rev 2.0 [ 21.290405] OMAP DISPC rev 3.0 [ 21.290466] OMAP VENC rev 2 [ 21.290771] OMAP DSI rev 1.0 [ 21.467010] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled [ 21.489013] serial8250.0: ttyS0 at MMIO 0x4806a000 (irq = 72) is a ST16654 [ 21.510070] serial8250.1: ttyS1 at MMIO 0x4806c000 (irq = 73) is a ST16654 [ 21.531036] serial8250.2: ttyS2 at MMIO 0x49020000 (irq = 74) is a ST16654 [ 21.539245] brd: module loaded [ 21.543457] loop: module loaded [ 21.546234] omap2-nand driver initializing [ 21.546539] NAND device: Manufacturer ID: 0x20, Chip ID: 0xba (ST Micro NAND 256MiB 1,8V 16-bit) [ 21.549713] cmdlinepart partition parsing not available [ 21.549743] Creating 5 MTD partitions on "omap2-nand": [ 21.549774] 0x000000000000-0x000000080000 : "X-Loader" [ 21.551269] 0x000000080000-0x000000260000 : "U-Boot" [ 21.552886] 0x000000260000-0x000000280000 : "U-Boot Env" [ 21.553771] 0x000000280000-0x000000680000 : "Kernel" [ 21.556457] 0x000000680000-0x000010000000 : "File System" [ 21.664367] usbcore: registered new interface driver cdc_ether [ 21.664489] usbcore: registered new interface driver rndis_host [ 21.665008] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver [ 21.665374] ehci-omap ehci-omap.0: OMAP-EHCI Host Controller [ 21.665802] ehci-omap ehci-omap.0: new USB bus registered, assigned bus number 1 [ 21.666015] ehci-omap ehci-omap.0: irq 77, io mem 0x48064800 [ 21.680755] ehci-omap ehci-omap.0: USB 2.0 started, EHCI 1.00 [ 21.681671] hub 1-0:1.0: USB hub found [ 21.681732] hub 1-0:1.0: 3 ports detected [ 21.712097] Initializing USB Mass Storage driver... [ 21.712280] usbcore: registered new interface driver usb-storage [ 21.712280] USB Mass Storage support registered. [ 21.712310] android init [ 21.712432] f_adb init [ 21.712463] android_register_function adb [ 21.712493] f_mass_storage init [ 21.712493] android_register_function usb_mass_storage [ 21.713012] mice: PS/2 mouse device common for all mice [ 21.713500] input: gpio-keys as /devices/platform/gpio-keys/input/input0 [ 21.714538] ads7846 spi4.0: touchscreen, irq 322 [ 21.715209] input: ADS7846 Touchscreen as /devices/platform/omap2_mcspi.4/spi4.0/input/input1 [ 21.716156] input: Touchscreen Chacha Tablet as /devices/platform/i2c_omap.3/i2c-3/3-0040/input/input2 [ 21.716827] input: Touchscreen Chacha Tablet 2nd-touch as /devices/platform/i2c_omap.3/i2c-3/3-0040/input/input3 [ 21.718048] input: twl4030_pwrbutton as /devices/platform/i2c_omap.1/i2c-1/1-0049/twl4030_pwrbutton/input/input4 [ 21.719421] input: MMA7455L as /devices/virtual/input/input5 [ 21.735351] rtc-ds1307: probe of 3-0068 failed with error -5 [ 21.735809] twl_rtc twl_rtc: rtc core: registered twl_rtc as rtc0 [ 21.736053] twl_rtc twl_rtc: Power up reset detected. [ 21.736450] twl_rtc twl_rtc: Enabling TWL-RTC. [ 21.736907] i2c /dev entries driver [ 21.737945] bq27x00-battery 3-0055: support ver. 1.2.1 enabled [ 21.743560] OMAP Watchdog Timer Rev 0x31: initial timeout 60 sec [ 21.744110] device-mapper: uevent: version 1.0.3 [ 21.745513] device-mapper: ioctl: 4.16.0-ioctl (2009-11-05) initialised: dm-devel@redhat.com [ 21.745635] Bluetooth: HCI UART driver ver 2.2 [ 21.745635] Bluetooth: HCI H4 protocol initialized [ 21.745666] Bluetooth: HCI BCSP protocol initialized [ 21.745666] Bluetooth: HCILL protocol initialized [ 21.745697] Bluetooth: Broadcom Blutonium firmware driver ver 1.2 [ 21.745819] usbcore: registered new interface driver bcm203x [ 21.745849] Bluetooth: Digianswer Bluetooth USB driver ver 0.10 [ 21.745941] usbcore: registered new interface driver bpa10x [ 21.745971] Bluetooth: BlueFRITZ! USB driver ver 1.2 [ 21.746063] usbcore: registered new interface driver bfusb [ 21.746093] Bluetooth: Generic Bluetooth USB driver ver 0.6 [ 21.746215] usbcore: registered new interface driver btusb [ 21.746246] Bluetooth: Generic Bluetooth SDIO driver ver 0.1 [ 21.853088] Registered led device: touchbook::usr0 [ 21.853240] Registered led device: touchbook::usr1 [ 21.854827] usbcore: registered new interface driver usbhid [ 21.854858] usbhid: USB HID core driver [ 21.855560] logger: created 64K log 'log_main' [ 21.855743] logger: created 256K log 'log_events' [ 21.855926] logger: created 64K log 'log_radio' [ 21.856109] logger: created 64K log 'log_system' [ 21.856353] Advanced Linux Sound Architecture Driver Version 1.0.21. [ 21.856903] usbcore: registered new interface driver snd-usb-audio [ 21.933990] No device for DAI omap-mcbsp-dai-0 [ 21.934020] No device for DAI omap-mcbsp-dai-1 [ 21.934020] No device for DAI omap-mcbsp-dai-2 [ 21.934051] No device for DAI omap-mcbsp-dai-3 [ 21.934051] No device for DAI omap-mcbsp-dai-4 [ 21.934082] Touch Book SoC init [ 21.935852] asoc: twl4030 <-> omap-mcbsp-dai-0 mapping ok [ 22.143707] input: omap3touchbook Headset Jack as /devices/platform/soc-audio/sound/card0/input6 [ 22.148498] ALSA device list: [ 22.148498] #0: omap3touchbook (twl4030) [ 22.148773] TCP cubic registered [ 22.148803] NET: Registered protocol family 17 [ 22.148834] NET: Registered protocol family 15 [ 22.148925] Bluetooth: L2CAP ver 2.14 [ 22.148925] Bluetooth: L2CAP socket layer initialized [ 22.148956] Bluetooth: SCO (Voice Link) ver 0.6 [ 22.148986] Bluetooth: SCO socket layer initialized [ 22.149291] Bluetooth: RFCOMM TTY layer initialized [ 22.149322] Bluetooth: RFCOMM socket layer initialized [ 22.149322] Bluetooth: RFCOMM ver 1.11 [ 22.149353] Bluetooth: BNEP (Ethernet Emulation) ver 1.3 [ 22.149353] Bluetooth: BNEP filters: protocol multicast [ 22.149383] Bluetooth: HIDP (Human Interface Emulation) ver 1.2 [ 22.149597] lib80211: common routines for IEEE802.11 drivers [ 22.149627] lib80211_crypt: registered algorithm 'NULL' [ 22.149627] ThumbEE CPU extension supported. [ 22.150634] ------------[ cut here ]------------ [ 22.150665] WARNING: at arch/arm/mach-omap2/dpll.c:439 omap3_noncore_dpll_set_rate+0x228/0x26c() [ 22.150695] Modules linked in: [ 22.150726] [<c039bc58>] (unwind_backtrace+0x0/0xdc) from [<c03c5d84>] (warn_slowpath_common+0x4c/0x80) [ 22.150756] [<c03c5d84>] (warn_slowpath_common+0x4c/0x80) from [<c03a6350>] (omap3_noncore_dpll_set_rate+0x228/0x26c) [ 22.150787] [<c03a6350>] (omap3_noncore_dpll_set_rate+0x228/0x26c) from [<c03a4904>] (omap2_clk_set_rate+0x24/0x34) [ 22.150817] [<c03a4904>] (omap2_clk_set_rate+0x24/0x34) from [<c03ab924>] (clk_set_rate+0x4c/0xb0) [ 22.150848] [<c03ab924>] (clk_set_rate+0x4c/0xb0) from [<c0010e40>] (omap2_clk_set_freq+0x264/0x410) [ 22.150878] [<c0010e40>] (omap2_clk_set_freq+0x264/0x410) from [<c00108a8>] (omap3_sr_init+0x104/0x19c) [ 22.150909] [<c00108a8>] (omap3_sr_init+0x104/0x19c) from [<c0396384>] (do_one_initcall+0x5c/0x1bc) [ 22.150939] [<c0396384>] (do_one_initcall+0x5c/0x1bc) from [<c0008594>] (kernel_init+0xa4/0x128) [ 22.150970] [<c0008594>] (kernel_init+0xa4/0x128) from [<c03979ec>] (kernel_thread_exit+0x0/0x8) [ 22.151000] ---[ end trace 156ec31842625e75 ]--- [ 22.151214] Switched to new clocking rate (Crystal/Core/MPU): 26.0/332/720 MHz [ 22.151245] IVA2 clocking rate: 520 MHz [ 22.337005] SmartReflex driver initialized [ 22.342315] Disabling unused clock "sr2_fck" [ 22.342346] Disabling unused clock "sr1_fck" [ 22.342346] Disabling unused clock "mcbsp_fck" [ 22.342376] Disabling unused clock "mcbsp_fck" [ 22.342376] Disabling unused clock "mcbsp_fck" [ 22.342407] Disabling unused clock "mcbsp_ick" [ 22.342407] Disabling unused clock "mcbsp_ick" [ 22.342437] Disabling unused clock "mcbsp_ick" [ 22.342437] Disabling unused clock "gpt2_ick" [ 22.342468] Disabling unused clock "gpt3_ick" [ 22.342468] Disabling unused clock "gpt4_ick" [ 22.342498] Disabling unused clock "gpt5_ick" [ 22.342498] Disabling unused clock "gpt6_ick" [ 22.342529] Disabling unused clock "gpt7_ick" [ 22.342529] Disabling unused clock "gpt8_ick" [ 22.342559] Disabling unused clock "wdt3_ick" [ 22.342559] Disabling unused clock "wdt3_fck" [ 22.342590] Disabling unused clock "gpio2_dbck" [ 22.342590] Disabling unused clock "gpio3_dbck" [ 22.342590] Disabling unused clock "gpio4_dbck" [ 22.342620] Disabling unused clock "gpio5_dbck" [ 22.342620] Disabling unused clock "gpt8_fck" [ 22.342651] Disabling unused clock "gpt7_fck" [ 22.342651] Disabling unused clock "gpt6_fck" [ 22.342681] Disabling unused clock "gpt5_fck" [ 22.342681] Disabling unused clock "gpt4_fck" [ 22.342712] Disabling unused clock "gpt3_fck" [ 22.342712] Disabling unused clock "gpt2_fck" [ 22.342742] Disabling unused clock "gpt1_ick" [ 22.342742] Disabling unused clock "wdt1_ick" [ 22.342773] Disabling unused clock "gpio1_dbck" [ 22.342773] Disabling unused clock "gpt1_fck" [ 22.342803] Disabling unused clock "cam_ick" [ 22.342834] Disabling unused clock "cam_mclk" [ 22.342864] Disabling unused clock "des1_ick" [ 22.342895] Disabling unused clock "sha11_ick" [ 22.342895] Disabling unused clock "rng_ick" [ 22.342895] Disabling unused clock "aes1_ick" [ 22.342926] Disabling unused clock "ssi_ick" [ 22.342926] Disabling unused clock "mailboxes_ick" [ 22.342956] Disabling unused clock "mcbsp_ick" [ 22.342956] Disabling unused clock "mcbsp_ick" [ 22.342987] Disabling unused clock "gpt10_ick" [ 22.342987] Disabling unused clock "gpt11_ick" [ 22.343017] Disabling unused clock "i2c_ick" [ 22.343017] Disabling unused clock "hdq_ick" [ 22.343048] Disabling unused clock "mspro_ick" [ 22.343048] Disabling unused clock "des2_ick" [ 22.343078] Disabling unused clock "sha12_ick" [ 22.343078] Disabling unused clock "aes2_ick" [ 22.343109] Disabling unused clock "icr_ick" [ 22.343109] Disabling unused clock "pka_ick" [ 22.343139] Disabling unused clock "ssi_ssr_fck" [ 22.343139] Disabling unused clock "hdq_fck" [ 22.343170] Disabling unused clock "mcbsp_fck" [ 22.343170] Disabling unused clock "mcbsp_fck" [ 22.343170] Disabling unused clock "i2c_fck" [ 22.343200] Disabling unused clock "mspro_fck" [ 22.343200] Disabling unused clock "gpt11_fck" [ 22.343231] Disabling unused clock "gpt10_fck" [ 22.343231] Disabling unused clock "sad2d_ick" [ 22.343261] Disabling unused clock "dpll4_m6x2_ck" [ 22.343292] Disabling unused clock "dpll3_m3x2_ck" [ 22.343292] Disabling unused clock "sys_clkout1" [ 22.343841] VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 1 [ 22.344543] registered taskstats version 1 [ 22.345733] fbcvt: Aspect ratio not CVT standard [ 22.345764] fbcvt: 1024x600@60: CVT Name - Not a CVT standard - 0.614 Mega Pixel Image [ 22.345764] [ 22.349670] usb 1-2: new high speed USB device using ehci-omap and address 2 [ 22.438049] Console: switching to colour frame buffer device 128x37 [ 22.447814] regulator_init_complete: incomplete constraints, leaving VDAC on [ 22.448608] twl_rtc twl_rtc: setting system clock to 2000-01-01 00:00:00 UTC (946684800) [ 22.449340] Freeing init memory: 3640K [ 22.502410] hub 1-2:1.0: USB hub found [ 22.502593] hub 1-2:1.0: 7 ports detected [ 22.720092] mmc0: new high speed SDHC card at address 0007 [ 22.727722] mmcblk0: mmc0:0007 SD08G 7.48 GiB [ 22.728118] mmcblk0: p1 p2 p3 [ 22.790496] usb 1-2.1: new low speed USB device using ehci-omap and address 3 [ 22.925415] input: Always Innovating Always Innovating USB Keyboard / Touchpad as /devices/platform/ehci-omap.0/usb1/1-2/1-2.1/1-2.1:1.0/input/input7 [ 22.925842] ai 0003:A110:0002.0001: input: USB HID v1.00 Keyboard [Always Innovating Always Innovating USB Keyboard / Touchpad] on usb-ehci-omap.0-2.1/input0 [ 22.935241] input: Always Innovating Always Innovating USB Keyboard / Touchpad as /devices/platform/ehci-omap.0/usb1/1-2/1-2.1/1-2.1:1.1/input/input8 [ 22.935791] ai 0003:A110:0002.0002: input: USB HID v1.00 Mouse [Always Innovating Always Innovating USB Keyboard / Touchpad] on usb-ehci-omap.0-2.1/input1
