aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrancis Rowe <info@gluglug.org.uk>2014-09-03 18:13:00 +0000
committerMichał Masłowski <mtjm@mtjm.eu>2014-09-03 20:22:56 +0200
commit9a321884379a71b5f0986fdfb97a2b6c5bdccd8a (patch)
tree7a89b0126c7572c39b00a133dc3bb43d00349871
parentd2ebc60a339b66fe067ebc244ef31c600d57d541 (diff)
downloadlibrebootfr-9a321884379a71b5f0986fdfb97a2b6c5bdccd8a.tar.gz
librebootfr-9a321884379a71b5f0986fdfb97a2b6c5bdccd8a.zip
Libreboot release 6 beta 6.
- Added modified builddeb* scripts for Parabola GNU/Linux-libre: buildpac, buildpac-flashrom, buildpac-bucts (courtesy of Noah Vesely) - Documentation: updated all relevant areas to mention use of buildpac* scripts for Parabola users. - Documentation: added information showing how to enable or disable bluetooth on the X60 - MacBook1,1 tested! See ../docs/index.html#macbook11" - Documentation: fixed typo in ../docs/index.html#get_edid_panelname (get-edit changed to get-edid) - Documentation: added ../docs/howtos/x60_lcd_change/ (pics only for now) - Added gcry_serpent and gcry_whirlpool to the GRUB module list in the 'build' script (for luks users) - Libreboot is now based on a new coreboot version from August 23rd, 2014: Merged commits (relates to boards that were already supported in libreboot): - http://review.coreboot.org/#/c/6697/ - http://review.coreboot.org/#/c/6698/ (merged already) - http://review.coreboot.org/#/c/6699/ (merged already) - http://review.coreboot.org/#/c/6696/ (merged already) - http://review.coreboot.org/#/c/6695/ (merged already) - http://review.coreboot.org/#/c/5927/ (merged already) - http://review.coreboot.org/#/c/6717/ (merged already) - http://review.coreboot.org/#/c/6718/ (merged already) - http://review.coreboot.org/#/c/6723/ (merged already) (text-mode patch, might enable memtest. macbook21) - http://review.coreboot.org/#/c/6732/ (MERGED) (remove useless ps/2 keyboard delay from macbook21. already merged) - These were also merged in coreboot (relates to boards that libreboot already supported): - http://review.coreboot.org/#/c/5320/ (merged) - http://review.coreboot.org/#/c/5321/ (merged) - http://review.coreboot.org/#/c/5323/ (merged) - http://review.coreboot.org/#/c/6693/ (merged) - http://review.coreboot.org/#/c/6694/ (merged) - http://review.coreboot.org/#/c/5324/ (merged) - Documentation: removed the section about tft_brightness on X60 (new code makes it obsolete) - Removed all patches from resources/libreboot/patch/ and added new patch: 0000_t60_textmode.git.diff - Updated getcb script and DEBLOB script. - Updated configuration files under resources/libreboot/config/ to accomodate new coreboot version. - Removed grub_serial*.cfg and libreboot_serial*.rom, all configs/rom's are now unified (containing same configuration as serial rom's from before). - Documentation: updated ../docs/index.html#rom to reflect the above. - Updated GRUB to new version from August 14th, 2014. - Unified all grub configurations for all machines to a single grub.cfg under resources/grub/config/ - Updated flashrom to new version from August 20th, 2014 - Added getseabios and builddeps-seabios (builddeps and getall were also updated) - Added instructions to 'buildrom-withgrub' to include bios.bin.elf and vgaroms/vgabios.bin from SeaBIOS inside the ROM. - Added seabios (and sgavgabios) to grub as payload option in menu - Disabled serial output in Memtest86+ (no longer needed) to speed up tests. - MemTest86+ now works properly, it can output on the laptop screen (no serial port needed anymore). - Added getgrubinvaders, builddeps-grubinvaders scripts. Added these to getall and builddeps. - Added GRUB Invaders menu entry in resources/grub/config/grub.cfg - Added rules to builddeps-coreboot to build libpayload with TinyCurses. (added appropriate instructions to cleandeps script). - Commented out lines in resources/grub/config/grub.cfg for loading font/background (not useful anymore, now that GRUB is in text-mode). - Commented out lines in buildrom-withgrub that included backgrounds/fonts (not useful anymore, now that GRUB is in text-mode). - Added resources/utilities/i945-pwm/ (from git://git.mtjm.eu/i945-pwm), for debugging acpi brightness on i945 machines. - Added instructions for it in builddeps, builddeps-i945pwm, builddeb and cleandeps - 'build' script: removed the parts that generated sha512sum manifests (not needed, since release tarballs are GPG-signed) - 'build' script: removed the parts that generated libreboot_meta directory (not needed anymore, since _meta will be hosted in git) - Updated ../docs/index.html#build_meta (and other parts of documentation) to accomodate this change. - Documentation: simplified (refactored) the notes in ../docs/index.html#rom - 'build' script: removed the parts that generated libreboot_bin and added them to a new script: 'build-release' - Documentation: ../docs/index.html#build updated to reflect the above. - Removed 'sudo' from builddeb, builddeb-flashrom, powertop.trisquel6 and builddeb-bucts scripts (assuming that the user has it is a really bad idea). - Added all gcry_* modules to grub (luks/cryptomount): gcry_arcfour gcry_camellia gcry_crc gcry_dsa gcry_md4 gcry_rfc2268 gcry_rmd160 gcry_seed gcry_sha1 gcry_sha512 gcry_twofish gcry_blowfish gcry_cast5 gcry_des gcry_idea gcry_md5 gcry_rijndael gcry_rsa gcry_serpent gcry_sha256 gcry_tiger gcry_whirlpool - Added GNUtoo's list of GRUB modules (includes all of the gcry_* modules above), cryptomount should be working now. - Removed builddeb-bucts and builddeb-flashrom, merged them with builddeb (../docs/index.html updated accordingly) - Removed buildpac-bucts and buildpac-flashrom, merged them with buildpac (../docs/index.html updated accordingly) - Renamed builddeb to deps-trisquel (../docs/index.html updated accordingly) - Renamed buildpac to deps-parabola (../docs/index.html updated accordingly) - Documentation: removed all parts talking about build dependencies, replaced them with links to ../docs/index.html#build_dependencies - Documentation: emphasized more strongly on the documentation, the need to re-build bucts and/or flashrom before flashing a ROM image. - build-release: flashrom, nvramtool, cbfstool and bucts are no longer provided pre-compiled in binary archives, and are now in source form only. (to maximize distro compatibility). - Documentation: added ../docs/howtos/encrypted_trisquel.html showing how to setup a fully encrypted Trisquel installation (including /boot) and boot it from the GRUB payload. - 'build' script: replaced grub.elf assembly instructons, it's now handled by a utility added under resources/utilities/grub-assemble - Moved resources/grub/keymap to resources/utilities/grub-assemble/keymap, and updated that utility to use it - Documentation: removed useless links to pictures of keyboard layouts and unmodified layouts. - Removed all unused fonts from dejavu-fonts-ttf-2.34/ directory - 'buildrom-withgrub' script: updated it to create 2 sets of ROM's for each machine: one with text-mode, one with coreboot framebuffer. - Documentation: updated ../docs/index.html#rom to reflect the above - Deleted unused README and COPYING file from main directory - Removed some rm -rf .git* instructions from the get* scripts and moved them to build-release script - Split up default grub.cfg into 6 parts: extra/{common.cfg,txtmode.cfg,vesafb.cfg} and menuentries/{common.cfg,txtmode.cfg,vesafb.cfg} - buildrom-withgrub script uses these to generate the correct grub.cfg for each type of configuration. - grub_memdisk.cfg (used inside grub.elf) now only loads grub.cfg from cbfs. It no longer enables serial output or sets prefix. (menuentries/common.cfg does instead) - resources/grub/config/extra/common.cfg, added: - insmod instructions to load those modules: nativedisk, ehci, ohci, uhci, usb, usbserial_pl2303, usbserial_ftdi, usbserial_usbdebug - set prefix=(memdisk)/boot/grub - For native graphics (recommended by coreboot wiki): - gfxpayload=keep - terminal_output --append gfxterm - Play a beep on startup: - play 480 440 1 - Documentation: added note about 'fb=false' workaround for text-mode debian-installer (Trisquel net install) to ../docs/howtos/grub_boot_installer.html - Documentation: updated ../docs/howtos/grub_cbfs.html to make it safer (and easier) to follow.
-rw-r--r--COPYING11
-rwxr-xr-xDEBLOB4
-rw-r--r--LATER61
-rw-r--r--README1
-rwxr-xr-xbuild185
-rwxr-xr-xbuild-release195
-rwxr-xr-xbuildall2
-rwxr-xr-xbuilddeps17
-rwxr-xr-xbuilddeps-bucts2
-rwxr-xr-xbuilddeps-cbfstool2
-rwxr-xr-xbuilddeps-coreboot17
-rwxr-xr-xbuilddeps-flashrom2
-rwxr-xr-xbuilddeps-grub2
-rwxr-xr-xbuilddeps-grubinvaders (renamed from builddeb-flashrom)26
-rwxr-xr-xbuilddeps-i945pwm (renamed from builddeb-bucts)24
-rwxr-xr-xbuilddeps-memtest862
-rwxr-xr-xbuilddeps-seabios49
-rwxr-xr-xbuildrom-withgrub118
-rwxr-xr-xcleandeps35
-rw-r--r--dejavu-fonts-ttf-2.34/ttf/DejaVuSans-Bold.ttfbin693876 -> 0 bytes
-rw-r--r--dejavu-fonts-ttf-2.34/ttf/DejaVuSans-BoldOblique.ttfbin632168 -> 0 bytes
-rw-r--r--dejavu-fonts-ttf-2.34/ttf/DejaVuSans-ExtraLight.ttfbin352492 -> 0 bytes
-rw-r--r--dejavu-fonts-ttf-2.34/ttf/DejaVuSans-Oblique.ttfbin632416 -> 0 bytes
-rw-r--r--dejavu-fonts-ttf-2.34/ttf/DejaVuSans.ttfbin741536 -> 0 bytes
-rw-r--r--dejavu-fonts-ttf-2.34/ttf/DejaVuSansCondensed-Bold.ttfbin653336 -> 0 bytes
-rw-r--r--dejavu-fonts-ttf-2.34/ttf/DejaVuSansCondensed-BoldOblique.ttfbin600936 -> 0 bytes
-rw-r--r--dejavu-fonts-ttf-2.34/ttf/DejaVuSansCondensed-Oblique.ttfbin596596 -> 0 bytes
-rw-r--r--dejavu-fonts-ttf-2.34/ttf/DejaVuSansCondensed.ttfbin664972 -> 0 bytes
-rw-r--r--dejavu-fonts-ttf-2.34/ttf/DejaVuSansMono-Bold.ttfbin318392 -> 0 bytes
-rw-r--r--dejavu-fonts-ttf-2.34/ttf/DejaVuSansMono-BoldOblique.ttfbin239876 -> 0 bytes
-rw-r--r--dejavu-fonts-ttf-2.34/ttf/DejaVuSansMono-Oblique.ttfbin245948 -> 0 bytes
-rw-r--r--dejavu-fonts-ttf-2.34/ttf/DejaVuSerif-Bold.ttfbin345364 -> 0 bytes
-rw-r--r--dejavu-fonts-ttf-2.34/ttf/DejaVuSerif-BoldItalic.ttfbin336884 -> 0 bytes
-rw-r--r--dejavu-fonts-ttf-2.34/ttf/DejaVuSerif-Italic.ttfbin343388 -> 0 bytes
-rw-r--r--dejavu-fonts-ttf-2.34/ttf/DejaVuSerif.ttfbin367260 -> 0 bytes
-rw-r--r--dejavu-fonts-ttf-2.34/ttf/DejaVuSerifCondensed-Bold.ttfbin320720 -> 0 bytes
-rw-r--r--dejavu-fonts-ttf-2.34/ttf/DejaVuSerifCondensed-BoldItalic.ttfbin335940 -> 0 bytes
-rw-r--r--dejavu-fonts-ttf-2.34/ttf/DejaVuSerifCondensed-Italic.ttfbin342736 -> 0 bytes
-rw-r--r--dejavu-fonts-ttf-2.34/ttf/DejaVuSerifCondensed.ttfbin334040 -> 0 bytes
-rw-r--r--dejavu-fonts-ttf-2.34/ttf/README2
-rwxr-xr-xdeps-parabola73
-rwxr-xr-xdeps-trisquel (renamed from builddeb)33
-rw-r--r--docs/future/donotusethis_macbook_acpi.diff28
-rw-r--r--docs/future/dumps/pte_x60_6718/dmesg2071
-rw-r--r--docs/future/dumps/pte_x60_6718/kern.log2026
-rw-r--r--docs/future/dumps/x60_lspcixxxvvnn_5927_19809
-rw-r--r--docs/future/dumps/x60_lspcixxxvvnn_6717_1810
-rw-r--r--docs/future/dumps/x60_lspcixxxvvnn_factory842
-rw-r--r--docs/future/f2a85m_dmidecode686
-rw-r--r--docs/future/gnutoo_fallback_patch182
-rw-r--r--docs/future/index.html239
-rw-r--r--docs/future/old.html277
-rw-r--r--docs/gnu-fdl-1.3.shtml506
-rw-r--r--docs/gnu-gpl-3.0.shtml707
-rw-r--r--docs/howtos/encrypted_trisquel.html321
-rw-r--r--docs/howtos/grub_boot_installer.html36
-rw-r--r--docs/howtos/grub_cbfs.html160
-rw-r--r--docs/howtos/t60_dev/t60_unbrick.jpgbin0 -> 61220 bytes
-rw-r--r--docs/howtos/t60_heatsink.html11
-rw-r--r--docs/howtos/t60_lcd_15.html11
-rw-r--r--docs/howtos/t60_mainboard/t60_ati_gpu.jpgbin94538 -> 0 bytes
-rw-r--r--docs/howtos/t60_mainboard/t60_intel_gpu.jpgbin61298 -> 0 bytes
-rw-r--r--docs/howtos/t60_security.html26
-rw-r--r--docs/howtos/t60_unbrick.html11
-rw-r--r--docs/howtos/x60_heatsink.html11
-rw-r--r--docs/howtos/x60_lcd_change.html54
-rwxr-xr-xdocs/howtos/x60_lcd_change/0001.JPGbin0 -> 80828 bytes
-rwxr-xr-xdocs/howtos/x60_lcd_change/0002.JPGbin0 -> 72986 bytes
-rwxr-xr-xdocs/howtos/x60_lcd_change/0003.JPGbin0 -> 81777 bytes
-rwxr-xr-xdocs/howtos/x60_lcd_change/0004.JPGbin0 -> 87164 bytes
-rwxr-xr-xdocs/howtos/x60_lcd_change/0005.JPGbin0 -> 66652 bytes
-rwxr-xr-xdocs/howtos/x60_lcd_change/0006.JPGbin0 -> 57127 bytes
-rwxr-xr-xdocs/howtos/x60_lcd_change/0007.JPGbin0 -> 31729 bytes
-rw-r--r--docs/howtos/x60_security.html26
-rw-r--r--docs/howtos/x60_unbrick.html11
-rw-r--r--docs/howtos/x60tablet_unbrick.html11
-rw-r--r--docs/index.html648
-rw-r--r--docs/license.html80
-rw-r--r--docs/license.txt (renamed from docs/cc-by-sa-4.txt)1
-rw-r--r--docs/patch.html11
-rw-r--r--docs/release.html477
-rwxr-xr-xflash2
-rwxr-xr-xgetall12
-rwxr-xr-xgetbucts9
-rwxr-xr-xgetcb143
-rwxr-xr-xgetflashrom14
-rwxr-xr-xgetgrub21
-rwxr-xr-xgetgrubinvaders70
-rwxr-xr-xgetmt8616
-rwxr-xr-xgetseabios61
-rwxr-xr-xlenovobios_firstflash2
-rwxr-xr-xlenovobios_secondflash2
-rwxr-xr-xmacbook21_firstflash2
-rwxr-xr-xpowertop.trisquel622
-rwxr-xr-xpowertop.trisquel6.init2
-rw-r--r--resources/flashrom/patch/flashchips.c1282
-rw-r--r--resources/flashrom/patch/flashchips.c_lenovobios_macronix1282
-rw-r--r--resources/flashrom/patch/flashchips.c_lenovobios_sst1282
-rw-r--r--resources/grub/config/COPYING49
-rw-r--r--resources/grub/config/extra/common.cfg29
-rw-r--r--resources/grub/config/extra/txtmode.cfg (renamed from docs/future/dumps/index.html)0
-rw-r--r--resources/grub/config/extra/vesafb.cfg5
-rw-r--r--resources/grub/config/grub_memdisk.cfg25
-rw-r--r--resources/grub/config/macbook21/grub_usqwerty.cfg56
-rw-r--r--resources/grub/config/menuentries/common.cfg43
-rw-r--r--resources/grub/config/menuentries/txtmode.cfg9
-rw-r--r--resources/grub/config/menuentries/vesafb.cfg0
-rw-r--r--resources/grub/config/t60/grub_serial_usqwerty.cfg70
-rw-r--r--resources/grub/config/t60/grub_usqwerty.cfg60
-rw-r--r--resources/grub/config/x60/grub_serial_usqwerty.cfg70
-rw-r--r--resources/grub/config/x60/grub_usqwerty.cfg56
-rw-r--r--resources/grub/config/x60t/grub_serial_usqwerty.cfg70
-rw-r--r--resources/grub/config/x60t/grub_usqwerty.cfg56
-rw-r--r--resources/grubinvaders/patch/compile.sh.patch4
-rw-r--r--resources/grubinvaders/patch/diff.patch45
-rw-r--r--resources/libreboot/config/libpayload/config71
-rw-r--r--resources/libreboot/config/macbook21/config28
-rw-r--r--resources/libreboot/config/t60/config28
-rw-r--r--resources/libreboot/config/x60/config28
-rw-r--r--resources/libreboot/config/x60t/config35
-rw-r--r--resources/libreboot/patch/0000_t60_6723_and_6725_1_extension_textmode.git.diff12
-rw-r--r--resources/libreboot/patch/0000_x60t_digitizer_irda.git.diff525
-rw-r--r--resources/libreboot/patch/0001_i945_3dfix.git.diff37
-rw-r--r--resources/libreboot/patch/0001_t60_6731_6_extension_acpi_brightness.git.diff12
-rw-r--r--resources/libreboot/patch/0002_i945_6731_6_extension_fix_uneven_backlight.git.diff22
-rw-r--r--resources/libreboot/patch/0002_x60_backlight.diff4
-rw-r--r--resources/libreboot/patch/0003_t60_backlight.diff4
-rw-r--r--resources/libreboot/patch/gitdiff46
-rw-r--r--resources/memtest86/patch/Makefile81
-rw-r--r--resources/memtest86/patch/config.h52
-rw-r--r--resources/memtest86/patch/diff40
-rw-r--r--resources/seabios/config/config87
-rw-r--r--resources/utilities/README-i945-pwm4
-rwxr-xr-xresources/utilities/grub-assemble/gen.sh30
-rwxr-xr-xresources/utilities/grub-assemble/grub_memdisk_keymap (renamed from grub_memdisk_keymap)6
-rw-r--r--resources/utilities/grub-assemble/keymap/COPYING (renamed from resources/grub/keymap/COPYING)0
-rw-r--r--resources/utilities/grub-assemble/keymap/frazerty.gkb (renamed from resources/grub/keymap/frazerty.gkb)bin2572 -> 2572 bytes
-rw-r--r--resources/utilities/grub-assemble/keymap/itqwerty.gkb (renamed from resources/grub/keymap/itqwerty.gkb)bin2572 -> 2572 bytes
-rw-r--r--resources/utilities/grub-assemble/keymap/original/frazerty (renamed from resources/grub/keymap/original/frazerty)0
-rw-r--r--resources/utilities/grub-assemble/keymap/original/itqwerty (renamed from resources/grub/keymap/original/itqwerty)0
-rw-r--r--resources/utilities/grub-assemble/keymap/original/svenska130
-rw-r--r--resources/utilities/grub-assemble/keymap/original/ukdvorak (renamed from resources/grub/keymap/original/ukdvorak)0
-rw-r--r--resources/utilities/grub-assemble/keymap/original/ukqwerty (renamed from resources/grub/keymap/original/ukqwerty)0
-rw-r--r--resources/utilities/grub-assemble/keymap/original/usdvorak (renamed from resources/grub/keymap/original/usdvorak)0
-rw-r--r--resources/utilities/grub-assemble/keymap/original/usqwerty (renamed from resources/grub/keymap/original/usqwerty)0
-rw-r--r--resources/utilities/grub-assemble/keymap/svenska.gkbbin0 -> 2572 bytes
-rw-r--r--resources/utilities/grub-assemble/keymap/ukdvorak.gkb (renamed from resources/grub/keymap/ukdvorak.gkb)bin2572 -> 2572 bytes
-rw-r--r--resources/utilities/grub-assemble/keymap/ukqwerty.gkb (renamed from resources/grub/keymap/ukqwerty.gkb)bin2572 -> 2572 bytes
-rw-r--r--resources/utilities/grub-assemble/keymap/usdvorak.gkb (renamed from resources/grub/keymap/usdvorak.gkb)bin2572 -> 2572 bytes
-rw-r--r--resources/utilities/grub-assemble/keymap/usqwerty.gkb (renamed from resources/grub/keymap/usqwerty.gkb)bin2572 -> 2572 bytes
m---------resources/utilities/i945-pwm0
-rwxr-xr-xresources/utilities/i945gpu/intel-regs.py21
152 files changed, 14251 insertions, 3875 deletions
diff --git a/COPYING b/COPYING
deleted file mode 100644
index 00641220..00000000
--- a/COPYING
+++ /dev/null
@@ -1,11 +0,0 @@
-Check the license of each programme or resource included.
-
-Meditating GNU image (original XCF file) can be found here:
-https://www.gnu.org/graphics/meditate.html
-
-Francis Rowe is happy to (try to) answer questions. Send email to info@gluglug.org.uk if you have questions.
-
-If you downloaded libreboot_meta.tar.gz, you can get the full source per instructions at docs/index.html#build_meta
-or you can download the archive per docs/RELEASE.html
-
-If you downloaded libreboot_bin, you can get the full source per instructions at docs/RELEASE.html
diff --git a/DEBLOB b/DEBLOB
index 585b7c7b..a9f503b6 100755
--- a/DEBLOB
+++ b/DEBLOB
@@ -3,7 +3,7 @@
# DEBLOB script: deblobs this version of coreboot in use from git commit:
# cbff467cbdf56cd610e2c6400cdcbf2b84636df9
#
-# Copyright (C) 2014 Francis Rowe
+# Copyright (C) 2014 Francis Rowe <info@gluglug.org.uk>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -20,7 +20,7 @@
#
# CPU microcode
-rm -rf coreboot/src/cpu/intel/model_68x/microcode-617-MU16860c.h coreboot/src/cpu/intel/model_68x/microcode-550-MU168307.h coreboot/src/cpu/intel/model_68x/microcode-618-MU268602.h coreboot/src/cpu/intel/model_68x/microcode-729-MU268310.h coreboot/src/cpu/intel/model_68x/microcode-535-MU16810e.h coreboot/src/cpu/intel/model_68x/microcode-727-MU168313.h coreboot/src/cpu/intel/model_68x/microcode-551-MU168308.h coreboot/src/cpu/intel/model_68x/microcode-536-MU16810f.h coreboot/src/cpu/intel/model_68x/microcode-662-MU168a01.h coreboot/src/cpu/intel/model_68x/microcode-728-MU168314.h coreboot/src/cpu/intel/model_68x/microcode-538-MU168111.h coreboot/src/cpu/intel/model_68x/microcode-611-MU168607.h coreboot/src/cpu/intel/model_68x/microcode-615-MU16860a.h coreboot/src/cpu/intel/model_68x/microcode-534-MU16810d.h coreboot/src/cpu/intel/model_68x/microcode-691-MU168a04.h coreboot/src/cpu/intel/model_68x/microcode-692-MU168a05.h coreboot/src/cpu/intel/model_68x/microcode-612-MU168608.h coreboot/src/cpu/intel/model_68x/microcode-537-MU268110.h coreboot/src/cpu/intel/model_1067x/microcode-m011067660F.h coreboot/src/cpu/intel/model_1067x/microcode-m401067660F.h coreboot/src/cpu/intel/model_1067x/microcode-m441067AA0B.h coreboot/src/cpu/intel/model_1067x/microcode-m101067660F.h coreboot/src/cpu/intel/model_1067x/microcode-m041067660F.h coreboot/src/cpu/intel/model_1067x/microcode-m111067AA0B.h coreboot/src/cpu/intel/model_1067x/microcode-m801067660F.h coreboot/src/cpu/intel/model_1067x/microcode-mA01067AA0B.h coreboot/src/cpu/intel/model_1067x/microcode-m101067770A.h coreboot/src/cpu/intel/model_67x/microcode-540-MU267238.h coreboot/src/cpu/intel/model_67x/microcode-531-MU26732e.h coreboot/src/cpu/intel/model_67x/microcode-293-MU267114.h coreboot/src/cpu/intel/model_67x/microcode-539-MU167210.h coreboot/src/cpu/intel/model_67x/microcode-530-MU16730e.h coreboot/src/cpu/intel/model_65x/microcode-409-MU16522c.h coreboot/src/cpu/intel/model_65x/microcode-423-MU26522b.h coreboot/src/cpu/intel/model_65x/microcode-147-MU16502f.h coreboot/src/cpu/intel/model_65x/microcode-435-MU165141.h coreboot/src/cpu/intel/model_65x/microcode-94-MU265019.h coreboot/src/cpu/intel/model_65x/microcode-411-MU16530c.h coreboot/src/cpu/intel/model_65x/microcode-452-MU165310.h coreboot/src/cpu/intel/model_65x/microcode-412-MU16530d.h coreboot/src/cpu/intel/model_65x/microcode-430-MU165041.h coreboot/src/cpu/intel/model_65x/microcode-433-MU165045.h coreboot/src/cpu/intel/model_65x/microcode-410-MU16522d.h coreboot/src/cpu/intel/model_65x/microcode-407-MU16522a.h coreboot/src/cpu/intel/model_65x/microcode-429-MU165040.h coreboot/src/cpu/intel/model_65x/microcode-146-MU16502e.h coreboot/src/cpu/intel/model_65x/microcode-422-MU26530b.h coreboot/src/cpu/intel/model_65x/microcode-434-MU165140.h coreboot/src/cpu/intel/model_65x/microcode-436-MU165142.h coreboot/src/cpu/intel/model_f1x/microcode-1070-m02f122f.h coreboot/src/cpu/intel/model_f1x/microcode-1069-m04f122e.h coreboot/src/cpu/intel/model_f1x/microcode-1068-m01f122d.h coreboot/src/cpu/intel/model_f1x/microcode-1072-m04f1305.h coreboot/src/cpu/intel/model_6ex/microcode-1869-m806ec59.h coreboot/src/cpu/intel/model_6ex/microcode-1729-m206ec54.h coreboot/src/cpu/intel/model_6ex/microcode-1624-m206e839.h coreboot/src/cpu/intel/model_106cx/microcode-M08106CA107.h coreboot/src/cpu/intel/model_106cx/microcode-M08106C2219.h coreboot/src/cpu/intel/model_106cx/microcode-M04106C2218.h coreboot/src/cpu/intel/model_106cx/microcode-M10106CA107.h coreboot/src/cpu/intel/model_106cx/microcode-M01106C2217.h coreboot/src/cpu/intel/model_106cx/microcode-M04106CA107.h coreboot/src/cpu/intel/model_106cx/microcode-M01106CA107.h coreboot/src/cpu/intel/model_6bx/microcode-737-MU16b11c.h coreboot/src/cpu/intel/model_6bx/microcode-738-MU16b11d.h coreboot/src/cpu/intel/model_6bx/microcode-885-MU16b402.h coreboot/src/cpu/intel/model_6bx/microcode-875-MU16b401.h coreboot/src/cpu/intel/model_206ax/microcode-m12306a9_00000017.h coreboot/src/cpu/intel/model_206ax/microcode-m12206a7_00000028.h coreboot/src/cpu/intel/model_6fx/microcode-m406fbBC.h coreboot/src/cpu/intel/model_6fx/microcode-m206f25c.h coreboot/src/cpu/intel/model_6fx/microcode-m106fbBA.h coreboot/src/cpu/intel/model_6fx/microcode-m106f76a.h coreboot/src/cpu/intel/model_6fx/microcode-m46f6d2.h coreboot/src/cpu/intel/model_6fx/microcode-m206f6d1.h coreboot/src/cpu/intel/model_6fx/microcode-m206fda4.h coreboot/src/cpu/intel/model_6fx/microcode-m16f6d0.h coreboot/src/cpu/intel/model_6fx/microcode-m206fbBA.h coreboot/src/cpu/intel/model_6fx/microcode-m806fda4.h coreboot/src/cpu/intel/model_6fx/microcode-m806fbBA.h coreboot/src/cpu/intel/model_6fx/microcode-m16f25d.h coreboot/src/cpu/intel/model_6fx/microcode-m16fda4.h coreboot/src/cpu/intel/model_6fx/microcode-m016fbBA.h coreboot/src/cpu/intel/model_6fx/microcode-m806fa95.h coreboot/src/cpu/intel/model_6fx/microcode-m086fbBB.h coreboot/src/cpu/intel/model_6fx/microcode-m046fbBC.h coreboot/src/cpu/intel/model_6fx/microcode-m406f76b.h coreboot/src/cpu/intel/model_f4x/microcode-1637-m5cf4a04.h coreboot/src/cpu/intel/model_f4x/microcode-1470-m9df4703.h coreboot/src/cpu/intel/model_f4x/microcode-1735-m01f480c.h coreboot/src/cpu/intel/model_f4x/microcode-1521-m5ff4807.h coreboot/src/cpu/intel/model_f4x/microcode-1466-m02f4116.h coreboot/src/cpu/intel/model_f4x/microcode-1471-mbdf4117.h coreboot/src/cpu/intel/model_f4x/microcode-1462-mbdf4903.h coreboot/src/cpu/intel/model_f4x/microcode-1460-m9df4305.h coreboot/src/cpu/intel/model_f4x/microcode-1469-m9df4406.h coreboot/src/cpu/intel/model_f4x/microcode-1498-m5df4a02.h coreboot/src/cpu/intel/model_f4x/microcode-2492-m02f480e.h coreboot/src/cpu/intel/model_6dx/microcode-1355-m206d618.h coreboot/src/cpu/intel/model_f3x/microcode-1467-m0df330c.h coreboot/src/cpu/intel/model_f3x/microcode-1290-m0df320a.h coreboot/src/cpu/intel/model_f3x/microcode-1468-m1df3417.h coreboot/src/cpu/intel/model_69x/microcode-1376-m8069547.h coreboot/src/cpu/intel/model_69x/microcode-1374-m2069507.h coreboot/src/cpu/intel/model_69x/microcode-1373-m1069507.h coreboot/src/cpu/intel/model_f0x/microcode-965-m01f0a13.h coreboot/src/cpu/intel/model_f0x/microcode-966-m04f0a14.h coreboot/src/cpu/intel/model_f0x/microcode-964-m01f0712.h coreboot/src/cpu/intel/model_f0x/microcode-983-m02f0a15.h coreboot/src/cpu/intel/model_f0x/microcode-678-2f0708.h coreboot/src/cpu/intel/model_f2x/microcode-1341-m01f2529.h coreboot/src/cpu/intel/model_f2x/microcode-1101-m02f2738.h coreboot/src/cpu/intel/model_f2x/microcode-1102-m08f2739.h coreboot/src/cpu/intel/model_f2x/microcode-1339-m04f292e.h coreboot/src/cpu/intel/model_f2x/microcode-1100-m04f2737.h coreboot/src/cpu/intel/model_f2x/microcode-1342-m02f252a.h coreboot/src/cpu/intel/model_f2x/microcode-1105-m08f2420.h coreboot/src/cpu/intel/model_f2x/microcode-1107-m10f2421.h coreboot/src/cpu/intel/model_f2x/microcode-1338-m02f292d.h coreboot/src/cpu/intel/model_f2x/microcode-1343-m04f252b.h coreboot/src/cpu/intel/model_f2x/microcode-1340-m08f292f.h coreboot/src/cpu/intel/model_f2x/microcode-1106-m02f241f.h coreboot/src/cpu/intel/model_f2x/microcode-1104-m04f241e.h coreboot/src/cpu/intel/model_f2x/microcode-1336-m02f2610.h coreboot/src/cpu/intel/model_f2x/microcode-1346-m10f252c.h coreboot/src/cpu/intel/model_6xx/microcode-43-B_c6_617.h coreboot/src/cpu/intel/model_6xx/microcode-620-MU26a401.h coreboot/src/cpu/intel/model_6xx/microcode-359-MU166d06.h coreboot/src/cpu/intel/model_6xx/microcode-398-MU166503.h coreboot/src/cpu/intel/model_6xx/microcode-308-MU163336.h coreboot/src/cpu/intel/model_6xx/microcode-153-d2_619.h coreboot/src/cpu/intel/model_6xx/microcode-51-B_c6_616.h coreboot/src/cpu/intel/model_6xx/microcode-566-mu26a003.h coreboot/src/cpu/intel/model_6xx/microcode-400-MU166a0c.h coreboot/src/cpu/intel/model_6xx/microcode-402-MU166d07.h coreboot/src/cpu/intel/model_6xx/microcode-401-MU166a0d.h coreboot/src/cpu/intel/model_6xx/microcode-386-MU16600a.h coreboot/src/cpu/intel/model_6xx/microcode-309-MU163437.h coreboot/src/cpu/intel/model_6xx/microcode-99-B_c6_612.h coreboot/src/cpu/intel/model_6xx/microcode-588-mu26a101.h coreboot/src/cpu/intel/model_6xx/microcode-399-MU166a0b.h coreboot/src/cpu/intel/model_6xx/microcode-358-MU166d05.h coreboot/src/cpu/intel/haswell/microcode-M3240660_ffff000b.h coreboot/src/cpu/intel/haswell/microcode-M32306c1_ffff000d.h coreboot/src/cpu/intel/haswell/microcode-M32306c2_ffff0003.h coreboot/src/cpu/intel/haswell/microcode-M7240650_ffff0007.h coreboot/src/cpu/intel/haswell/microcode-M7240650_ffff000a.h coreboot/src/cpu/intel/model_f2x/microcode_m02f2203.h coreboot/src/cpu/intel/model_2065x/microcode-m9220655_00000003.h coreboot/src/cpu/amd/model_fxx/microcode_rev_d.h coreboot/src/cpu/amd/model_fxx/microcode_rev_c.h coreboot/src/cpu/amd/model_fxx/microcode_rev_e.h coreboot/src/vendorcode/amd/agesa/f15/Proc/CPU/Family/0x10/RevC/F10MicrocodePatch01000085.c coreboot/src/vendorcode/amd/agesa/f15/Proc/CPU/Family/0x10/RevC/F10MicrocodePatch010000c7.c coreboot/src/vendorcode/amd/agesa/f15/Proc/CPU/Family/0x10/RevC/F10MicrocodePatch010000c6.c coreboot/src/vendorcode/amd/agesa/f15/Proc/CPU/Family/0x10/RevC/F10MicrocodePatch010000c8.c coreboot/src/vendorcode/amd/agesa/f15/Proc/CPU/Family/0x10/RevD/F10MicrocodePatch010000d9.c coreboot/src/vendorcode/amd/agesa/f15/Proc/CPU/Family/0x10/RevD/F10MicrocodePatch010000c5.c coreboot/src/vendorcode/amd/agesa/f15/Proc/CPU/Family/0x10/RevE/F10MicrocodePatch010000bf.c coreboot/src/vendorcode/amd/agesa/f15/Proc/CPU/Family/0x15/OR/F15OrMicrocodePatch06000624_Enc.c coreboot/src/vendorcode/amd/agesa/f15/Proc/CPU/Family/0x15/OR/F15OrMicrocodePatch0600050D_Enc.c coreboot/src/vendorcode/amd/agesa/f15/Proc/CPU/Family/0x15/OR/F15OrMicrocodePatch06000425.c coreboot/src/vendorcode/amd/agesa/f15tn/Proc/CPU/Family/0x15/TN/F15TnMicrocodePatch0600110F_Enc.c coreboot/src/vendorcode/amd/agesa/f14/Proc/CPU/Family/0x10/RevC/F10MicrocodePatch01000085.c coreboot/src/vendorcode/amd/agesa/f14/Proc/CPU/Family/0x10/RevC/F10MicrocodePatch010000c7.c coreboot/src/vendorcode/amd/agesa/f14/Proc/CPU/Family/0x10/RevC/F10MicrocodePatch010000c6.c coreboot/src/vendorcode/amd/agesa/f14/Proc/CPU/Family/0x10/RevC/F10MicrocodePatch010000c8.c coreboot/src/vendorcode/amd/agesa/f14/Proc/CPU/Family/0x10/RevD/F10MicrocodePatch010000c4.c coreboot/src/vendorcode/amd/agesa/f14/Proc/CPU/Family/0x10/RevD/F10MicrocodePatch010000c5.c coreboot/src/vendorcode/amd/agesa/f14/Proc/CPU/Family/0x10/RevE/F10MicrocodePatch010000bf.c coreboot/src/vendorcode/amd/agesa/f14/Proc/CPU/Family/0x14/F14MicrocodePatch0500000B.c coreboot/src/vendorcode/amd/agesa/f14/Proc/CPU/Family/0x14/F14MicrocodePatch05000025.c coreboot/src/vendorcode/amd/agesa/f14/Proc/CPU/Family/0x14/F14MicrocodePatch0500001A.c coreboot/src/vendorcode/amd/agesa/f14/Proc/CPU/Family/0x14/F14MicrocodePatch05000028.c coreboot/src/vendorcode/amd/agesa/f14/Proc/CPU/Family/0x14/F14MicrocodePatch05000101.c coreboot/src/vendorcode/amd/agesa/f12/Proc/CPU/Family/0x10/RevC/F10MicrocodePatch01000085.c coreboot/src/vendorcode/amd/agesa/f12/Proc/CPU/Family/0x10/RevC/F10MicrocodePatch010000c6.c coreboot/src/vendorcode/amd/agesa/f12/Proc/CPU/Family/0x10/RevC/F10MicrocodePatch010000c8.c coreboot/src/vendorcode/amd/agesa/f12/Proc/CPU/Family/0x10/RevD/F10MicrocodePatch010000c4.c coreboot/src/vendorcode/amd/agesa/f12/Proc/CPU/Family/0x10/RevD/F10MicrocodePatch010000c5.c coreboot/src/vendorcode/amd/agesa/f12/Proc/CPU/Family/0x10/RevE/F10MicrocodePatch010000bf.c coreboot/src/vendorcode/amd/agesa/f12/Proc/CPU/Family/0x12/F12MicrocodePatch03000002.c coreboot/src/vendorcode/amd/agesa/f12/Proc/CPU/Family/0x12/F12MicrocodePatch0300000f.c coreboot/src/vendorcode/amd/agesa/f12/Proc/CPU/Family/0x12/F12MicrocodePatch0300000e.c coreboot/src/vendorcode/amd/agesa/f10/Proc/CPU/Family/0x10/RevC/F10MicrocodePatch01000085.c coreboot/src/vendorcode/amd/agesa/f10/Proc/CPU/Family/0x10/RevC/F10MicrocodePatch010000b6.c coreboot/src/vendorcode/amd/agesa/f10/Proc/CPU/Family/0x10/RevC/F10MicrocodePatch01000098.c coreboot/src/vendorcode/amd/agesa/f10/Proc/CPU/Family/0x10/RevC/F10MicrocodePatch01000086.c coreboot/src/vendorcode/amd/agesa/f10/Proc/CPU/Family/0x10/RevD/F10MicrocodePatch010000c4.c coreboot/src/vendorcode/amd/agesa/f10/Proc/CPU/Family/0x10/RevD/F10MicrocodePatch010000c5.c coreboot/src/vendorcode/amd/agesa/f16kb/Proc/CPU/Family/0x16/KB/F16KbId7001MicrocodePatch.c coreboot/src/cpu/intel/haswell/microcode-M7240651_00000015.h coreboot/src/cpu/intel/haswell/microcode-M32306c3_00000012.h coreboot/src/vendorcode/amd/agesa/f12/Proc/CPU/Family/0x10/RevC/F10MicrocodePatch010000c7.c coreboot/src/vendorcode/amd/agesa/f12/Proc/CPU/Family/0x10/RevC/F10MicrocodePatch010000c7.c coreboot/src/vendorcode/amd/agesa/f12/Proc/GNB/Nb/Family/LN/F12NbSmuFirmware.h coreboot/src/vendorcode/amd/agesa/f14/Proc/GNB/Nb/Family/0x14/F14NbSmuFirmware.h coreboot/src/vendorcode/amd/agesa/f16kb/Proc/GNB/Modules/GnbInitKB/GnbSamuPatchKB.h coreboot/src/vendorcode/amd/agesa/f16kb/Proc/GNB/Modules/GnbInitKB/GnbSmuFirmwareKB.h coreboot/src/vendorcode/amd/agesa/f16kb/Proc/GNB/Modules/GnbInitKB/excel925.h coreboot/src/vendorcode/amd/agesa/f15tn/Proc/GNB/Modules/GnbInitTN/GnbCacWeightsTN.h coreboot/src/vendorcode/amd/agesa/f15tn/Proc/GNB/Modules/GnbInitTN/GnbSmuFirmwareTN.h coreboot/src/vendorcode/amd/cimx/rd890/HotplugFirmware.h coreboot/src/cpu/amd/model_10xxx/mc_patch_01000086.h coreboot/src/cpu/amd/model_10xxx/mc_patch_01000095.h coreboot/src/cpu/amd/model_10xxx/mc_patch_01000096.h coreboot/src/cpu/amd/model_10xxx/mc_patch_0100009f.h coreboot/src/cpu/amd/model_10xxx/mc_patch_010000b6.h coreboot/src/cpu/amd/model_10xxx/mc_patch_010000bf.h coreboot/src/cpu/amd/model_10xxx/mc_patch_010000c4.h coreboot/src/cpu/dmp/vortex86ex/dmp_kbd_fw_part1.inc coreboot/src/cpu/via/nano/nano_ucode_blob.c coreboot/src/soc/intel/baytrail/microcode/M0C3068_00000808.h coreboot/src/soc/intel/baytrail/microcode/M0C3067_0000031E.h
+rm -rf coreboot/src/cpu/intel/model_68x/microcode-617-MU16860c.h coreboot/src/cpu/intel/model_68x/microcode-550-MU168307.h coreboot/src/cpu/intel/model_68x/microcode-618-MU268602.h coreboot/src/cpu/intel/model_68x/microcode-729-MU268310.h coreboot/src/cpu/intel/model_68x/microcode-535-MU16810e.h coreboot/src/cpu/intel/model_68x/microcode-727-MU168313.h coreboot/src/cpu/intel/model_68x/microcode-551-MU168308.h coreboot/src/cpu/intel/model_68x/microcode-536-MU16810f.h coreboot/src/cpu/intel/model_68x/microcode-662-MU168a01.h coreboot/src/cpu/intel/model_68x/microcode-728-MU168314.h coreboot/src/cpu/intel/model_68x/microcode-538-MU168111.h coreboot/src/cpu/intel/model_68x/microcode-611-MU168607.h coreboot/src/cpu/intel/model_68x/microcode-615-MU16860a.h coreboot/src/cpu/intel/model_68x/microcode-534-MU16810d.h coreboot/src/cpu/intel/model_68x/microcode-691-MU168a04.h coreboot/src/cpu/intel/model_68x/microcode-692-MU168a05.h coreboot/src/cpu/intel/model_68x/microcode-612-MU168608.h coreboot/src/cpu/intel/model_68x/microcode-537-MU268110.h coreboot/src/cpu/intel/model_1067x/microcode-m011067660F.h coreboot/src/cpu/intel/model_1067x/microcode-m401067660F.h coreboot/src/cpu/intel/model_1067x/microcode-m441067AA0B.h coreboot/src/cpu/intel/model_1067x/microcode-m101067660F.h coreboot/src/cpu/intel/model_1067x/microcode-m041067660F.h coreboot/src/cpu/intel/model_1067x/microcode-m111067AA0B.h coreboot/src/cpu/intel/model_1067x/microcode-m801067660F.h coreboot/src/cpu/intel/model_1067x/microcode-mA01067AA0B.h coreboot/src/cpu/intel/model_1067x/microcode-m101067770A.h coreboot/src/cpu/intel/model_67x/microcode-540-MU267238.h coreboot/src/cpu/intel/model_67x/microcode-531-MU26732e.h coreboot/src/cpu/intel/model_67x/microcode-293-MU267114.h coreboot/src/cpu/intel/model_67x/microcode-539-MU167210.h coreboot/src/cpu/intel/model_67x/microcode-530-MU16730e.h coreboot/src/cpu/intel/model_65x/microcode-409-MU16522c.h coreboot/src/cpu/intel/model_65x/microcode-423-MU26522b.h coreboot/src/cpu/intel/model_65x/microcode-147-MU16502f.h coreboot/src/cpu/intel/model_65x/microcode-435-MU165141.h coreboot/src/cpu/intel/model_65x/microcode-94-MU265019.h coreboot/src/cpu/intel/model_65x/microcode-411-MU16530c.h coreboot/src/cpu/intel/model_65x/microcode-452-MU165310.h coreboot/src/cpu/intel/model_65x/microcode-412-MU16530d.h coreboot/src/cpu/intel/model_65x/microcode-430-MU165041.h coreboot/src/cpu/intel/model_65x/microcode-433-MU165045.h coreboot/src/cpu/intel/model_65x/microcode-410-MU16522d.h coreboot/src/cpu/intel/model_65x/microcode-407-MU16522a.h coreboot/src/cpu/intel/model_65x/microcode-429-MU165040.h coreboot/src/cpu/intel/model_65x/microcode-146-MU16502e.h coreboot/src/cpu/intel/model_65x/microcode-422-MU26530b.h coreboot/src/cpu/intel/model_65x/microcode-434-MU165140.h coreboot/src/cpu/intel/model_65x/microcode-436-MU165142.h coreboot/src/cpu/intel/model_f1x/microcode-1070-m02f122f.h coreboot/src/cpu/intel/model_f1x/microcode-1069-m04f122e.h coreboot/src/cpu/intel/model_f1x/microcode-1068-m01f122d.h coreboot/src/cpu/intel/model_f1x/microcode-1072-m04f1305.h coreboot/src/cpu/intel/model_6ex/microcode-1869-m806ec59.h coreboot/src/cpu/intel/model_6ex/microcode-1729-m206ec54.h coreboot/src/cpu/intel/model_6ex/microcode-1624-m206e839.h coreboot/src/cpu/intel/model_106cx/microcode-M08106CA107.h coreboot/src/cpu/intel/model_106cx/microcode-M08106C2219.h coreboot/src/cpu/intel/model_106cx/microcode-M04106C2218.h coreboot/src/cpu/intel/model_106cx/microcode-M10106CA107.h coreboot/src/cpu/intel/model_106cx/microcode-M01106C2217.h coreboot/src/cpu/intel/model_106cx/microcode-M04106CA107.h coreboot/src/cpu/intel/model_106cx/microcode-M01106CA107.h coreboot/src/cpu/intel/model_6bx/microcode-737-MU16b11c.h coreboot/src/cpu/intel/model_6bx/microcode-738-MU16b11d.h coreboot/src/cpu/intel/model_6bx/microcode-885-MU16b402.h coreboot/src/cpu/intel/model_6bx/microcode-875-MU16b401.h coreboot/src/cpu/intel/model_206ax/microcode-m12306a9_00000017.h coreboot/src/cpu/intel/model_206ax/microcode-m12206a7_00000028.h coreboot/src/cpu/intel/model_6fx/microcode-m406fbBC.h coreboot/src/cpu/intel/model_6fx/microcode-m206f25c.h coreboot/src/cpu/intel/model_6fx/microcode-m106fbBA.h coreboot/src/cpu/intel/model_6fx/microcode-m106f76a.h coreboot/src/cpu/intel/model_6fx/microcode-m46f6d2.h coreboot/src/cpu/intel/model_6fx/microcode-m206f6d1.h coreboot/src/cpu/intel/model_6fx/microcode-m206fda4.h coreboot/src/cpu/intel/model_6fx/microcode-m16f6d0.h coreboot/src/cpu/intel/model_6fx/microcode-m206fbBA.h coreboot/src/cpu/intel/model_6fx/microcode-m806fda4.h coreboot/src/cpu/intel/model_6fx/microcode-m806fbBA.h coreboot/src/cpu/intel/model_6fx/microcode-m16f25d.h coreboot/src/cpu/intel/model_6fx/microcode-m16fda4.h coreboot/src/cpu/intel/model_6fx/microcode-m016fbBA.h coreboot/src/cpu/intel/model_6fx/microcode-m806fa95.h coreboot/src/cpu/intel/model_6fx/microcode-m086fbBB.h coreboot/src/cpu/intel/model_6fx/microcode-m046fbBC.h coreboot/src/cpu/intel/model_6fx/microcode-m406f76b.h coreboot/src/cpu/intel/model_f4x/microcode-1637-m5cf4a04.h coreboot/src/cpu/intel/model_f4x/microcode-1470-m9df4703.h coreboot/src/cpu/intel/model_f4x/microcode-1735-m01f480c.h coreboot/src/cpu/intel/model_f4x/microcode-1521-m5ff4807.h coreboot/src/cpu/intel/model_f4x/microcode-1466-m02f4116.h coreboot/src/cpu/intel/model_f4x/microcode-1471-mbdf4117.h coreboot/src/cpu/intel/model_f4x/microcode-1462-mbdf4903.h coreboot/src/cpu/intel/model_f4x/microcode-1460-m9df4305.h coreboot/src/cpu/intel/model_f4x/microcode-1469-m9df4406.h coreboot/src/cpu/intel/model_f4x/microcode-1498-m5df4a02.h coreboot/src/cpu/intel/model_f4x/microcode-2492-m02f480e.h coreboot/src/cpu/intel/model_6dx/microcode-1355-m206d618.h coreboot/src/cpu/intel/model_f3x/microcode-1467-m0df330c.h coreboot/src/cpu/intel/model_f3x/microcode-1290-m0df320a.h coreboot/src/cpu/intel/model_f3x/microcode-1468-m1df3417.h coreboot/src/cpu/intel/model_69x/microcode-1376-m8069547.h coreboot/src/cpu/intel/model_69x/microcode-1374-m2069507.h coreboot/src/cpu/intel/model_69x/microcode-1373-m1069507.h coreboot/src/cpu/intel/model_f0x/microcode-965-m01f0a13.h coreboot/src/cpu/intel/model_f0x/microcode-966-m04f0a14.h coreboot/src/cpu/intel/model_f0x/microcode-964-m01f0712.h coreboot/src/cpu/intel/model_f0x/microcode-983-m02f0a15.h coreboot/src/cpu/intel/model_f0x/microcode-678-2f0708.h coreboot/src/cpu/intel/model_f2x/microcode-1341-m01f2529.h coreboot/src/cpu/intel/model_f2x/microcode-1101-m02f2738.h coreboot/src/cpu/intel/model_f2x/microcode-1102-m08f2739.h coreboot/src/cpu/intel/model_f2x/microcode-1339-m04f292e.h coreboot/src/cpu/intel/model_f2x/microcode-1100-m04f2737.h coreboot/src/cpu/intel/model_f2x/microcode-1342-m02f252a.h coreboot/src/cpu/intel/model_f2x/microcode-1105-m08f2420.h coreboot/src/cpu/intel/model_f2x/microcode-1107-m10f2421.h coreboot/src/cpu/intel/model_f2x/microcode-1338-m02f292d.h coreboot/src/cpu/intel/model_f2x/microcode-1343-m04f252b.h coreboot/src/cpu/intel/model_f2x/microcode-1340-m08f292f.h coreboot/src/cpu/intel/model_f2x/microcode-1106-m02f241f.h coreboot/src/cpu/intel/model_f2x/microcode-1104-m04f241e.h coreboot/src/cpu/intel/model_f2x/microcode-1336-m02f2610.h coreboot/src/cpu/intel/model_f2x/microcode-1346-m10f252c.h coreboot/src/cpu/intel/model_6xx/microcode-43-B_c6_617.h coreboot/src/cpu/intel/model_6xx/microcode-620-MU26a401.h coreboot/src/cpu/intel/model_6xx/microcode-359-MU166d06.h coreboot/src/cpu/intel/model_6xx/microcode-398-MU166503.h coreboot/src/cpu/intel/model_6xx/microcode-308-MU163336.h coreboot/src/cpu/intel/model_6xx/microcode-153-d2_619.h coreboot/src/cpu/intel/model_6xx/microcode-51-B_c6_616.h coreboot/src/cpu/intel/model_6xx/microcode-566-mu26a003.h coreboot/src/cpu/intel/model_6xx/microcode-400-MU166a0c.h coreboot/src/cpu/intel/model_6xx/microcode-402-MU166d07.h coreboot/src/cpu/intel/model_6xx/microcode-401-MU166a0d.h coreboot/src/cpu/intel/model_6xx/microcode-386-MU16600a.h coreboot/src/cpu/intel/model_6xx/microcode-309-MU163437.h coreboot/src/cpu/intel/model_6xx/microcode-99-B_c6_612.h coreboot/src/cpu/intel/model_6xx/microcode-588-mu26a101.h coreboot/src/cpu/intel/model_6xx/microcode-399-MU166a0b.h coreboot/src/cpu/intel/model_6xx/microcode-358-MU166d05.h coreboot/src/cpu/intel/haswell/microcode-M3240660_ffff000b.h coreboot/src/cpu/intel/haswell/microcode-M32306c1_ffff000d.h coreboot/src/cpu/intel/haswell/microcode-M32306c2_ffff0003.h coreboot/src/cpu/intel/haswell/microcode-M7240650_ffff0007.h coreboot/src/cpu/intel/haswell/microcode-M7240650_ffff000a.h coreboot/src/cpu/intel/model_f2x/microcode_m02f2203.h coreboot/src/cpu/intel/model_2065x/microcode-m9220655_00000003.h coreboot/src/cpu/amd/model_fxx/microcode_rev_d.h coreboot/src/cpu/amd/model_fxx/microcode_rev_c.h coreboot/src/cpu/amd/model_fxx/microcode_rev_e.h coreboot/src/vendorcode/amd/agesa/f15/Proc/CPU/Family/0x10/RevC/F10MicrocodePatch01000085.c coreboot/src/vendorcode/amd/agesa/f15/Proc/CPU/Family/0x10/RevC/F10MicrocodePatch010000c7.c coreboot/src/vendorcode/amd/agesa/f15/Proc/CPU/Family/0x10/RevC/F10MicrocodePatch010000c6.c coreboot/src/vendorcode/amd/agesa/f15/Proc/CPU/Family/0x10/RevC/F10MicrocodePatch010000c8.c coreboot/src/vendorcode/amd/agesa/f15/Proc/CPU/Family/0x10/RevD/F10MicrocodePatch010000d9.c coreboot/src/vendorcode/amd/agesa/f15/Proc/CPU/Family/0x10/RevD/F10MicrocodePatch010000c5.c coreboot/src/vendorcode/amd/agesa/f15/Proc/CPU/Family/0x10/RevE/F10MicrocodePatch010000bf.c coreboot/src/vendorcode/amd/agesa/f15/Proc/CPU/Family/0x15/OR/F15OrMicrocodePatch06000624_Enc.c coreboot/src/vendorcode/amd/agesa/f15/Proc/CPU/Family/0x15/OR/F15OrMicrocodePatch0600050D_Enc.c coreboot/src/vendorcode/amd/agesa/f15/Proc/CPU/Family/0x15/OR/F15OrMicrocodePatch06000425.c coreboot/src/vendorcode/amd/agesa/f15tn/Proc/CPU/Family/0x15/TN/F15TnMicrocodePatch0600110F_Enc.c coreboot/src/vendorcode/amd/agesa/f14/Proc/CPU/Family/0x10/RevC/F10MicrocodePatch01000085.c coreboot/src/vendorcode/amd/agesa/f14/Proc/CPU/Family/0x10/RevC/F10MicrocodePatch010000c7.c coreboot/src/vendorcode/amd/agesa/f14/Proc/CPU/Family/0x10/RevC/F10MicrocodePatch010000c6.c coreboot/src/vendorcode/amd/agesa/f14/Proc/CPU/Family/0x10/RevC/F10MicrocodePatch010000c8.c coreboot/src/vendorcode/amd/agesa/f14/Proc/CPU/Family/0x10/RevD/F10MicrocodePatch010000c4.c coreboot/src/vendorcode/amd/agesa/f14/Proc/CPU/Family/0x10/RevD/F10MicrocodePatch010000c5.c coreboot/src/vendorcode/amd/agesa/f14/Proc/CPU/Family/0x10/RevE/F10MicrocodePatch010000bf.c coreboot/src/vendorcode/amd/agesa/f14/Proc/CPU/Family/0x14/F14MicrocodePatch0500000B.c coreboot/src/vendorcode/amd/agesa/f14/Proc/CPU/Family/0x14/F14MicrocodePatch05000025.c coreboot/src/vendorcode/amd/agesa/f14/Proc/CPU/Family/0x14/F14MicrocodePatch0500001A.c coreboot/src/vendorcode/amd/agesa/f14/Proc/CPU/Family/0x14/F14MicrocodePatch05000028.c coreboot/src/vendorcode/amd/agesa/f14/Proc/CPU/Family/0x14/F14MicrocodePatch05000101.c coreboot/src/vendorcode/amd/agesa/f12/Proc/CPU/Family/0x10/RevC/F10MicrocodePatch01000085.c coreboot/src/vendorcode/amd/agesa/f12/Proc/CPU/Family/0x10/RevC/F10MicrocodePatch010000c6.c coreboot/src/vendorcode/amd/agesa/f12/Proc/CPU/Family/0x10/RevC/F10MicrocodePatch010000c8.c coreboot/src/vendorcode/amd/agesa/f12/Proc/CPU/Family/0x10/RevD/F10MicrocodePatch010000c4.c coreboot/src/vendorcode/amd/agesa/f12/Proc/CPU/Family/0x10/RevD/F10MicrocodePatch010000c5.c coreboot/src/vendorcode/amd/agesa/f12/Proc/CPU/Family/0x10/RevE/F10MicrocodePatch010000bf.c coreboot/src/vendorcode/amd/agesa/f12/Proc/CPU/Family/0x12/F12MicrocodePatch03000002.c coreboot/src/vendorcode/amd/agesa/f12/Proc/CPU/Family/0x12/F12MicrocodePatch0300000f.c coreboot/src/vendorcode/amd/agesa/f12/Proc/CPU/Family/0x12/F12MicrocodePatch0300000e.c coreboot/src/vendorcode/amd/agesa/f10/Proc/CPU/Family/0x10/RevC/F10MicrocodePatch01000085.c coreboot/src/vendorcode/amd/agesa/f10/Proc/CPU/Family/0x10/RevC/F10MicrocodePatch010000b6.c coreboot/src/vendorcode/amd/agesa/f10/Proc/CPU/Family/0x10/RevC/F10MicrocodePatch01000098.c coreboot/src/vendorcode/amd/agesa/f10/Proc/CPU/Family/0x10/RevC/F10MicrocodePatch01000086.c coreboot/src/vendorcode/amd/agesa/f10/Proc/CPU/Family/0x10/RevD/F10MicrocodePatch010000c4.c coreboot/src/vendorcode/amd/agesa/f10/Proc/CPU/Family/0x10/RevD/F10MicrocodePatch010000c5.c coreboot/src/vendorcode/amd/agesa/f16kb/Proc/CPU/Family/0x16/KB/F16KbId7001MicrocodePatch.c coreboot/src/cpu/intel/haswell/microcode-M7240651_00000015.h coreboot/src/cpu/intel/haswell/microcode-M32306c3_00000012.h coreboot/src/vendorcode/amd/agesa/f12/Proc/CPU/Family/0x10/RevC/F10MicrocodePatch010000c7.c coreboot/src/vendorcode/amd/agesa/f12/Proc/CPU/Family/0x10/RevC/F10MicrocodePatch010000c7.c coreboot/src/vendorcode/amd/agesa/f12/Proc/GNB/Nb/Family/LN/F12NbSmuFirmware.h coreboot/src/vendorcode/amd/agesa/f14/Proc/GNB/Nb/Family/0x14/F14NbSmuFirmware.h coreboot/src/vendorcode/amd/agesa/f16kb/Proc/GNB/Modules/GnbInitKB/GnbSamuPatchKB.h coreboot/src/vendorcode/amd/agesa/f16kb/Proc/GNB/Modules/GnbInitKB/GnbSmuFirmwareKB.h coreboot/src/vendorcode/amd/agesa/f16kb/Proc/GNB/Modules/GnbInitKB/excel925.h coreboot/src/vendorcode/amd/agesa/f15tn/Proc/GNB/Modules/GnbInitTN/GnbCacWeightsTN.h coreboot/src/vendorcode/amd/agesa/f15tn/Proc/GNB/Modules/GnbInitTN/GnbSmuFirmwareTN.h coreboot/src/vendorcode/amd/cimx/rd890/HotplugFirmware.h coreboot/src/cpu/amd/model_10xxx/mc_patch_01000086.h coreboot/src/cpu/amd/model_10xxx/mc_patch_01000095.h coreboot/src/cpu/amd/model_10xxx/mc_patch_01000096.h coreboot/src/cpu/amd/model_10xxx/mc_patch_0100009f.h coreboot/src/cpu/amd/model_10xxx/mc_patch_010000b6.h coreboot/src/cpu/amd/model_10xxx/mc_patch_010000bf.h coreboot/src/cpu/amd/model_10xxx/mc_patch_010000c4.h coreboot/src/cpu/dmp/vortex86ex/dmp_kbd_fw_part1.inc coreboot/src/cpu/via/nano/nano_ucode_blob.c coreboot/src/soc/intel/baytrail/microcode/M0C3068_00000808.h coreboot/src/soc/intel/baytrail/microcode/M0C3067_0000031E.h coreboot/src/cpu/intel/model_2065x/microcode-m1220652_0000000d.h
# Misunderstood (weird: purpose unknown)
rm -rf coreboot/src/mainboard/google/slippy/Micron_4KTF25664HZ.spd.hex coreboot/src/mainboard/google/falco/Micron_4KTF25664HZ.spd.hex coreboot/src/mainboard/google/peppy/Micron_4KTF25664HZ.spd.hex coreboot/src/mainboard/google/link/micron_4Gb_1600_1.35v_x16.spd.hex coreboot/src/mainboard/google/rambi/spd/micron_1GiB_dimm_MT41K128M16JT-125.spd.hex coreboot/src/mainboard/google/rambi/spd/micron_2GiB_dimm_MT41K256M16HA-125.spd.hex coreboot/src/mainboard/google/bolt/micron_4Gb_1600_1.35v_x16.spd.hex coreboot/src/mainboard/google/link/samsung_4Gb_1600_1.35v_x16.spd.hex coreboot/src/mainboard/google/link/elpida_4Gb_1600_x16.spd.hex coreboot/src/mainboard/google/slippy/Hynix_HMT425S6AFR6A.spd.hex coreboot/src/mainboard/google/falco/Hynix_HMT425S6AFR6A.spd.hex coreboot/src/mainboard/google/falco/Elpida_EDJ4216EFBG.spd.hex coreboot/src/mainboard/google/rambi/spd/hynix_1GiB_dimm_H5TC2G63FFR-PBA.spd.hex coreboot/src/mainboard/google/rambi/spd/hynix_2GiB_dimm_H5TC4G63AFR-PBA.spd.hex coreboot/src/mainboard/google/bolt/samsung_4Gb_1600_1.35v_x16.spd.hex coreboot/src/mainboard/google/bolt/elpida_4Gb_1600_x16.spd.hex coreboot/src/mainboard/google/peppy/Hynix_HMT425S6AFR6A.spd.hex coreboot/src/mainboard/google/peppy/Elpida_EDJ4216EFBG.spd.hex
diff --git a/LATER b/LATER
deleted file mode 100644
index afafabe1..00000000
--- a/LATER
+++ /dev/null
@@ -1,61 +0,0 @@
-This list may or may not be up to date.
-
-Relevant changes merged since the last libreboot (6th release) in coreboot repository
-"relevant" means that it applies to the systems currently libreboot supports
-
-These are not all commits since June 1st. Just the "relevant" ones.
-
-earliest
-
-http://review.coreboot.org/5344
-http://review.coreboot.org/5896
-http://review.coreboot.org/5891
-http://review.coreboot.org/5892
-http://review.coreboot.org/5922
-http://review.coreboot.org/5923
-http://review.coreboot.org/5893
-http://review.coreboot.org/6031
-http://review.coreboot.org/6061
-http://review.coreboot.org/6027
-http://review.coreboot.org/6036
-http://review.coreboot.org/161 -- merged from a change by Sven Schnelle (original X60/T60 port maintainer) in 2011. Might regress (or improve!) some things. Must check.
-http://review.coreboot.org/5932
-
-latest
-
--------------
-
-Unmerged (at the time of writing) that may be relevant
-This is DEFINITELY not complete, but rather lists "interesting" commits (meaning, may be relevant)
-
-http://review.coreboot.org/#/c/6192/
-
-
-
-
-
---------------
-reported by a user (dmesg for vbios replacement)
-(errors already known. being looked into)
-
-[ 1.108233] i915 0000:00:02.0: Invalid ROM contents
-[ 1.108362] [drm] drm/i915 developers can then reassign to the right component if it's not a kernel issue.
-[ 1.108387] i915: render error detected, EIR: 0x00000010
-[ 1.108393] i915: page table error
-[ 1.108398] i915: PGTBL_ER: 0x00000012
-[ 1.108405] [drm:i915_report_and_clear_eir] *ERROR* EIR stuck: 0x00000010, masking
-[ 1.108438] i915: render error detected, EIR: 0x00000010
-[ 1.108444] i915: page table error
-[ 1.108449] i915: PGTBL_ER: 0x00000012
-[ 1.613556] i915 0000:00:02.0: fb0: inteldrmfb frame buffer device
-[ 1.613601] i915 0000:00:02.0: registered panic notifier
-[ 1.613649] [drm] Initialized i915 1.6.0 20080730 for 0000:00:02.0 on minor 0
-[ 268.436033] [drm] GMBUS [i915 gmbus dpc] timed out, falling back to bit banging on pin 4
-[ 268.711096] [drm] GMBUS [i915 gmbus dpb] timed out, falling back to bit banging on pin 5
-[ 268.986095] [drm] GMBUS [i915 gmbus dpd] timed out, falling back to bit banging on pin 6
-
-------------
-
-
-
-
diff --git a/README b/README
deleted file mode 100644
index f12c8010..00000000
--- a/README
+++ /dev/null
@@ -1 +0,0 @@
-See docs/index.html
diff --git a/build b/build
index d4c38d01..b9e78338 100755
--- a/build
+++ b/build
@@ -1,9 +1,9 @@
#!/bin/bash
#
-# build script: generates libreboot_bin and libreboot_meta
+# build script: builds the ROM images and puts them in ./bin/
#
-# Copyright (C) 2014 Francis Rowe
+# Copyright (C) 2014 Francis Rowe <info@gluglug.org.uk>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -26,11 +26,15 @@
echo "running 'make clean' in coreboot"
-# run "make clean" in coreboot
+# prepare coreboot
cd coreboot
+
+# run "make clean" in coreboot (will re-build later)
make clean
rm -rf grub.elf
-cd ..
+
+# come back to main directory
+cd ../
echo "finished running 'make clean' in coreboot"
@@ -39,19 +43,19 @@ echo "finished running 'make clean' in coreboot"
echo "generating grub.elf payload"
-cd grub
-mv ../grub_memdisk_keymap .
-# Build the GRUB2 payload (grub.elf)
-./grub-mkstandalone --grub-mkimage=./grub-mkimage -O i386-coreboot -o grub.elf --modules='crypto cryptodisk luks lvm cmosdump cmostest ahci pata ehci uhci ohci usb_keyboard usbms part_msdos xfs ext2 fat at_keyboard part_gpt usbserial_usbdebug cbfs minix_be minix minix3_be minix3 minix2_be minix2 zfs ufs2 ufs1_be ufs1 udf squash4 romfs jfs reiserfs procfs odc ntfs nilfs2 newc iso9660 hfsplus cpio exfat cpio_be afs btrfs bfs hfs video_bochs password png jpeg keystatus sleep loopback gfxterm_background' --install-modules='syslinuxcfg bsd ls cat echo linux search configfile normal cbtime cbls memrw iorw minicmd lsmmap lspci halt reboot hexdump pcidump regexp setpci lsacpi chain test' --fonts= --themes= --locales= -d grub-core/ /boot/grub/grub.cfg=../resources/grub/config/grub_memdisk.cfg $(./grub_memdisk_keymap)
-mv grub_memdisk_keymap ../
+cd resources/utilities/grub-assemble
-# move those into coreboot directory:
-mv grub.elf ../coreboot
+# Generate grub.elf inside the directory
+./gen.sh
-# come back into the main directory
-cd ../
+# Replace the old one
+rm -rf ../../../coreboot/grub.elf
+mv grub.elf ../../../coreboot/
+
+# come back to main directory
+cd ../../../
-echo "finished generating grub.elf payload"
+echo "finished generating grub.elf payload (it's now in coreboot/ directory)"
# Build the ROM's (for flashing)
# ----------------------------------------------------------------------------------------------------------------------
@@ -75,159 +79,10 @@ do
cd ../../
done
-# macbook21 doesn't need grub_serial, but the buildrom-withgrub script expects it
-# (we will delete it later)
-cp resources/grub/config/macbook21/grub_usqwerty.cfg resources/grub/config/macbook21/grub_serial_usqwerty.cfg
-# build the ROM
+# build macbook21 rom
./buildrom-withgrub macbook21
-# delete the useless (nonsensical) files
-rm -rf bin/macbook21/libreboot_serial*rom
-rm -rf resources/grub/config/macbook21/grub_serial_usqwerty.cfg
-
-# Now we prepare libreboot_bin archive ready for release
-# ----------------------------------------------------------------------------------------------------------------------------
-
-echo "generating ../libreboot_bin"
-
-# delete the old one
-rm -rf ../libreboot_bin
-
-# create new directory
-mkdir ../libreboot_bin
-
-# Include the ROM's in the binary archive
-cp -r bin ../libreboot_bin
-
-# Include flashrom utility in binary archive
-cp -r flashrom ../libreboot_bin
-# For installing build dependencies
-cp builddeb ../libreboot_bin
-# For installing flashrom build dependencies
-cp builddeb-flashrom ../libreboot_bin
-# For installing bucts build dependencies
-cp builddeb-bucts ../libreboot_bin
-
-# Build scripts for flashrom and bucts
-cp builddeps-flashrom ../libreboot_bin
-cp builddeps-bucts ../libreboot_bin
-
-# Useful information
-cp README ../libreboot_bin
-cp COPYING ../libreboot_bin
-
-# Include the same documentation in binary archive
-cp -r docs ../libreboot_bin
-
-# include X60 cmos.layout file
-cp coreboot/src/mainboard/lenovo/x60/cmos.layout ../libreboot_bin/x60cmos.layout
-cp coreboot/src/mainboard/lenovo/t60/cmos.layout ../libreboot_bin/t60cmos.layout
-cp coreboot/src/mainboard/apple/macbook21/cmos.layout ../libreboot_bin/macbook21cmos.layout
-
-# X60/T60: BUC.TS utility is needed to flash libreboot while Lenovo BIOS is running
-cp -r bucts ../libreboot_bin
-
-# Include a copy of nvramtool in libreboot_bin
-cp -r coreboot/util/nvramtool ../libreboot_bin
-
-# X60/X60T/T60: Script for setting up powertop (kills high pitched noise)
-cp powertop.trisquel6 ../libreboot_bin
-cp powertop.trisquel6.init ../libreboot_bin
-
-cp macbook21_firstflash ../libreboot_bin
-
-# (lazy hack) to make builddep-flashrom work in libreboot_bin:
-cp -r resources ../libreboot_bin
-
-# X60/T60: so that the user can use libreboot_bin to overwrite lenovo bios with libreboot
-cp lenovobios_firstflash ../libreboot_bin
-cp lenovobios_secondflash ../libreboot_bin
-
-# Flashrom script (makes flashing easier: ./flash path/to/libreboot.rom)
-cp flash ../libreboot_bin
-
-# patch the version of cbfstool included in libreboot_bin,
-# so that it can be built/executed standalone
-# this modification is only suitable for the version included in libreboot_bin
-# do not patch the one in libreboot_src with this
-cp -r coreboot/util/cbfstool ../libreboot_bin/cbfstool_standalone
-cp builddeps-cbfstool ../libreboot_bin
-echo "Patching libreboot_bin/cbfstool_standalone to be buildable (and executable) without residing in coreboot source tree"
-rm -rf ../libreboot_bin/cbfstool_standalone/rmodule.c
-cp resources/cbfstool/patch/rmodule.c ../libreboot_bin/cbfstool_standalone
-cp coreboot/src/include/rmodule-defs.h ../libreboot_bin/cbfstool_standalone
-cd ../libreboot_bin
-./builddeps-cbfstool
-cd ../libreboot_src
-echo "Done (cbfstool_standalone package created in libreboot_bin)"
-
-echo "finished generating ../libreboot_bin"
-
-# Create "libreboot_meta"
-# -------------------------------------------------------------------------------------------------------------------------------
-
-echo "generating ../libreboot_meta"
-
-# delete old one
-rm -rf ../libreboot_meta
-
-# make new one
-mkdir ../libreboot_meta
-
-# MOVE unwanted parts to libreboot_meta (we'll move them back later)
-mv bucts ../libreboot_meta
-mv coreboot ../libreboot_meta
-mv flashrom ../libreboot_meta
-mv grub ../libreboot_meta
-mv "memtest86+-5.01" ../libreboot_meta
-
-# COPY wanted parts to libreboot_meta
-cp -r * ../libreboot_meta
-# DELETE unwanted ROM's from libreboot_meta
-rm -rf ../libreboot_meta/bin/*
-
-# MOVE BACK the unwanted (in meta) files back to src
-mv ../libreboot_meta/bucts .
-mv ../libreboot_meta/coreboot .
-mv ../libreboot_meta/flashrom .
-mv ../libreboot_meta/grub .
-mv ../libreboot_meta/"memtest86+-5.01" .
-
-echo "finished generating ../libreboot_meta"
-
-# Create sha512sum manifest for bin, meta and src
-# ------------------------------------------------------------------------------------------------------------------------------------
-
-echo "creating sha512sum manifest in libreboot_bin"
-cd ../libreboot_bin
-rm -rf sha512sum.txt ../sha512sum.txt
-touch ../sha512sum.txt
-for i in $(find -type f); do sha512sum "$i" >> ../sha512sum.txt; done
-mv ../sha512sum.txt .
-echo "done"
-cd ../libreboot_src
-
-echo "creating sha512sum manifest in libreboot_meta"
-cd ../libreboot_meta
-rm -rf sha512sum.txt ../sha512sum.txt
-touch ../sha512sum.txt
-for i in $(find -type f); do sha512sum "$i" >> ../sha512sum.txt; done
-mv ../sha512sum.txt .
-echo "done"
-cd ../libreboot_src
-
-# # Doing this part is pointless
-# # This should be done manually (after running 'cleandeps') before releasing the archive
-# echo "creating sha512sum manifest in libreboot_src"
-# # cd ../libreboot_bin
-# rm -rf sha512sum.txt ../sha512sum.txt
-# touch ../sha512sum.txt
-# for i in $(find -type f); do sha512sum "$i" >> ../sha512sum.txt; done
-# mv ../sha512sum.txt .
-# echo "done"
-# # cd ../libreboot_src
-
-echo "BUILD COMPLETE. Check ../libreboot_bin and ../libreboot_meta"
+echo "BUILD COMPLETE. ROM IMAGES ARE IN ./bin/"
# ------------------- DONE ----------------------
diff --git a/build-release b/build-release
new file mode 100755
index 00000000..bd034fa9
--- /dev/null
+++ b/build-release
@@ -0,0 +1,195 @@
+#!/bin/bash
+
+#
+# build-release script: generates libreboot_bin and libreboot_src release archives
+#
+# Copyright (C) 2014 Francis Rowe <info@gluglug.org.uk>
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+
+# MAKE SURE THAT YOU RAN "buildall" OR "builddeps" *AT LEAST ONCE*
+# You should also run the 'build' script before running this
+
+# Delete old archives before continuing
+# ----------------------------------------------------------------------------------------------------------------------------
+
+echo "Deleting old release archives"
+
+rm -rf libreboot_src.tar.xz
+rm -rf libreboot_bin.tar.xz
+
+# Get manifest which will be used to copy everything
+ls > releasefilelist
+
+# Prepare libreboot_src archive ready for release
+# ----------------------------------------------------------------------------------------------------------------------------
+
+echo "Preparing libreboot_src release archive"
+
+mkdir libreboot_src
+
+for resource in $(cat releasefilelist)
+do
+ cp -r $resource libreboot_src
+done
+
+cd libreboot_src
+
+# clean everything
+./cleandeps
+
+# back to main checkout directory
+cd ../
+
+# Further work in libreboot_src: delete *.git and *.svn
+# To save space since they are not useful in the release archives
+# Changes to these projects should be submitted upstream
+# ----------------------------------------------------------------------------------------------------------------------------
+
+cd libreboot_src
+
+# These instructions will also work even if .git or .svn are already deleted
+# because "rm -rf" won't complain if they are missing. It is still useful on
+# the release archives (non-git), for example if the user re-downloads these programmes.
+
+# # bucts needs .git to stay, otherwise it won't compile
+# # We don't need .git* (please submit all upstreamable changes directly to bucts upstream)
+# # removing them, to reduce the size of the archive
+# cd bucts
+# rm -rf .git
+# rm -rf .gitignore
+# cd ../
+# # it was found to cause issues when deleting:
+# # GIT_DISCOVERY_ACROSS_FILESYSTEM not set
+
+# coreboot:
+# the instructions for coreboot remain in getgb script
+# they need to stay there, because otherwise "git diff"
+# will show the blobs that were deleted (which means,
+# that libreboot would be distributing blobs)
+
+# Flashrom:
+cd flashrom
+rm -rf .svn
+cd ../
+
+# GRUB:
+cd grub/
+rm -rf .git
+rm -rf .gitignore
+cd ../
+
+# SeaBIOS:
+cd seabios
+rm -rf .git
+rm -rf .gitignore
+cd ../
+
+cd ../
+
+# Prepare libreboot_bin archive ready for release
+# ----------------------------------------------------------------------------------------------------------------------------
+
+echo "Preparing libreboot_bin release archive"
+
+mkdir libreboot_bin
+
+# Include the ROM's in the binary archive
+cp -r bin libreboot_bin/
+
+# Include flashrom utility in binary archive
+# (source only, no binaries. To eliminate cross-distro dependency issue)
+cp -r libreboot_src/flashrom libreboot_bin/
+
+# For installing build dependencies
+cp deps-trisquel libreboot_bin/
+cp deps-parabola libreboot_bin/
+
+# Build scripts for flashrom and bucts
+cp builddeps-flashrom libreboot_bin/
+cp builddeps-bucts libreboot_bin/
+
+# Include the same documentation in binary archive
+cp -r docs libreboot_bin/
+
+# include X60 cmos.layout file
+cp coreboot/src/mainboard/lenovo/x60/cmos.layout libreboot_bin/x60cmos.layout
+cp coreboot/src/mainboard/lenovo/t60/cmos.layout libreboot_bin/t60cmos.layout
+cp coreboot/src/mainboard/apple/macbook21/cmos.layout libreboot_bin/macbook21cmos.layout
+
+# X60/T60: BUC.TS utility is needed to flash libreboot while Lenovo BIOS is running
+# (source only, no binaries. To eliminate cross-distro dependency issue)
+cp -r libreboot_src/bucts libreboot_bin/
+
+# Include a copy of nvramtool in libreboot_bin
+# (source only, no binaries. To eliminate cross-distro dependency issue)
+cp -r libreboot_src/coreboot/util/nvramtool libreboot_bin/
+
+# X60/X60T/T60: Script for setting up powertop (kills high pitched noise)
+cp powertop.trisquel6 libreboot_bin/
+cp powertop.trisquel6.init libreboot_bin/
+
+cp macbook21_firstflash ../libreboot_bin
+
+# (lazy hack) to make builddep-flashrom work in libreboot_bin:
+cp -r resources libreboot_bin/
+
+# X60/T60: so that the user can use libreboot_bin to overwrite lenovo bios with libreboot
+cp lenovobios_firstflash libreboot_bin/
+cp lenovobios_secondflash libreboot_bin/
+
+# Flashrom script (makes flashing easier: ./flash path/to/libreboot.rom)
+cp flash libreboot_bin/
+
+# patch the version of cbfstool included in libreboot_bin,
+# so that it can be built/executed standalone
+# this modification is only suitable for the version included in libreboot_bin
+# do not patch the one in libreboot_src with this
+# (source only, no binaries. To eliminate cross-distro dependency issue)
+cp -r libreboot_src/coreboot/util/cbfstool libreboot_bin/cbfstool_standalone
+# Patching libreboot_bin/cbfstool_standalone to be buildable (and executable) without residing in coreboot source tree
+rm -rf libreboot_bin/cbfstool_standalone/rmodule.c
+cp resources/cbfstool/patch/rmodule.c libreboot_bin/cbfstool_standalone/rmodule.c
+cp libreboot_src/coreboot/src/include/rmodule-defs.h libreboot_bin/cbfstool_standalone/rmodule-defs.h
+
+# Create the release tarballs
+# ----------------------------------------------------------------------------------------------------------------------------
+
+# Also delete the manifest
+rm -rf libreboot_src/releasefilelist
+rm -rf libreboot_bin/releasefilelist
+rm -rf releasefilelist
+
+echo "Creating compressed libreboot_src release archive"
+
+# create lzma compressed src archive
+tar cfJ libreboot_src.tar.xz libreboot_src
+
+echo "Creating compressed libreboot_bin release archive"
+
+# create lzma compressed bin archive
+tar cfJ libreboot_bin.tar.xz libreboot_bin
+
+# Delete the uncompressed release directories
+# ----------------------------------------------------------------------------------------------------------------------------
+
+echo "Deleted the uncompressed release archives"
+
+rm -rf libreboot_src
+rm -rf libreboot_bin
+
+echo "DONE. See libreboot_src.tar.xz and libreboot_bin.tar.xz"
+
+# ------------------- DONE ----------------------
diff --git a/buildall b/buildall
index 3e54a353..9535e470 100755
--- a/buildall
+++ b/buildall
@@ -2,7 +2,7 @@
# buildall script: Builds (absolutely) everything.
#
-# Copyright (C) 2014 Francis Rowe
+# Copyright (C) 2014 Francis Rowe <info@gluglug.org.uk>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/builddeps b/builddeps
index 6e57e985..57697daa 100755
--- a/builddeps
+++ b/builddeps
@@ -2,7 +2,7 @@
# builddeps script: builds the dependencies needed for 'build' to compile the ROM images
#
-# Copyright (C) 2014 Francis Rowe
+# Copyright (C) 2014 Francis Rowe <info@gluglug.org.uk>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -52,6 +52,21 @@
./builddeps-flashrom
+# Build SeaBIOS (legacy X86 BIOS payload for coreboot)
+# --------------------------------------------------------------------
+
+./builddeps-seabios
+
+# Build GRUB Invaders
+# --------------------------------------------------------------------
+
+./builddeps-grubinvaders
+
+# Build i945-pwm
+# --------------------------------------------------------------------
+
+./builddeps-i945pwm
+
# ------------------- DONE ----------------------
diff --git a/builddeps-bucts b/builddeps-bucts
index 5a4620a1..e9dd5697 100755
--- a/builddeps-bucts
+++ b/builddeps-bucts
@@ -2,7 +2,7 @@
# builddeps-bucts: builds bucts source code
#
-# Copyright (C) 2014 Francis Rowe
+# Copyright (C) 2014 Francis Rowe <info@gluglug.org.uk>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/builddeps-cbfstool b/builddeps-cbfstool
index 4a57dd56..515a21be 100755
--- a/builddeps-cbfstool
+++ b/builddeps-cbfstool
@@ -2,7 +2,7 @@
# builddeps-cbfstool script: builds cbfstool (this script is for libreboot_bin)
#
-# Copyright (C) 2014 Francis Rowe
+# Copyright (C) 2014 Francis Rowe <info@gluglug.org.uk>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/builddeps-coreboot b/builddeps-coreboot
index 3c4aa2b2..e46cecf6 100755
--- a/builddeps-coreboot
+++ b/builddeps-coreboot
@@ -2,7 +2,7 @@
# builddeps-coreboot: builds the dependencies that coreboot needs before building a ROM image
#
-# Copyright (C) 2014 Francis Rowe
+# Copyright (C) 2014 Francis Rowe <info@gluglug.org.uk>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -57,7 +57,20 @@ rm -rf grub.elf
make crossgcc-clean
make crossgcc
-# done. go back to main directory
+# build libpayload
+cd payloads/libpayload
+make clean
+rm -rf install
+# copy the config
+rm -rf .config
+cp ../../../resources/libreboot/config/libpayload/config .config
+# build libpayload (root not needed for make install. it puts under 'install' directory in same directory)
+make
+make install
+# come back to main coreboot directory
+cd ../../
+
+# done. go back to main libreboot_src directory
cd ../
# ------------------- DONE ----------------------
diff --git a/builddeps-flashrom b/builddeps-flashrom
index 38ad23a1..42db84d8 100755
--- a/builddeps-flashrom
+++ b/builddeps-flashrom
@@ -2,7 +2,7 @@
# builddeps-flashrom: builds flashrom source code
#
-# Copyright (C) 2014 Francis Rowe
+# Copyright (C) 2014 Francis Rowe <info@gluglug.org.uk>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/builddeps-grub b/builddeps-grub
index cb866965..85af1064 100755
--- a/builddeps-grub
+++ b/builddeps-grub
@@ -2,7 +2,7 @@
# builddeps-grub: builds GRUB source code
#
-# Copyright (C) 2014 Francis Rowe
+# Copyright (C) 2014 Francis Rowe <info@gluglug.org.uk>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/builddeb-flashrom b/builddeps-grubinvaders
index aeb5b04f..93f6f2f1 100755
--- a/builddeb-flashrom
+++ b/builddeps-grubinvaders
@@ -1,8 +1,8 @@
#!/bin/bash
-# builddeb-flashrom script: installs flashrom build dependencies
+# builddeps-grubinvaders script: builds grub invaders source code
#
-# Copyright (C) 2014 Francis Rowe
+# Copyright (C) 2014 Francis Rowe <info@gluglug.org.uk>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -18,12 +18,24 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
-# Install build dependencies
-# For trisquel. This might also work on other apt-get distributions.
+# This script is used by the main "builddeps" script in libreboot src/meta archives.
+# The reason it is seperated here is so that MemTest86+ can be built separately aswell.
-# Flashrom build dependencies (also requires build-essential and subversion)
-# ------------------------------------------------------------
+# To use this script, you will need the dependencies in "builddeb".
+# Run it, or adapt it if you do not use an "apt-get" distro.
-sudo apt-get -y install libpci-dev pciutils zlib1g-dev libftdi-dev build-essential subversion
+# Build GRUB Invaders payload (for GRUB)
+# --------------------------------------------------------------------
+
+cd grubinvaders
+
+# clean it first
+./clean.sh
+
+# build grub invaders
+./compile.sh
+
+# done. go back to main directory
+cd ../
# ------------------- DONE ----------------------
diff --git a/builddeb-bucts b/builddeps-i945pwm
index 10be44f6..9d3d143a 100755
--- a/builddeb-bucts
+++ b/builddeps-i945pwm
@@ -1,8 +1,8 @@
#!/bin/bash
-# builddeps-bucts script: (for Trisquel 6) installs bucts build dependencies
+# builddeps-i945pwm: builds i945-pwm source code
#
-# Copyright (C) 2014 Francis Rowe
+# Copyright (C) 2014 Francis Rowe <info@gluglug.org.uk>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -18,13 +18,21 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
-# Install build dependencies
-# For trisquel. Probably will work on others too.
+# To build i945-pwm, you will need the dependencies in "builddeb".
+# Run it, or adapt it if you do not use an "apt-get" distro.
-# BucTS build dependencies
-# ------------------------------------------------------------
+# Build i945-pwm utility
+# --------------------------------------------------------------------
-sudo apt-get -y install build-essential
+cd resources/utilities/i945-pwm/
-# ------------------- DONE ----------------------
+# clean it first
+make clean
+
+# build it
+make
+# done. go back to main directory
+cd ../../../
+
+# ------------------- DONE ----------------------
diff --git a/builddeps-memtest86 b/builddeps-memtest86
index e6e326c5..e0b85fb1 100755
--- a/builddeps-memtest86
+++ b/builddeps-memtest86
@@ -2,7 +2,7 @@
# builddeps-memtest86 script: builds memtest86+ source code
#
-# Copyright (C) 2014 Francis Rowe
+# Copyright (C) 2014 Francis Rowe <info@gluglug.org.uk>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/builddeps-seabios b/builddeps-seabios
new file mode 100755
index 00000000..0cf0382e
--- /dev/null
+++ b/builddeps-seabios
@@ -0,0 +1,49 @@
+#!/bin/bash
+
+# builddeps-coreboot: builds the dependencies that coreboot needs before building a ROM image
+#
+# Copyright (C) 2014 Francis Rowe <info@gluglug.org.uk>
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+
+# This script is used by the main "builddeps" script in libreboot src/meta archives.
+# The reason it is seperated here is so that coreboot can be built separately aswell.
+
+# To use this script, you will need the dependencies in "builddeb".
+# Run it, or adapt it if you do not use an "apt-get" distro.
+
+# This is also used by the "getcb" script.
+
+# Build utilities needed in coreboot directory
+# --------------------------------------------------------------------
+
+cd seabios
+
+# clean coreboot first
+make clean
+
+# copy the config that was created for this release
+cp ../resources/seabios/config/config .config
+
+# build
+make
+
+# delete the copy of the config (no longer needed)
+rm -rf .config
+
+# done. go back to main directory
+cd ../
+
+# ------------------- DONE ----------------------
diff --git a/buildrom-withgrub b/buildrom-withgrub
index c7eb2802..51ae22e7 100755
--- a/buildrom-withgrub
+++ b/buildrom-withgrub
@@ -3,7 +3,7 @@
# buildrom-withgrub script: this generically builds the ROM images.
# The ROM images built by this script will use the GRUB payload.
#
-# Copyright (C) 2014 Francis Rowe
+# Copyright (C) 2014 Francis Rowe <info@gluglug.org.uk>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -22,9 +22,6 @@
# DO NOT RUN THIS DIRECTLY!
# Use "build"
-# base ROM's: coreboot_usqwerty.rom and coreboot_serial_usqwerty.rom
-# All other ROM's will be based on one of these.
-
if (( $# != 1 )); then
echo "Usage: ./buildrom-withgrub boardname"
echo "Example: ./buildrom-withgrub x60"
@@ -42,78 +39,95 @@ rm -rf .config
mv util/cbfstool/cbfstool .
# prepare libreboot configuration and build it
+# it is assumed that these configs use coreboot text-mode
+# instead of coreboot framebuffer, by default
cp ../resources/libreboot/config/$1/config .config
-
# coreboot.rom will appear under ./coreboot/build
make
-
# move it out (we'll be cleaning the build)
-# also rename it to libreboot_usqwerty.rom
-mv build/coreboot.rom libreboot_usqwerty.rom
-
+mv build/coreboot.rom libreboot_txtmode.rom
# clean the build
make clean
-rm -rf .config
-# Insert files/configurations and perform operations that are common on all ROM images
-# ---------------------------------------------------------------------------------------------------------------
+# Now prepare ROM images that use coreboot vesa framebuffer instead of text mode.
+mv .config config_txtmode
+# create .config for vesa framebuffer (instead of text mode)
+sed 's/# CONFIG_FRAMEBUFFER_KEEP_VESA_MODE is not set/CONFIG_FRAMEBUFFER_KEEP_VESA_MODE=y/' < config_txtmode > .config
+# build new ROM
+make
+mv build/coreboot.rom libreboot_vesafb.rom
+# clean coreboot (again)
+make clean
-# Add background image and font
-./cbfstool libreboot_usqwerty.rom add -f ../resources/grub/background/background.jpg -n background.jpg -t raw
-./cbfstool libreboot_usqwerty.rom add -f ../resources/grub/background/gnulove.jpg -n gnulove.jpg -t raw
-./cbfstool libreboot_usqwerty.rom add -f ../resources/grub/font/dejavusansmono.pf2 -n dejavusansmono.pf2 -t raw
+# copies no longer needed
+rm -rf .config config_txtmode
-# Insert files/configurations and perform operations that are common on *serial* ROM images
+# Insert files/configurations and perform operations that are common on all images
# ---------------------------------------------------------------------------------------------------------------
-# ROM's based on this will have MemTest86+ included inside.
-cp libreboot_usqwerty.rom libreboot_serial_usqwerty.rom
-
-# Add memtest86+ to libreboot_serial_usqwerty.rom
-./cbfstool libreboot_serial_usqwerty.rom add -f ../memtest86+-5.01/memtest -n memtest -t raw
+for rom in libreboot_vesafb.rom libreboot_txtmode.rom
+do
+ # Add SeaBIOS and SeaVGABIOS
+ ./cbfstool $rom add -f ../seabios/out/vgabios.bin -n vgaroms/vgabios.bin -t raw
+ ./cbfstool $rom add -f ../seabios/out/bios.bin.elf -n bios.bin.elf -t raw
+done
-# Prepare ROM's (based on libreboot_usqwerty.rom and libreboot_serial_usqwerty.rom) with
-# alternative keyboard layout configurations inside GRUB
+# Insert files/configurations and perform operations that are common on libreboot_vesafb.rom (coreboot framebuffer configuration)
# ---------------------------------------------------------------------------------------------------------------
-# The for loops MUST be separate. Do NOT re-factor them!
+# Add background image and font
+./cbfstool libreboot_vesafb.rom add -f ../resources/grub/background/background.jpg -n background.jpg -t raw
+# ./cbfstool libreboot_vesafb.rom add -f ../resources/grub/background/gnulove.jpg -n gnulove.jpg -t raw
+./cbfstool libreboot_vesafb.rom add -f ../resources/grub/font/dejavusansmono.pf2 -n dejavusansmono.pf2 -t raw
-# default configs
-cp ../resources/grub/config/$1/grub_usqwerty.cfg .
-cp ../resources/grub/config/$1/grub_serial_usqwerty.cfg .
+# Insert files/configurations and perform operations that are common on libreboot_txtmode.rom (coreboot text mode)
+# ---------------------------------------------------------------------------------------------------------------
-for keymap in $(ls ../resources/grub/keymap/original)
-do
- # copy the ROM based on the keymap
- cp libreboot_usqwerty.rom libreboot_"$keymap".rom
- cp libreboot_serial_usqwerty.rom libreboot_serial_"$keymap".rom
-done
+# Add memtest86+
+./cbfstool libreboot_txtmode.rom add -f ../memtest86+-5.01/memtest -n memtest -t raw
-for keymap in $(ls ../resources/grub/keymap/original)
-do
- # copy the config based on the keymap:
- cp grub_usqwerty.cfg grub_"$keymap".cfg
- cp grub_serial_usqwerty.cfg grub_serial_"$keymap".cfg
-done
+# Add GRUB Invaders
+./cbfstool libreboot_txtmode.rom add -f ../grubinvaders/invaders -n invaders -t raw
+./cbfstool libreboot_txtmode.rom add -f ../grubinvaders/invaders.exec -n invaders.exec -t raw
-for keymap in $(ls ../resources/grub/keymap/original)
-do
- # Insert GRUB keymap instructions into the config
- echo "keymap $keymap" >> grub_"$keymap".cfg
- echo "keymap $keymap" >> grub_serial_"$keymap".cfg
-done
+# Generate the GRUB configurations and add them to each ROM image as grub.cfg and grubtest.cfg
+# ---------------------------------------------------------------------------------------------------------------
-for keymap in $(ls ../resources/grub/keymap/original)
+for keymap in $(ls ../resources/utilities/grub-assemble/keymap/original)
do
- # Set the GRUB keymap for the given ROM image
- ./cbfstool libreboot_"$keymap".rom add -f grub_"$keymap".cfg -n grub.cfg -t raw
- ./cbfstool libreboot_serial_"$keymap".rom add -f grub_serial_"$keymap".cfg -n grub.cfg -t raw
+ for romtype in txtmode vesafb
+ do
+ # copy the images based on the keymap
+ cp libreboot_"$romtype".rom libreboot_"$keymap"_"$romtype".rom
+
+ # generate the correct grub config
+ touch grub_"$keymap"_"$romtype".cfg
+ # generate contents:
+ cat ../resources/grub/config/extra/common.cfg >> grub_"$keymap"_"$romtype".cfg
+ cat ../resources/grub/config/extra/"$romtype".cfg >> grub_"$keymap"_"$romtype".cfg
+ echo "keymap $keymap" >> grub_"$keymap"_"$romtype".cfg
+ cat ../resources/grub/config/menuentries/common.cfg >> grub_"$keymap"_"$romtype".cfg
+ cat ../resources/grub/config/menuentries/"$romtype".cfg >> grub_"$keymap"_"$romtype".cfg
+
+ # Insert grub config into the image
+ ./cbfstool libreboot_"$keymap"_"$romtype".rom add -f grub_"$keymap"_"$romtype".cfg -n grub.cfg -t raw
+
+ # grubtest.cfg should be able to switch back to grub.cfg
+ sed 's/grubtest.cfg/grub.cfg/' < grub_"$keymap"_"$romtype".cfg > grub_"$keymap"_"$romtype"_test.cfg
+
+ # Insert grub test config into the image (for the user to test modifications to before modifying the main one)
+ ./cbfstool libreboot_"$keymap"_"$romtype".rom add -f grub_"$keymap"_"$romtype"_test.cfg -n grubtest.cfg -t raw
+ done
done
-# we don't need the grub.cfg's anymore
+# we don't need the generic rom images anymore
+rm -rf libreboot_txtmode.rom
+rm -rf libreboot_vesafb.rom
+
+# we don't need the grub configs anymore
rm -rf grub*cfg
-# Now we clean up and prepare the binary archive ready for release.
+# Now we clean up and prepare the bin directory containing all the images
# ----------------------------------------------------------------------------------------------------------------------------
# prepare directory for new ROM images
diff --git a/cleandeps b/cleandeps
index 220f544e..2f47bdc0 100755
--- a/cleandeps
+++ b/cleandeps
@@ -2,7 +2,7 @@
# cleandeps script: cleans everything (make clean)
#
-# Copyright (C) 2014 Francis Rowe
+# Copyright (C) 2014 Francis Rowe <info@gluglug.org.uk>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -45,6 +45,12 @@ rm -rf grub.elf
# clean reference crossGCC for coreboot
make crossgcc-clean
+# clean libpayload
+cd payloads/libpayload
+make clean
+rm -rf install
+cd ../../
+
# done. go back to main directory
cd ../
@@ -90,6 +96,33 @@ rm -rf flashrom_lenovobios_macronix
# done. go back to main directory
cd ../
+# clean seabios
+# --------------------------------------------------------
+
+cd seabios
+
+make clean
+
+cd ../
+
+# clean grubinvaders
+# --------------------------------------------------------
+
+cd grubinvaders
+
+./clean.sh
+
+cd ../
+
+# clean i945-pwm
+# --------------------------------------------------------
+
+cd resources/utilities/i945-pwm
+
+make clean
+
+cd ../../../
+
# a few more things to do last
# --------------------------------------------------------
diff --git a/dejavu-fonts-ttf-2.34/ttf/DejaVuSans-Bold.ttf b/dejavu-fonts-ttf-2.34/ttf/DejaVuSans-Bold.ttf
deleted file mode 100644
index 08695f23..00000000
--- a/dejavu-fonts-ttf-2.34/ttf/DejaVuSans-Bold.ttf
+++ /dev/null
Binary files differ
diff --git a/dejavu-fonts-ttf-2.34/ttf/DejaVuSans-BoldOblique.ttf b/dejavu-fonts-ttf-2.34/ttf/DejaVuSans-BoldOblique.ttf
deleted file mode 100644
index 7e3bcc10..00000000
--- a/dejavu-fonts-ttf-2.34/ttf/DejaVuSans-BoldOblique.ttf
+++ /dev/null
Binary files differ
diff --git a/dejavu-fonts-ttf-2.34/ttf/DejaVuSans-ExtraLight.ttf b/dejavu-fonts-ttf-2.34/ttf/DejaVuSans-ExtraLight.ttf
deleted file mode 100644
index f4b3041b..00000000
--- a/dejavu-fonts-ttf-2.34/ttf/DejaVuSans-ExtraLight.ttf
+++ /dev/null
Binary files differ
diff --git a/dejavu-fonts-ttf-2.34/ttf/DejaVuSans-Oblique.ttf b/dejavu-fonts-ttf-2.34/ttf/DejaVuSans-Oblique.ttf
deleted file mode 100644
index e33ab144..00000000
--- a/dejavu-fonts-ttf-2.34/ttf/DejaVuSans-Oblique.ttf
+++ /dev/null
Binary files differ
diff --git a/dejavu-fonts-ttf-2.34/ttf/DejaVuSans.ttf b/dejavu-fonts-ttf-2.34/ttf/DejaVuSans.ttf
deleted file mode 100644
index 9d40c325..00000000
--- a/dejavu-fonts-ttf-2.34/ttf/DejaVuSans.ttf
+++ /dev/null
Binary files differ
diff --git a/dejavu-fonts-ttf-2.34/ttf/DejaVuSansCondensed-Bold.ttf b/dejavu-fonts-ttf-2.34/ttf/DejaVuSansCondensed-Bold.ttf
deleted file mode 100644
index 4c40003d..00000000
--- a/dejavu-fonts-ttf-2.34/ttf/DejaVuSansCondensed-Bold.ttf
+++ /dev/null
Binary files differ
diff --git a/dejavu-fonts-ttf-2.34/ttf/DejaVuSansCondensed-BoldOblique.ttf b/dejavu-fonts-ttf-2.34/ttf/DejaVuSansCondensed-BoldOblique.ttf
deleted file mode 100644
index 24b611b1..00000000
--- a/dejavu-fonts-ttf-2.34/ttf/DejaVuSansCondensed-BoldOblique.ttf
+++ /dev/null
Binary files differ
diff --git a/dejavu-fonts-ttf-2.34/ttf/DejaVuSansCondensed-Oblique.ttf b/dejavu-fonts-ttf-2.34/ttf/DejaVuSansCondensed-Oblique.ttf
deleted file mode 100644
index 1e0526f9..00000000
--- a/dejavu-fonts-ttf-2.34/ttf/DejaVuSansCondensed-Oblique.ttf
+++ /dev/null
Binary files differ
diff --git a/dejavu-fonts-ttf-2.34/ttf/DejaVuSansCondensed.ttf b/dejavu-fonts-ttf-2.34/ttf/DejaVuSansCondensed.ttf
deleted file mode 100644
index 7f168d13..00000000
--- a/dejavu-fonts-ttf-2.34/ttf/DejaVuSansCondensed.ttf
+++ /dev/null
Binary files differ
diff --git a/dejavu-fonts-ttf-2.34/ttf/DejaVuSansMono-Bold.ttf b/dejavu-fonts-ttf-2.34/ttf/DejaVuSansMono-Bold.ttf
deleted file mode 100644
index 9c716794..00000000
--- a/dejavu-fonts-ttf-2.34/ttf/DejaVuSansMono-Bold.ttf
+++ /dev/null
Binary files differ
diff --git a/dejavu-fonts-ttf-2.34/ttf/DejaVuSansMono-BoldOblique.ttf b/dejavu-fonts-ttf-2.34/ttf/DejaVuSansMono-BoldOblique.ttf
deleted file mode 100644
index d6536a5c..00000000
--- a/dejavu-fonts-ttf-2.34/ttf/DejaVuSansMono-BoldOblique.ttf
+++ /dev/null
Binary files differ
diff --git a/dejavu-fonts-ttf-2.34/ttf/DejaVuSansMono-Oblique.ttf b/dejavu-fonts-ttf-2.34/ttf/DejaVuSansMono-Oblique.ttf
deleted file mode 100644
index e1af3413..00000000
--- a/dejavu-fonts-ttf-2.34/ttf/DejaVuSansMono-Oblique.ttf
+++ /dev/null
Binary files differ
diff --git a/dejavu-fonts-ttf-2.34/ttf/DejaVuSerif-Bold.ttf b/dejavu-fonts-ttf-2.34/ttf/DejaVuSerif-Bold.ttf
deleted file mode 100644
index 3fffea61..00000000
--- a/dejavu-fonts-ttf-2.34/ttf/DejaVuSerif-Bold.ttf
+++ /dev/null
Binary files differ
diff --git a/dejavu-fonts-ttf-2.34/ttf/DejaVuSerif-BoldItalic.ttf b/dejavu-fonts-ttf-2.34/ttf/DejaVuSerif-BoldItalic.ttf
deleted file mode 100644
index 3a3a9dfe..00000000
--- a/dejavu-fonts-ttf-2.34/ttf/DejaVuSerif-BoldItalic.ttf
+++ /dev/null
Binary files differ
diff --git a/dejavu-fonts-ttf-2.34/ttf/DejaVuSerif-Italic.ttf b/dejavu-fonts-ttf-2.34/ttf/DejaVuSerif-Italic.ttf
deleted file mode 100644
index 46a718e3..00000000
--- a/dejavu-fonts-ttf-2.34/ttf/DejaVuSerif-Italic.ttf
+++ /dev/null
Binary files differ
diff --git a/dejavu-fonts-ttf-2.34/ttf/DejaVuSerif.ttf b/dejavu-fonts-ttf-2.34/ttf/DejaVuSerif.ttf
deleted file mode 100644
index 712a59b0..00000000
--- a/dejavu-fonts-ttf-2.34/ttf/DejaVuSerif.ttf
+++ /dev/null
Binary files differ
diff --git a/dejavu-fonts-ttf-2.34/ttf/DejaVuSerifCondensed-Bold.ttf b/dejavu-fonts-ttf-2.34/ttf/DejaVuSerifCondensed-Bold.ttf
deleted file mode 100644
index 673c66f0..00000000
--- a/dejavu-fonts-ttf-2.34/ttf/DejaVuSerifCondensed-Bold.ttf
+++ /dev/null
Binary files differ
diff --git a/dejavu-fonts-ttf-2.34/ttf/DejaVuSerifCondensed-BoldItalic.ttf b/dejavu-fonts-ttf-2.34/ttf/DejaVuSerifCondensed-BoldItalic.ttf
deleted file mode 100644
index 5a3ba1ab..00000000
--- a/dejavu-fonts-ttf-2.34/ttf/DejaVuSerifCondensed-BoldItalic.ttf
+++ /dev/null
Binary files differ
diff --git a/dejavu-fonts-ttf-2.34/ttf/DejaVuSerifCondensed-Italic.ttf b/dejavu-fonts-ttf-2.34/ttf/DejaVuSerifCondensed-Italic.ttf
deleted file mode 100644
index 6f8d4e40..00000000
--- a/dejavu-fonts-ttf-2.34/ttf/DejaVuSerifCondensed-Italic.ttf
+++ /dev/null
Binary files differ
diff --git a/dejavu-fonts-ttf-2.34/ttf/DejaVuSerifCondensed.ttf b/dejavu-fonts-ttf-2.34/ttf/DejaVuSerifCondensed.ttf
deleted file mode 100644
index 3291fc50..00000000
--- a/dejavu-fonts-ttf-2.34/ttf/DejaVuSerifCondensed.ttf
+++ /dev/null
Binary files differ
diff --git a/dejavu-fonts-ttf-2.34/ttf/README b/dejavu-fonts-ttf-2.34/ttf/README
new file mode 100644
index 00000000..f43ac799
--- /dev/null
+++ b/dejavu-fonts-ttf-2.34/ttf/README
@@ -0,0 +1,2 @@
+the others included in this version were deleted since they weren't needed and were just taking up space.
+You can get full archive at http://dejavu-fonts.org/wiki/Download
diff --git a/deps-parabola b/deps-parabola
new file mode 100755
index 00000000..01bbb2a5
--- /dev/null
+++ b/deps-parabola
@@ -0,0 +1,73 @@
+#!/bin/bash
+
+# buildpac script: Installs build dependencies from pacman (Parabola)
+#
+# Copyright (C) 2014 Francis Rowe <info@gluglug.org.uk>
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+
+# Install build dependencies
+# For parabola. This might also work on other pacman distributions.
+
+# Duplications are intentional. Please do not re-factor.
+#
+# This is so that individual scripts can be installed for specific applications.
+# This is, alternatively, so that I can more easily move each part to a separate script.
+#
+
+# Really. Most distros come with this anyway
+# Parabola does not! If you are using parabola, use "pacman -S wget"
+# ------------------------------------------------------------
+pacman --noconfirm -S wget
+
+# really. I'm serious. This is sinister.
+
+# For downloading source code
+# ------------------------------------------------------------
+
+pacman --noconfirm -S subversion git
+
+# For building source code:
+# ------------------------------------------------------------
+
+pacman --noconfirm -S base-devel
+
+# Memtest86+ build dependencies
+# ------------------------------------------------------------
+
+pacman --noconfirm -S base-devel
+
+# Coreboot build dependencies (also requires build-essential and git)
+# ------------------------------------------------------------
+
+pacman --noconfirm -S ncurses doxygen iasl gdb flex bison base-devel git
+
+# GRUB build dependencies (also requires build-essential, bison and flex)
+# ------------------------------------------------------------
+
+pacman --noconfirm -S ttf-unifont autogen libselinux autoconf m4 base-devel help2man automake autotools base-devel bison flex fuse xz-utils gawk dev-mapper libtool freetype2
+
+# BucTS build dependencies
+# ------------------------------------------------------------
+
+pacman --noconfirm -S base-devel
+
+# Flashrom build dependencies
+# ------------------------------------------------------------
+
+pacman --noconfirm -S pciutils zlib libftdi base-devel subversion
+
+# ------------------- DONE ----------------------
+
diff --git a/builddeb b/deps-trisquel
index f3c92d40..67798247 100755
--- a/builddeb
+++ b/deps-trisquel
@@ -2,7 +2,7 @@
# builddeb script: Installs build dependencies from apt-get (tested in Trisquel 6)
#
-# Copyright (C) 2014 Francis Rowe
+# Copyright (C) 2014 Francis Rowe <info@gluglug.org.uk>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -31,32 +31,47 @@
# Parabola does not! If you are using parabola, use "pacman -S wget"
# ------------------------------------------------------------
-sudo apt-get -y install wget
+apt-get -y install wget
# For downloading source code
# ------------------------------------------------------------
-sudo apt-get -y install subversion git
+apt-get -y install subversion git
# For building source code:
# ------------------------------------------------------------
-sudo apt-get -y install build-essential
+apt-get -y install build-essential
# Memtest86+ build dependencies
# ------------------------------------------------------------
-sudo apt-get -y install build-essential
+apt-get -y install build-essential
+
+# SeaBIOS build dependencies
+# ------------------------------------------------------------
+
+apt-get -y install build-essential
+
+# GRUB Invaders build dependencies
+# ------------------------------------------------------------
+
+apt-get -y install build-essential
+
+# i945-pwm build dependencies
+# ------------------------------------------------------------
+
+apt-get -y install build-essential
# Coreboot build dependencies (also requires build-essential and git)
# ------------------------------------------------------------
-sudo apt-get -y install libncurses5-dev doxygen iasl gdb flex bison build-essential git
+apt-get -y install libncurses5-dev doxygen iasl gdb flex bison build-essential git
# GRUB build dependencies (also requires build-essential, bison and flex)
# ------------------------------------------------------------
-sudo apt-get -y install ttf-unifont libopts25 libselinux1-dev autogen m4 autoconf help2man libopts25-dev libfont-freetype-perl automake autotools-dev build-essential bison flex libfuse-dev liblzma-dev gawk libdevmapper-dev libtool libfreetype6-dev
+apt-get -y install ttf-unifont libopts25 libselinux1-dev autogen m4 autoconf help2man libopts25-dev libfont-freetype-perl automake autotools-dev build-essential bison flex libfuse-dev liblzma-dev gawk libdevmapper-dev libtool libfreetype6-dev
#
# The following have had their dependency lists moved to external scripts:
@@ -68,12 +83,12 @@ sudo apt-get -y install ttf-unifont libopts25 libselinux1-dev autogen m4 autocon
# BucTS build dependencies (external script)
# ------------------------------------------------------------
-sudo ./builddeb-bucts
+apt-get -y install build-essential
# Flashrom build dependencies (also requires build-essential and subversion)
# ------------------------------------------------------------
-sudo ./builddeb-flashrom
+apt-get -y install libpci-dev pciutils zlib1g-dev libftdi-dev build-essential subversion
# ------------------- DONE ----------------------
diff --git a/docs/future/donotusethis_macbook_acpi.diff b/docs/future/donotusethis_macbook_acpi.diff
new file mode 100644
index 00000000..61a55c64
--- /dev/null
+++ b/docs/future/donotusethis_macbook_acpi.diff
@@ -0,0 +1,28 @@
+diff --git a/src/mainboard/apple/macbook21/mainboard.c b/src/mainboard/apple/macbook21/mainboard.c
+index 9a025dd..a2adb76 100644
+--- a/src/mainboard/apple/macbook21/mainboard.c
++++ b/src/mainboard/apple/macbook21/mainboard.c
+@@ -40,6 +40,12 @@
+ extern const u32 *cim_verb_data;
+ extern u32 cim_verb_data_size;
+
++static acpi_cstate_t cst_entries[] = {
++ { 1, 1, 1000, { 0x7f, 1, 2, { 0 }, 1, 0 } },
++ { 2, 1, 500, { 0x01, 8, 0, { 0 }, DEFAULT_PMBASE + LV2, 0 } },
++ { 2, 17, 250, { 0x01, 8, 0, { 0 }, DEFAULT_PMBASE + LV3, 0 } },
++};
++
+ #if CONFIG_PCI_OPTION_ROM_RUN_YABEL || CONFIG_PCI_OPTION_ROM_RUN_REALMODE
+ static int int15_handler(void)
+ {
+@@ -73,7 +79,8 @@ static int int15_handler(void)
+
+ int get_cst_entries(acpi_cstate_t **entries)
+ {
+- return 0;
++ *entries = cst_entries;
++ return ARRAY_SIZE(cst_entries);
+ }
+
+ static void mainboard_init(device_t dev)
+
diff --git a/docs/future/dumps/pte_x60_6718/dmesg b/docs/future/dumps/pte_x60_6718/dmesg
new file mode 100644
index 00000000..2e84f944
--- /dev/null
+++ b/docs/future/dumps/pte_x60_6718/dmesg
@@ -0,0 +1,2071 @@
+[ 0.000000] Initializing cgroup subsys cpuset
+[ 0.000000] Initializing cgroup subsys cpu
+[ 0.000000] Initializing cgroup subsys cpuacct
+[ 0.000000] Linux version 3.13.0-34-generic (root@devel.trisquel.info) (gcc version 4.8.2 (Ubuntu 4.8.2-19ubuntu1) ) #0trisquel2 SMP Wed Aug 27 02:19:14 UTC 2014 (Ubuntu 3.13.0-34.60+7.0trisquel2-generic 3.13.11.4-gnu)
+[ 0.000000] Command line: BOOT_IMAGE=/vmlinuz root=/dev/mapper/buzz-distro cryptdevice=/dev/mapper/buzz-distro:root quiet splash drm.debug=0x06 ro
+[ 0.000000] KERNEL supported cpus:
+[ 0.000000] Intel GenuineIntel
+[ 0.000000] AMD AuthenticAMD
+[ 0.000000] Centaur CentaurHauls
+[ 0.000000] e820: BIOS-provided physical RAM map:
+[ 0.000000] BIOS-e820: [mem 0x0000000000000000-0x0000000000000fff] type 16
+[ 0.000000] BIOS-e820: [mem 0x0000000000001000-0x000000000009ffff] usable
+[ 0.000000] BIOS-e820: [mem 0x00000000000c0000-0x00000000000fffff] reserved
+[ 0.000000] BIOS-e820: [mem 0x0000000000100000-0x000000007f6d4fff] usable
+[ 0.000000] BIOS-e820: [mem 0x000000007f6d5000-0x000000007f7fffff] type 16
+[ 0.000000] BIOS-e820: [mem 0x000000007f800000-0x000000007fffffff] reserved
+[ 0.000000] BIOS-e820: [mem 0x00000000f0000000-0x00000000f3ffffff] reserved
+[ 0.000000] NX (Execute Disable) protection: active
+[ 0.000000] SMBIOS 2.7 present.
+[ 0.000000] DMI: LENOVO 1702L8G/1702L8G, BIOS CBET4000 7BETC7WW (2.08 ) 08/30/2014
+[ 0.000000] e820: update [mem 0x00000000-0x00000fff] usable ==> reserved
+[ 0.000000] e820: remove [mem 0x000a0000-0x000fffff] usable
+[ 0.000000] No AGP bridge found
+[ 0.000000] e820: last_pfn = 0x7f6d5 max_arch_pfn = 0x400000000
+[ 0.000000] MTRR default type: uncachable
+[ 0.000000] MTRR fixed ranges enabled:
+[ 0.000000] 00000-9FFFF write-back
+[ 0.000000] A0000-BFFFF uncachable
+[ 0.000000] C0000-FFFFF write-back
+[ 0.000000] MTRR variable ranges enabled:
+[ 0.000000] 0 base 000000000 mask F80000000 write-back
+[ 0.000000] 1 base 07F800000 mask FFF800000 uncachable
+[ 0.000000] 2 base 0D0000000 mask FF0000000 write-combining
+[ 0.000000] 3 disabled
+[ 0.000000] 4 disabled
+[ 0.000000] 5 disabled
+[ 0.000000] 6 disabled
+[ 0.000000] 7 disabled
+[ 0.000000] x86 PAT enabled: cpu 0, old 0x7040600070406, new 0x7010600070106
+[ 0.000000] found SMP MP-table at [mem 0x000f0400-0x000f040f] mapped at [ffff8800000f0400]
+[ 0.000000] Scanning 1 areas for low memory corruption
+[ 0.000000] Base memory trampoline at [ffff880000099000] 99000 size 24576
+[ 0.000000] init_memory_mapping: [mem 0x00000000-0x000fffff]
+[ 0.000000] [mem 0x00000000-0x000fffff] page 4k
+[ 0.000000] BRK [0x01fe0000, 0x01fe0fff] PGTABLE
+[ 0.000000] BRK [0x01fe1000, 0x01fe1fff] PGTABLE
+[ 0.000000] BRK [0x01fe2000, 0x01fe2fff] PGTABLE
+[ 0.000000] init_memory_mapping: [mem 0x7f400000-0x7f5fffff]
+[ 0.000000] [mem 0x7f400000-0x7f5fffff] page 2M
+[ 0.000000] BRK [0x01fe3000, 0x01fe3fff] PGTABLE
+[ 0.000000] init_memory_mapping: [mem 0x7c000000-0x7f3fffff]
+[ 0.000000] [mem 0x7c000000-0x7f3fffff] page 2M
+[ 0.000000] init_memory_mapping: [mem 0x00100000-0x7bffffff]
+[ 0.000000] [mem 0x00100000-0x001fffff] page 4k
+[ 0.000000] [mem 0x00200000-0x7bffffff] page 2M
+[ 0.000000] init_memory_mapping: [mem 0x7f600000-0x7f6d4fff]
+[ 0.000000] [mem 0x7f600000-0x7f6d4fff] page 4k
+[ 0.000000] BRK [0x01fe4000, 0x01fe4fff] PGTABLE
+[ 0.000000] RAMDISK: [mem 0x35122000-0x36888fff]
+[ 0.000000] ACPI: RSDP 00000000000f0800 000024 (v02 CORE )
+[ 0.000000] ACPI: XSDT 000000007f7de0e0 00004C (v01 CORE COREBOOT 00000000 CORE 00000000)
+[ 0.000000] ACPI: HPET 000000007f7de210 000038 (v01 CORE COREBOOT 00000000 CORE 00000000)
+[ 0.000000] ACPI: APIC 000000007f7de250 000068 (v01 CORE COREBOOT 00000000 CORE 00000000)
+[ 0.000000] ACPI: MCFG 000000007f7de2c0 00003C (v01 CORE COREBOOT 00000000 CORE 00000000)
+[ 0.000000] ACPI: FACP 000000007f7e15c0 0000F4 (v03 CORE COREBOOT 00000000 CORE 00000000)
+[ 0.000000] ACPI: DSDT 000000007f7de340 003171 (v03 COREv4 COREBOOT 20090419 INTL 20140114)
+[ 0.000000] ACPI: FACS 000000007f7de300 000040
+[ 0.000000] ACPI: SSDT 000000007f7e16c0 000306 (v02 CORE COREBOOT 0000002A CORE 0000002A)
+[ 0.000000] ACPI: Local APIC address 0xfee00000
+[ 0.000000] No NUMA configuration found
+[ 0.000000] Faking a node at [mem 0x0000000000000000-0x000000007f6d4fff]
+[ 0.000000] Initmem setup node 0 [mem 0x00000000-0x7f6d4fff]
+[ 0.000000] NODE_DATA [mem 0x7f6d0000-0x7f6d4fff]
+[ 0.000000] [ffffea0000000000-ffffea0001ffffff] PMD -> [ffff88007ce00000-ffff88007edfffff] on node 0
+[ 0.000000] Zone ranges:
+[ 0.000000] DMA [mem 0x00001000-0x00ffffff]
+[ 0.000000] DMA32 [mem 0x01000000-0xffffffff]
+[ 0.000000] Normal empty
+[ 0.000000] Movable zone start for each node
+[ 0.000000] Early memory node ranges
+[ 0.000000] node 0: [mem 0x00001000-0x0009ffff]
+[ 0.000000] node 0: [mem 0x00100000-0x7f6d4fff]
+[ 0.000000] On node 0 totalpages: 521844
+[ 0.000000] DMA zone: 64 pages used for memmap
+[ 0.000000] DMA zone: 22 pages reserved
+[ 0.000000] DMA zone: 3999 pages, LIFO batch:0
+[ 0.000000] DMA32 zone: 8092 pages used for memmap
+[ 0.000000] DMA32 zone: 517845 pages, LIFO batch:31
+[ 0.000000] ACPI: PM-Timer IO Port: 0x508
+[ 0.000000] ACPI: Local APIC address 0xfee00000
+[ 0.000000] ACPI: LAPIC (acpi_id[0x00] lapic_id[0x00] enabled)
+[ 0.000000] ACPI: LAPIC (acpi_id[0x01] lapic_id[0x01] enabled)
+[ 0.000000] ACPI: LAPIC_NMI (acpi_id[0x00] high edge lint[0x1])
+[ 0.000000] ACPI: LAPIC_NMI (acpi_id[0x01] high edge lint[0x1])
+[ 0.000000] ACPI: IOAPIC (id[0x02] address[0xfec00000] gsi_base[0])
+[ 0.000000] IOAPIC[0]: apic_id 2, version 32, address 0xfec00000, GSI 0-23
+[ 0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 high edge)
+[ 0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level)
+[ 0.000000] ACPI: IRQ0 used by override.
+[ 0.000000] ACPI: IRQ2 used by override.
+[ 0.000000] ACPI: IRQ9 used by override.
+[ 0.000000] Using ACPI (MADT) for SMP configuration information
+[ 0.000000] ACPI: HPET id: 0x8086a201 base: 0xfed00000
+[ 0.000000] smpboot: Allowing 2 CPUs, 0 hotplug CPUs
+[ 0.000000] nr_irqs_gsi: 40
+[ 0.000000] PM: Registered nosave memory: [mem 0x000a0000-0x000bffff]
+[ 0.000000] PM: Registered nosave memory: [mem 0x000c0000-0x000fffff]
+[ 0.000000] e820: [mem 0x80000000-0xefffffff] available for PCI devices
+[ 0.000000] Booting paravirtualized kernel on bare hardware
+[ 0.000000] setup_percpu: NR_CPUS:256 nr_cpumask_bits:256 nr_cpu_ids:2 nr_node_ids:1
+[ 0.000000] PERCPU: Embedded 29 pages/cpu @ffff88007f400000 s86336 r8192 d24256 u1048576
+[ 0.000000] pcpu-alloc: s86336 r8192 d24256 u1048576 alloc=1*2097152
+[ 0.000000] pcpu-alloc: [0] 0 1
+[ 0.000000] Built 1 zonelists in Node order, mobility grouping on. Total pages: 513666
+[ 0.000000] Policy zone: DMA32
+[ 0.000000] Kernel command line: BOOT_IMAGE=/vmlinuz root=/dev/mapper/buzz-distro cryptdevice=/dev/mapper/buzz-distro:root quiet splash drm.debug=0x06 ro
+[ 0.000000] PID hash table entries: 4096 (order: 3, 32768 bytes)
+[ 0.000000] Checking aperture...
+[ 0.000000] No AGP bridge found
+[ 0.000000] Calgary: detecting Calgary via BIOS EBDA area
+[ 0.000000] Calgary: Unable to locate Rio Grande table in EBDA - bailing!
+[ 0.000000] Memory: 2013772K/2087376K available (7391K kernel code, 1145K rwdata, 3416K rodata, 1336K init, 1440K bss, 73604K reserved)
+[ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1
+[ 0.000000] Hierarchical RCU implementation.
+[ 0.000000] RCU dyntick-idle grace-period acceleration is enabled.
+[ 0.000000] RCU restricting CPUs from NR_CPUS=256 to nr_cpu_ids=2.
+[ 0.000000] Offload RCU callbacks from all CPUs
+[ 0.000000] Offload RCU callbacks from CPUs: 0-1.
+[ 0.000000] NR_IRQS:16640 nr_irqs:512 16
+[ 0.000000] Console: colour VGA+ 80x25
+[ 0.000000] console [tty0] enabled
+[ 0.000000] allocated 8388608 bytes of page_cgroup
+[ 0.000000] please try 'cgroup_disable=memory' option if you don't want memory cgroups
+[ 0.000000] hpet clockevent registered
+[ 0.000000] tsc: Fast TSC calibration using PIT
+[ 0.000000] tsc: Detected 1496.227 MHz processor
+[ 0.004006] Calibrating delay loop (skipped), value calculated using timer frequency.. 2992.45 BogoMIPS (lpj=5984908)
+[ 0.004013] pid_max: default: 32768 minimum: 301
+[ 0.004059] Security Framework initialized
+[ 0.004095] AppArmor: AppArmor initialized
+[ 0.004097] Yama: becoming mindful.
+[ 0.004475] Dentry cache hash table entries: 262144 (order: 9, 2097152 bytes)
+[ 0.008553] Inode-cache hash table entries: 131072 (order: 8, 1048576 bytes)
+[ 0.009333] Mount-cache hash table entries: 4096 (order: 3, 32768 bytes)
+[ 0.009340] Mountpoint-cache hash table entries: 4096 (order: 3, 32768 bytes)
+[ 0.009749] Initializing cgroup subsys memory
+[ 0.009764] Initializing cgroup subsys devices
+[ 0.009767] Initializing cgroup subsys freezer
+[ 0.009771] Initializing cgroup subsys blkio
+[ 0.009775] Initializing cgroup subsys bfqio
+[ 0.009778] Initializing cgroup subsys perf_event
+[ 0.009783] Initializing cgroup subsys hugetlb
+[ 0.009821] CPU: Physical Processor ID: 0
+[ 0.009823] CPU: Processor Core ID: 0
+[ 0.009827] mce: CPU supports 6 MCE banks
+[ 0.009839] CPU0: Thermal monitoring enabled (TM2)
+[ 0.009850] Last level iTLB entries: 4KB 128, 2MB 4, 4MB 4
+[ 0.009850] Last level dTLB entries: 4KB 256, 2MB 0, 4MB 32
+[ 0.009850] tlb_flushall_shift: -1
+[ 0.010001] Freeing SMP alternatives memory: 32K (ffffffff81e6e000 - ffffffff81e76000)
+[ 0.012383] ACPI: Core revision 20131115
+[ 0.015473] ACPI: All ACPI Tables successfully acquired
+[ 0.016025] ftrace: allocating 28599 entries in 112 pages
+[ 0.028599] ..TIMER: vector=0x30 apic1=0 pin1=2 apic2=-1 pin2=-1
+[ 0.070880] smpboot: CPU0: Intel(R) Core(TM)2 CPU L7400 @ 1.50GHz (fam: 06, model: 0f, stepping: 06)
+[ 0.072000] Performance Events: PEBS fmt0-, 4-deep LBR, Core2 events, Intel PMU driver.
+[ 0.072000] perf_event_intel: PEBS disabled due to CPU errata
+[ 0.072000] ... version: 2
+[ 0.072000] ... bit width: 40
+[ 0.072000] ... generic registers: 2
+[ 0.072000] ... value mask: 000000ffffffffff
+[ 0.072000] ... max period: 000000007fffffff
+[ 0.072000] ... fixed-purpose events: 3
+[ 0.072000] ... event mask: 0000000700000003
+[ 0.072000] x86: Booting SMP configuration:
+[ 0.072000] .... node #0, CPUs: #1
+[ 0.084066] x86: Booted up 1 node, 2 CPUs
+[ 0.084074] smpboot: Total of 2 processors activated (5984.90 BogoMIPS)
+[ 0.084177] NMI watchdog: enabled on all CPUs, permanently consumes one hw-PMU counter.
+[ 0.088071] devtmpfs: initialized
+[ 0.098352] EVM: security.selinux
+[ 0.098355] EVM: security.SMACK64
+[ 0.098357] EVM: security.ima
+[ 0.098359] EVM: security.capability
+[ 0.100096] pinctrl core: initialized pinctrl subsystem
+[ 0.100211] regulator-dummy: no parameters
+[ 0.100257] RTC time: 21:49:54, date: 08/31/14
+[ 0.100319] NET: Registered protocol family 16
+[ 0.100522] cpuidle: using governor ladder
+[ 0.100525] cpuidle: using governor menu
+[ 0.100592] ACPI: bus type PCI registered
+[ 0.100595] acpiphp: ACPI Hot Plug PCI Controller Driver version: 0.5
+[ 0.100691] PCI: MMCONFIG for domain 0000 [bus 00-3f] at [mem 0xf0000000-0xf3ffffff] (base 0xf0000000)
+[ 0.100695] PCI: MMCONFIG at [mem 0xf0000000-0xf3ffffff] reserved in E820
+[ 0.105678] PCI: Using configuration type 1 for base access
+[ 0.108094] bio: create slab <bio-0> at 0
+[ 0.108141] ACPI: Added _OSI(Module Device)
+[ 0.108144] ACPI: Added _OSI(Processor Device)
+[ 0.108147] ACPI: Added _OSI(3.0 _SCP Extensions)
+[ 0.108149] ACPI: Added _OSI(Processor Aggregator Device)
+[ 0.111400] [Firmware Bug]: ACPI: BIOS _OSI(Linux) query ignored
+[ 0.111850] ACPI: Interpreter enabled
+[ 0.111859] ACPI Exception: AE_NOT_FOUND, While evaluating Sleep State [\_S1_] (20131115/hwxface-580)
+[ 0.111867] ACPI Exception: AE_NOT_FOUND, While evaluating Sleep State [\_S2_] (20131115/hwxface-580)
+[ 0.111889] ACPI: (supports S0 S3 S4 S5)
+[ 0.111892] ACPI: Using IOAPIC for interrupt routing
+[ 0.111927] PCI: Using host bridge windows from ACPI; if necessary, use "pci=nocrs" and report a bug
+[ 0.112256] ACPI: ACPI Dock Station Driver: 1 docks/bays found
+[ 0.121379] ACPI: PCI Root Bridge [PCI0] (domain 0000 [bus 00-ff])
+[ 0.121389] acpi PNP0A08:00: _OSC: OS supports [ExtendedConfig ASPM ClockPM Segments MSI]
+[ 0.121498] acpi PNP0A08:00: _OSC: OS now controls [PCIeHotplug PME AER PCIeCapability]
+[ 0.121642] acpi PNP0A08:00: [Firmware Info]: MMCONFIG for domain 0000 [bus 00-3f] only partially covers this bridge
+[ 0.121922] PCI host bridge to bus 0000:00
+[ 0.121927] pci_bus 0000:00: root bus resource [bus 00-ff]
+[ 0.121931] pci_bus 0000:00: root bus resource [io 0x0000-0x0cf7]
+[ 0.121935] pci_bus 0000:00: root bus resource [io 0x0d00-0xffff]
+[ 0.121938] pci_bus 0000:00: root bus resource [mem 0x000a0000-0x000bffff]
+[ 0.121942] pci_bus 0000:00: root bus resource [mem 0x000c0000-0x000c3fff]
+[ 0.121945] pci_bus 0000:00: root bus resource [mem 0x000c4000-0x000c7fff]
+[ 0.121948] pci_bus 0000:00: root bus resource [mem 0x000c8000-0x000cbfff]
+[ 0.121951] pci_bus 0000:00: root bus resource [mem 0x000cc000-0x000cffff]
+[ 0.121955] pci_bus 0000:00: root bus resource [mem 0x000d0000-0x000d3fff]
+[ 0.121958] pci_bus 0000:00: root bus resource [mem 0x000d4000-0x000d7fff]
+[ 0.121961] pci_bus 0000:00: root bus resource [mem 0x000d8000-0x000dbfff]
+[ 0.121965] pci_bus 0000:00: root bus resource [mem 0x000dc000-0x000dffff]
+[ 0.121968] pci_bus 0000:00: root bus resource [mem 0x000e0000-0x000e3fff]
+[ 0.121971] pci_bus 0000:00: root bus resource [mem 0x000e4000-0x000e7fff]
+[ 0.121975] pci_bus 0000:00: root bus resource [mem 0x000e8000-0x000ebfff]
+[ 0.121978] pci_bus 0000:00: root bus resource [mem 0x000ec000-0x000effff]
+[ 0.121981] pci_bus 0000:00: root bus resource [mem 0x000f0000-0x000fffff]
+[ 0.121985] pci_bus 0000:00: root bus resource [mem 0x80000000-0xfebfffff]
+[ 0.121988] pci_bus 0000:00: root bus resource [mem 0xfed40000-0xfed44fff]
+[ 0.122002] pci 0000:00:00.0: [8086:27a0] type 00 class 0x060000
+[ 0.122153] pci 0000:00:02.0: [8086:27a2] type 00 class 0x030000
+[ 0.122170] pci 0000:00:02.0: reg 0x10: [mem 0xe4200000-0xe427ffff]
+[ 0.122179] pci 0000:00:02.0: reg 0x14: [io 0x50a0-0x50a7]
+[ 0.122188] pci 0000:00:02.0: reg 0x18: [mem 0xd0000000-0xdfffffff pref]
+[ 0.122198] pci 0000:00:02.0: reg 0x1c: [mem 0xe4300000-0xe433ffff]
+[ 0.122338] pci 0000:00:02.1: [8086:27a6] type 00 class 0x038000
+[ 0.122352] pci 0000:00:02.1: reg 0x10: [mem 0xe4280000-0xe42fffff]
+[ 0.122564] pci 0000:00:1b.0: [8086:27d8] type 00 class 0x040300
+[ 0.122591] pci 0000:00:1b.0: reg 0x10: [mem 0xe4340000-0xe4343fff 64bit]
+[ 0.122706] pci 0000:00:1b.0: PME# supported from D0 D3hot D3cold
+[ 0.122785] pci 0000:00:1b.0: System wakeup disabled by ACPI
+[ 0.122842] pci 0000:00:1c.0: [8086:27d0] type 01 class 0x060400
+[ 0.122964] pci 0000:00:1c.0: PME# supported from D0 D3hot D3cold
+[ 0.123100] pci 0000:00:1c.1: [8086:27d2] type 01 class 0x060400
+[ 0.123210] pci 0000:00:1c.1: PME# supported from D0 D3hot D3cold
+[ 0.123337] pci 0000:00:1c.2: [8086:27d4] type 01 class 0x060400
+[ 0.123447] pci 0000:00:1c.2: PME# supported from D0 D3hot D3cold
+[ 0.123579] pci 0000:00:1c.3: [8086:27d6] type 01 class 0x060400
+[ 0.123689] pci 0000:00:1c.3: PME# supported from D0 D3hot D3cold
+[ 0.123817] pci 0000:00:1d.0: [8086:27c8] type 00 class 0x0c0300
+[ 0.123881] pci 0000:00:1d.0: reg 0x20: [io 0x5000-0x501f]
+[ 0.124006] pci 0000:00:1d.0: System wakeup disabled by ACPI
+[ 0.124057] pci 0000:00:1d.1: [8086:27c9] type 00 class 0x0c0300
+[ 0.124120] pci 0000:00:1d.1: reg 0x20: [io 0x5020-0x503f]
+[ 0.124236] pci 0000:00:1d.1: System wakeup disabled by ACPI
+[ 0.124286] pci 0000:00:1d.2: [8086:27ca] type 00 class 0x0c0300
+[ 0.124349] pci 0000:00:1d.2: reg 0x20: [io 0x5040-0x505f]
+[ 0.124464] pci 0000:00:1d.2: System wakeup disabled by ACPI
+[ 0.124515] pci 0000:00:1d.3: [8086:27cb] type 00 class 0x0c0300
+[ 0.124578] pci 0000:00:1d.3: reg 0x20: [io 0x5060-0x507f]
+[ 0.124695] pci 0000:00:1d.3: System wakeup disabled by ACPI
+[ 0.124759] pci 0000:00:1d.7: [8086:27cc] type 00 class 0x0c0320
+[ 0.124787] pci 0000:00:1d.7: reg 0x10: [mem 0xe4344000-0xe43443ff]
+[ 0.124905] pci 0000:00:1d.7: PME# supported from D0 D3hot D3cold
+[ 0.124978] pci 0000:00:1d.7: System wakeup disabled by ACPI
+[ 0.125032] pci 0000:00:1e.0: [8086:2448] type 01 class 0x060401
+[ 0.125214] pci 0000:00:1f.0: [8086:27b9] type 00 class 0x060100
+[ 0.125339] pci 0000:00:1f.0: address space collision: [io 0x0500-0x057f] conflicts with ACPI CPU throttle [??? 0x00000510-0x00000515 flags 0x80000000]
+[ 0.125347] pci 0000:00:1f.0: quirk: [io 0x0480-0x04bf] claimed by ICH6 GPIO
+[ 0.125353] pci 0000:00:1f.0: ICH7 LPC Generic IO decode 1 PIO at 1600 (mask 007f)
+[ 0.125359] pci 0000:00:1f.0: ICH7 LPC Generic IO decode 2 PIO at 15e0 (mask 000f)
+[ 0.125364] pci 0000:00:1f.0: ICH7 LPC Generic IO decode 3 PIO at 1680 (mask 001f)
+[ 0.125515] pci 0000:00:1f.1: [8086:27df] type 00 class 0x01018a
+[ 0.125535] pci 0000:00:1f.1: reg 0x10: [io 0x50a8-0x50af]
+[ 0.125550] pci 0000:00:1f.1: reg 0x14: [io 0x50c8-0x50cb]
+[ 0.125564] pci 0000:00:1f.1: reg 0x18: [io 0x50b0-0x50b7]
+[ 0.125578] pci 0000:00:1f.1: reg 0x1c: [io 0x50cc-0x50cf]
+[ 0.125592] pci 0000:00:1f.1: reg 0x20: [io 0x5080-0x508f]
+[ 0.125736] pci 0000:00:1f.2: [8086:27c5] type 00 class 0x010601
+[ 0.125764] pci 0000:00:1f.2: reg 0x10: [io 0x50b8-0x50bf]
+[ 0.125777] pci 0000:00:1f.2: reg 0x14: [io 0x50d0-0x50d3]
+[ 0.125792] pci 0000:00:1f.2: reg 0x18: [io 0x50c0-0x50c7]
+[ 0.125806] pci 0000:00:1f.2: reg 0x1c: [io 0x50d4-0x50d7]
+[ 0.125820] pci 0000:00:1f.2: reg 0x20: [io 0x5090-0x509f]
+[ 0.125835] pci 0000:00:1f.2: reg 0x24: [mem 0xe4344400-0xe43447ff]
+[ 0.125899] pci 0000:00:1f.2: PME# supported from D3hot
+[ 0.126016] pci 0000:00:1f.3: [8086:27da] type 00 class 0x0c0500
+[ 0.126096] pci 0000:00:1f.3: reg 0x20: [io 0x0400-0x041f]
+[ 0.126355] pci 0000:01:00.0: [8086:109a] type 00 class 0x020000
+[ 0.126389] pci 0000:01:00.0: reg 0x10: [mem 0xe4100000-0xe411ffff]
+[ 0.126434] pci 0000:01:00.0: reg 0x18: [io 0x4000-0x401f]
+[ 0.126628] pci 0000:01:00.0: PME# supported from D0 D3hot D3cold
+[ 0.126710] pci 0000:01:00.0: disabling ASPM on pre-1.1 PCIe device. You can enable it with 'pcie_aspm=force'
+[ 0.126731] pci 0000:00:1c.0: PCI bridge to [bus 01]
+[ 0.126737] pci 0000:00:1c.0: bridge window [io 0x4000-0x4fff]
+[ 0.126744] pci 0000:00:1c.0: bridge window [mem 0xe4100000-0xe41fffff]
+[ 0.126838] pci 0000:00:1c.1: PCI bridge to [bus 02]
+[ 0.126938] pci 0000:00:1c.2: PCI bridge to [bus 03]
+[ 0.127032] pci 0000:00:1c.3: PCI bridge to [bus 04]
+[ 0.127187] pci 0000:05:00.0: [1180:0476] type 02 class 0x060700
+[ 0.127210] pci 0000:05:00.0: proprietary Ricoh MMC controller disabled (via cardbus function)
+[ 0.127213] pci 0000:05:00.0: MMC cards are now supported by standard SDHCI controller
+[ 0.127233] pci 0000:05:00.0: reg 0x10: [mem 0xe2000000-0xe2000fff]
+[ 0.127274] pci 0000:05:00.0: supports D1 D2
+[ 0.127278] pci 0000:05:00.0: PME# supported from D0 D1 D2 D3hot D3cold
+[ 0.127318] pci 0000:05:00.0: System wakeup disabled by ACPI
+[ 0.127377] pci 0000:05:00.1: [1180:0552] type 00 class 0x0c0010
+[ 0.127403] pci 0000:05:00.1: reg 0x10: [mem 0xe2001000-0xe20017ff]
+[ 0.127512] pci 0000:05:00.1: supports D1 D2
+[ 0.127516] pci 0000:05:00.1: PME# supported from D0 D1 D2 D3hot D3cold
+[ 0.127599] pci 0000:05:00.2: [1180:0822] type 00 class 0x080500
+[ 0.127626] pci 0000:05:00.2: reg 0x10: [mem 0xe2001800-0xe20018ff]
+[ 0.127736] pci 0000:05:00.2: supports D1 D2
+[ 0.127740] pci 0000:05:00.2: PME# supported from D0 D1 D2 D3hot D3cold
+[ 0.127880] pci 0000:00:1e.0: PCI bridge to [bus 05-06] (subtractive decode)
+[ 0.127887] pci 0000:00:1e.0: bridge window [io 0x2000-0x3fff]
+[ 0.127894] pci 0000:00:1e.0: bridge window [mem 0xe0000000-0xe20fffff]
+[ 0.127904] pci 0000:00:1e.0: bridge window [mem 0xe2100000-0xe40fffff 64bit pref]
+[ 0.127908] pci 0000:00:1e.0: bridge window [io 0x0000-0x0cf7] (subtractive decode)
+[ 0.127911] pci 0000:00:1e.0: bridge window [io 0x0d00-0xffff] (subtractive decode)
+[ 0.127915] pci 0000:00:1e.0: bridge window [mem 0x000a0000-0x000bffff] (subtractive decode)
+[ 0.127918] pci 0000:00:1e.0: bridge window [mem 0x000c0000-0x000c3fff] (subtractive decode)
+[ 0.127922] pci 0000:00:1e.0: bridge window [mem 0x000c4000-0x000c7fff] (subtractive decode)
+[ 0.127925] pci 0000:00:1e.0: bridge window [mem 0x000c8000-0x000cbfff] (subtractive decode)
+[ 0.127928] pci 0000:00:1e.0: bridge window [mem 0x000cc000-0x000cffff] (subtractive decode)
+[ 0.127932] pci 0000:00:1e.0: bridge window [mem 0x000d0000-0x000d3fff] (subtractive decode)
+[ 0.127935] pci 0000:00:1e.0: bridge window [mem 0x000d4000-0x000d7fff] (subtractive decode)
+[ 0.127938] pci 0000:00:1e.0: bridge window [mem 0x000d8000-0x000dbfff] (subtractive decode)
+[ 0.127942] pci 0000:00:1e.0: bridge window [mem 0x000dc000-0x000dffff] (subtractive decode)
+[ 0.127945] pci 0000:00:1e.0: bridge window [mem 0x000e0000-0x000e3fff] (subtractive decode)
+[ 0.127949] pci 0000:00:1e.0: bridge window [mem 0x000e4000-0x000e7fff] (subtractive decode)
+[ 0.127952] pci 0000:00:1e.0: bridge window [mem 0x000e8000-0x000ebfff] (subtractive decode)
+[ 0.127955] pci 0000:00:1e.0: bridge window [mem 0x000ec000-0x000effff] (subtractive decode)
+[ 0.127959] pci 0000:00:1e.0: bridge window [mem 0x000f0000-0x000fffff] (subtractive decode)
+[ 0.127962] pci 0000:00:1e.0: bridge window [mem 0x80000000-0xfebfffff] (subtractive decode)
+[ 0.127966] pci 0000:00:1e.0: bridge window [mem 0xfed40000-0xfed44fff] (subtractive decode)
+[ 0.128041] pci_bus 0000:06: busn_res: can not insert [bus 06-ff] under [bus 05-06] (conflicts with (null) [bus 05-06])
+[ 0.128049] pci_bus 0000:06: busn_res: [bus 06-ff] end is updated to 09
+[ 0.128053] pci_bus 0000:06: busn_res: can not insert [bus 06-09] under [bus 05-06] (conflicts with (null) [bus 05-06])
+[ 0.128060] pci_bus 0000:06: [bus 06-09] partially hidden behind transparent bridge 0000:05 [bus 05-06]
+[ 0.128336] ACPI: PCI Interrupt Link [LNKA] (IRQs 1 3 4 5 6 7 10 12 14 15) *11
+[ 0.128426] ACPI: PCI Interrupt Link [LNKB] (IRQs 1 3 4 5 6 7 *11 12 14 15)
+[ 0.128512] ACPI: PCI Interrupt Link [LNKC] (IRQs 1 3 4 5 6 7 10 12 14 15) *11
+[ 0.128597] ACPI: PCI Interrupt Link [LNKD] (IRQs 1 3 4 5 6 7 *11 12 14 15)
+[ 0.128682] ACPI: PCI Interrupt Link [LNKE] (IRQs 1 3 4 5 6 7 10 12 14 15) *11
+[ 0.128766] ACPI: PCI Interrupt Link [LNKF] (IRQs 1 3 4 5 6 7 *11 12 14 15)
+[ 0.128850] ACPI: PCI Interrupt Link [LNKG] (IRQs 1 3 4 5 6 7 10 12 14 15) *11
+[ 0.128935] ACPI: PCI Interrupt Link [LNKH] (IRQs 1 3 4 5 6 7 *11 12 14 15)
+[ 0.129051] ACPI: \_SB_.PCI0: notify handler is installed
+[ 0.129051] Found 1 acpi root devices
+[ 0.129051] ACPI : EC: GPE = 0x1c, I/O: command/status = 0x66, data = 0x62
+[ 0.129051] vgaarb: device added: PCI:0000:00:02.0,decodes=io+mem,owns=io+mem,locks=none
+[ 0.129051] vgaarb: loaded
+[ 0.129051] vgaarb: bridge control possible 0000:00:02.0
+[ 0.129051] SCSI subsystem initialized
+[ 0.129051] libata version 3.00 loaded.
+[ 0.129051] ACPI: bus type USB registered
+[ 0.129051] usbcore: registered new interface driver usbfs
+[ 0.129051] usbcore: registered new interface driver hub
+[ 0.129051] usbcore: registered new device driver usb
+[ 0.129051] PCI: Using ACPI for IRQ routing
+[ 0.133275] PCI: pci_cache_line_size set to 64 bytes
+[ 0.133369] e820: reserve RAM buffer [mem 0x7f6d5000-0x7fffffff]
+[ 0.133506] NetLabel: Initializing
+[ 0.133509] NetLabel: domain hash size = 128
+[ 0.133510] NetLabel: protocols = UNLABELED CIPSOv4
+[ 0.133537] NetLabel: unlabeled traffic allowed by default
+[ 0.133557] HPET: 3 timers in total, 0 timers will be used for per-cpu timer
+[ 0.133557] hpet0: at MMIO 0xfed00000, IRQs 2, 8, 0
+[ 0.133557] hpet0: 3 comparators, 64-bit 14.318180 MHz counter
+[ 0.134098] Switched to clocksource hpet
+[ 0.142214] AppArmor: AppArmor Filesystem Enabled
+[ 0.142264] pnp: PnP ACPI init
+[ 0.142291] ACPI: bus type PNP registered
+[ 0.142445] system 00:00: [mem 0xfed1c000-0xfed1ffff] has been reserved
+[ 0.142450] system 00:00: [mem 0xfed14000-0xfed17fff] has been reserved
+[ 0.142454] system 00:00: [mem 0xfed18000-0xfed18fff] has been reserved
+[ 0.142458] system 00:00: [mem 0xfed19000-0xfed19fff] has been reserved
+[ 0.142462] system 00:00: [mem 0xf0000000-0xf3ffffff] has been reserved
+[ 0.142466] system 00:00: [mem 0xfed20000-0xfed3ffff] has been reserved
+[ 0.142470] system 00:00: [mem 0xfed40000-0xfed44fff] has been reserved
+[ 0.142474] system 00:00: [mem 0xfed45000-0xfed8ffff] has been reserved
+[ 0.142481] system 00:00: Plug and Play ACPI device, IDs PNP0c02 (active)
+[ 0.143002] pnp 00:01: [dma 4]
+[ 0.143047] pnp 00:01: Plug and Play ACPI device, IDs PNP0200 (active)
+[ 0.143092] pnp 00:02: Plug and Play ACPI device, IDs INT0800 (active)
+[ 0.143244] system 00:03: [mem 0xfed00000-0xfed003ff] has been reserved
+[ 0.143250] system 00:03: Plug and Play ACPI device, IDs PNP0103 PNP0c01 (active)
+[ 0.143320] pnp 00:04: Plug and Play ACPI device, IDs PNP0c04 (active)
+[ 0.143397] system 00:05: [io 0x0800-0x080f] has been reserved
+[ 0.143402] system 00:05: [io 0x0500-0x057f] could not be reserved
+[ 0.143406] system 00:05: [io 0x0480-0x04bf] has been reserved
+[ 0.143411] system 00:05: Plug and Play ACPI device, IDs PNP0c02 (active)
+[ 0.143463] pnp 00:06: Plug and Play ACPI device, IDs PNP0b00 (active)
+[ 0.143529] pnp 00:07: Plug and Play ACPI device, IDs PNP0303 PNP030b (active)
+[ 0.143593] pnp 00:08: Plug and Play ACPI device, IDs PNP0f13 (active)
+[ 0.143654] pnp 00:09: Plug and Play ACPI device, IDs PNP0501 (active)
+[ 0.143699] pnp: PnP ACPI: found 10 devices
+[ 0.143702] ACPI: bus type PNP unregistered
+[ 0.151684] pci 0000:00:1c.0: bridge window [mem 0x00100000-0x000fffff 64bit pref] to [bus 01] add_size 200000
+[ 0.151738] pci 0000:00:1f.0: BAR 13: [io 0x0500-0x057f] has bogus alignment
+[ 0.151744] pci 0000:00:1c.0: res[15]=[mem 0x00100000-0x000fffff 64bit pref] get_res_add_size add_size 200000
+[ 0.151755] pci 0000:00:1c.0: BAR 15: assigned [mem 0x80000000-0x801fffff 64bit pref]
+[ 0.151759] pci 0000:00:1c.0: PCI bridge to [bus 01]
+[ 0.151765] pci 0000:00:1c.0: bridge window [io 0x4000-0x4fff]
+[ 0.151773] pci 0000:00:1c.0: bridge window [mem 0xe4100000-0xe41fffff]
+[ 0.151780] pci 0000:00:1c.0: bridge window [mem 0x80000000-0x801fffff 64bit pref]
+[ 0.151790] pci 0000:00:1c.1: PCI bridge to [bus 02]
+[ 0.151807] pci 0000:00:1c.2: PCI bridge to [bus 03]
+[ 0.151824] pci 0000:00:1c.3: PCI bridge to [bus 04]
+[ 0.151848] pci 0000:05:00.0: res[15]=[mem 0x04000000-0x03ffffff pref] get_res_add_size add_size 4000000
+[ 0.151852] pci 0000:05:00.0: res[16]=[mem 0x04000000-0x03ffffff] get_res_add_size add_size 4000000
+[ 0.151856] pci 0000:05:00.0: res[13]=[io 0x0100-0x00ff] get_res_add_size add_size 100
+[ 0.151860] pci 0000:05:00.0: res[14]=[io 0x0100-0x00ff] get_res_add_size add_size 100
+[ 0.151868] pci 0000:05:00.0: BAR 15: assigned [mem 0x84000000-0x87ffffff pref]
+[ 0.151875] pci 0000:05:00.0: BAR 16: assigned [mem 0x88000000-0x8bffffff]
+[ 0.151879] pci 0000:05:00.0: BAR 13: assigned [io 0x2000-0x20ff]
+[ 0.151883] pci 0000:05:00.0: BAR 14: assigned [io 0x2400-0x24ff]
+[ 0.151888] pci 0000:05:00.0: CardBus bridge to [bus 06-09]
+[ 0.151891] pci 0000:05:00.0: bridge window [io 0x2000-0x20ff]
+[ 0.151897] pci 0000:05:00.0: bridge window [io 0x2400-0x24ff]
+[ 0.151904] pci 0000:05:00.0: bridge window [mem 0x84000000-0x87ffffff pref]
+[ 0.151910] pci 0000:05:00.0: bridge window [mem 0x88000000-0x8bffffff]
+[ 0.151917] pci 0000:00:1e.0: PCI bridge to [bus 05-06]
+[ 0.151922] pci 0000:00:1e.0: bridge window [io 0x2000-0x3fff]
+[ 0.151930] pci 0000:00:1e.0: bridge window [mem 0xe0000000-0xe20fffff]
+[ 0.151937] pci 0000:00:1e.0: bridge window [mem 0xe2100000-0xe40fffff 64bit pref]
+[ 0.151947] pci_bus 0000:00: resource 4 [io 0x0000-0x0cf7]
+[ 0.151951] pci_bus 0000:00: resource 5 [io 0x0d00-0xffff]
+[ 0.151955] pci_bus 0000:00: resource 6 [mem 0x000a0000-0x000bffff]
+[ 0.151958] pci_bus 0000:00: resource 7 [mem 0x000c0000-0x000c3fff]
+[ 0.151962] pci_bus 0000:00: resource 8 [mem 0x000c4000-0x000c7fff]
+[ 0.151965] pci_bus 0000:00: resource 9 [mem 0x000c8000-0x000cbfff]
+[ 0.151968] pci_bus 0000:00: resource 10 [mem 0x000cc000-0x000cffff]
+[ 0.151972] pci_bus 0000:00: resource 11 [mem 0x000d0000-0x000d3fff]
+[ 0.151975] pci_bus 0000:00: resource 12 [mem 0x000d4000-0x000d7fff]
+[ 0.151978] pci_bus 0000:00: resource 13 [mem 0x000d8000-0x000dbfff]
+[ 0.151981] pci_bus 0000:00: resource 14 [mem 0x000dc000-0x000dffff]
+[ 0.151985] pci_bus 0000:00: resource 15 [mem 0x000e0000-0x000e3fff]
+[ 0.151988] pci_bus 0000:00: resource 16 [mem 0x000e4000-0x000e7fff]
+[ 0.151991] pci_bus 0000:00: resource 17 [mem 0x000e8000-0x000ebfff]
+[ 0.151994] pci_bus 0000:00: resource 18 [mem 0x000ec000-0x000effff]
+[ 0.151998] pci_bus 0000:00: resource 19 [mem 0x000f0000-0x000fffff]
+[ 0.152014] pci_bus 0000:00: resource 20 [mem 0x80000000-0xfebfffff]
+[ 0.152018] pci_bus 0000:00: resource 21 [mem 0xfed40000-0xfed44fff]
+[ 0.152022] pci_bus 0000:01: resource 0 [io 0x4000-0x4fff]
+[ 0.152025] pci_bus 0000:01: resource 1 [mem 0xe4100000-0xe41fffff]
+[ 0.152029] pci_bus 0000:01: resource 2 [mem 0x80000000-0x801fffff 64bit pref]
+[ 0.152033] pci_bus 0000:05: resource 0 [io 0x2000-0x3fff]
+[ 0.152036] pci_bus 0000:05: resource 1 [mem 0xe0000000-0xe20fffff]
+[ 0.152040] pci_bus 0000:05: resource 2 [mem 0xe2100000-0xe40fffff 64bit pref]
+[ 0.152043] pci_bus 0000:05: resource 4 [io 0x0000-0x0cf7]
+[ 0.152047] pci_bus 0000:05: resource 5 [io 0x0d00-0xffff]
+[ 0.152050] pci_bus 0000:05: resource 6 [mem 0x000a0000-0x000bffff]
+[ 0.152054] pci_bus 0000:05: resource 7 [mem 0x000c0000-0x000c3fff]
+[ 0.152057] pci_bus 0000:05: resource 8 [mem 0x000c4000-0x000c7fff]
+[ 0.152061] pci_bus 0000:05: resource 9 [mem 0x000c8000-0x000cbfff]
+[ 0.152064] pci_bus 0000:05: resource 10 [mem 0x000cc000-0x000cffff]
+[ 0.152067] pci_bus 0000:05: resource 11 [mem 0x000d0000-0x000d3fff]
+[ 0.152071] pci_bus 0000:05: resource 12 [mem 0x000d4000-0x000d7fff]
+[ 0.152074] pci_bus 0000:05: resource 13 [mem 0x000d8000-0x000dbfff]
+[ 0.152077] pci_bus 0000:05: resource 14 [mem 0x000dc000-0x000dffff]
+[ 0.152080] pci_bus 0000:05: resource 15 [mem 0x000e0000-0x000e3fff]
+[ 0.152084] pci_bus 0000:05: resource 16 [mem 0x000e4000-0x000e7fff]
+[ 0.152087] pci_bus 0000:05: resource 17 [mem 0x000e8000-0x000ebfff]
+[ 0.152090] pci_bus 0000:05: resource 18 [mem 0x000ec000-0x000effff]
+[ 0.152093] pci_bus 0000:05: resource 19 [mem 0x000f0000-0x000fffff]
+[ 0.152097] pci_bus 0000:05: resource 20 [mem 0x80000000-0xfebfffff]
+[ 0.152100] pci_bus 0000:05: resource 21 [mem 0xfed40000-0xfed44fff]
+[ 0.152104] pci_bus 0000:06: resource 0 [io 0x2000-0x20ff]
+[ 0.152107] pci_bus 0000:06: resource 1 [io 0x2400-0x24ff]
+[ 0.152111] pci_bus 0000:06: resource 2 [mem 0x84000000-0x87ffffff pref]
+[ 0.152114] pci_bus 0000:06: resource 3 [mem 0x88000000-0x8bffffff]
+[ 0.152167] NET: Registered protocol family 2
+[ 0.152410] TCP established hash table entries: 16384 (order: 5, 131072 bytes)
+[ 0.152518] TCP bind hash table entries: 16384 (order: 6, 262144 bytes)
+[ 0.152669] TCP: Hash tables configured (established 16384 bind 16384)
+[ 0.152731] TCP: reno registered
+[ 0.152739] UDP hash table entries: 1024 (order: 3, 32768 bytes)
+[ 0.152763] UDP-Lite hash table entries: 1024 (order: 3, 32768 bytes)
+[ 0.152861] NET: Registered protocol family 1
+[ 0.152882] pci 0000:00:02.0: Boot video device
+[ 0.154029] PCI: CLS 64 bytes, default 64
+[ 0.154130] Trying to unpack rootfs image as initramfs...
+[ 0.891588] Freeing initrd memory: 23964K (ffff880035122000 - ffff880036889000)
+[ 0.891983] microcode: CPU0 sig=0x6f6, pf=0x20, revision=0x0
+[ 0.891991] microcode: CPU1 sig=0x6f6, pf=0x20, revision=0x0
+[ 0.892123] microcode: Microcode Update Driver: v2.00 <tigran@aivazian.fsnet.co.uk>, Peter Oruba
+[ 0.892126] Scanning for low memory corruption every 60 seconds
+[ 0.892509] Initialise system trusted keyring
+[ 0.892592] audit: initializing netlink socket (disabled)
+[ 0.892616] type=2000 audit(1409521794.892:1): initialized
+[ 0.938675] HugeTLB registered 2 MB page size, pre-allocated 0 pages
+[ 0.940706] zbud: loaded
+[ 0.940918] VFS: Disk quotas dquot_6.5.2
+[ 0.940988] Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
+[ 0.941797] fuse init (API version 7.22)
+[ 0.941924] msgmni has been set to 3980
+[ 0.942015] Key type big_key registered
+[ 0.942641] Key type asymmetric registered
+[ 0.942645] Asymmetric key parser 'x509' registered
+[ 0.942697] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 252)
+[ 0.942747] io scheduler noop registered
+[ 0.942751] io scheduler deadline registered (default)
+[ 0.942789] io scheduler cfq registered
+[ 0.942802] io scheduler bfq registered
+[ 0.942804] BFQ I/O-scheduler version: v7r5
+[ 0.943133] pcieport 0000:00:1c.0: irq 40 for MSI/MSI-X
+[ 0.943399] pcieport 0000:00:1c.1: irq 41 for MSI/MSI-X
+[ 0.943635] pcieport 0000:00:1c.2: irq 42 for MSI/MSI-X
+[ 0.943873] pcieport 0000:00:1c.3: irq 43 for MSI/MSI-X
+[ 0.944051] pcieport 0000:00:1c.0: Signaling PME through PCIe PME interrupt
+[ 0.944061] pci 0000:01:00.0: Signaling PME through PCIe PME interrupt
+[ 0.944068] pcie_pme 0000:00:1c.0:pcie01: service driver pcie_pme loaded
+[ 0.944102] pcieport 0000:00:1c.1: Signaling PME through PCIe PME interrupt
+[ 0.944109] pcie_pme 0000:00:1c.1:pcie01: service driver pcie_pme loaded
+[ 0.944142] pcieport 0000:00:1c.2: Signaling PME through PCIe PME interrupt
+[ 0.944149] pcie_pme 0000:00:1c.2:pcie01: service driver pcie_pme loaded
+[ 0.944178] pcieport 0000:00:1c.3: Signaling PME through PCIe PME interrupt
+[ 0.944185] pcie_pme 0000:00:1c.3:pcie01: service driver pcie_pme loaded
+[ 0.944207] pci_hotplug: PCI Hot Plug PCI Core version: 0.5
+[ 0.944253] pciehp 0000:00:1c.0:pcie04: HPC vendor_id 8086 device_id 27d0 ss_vid 8086 ss_did 27d0
+[ 0.944297] pciehp 0000:00:1c.0:pcie04: service driver pciehp loaded
+[ 0.944307] pciehp: PCI Express Hot Plug Controller Driver version: 0.4
+[ 0.944385] intel_idle: does not run on family 6 model 15
+[ 0.944397] ipmi message handler version 39.2
+[ 0.944733] ACPI: AC Adapter [AC] (off-line)
+[ 0.944807] ACPI Exception: AE_NOT_FOUND, Error reading AC Adapter state (20131115/ac-108)
+[ 0.945053] input: Sleep Button as /devices/LNXSYSTM:00/device:00/PNP0A08:00/device:24/PNP0C09:00/PNP0C0E:00/input/input0
+[ 0.945061] ACPI: Sleep Button [SLPB]
+[ 0.945124] input: Lid Switch as /devices/LNXSYSTM:00/device:00/PNP0A08:00/device:24/PNP0C09:00/PNP0C0D:00/input/input1
+[ 0.945243] ACPI: Lid Switch [LID]
+[ 0.945307] input: Power Button as /devices/LNXSYSTM:00/LNXPWRBN:00/input/input2
+[ 0.945312] ACPI: Power Button [PWRF]
+[ 0.946267] Monitor-Mwait will be used to enter C-1 state
+[ 0.946279] tsc: Marking TSC unstable due to TSC halts in idle
+[ 0.946288] ACPI: acpi_idle registered with cpuidle
+[ 0.947899] thermal LNXTHERM:00: registered as thermal_zone0
+[ 0.947904] ACPI: Thermal Zone [THM0] (39 C)
+[ 0.948530] thermal LNXTHERM:01: registered as thermal_zone1
+[ 0.948533] ACPI: Thermal Zone [THM1] (27 C)
+[ 0.948573] GHES: HEST is not enabled!
+[ 0.948770] Serial: 8250/16550 driver, 32 ports, IRQ sharing enabled
+[ 0.952564] Linux agpgart interface v0.103
+[ 0.952903] agpgart-intel 0000:00:00.0: Intel 945GM Chipset
+[ 0.952979] agpgart-intel 0000:00:00.0: detected gtt size: 262144K total, 262144K mappable
+[ 0.954238] agpgart-intel 0000:00:00.0: detected 8192K stolen memory
+[ 0.954581] agpgart-intel 0000:00:00.0: AGP aperture is 256M @ 0xd0000000
+[ 0.960749] brd: module loaded
+[ 0.962506] loop: module loaded
+[ 0.962983] ata_piix 0000:00:1f.1: version 2.13
+[ 0.963770] ACPI: Deprecated procfs I/F for battery is loaded, please retry with CONFIG_ACPI_PROCFS_POWER cleared
+[ 0.963780] ACPI: Battery Slot [BAT0] (battery present)
+[ 0.963927] ACPI: Deprecated procfs I/F for battery is loaded, please retry with CONFIG_ACPI_PROCFS_POWER cleared
+[ 0.963935] ACPI: Battery Slot [BAT1] (battery absent)
+[ 0.964039] scsi0 : ata_piix
+[ 0.964177] scsi1 : ata_piix
+[ 0.964231] ata1: PATA max UDMA/100 cmd 0x1f0 ctl 0x3f6 bmdma 0x5080 irq 14
+[ 0.964235] ata2: PATA max UDMA/100 cmd 0x170 ctl 0x376 bmdma 0x5088 irq 15
+[ 0.964290] ata1: port disabled--ignoring
+[ 0.964327] ata2: port disabled--ignoring
+[ 0.964709] libphy: Fixed MDIO Bus: probed
+[ 0.964859] tun: Universal TUN/TAP device driver, 1.6
+[ 0.964861] tun: (C) 1999-2004 Max Krasnyansky <maxk@qualcomm.com>
+[ 0.964949] PPP generic driver version 2.4.2
+[ 0.965035] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
+[ 0.965043] ehci-pci: EHCI PCI platform driver
+[ 0.965215] ehci-pci 0000:00:1d.7: EHCI Host Controller
+[ 0.965228] ehci-pci 0000:00:1d.7: new USB bus registered, assigned bus number 1
+[ 0.965248] ehci-pci 0000:00:1d.7: debug port 1
+[ 0.969175] ehci-pci 0000:00:1d.7: cache line size of 64 is not supported
+[ 0.969198] ehci-pci 0000:00:1d.7: irq 19, io mem 0xe4344000
+[ 0.980055] ehci-pci 0000:00:1d.7: USB 2.0 started, EHCI 1.00
+[ 0.980167] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
+[ 0.980171] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
+[ 0.980174] usb usb1: Product: EHCI Host Controller
+[ 0.980178] usb usb1: Manufacturer: Linux 3.13.0-34-generic ehci_hcd
+[ 0.980181] usb usb1: SerialNumber: 0000:00:1d.7
+[ 0.980361] hub 1-0:1.0: USB hub found
+[ 0.980376] hub 1-0:1.0: 8 ports detected
+[ 0.980772] ehci-platform: EHCI generic platform driver
+[ 0.980789] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
+[ 0.980791] ohci-pci: OHCI PCI platform driver
+[ 0.980807] ohci-platform: OHCI generic platform driver
+[ 0.980820] uhci_hcd: USB Universal Host Controller Interface driver
+[ 0.980960] uhci_hcd 0000:00:1d.0: UHCI Host Controller
+[ 0.980969] uhci_hcd 0000:00:1d.0: new USB bus registered, assigned bus number 2
+[ 0.981013] uhci_hcd 0000:00:1d.0: irq 16, io base 0x00005000
+[ 0.981094] usb usb2: New USB device found, idVendor=1d6b, idProduct=0001
+[ 0.981099] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
+[ 0.981102] usb usb2: Product: UHCI Host Controller
+[ 0.981106] usb usb2: Manufacturer: Linux 3.13.0-34-generic uhci_hcd
+[ 0.981109] usb usb2: SerialNumber: 0000:00:1d.0
+[ 0.981266] hub 2-0:1.0: USB hub found
+[ 0.981279] hub 2-0:1.0: 2 ports detected
+[ 0.981522] uhci_hcd 0000:00:1d.1: UHCI Host Controller
+[ 0.981530] uhci_hcd 0000:00:1d.1: new USB bus registered, assigned bus number 3
+[ 0.981575] uhci_hcd 0000:00:1d.1: irq 17, io base 0x00005020
+[ 0.981654] usb usb3: New USB device found, idVendor=1d6b, idProduct=0001
+[ 0.981658] usb usb3: New USB device strings: Mfr=3, Product=2, SerialNumber=1
+[ 0.981662] usb usb3: Product: UHCI Host Controller
+[ 0.981665] usb usb3: Manufacturer: Linux 3.13.0-34-generic uhci_hcd
+[ 0.981669] usb usb3: SerialNumber: 0000:00:1d.1
+[ 0.981825] hub 3-0:1.0: USB hub found
+[ 0.981840] hub 3-0:1.0: 2 ports detected
+[ 0.982079] uhci_hcd 0000:00:1d.2: UHCI Host Controller
+[ 0.982090] uhci_hcd 0000:00:1d.2: new USB bus registered, assigned bus number 4
+[ 0.982135] uhci_hcd 0000:00:1d.2: irq 18, io base 0x00005040
+[ 0.982218] usb usb4: New USB device found, idVendor=1d6b, idProduct=0001
+[ 0.982222] usb usb4: New USB device strings: Mfr=3, Product=2, SerialNumber=1
+[ 0.982225] usb usb4: Product: UHCI Host Controller
+[ 0.982229] usb usb4: Manufacturer: Linux 3.13.0-34-generic uhci_hcd
+[ 0.982232] usb usb4: SerialNumber: 0000:00:1d.2
+[ 0.982388] hub 4-0:1.0: USB hub found
+[ 0.982401] hub 4-0:1.0: 2 ports detected
+[ 0.982648] uhci_hcd 0000:00:1d.3: UHCI Host Controller
+[ 0.982656] uhci_hcd 0000:00:1d.3: new USB bus registered, assigned bus number 5
+[ 0.982688] uhci_hcd 0000:00:1d.3: irq 19, io base 0x00005060
+[ 0.982769] usb usb5: New USB device found, idVendor=1d6b, idProduct=0001
+[ 0.982774] usb usb5: New USB device strings: Mfr=3, Product=2, SerialNumber=1
+[ 0.982777] usb usb5: Product: UHCI Host Controller
+[ 0.982781] usb usb5: Manufacturer: Linux 3.13.0-34-generic uhci_hcd
+[ 0.982784] usb usb5: SerialNumber: 0000:00:1d.3
+[ 0.982935] hub 5-0:1.0: USB hub found
+[ 0.982947] hub 5-0:1.0: 2 ports detected
+[ 0.983162] i8042: PNP: PS/2 Controller [PNP0303:PS2K,PNP0f13:PS2M] at 0x60,0x64 irq 1,12
+[ 0.996933] serio: i8042 KBD port at 0x60,0x64 irq 1
+[ 0.996948] serio: i8042 AUX port at 0x60,0x64 irq 12
+[ 0.997177] mousedev: PS/2 mouse device common for all mice
+[ 0.997526] rtc_cmos 00:06: RTC can wake from S4
+[ 0.997724] rtc_cmos 00:06: rtc core: registered rtc_cmos as rtc0
+[ 0.997761] rtc_cmos 00:06: alarms up to one month, y3k, 242 bytes nvram, hpet irqs
+[ 0.997869] device-mapper: uevent: version 1.0.3
+[ 0.997988] device-mapper: ioctl: 4.27.0-ioctl (2013-10-30) initialised: dm-devel@redhat.com
+[ 0.998000] ledtrig-cpu: registered to indicate activity on CPUs
+[ 0.998153] TCP: cubic registered
+[ 0.998301] NET: Registered protocol family 10
+[ 0.998581] NET: Registered protocol family 17
+[ 0.998598] Key type dns_resolver registered
+[ 0.999003] Loading compiled-in X.509 certificates
+[ 1.000843] Loaded X.509 cert 'Magrathea: Glacier signing key: 0cadd161e4220740356b3090aabd2b3fcb83a5d0'
+[ 1.000865] registered taskstats version 1
+[ 1.004840] input: AT Translated Set 2 keyboard as /devices/platform/i8042/serio0/input/input3
+[ 1.006130] Key type trusted registered
+[ 1.010130] Key type encrypted registered
+[ 1.015532] AppArmor: AppArmor sha1 policy hashing enabled
+[ 1.015538] IMA: No TPM chip found, activating TPM-bypass!
+[ 1.015959] regulator-dummy: disabling
+[ 1.016046] Magic number: 10:359:855
+[ 1.016202] rtc_cmos 00:06: setting system clock to 2014-08-31 21:49:55 UTC (1409521795)
+[ 1.017114] BIOS EDD facility v0.16 2004-Jun-25, 0 devices found
+[ 1.017120] EDD information not available.
+[ 1.017162] PM: Hibernation image not present or could not be loaded.
+[ 1.019541] Freeing unused kernel memory: 1336K (ffffffff81d20000 - ffffffff81e6e000)
+[ 1.019544] Write protecting the kernel read-only data: 12288k
+[ 1.023552] Freeing unused kernel memory: 788K (ffff88000173b000 - ffff880001800000)
+[ 1.026751] Freeing unused kernel memory: 680K (ffff880001b56000 - ffff880001c00000)
+[ 1.052928] systemd-udevd[101]: starting version 204
+[ 1.094875] pps_core: LinuxPPS API ver. 1 registered
+[ 1.094880] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
+[ 1.098290] [drm] Initialized drm 1.1.0 20060810
+[ 1.102066] ACPI: Video Device [GFX0] (multi-head: yes rom: no post: no)
+[ 1.106256] PTP clock support registered
+[ 1.113596] e1000e: Intel(R) PRO/1000 Network Driver - 2.3.2-k
+[ 1.113602] e1000e: Copyright(c) 1999 - 2013 Intel Corporation.
+[ 1.124513] e1000e 0000:01:00.0: Interrupt Throttling Rate (ints/sec) set to dynamic conservative mode
+[ 1.124561] e1000e 0000:01:00.0: irq 44 for MSI/MSI-X
+[ 1.124660] acpi device:04: registered as cooling_device2
+[ 1.124749] input: Video Bus as /devices/LNXSYSTM:00/device:00/PNP0A08:00/LNXVIDEO:00/input/input5
+[ 1.147236] [drm:i915_dump_device_info], i915 device info: gen=3, pciid=0x27a2 flags=is_mobile,is_i945gm,has_hotplug,cursor_needs_physical,has_overlay,overlay_needs_physical,supports_tv,
+[ 1.147327] [drm:intel_detect_pch], No PCH found.
+[ 1.147333] [drm] Memory usable by graphics device = 256M
+[ 1.147335] [drm:i915_gem_gtt_init], GMADR size = 256M
+[ 1.147338] [drm:i915_gem_gtt_init], GTT stolen size = 8M
+[ 1.149656] sdhci: Secure Digital Host Controller Interface driver
+[ 1.149659] sdhci: Copyright(c) Pierre Ossman
+[ 1.152120] sdhci-pci 0000:05:00.2: SDHCI controller found [1180:0822] (rev 18)
+[ 1.152136] pci 0000:00:1e.0: enabling device (0004 -> 0007)
+[ 1.180299] [drm:intel_opregion_setup], graphic opregion physical addr: 0x0
+[ 1.180306] [drm:intel_opregion_setup], ACPI OpRegion not supported!
+[ 1.180346] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
+[ 1.180348] [drm] Driver supports precise vblank timestamp query.
+[ 1.180351] [drm:init_vbt_defaults], Set default to SSC at 100MHz
+[ 1.180358] i915 0000:00:02.0: Invalid ROM contents
+[ 1.180360] [drm:intel_parse_bios], VBT signature missing
+[ 1.180363] [drm] failed to find VBIOS tables
+[ 1.180369] [drm:intel_dsm_pci_probe], no _DSM method for intel device
+[ 1.180383] [drm:i915_gem_init_stolen], found 8388608 bytes of stolen memory at 7f800000
+[ 1.180409] [drm] GPU crash dump saved to /sys/class/drm/card0/error
+[ 1.180412] [drm:intel_modeset_init], 2 display pipes available.
+[ 1.180419] [drm:intel_crtc_init], swapping pipes & planes for FBC
+[ 1.180421] [drm] GPU hangs can indicate a bug anywhere in the entire gfx stack, including userspace.
+[ 1.180423] [drm] Please file a _new_ bug report on bugs.freedesktop.org against DRI -> DRM/Intel
+[ 1.180425] [drm] drm/i915 developers can then reassign to the right component if it's not a kernel issue.
+[ 1.180427] [drm] The gpu crash dump is required to analyze gpu hangs, so please always attach it.
+[ 1.180429] [drm:intel_modeset_init], pipe A sprite A init failed: -19
+[ 1.180435] [drm:intel_crtc_init], swapping pipes & planes for FBC
+[ 1.180437] [drm:intel_modeset_init], pipe B sprite B init failed: -19
+[ 1.180440] [drm:intel_shared_dpll_init], 0 shared PLLs initialized
+[ 1.180448] vgaarb: device changed decodes: PCI:0000:00:02.0,olddecodes=io+mem,decodes=io+mem:owns=io+mem
+[ 1.180450] i915: render error detected, EIR: 0x00000010
+[ 1.180452] i915: page table error
+[ 1.180454] i915: PGTBL_ER: 0x00000012
+[ 1.180457] [drm:i915_report_and_clear_eir] *ERROR* EIR stuck: 0x00000010, masking
+[ 1.180463] [drm:i915_irq_handler], pipe B underrun
+[ 1.180469] i915: render error detected, EIR: 0x00000010
+[ 1.180471] i915: page table error
+[ 1.180473] i915: PGTBL_ER: 0x00000012
+[ 1.182043] sdhci-pci 0000:05:00.2: Will use DMA mode even though HW doesn't fully claim to support it.
+[ 1.182056] sdhci-pci 0000:05:00.2: dummy supplies not allowed
+[ 1.182059] mmc0: no vqmmc regulator found
+[ 1.182062] sdhci-pci 0000:05:00.2: dummy supplies not allowed
+[ 1.182064] mmc0: no vmmc regulator found
+[ 1.183062] sdhci-pci 0000:05:00.2: Will use DMA mode even though HW doesn't fully claim to support it.
+[ 1.183862] mmc0: SDHCI controller on PCI [0000:05:00.2] using DMA
+[ 1.236462] e1000e 0000:01:00.0 eth0: (PCI Express:2.5GT/s:Width x1) 00:16:d3:b6:d0:98
+[ 1.236469] e1000e 0000:01:00.0 eth0: Intel(R) PRO/1000 Network Connection
+[ 1.236549] e1000e 0000:01:00.0 eth0: MAC: 2, PHY: 2, PBA No: 005302-003
+[ 1.248155] firewire_ohci 0000:05:00.1: added OHCI v1.10 device as card 0, 4 IR + 4 IT contexts, quirks 0x11
+[ 1.264281] [drm:intel_lvds_init], using preferred mode from EDID:
+[ 1.264287] [drm:drm_mode_debug_printmodeline], Modeline 8:"1024x768" 50 54160 1024 1048 1184 1344 768 771 777 806 0x48 0xa
+[ 1.264297] [drm:intel_lvds_init], detected single-link lvds configuration
+[ 1.264356] [drm:intel_panel_get_backlight], get backlight PWM = 24832
+[ 1.264360] [drm:intel_panel_get_max_backlight], max backlight PWM = 24832
+[ 1.264505] [drm:i915_gem_setup_global_gtt], clearing unused GTT space: [0, ffff000]
+[ 1.264889] [drm:i915_gem_object_create_stolen], creating stolen object: size=20000
+[ 1.264897] [drm:i915_pages_create_for_stolen], offset=0x0, size=131072
+[ 1.264946] [drm:i915_gem_context_init], Disabling HW Contexts; old hardware
+[ 1.264996] [drm] initialized overlay support
+[ 1.265002] [drm:intel_modeset_readout_hw_state], [CRTC:3] hw state readout: disabled
+[ 1.265012] [drm:intel_modeset_readout_hw_state], [CRTC:4] hw state readout: enabled
+[ 1.265017] [drm:intel_modeset_readout_hw_state], [ENCODER:6:LVDS-6] hw state readout: enabled, pipe B
+[ 1.265022] [drm:intel_modeset_readout_hw_state], [ENCODER:16:DAC-16] hw state readout: disabled, pipe A
+[ 1.265026] [drm:intel_modeset_readout_hw_state], [ENCODER:18:TV-18] hw state readout: disabled, pipe A
+[ 1.265031] [drm:intel_modeset_readout_hw_state], [CONNECTOR:5:LVDS-1] hw state readout: enabled
+[ 1.265035] [drm:intel_modeset_readout_hw_state], [CONNECTOR:15:VGA-1] hw state readout: disabled
+[ 1.265039] [drm:intel_modeset_readout_hw_state], [CONNECTOR:17:SVIDEO-1] hw state readout: disabled
+[ 1.265044] [drm:intel_dump_pipe_config], [CRTC:3][setup_hw_state] config for pipe A
+[ 1.265047] [drm:intel_dump_pipe_config], cpu_transcoder: A
+[ 1.265050] [drm:intel_dump_pipe_config], pipe bpp: 0, dithering: 0
+[ 1.265053] [drm:intel_dump_pipe_config], fdi/pch: 0, lanes: 0, gmch_m: 0, gmch_n: 0, link_m: 0, link_n: 0, tu: 0
+[ 1.265057] [drm:intel_dump_pipe_config], dp: 0, gmch_m: 0, gmch_n: 0, link_m: 0, link_n: 0, tu: 0
+[ 1.265060] [drm:intel_dump_pipe_config], requested mode:
+[ 1.265063] [drm:drm_mode_debug_printmodeline], Modeline 0:"" 0 0 0 0 0 0 0 0 0 0 0x0 0x0
+[ 1.265067] [drm:intel_dump_pipe_config], adjusted mode:
+[ 1.265070] [drm:drm_mode_debug_printmodeline], Modeline 0:"" 0 0 0 0 0 0 0 0 0 0 0x0 0x0
+[ 1.265074] [drm:intel_dump_crtc_timings], crtc timings: 0 0 0 0 0 0 0 0 0, type: 0x0 flags: 0x0
+[ 1.265078] [drm:intel_dump_pipe_config], port clock: 0
+[ 1.265081] [drm:intel_dump_pipe_config], pipe src size: 0x0
+[ 1.265084] [drm:intel_dump_pipe_config], gmch pfit: control: 0x00000000, ratios: 0x00000000, lvds border: 0x00000000
+[ 1.265087] [drm:intel_dump_pipe_config], pch pfit: pos: 0x00000000, size: 0x00000000, disabled
+[ 1.265090] [drm:intel_dump_pipe_config], ips: 0
+[ 1.265093] [drm:intel_dump_pipe_config], double wide: 0
+[ 1.265097] [drm:intel_dump_pipe_config], [CRTC:4][setup_hw_state] config for pipe B
+[ 1.265100] [drm:intel_dump_pipe_config], cpu_transcoder: B
+[ 1.265102] [drm:intel_dump_pipe_config], pipe bpp: 0, dithering: 0
+[ 1.265105] [drm:intel_dump_pipe_config], fdi/pch: 0, lanes: 0, gmch_m: 0, gmch_n: 0, link_m: 0, link_n: 0, tu: 0
+[ 1.265109] [drm:intel_dump_pipe_config], dp: 0, gmch_m: 0, gmch_n: 0, link_m: 0, link_n: 0, tu: 0
+[ 1.265112] [drm:intel_dump_pipe_config], requested mode:
+[ 1.265115] [drm:drm_mode_debug_printmodeline], Modeline 0:"" 0 0 640 0 0 0 400 0 0 0 0x0 0x0
+[ 1.265119] [drm:intel_dump_pipe_config], adjusted mode:
+[ 1.265122] [drm:drm_mode_debug_printmodeline], Modeline 0:"" 0 0 0 0 0 0 0 0 0 0 0x0 0xa
+[ 1.265126] [drm:intel_dump_crtc_timings], crtc timings: 45982 1024 1048 1184 1344 768 779 1 806, type: 0x0 flags: 0xa
+[ 1.265130] [drm:intel_dump_pipe_config], port clock: 45982
+[ 1.265133] [drm:intel_dump_pipe_config], pipe src size: 640x400
+[ 1.265136] [drm:intel_dump_pipe_config], gmch pfit: control: 0x80000220, ratios: 0x00000000, lvds border: 0x00000000
+[ 1.265139] [drm:intel_dump_pipe_config], pch pfit: pos: 0x00000000, size: 0x00000000, disabled
+[ 1.265142] [drm:intel_dump_pipe_config], ips: 0
+[ 1.265145] [drm:intel_dump_pipe_config], double wide: 0
+[ 1.265149] [drm:intel_connector_check_state], [CONNECTOR:5:LVDS-1]
+[ 1.265153] [drm:check_encoder_state], [ENCODER:6:LVDS-6]
+[ 1.265157] [drm:check_encoder_state], [ENCODER:16:DAC-16]
+[ 1.265160] [drm:check_encoder_state], [ENCODER:18:TV-18]
+[ 1.265163] [drm:check_crtc_state], [CRTC:3]
+[ 1.265166] [drm:check_crtc_state], [CRTC:4]
+[ 1.265183] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:5:LVDS-1]
+[ 1.265187] [drm:intel_lvds_detect], [CONNECTOR:5:LVDS-1]
+[ 1.265204] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:5:LVDS-1] probed modes :
+[ 1.265208] [drm:drm_mode_debug_printmodeline], Modeline 8:"1024x768" 50 54160 1024 1048 1184 1344 768 771 777 806 0x48 0xa
+[ 1.265213] [drm:drm_mode_debug_printmodeline], Modeline 12:"1024x768" 60 65000 1024 1048 1184 1344 768 771 777 806 0x40 0xa
+[ 1.265218] [drm:drm_mode_debug_printmodeline], Modeline 9:"1024x768" 40 43330 1024 1048 1184 1344 768 771 777 806 0x40 0xa
+[ 1.265222] [drm:drm_mode_debug_printmodeline], Modeline 10:"800x600" 60 40000 800 840 968 1056 600 601 605 628 0x40 0x5
+[ 1.265227] [drm:drm_mode_debug_printmodeline], Modeline 11:"640x480" 60 25200 640 656 752 800 480 490 492 525 0x40 0xa
+[ 1.265232] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:15:VGA-1]
+[ 1.265235] [drm:intel_crt_detect], [CONNECTOR:15:VGA-1] force=1
+[ 1.280167] [drm:intel_crt_detect], CRT not detected via hotplug
+[ 1.284121] [drm:gmbus_xfer], GMBUS [i915 gmbus vga] NAK for addr: 0050 r(1)
+[ 1.284128] [drm:drm_do_probe_ddc_edid], drm: skipping non-existent adapter i915 gmbus vga
+[ 1.284131] [drm:intel_crt_get_edid], CRT GMBUS EDID read failed, retry using GPIO bit-banging
+[ 1.284134] [drm:intel_gmbus_force_bit], enabling bit-banging on i915 gmbus vga. force bit now 1
+[ 1.284413] [drm:drm_do_probe_ddc_edid], drm: skipping non-existent adapter i915 gmbus vga
+[ 1.284416] [drm:intel_gmbus_force_bit], disabling bit-banging on i915 gmbus vga. force bit now 0
+[ 1.284419] [drm:intel_crt_detect_ddc], CRT not detected via DDC:0x50 [no valid EDID found]
+[ 1.284423] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:15:VGA-1] disconnected
+[ 1.284429] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:17:SVIDEO-1]
+[ 1.284432] [drm:intel_tv_detect], [CONNECTOR:17:SVIDEO-1] force=1
+[ 1.284437] [drm:intel_get_load_detect_pipe], [CONNECTOR:17:SVIDEO-1], [ENCODER:18:TV-18]
+[ 1.284441] [drm:intel_get_load_detect_pipe], creating tmp fb for load-detection
+[ 1.284454] [drm:intel_modeset_affected_pipes], set mode pipe masks: modeset: 1, prepare: 1, disable: 0
+[ 1.284460] [drm:connected_sink_compute_bpp], [CONNECTOR:17:SVIDEO-1] checking for sink bpp constrains
+[ 1.284464] [drm:intel_tv_compute_config], forcing bpc to 8 for TV
+[ 1.284467] [drm:intel_modeset_pipe_config], plane bpp: 24, pipe bpp: 24, dithering: 0
+[ 1.284470] [drm:intel_dump_pipe_config], [CRTC:3][modeset] config for pipe A
+[ 1.284473] [drm:intel_dump_pipe_config], cpu_transcoder: A
+[ 1.284476] [drm:intel_dump_pipe_config], pipe bpp: 24, dithering: 0
+[ 1.284479] [drm:intel_dump_pipe_config], fdi/pch: 0, lanes: 0, gmch_m: 0, gmch_n: 0, link_m: 0, link_n: 0, tu: 0
+[ 1.284483] [drm:intel_dump_pipe_config], dp: 0, gmch_m: 0, gmch_n: 0, link_m: 0, link_n: 0, tu: 0
+[ 1.284486] [drm:intel_dump_pipe_config], requested mode:
+[ 1.284488] [drm:drm_mode_debug_printmodeline], Modeline 0:"NTSC 480i" 0 107520 1280 1368 1496 1712 1024 1027 1034 1104 0x40 0x0
+[ 1.284493] [drm:intel_dump_pipe_config], adjusted mode:
+[ 1.284496] [drm:drm_mode_debug_printmodeline], Modeline 0:"NTSC 480i" 0 107520 1280 1368 1496 1712 1024 1027 1034 1104 0x40 0x0
+[ 1.284501] [drm:intel_dump_crtc_timings], crtc timings: 108000 1280 1368 1496 1712 1024 1027 1034 1104, type: 0x40 flags: 0x0
+[ 1.284505] [drm:intel_dump_pipe_config], port clock: 108000
+[ 1.284508] [drm:intel_dump_pipe_config], pipe src size: 1280x1024
+[ 1.284511] [drm:intel_dump_pipe_config], gmch pfit: control: 0x00000000, ratios: 0x00000000, lvds border: 0x00000000
+[ 1.284514] [drm:intel_dump_pipe_config], pch pfit: pos: 0x00000000, size: 0x00000000, disabled
+[ 1.284517] [drm:intel_dump_pipe_config], ips: 0
+[ 1.284520] [drm:intel_dump_pipe_config], double wide: 0
+[ 1.292029] [drm:i9xx_update_plane], Writing base 00020000 00000000 0 0 5120
+[ 1.292040] [drm:intel_crtc_mode_set], [ENCODER:18:TV-18] set [MODE:0:NTSC 480i]
+[ 1.297668] [drm:i9xx_get_fifo_size], FIFO size - (0x00001d9c) A: 28
+[ 1.297673] [drm:i9xx_get_fifo_size], FIFO size - (0x00001d9c) B: 31
+[ 1.297676] [drm:intel_calculate_wm], FIFO entries required for mode: 34
+[ 1.297679] [drm:intel_calculate_wm], FIFO watermark level: -5
+[ 1.297681] [drm:i9xx_update_wm], FIFO watermarks - A: 26, B: 1
+[ 1.297685] [drm:i9xx_update_wm], self-refresh entries: 80
+[ 1.297687] [drm:i9xx_update_wm], Setting FIFO watermarks - A: 26, B: 1, C: 2, SR 47
+[ 1.297691] [drm:i9xx_update_wm], memory self refresh enabled
+[ 1.320114] [drm:intel_connector_check_state], [CONNECTOR:5:LVDS-1]
+[ 1.320123] [drm:intel_connector_check_state], [CONNECTOR:17:SVIDEO-1]
+[ 1.320128] [drm:check_encoder_state], [ENCODER:6:LVDS-6]
+[ 1.320133] [drm:check_encoder_state], [ENCODER:16:DAC-16]
+[ 1.320138] [drm:check_encoder_state], [ENCODER:18:TV-18]
+[ 1.320142] [drm:check_crtc_state], [CRTC:3]
+[ 1.320155] [drm:check_crtc_state], [CRTC:4]
+[ 1.360100] [drm:intel_tv_detect_type], TV detected: c0007, 7f0000aa
+[ 1.360106] [drm:intel_tv_detect_type], Unrecognised TV connection
+[ 1.376107] [drm:intel_release_load_detect_pipe], [CONNECTOR:17:SVIDEO-1], [ENCODER:18:TV-18]
+[ 1.376114] [drm:intel_modeset_affected_pipes], set mode pipe masks: modeset: 0, prepare: 0, disable: 1
+[ 1.421067] [drm:i9xx_get_fifo_size], FIFO size - (0x00001d9c) A: 28
+[ 1.421071] [drm:i9xx_get_fifo_size], FIFO size - (0x00001d9c) B: 31
+[ 1.421074] [drm:i9xx_update_wm], FIFO watermarks - A: 26, B: 29
+[ 1.421077] [drm:i9xx_update_wm], Setting FIFO watermarks - A: 26, B: 29, C: 2, SR 1
+[ 1.421080] [drm:i9xx_update_wm], memory self refresh disabled
+[ 1.421087] [drm:intel_connector_check_state], [CONNECTOR:5:LVDS-1]
+[ 1.421091] [drm:check_encoder_state], [ENCODER:6:LVDS-6]
+[ 1.421094] [drm:check_encoder_state], [ENCODER:16:DAC-16]
+[ 1.421098] [drm:check_encoder_state], [ENCODER:18:TV-18]
+[ 1.421101] [drm:check_crtc_state], [CRTC:3]
+[ 1.421104] [drm:check_crtc_state], [CRTC:4]
+[ 1.421246] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:17:SVIDEO-1] disconnected
+[ 1.421251] [drm:drm_setup_crtcs],
+[ 1.421254] [drm:drm_enable_connectors], connector 5 enabled? yes
+[ 1.421257] [drm:drm_enable_connectors], connector 15 enabled? no
+[ 1.421260] [drm:drm_enable_connectors], connector 17 enabled? no
+[ 1.421263] [drm:drm_target_preferred], looking for cmdline mode on connector 5
+[ 1.421266] [drm:drm_target_preferred], looking for preferred mode on connector 5
+[ 1.421268] [drm:drm_target_preferred], found mode 1024x768
+[ 1.421271] [drm:drm_setup_crtcs], picking CRTCs for 4096x4096 config
+[ 1.421275] [drm:drm_setup_crtcs], desired mode 1024x768 set on crtc 4
+[ 1.421281] [drm:i915_gem_object_create_stolen], creating stolen object: size=300000
+[ 1.421285] [drm:i915_pages_create_for_stolen], offset=0x20000, size=3145728
+[ 1.422732] [drm:intelfb_create], allocated 1024x768 fb: 0x00020000, bo ffff880035eaa300
+[ 1.422872] fbcon: inteldrmfb (fb0) is primary device
+[ 1.423535] [drm:intel_crtc_set_config], [CRTC:3] [NOFB]
+[ 1.423538] [drm:intel_set_config_compute_mode_changes], computed changes for [CRTC:3], mode_changed=0, fb_changed=0
+[ 1.423541] [drm:intel_modeset_stage_output_state], [CONNECTOR:5:LVDS-1] to [CRTC:4]
+[ 1.423544] [drm:intel_crtc_set_config], [CRTC:4] [FB:33] #connectors=1 (x y) (0 0)
+[ 1.423546] [drm:intel_set_config_compute_mode_changes], inactive crtc, full mode set
+[ 1.423548] [drm:intel_set_config_compute_mode_changes], modes are different, full mode set
+[ 1.423552] [drm:drm_mode_debug_printmodeline], Modeline 0:"" 0 0 0 0 0 0 0 0 0 0 0x0 0x0
+[ 1.423556] [drm:drm_mode_debug_printmodeline], Modeline 32:"1024x768" 50 54160 1024 1048 1184 1344 768 771 777 806 0x48 0xa
+[ 1.423558] [drm:intel_set_config_compute_mode_changes], computed changes for [CRTC:4], mode_changed=1, fb_changed=0
+[ 1.423560] [drm:intel_modeset_stage_output_state], [CONNECTOR:5:LVDS-1] to [CRTC:4]
+[ 1.423563] [drm:intel_modeset_affected_pipes], set mode pipe masks: modeset: 2, prepare: 2, disable: 0
+[ 1.423566] [drm:connected_sink_compute_bpp], [CONNECTOR:5:LVDS-1] checking for sink bpp constrains
+[ 1.423570] [drm:intel_lvds_compute_config], forcing display bpp (was 24) to LVDS (18)
+[ 1.423573] [drm:intel_modeset_pipe_config], plane bpp: 24, pipe bpp: 18, dithering: 1
+[ 1.423576] [drm:intel_dump_pipe_config], [CRTC:4][modeset] config for pipe B
+[ 1.423577] [drm:intel_dump_pipe_config], cpu_transcoder: B
+[ 1.423579] [drm:intel_dump_pipe_config], pipe bpp: 18, dithering: 1
+[ 1.423582] [drm:intel_dump_pipe_config], fdi/pch: 0, lanes: 0, gmch_m: 0, gmch_n: 0, link_m: 0, link_n: 0, tu: 0
+[ 1.423584] [drm:intel_dump_pipe_config], dp: 0, gmch_m: 0, gmch_n: 0, link_m: 0, link_n: 0, tu: 0
+[ 1.423586] [drm:intel_dump_pipe_config], requested mode:
+[ 1.423589] [drm:drm_mode_debug_printmodeline], Modeline 0:"1024x768" 50 54160 1024 1048 1184 1344 768 771 777 806 0x48 0xa
+[ 1.423591] [drm:intel_dump_pipe_config], adjusted mode:
+[ 1.423595] [drm:drm_mode_debug_printmodeline], Modeline 0:"1024x768" 50 54160 1024 1048 1184 1344 768 771 777 806 0x48 0xa
+[ 1.423598] [drm:intel_dump_crtc_timings], crtc timings: 54160 1024 1048 1184 1344 768 771 777 806, type: 0x48 flags: 0xa
+[ 1.423600] [drm:intel_dump_pipe_config], port clock: 54160
+[ 1.423602] [drm:intel_dump_pipe_config], pipe src size: 1024x768
+[ 1.423604] [drm:intel_dump_pipe_config], gmch pfit: control: 0x00000008, ratios: 0x00000000, lvds border: 0x00000000
+[ 1.423607] [drm:intel_dump_pipe_config], pch pfit: pos: 0x00000000, size: 0x00000000, disabled
+[ 1.423608] [drm:intel_dump_pipe_config], ips: 0
+[ 1.423610] [drm:intel_dump_pipe_config], double wide: 0
+[ 1.423613] [drm:intel_panel_actually_set_backlight], set backlight PWM = 0
+[ 1.457065] [drm:i9xx_pfit_disable], disabling pfit, current: 0x80000220
+[ 1.457069] [drm:i9xx_get_fifo_size], FIFO size - (0x00001d9c) A: 28
+[ 1.457071] [drm:i9xx_get_fifo_size], FIFO size - (0x00001d9c) B: 31
+[ 1.457073] [drm:i9xx_update_wm], FIFO watermarks - A: 26, B: 29
+[ 1.457076] [drm:i9xx_update_wm], Setting FIFO watermarks - A: 26, B: 29, C: 2, SR 1
+[ 1.457077] [drm:i9xx_update_wm], memory self refresh disabled
+[ 1.457082] [drm:i9xx_get_refclk], using SSC reference clock of 100 MHz
+[ 1.457252] [drm:i9xx_update_plane], Writing base 00020000 00000000 0 0 4096
+[ 1.457256] [drm:intel_crtc_mode_set], [ENCODER:6:LVDS-6] set [MODE:0:1024x768]
+[ 1.457893] [drm:i9xx_get_fifo_size], FIFO size - (0x00001d9c) A: 28
+[ 1.457895] [drm:intel_calculate_wm], FIFO entries required for mode: 17
+[ 1.457896] [drm:intel_calculate_wm], FIFO watermark level: 9
+[ 1.457898] [drm:i9xx_get_fifo_size], FIFO size - (0x00001d9c) B: 31
+[ 1.457900] [drm:i9xx_update_wm], FIFO watermarks - A: 9, B: 29
+[ 1.457902] [drm:i9xx_update_wm], self-refresh entries: 64
+[ 1.457905] [drm:i9xx_update_wm], Setting FIFO watermarks - A: 9, B: 29, C: 2, SR 63
+[ 1.457906] [drm:i9xx_update_wm], memory self refresh enabled
+[ 1.650555] psmouse serio1: alps: Unknown ALPS touchpad: E7=10 00 64, EC=10 00 64
+[ 1.748270] firewire_core 0000:05:00.1: created device fw0: GUID 0000000000000000, S400
+[ 1.800110] [drm:intel_panel_enable_backlight], pipe B
+[ 1.800114] [drm:intel_panel_actually_set_backlight], set backlight PWM = 24832
+[ 1.800120] [drm:intel_connector_check_state], [CONNECTOR:5:LVDS-1]
+[ 1.800125] [drm:check_encoder_state], [ENCODER:6:LVDS-6]
+[ 1.800129] [drm:check_encoder_state], [ENCODER:16:DAC-16]
+[ 1.800133] [drm:check_encoder_state], [ENCODER:18:TV-18]
+[ 1.800136] [drm:check_crtc_state], [CRTC:3]
+[ 1.800139] [drm:check_crtc_state], [CRTC:4]
+[ 1.800178] [drm:intel_crtc_set_config], [CRTC:4] [FB:33] #connectors=1 (x y) (0 0)
+[ 1.800182] [drm:intel_set_config_compute_mode_changes], computed changes for [CRTC:4], mode_changed=0, fb_changed=0
+[ 1.800186] [drm:intel_modeset_stage_output_state], [CONNECTOR:5:LVDS-1] to [CRTC:4]
+[ 1.803473] Console: switching to colour frame buffer device 128x48
+[ 1.803478] [drm:intel_crtc_set_config], [CRTC:4] [FB:33] #connectors=1 (x y) (0 0)
+[ 1.803481] [drm:intel_set_config_compute_mode_changes], computed changes for [CRTC:4], mode_changed=0, fb_changed=0
+[ 1.803483] [drm:intel_modeset_stage_output_state], [CONNECTOR:5:LVDS-1] to [CRTC:4]
+[ 1.806832] i915 0000:00:02.0: fb0: inteldrmfb frame buffer device
+[ 1.806835] i915 0000:00:02.0: registered panic notifier
+[ 1.806859] [drm] Initialized i915 1.6.0 20080730 for 0000:00:02.0 on minor 0
+[ 1.806909] ahci 0000:00:1f.2: version 3.0
+[ 1.807136] ahci 0000:00:1f.2: irq 45 for MSI/MSI-X
+[ 1.807190] ahci 0000:00:1f.2: SSS flag set, parallel bus scan disabled
+[ 1.807222] ahci 0000:00:1f.2: AHCI 0001.0100 32 slots 4 ports 1.5 Gbps 0x1 impl SATA mode
+[ 1.807228] ahci 0000:00:1f.2: flags: 64bit ncq ilck stag pm led clo pmp pio slum part
+[ 1.808040] scsi2 : ahci
+[ 1.808204] scsi3 : ahci
+[ 1.808350] scsi4 : ahci
+[ 1.808499] scsi5 : ahci
+[ 1.808567] ata3: SATA max UDMA/133 abar m1024@0xe4344400 port 0xe4344500 irq 45
+[ 1.808570] ata4: DUMMY
+[ 1.808572] ata5: DUMMY
+[ 1.808574] ata6: DUMMY
+[ 2.014396] psmouse serio1: trackpoint: IBM TrackPoint firmware: 0x0e, buttons: 3/3
+[ 2.033367] input: TPPS/2 IBM TrackPoint as /devices/platform/i8042/serio1/input/input6
+[ 2.304119] ata3: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
+[ 2.305312] ata3.00: ATA-8: HITACHI HTS722010K9SA00, DC2ZC75A, max UDMA/133
+[ 2.305317] ata3.00: 195371568 sectors, multi 0: LBA48 NCQ (depth 31/32), AA
+[ 2.306684] ata3.00: configured for UDMA/133
+[ 2.306893] scsi 2:0:0:0: Direct-Access ATA HITACHI HTS72201 DC2Z PQ: 0 ANSI: 5
+[ 2.307119] sd 2:0:0:0: Attached scsi generic sg0 type 0
+[ 2.307251] sd 2:0:0:0: [sda] 195371568 512-byte logical blocks: (100 GB/93.1 GiB)
+[ 2.307395] sd 2:0:0:0: [sda] Write Protect is off
+[ 2.307400] sd 2:0:0:0: [sda] Mode Sense: 00 3a 00 00
+[ 2.307477] sd 2:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
+[ 2.632829] sda: sda1
+[ 2.633271] sd 2:0:0:0: [sda] Attached SCSI disk
+[ 2.784099] [drm:intel_crtc_set_config], [CRTC:4] [FB:33] #connectors=1 (x y) (0 0)
+[ 2.784104] [drm:intel_set_config_compute_mode_changes], computed changes for [CRTC:4], mode_changed=0, fb_changed=0
+[ 2.784107] [drm:intel_modeset_stage_output_state], [CONNECTOR:5:LVDS-1] to [CRTC:4]
+[ 2.908607] [drm:i915_gem_open],
+[ 2.908634] [drm:intel_crtc_cursor_set], cursor off
+[ 2.908638] [drm:intel_crtc_set_config], [CRTC:3] [NOFB]
+[ 2.908643] [drm:intel_set_config_compute_mode_changes], computed changes for [CRTC:3], mode_changed=0, fb_changed=0
+[ 2.908648] [drm:intel_modeset_stage_output_state], [CONNECTOR:5:LVDS-1] to [CRTC:4]
+[ 2.908652] [drm:intel_crtc_cursor_set], cursor off
+[ 2.908655] [drm:intel_crtc_set_config], [CRTC:4] [FB:33] #connectors=1 (x y) (0 0)
+[ 2.908660] [drm:intel_set_config_compute_mode_changes], computed changes for [CRTC:4], mode_changed=0, fb_changed=0
+[ 2.908663] [drm:intel_modeset_stage_output_state], [CONNECTOR:5:LVDS-1] to [CRTC:4]
+[ 2.908682] [drm:i915_gem_open],
+[ 2.908697] [drm:intel_crtc_cursor_set], cursor off
+[ 2.908700] [drm:intel_crtc_set_config], [CRTC:3] [NOFB]
+[ 2.908703] [drm:intel_set_config_compute_mode_changes], computed changes for [CRTC:3], mode_changed=0, fb_changed=0
+[ 2.908706] [drm:intel_modeset_stage_output_state], [CONNECTOR:5:LVDS-1] to [CRTC:4]
+[ 2.908709] [drm:intel_crtc_cursor_set], cursor off
+[ 2.908712] [drm:intel_crtc_set_config], [CRTC:4] [FB:33] #connectors=1 (x y) (0 0)
+[ 2.908716] [drm:intel_set_config_compute_mode_changes], computed changes for [CRTC:4], mode_changed=0, fb_changed=0
+[ 2.908719] [drm:intel_modeset_stage_output_state], [CONNECTOR:5:LVDS-1] to [CRTC:4]
+[ 2.908735] [drm:i915_gem_open],
+[ 2.908824] [drm:drm_mode_getresources], CRTC[2] CONNECTORS[3] ENCODERS[3]
+[ 2.908830] [drm:drm_mode_getresources], CRTC[2] CONNECTORS[3] ENCODERS[3]
+[ 2.908841] [drm:drm_mode_getconnector], [CONNECTOR:5:?]
+[ 2.908846] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:5:LVDS-1]
+[ 2.908850] [drm:intel_lvds_detect], [CONNECTOR:5:LVDS-1]
+[ 2.908871] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:5:LVDS-1] probed modes :
+[ 2.908874] [drm:drm_mode_debug_printmodeline], Modeline 8:"1024x768" 50 54160 1024 1048 1184 1344 768 771 777 806 0x48 0xa
+[ 2.908880] [drm:drm_mode_debug_printmodeline], Modeline 12:"1024x768" 60 65000 1024 1048 1184 1344 768 771 777 806 0x40 0xa
+[ 2.908885] [drm:drm_mode_debug_printmodeline], Modeline 9:"1024x768" 40 43330 1024 1048 1184 1344 768 771 777 806 0x40 0xa
+[ 2.908889] [drm:drm_mode_debug_printmodeline], Modeline 10:"800x600" 60 40000 800 840 968 1056 600 601 605 628 0x40 0x5
+[ 2.908894] [drm:drm_mode_debug_printmodeline], Modeline 11:"640x480" 60 25200 640 656 752 800 480 490 492 525 0x40 0xa
+[ 2.908901] [drm:drm_mode_getconnector], [CONNECTOR:5:?]
+[ 2.912519] [drm:drm_mode_getconnector], [CONNECTOR:15:?]
+[ 2.912529] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:15:VGA-1]
+[ 2.912533] [drm:intel_crt_detect], [CONNECTOR:15:VGA-1] force=1
+[ 2.928108] [drm:intel_crt_detect], CRT not detected via hotplug
+[ 2.932103] [drm:gmbus_xfer], GMBUS [i915 gmbus vga] NAK for addr: 0050 r(1)
+[ 2.932110] [drm:drm_do_probe_ddc_edid], drm: skipping non-existent adapter i915 gmbus vga
+[ 2.932115] [drm:intel_crt_get_edid], CRT GMBUS EDID read failed, retry using GPIO bit-banging
+[ 2.932118] [drm:intel_gmbus_force_bit], enabling bit-banging on i915 gmbus vga. force bit now 1
+[ 2.932404] [drm:drm_do_probe_ddc_edid], drm: skipping non-existent adapter i915 gmbus vga
+[ 2.932407] [drm:intel_gmbus_force_bit], disabling bit-banging on i915 gmbus vga. force bit now 0
+[ 2.932410] [drm:intel_crt_detect_ddc], CRT not detected via DDC:0x50 [no valid EDID found]
+[ 2.932413] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:15:VGA-1] disconnected
+[ 2.932424] [drm:drm_mode_getconnector], [CONNECTOR:15:?]
+[ 2.932427] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:15:VGA-1]
+[ 2.932430] [drm:intel_crt_detect], [CONNECTOR:15:VGA-1] force=1
+[ 2.948104] [drm:intel_crt_detect], CRT not detected via hotplug
+[ 2.952104] [drm:gmbus_xfer], GMBUS [i915 gmbus vga] NAK for addr: 0050 r(1)
+[ 2.952111] [drm:drm_do_probe_ddc_edid], drm: skipping non-existent adapter i915 gmbus vga
+[ 2.952115] [drm:intel_crt_get_edid], CRT GMBUS EDID read failed, retry using GPIO bit-banging
+[ 2.952118] [drm:intel_gmbus_force_bit], enabling bit-banging on i915 gmbus vga. force bit now 1
+[ 2.952401] [drm:drm_do_probe_ddc_edid], drm: skipping non-existent adapter i915 gmbus vga
+[ 2.952403] [drm:intel_gmbus_force_bit], disabling bit-banging on i915 gmbus vga. force bit now 0
+[ 2.952406] [drm:intel_crt_detect_ddc], CRT not detected via DDC:0x50 [no valid EDID found]
+[ 2.952409] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:15:VGA-1] disconnected
+[ 2.952420] [drm:drm_mode_getconnector], [CONNECTOR:17:?]
+[ 2.952423] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:17:SVIDEO-1]
+[ 2.952427] [drm:intel_tv_detect], [CONNECTOR:17:SVIDEO-1] force=1
+[ 2.952431] [drm:intel_get_load_detect_pipe], [CONNECTOR:17:SVIDEO-1], [ENCODER:18:TV-18]
+[ 2.952436] [drm:intel_get_load_detect_pipe], creating tmp fb for load-detection
+[ 2.952459] [drm:intel_modeset_affected_pipes], set mode pipe masks: modeset: 1, prepare: 1, disable: 0
+[ 2.952466] [drm:connected_sink_compute_bpp], [CONNECTOR:17:SVIDEO-1] checking for sink bpp constrains
+[ 2.952471] [drm:intel_tv_compute_config], forcing bpc to 8 for TV
+[ 2.952474] [drm:intel_modeset_pipe_config], plane bpp: 24, pipe bpp: 24, dithering: 0
+[ 2.952477] [drm:intel_dump_pipe_config], [CRTC:3][modeset] config for pipe A
+[ 2.952480] [drm:intel_dump_pipe_config], cpu_transcoder: A
+[ 2.952483] [drm:intel_dump_pipe_config], pipe bpp: 24, dithering: 0
+[ 2.952486] [drm:intel_dump_pipe_config], fdi/pch: 0, lanes: 0, gmch_m: 0, gmch_n: 0, link_m: 0, link_n: 0, tu: 0
+[ 2.952489] [drm:intel_dump_pipe_config], dp: 0, gmch_m: 0, gmch_n: 0, link_m: 0, link_n: 0, tu: 0
+[ 2.952493] [drm:intel_dump_pipe_config], requested mode:
+[ 2.952495] [drm:drm_mode_debug_printmodeline], Modeline 0:"NTSC 480i" 0 107520 1280 1368 1496 1712 1024 1027 1034 1104 0x40 0x0
+[ 2.952500] [drm:intel_dump_pipe_config], adjusted mode:
+[ 2.952503] [drm:drm_mode_debug_printmodeline], Modeline 0:"NTSC 480i" 0 107520 1280 1368 1496 1712 1024 1027 1034 1104 0x40 0x0
+[ 2.952508] [drm:intel_dump_crtc_timings], crtc timings: 108000 1280 1368 1496 1712 1024 1027 1034 1104, type: 0x40 flags: 0x0
+[ 2.952512] [drm:intel_dump_pipe_config], port clock: 108000
+[ 2.952514] [drm:intel_dump_pipe_config], pipe src size: 1280x1024
+[ 2.952517] [drm:intel_dump_pipe_config], gmch pfit: control: 0x00000000, ratios: 0x00000000, lvds border: 0x00000000
+[ 2.952521] [drm:intel_dump_pipe_config], pch pfit: pos: 0x00000000, size: 0x00000000, disabled
+[ 2.952524] [drm:intel_dump_pipe_config], ips: 0
+[ 2.952527] [drm:intel_dump_pipe_config], double wide: 0
+[ 2.959612] [drm:i9xx_update_plane], Writing base 00320000 00000000 0 0 5120
+[ 2.959624] [drm:intel_crtc_mode_set], [ENCODER:18:TV-18] set [MODE:0:NTSC 480i]
+[ 2.965254] [drm:i9xx_get_fifo_size], FIFO size - (0x00001d9c) A: 28
+[ 2.965259] [drm:intel_calculate_wm], FIFO entries required for mode: 17
+[ 2.965261] [drm:intel_calculate_wm], FIFO watermark level: 9
+[ 2.965264] [drm:i9xx_get_fifo_size], FIFO size - (0x00001d9c) B: 31
+[ 2.965267] [drm:intel_calculate_wm], FIFO entries required for mode: 34
+[ 2.965270] [drm:intel_calculate_wm], FIFO watermark level: -5
+[ 2.965272] [drm:i9xx_update_wm], FIFO watermarks - A: 9, B: 1
+[ 2.965276] [drm:i9xx_update_wm], Setting FIFO watermarks - A: 9, B: 1, C: 2, SR 1
+[ 2.965279] [drm:i9xx_update_wm], memory self refresh disabled
+[ 2.988110] [drm:intel_connector_check_state], [CONNECTOR:5:LVDS-1]
+[ 2.988118] [drm:intel_connector_check_state], [CONNECTOR:17:SVIDEO-1]
+[ 2.988123] [drm:check_encoder_state], [ENCODER:6:LVDS-6]
+[ 2.988128] [drm:check_encoder_state], [ENCODER:16:DAC-16]
+[ 2.988133] [drm:check_encoder_state], [ENCODER:18:TV-18]
+[ 2.988138] [drm:check_crtc_state], [CRTC:3]
+[ 2.988151] [drm:check_crtc_state], [CRTC:4]
+[ 3.028106] [drm:intel_tv_detect_type], TV detected: c0007, 7f0000aa
+[ 3.028114] [drm:intel_tv_detect_type], Unrecognised TV connection
+[ 3.044104] [drm:intel_release_load_detect_pipe], [CONNECTOR:17:SVIDEO-1], [ENCODER:18:TV-18]
+[ 3.044113] [drm:intel_modeset_affected_pipes], set mode pipe masks: modeset: 0, prepare: 0, disable: 1
+[ 3.089061] [drm:i9xx_get_fifo_size], FIFO size - (0x00001d9c) A: 28
+[ 3.089065] [drm:intel_calculate_wm], FIFO entries required for mode: 17
+[ 3.089067] [drm:intel_calculate_wm], FIFO watermark level: 9
+[ 3.089070] [drm:i9xx_get_fifo_size], FIFO size - (0x00001d9c) B: 31
+[ 3.089074] [drm:i9xx_update_wm], FIFO watermarks - A: 9, B: 29
+[ 3.089077] [drm:i9xx_update_wm], self-refresh entries: 64
+[ 3.089079] [drm:i9xx_update_wm], Setting FIFO watermarks - A: 9, B: 29, C: 2, SR 63
+[ 3.089083] [drm:i9xx_update_wm], memory self refresh enabled
+[ 3.089089] [drm:intel_connector_check_state], [CONNECTOR:5:LVDS-1]
+[ 3.089094] [drm:check_encoder_state], [ENCODER:6:LVDS-6]
+[ 3.089097] [drm:check_encoder_state], [ENCODER:16:DAC-16]
+[ 3.089100] [drm:check_encoder_state], [ENCODER:18:TV-18]
+[ 3.089103] [drm:check_crtc_state], [CRTC:3]
+[ 3.089106] [drm:check_crtc_state], [CRTC:4]
+[ 3.089258] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:17:SVIDEO-1] disconnected
+[ 3.090319] [drm:drm_mode_getconnector], [CONNECTOR:17:?]
+[ 3.090324] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:17:SVIDEO-1]
+[ 3.090327] [drm:intel_tv_detect], [CONNECTOR:17:SVIDEO-1] force=1
+[ 3.090331] [drm:intel_get_load_detect_pipe], [CONNECTOR:17:SVIDEO-1], [ENCODER:18:TV-18]
+[ 3.090335] [drm:intel_get_load_detect_pipe], creating tmp fb for load-detection
+[ 3.090351] [drm:intel_modeset_affected_pipes], set mode pipe masks: modeset: 1, prepare: 1, disable: 0
+[ 3.090356] [drm:connected_sink_compute_bpp], [CONNECTOR:17:SVIDEO-1] checking for sink bpp constrains
+[ 3.090359] [drm:intel_tv_compute_config], forcing bpc to 8 for TV
+[ 3.090362] [drm:intel_modeset_pipe_config], plane bpp: 24, pipe bpp: 24, dithering: 0
+[ 3.090365] [drm:intel_dump_pipe_config], [CRTC:3][modeset] config for pipe A
+[ 3.090369] [drm:intel_dump_pipe_config], cpu_transcoder: A
+[ 3.090371] [drm:intel_dump_pipe_config], pipe bpp: 24, dithering: 0
+[ 3.090374] [drm:intel_dump_pipe_config], fdi/pch: 0, lanes: 0, gmch_m: 0, gmch_n: 0, link_m: 0, link_n: 0, tu: 0
+[ 3.090378] [drm:intel_dump_pipe_config], dp: 0, gmch_m: 0, gmch_n: 0, link_m: 0, link_n: 0, tu: 0
+[ 3.090381] [drm:intel_dump_pipe_config], requested mode:
+[ 3.090384] [drm:drm_mode_debug_printmodeline], Modeline 0:"NTSC 480i" 0 107520 1280 1368 1496 1712 1024 1027 1034 1104 0x40 0x0
+[ 3.090389] [drm:intel_dump_pipe_config], adjusted mode:
+[ 3.090391] [drm:drm_mode_debug_printmodeline], Modeline 0:"NTSC 480i" 0 107520 1280 1368 1496 1712 1024 1027 1034 1104 0x40 0x0
+[ 3.090396] [drm:intel_dump_crtc_timings], crtc timings: 108000 1280 1368 1496 1712 1024 1027 1034 1104, type: 0x40 flags: 0x0
+[ 3.090400] [drm:intel_dump_pipe_config], port clock: 108000
+[ 3.090403] [drm:intel_dump_pipe_config], pipe src size: 1280x1024
+[ 3.090406] [drm:intel_dump_pipe_config], gmch pfit: control: 0x00000000, ratios: 0x00000000, lvds border: 0x00000000
+[ 3.090409] [drm:intel_dump_pipe_config], pch pfit: pos: 0x00000000, size: 0x00000000, disabled
+[ 3.090412] [drm:intel_dump_pipe_config], ips: 0
+[ 3.090415] [drm:intel_dump_pipe_config], double wide: 0
+[ 3.096851] [drm:i9xx_update_plane], Writing base 00320000 00000000 0 0 5120
+[ 3.096864] [drm:intel_crtc_mode_set], [ENCODER:18:TV-18] set [MODE:0:NTSC 480i]
+[ 3.102491] [drm:i9xx_get_fifo_size], FIFO size - (0x00001d9c) A: 28
+[ 3.102495] [drm:intel_calculate_wm], FIFO entries required for mode: 17
+[ 3.102498] [drm:intel_calculate_wm], FIFO watermark level: 9
+[ 3.102501] [drm:i9xx_get_fifo_size], FIFO size - (0x00001d9c) B: 31
+[ 3.102504] [drm:intel_calculate_wm], FIFO entries required for mode: 34
+[ 3.102506] [drm:intel_calculate_wm], FIFO watermark level: -5
+[ 3.102509] [drm:i9xx_update_wm], FIFO watermarks - A: 9, B: 1
+[ 3.102512] [drm:i9xx_update_wm], Setting FIFO watermarks - A: 9, B: 1, C: 2, SR 1
+[ 3.102515] [drm:i9xx_update_wm], memory self refresh disabled
+[ 3.124103] [drm:intel_connector_check_state], [CONNECTOR:5:LVDS-1]
+[ 3.124110] [drm:intel_connector_check_state], [CONNECTOR:17:SVIDEO-1]
+[ 3.124116] [drm:check_encoder_state], [ENCODER:6:LVDS-6]
+[ 3.124121] [drm:check_encoder_state], [ENCODER:16:DAC-16]
+[ 3.124126] [drm:check_encoder_state], [ENCODER:18:TV-18]
+[ 3.124131] [drm:check_crtc_state], [CRTC:3]
+[ 3.124143] [drm:check_crtc_state], [CRTC:4]
+[ 3.164099] [drm:intel_tv_detect_type], TV detected: c0007, 7f0000aa
+[ 3.164104] [drm:intel_tv_detect_type], Unrecognised TV connection
+[ 3.188098] [drm:intel_release_load_detect_pipe], [CONNECTOR:17:SVIDEO-1], [ENCODER:18:TV-18]
+[ 3.188105] [drm:intel_modeset_affected_pipes], set mode pipe masks: modeset: 0, prepare: 0, disable: 1
+[ 3.229059] [drm:i9xx_get_fifo_size], FIFO size - (0x00001d9c) A: 28
+[ 3.229063] [drm:intel_calculate_wm], FIFO entries required for mode: 17
+[ 3.229065] [drm:intel_calculate_wm], FIFO watermark level: 9
+[ 3.229068] [drm:i9xx_get_fifo_size], FIFO size - (0x00001d9c) B: 31
+[ 3.229071] [drm:i9xx_update_wm], FIFO watermarks - A: 9, B: 29
+[ 3.229075] [drm:i9xx_update_wm], self-refresh entries: 64
+[ 3.229077] [drm:i9xx_update_wm], Setting FIFO watermarks - A: 9, B: 29, C: 2, SR 63
+[ 3.229081] [drm:i9xx_update_wm], memory self refresh enabled
+[ 3.229086] [drm:intel_connector_check_state], [CONNECTOR:5:LVDS-1]
+[ 3.229091] [drm:check_encoder_state], [ENCODER:6:LVDS-6]
+[ 3.229094] [drm:check_encoder_state], [ENCODER:16:DAC-16]
+[ 3.229097] [drm:check_encoder_state], [ENCODER:18:TV-18]
+[ 3.229100] [drm:check_crtc_state], [CRTC:3]
+[ 3.229103] [drm:check_crtc_state], [CRTC:4]
+[ 3.229256] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:17:SVIDEO-1] disconnected
+[ 3.230324] [drm:drm_mode_addfb], [FB:34]
+[ 3.603108] [drm:drm_mode_addfb], [FB:34]
+[ 3.603201] [drm:intel_crtc_set_config], [CRTC:4] [FB:33] #connectors=1 (x y) (0 0)
+[ 3.603207] [drm:intel_set_config_compute_mode_changes], computed changes for [CRTC:4], mode_changed=0, fb_changed=0
+[ 3.603211] [drm:intel_modeset_stage_output_state], [CONNECTOR:5:LVDS-1] to [CRTC:4]
+[ 3.606628] [drm:drm_mode_setcrtc], [CRTC:4]
+[ 3.606636] [drm:drm_mode_setcrtc], [CONNECTOR:5:LVDS-1]
+[ 3.606640] [drm:intel_crtc_set_config], [CRTC:4] [FB:34] #connectors=1 (x y) (0 0)
+[ 3.606645] [drm:intel_set_config_compute_mode_changes], computed changes for [CRTC:4], mode_changed=0, fb_changed=1
+[ 3.606648] [drm:intel_modeset_stage_output_state], [CONNECTOR:5:LVDS-1] to [CRTC:4]
+[ 3.610935] [drm:i9xx_update_plane], Writing base 00320000 00000000 0 0 4096
+[ 3.627861] md: linear personality registered for level -1
+[ 3.628773] [drm:drm_mode_setcrtc], [CRTC:4]
+[ 3.628782] [drm:drm_mode_setcrtc], [CONNECTOR:5:LVDS-1]
+[ 3.628787] [drm:intel_crtc_set_config], [CRTC:4] [FB:34] #connectors=1 (x y) (0 0)
+[ 3.628793] [drm:intel_set_config_compute_mode_changes], computed changes for [CRTC:4], mode_changed=0, fb_changed=0
+[ 3.628797] [drm:intel_modeset_stage_output_state], [CONNECTOR:5:LVDS-1] to [CRTC:4]
+[ 3.633141] md: multipath personality registered for level -4
+[ 3.638092] md: raid0 personality registered for level 0
+[ 3.643718] md: raid1 personality registered for level 1
+[ 3.716024] raid6: sse2x1 2266 MB/s
+[ 3.784028] raid6: sse2x2 4053 MB/s
+[ 3.852032] raid6: sse2x4 4547 MB/s
+[ 3.852036] raid6: using algorithm sse2x4 (4547 MB/s)
+[ 3.852038] raid6: using ssse3x2 recovery algorithm
+[ 3.854266] xor: measuring software checksum speed
+[ 3.892019] prefetch64-sse: 6047.000 MB/sec
+[ 3.932018] generic_sse: 5363.000 MB/sec
+[ 3.932021] xor: using function: prefetch64-sse (6047.000 MB/sec)
+[ 3.934078] async_tx: api initialized (async)
+[ 3.946437] md: raid6 personality registered for level 6
+[ 3.946441] md: raid5 personality registered for level 5
+[ 3.946444] md: raid4 personality registered for level 4
+[ 3.957827] md: raid10 personality registered for level 10
+[ 9.243505] random: cryptsetup urandom read with 119 bits of entropy available
+[ 9.246108] random: nonblocking pool is initialized
+[ 9.266100] bio: create slab <bio-1> at 1
+[ 9.513079] bio: create slab <bio-1> at 1
+[ 10.331147] bio: create slab <bio-2> at 2
+[ 10.332723] Btrfs loaded
+[ 11.808132] [drm:intel_tv_detect], [CONNECTOR:17:SVIDEO-1] force=0
+[ 15.403838] EXT4-fs (dm-1): INFO: recovery required on readonly filesystem
+[ 15.403844] EXT4-fs (dm-1): write access will be enabled during recovery
+[ 17.127673] EXT4-fs (dm-1): orphan cleanup on readonly fs
+[ 17.127796] EXT4-fs (dm-1): 1 orphan inode deleted
+[ 17.127800] EXT4-fs (dm-1): recovery complete
+[ 17.216730] EXT4-fs (dm-1): mounted filesystem with ordered data mode. Opts: (null)
+[ 21.824056] [drm:intel_tv_detect], [CONNECTOR:17:SVIDEO-1] force=0
+[ 28.044685] EXT4-fs (dm-1): re-mounted. Opts: errors=remount-ro
+[ 29.253227] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
+[ 29.453218] systemd-udevd[569]: starting version 204
+[ 29.727869] lp: driver loaded but no devices found
+[ 29.764157] ppdev: user-space parallel port driver
+[ 30.065222] type=1400 audit(1409521824.544:2): apparmor="STATUS" operation="profile_load" profile="unconfined" name="/usr/lib/cups/backend/cups-pdf" pid=647 comm="apparmor_parser"
+[ 30.065234] type=1400 audit(1409521824.544:3): apparmor="STATUS" operation="profile_load" profile="unconfined" name="/usr/sbin/cupsd" pid=647 comm="apparmor_parser"
+[ 30.065934] type=1400 audit(1409521824.544:4): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/usr/sbin/cupsd" pid=647 comm="apparmor_parser"
+[ 30.182531] Bluetooth: Core ver 2.17
+[ 30.184399] NET: Registered protocol family 31
+[ 30.184403] Bluetooth: HCI device and connection manager initialized
+[ 30.184417] Bluetooth: HCI socket layer initialized
+[ 30.184422] Bluetooth: L2CAP socket layer initialized
+[ 30.184430] Bluetooth: SCO socket layer initialized
+[ 30.216147] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
+[ 30.216153] Bluetooth: BNEP filters: protocol multicast
+[ 30.216167] Bluetooth: BNEP socket layer initialized
+[ 30.217692] Bluetooth: RFCOMM TTY layer initialized
+[ 30.217701] Bluetooth: RFCOMM socket layer initialized
+[ 30.217712] Bluetooth: RFCOMM ver 1.11
+[ 30.227989] intel_rng: FWH not detected
+[ 30.348498] ACPI Warning: 0x0000000000000528-0x000000000000052f SystemIO conflicts with Region \PMIO 1 (20131115/utaddress-251)
+[ 30.348510] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver
+[ 30.348517] ACPI Warning: 0x00000000000004b0-0x00000000000004bf SystemIO conflicts with Region \GPIO 1 (20131115/utaddress-251)
+[ 30.348522] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver
+[ 30.348525] ACPI Warning: 0x0000000000000480-0x00000000000004af SystemIO conflicts with Region \GPIO 1 (20131115/utaddress-251)
+[ 30.348530] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver
+[ 30.348533] lpc_ich: Resource conflict(s) found affecting gpio_ich
+[ 30.372503] leds_ss4200: no LED devices found
+[ 30.372824] yenta_cardbus 0000:05:00.0: CardBus bridge found [0000:0000]
+[ 30.398295] init: cups main process (656) killed by HUP signal
+[ 30.398320] init: cups main process ended, respawning
+[ 30.493456] type=1400 audit(1409521824.972:5): apparmor="STATUS" operation="profile_load" profile="unconfined" name="/sbin/dhclient" pid=696 comm="apparmor_parser"
+[ 30.493470] type=1400 audit(1409521824.972:6): apparmor="STATUS" operation="profile_load" profile="unconfined" name="/usr/lib/NetworkManager/nm-dhcp-client.action" pid=696 comm="apparmor_parser"
+[ 30.493478] type=1400 audit(1409521824.972:7): apparmor="STATUS" operation="profile_load" profile="unconfined" name="/usr/lib/connman/scripts/dhclient-script" pid=696 comm="apparmor_parser"
+[ 30.496483] type=1400 audit(1409521824.976:8): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/usr/lib/NetworkManager/nm-dhcp-client.action" pid=696 comm="apparmor_parser"
+[ 30.496497] type=1400 audit(1409521824.976:9): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/usr/lib/connman/scripts/dhclient-script" pid=696 comm="apparmor_parser"
+[ 30.496998] type=1400 audit(1409521824.976:10): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/usr/lib/connman/scripts/dhclient-script" pid=696 comm="apparmor_parser"
+[ 30.501113] yenta_cardbus 0000:05:00.0: ISA IRQ mask 0x0cb8, PCI irq 16
+[ 30.501120] yenta_cardbus 0000:05:00.0: Socket status: 30000006
+[ 30.501126] pci_bus 0000:05: Raising subordinate bus# of parent bus (#05) from #06 to #09
+[ 30.501295] yenta_cardbus 0000:05:00.0: pcmcia: parent PCI bridge window: [io 0x2000-0x3fff]
+[ 30.501300] yenta_cardbus 0000:05:00.0: pcmcia: parent PCI bridge window: [mem 0xe0000000-0xe20fffff]
+[ 30.501305] pcmcia_socket pcmcia_socket0: cs: memory probe 0xe0000000-0xe20fffff:
+[ 30.501318] excluding 0xe1ef0000-0xe20fffff
+[ 30.501325] yenta_cardbus 0000:05:00.0: pcmcia: parent PCI bridge window: [mem 0xe2100000-0xe40fffff 64bit pref]
+[ 30.501329] pcmcia_socket pcmcia_socket0: cs: memory probe 0xe2100000-0xe40fffff:
+[ 30.501411] excluding 0xe2100000-0xe40fffff
+[ 30.761785] e1000e 0000:01:00.0: irq 44 for MSI/MSI-X
+[ 30.772718] device-mapper: multipath: version 1.6.0 loaded
+[ 30.841196] Non-volatile memory driver v1.3
+[ 30.846354] thinkpad_acpi: ThinkPad ACPI Extras v0.25
+[ 30.846360] thinkpad_acpi: http://ibm-acpi.sf.net/
+[ 30.846363] thinkpad_acpi: ThinkPad BIOS CBET4000 7BETC7WW (2.08 ), EC 7BHT37WW-3.4
+[ 30.846365] thinkpad_acpi: Lenovo ThinkPad X60s, model 1702L8G
+[ 30.853545] thinkpad_acpi: detected a 8-level brightness capable ThinkPad
+[ 30.853591] thinkpad_acpi: This ThinkPad has standard ACPI backlight brightness control, supported by the ACPI video driver
+[ 30.853594] thinkpad_acpi: Disabling thinkpad-acpi brightness events by default...
+[ 30.864133] e1000e 0000:01:00.0: irq 44 for MSI/MSI-X
+[ 30.864654] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
+[ 30.904471] thinkpad_acpi: Standard ACPI backlight interface available, not loading native one
+[ 30.904716] thinkpad_acpi: Console audio control enabled, mode: monitor (read only)
+[ 30.917451] input: ThinkPad Extra Buttons as /devices/platform/thinkpad_acpi/input/input7
+[ 31.070696] hda_intel: probe_mask set to 0x1 for device 17aa:2010
+[ 31.070755] snd_hda_intel 0000:00:1b.0: irq 46 for MSI/MSI-X
+[ 31.221006] autoconfig: line_outs=1 (0x5/0x0/0x0/0x0/0x0) type:line
+[ 31.221013] speaker_outs=1 (0x7/0x0/0x0/0x0/0x0)
+[ 31.221016] hp_outs=1 (0x6/0x0/0x0/0x0/0x0)
+[ 31.221018] mono: mono_out=0x0
+[ 31.221020] dig-out=0xa/0x0
+[ 31.221022] inputs:
+[ 31.221073] Rear Mic=0x18
+[ 31.221076] Front Mic=0x8
+[ 31.221079] Line=0x9
+[ 31.221081] CD=0x19
+[ 31.221084] Aux=0x17
+[ 31.306204] input: HDA Intel Front Headphone as /devices/pci0000:00/0000:00:1b.0/sound/card0/input12
+[ 31.309615] input: HDA Intel Line Out as /devices/pci0000:00/0000:00:1b.0/sound/card0/input11
+[ 31.312192] input: HDA Intel Line as /devices/pci0000:00/0000:00:1b.0/sound/card0/input10
+[ 31.316499] input: HDA Intel Front Mic as /devices/pci0000:00/0000:00:1b.0/sound/card0/input9
+[ 31.316647] input: HDA Intel Rear Mic as /devices/pci0000:00/0000:00:1b.0/sound/card0/input8
+[ 31.491549] pcmcia_socket pcmcia_socket0: cs: memory probe 0x0c0000-0x0fffff:
+[ 31.491580] excluding 0xf0000-0xfffff
+[ 31.491611] pcmcia_socket pcmcia_socket0: cs: memory probe 0xa0000000-0xa0ffffff:
+[ 31.491646] clean.
+[ 31.491672] pcmcia_socket pcmcia_socket0: cs: memory probe 0x60000000-0x60ffffff:
+[ 31.491705] excluding 0x60000000-0x60ffffff
+[ 31.840110] [drm:intel_tv_detect], [CONNECTOR:17:SVIDEO-1] force=0
+[ 41.856122] [drm:intel_tv_detect], [CONNECTOR:17:SVIDEO-1] force=0
+[ 51.872113] [drm:intel_tv_detect], [CONNECTOR:17:SVIDEO-1] force=0
+[ 60.227922] type=1400 audit(1409521854.704:11): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/usr/lib/cups/backend/cups-pdf" pid=1132 comm="apparmor_parser"
+[ 60.227937] type=1400 audit(1409521854.704:12): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/usr/sbin/cupsd" pid=1132 comm="apparmor_parser"
+[ 60.228674] type=1400 audit(1409521854.708:13): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/usr/sbin/cupsd" pid=1132 comm="apparmor_parser"
+[ 60.787283] type=1400 audit(1409521855.264:14): apparmor="STATUS" operation="profile_load" profile="unconfined" name="/usr/sbin/cups-browsed" pid=1143 comm="apparmor_parser"
+[ 61.888127] [drm:intel_tv_detect], [CONNECTOR:17:SVIDEO-1] force=0
+[ 70.140147] usb 1-1: new high-speed USB device number 2 using ehci-pci
+[ 70.289002] usb 1-1: New USB device found, idVendor=0cf3, idProduct=9271
+[ 70.289008] usb 1-1: New USB device strings: Mfr=16, Product=32, SerialNumber=48
+[ 70.289012] usb 1-1: Product: UB93
+[ 70.289015] usb 1-1: Manufacturer: ATHEROS
+[ 70.289019] usb 1-1: SerialNumber: 12345
+[ 70.441093] cfg80211: Calling CRDA to update world regulatory domain
+[ 70.579584] cfg80211: World regulatory domain updated:
+[ 70.579590] cfg80211: (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
+[ 70.579594] cfg80211: (2402000 KHz - 2472000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
+[ 70.579598] cfg80211: (2457000 KHz - 2482000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
+[ 70.579601] cfg80211: (2474000 KHz - 2494000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
+[ 70.579604] cfg80211: (5170000 KHz - 5250000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
+[ 70.579607] cfg80211: (5735000 KHz - 5835000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
+[ 70.613130] usb 1-1: ath9k_htc: Firmware htc_9271.fw requested
+[ 70.613246] usbcore: registered new interface driver ath9k_htc
+[ 70.909647] usb 1-1: ath9k_htc: Transferred FW: htc_9271.fw, size: 50980
+[ 71.150263] ath9k_htc 1-1:1.0: ath9k_htc: HTC initialized with 33 credits
+[ 71.418766] ath9k_htc 1-1:1.0: ath9k_htc: FW Version: 1.3
+[ 71.418770] ath: EEPROM regdomain: 0x65
+[ 71.418773] ath: EEPROM indicates we should expect a direct regpair map
+[ 71.418777] ath: Country alpha2 being used: 00
+[ 71.418779] ath: Regpair used: 0x65
+[ 71.460149] ieee80211 phy0: Atheros AR9271 Rev:1
+[ 71.904067] [drm:intel_tv_detect], [CONNECTOR:17:SVIDEO-1] force=0
+[ 79.945375] usb 1-1: USB disconnect, device number 2
+[ 80.151202] usb 1-1: ath9k_htc: USB layer deinitialized
+[ 81.920129] [drm:intel_tv_detect], [CONNECTOR:17:SVIDEO-1] force=0
+[ 91.936033] [drm:intel_tv_detect], [CONNECTOR:17:SVIDEO-1] force=0
+[ 101.952108] [drm:intel_tv_detect], [CONNECTOR:17:SVIDEO-1] force=0
+[ 111.968120] [drm:intel_tv_detect], [CONNECTOR:17:SVIDEO-1] force=0
+[ 121.984105] [drm:intel_tv_detect], [CONNECTOR:17:SVIDEO-1] force=0
+[ 132.000103] [drm:intel_tv_detect], [CONNECTOR:17:SVIDEO-1] force=0
+[ 142.016108] [drm:intel_tv_detect], [CONNECTOR:17:SVIDEO-1] force=0
+[ 149.297093] e1000e: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: Rx/Tx
+[ 149.297248] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
+[ 151.231682] init: failsafe main process (837) killed by TERM signal
+[ 151.489247] type=1400 audit(1409521945.968:15): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/sbin/dhclient" pid=1314 comm="apparmor_parser"
+[ 151.489262] type=1400 audit(1409521945.968:16): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/usr/lib/NetworkManager/nm-dhcp-client.action" pid=1314 comm="apparmor_parser"
+[ 151.489271] type=1400 audit(1409521945.968:17): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/usr/lib/connman/scripts/dhclient-script" pid=1314 comm="apparmor_parser"
+[ 151.490046] type=1400 audit(1409521945.968:18): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/usr/lib/NetworkManager/nm-dhcp-client.action" pid=1314 comm="apparmor_parser"
+[ 151.490055] type=1400 audit(1409521945.968:19): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/usr/lib/connman/scripts/dhclient-script" pid=1314 comm="apparmor_parser"
+[ 151.490416] type=1400 audit(1409521945.968:20): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/usr/lib/connman/scripts/dhclient-script" pid=1314 comm="apparmor_parser"
+[ 151.495908] type=1400 audit(1409521945.972:21): apparmor="STATUS" operation="profile_load" profile="unconfined" name="system_tor" pid=1315 comm="apparmor_parser"
+[ 151.500387] type=1400 audit(1409521945.980:22): apparmor="STATUS" operation="profile_load" profile="unconfined" name="/usr/lib/lightdm/lightdm-guest-session" pid=1313 comm="apparmor_parser"
+[ 151.500398] type=1400 audit(1409521945.980:23): apparmor="STATUS" operation="profile_load" profile="unconfined" name="chromium" pid=1313 comm="apparmor_parser"
+[ 151.500825] type=1400 audit(1409521945.980:24): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="chromium" pid=1313 comm="apparmor_parser"
+[ 152.032044] [drm:intel_tv_detect], [CONNECTOR:17:SVIDEO-1] force=0
+[ 152.229628] init: lxdm main process (1372) killed by TERM signal
+[ 153.407166] [drm:i915_gem_open],
+[ 154.128716] [drm:i915_gem_open],
+[ 154.128739] [drm:drm_mode_getresources], CRTC[2] CONNECTORS[3] ENCODERS[3]
+[ 154.129127] [drm:i915_gem_open],
+[ 154.129142] [drm:drm_mode_getresources], CRTC[2] CONNECTORS[3] ENCODERS[3]
+[ 154.129149] [drm:drm_mode_getresources], CRTC[2] CONNECTORS[3] ENCODERS[3]
+[ 154.130884] [drm:drm_mode_addfb], [FB:35]
+[ 154.131523] [drm:drm_mode_getresources], CRTC[2] CONNECTORS[3] ENCODERS[3]
+[ 154.131530] [drm:drm_mode_getresources], CRTC[2] CONNECTORS[3] ENCODERS[3]
+[ 154.131585] [drm:drm_mode_getconnector], [CONNECTOR:5:?]
+[ 154.131595] [drm:drm_mode_getconnector], [CONNECTOR:5:?]
+[ 154.131939] [drm:drm_mode_getconnector], [CONNECTOR:15:?]
+[ 154.131949] [drm:drm_mode_getconnector], [CONNECTOR:15:?]
+[ 154.131987] [drm:drm_mode_getconnector], [CONNECTOR:17:?]
+[ 154.131996] [drm:drm_mode_getconnector], [CONNECTOR:17:?]
+[ 154.256944] [drm:drm_mode_addfb], [FB:35]
+[ 154.256966] [drm:drm_mode_setcrtc], [CRTC:4]
+[ 154.256976] [drm:drm_mode_setcrtc], [CONNECTOR:5:LVDS-1]
+[ 154.256980] [drm:intel_crtc_set_config], [CRTC:4] [FB:35] #connectors=1 (x y) (0 0)
+[ 154.256986] [drm:intel_set_config_compute_mode_changes], computed changes for [CRTC:4], mode_changed=0, fb_changed=1
+[ 154.256991] [drm:intel_modeset_stage_output_state], [CONNECTOR:5:LVDS-1] to [CRTC:4]
+[ 154.258670] [drm:i9xx_update_plane], Writing base 00800000 00000000 0 0 4096
+[ 154.543643] init: plymouth-upstart-bridge main process (377) killed by TERM signal
+[ 158.275793] [drm:drm_mode_getconnector], [CONNECTOR:5:?]
+[ 158.275804] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:5:LVDS-1]
+[ 158.275809] [drm:intel_lvds_detect], [CONNECTOR:5:LVDS-1]
+[ 158.275832] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:5:LVDS-1] probed modes :
+[ 158.275836] [drm:drm_mode_debug_printmodeline], Modeline 8:"1024x768" 50 54160 1024 1048 1184 1344 768 771 777 806 0x48 0xa
+[ 158.275841] [drm:drm_mode_debug_printmodeline], Modeline 12:"1024x768" 60 65000 1024 1048 1184 1344 768 771 777 806 0x40 0xa
+[ 158.275846] [drm:drm_mode_debug_printmodeline], Modeline 9:"1024x768" 40 43330 1024 1048 1184 1344 768 771 777 806 0x40 0xa
+[ 158.275851] [drm:drm_mode_debug_printmodeline], Modeline 10:"800x600" 60 40000 800 840 968 1056 600 601 605 628 0x40 0x5
+[ 158.275856] [drm:drm_mode_debug_printmodeline], Modeline 11:"640x480" 60 25200 640 656 752 800 480 490 492 525 0x40 0xa
+[ 158.275865] [drm:drm_mode_getconnector], [CONNECTOR:5:?]
+[ 158.276430] [drm:drm_mode_getconnector], [CONNECTOR:15:?]
+[ 158.276435] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:15:VGA-1]
+[ 158.276439] [drm:intel_crt_detect], [CONNECTOR:15:VGA-1] force=1
+[ 158.288160] [drm:intel_crt_detect], CRT not detected via hotplug
+[ 158.292045] [drm:gmbus_xfer], GMBUS [i915 gmbus vga] NAK for addr: 0050 r(1)
+[ 158.292055] [drm:drm_do_probe_ddc_edid], drm: skipping non-existent adapter i915 gmbus vga
+[ 158.292059] [drm:intel_crt_get_edid], CRT GMBUS EDID read failed, retry using GPIO bit-banging
+[ 158.292062] [drm:intel_gmbus_force_bit], enabling bit-banging on i915 gmbus vga. force bit now 1
+[ 158.292346] [drm:drm_do_probe_ddc_edid], drm: skipping non-existent adapter i915 gmbus vga
+[ 158.292349] [drm:intel_gmbus_force_bit], disabling bit-banging on i915 gmbus vga. force bit now 0
+[ 158.292352] [drm:intel_crt_detect_ddc], CRT not detected via DDC:0x50 [no valid EDID found]
+[ 158.292358] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:15:VGA-1] disconnected
+[ 158.292396] [drm:drm_mode_getconnector], [CONNECTOR:17:?]
+[ 158.292401] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:17:SVIDEO-1]
+[ 158.292404] [drm:intel_tv_detect], [CONNECTOR:17:SVIDEO-1] force=1
+[ 158.292410] [drm:intel_get_load_detect_pipe], [CONNECTOR:17:SVIDEO-1], [ENCODER:18:TV-18]
+[ 158.292414] [drm:intel_get_load_detect_pipe], creating tmp fb for load-detection
+[ 158.292433] [drm:intel_modeset_affected_pipes], set mode pipe masks: modeset: 1, prepare: 1, disable: 0
+[ 158.292439] [drm:connected_sink_compute_bpp], [CONNECTOR:17:SVIDEO-1] checking for sink bpp constrains
+[ 158.292443] [drm:intel_tv_compute_config], forcing bpc to 8 for TV
+[ 158.292447] [drm:intel_modeset_pipe_config], plane bpp: 24, pipe bpp: 24, dithering: 0
+[ 158.292450] [drm:intel_dump_pipe_config], [CRTC:3][modeset] config for pipe A
+[ 158.292454] [drm:intel_dump_pipe_config], cpu_transcoder: A
+[ 158.292457] [drm:intel_dump_pipe_config], pipe bpp: 24, dithering: 0
+[ 158.292459] [drm:intel_dump_pipe_config], fdi/pch: 0, lanes: 0, gmch_m: 0, gmch_n: 0, link_m: 0, link_n: 0, tu: 0
+[ 158.292463] [drm:intel_dump_pipe_config], dp: 0, gmch_m: 0, gmch_n: 0, link_m: 0, link_n: 0, tu: 0
+[ 158.292467] [drm:intel_dump_pipe_config], requested mode:
+[ 158.292469] [drm:drm_mode_debug_printmodeline], Modeline 0:"NTSC 480i" 0 107520 1280 1368 1496 1712 1024 1027 1034 1104 0x40 0x0
+[ 158.292475] [drm:intel_dump_pipe_config], adjusted mode:
+[ 158.292477] [drm:drm_mode_debug_printmodeline], Modeline 0:"NTSC 480i" 0 107520 1280 1368 1496 1712 1024 1027 1034 1104 0x40 0x0
+[ 158.292482] [drm:intel_dump_crtc_timings], crtc timings: 108000 1280 1368 1496 1712 1024 1027 1034 1104, type: 0x40 flags: 0x0
+[ 158.292486] [drm:intel_dump_pipe_config], port clock: 108000
+[ 158.292489] [drm:intel_dump_pipe_config], pipe src size: 1280x1024
+[ 158.292492] [drm:intel_dump_pipe_config], gmch pfit: control: 0x00000000, ratios: 0x00000000, lvds border: 0x00000000
+[ 158.292495] [drm:intel_dump_pipe_config], pch pfit: pos: 0x00000000, size: 0x00000000, disabled
+[ 158.292499] [drm:intel_dump_pipe_config], ips: 0
+[ 158.292501] [drm:intel_dump_pipe_config], double wide: 0
+[ 158.300167] [drm:i9xx_update_plane], Writing base 00C00000 00000000 0 0 5120
+[ 158.300181] [drm:intel_crtc_mode_set], [ENCODER:18:TV-18] set [MODE:0:NTSC 480i]
+[ 158.305816] [drm:i9xx_get_fifo_size], FIFO size - (0x00001d9c) A: 28
+[ 158.305823] [drm:intel_calculate_wm], FIFO entries required for mode: 17
+[ 158.305825] [drm:intel_calculate_wm], FIFO watermark level: 9
+[ 158.305828] [drm:i9xx_get_fifo_size], FIFO size - (0x00001d9c) B: 31
+[ 158.305832] [drm:intel_calculate_wm], FIFO entries required for mode: 34
+[ 158.305834] [drm:intel_calculate_wm], FIFO watermark level: -5
+[ 158.305837] [drm:i9xx_update_wm], FIFO watermarks - A: 9, B: 1
+[ 158.305840] [drm:i9xx_update_wm], Setting FIFO watermarks - A: 9, B: 1, C: 2, SR 1
+[ 158.305844] [drm:i9xx_update_wm], memory self refresh disabled
+[ 158.324056] [drm:intel_connector_check_state], [CONNECTOR:5:LVDS-1]
+[ 158.324066] [drm:intel_connector_check_state], [CONNECTOR:17:SVIDEO-1]
+[ 158.324071] [drm:check_encoder_state], [ENCODER:6:LVDS-6]
+[ 158.324074] [drm:check_encoder_state], [ENCODER:16:DAC-16]
+[ 158.324078] [drm:check_encoder_state], [ENCODER:18:TV-18]
+[ 158.324081] [drm:check_crtc_state], [CRTC:3]
+[ 158.324093] [drm:check_crtc_state], [CRTC:4]
+[ 158.376040] [drm:intel_tv_detect_type], TV detected: c0007, 7f0000aa
+[ 158.376049] [drm:intel_tv_detect_type], Unrecognised TV connection
+[ 158.392042] [drm:intel_release_load_detect_pipe], [CONNECTOR:17:SVIDEO-1], [ENCODER:18:TV-18]
+[ 158.392052] [drm:intel_modeset_affected_pipes], set mode pipe masks: modeset: 0, prepare: 0, disable: 1
+[ 158.433012] [drm:i9xx_get_fifo_size], FIFO size - (0x00001d9c) A: 28
+[ 158.433022] [drm:intel_calculate_wm], FIFO entries required for mode: 17
+[ 158.433025] [drm:intel_calculate_wm], FIFO watermark level: 9
+[ 158.433028] [drm:i9xx_get_fifo_size], FIFO size - (0x00001d9c) B: 31
+[ 158.433031] [drm:i9xx_update_wm], FIFO watermarks - A: 9, B: 29
+[ 158.433034] [drm:i9xx_update_wm], self-refresh entries: 64
+[ 158.433037] [drm:i9xx_update_wm], Setting FIFO watermarks - A: 9, B: 29, C: 2, SR 63
+[ 158.433041] [drm:i9xx_update_wm], memory self refresh enabled
+[ 158.433052] [drm:intel_connector_check_state], [CONNECTOR:5:LVDS-1]
+[ 158.433058] [drm:check_encoder_state], [ENCODER:6:LVDS-6]
+[ 158.433061] [drm:check_encoder_state], [ENCODER:16:DAC-16]
+[ 158.433065] [drm:check_encoder_state], [ENCODER:18:TV-18]
+[ 158.433068] [drm:check_crtc_state], [CRTC:3]
+[ 158.433072] [drm:check_crtc_state], [CRTC:4]
+[ 158.433226] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:17:SVIDEO-1] disconnected
+[ 158.887022] [drm:intel_lvds_detect], [CONNECTOR:5:LVDS-1]
+[ 158.887071] [drm:intel_tv_detect], [CONNECTOR:17:SVIDEO-1] force=1
+[ 158.887077] [drm:intel_get_load_detect_pipe], [CONNECTOR:17:SVIDEO-1], [ENCODER:18:TV-18]
+[ 158.887081] [drm:intel_get_load_detect_pipe], creating tmp fb for load-detection
+[ 158.887098] [drm:intel_modeset_affected_pipes], set mode pipe masks: modeset: 1, prepare: 1, disable: 0
+[ 158.887104] [drm:connected_sink_compute_bpp], [CONNECTOR:17:SVIDEO-1] checking for sink bpp constrains
+[ 158.887108] [drm:intel_tv_compute_config], forcing bpc to 8 for TV
+[ 158.887112] [drm:intel_modeset_pipe_config], plane bpp: 24, pipe bpp: 24, dithering: 0
+[ 158.887115] [drm:intel_dump_pipe_config], [CRTC:3][modeset] config for pipe A
+[ 158.887118] [drm:intel_dump_pipe_config], cpu_transcoder: A
+[ 158.887121] [drm:intel_dump_pipe_config], pipe bpp: 24, dithering: 0
+[ 158.887124] [drm:intel_dump_pipe_config], fdi/pch: 0, lanes: 0, gmch_m: 0, gmch_n: 0, link_m: 0, link_n: 0, tu: 0
+[ 158.887128] [drm:intel_dump_pipe_config], dp: 0, gmch_m: 0, gmch_n: 0, link_m: 0, link_n: 0, tu: 0
+[ 158.887131] [drm:intel_dump_pipe_config], requested mode:
+[ 158.887134] [drm:drm_mode_debug_printmodeline], Modeline 0:"NTSC 480i" 0 107520 1280 1368 1496 1712 1024 1027 1034 1104 0x40 0x0
+[ 158.887139] [drm:intel_dump_pipe_config], adjusted mode:
+[ 158.887142] [drm:drm_mode_debug_printmodeline], Modeline 0:"NTSC 480i" 0 107520 1280 1368 1496 1712 1024 1027 1034 1104 0x40 0x0
+[ 158.887147] [drm:intel_dump_crtc_timings], crtc timings: 108000 1280 1368 1496 1712 1024 1027 1034 1104, type: 0x40 flags: 0x0
+[ 158.887151] [drm:intel_dump_pipe_config], port clock: 108000
+[ 158.887154] [drm:intel_dump_pipe_config], pipe src size: 1280x1024
+[ 158.887157] [drm:intel_dump_pipe_config], gmch pfit: control: 0x00000000, ratios: 0x00000000, lvds border: 0x00000000
+[ 158.887160] [drm:intel_dump_pipe_config], pch pfit: pos: 0x00000000, size: 0x00000000, disabled
+[ 158.887164] [drm:intel_dump_pipe_config], ips: 0
+[ 158.887167] [drm:intel_dump_pipe_config], double wide: 0
+[ 158.895657] [drm:i9xx_update_plane], Writing base 00C00000 00000000 0 0 5120
+[ 158.895671] [drm:intel_crtc_mode_set], [ENCODER:18:TV-18] set [MODE:0:NTSC 480i]
+[ 158.901303] [drm:i9xx_get_fifo_size], FIFO size - (0x00001d9c) A: 28
+[ 158.901308] [drm:intel_calculate_wm], FIFO entries required for mode: 17
+[ 158.901310] [drm:intel_calculate_wm], FIFO watermark level: 9
+[ 158.901313] [drm:i9xx_get_fifo_size], FIFO size - (0x00001d9c) B: 31
+[ 158.901317] [drm:intel_calculate_wm], FIFO entries required for mode: 34
+[ 158.901319] [drm:intel_calculate_wm], FIFO watermark level: -5
+[ 158.901322] [drm:i9xx_update_wm], FIFO watermarks - A: 9, B: 1
+[ 158.901325] [drm:i9xx_update_wm], Setting FIFO watermarks - A: 9, B: 1, C: 2, SR 1
+[ 158.901328] [drm:i9xx_update_wm], memory self refresh disabled
+[ 158.924049] [drm:intel_connector_check_state], [CONNECTOR:5:LVDS-1]
+[ 158.924061] [drm:intel_connector_check_state], [CONNECTOR:17:SVIDEO-1]
+[ 158.924065] [drm:check_encoder_state], [ENCODER:6:LVDS-6]
+[ 158.924069] [drm:check_encoder_state], [ENCODER:16:DAC-16]
+[ 158.924072] [drm:check_encoder_state], [ENCODER:18:TV-18]
+[ 158.924076] [drm:check_crtc_state], [CRTC:3]
+[ 158.924086] [drm:check_crtc_state], [CRTC:4]
+[ 158.964043] [drm:intel_tv_detect_type], TV detected: c0007, 7f0000aa
+[ 158.964051] [drm:intel_tv_detect_type], Unrecognised TV connection
+[ 158.984046] [drm:intel_release_load_detect_pipe], [CONNECTOR:17:SVIDEO-1], [ENCODER:18:TV-18]
+[ 158.984058] [drm:intel_modeset_affected_pipes], set mode pipe masks: modeset: 0, prepare: 0, disable: 1
+[ 159.033005] [drm:i9xx_get_fifo_size], FIFO size - (0x00001d9c) A: 28
+[ 159.033015] [drm:intel_calculate_wm], FIFO entries required for mode: 17
+[ 159.033018] [drm:intel_calculate_wm], FIFO watermark level: 9
+[ 159.033021] [drm:i9xx_get_fifo_size], FIFO size - (0x00001d9c) B: 31
+[ 159.033025] [drm:i9xx_update_wm], FIFO watermarks - A: 9, B: 29
+[ 159.033028] [drm:i9xx_update_wm], self-refresh entries: 64
+[ 159.033031] [drm:i9xx_update_wm], Setting FIFO watermarks - A: 9, B: 29, C: 2, SR 63
+[ 159.033035] [drm:i9xx_update_wm], memory self refresh enabled
+[ 159.033047] [drm:intel_connector_check_state], [CONNECTOR:5:LVDS-1]
+[ 159.033053] [drm:check_encoder_state], [ENCODER:6:LVDS-6]
+[ 159.033057] [drm:check_encoder_state], [ENCODER:16:DAC-16]
+[ 159.033060] [drm:check_encoder_state], [ENCODER:18:TV-18]
+[ 159.033064] [drm:check_crtc_state], [CRTC:3]
+[ 159.033067] [drm:check_crtc_state], [CRTC:4]
+[ 159.034333] [drm:intel_crt_detect], [CONNECTOR:15:VGA-1] force=1
+[ 159.056046] [drm:intel_crt_detect], CRT not detected via hotplug
+[ 159.060079] [drm:gmbus_xfer], GMBUS [i915 gmbus vga] NAK for addr: 0050 r(1)
+[ 159.060087] [drm:drm_do_probe_ddc_edid], drm: skipping non-existent adapter i915 gmbus vga
+[ 159.060091] [drm:intel_crt_get_edid], CRT GMBUS EDID read failed, retry using GPIO bit-banging
+[ 159.060094] [drm:intel_gmbus_force_bit], enabling bit-banging on i915 gmbus vga. force bit now 1
+[ 159.060374] [drm:drm_do_probe_ddc_edid], drm: skipping non-existent adapter i915 gmbus vga
+[ 159.060377] [drm:intel_gmbus_force_bit], disabling bit-banging on i915 gmbus vga. force bit now 0
+[ 159.060380] [drm:intel_crt_detect_ddc], CRT not detected via DDC:0x50 [no valid EDID found]
+[ 162.048052] [drm:intel_tv_detect], [CONNECTOR:17:SVIDEO-1] force=0
+[ 168.846014] [drm:i915_gem_open],
+[ 169.194795] [drm:i915_gem_open],
+[ 169.249719] [drm:i915_gem_open],
+[ 169.283957] [drm:drm_mode_getconnector], [CONNECTOR:5:?]
+[ 169.283968] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:5:LVDS-1]
+[ 169.283973] [drm:intel_lvds_detect], [CONNECTOR:5:LVDS-1]
+[ 169.283995] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:5:LVDS-1] probed modes :
+[ 169.284035] [drm:drm_mode_debug_printmodeline], Modeline 8:"1024x768" 50 54160 1024 1048 1184 1344 768 771 777 806 0x48 0xa
+[ 169.284041] [drm:drm_mode_debug_printmodeline], Modeline 12:"1024x768" 60 65000 1024 1048 1184 1344 768 771 777 806 0x40 0xa
+[ 169.284046] [drm:drm_mode_debug_printmodeline], Modeline 9:"1024x768" 40 43330 1024 1048 1184 1344 768 771 777 806 0x40 0xa
+[ 169.284051] [drm:drm_mode_debug_printmodeline], Modeline 10:"800x600" 60 40000 800 840 968 1056 600 601 605 628 0x40 0x5
+[ 169.284055] [drm:drm_mode_debug_printmodeline], Modeline 11:"640x480" 60 25200 640 656 752 800 480 490 492 525 0x40 0xa
+[ 169.284065] [drm:drm_mode_getconnector], [CONNECTOR:5:?]
+[ 169.284300] [drm:drm_mode_getconnector], [CONNECTOR:15:?]
+[ 169.284305] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:15:VGA-1]
+[ 169.284308] [drm:intel_crt_detect], [CONNECTOR:15:VGA-1] force=1
+[ 169.300132] [drm:intel_crt_detect], CRT not detected via hotplug
+[ 169.304126] [drm:gmbus_xfer], GMBUS [i915 gmbus vga] NAK for addr: 0050 r(1)
+[ 169.304134] [drm:drm_do_probe_ddc_edid], drm: skipping non-existent adapter i915 gmbus vga
+[ 169.304138] [drm:intel_crt_get_edid], CRT GMBUS EDID read failed, retry using GPIO bit-banging
+[ 169.304142] [drm:intel_gmbus_force_bit], enabling bit-banging on i915 gmbus vga. force bit now 1
+[ 169.304438] [drm:drm_do_probe_ddc_edid], drm: skipping non-existent adapter i915 gmbus vga
+[ 169.304441] [drm:intel_gmbus_force_bit], disabling bit-banging on i915 gmbus vga. force bit now 0
+[ 169.304445] [drm:intel_crt_detect_ddc], CRT not detected via DDC:0x50 [no valid EDID found]
+[ 169.304449] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:15:VGA-1] disconnected
+[ 169.304503] [drm:drm_mode_getconnector], [CONNECTOR:17:?]
+[ 169.304508] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:17:SVIDEO-1]
+[ 169.304512] [drm:intel_tv_detect], [CONNECTOR:17:SVIDEO-1] force=1
+[ 169.304516] [drm:intel_get_load_detect_pipe], [CONNECTOR:17:SVIDEO-1], [ENCODER:18:TV-18]
+[ 169.304521] [drm:intel_get_load_detect_pipe], creating tmp fb for load-detection
+[ 169.304535] [drm:intel_modeset_affected_pipes], set mode pipe masks: modeset: 1, prepare: 1, disable: 0
+[ 169.304541] [drm:connected_sink_compute_bpp], [CONNECTOR:17:SVIDEO-1] checking for sink bpp constrains
+[ 169.304544] [drm:intel_tv_compute_config], forcing bpc to 8 for TV
+[ 169.304548] [drm:intel_modeset_pipe_config], plane bpp: 24, pipe bpp: 24, dithering: 0
+[ 169.304551] [drm:intel_dump_pipe_config], [CRTC:3][modeset] config for pipe A
+[ 169.304554] [drm:intel_dump_pipe_config], cpu_transcoder: A
+[ 169.304557] [drm:intel_dump_pipe_config], pipe bpp: 24, dithering: 0
+[ 169.304560] [drm:intel_dump_pipe_config], fdi/pch: 0, lanes: 0, gmch_m: 0, gmch_n: 0, link_m: 0, link_n: 0, tu: 0
+[ 169.304563] [drm:intel_dump_pipe_config], dp: 0, gmch_m: 0, gmch_n: 0, link_m: 0, link_n: 0, tu: 0
+[ 169.304567] [drm:intel_dump_pipe_config], requested mode:
+[ 169.304569] [drm:drm_mode_debug_printmodeline], Modeline 0:"NTSC 480i" 0 107520 1280 1368 1496 1712 1024 1027 1034 1104 0x40 0x0
+[ 169.304575] [drm:intel_dump_pipe_config], adjusted mode:
+[ 169.304577] [drm:drm_mode_debug_printmodeline], Modeline 0:"NTSC 480i" 0 107520 1280 1368 1496 1712 1024 1027 1034 1104 0x40 0x0
+[ 169.304582] [drm:intel_dump_crtc_timings], crtc timings: 108000 1280 1368 1496 1712 1024 1027 1034 1104, type: 0x40 flags: 0x0
+[ 169.304586] [drm:intel_dump_pipe_config], port clock: 108000
+[ 169.304589] [drm:intel_dump_pipe_config], pipe src size: 1280x1024
+[ 169.304592] [drm:intel_dump_pipe_config], gmch pfit: control: 0x00000000, ratios: 0x00000000, lvds border: 0x00000000
+[ 169.304595] [drm:intel_dump_pipe_config], pch pfit: pos: 0x00000000, size: 0x00000000, disabled
+[ 169.304599] [drm:intel_dump_pipe_config], ips: 0
+[ 169.304601] [drm:intel_dump_pipe_config], double wide: 0
+[ 169.312528] [drm:i9xx_update_plane], Writing base 02800000 00000000 0 0 5120
+[ 169.312539] [drm:intel_crtc_mode_set], [ENCODER:18:TV-18] set [MODE:0:NTSC 480i]
+[ 169.318168] [drm:i9xx_get_fifo_size], FIFO size - (0x00001d9c) A: 28
+[ 169.318172] [drm:intel_calculate_wm], FIFO entries required for mode: 17
+[ 169.318175] [drm:intel_calculate_wm], FIFO watermark level: 9
+[ 169.318178] [drm:i9xx_get_fifo_size], FIFO size - (0x00001d9c) B: 31
+[ 169.318181] [drm:intel_calculate_wm], FIFO entries required for mode: 34
+[ 169.318184] [drm:intel_calculate_wm], FIFO watermark level: -5
+[ 169.318187] [drm:i9xx_update_wm], FIFO watermarks - A: 9, B: 1
+[ 169.318190] [drm:i9xx_update_wm], Setting FIFO watermarks - A: 9, B: 1, C: 2, SR 1
+[ 169.318193] [drm:i9xx_update_wm], memory self refresh disabled
+[ 169.340052] [drm:intel_connector_check_state], [CONNECTOR:5:LVDS-1]
+[ 169.340063] [drm:intel_connector_check_state], [CONNECTOR:17:SVIDEO-1]
+[ 169.340070] [drm:check_encoder_state], [ENCODER:6:LVDS-6]
+[ 169.340075] [drm:check_encoder_state], [ENCODER:16:DAC-16]
+[ 169.340080] [drm:check_encoder_state], [ENCODER:18:TV-18]
+[ 169.340085] [drm:check_crtc_state], [CRTC:3]
+[ 169.340098] [drm:check_crtc_state], [CRTC:4]
+[ 169.380054] [drm:intel_tv_detect_type], TV detected: c0007, 7f0000aa
+[ 169.380062] [drm:intel_tv_detect_type], Unrecognised TV connection
+[ 169.424049] [drm:intel_release_load_detect_pipe], [CONNECTOR:17:SVIDEO-1], [ENCODER:18:TV-18]
+[ 169.424058] [drm:intel_modeset_affected_pipes], set mode pipe masks: modeset: 0, prepare: 0, disable: 1
+[ 169.465004] [drm:i9xx_get_fifo_size], FIFO size - (0x00001d9c) A: 28
+[ 169.465012] [drm:intel_calculate_wm], FIFO entries required for mode: 17
+[ 169.465015] [drm:intel_calculate_wm], FIFO watermark level: 9
+[ 169.465018] [drm:i9xx_get_fifo_size], FIFO size - (0x00001d9c) B: 31
+[ 169.465021] [drm:i9xx_update_wm], FIFO watermarks - A: 9, B: 29
+[ 169.465025] [drm:i9xx_update_wm], self-refresh entries: 64
+[ 169.465028] [drm:i9xx_update_wm], Setting FIFO watermarks - A: 9, B: 29, C: 2, SR 63
+[ 169.465031] [drm:i9xx_update_wm], memory self refresh enabled
+[ 169.465043] [drm:intel_connector_check_state], [CONNECTOR:5:LVDS-1]
+[ 169.465048] [drm:check_encoder_state], [ENCODER:6:LVDS-6]
+[ 169.465052] [drm:check_encoder_state], [ENCODER:16:DAC-16]
+[ 169.465055] [drm:check_encoder_state], [ENCODER:18:TV-18]
+[ 169.465059] [drm:check_crtc_state], [CRTC:3]
+[ 169.465062] [drm:check_crtc_state], [CRTC:4]
+[ 169.465213] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:17:SVIDEO-1] disconnected
+[ 169.535204] [drm:intel_crtc_cursor_set], cursor off
+[ 169.646187] [drm:intel_crtc_cursor_set], cursor off
+[ 170.257502] [drm:drm_mode_getconnector], [CONNECTOR:5:?]
+[ 170.257514] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:5:LVDS-1]
+[ 170.257520] [drm:intel_lvds_detect], [CONNECTOR:5:LVDS-1]
+[ 170.257543] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:5:LVDS-1] probed modes :
+[ 170.257547] [drm:drm_mode_debug_printmodeline], Modeline 8:"1024x768" 50 54160 1024 1048 1184 1344 768 771 777 806 0x48 0xa
+[ 170.257553] [drm:drm_mode_debug_printmodeline], Modeline 12:"1024x768" 60 65000 1024 1048 1184 1344 768 771 777 806 0x40 0xa
+[ 170.257558] [drm:drm_mode_debug_printmodeline], Modeline 9:"1024x768" 40 43330 1024 1048 1184 1344 768 771 777 806 0x40 0xa
+[ 170.257563] [drm:drm_mode_debug_printmodeline], Modeline 10:"800x600" 60 40000 800 840 968 1056 600 601 605 628 0x40 0x5
+[ 170.257568] [drm:drm_mode_debug_printmodeline], Modeline 11:"640x480" 60 25200 640 656 752 800 480 490 492 525 0x40 0xa
+[ 170.257576] [drm:drm_mode_getconnector], [CONNECTOR:5:?]
+[ 170.257806] [drm:drm_mode_getconnector], [CONNECTOR:15:?]
+[ 170.257811] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:15:VGA-1]
+[ 170.257815] [drm:intel_crt_detect], [CONNECTOR:15:VGA-1] force=1
+[ 170.272041] [drm:intel_crt_detect], CRT not detected via hotplug
+[ 170.276070] [drm:gmbus_xfer], GMBUS [i915 gmbus vga] NAK for addr: 0050 r(1)
+[ 170.276077] [drm:drm_do_probe_ddc_edid], drm: skipping non-existent adapter i915 gmbus vga
+[ 170.276080] [drm:intel_crt_get_edid], CRT GMBUS EDID read failed, retry using GPIO bit-banging
+[ 170.276083] [drm:intel_gmbus_force_bit], enabling bit-banging on i915 gmbus vga. force bit now 1
+[ 170.276360] [drm:drm_do_probe_ddc_edid], drm: skipping non-existent adapter i915 gmbus vga
+[ 170.276363] [drm:intel_gmbus_force_bit], disabling bit-banging on i915 gmbus vga. force bit now 0
+[ 170.276366] [drm:intel_crt_detect_ddc], CRT not detected via DDC:0x50 [no valid EDID found]
+[ 170.276370] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:15:VGA-1] disconnected
+[ 170.276393] [drm:drm_mode_getconnector], [CONNECTOR:17:?]
+[ 170.276397] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:17:SVIDEO-1]
+[ 170.276401] [drm:intel_tv_detect], [CONNECTOR:17:SVIDEO-1] force=1
+[ 170.276405] [drm:intel_get_load_detect_pipe], [CONNECTOR:17:SVIDEO-1], [ENCODER:18:TV-18]
+[ 170.276410] [drm:intel_get_load_detect_pipe], creating tmp fb for load-detection
+[ 170.276424] [drm:intel_modeset_affected_pipes], set mode pipe masks: modeset: 1, prepare: 1, disable: 0
+[ 170.276430] [drm:connected_sink_compute_bpp], [CONNECTOR:17:SVIDEO-1] checking for sink bpp constrains
+[ 170.276433] [drm:intel_tv_compute_config], forcing bpc to 8 for TV
+[ 170.276437] [drm:intel_modeset_pipe_config], plane bpp: 24, pipe bpp: 24, dithering: 0
+[ 170.276440] [drm:intel_dump_pipe_config], [CRTC:3][modeset] config for pipe A
+[ 170.276443] [drm:intel_dump_pipe_config], cpu_transcoder: A
+[ 170.276446] [drm:intel_dump_pipe_config], pipe bpp: 24, dithering: 0
+[ 170.276449] [drm:intel_dump_pipe_config], fdi/pch: 0, lanes: 0, gmch_m: 0, gmch_n: 0, link_m: 0, link_n: 0, tu: 0
+[ 170.276453] [drm:intel_dump_pipe_config], dp: 0, gmch_m: 0, gmch_n: 0, link_m: 0, link_n: 0, tu: 0
+[ 170.276456] [drm:intel_dump_pipe_config], requested mode:
+[ 170.276459] [drm:drm_mode_debug_printmodeline], Modeline 0:"NTSC 480i" 0 107520 1280 1368 1496 1712 1024 1027 1034 1104 0x40 0x0
+[ 170.276464] [drm:intel_dump_pipe_config], adjusted mode:
+[ 170.276467] [drm:drm_mode_debug_printmodeline], Modeline 0:"NTSC 480i" 0 107520 1280 1368 1496 1712 1024 1027 1034 1104 0x40 0x0
+[ 170.276472] [drm:intel_dump_crtc_timings], crtc timings: 108000 1280 1368 1496 1712 1024 1027 1034 1104, type: 0x40 flags: 0x0
+[ 170.276476] [drm:intel_dump_pipe_config], port clock: 108000
+[ 170.276479] [drm:intel_dump_pipe_config], pipe src size: 1280x1024
+[ 170.276482] [drm:intel_dump_pipe_config], gmch pfit: control: 0x00000000, ratios: 0x00000000, lvds border: 0x00000000
+[ 170.276485] [drm:intel_dump_pipe_config], pch pfit: pos: 0x00000000, size: 0x00000000, disabled
+[ 170.276488] [drm:intel_dump_pipe_config], ips: 0
+[ 170.276491] [drm:intel_dump_pipe_config], double wide: 0
+[ 170.283303] [drm:i9xx_update_plane], Writing base 02800000 00000000 0 0 5120
+[ 170.283314] [drm:intel_crtc_mode_set], [ENCODER:18:TV-18] set [MODE:0:NTSC 480i]
+[ 170.288947] [drm:i9xx_get_fifo_size], FIFO size - (0x00001d9c) A: 28
+[ 170.288952] [drm:intel_calculate_wm], FIFO entries required for mode: 17
+[ 170.288954] [drm:intel_calculate_wm], FIFO watermark level: 9
+[ 170.288958] [drm:i9xx_get_fifo_size], FIFO size - (0x00001d9c) B: 31
+[ 170.288961] [drm:intel_calculate_wm], FIFO entries required for mode: 34
+[ 170.288963] [drm:intel_calculate_wm], FIFO watermark level: -5
+[ 170.288966] [drm:i9xx_update_wm], FIFO watermarks - A: 9, B: 1
+[ 170.288969] [drm:i9xx_update_wm], Setting FIFO watermarks - A: 9, B: 1, C: 2, SR 1
+[ 170.288972] [drm:i9xx_update_wm], memory self refresh disabled
+[ 170.328052] [drm:intel_connector_check_state], [CONNECTOR:5:LVDS-1]
+[ 170.328061] [drm:intel_connector_check_state], [CONNECTOR:17:SVIDEO-1]
+[ 170.328066] [drm:check_encoder_state], [ENCODER:6:LVDS-6]
+[ 170.328069] [drm:check_encoder_state], [ENCODER:16:DAC-16]
+[ 170.328073] [drm:check_encoder_state], [ENCODER:18:TV-18]
+[ 170.328076] [drm:check_crtc_state], [CRTC:3]
+[ 170.328087] [drm:check_crtc_state], [CRTC:4]
+[ 170.368047] [drm:intel_tv_detect_type], TV detected: c0007, 7f0000aa
+[ 170.368054] [drm:intel_tv_detect_type], Unrecognised TV connection
+[ 170.384041] [drm:intel_release_load_detect_pipe], [CONNECTOR:17:SVIDEO-1], [ENCODER:18:TV-18]
+[ 170.384048] [drm:intel_modeset_affected_pipes], set mode pipe masks: modeset: 0, prepare: 0, disable: 1
+[ 170.429004] [drm:i9xx_get_fifo_size], FIFO size - (0x00001d9c) A: 28
+[ 170.429010] [drm:intel_calculate_wm], FIFO entries required for mode: 17
+[ 170.429013] [drm:intel_calculate_wm], FIFO watermark level: 9
+[ 170.429016] [drm:i9xx_get_fifo_size], FIFO size - (0x00001d9c) B: 31
+[ 170.429020] [drm:i9xx_update_wm], FIFO watermarks - A: 9, B: 29
+[ 170.429023] [drm:i9xx_update_wm], self-refresh entries: 64
+[ 170.429026] [drm:i9xx_update_wm], Setting FIFO watermarks - A: 9, B: 29, C: 2, SR 63
+[ 170.429029] [drm:i9xx_update_wm], memory self refresh enabled
+[ 170.429043] [drm:intel_connector_check_state], [CONNECTOR:5:LVDS-1]
+[ 170.429048] [drm:check_encoder_state], [ENCODER:6:LVDS-6]
+[ 170.429052] [drm:check_encoder_state], [ENCODER:16:DAC-16]
+[ 170.429055] [drm:check_encoder_state], [ENCODER:18:TV-18]
+[ 170.429058] [drm:check_crtc_state], [CRTC:3]
+[ 170.429062] [drm:check_crtc_state], [CRTC:4]
+[ 170.429212] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:17:SVIDEO-1] disconnected
+[ 171.084188] [drm:drm_mode_getconnector], [CONNECTOR:5:?]
+[ 171.084198] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:5:LVDS-1]
+[ 171.084203] [drm:intel_lvds_detect], [CONNECTOR:5:LVDS-1]
+[ 171.084225] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:5:LVDS-1] probed modes :
+[ 171.084229] [drm:drm_mode_debug_printmodeline], Modeline 8:"1024x768" 50 54160 1024 1048 1184 1344 768 771 777 806 0x48 0xa
+[ 171.084235] [drm:drm_mode_debug_printmodeline], Modeline 12:"1024x768" 60 65000 1024 1048 1184 1344 768 771 777 806 0x40 0xa
+[ 171.084240] [drm:drm_mode_debug_printmodeline], Modeline 9:"1024x768" 40 43330 1024 1048 1184 1344 768 771 777 806 0x40 0xa
+[ 171.084245] [drm:drm_mode_debug_printmodeline], Modeline 10:"800x600" 60 40000 800 840 968 1056 600 601 605 628 0x40 0x5
+[ 171.084249] [drm:drm_mode_debug_printmodeline], Modeline 11:"640x480" 60 25200 640 656 752 800 480 490 492 525 0x40 0xa
+[ 171.084258] [drm:drm_mode_getconnector], [CONNECTOR:5:?]
+[ 171.084505] [drm:drm_mode_getconnector], [CONNECTOR:15:?]
+[ 171.084510] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:15:VGA-1]
+[ 171.084514] [drm:intel_crt_detect], [CONNECTOR:15:VGA-1] force=1
+[ 171.100045] [drm:intel_crt_detect], CRT not detected via hotplug
+[ 171.104195] [drm:gmbus_xfer], GMBUS [i915 gmbus vga] NAK for addr: 0050 r(1)
+[ 171.104204] [drm:drm_do_probe_ddc_edid], drm: skipping non-existent adapter i915 gmbus vga
+[ 171.104207] [drm:intel_crt_get_edid], CRT GMBUS EDID read failed, retry using GPIO bit-banging
+[ 171.104210] [drm:intel_gmbus_force_bit], enabling bit-banging on i915 gmbus vga. force bit now 1
+[ 171.104487] [drm:drm_do_probe_ddc_edid], drm: skipping non-existent adapter i915 gmbus vga
+[ 171.104490] [drm:intel_gmbus_force_bit], disabling bit-banging on i915 gmbus vga. force bit now 0
+[ 171.104494] [drm:intel_crt_detect_ddc], CRT not detected via DDC:0x50 [no valid EDID found]
+[ 171.104498] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:15:VGA-1] disconnected
+[ 171.104532] [drm:drm_mode_getconnector], [CONNECTOR:17:?]
+[ 171.104537] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:17:SVIDEO-1]
+[ 171.104541] [drm:intel_tv_detect], [CONNECTOR:17:SVIDEO-1] force=1
+[ 171.104546] [drm:intel_get_load_detect_pipe], [CONNECTOR:17:SVIDEO-1], [ENCODER:18:TV-18]
+[ 171.104550] [drm:intel_get_load_detect_pipe], creating tmp fb for load-detection
+[ 171.104568] [drm:intel_modeset_affected_pipes], set mode pipe masks: modeset: 1, prepare: 1, disable: 0
+[ 171.104574] [drm:connected_sink_compute_bpp], [CONNECTOR:17:SVIDEO-1] checking for sink bpp constrains
+[ 171.104577] [drm:intel_tv_compute_config], forcing bpc to 8 for TV
+[ 171.104581] [drm:intel_modeset_pipe_config], plane bpp: 24, pipe bpp: 24, dithering: 0
+[ 171.104584] [drm:intel_dump_pipe_config], [CRTC:3][modeset] config for pipe A
+[ 171.104588] [drm:intel_dump_pipe_config], cpu_transcoder: A
+[ 171.104590] [drm:intel_dump_pipe_config], pipe bpp: 24, dithering: 0
+[ 171.104593] [drm:intel_dump_pipe_config], fdi/pch: 0, lanes: 0, gmch_m: 0, gmch_n: 0, link_m: 0, link_n: 0, tu: 0
+[ 171.104597] [drm:intel_dump_pipe_config], dp: 0, gmch_m: 0, gmch_n: 0, link_m: 0, link_n: 0, tu: 0
+[ 171.104600] [drm:intel_dump_pipe_config], requested mode:
+[ 171.104603] [drm:drm_mode_debug_printmodeline], Modeline 0:"NTSC 480i" 0 107520 1280 1368 1496 1712 1024 1027 1034 1104 0x40 0x0
+[ 171.104608] [drm:intel_dump_pipe_config], adjusted mode:
+[ 171.104611] [drm:drm_mode_debug_printmodeline], Modeline 0:"NTSC 480i" 0 107520 1280 1368 1496 1712 1024 1027 1034 1104 0x40 0x0
+[ 171.104616] [drm:intel_dump_crtc_timings], crtc timings: 108000 1280 1368 1496 1712 1024 1027 1034 1104, type: 0x40 flags: 0x0
+[ 171.104620] [drm:intel_dump_pipe_config], port clock: 108000
+[ 171.104623] [drm:intel_dump_pipe_config], pipe src size: 1280x1024
+[ 171.104626] [drm:intel_dump_pipe_config], gmch pfit: control: 0x00000000, ratios: 0x00000000, lvds border: 0x00000000
+[ 171.104629] [drm:intel_dump_pipe_config], pch pfit: pos: 0x00000000, size: 0x00000000, disabled
+[ 171.104633] [drm:intel_dump_pipe_config], ips: 0
+[ 171.104635] [drm:intel_dump_pipe_config], double wide: 0
+[ 171.113463] [drm:i9xx_update_plane], Writing base 02800000 00000000 0 0 5120
+[ 171.113476] [drm:intel_crtc_mode_set], [ENCODER:18:TV-18] set [MODE:0:NTSC 480i]
+[ 171.119107] [drm:i9xx_get_fifo_size], FIFO size - (0x00001d9c) A: 28
+[ 171.119112] [drm:intel_calculate_wm], FIFO entries required for mode: 17
+[ 171.119115] [drm:intel_calculate_wm], FIFO watermark level: 9
+[ 171.119118] [drm:i9xx_get_fifo_size], FIFO size - (0x00001d9c) B: 31
+[ 171.119122] [drm:intel_calculate_wm], FIFO entries required for mode: 34
+[ 171.119124] [drm:intel_calculate_wm], FIFO watermark level: -5
+[ 171.119127] [drm:i9xx_update_wm], FIFO watermarks - A: 9, B: 1
+[ 171.119130] [drm:i9xx_update_wm], Setting FIFO watermarks - A: 9, B: 1, C: 2, SR 1
+[ 171.119133] [drm:i9xx_update_wm], memory self refresh disabled
+[ 171.144051] [drm:intel_connector_check_state], [CONNECTOR:5:LVDS-1]
+[ 171.144061] [drm:intel_connector_check_state], [CONNECTOR:17:SVIDEO-1]
+[ 171.144065] [drm:check_encoder_state], [ENCODER:6:LVDS-6]
+[ 171.144069] [drm:check_encoder_state], [ENCODER:16:DAC-16]
+[ 171.144073] [drm:check_encoder_state], [ENCODER:18:TV-18]
+[ 171.144076] [drm:check_crtc_state], [CRTC:3]
+[ 171.144087] [drm:check_crtc_state], [CRTC:4]
+[ 171.212055] [drm:intel_tv_detect_type], TV detected: c0007, 7f0000aa
+[ 171.212063] [drm:intel_tv_detect_type], Unrecognised TV connection
+[ 171.228056] [drm:intel_release_load_detect_pipe], [CONNECTOR:17:SVIDEO-1], [ENCODER:18:TV-18]
+[ 171.228066] [drm:intel_modeset_affected_pipes], set mode pipe masks: modeset: 0, prepare: 0, disable: 1
+[ 171.269008] [drm:i9xx_get_fifo_size], FIFO size - (0x00001d9c) A: 28
+[ 171.269017] [drm:intel_calculate_wm], FIFO entries required for mode: 17
+[ 171.269020] [drm:intel_calculate_wm], FIFO watermark level: 9
+[ 171.269023] [drm:i9xx_get_fifo_size], FIFO size - (0x00001d9c) B: 31
+[ 171.269026] [drm:i9xx_update_wm], FIFO watermarks - A: 9, B: 29
+[ 171.269029] [drm:i9xx_update_wm], self-refresh entries: 64
+[ 171.269032] [drm:i9xx_update_wm], Setting FIFO watermarks - A: 9, B: 29, C: 2, SR 63
+[ 171.269036] [drm:i9xx_update_wm], memory self refresh enabled
+[ 171.271055] [drm:intel_connector_check_state], [CONNECTOR:5:LVDS-1]
+[ 171.271062] [drm:check_encoder_state], [ENCODER:6:LVDS-6]
+[ 171.271065] [drm:check_encoder_state], [ENCODER:16:DAC-16]
+[ 171.271069] [drm:check_encoder_state], [ENCODER:18:TV-18]
+[ 171.271072] [drm:check_crtc_state], [CRTC:3]
+[ 171.271076] [drm:check_crtc_state], [CRTC:4]
+[ 171.271234] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:17:SVIDEO-1] disconnected
+[ 171.449390] [drm:drm_mode_getconnector], [CONNECTOR:5:?]
+[ 171.449401] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:5:LVDS-1]
+[ 171.449406] [drm:intel_lvds_detect], [CONNECTOR:5:LVDS-1]
+[ 171.449429] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:5:LVDS-1] probed modes :
+[ 171.449433] [drm:drm_mode_debug_printmodeline], Modeline 8:"1024x768" 50 54160 1024 1048 1184 1344 768 771 777 806 0x48 0xa
+[ 171.449439] [drm:drm_mode_debug_printmodeline], Modeline 12:"1024x768" 60 65000 1024 1048 1184 1344 768 771 777 806 0x40 0xa
+[ 171.449444] [drm:drm_mode_debug_printmodeline], Modeline 9:"1024x768" 40 43330 1024 1048 1184 1344 768 771 777 806 0x40 0xa
+[ 171.449449] [drm:drm_mode_debug_printmodeline], Modeline 10:"800x600" 60 40000 800 840 968 1056 600 601 605 628 0x40 0x5
+[ 171.449453] [drm:drm_mode_debug_printmodeline], Modeline 11:"640x480" 60 25200 640 656 752 800 480 490 492 525 0x40 0xa
+[ 171.449462] [drm:drm_mode_getconnector], [CONNECTOR:5:?]
+[ 171.449715] [drm:drm_mode_getconnector], [CONNECTOR:15:?]
+[ 171.449720] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:15:VGA-1]
+[ 171.449724] [drm:intel_crt_detect], [CONNECTOR:15:VGA-1] force=1
+[ 171.464239] [drm:intel_crt_detect], CRT not detected via hotplug
+[ 171.468039] [drm:gmbus_xfer], GMBUS [i915 gmbus vga] NAK for addr: 0050 r(1)
+[ 171.468046] [drm:drm_do_probe_ddc_edid], drm: skipping non-existent adapter i915 gmbus vga
+[ 171.468050] [drm:intel_crt_get_edid], CRT GMBUS EDID read failed, retry using GPIO bit-banging
+[ 171.468053] [drm:intel_gmbus_force_bit], enabling bit-banging on i915 gmbus vga. force bit now 1
+[ 171.468335] [drm:drm_do_probe_ddc_edid], drm: skipping non-existent adapter i915 gmbus vga
+[ 171.468338] [drm:intel_gmbus_force_bit], disabling bit-banging on i915 gmbus vga. force bit now 0
+[ 171.468341] [drm:intel_crt_detect_ddc], CRT not detected via DDC:0x50 [no valid EDID found]
+[ 171.468346] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:15:VGA-1] disconnected
+[ 171.468379] [drm:drm_mode_getconnector], [CONNECTOR:17:?]
+[ 171.468384] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:17:SVIDEO-1]
+[ 171.468388] [drm:intel_tv_detect], [CONNECTOR:17:SVIDEO-1] force=1
+[ 171.468393] [drm:intel_get_load_detect_pipe], [CONNECTOR:17:SVIDEO-1], [ENCODER:18:TV-18]
+[ 171.468397] [drm:intel_get_load_detect_pipe], creating tmp fb for load-detection
+[ 171.468414] [drm:intel_modeset_affected_pipes], set mode pipe masks: modeset: 1, prepare: 1, disable: 0
+[ 171.468420] [drm:connected_sink_compute_bpp], [CONNECTOR:17:SVIDEO-1] checking for sink bpp constrains
+[ 171.468424] [drm:intel_tv_compute_config], forcing bpc to 8 for TV
+[ 171.468427] [drm:intel_modeset_pipe_config], plane bpp: 24, pipe bpp: 24, dithering: 0
+[ 171.468431] [drm:intel_dump_pipe_config], [CRTC:3][modeset] config for pipe A
+[ 171.468434] [drm:intel_dump_pipe_config], cpu_transcoder: A
+[ 171.468437] [drm:intel_dump_pipe_config], pipe bpp: 24, dithering: 0
+[ 171.468440] [drm:intel_dump_pipe_config], fdi/pch: 0, lanes: 0, gmch_m: 0, gmch_n: 0, link_m: 0, link_n: 0, tu: 0
+[ 171.468443] [drm:intel_dump_pipe_config], dp: 0, gmch_m: 0, gmch_n: 0, link_m: 0, link_n: 0, tu: 0
+[ 171.468447] [drm:intel_dump_pipe_config], requested mode:
+[ 171.468450] [drm:drm_mode_debug_printmodeline], Modeline 0:"NTSC 480i" 0 107520 1280 1368 1496 1712 1024 1027 1034 1104 0x40 0x0
+[ 171.468455] [drm:intel_dump_pipe_config], adjusted mode:
+[ 171.468458] [drm:drm_mode_debug_printmodeline], Modeline 0:"NTSC 480i" 0 107520 1280 1368 1496 1712 1024 1027 1034 1104 0x40 0x0
+[ 171.468462] [drm:intel_dump_crtc_timings], crtc timings: 108000 1280 1368 1496 1712 1024 1027 1034 1104, type: 0x40 flags: 0x0
+[ 171.468467] [drm:intel_dump_pipe_config], port clock: 108000
+[ 171.468469] [drm:intel_dump_pipe_config], pipe src size: 1280x1024
+[ 171.468472] [drm:intel_dump_pipe_config], gmch pfit: control: 0x00000000, ratios: 0x00000000, lvds border: 0x00000000
+[ 171.468476] [drm:intel_dump_pipe_config], pch pfit: pos: 0x00000000, size: 0x00000000, disabled
+[ 171.468479] [drm:intel_dump_pipe_config], ips: 0
+[ 171.468482] [drm:intel_dump_pipe_config], double wide: 0
+[ 171.475659] [drm:i9xx_update_plane], Writing base 02860000 00000000 0 0 5120
+[ 171.475670] [drm:intel_crtc_mode_set], [ENCODER:18:TV-18] set [MODE:0:NTSC 480i]
+[ 171.481311] [drm:i9xx_get_fifo_size], FIFO size - (0x00001d9c) A: 28
+[ 171.481317] [drm:intel_calculate_wm], FIFO entries required for mode: 17
+[ 171.481320] [drm:intel_calculate_wm], FIFO watermark level: 9
+[ 171.481323] [drm:i9xx_get_fifo_size], FIFO size - (0x00001d9c) B: 31
+[ 171.481326] [drm:intel_calculate_wm], FIFO entries required for mode: 34
+[ 171.481329] [drm:intel_calculate_wm], FIFO watermark level: -5
+[ 171.481331] [drm:i9xx_update_wm], FIFO watermarks - A: 9, B: 1
+[ 171.481335] [drm:i9xx_update_wm], Setting FIFO watermarks - A: 9, B: 1, C: 2, SR 1
+[ 171.481338] [drm:i9xx_update_wm], memory self refresh disabled
+[ 171.504105] [drm:intel_connector_check_state], [CONNECTOR:5:LVDS-1]
+[ 171.504115] [drm:intel_connector_check_state], [CONNECTOR:17:SVIDEO-1]
+[ 171.504119] [drm:check_encoder_state], [ENCODER:6:LVDS-6]
+[ 171.504123] [drm:check_encoder_state], [ENCODER:16:DAC-16]
+[ 171.504127] [drm:check_encoder_state], [ENCODER:18:TV-18]
+[ 171.504130] [drm:check_crtc_state], [CRTC:3]
+[ 171.504141] [drm:check_crtc_state], [CRTC:4]
+[ 171.568041] [drm:intel_tv_detect_type], TV detected: c0007, 7f0000aa
+[ 171.568048] [drm:intel_tv_detect_type], Unrecognised TV connection
+[ 171.628046] [drm:intel_wait_for_vblank], vblank wait timed out
+[ 171.628054] [drm:intel_release_load_detect_pipe], [CONNECTOR:17:SVIDEO-1], [ENCODER:18:TV-18]
+[ 171.628059] [drm:intel_modeset_affected_pipes], set mode pipe masks: modeset: 0, prepare: 0, disable: 1
+[ 171.673007] [drm:i9xx_get_fifo_size], FIFO size - (0x00001d9c) A: 28
+[ 171.673014] [drm:intel_calculate_wm], FIFO entries required for mode: 17
+[ 171.673017] [drm:intel_calculate_wm], FIFO watermark level: 9
+[ 171.673020] [drm:i9xx_get_fifo_size], FIFO size - (0x00001d9c) B: 31
+[ 171.673023] [drm:i9xx_update_wm], FIFO watermarks - A: 9, B: 29
+[ 171.673027] [drm:i9xx_update_wm], self-refresh entries: 64
+[ 171.673029] [drm:i9xx_update_wm], Setting FIFO watermarks - A: 9, B: 29, C: 2, SR 63
+[ 171.673033] [drm:i9xx_update_wm], memory self refresh enabled
+[ 171.673133] [drm:intel_connector_check_state], [CONNECTOR:5:LVDS-1]
+[ 171.673139] [drm:check_encoder_state], [ENCODER:6:LVDS-6]
+[ 171.673143] [drm:check_encoder_state], [ENCODER:16:DAC-16]
+[ 171.673147] [drm:check_encoder_state], [ENCODER:18:TV-18]
+[ 171.673151] [drm:check_crtc_state], [CRTC:3]
+[ 171.673154] [drm:check_crtc_state], [CRTC:4]
+[ 171.673361] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:17:SVIDEO-1] disconnected
+[ 171.676431] [drm:drm_mode_getconnector], [CONNECTOR:5:?]
+[ 171.676439] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:5:LVDS-1]
+[ 171.676444] [drm:intel_lvds_detect], [CONNECTOR:5:LVDS-1]
+[ 171.676465] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:5:LVDS-1] probed modes :
+[ 171.676468] [drm:drm_mode_debug_printmodeline], Modeline 8:"1024x768" 50 54160 1024 1048 1184 1344 768 771 777 806 0x48 0xa
+[ 171.676474] [drm:drm_mode_debug_printmodeline], Modeline 12:"1024x768" 60 65000 1024 1048 1184 1344 768 771 777 806 0x40 0xa
+[ 171.676479] [drm:drm_mode_debug_printmodeline], Modeline 9:"1024x768" 40 43330 1024 1048 1184 1344 768 771 777 806 0x40 0xa
+[ 171.676483] [drm:drm_mode_debug_printmodeline], Modeline 10:"800x600" 60 40000 800 840 968 1056 600 601 605 628 0x40 0x5
+[ 171.676488] [drm:drm_mode_debug_printmodeline], Modeline 11:"640x480" 60 25200 640 656 752 800 480 490 492 525 0x40 0xa
+[ 171.676497] [drm:drm_mode_getconnector], [CONNECTOR:5:?]
+[ 171.676719] [drm:drm_mode_getconnector], [CONNECTOR:15:?]
+[ 171.676724] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:15:VGA-1]
+[ 171.676727] [drm:intel_crt_detect], [CONNECTOR:15:VGA-1] force=1
+[ 171.692056] [drm:intel_crt_detect], CRT not detected via hotplug
+[ 171.697188] [drm:gmbus_xfer], GMBUS [i915 gmbus vga] NAK for addr: 0050 r(1)
+[ 171.697197] [drm:drm_do_probe_ddc_edid], drm: skipping non-existent adapter i915 gmbus vga
+[ 171.697201] [drm:intel_crt_get_edid], CRT GMBUS EDID read failed, retry using GPIO bit-banging
+[ 171.697203] [drm:intel_gmbus_force_bit], enabling bit-banging on i915 gmbus vga. force bit now 1
+[ 171.697483] [drm:drm_do_probe_ddc_edid], drm: skipping non-existent adapter i915 gmbus vga
+[ 171.697486] [drm:intel_gmbus_force_bit], disabling bit-banging on i915 gmbus vga. force bit now 0
+[ 171.697489] [drm:intel_crt_detect_ddc], CRT not detected via DDC:0x50 [no valid EDID found]
+[ 171.697494] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:15:VGA-1] disconnected
+[ 171.697528] [drm:drm_mode_getconnector], [CONNECTOR:17:?]
+[ 171.697534] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:17:SVIDEO-1]
+[ 171.697537] [drm:intel_tv_detect], [CONNECTOR:17:SVIDEO-1] force=1
+[ 171.697542] [drm:intel_get_load_detect_pipe], [CONNECTOR:17:SVIDEO-1], [ENCODER:18:TV-18]
+[ 171.697546] [drm:intel_get_load_detect_pipe], creating tmp fb for load-detection
+[ 171.697564] [drm:intel_modeset_affected_pipes], set mode pipe masks: modeset: 1, prepare: 1, disable: 0
+[ 171.697570] [drm:connected_sink_compute_bpp], [CONNECTOR:17:SVIDEO-1] checking for sink bpp constrains
+[ 171.697574] [drm:intel_tv_compute_config], forcing bpc to 8 for TV
+[ 171.697578] [drm:intel_modeset_pipe_config], plane bpp: 24, pipe bpp: 24, dithering: 0
+[ 171.697581] [drm:intel_dump_pipe_config], [CRTC:3][modeset] config for pipe A
+[ 171.697585] [drm:intel_dump_pipe_config], cpu_transcoder: A
+[ 171.697588] [drm:intel_dump_pipe_config], pipe bpp: 24, dithering: 0
+[ 171.697590] [drm:intel_dump_pipe_config], fdi/pch: 0, lanes: 0, gmch_m: 0, gmch_n: 0, link_m: 0, link_n: 0, tu: 0
+[ 171.697594] [drm:intel_dump_pipe_config], dp: 0, gmch_m: 0, gmch_n: 0, link_m: 0, link_n: 0, tu: 0
+[ 171.697598] [drm:intel_dump_pipe_config], requested mode:
+[ 171.697600] [drm:drm_mode_debug_printmodeline], Modeline 0:"NTSC 480i" 0 107520 1280 1368 1496 1712 1024 1027 1034 1104 0x40 0x0
+[ 171.697605] [drm:intel_dump_pipe_config], adjusted mode:
+[ 171.697608] [drm:drm_mode_debug_printmodeline], Modeline 0:"NTSC 480i" 0 107520 1280 1368 1496 1712 1024 1027 1034 1104 0x40 0x0
+[ 171.697613] [drm:intel_dump_crtc_timings], crtc timings: 108000 1280 1368 1496 1712 1024 1027 1034 1104, type: 0x40 flags: 0x0
+[ 171.697617] [drm:intel_dump_pipe_config], port clock: 108000
+[ 171.697620] [drm:intel_dump_pipe_config], pipe src size: 1280x1024
+[ 171.697623] [drm:intel_dump_pipe_config], gmch pfit: control: 0x00000000, ratios: 0x00000000, lvds border: 0x00000000
+[ 171.697626] [drm:intel_dump_pipe_config], pch pfit: pos: 0x00000000, size: 0x00000000, disabled
+[ 171.697629] [drm:intel_dump_pipe_config], ips: 0
+[ 171.697632] [drm:intel_dump_pipe_config], double wide: 0
+[ 171.705575] [drm:i9xx_update_plane], Writing base 02860000 00000000 0 0 5120
+[ 171.705587] [drm:intel_crtc_mode_set], [ENCODER:18:TV-18] set [MODE:0:NTSC 480i]
+[ 171.711217] [drm:i9xx_get_fifo_size], FIFO size - (0x00001d9c) A: 28
+[ 171.711221] [drm:intel_calculate_wm], FIFO entries required for mode: 17
+[ 171.711224] [drm:intel_calculate_wm], FIFO watermark level: 9
+[ 171.711227] [drm:i9xx_get_fifo_size], FIFO size - (0x00001d9c) B: 31
+[ 171.711230] [drm:intel_calculate_wm], FIFO entries required for mode: 34
+[ 171.711233] [drm:intel_calculate_wm], FIFO watermark level: -5
+[ 171.711235] [drm:i9xx_update_wm], FIFO watermarks - A: 9, B: 1
+[ 171.711239] [drm:i9xx_update_wm], Setting FIFO watermarks - A: 9, B: 1, C: 2, SR 1
+[ 171.711242] [drm:i9xx_update_wm], memory self refresh disabled
+[ 171.732081] [drm:intel_connector_check_state], [CONNECTOR:5:LVDS-1]
+[ 171.732087] [drm:intel_connector_check_state], [CONNECTOR:17:SVIDEO-1]
+[ 171.732091] [drm:check_encoder_state], [ENCODER:6:LVDS-6]
+[ 171.732095] [drm:check_encoder_state], [ENCODER:16:DAC-16]
+[ 171.732098] [drm:check_encoder_state], [ENCODER:18:TV-18]
+[ 171.732102] [drm:check_crtc_state], [CRTC:3]
+[ 171.732112] [drm:check_crtc_state], [CRTC:4]
+[ 171.772048] [drm:intel_tv_detect_type], TV detected: c0007, 7f0000aa
+[ 171.772053] [drm:intel_tv_detect_type], Unrecognised TV connection
+[ 171.788030] [drm:intel_release_load_detect_pipe], [CONNECTOR:17:SVIDEO-1], [ENCODER:18:TV-18]
+[ 171.788036] [drm:intel_modeset_affected_pipes], set mode pipe masks: modeset: 0, prepare: 0, disable: 1
+[ 171.837008] [drm:i9xx_get_fifo_size], FIFO size - (0x00001d9c) A: 28
+[ 171.837016] [drm:intel_calculate_wm], FIFO entries required for mode: 17
+[ 171.837019] [drm:intel_calculate_wm], FIFO watermark level: 9
+[ 171.837022] [drm:i9xx_get_fifo_size], FIFO size - (0x00001d9c) B: 31
+[ 171.837026] [drm:i9xx_update_wm], FIFO watermarks - A: 9, B: 29
+[ 171.837029] [drm:i9xx_update_wm], self-refresh entries: 64
+[ 171.837032] [drm:i9xx_update_wm], Setting FIFO watermarks - A: 9, B: 29, C: 2, SR 63
+[ 171.837035] [drm:i9xx_update_wm], memory self refresh enabled
+[ 171.837045] [drm:intel_connector_check_state], [CONNECTOR:5:LVDS-1]
+[ 171.837050] [drm:check_encoder_state], [ENCODER:6:LVDS-6]
+[ 171.837053] [drm:check_encoder_state], [ENCODER:16:DAC-16]
+[ 171.837057] [drm:check_encoder_state], [ENCODER:18:TV-18]
+[ 171.837060] [drm:check_crtc_state], [CRTC:3]
+[ 171.837064] [drm:check_crtc_state], [CRTC:4]
+[ 171.837214] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:17:SVIDEO-1] disconnected
+[ 171.997747] [drm:drm_mode_addfb], [FB:34]
+[ 172.064040] [drm:intel_tv_detect], [CONNECTOR:17:SVIDEO-1] force=0
+[ 182.080084] [drm:intel_tv_detect], [CONNECTOR:17:SVIDEO-1] force=0
+[ 191.573667] [drm:drm_mode_getconnector], [CONNECTOR:5:?]
+[ 191.573678] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:5:LVDS-1]
+[ 191.573684] [drm:intel_lvds_detect], [CONNECTOR:5:LVDS-1]
+[ 191.573706] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:5:LVDS-1] probed modes :
+[ 191.573710] [drm:drm_mode_debug_printmodeline], Modeline 8:"1024x768" 50 54160 1024 1048 1184 1344 768 771 777 806 0x48 0xa
+[ 191.573715] [drm:drm_mode_debug_printmodeline], Modeline 12:"1024x768" 60 65000 1024 1048 1184 1344 768 771 777 806 0x40 0xa
+[ 191.573720] [drm:drm_mode_debug_printmodeline], Modeline 9:"1024x768" 40 43330 1024 1048 1184 1344 768 771 777 806 0x40 0xa
+[ 191.573725] [drm:drm_mode_debug_printmodeline], Modeline 10:"800x600" 60 40000 800 840 968 1056 600 601 605 628 0x40 0x5
+[ 191.573730] [drm:drm_mode_debug_printmodeline], Modeline 11:"640x480" 60 25200 640 656 752 800 480 490 492 525 0x40 0xa
+[ 191.573739] [drm:drm_mode_getconnector], [CONNECTOR:5:?]
+[ 191.573976] [drm:drm_mode_getconnector], [CONNECTOR:15:?]
+[ 191.573980] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:15:VGA-1]
+[ 191.573984] [drm:intel_crt_detect], [CONNECTOR:15:VGA-1] force=1
+[ 191.596041] [drm:intel_crt_detect], CRT not detected via hotplug
+[ 191.600059] [drm:gmbus_xfer], GMBUS [i915 gmbus vga] NAK for addr: 0050 r(1)
+[ 191.600066] [drm:drm_do_probe_ddc_edid], drm: skipping non-existent adapter i915 gmbus vga
+[ 191.600070] [drm:intel_crt_get_edid], CRT GMBUS EDID read failed, retry using GPIO bit-banging
+[ 191.600072] [drm:intel_gmbus_force_bit], enabling bit-banging on i915 gmbus vga. force bit now 1
+[ 191.600350] [drm:drm_do_probe_ddc_edid], drm: skipping non-existent adapter i915 gmbus vga
+[ 191.600353] [drm:intel_gmbus_force_bit], disabling bit-banging on i915 gmbus vga. force bit now 0
+[ 191.600356] [drm:intel_crt_detect_ddc], CRT not detected via DDC:0x50 [no valid EDID found]
+[ 191.600359] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:15:VGA-1] disconnected
+[ 191.600384] [drm:drm_mode_getconnector], [CONNECTOR:17:?]
+[ 191.600388] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:17:SVIDEO-1]
+[ 191.600392] [drm:intel_tv_detect], [CONNECTOR:17:SVIDEO-1] force=1
+[ 191.600397] [drm:intel_get_load_detect_pipe], [CONNECTOR:17:SVIDEO-1], [ENCODER:18:TV-18]
+[ 191.600401] [drm:intel_get_load_detect_pipe], creating tmp fb for load-detection
+[ 191.600417] [drm:intel_modeset_affected_pipes], set mode pipe masks: modeset: 1, prepare: 1, disable: 0
+[ 191.600423] [drm:connected_sink_compute_bpp], [CONNECTOR:17:SVIDEO-1] checking for sink bpp constrains
+[ 191.600426] [drm:intel_tv_compute_config], forcing bpc to 8 for TV
+[ 191.600429] [drm:intel_modeset_pipe_config], plane bpp: 24, pipe bpp: 24, dithering: 0
+[ 191.600433] [drm:intel_dump_pipe_config], [CRTC:3][modeset] config for pipe A
+[ 191.600436] [drm:intel_dump_pipe_config], cpu_transcoder: A
+[ 191.600439] [drm:intel_dump_pipe_config], pipe bpp: 24, dithering: 0
+[ 191.600442] [drm:intel_dump_pipe_config], fdi/pch: 0, lanes: 0, gmch_m: 0, gmch_n: 0, link_m: 0, link_n: 0, tu: 0
+[ 191.600445] [drm:intel_dump_pipe_config], dp: 0, gmch_m: 0, gmch_n: 0, link_m: 0, link_n: 0, tu: 0
+[ 191.600449] [drm:intel_dump_pipe_config], requested mode:
+[ 191.600452] [drm:drm_mode_debug_printmodeline], Modeline 0:"NTSC 480i" 0 107520 1280 1368 1496 1712 1024 1027 1034 1104 0x40 0x0
+[ 191.600457] [drm:intel_dump_pipe_config], adjusted mode:
+[ 191.600459] [drm:drm_mode_debug_printmodeline], Modeline 0:"NTSC 480i" 0 107520 1280 1368 1496 1712 1024 1027 1034 1104 0x40 0x0
+[ 191.600464] [drm:intel_dump_crtc_timings], crtc timings: 108000 1280 1368 1496 1712 1024 1027 1034 1104, type: 0x40 flags: 0x0
+[ 191.600468] [drm:intel_dump_pipe_config], port clock: 108000
+[ 191.600471] [drm:intel_dump_pipe_config], pipe src size: 1280x1024
+[ 191.600474] [drm:intel_dump_pipe_config], gmch pfit: control: 0x00000000, ratios: 0x00000000, lvds border: 0x00000000
+[ 191.600477] [drm:intel_dump_pipe_config], pch pfit: pos: 0x00000000, size: 0x00000000, disabled
+[ 191.600481] [drm:intel_dump_pipe_config], ips: 0
+[ 191.600484] [drm:intel_dump_pipe_config], double wide: 0
+[ 191.607207] [drm:i9xx_update_plane], Writing base 05040000 00000000 0 0 5120
+[ 191.607218] [drm:intel_crtc_mode_set], [ENCODER:18:TV-18] set [MODE:0:NTSC 480i]
+[ 191.612854] [drm:i9xx_get_fifo_size], FIFO size - (0x00001d9c) A: 28
+[ 191.612859] [drm:intel_calculate_wm], FIFO entries required for mode: 17
+[ 191.612862] [drm:intel_calculate_wm], FIFO watermark level: 9
+[ 191.612865] [drm:i9xx_get_fifo_size], FIFO size - (0x00001d9c) B: 31
+[ 191.612868] [drm:intel_calculate_wm], FIFO entries required for mode: 34
+[ 191.612870] [drm:intel_calculate_wm], FIFO watermark level: -5
+[ 191.612873] [drm:i9xx_update_wm], FIFO watermarks - A: 9, B: 1
+[ 191.612876] [drm:i9xx_update_wm], Setting FIFO watermarks - A: 9, B: 1, C: 2, SR 1
+[ 191.612880] [drm:i9xx_update_wm], memory self refresh disabled
+[ 191.636051] [drm:intel_connector_check_state], [CONNECTOR:5:LVDS-1]
+[ 191.636059] [drm:intel_connector_check_state], [CONNECTOR:17:SVIDEO-1]
+[ 191.636063] [drm:check_encoder_state], [ENCODER:6:LVDS-6]
+[ 191.636066] [drm:check_encoder_state], [ENCODER:16:DAC-16]
+[ 191.636070] [drm:check_encoder_state], [ENCODER:18:TV-18]
+[ 191.636073] [drm:check_crtc_state], [CRTC:3]
+[ 191.636083] [drm:check_crtc_state], [CRTC:4]
+[ 191.676047] [drm:intel_tv_detect_type], TV detected: c0007, 7f0000aa
+[ 191.676053] [drm:intel_tv_detect_type], Unrecognised TV connection
+[ 191.692041] [drm:intel_release_load_detect_pipe], [CONNECTOR:17:SVIDEO-1], [ENCODER:18:TV-18]
+[ 191.692047] [drm:intel_modeset_affected_pipes], set mode pipe masks: modeset: 0, prepare: 0, disable: 1
+[ 191.745006] [drm:i9xx_get_fifo_size], FIFO size - (0x00001d9c) A: 28
+[ 191.745014] [drm:intel_calculate_wm], FIFO entries required for mode: 17
+[ 191.745017] [drm:intel_calculate_wm], FIFO watermark level: 9
+[ 191.745020] [drm:i9xx_get_fifo_size], FIFO size - (0x00001d9c) B: 31
+[ 191.745024] [drm:i9xx_update_wm], FIFO watermarks - A: 9, B: 29
+[ 191.745027] [drm:i9xx_update_wm], self-refresh entries: 64
+[ 191.745030] [drm:i9xx_update_wm], Setting FIFO watermarks - A: 9, B: 29, C: 2, SR 63
+[ 191.745034] [drm:i9xx_update_wm], memory self refresh enabled
+[ 191.745045] [drm:intel_connector_check_state], [CONNECTOR:5:LVDS-1]
+[ 191.745050] [drm:check_encoder_state], [ENCODER:6:LVDS-6]
+[ 191.745053] [drm:check_encoder_state], [ENCODER:16:DAC-16]
+[ 191.745057] [drm:check_encoder_state], [ENCODER:18:TV-18]
+[ 191.745060] [drm:check_crtc_state], [CRTC:3]
+[ 191.745064] [drm:check_crtc_state], [CRTC:4]
+[ 191.745217] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:17:SVIDEO-1] disconnected
+[ 192.096128] [drm:intel_tv_detect], [CONNECTOR:17:SVIDEO-1] force=0
+[ 202.112100] [drm:intel_tv_detect], [CONNECTOR:17:SVIDEO-1] force=0
+[ 212.128145] [drm:intel_tv_detect], [CONNECTOR:17:SVIDEO-1] force=0
+[ 222.144192] [drm:intel_tv_detect], [CONNECTOR:17:SVIDEO-1] force=0
+[ 232.160064] [drm:intel_tv_detect], [CONNECTOR:17:SVIDEO-1] force=0
+[ 242.176124] [drm:intel_tv_detect], [CONNECTOR:17:SVIDEO-1] force=0
+[ 251.926550] [drm:intel_crtc_cursor_set], cursor off
+[ 252.192155] [drm:intel_tv_detect], [CONNECTOR:17:SVIDEO-1] force=0
+[ 262.208177] [drm:intel_tv_detect], [CONNECTOR:17:SVIDEO-1] force=0
+[ 272.224155] [drm:intel_tv_detect], [CONNECTOR:17:SVIDEO-1] force=0
+[ 282.240058] [drm:intel_tv_detect], [CONNECTOR:17:SVIDEO-1] force=0
+[ 288.627538] [drm:i915_gem_open],
+[ 292.256054] [drm:intel_tv_detect], [CONNECTOR:17:SVIDEO-1] force=0
+[ 302.272054] [drm:intel_tv_detect], [CONNECTOR:17:SVIDEO-1] force=0
+[ 312.288157] [drm:intel_tv_detect], [CONNECTOR:17:SVIDEO-1] force=0
+[ 322.304125] [drm:intel_tv_detect], [CONNECTOR:17:SVIDEO-1] force=0
+[ 332.320142] [drm:intel_tv_detect], [CONNECTOR:17:SVIDEO-1] force=0
+[ 333.456176] usb 1-5: new high-speed USB device number 3 using ehci-pci
+[ 333.589307] usb 1-5: New USB device found, idVendor=8644, idProduct=8003
+[ 333.589312] usb 1-5: New USB device strings: Mfr=1, Product=2, SerialNumber=3
+[ 333.589317] usb 1-5: Product: USB Flash Disk
+[ 333.589320] usb 1-5: Manufacturer: General
+[ 333.589323] usb 1-5: SerialNumber: 04040310000181F6
+[ 333.679670] usb-storage 1-5:1.0: USB Mass Storage device detected
+[ 333.679783] scsi6 : usb-storage 1-5:1.0
+[ 333.679899] usbcore: registered new interface driver usb-storage
+[ 334.676977] scsi 6:0:0:0: Direct-Access General USB Flash Disk 1.00 PQ: 0 ANSI: 2
+[ 334.677369] sd 6:0:0:0: Attached scsi generic sg1 type 0
+[ 334.678067] sd 6:0:0:0: [sdb] 15669248 512-byte logical blocks: (8.02 GB/7.47 GiB)
+[ 334.679430] sd 6:0:0:0: [sdb] Write Protect is off
+[ 334.679436] sd 6:0:0:0: [sdb] Mode Sense: 03 00 00 00
+[ 334.680147] sd 6:0:0:0: [sdb] No Caching mode page found
+[ 334.680153] sd 6:0:0:0: [sdb] Assuming drive cache: write through
+[ 334.685053] sd 6:0:0:0: [sdb] No Caching mode page found
+[ 334.685059] sd 6:0:0:0: [sdb] Assuming drive cache: write through
+[ 334.687362] sdb: sdb1
+[ 334.690313] sd 6:0:0:0: [sdb] No Caching mode page found
+[ 334.690318] sd 6:0:0:0: [sdb] Assuming drive cache: write through
+[ 334.690323] sd 6:0:0:0: [sdb] Attached SCSI removable disk
+[ 342.336060] [drm:intel_tv_detect], [CONNECTOR:17:SVIDEO-1] force=0
+[ 343.641289] systemd-hostnamed[2780]: Warning: nss-myhostname is not installed. Changing the local hostname might make it unresolveable. Please install nss-myhostname!
+[ 347.448355] FAT-fs (sdb1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.
+[ 352.352127] [drm:intel_tv_detect], [CONNECTOR:17:SVIDEO-1] force=0
+[ 353.599097] [drm:intel_crtc_cursor_set], cursor off
+[ 362.368145] [drm:intel_tv_detect], [CONNECTOR:17:SVIDEO-1] force=0
diff --git a/docs/future/dumps/pte_x60_6718/kern.log b/docs/future/dumps/pte_x60_6718/kern.log
new file mode 100644
index 00000000..b74142a5
--- /dev/null
+++ b/docs/future/dumps/pte_x60_6718/kern.log
@@ -0,0 +1,2026 @@
+Aug 31 01:30:17 minifree kernel: [ 2923.992095] perf samples too long (2511 > 2500), lowering kernel.perf_event_max_sample_rate to 50000
+Aug 31 22:50:24 minifree kernel: [ 0.000000] Initializing cgroup subsys cpuset
+Aug 31 22:50:24 minifree kernel: [ 0.000000] Initializing cgroup subsys cpu
+Aug 31 22:50:24 minifree kernel: [ 0.000000] Initializing cgroup subsys cpuacct
+Aug 31 22:50:24 minifree kernel: [ 0.000000] Linux version 3.13.0-34-generic (root@devel.trisquel.info) (gcc version 4.8.2 (Ubuntu 4.8.2-19ubuntu1) ) #0trisquel2 SMP Wed Aug 27 02:19:14 UTC 2014 (Ubuntu 3.13.0-34.60+7.0trisquel2-generic 3.13.11.4-gnu)
+Aug 31 22:50:24 minifree kernel: [ 0.000000] Command line: BOOT_IMAGE=/vmlinuz root=/dev/mapper/buzz-distro cryptdevice=/dev/mapper/buzz-distro:root quiet splash drm.debug=0x06 ro
+Aug 31 22:50:24 minifree kernel: [ 0.000000] KERNEL supported cpus:
+Aug 31 22:50:24 minifree kernel: [ 0.000000] Intel GenuineIntel
+Aug 31 22:50:24 minifree kernel: [ 0.000000] AMD AuthenticAMD
+Aug 31 22:50:24 minifree kernel: [ 0.000000] Centaur CentaurHauls
+Aug 31 22:50:24 minifree kernel: [ 0.000000] e820: BIOS-provided physical RAM map:
+Aug 31 22:50:24 minifree kernel: [ 0.000000] BIOS-e820: [mem 0x0000000000000000-0x0000000000000fff] type 16
+Aug 31 22:50:24 minifree kernel: [ 0.000000] BIOS-e820: [mem 0x0000000000001000-0x000000000009ffff] usable
+Aug 31 22:50:24 minifree kernel: [ 0.000000] BIOS-e820: [mem 0x00000000000c0000-0x00000000000fffff] reserved
+Aug 31 22:50:24 minifree kernel: [ 0.000000] BIOS-e820: [mem 0x0000000000100000-0x000000007f6d4fff] usable
+Aug 31 22:50:24 minifree kernel: [ 0.000000] BIOS-e820: [mem 0x000000007f6d5000-0x000000007f7fffff] type 16
+Aug 31 22:50:24 minifree kernel: [ 0.000000] BIOS-e820: [mem 0x000000007f800000-0x000000007fffffff] reserved
+Aug 31 22:50:24 minifree kernel: [ 0.000000] BIOS-e820: [mem 0x00000000f0000000-0x00000000f3ffffff] reserved
+Aug 31 22:50:24 minifree kernel: [ 0.000000] NX (Execute Disable) protection: active
+Aug 31 22:50:24 minifree kernel: [ 0.000000] SMBIOS 2.7 present.
+Aug 31 22:50:24 minifree kernel: [ 0.000000] DMI: LENOVO 1702L8G/1702L8G, BIOS CBET4000 7BETC7WW (2.08 ) 08/30/2014
+Aug 31 22:50:24 minifree kernel: [ 0.000000] e820: update [mem 0x00000000-0x00000fff] usable ==> reserved
+Aug 31 22:50:24 minifree kernel: [ 0.000000] e820: remove [mem 0x000a0000-0x000fffff] usable
+Aug 31 22:50:24 minifree kernel: [ 0.000000] No AGP bridge found
+Aug 31 22:50:24 minifree kernel: [ 0.000000] e820: last_pfn = 0x7f6d5 max_arch_pfn = 0x400000000
+Aug 31 22:50:24 minifree kernel: [ 0.000000] MTRR default type: uncachable
+Aug 31 22:50:24 minifree kernel: [ 0.000000] MTRR fixed ranges enabled:
+Aug 31 22:50:24 minifree kernel: [ 0.000000] 00000-9FFFF write-back
+Aug 31 22:50:24 minifree kernel: [ 0.000000] A0000-BFFFF uncachable
+Aug 31 22:50:24 minifree kernel: [ 0.000000] C0000-FFFFF write-back
+Aug 31 22:50:24 minifree kernel: [ 0.000000] MTRR variable ranges enabled:
+Aug 31 22:50:24 minifree kernel: [ 0.000000] 0 base 000000000 mask F80000000 write-back
+Aug 31 22:50:24 minifree kernel: [ 0.000000] 1 base 07F800000 mask FFF800000 uncachable
+Aug 31 22:50:24 minifree kernel: [ 0.000000] 2 base 0D0000000 mask FF0000000 write-combining
+Aug 31 22:50:24 minifree kernel: [ 0.000000] 3 disabled
+Aug 31 22:50:24 minifree kernel: [ 0.000000] 4 disabled
+Aug 31 22:50:24 minifree kernel: [ 0.000000] 5 disabled
+Aug 31 22:50:24 minifree kernel: [ 0.000000] 6 disabled
+Aug 31 22:50:24 minifree kernel: [ 0.000000] 7 disabled
+Aug 31 22:50:24 minifree kernel: [ 0.000000] x86 PAT enabled: cpu 0, old 0x7040600070406, new 0x7010600070106
+Aug 31 22:50:24 minifree kernel: [ 0.000000] found SMP MP-table at [mem 0x000f0400-0x000f040f] mapped at [ffff8800000f0400]
+Aug 31 22:50:24 minifree kernel: [ 0.000000] Scanning 1 areas for low memory corruption
+Aug 31 22:50:24 minifree kernel: [ 0.000000] Base memory trampoline at [ffff880000099000] 99000 size 24576
+Aug 31 22:50:24 minifree kernel: [ 0.000000] init_memory_mapping: [mem 0x00000000-0x000fffff]
+Aug 31 22:50:24 minifree kernel: [ 0.000000] [mem 0x00000000-0x000fffff] page 4k
+Aug 31 22:50:24 minifree kernel: [ 0.000000] BRK [0x01fe0000, 0x01fe0fff] PGTABLE
+Aug 31 22:50:24 minifree kernel: [ 0.000000] BRK [0x01fe1000, 0x01fe1fff] PGTABLE
+Aug 31 22:50:24 minifree kernel: [ 0.000000] BRK [0x01fe2000, 0x01fe2fff] PGTABLE
+Aug 31 22:50:24 minifree kernel: [ 0.000000] init_memory_mapping: [mem 0x7f400000-0x7f5fffff]
+Aug 31 22:50:24 minifree kernel: [ 0.000000] [mem 0x7f400000-0x7f5fffff] page 2M
+Aug 31 22:50:24 minifree kernel: [ 0.000000] BRK [0x01fe3000, 0x01fe3fff] PGTABLE
+Aug 31 22:50:24 minifree kernel: [ 0.000000] init_memory_mapping: [mem 0x7c000000-0x7f3fffff]
+Aug 31 22:50:24 minifree kernel: [ 0.000000] [mem 0x7c000000-0x7f3fffff] page 2M
+Aug 31 22:50:24 minifree kernel: [ 0.000000] init_memory_mapping: [mem 0x00100000-0x7bffffff]
+Aug 31 22:50:24 minifree kernel: [ 0.000000] [mem 0x00100000-0x001fffff] page 4k
+Aug 31 22:50:24 minifree kernel: [ 0.000000] [mem 0x00200000-0x7bffffff] page 2M
+Aug 31 22:50:24 minifree kernel: [ 0.000000] init_memory_mapping: [mem 0x7f600000-0x7f6d4fff]
+Aug 31 22:50:24 minifree kernel: [ 0.000000] [mem 0x7f600000-0x7f6d4fff] page 4k
+Aug 31 22:50:24 minifree kernel: [ 0.000000] BRK [0x01fe4000, 0x01fe4fff] PGTABLE
+Aug 31 22:50:24 minifree kernel: [ 0.000000] RAMDISK: [mem 0x35122000-0x36888fff]
+Aug 31 22:50:24 minifree kernel: [ 0.000000] ACPI: RSDP 00000000000f0800 000024 (v02 CORE )
+Aug 31 22:50:24 minifree kernel: [ 0.000000] ACPI: XSDT 000000007f7de0e0 00004C (v01 CORE COREBOOT 00000000 CORE 00000000)
+Aug 31 22:50:24 minifree kernel: [ 0.000000] ACPI: HPET 000000007f7de210 000038 (v01 CORE COREBOOT 00000000 CORE 00000000)
+Aug 31 22:50:24 minifree kernel: [ 0.000000] ACPI: APIC 000000007f7de250 000068 (v01 CORE COREBOOT 00000000 CORE 00000000)
+Aug 31 22:50:24 minifree kernel: [ 0.000000] ACPI: MCFG 000000007f7de2c0 00003C (v01 CORE COREBOOT 00000000 CORE 00000000)
+Aug 31 22:50:24 minifree kernel: [ 0.000000] ACPI: FACP 000000007f7e15c0 0000F4 (v03 CORE COREBOOT 00000000 CORE 00000000)
+Aug 31 22:50:24 minifree kernel: [ 0.000000] ACPI: DSDT 000000007f7de340 003171 (v03 COREv4 COREBOOT 20090419 INTL 20140114)
+Aug 31 22:50:24 minifree kernel: [ 0.000000] ACPI: FACS 000000007f7de300 000040
+Aug 31 22:50:24 minifree kernel: [ 0.000000] ACPI: SSDT 000000007f7e16c0 000306 (v02 CORE COREBOOT 0000002A CORE 0000002A)
+Aug 31 22:50:24 minifree kernel: [ 0.000000] ACPI: Local APIC address 0xfee00000
+Aug 31 22:50:24 minifree kernel: [ 0.000000] No NUMA configuration found
+Aug 31 22:50:24 minifree kernel: [ 0.000000] Faking a node at [mem 0x0000000000000000-0x000000007f6d4fff]
+Aug 31 22:50:24 minifree kernel: [ 0.000000] Initmem setup node 0 [mem 0x00000000-0x7f6d4fff]
+Aug 31 22:50:24 minifree kernel: [ 0.000000] NODE_DATA [mem 0x7f6d0000-0x7f6d4fff]
+Aug 31 22:50:24 minifree kernel: [ 0.000000] [ffffea0000000000-ffffea0001ffffff] PMD -> [ffff88007ce00000-ffff88007edfffff] on node 0
+Aug 31 22:50:24 minifree kernel: [ 0.000000] Zone ranges:
+Aug 31 22:50:24 minifree kernel: [ 0.000000] DMA [mem 0x00001000-0x00ffffff]
+Aug 31 22:50:24 minifree kernel: [ 0.000000] DMA32 [mem 0x01000000-0xffffffff]
+Aug 31 22:50:24 minifree kernel: [ 0.000000] Normal empty
+Aug 31 22:50:24 minifree kernel: [ 0.000000] Movable zone start for each node
+Aug 31 22:50:24 minifree kernel: [ 0.000000] Early memory node ranges
+Aug 31 22:50:24 minifree kernel: [ 0.000000] node 0: [mem 0x00001000-0x0009ffff]
+Aug 31 22:50:24 minifree kernel: [ 0.000000] node 0: [mem 0x00100000-0x7f6d4fff]
+Aug 31 22:50:24 minifree kernel: [ 0.000000] On node 0 totalpages: 521844
+Aug 31 22:50:24 minifree kernel: [ 0.000000] DMA zone: 64 pages used for memmap
+Aug 31 22:50:24 minifree kernel: [ 0.000000] DMA zone: 22 pages reserved
+Aug 31 22:50:24 minifree kernel: [ 0.000000] DMA zone: 3999 pages, LIFO batch:0
+Aug 31 22:50:24 minifree kernel: [ 0.000000] DMA32 zone: 8092 pages used for memmap
+Aug 31 22:50:24 minifree kernel: [ 0.000000] DMA32 zone: 517845 pages, LIFO batch:31
+Aug 31 22:50:24 minifree kernel: [ 0.000000] ACPI: PM-Timer IO Port: 0x508
+Aug 31 22:50:24 minifree kernel: [ 0.000000] ACPI: Local APIC address 0xfee00000
+Aug 31 22:50:24 minifree kernel: [ 0.000000] ACPI: LAPIC (acpi_id[0x00] lapic_id[0x00] enabled)
+Aug 31 22:50:24 minifree kernel: [ 0.000000] ACPI: LAPIC (acpi_id[0x01] lapic_id[0x01] enabled)
+Aug 31 22:50:24 minifree kernel: [ 0.000000] ACPI: LAPIC_NMI (acpi_id[0x00] high edge lint[0x1])
+Aug 31 22:50:24 minifree kernel: [ 0.000000] ACPI: LAPIC_NMI (acpi_id[0x01] high edge lint[0x1])
+Aug 31 22:50:24 minifree kernel: [ 0.000000] ACPI: IOAPIC (id[0x02] address[0xfec00000] gsi_base[0])
+Aug 31 22:50:24 minifree kernel: [ 0.000000] IOAPIC[0]: apic_id 2, version 32, address 0xfec00000, GSI 0-23
+Aug 31 22:50:24 minifree kernel: [ 0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 high edge)
+Aug 31 22:50:24 minifree kernel: [ 0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level)
+Aug 31 22:50:24 minifree kernel: [ 0.000000] ACPI: IRQ0 used by override.
+Aug 31 22:50:24 minifree kernel: [ 0.000000] ACPI: IRQ2 used by override.
+Aug 31 22:50:24 minifree kernel: [ 0.000000] ACPI: IRQ9 used by override.
+Aug 31 22:50:24 minifree kernel: [ 0.000000] Using ACPI (MADT) for SMP configuration information
+Aug 31 22:50:24 minifree kernel: [ 0.000000] ACPI: HPET id: 0x8086a201 base: 0xfed00000
+Aug 31 22:50:24 minifree kernel: [ 0.000000] smpboot: Allowing 2 CPUs, 0 hotplug CPUs
+Aug 31 22:50:24 minifree kernel: [ 0.000000] nr_irqs_gsi: 40
+Aug 31 22:50:24 minifree kernel: [ 0.000000] PM: Registered nosave memory: [mem 0x000a0000-0x000bffff]
+Aug 31 22:50:24 minifree kernel: [ 0.000000] PM: Registered nosave memory: [mem 0x000c0000-0x000fffff]
+Aug 31 22:50:24 minifree kernel: [ 0.000000] e820: [mem 0x80000000-0xefffffff] available for PCI devices
+Aug 31 22:50:24 minifree kernel: [ 0.000000] Booting paravirtualized kernel on bare hardware
+Aug 31 22:50:24 minifree kernel: [ 0.000000] setup_percpu: NR_CPUS:256 nr_cpumask_bits:256 nr_cpu_ids:2 nr_node_ids:1
+Aug 31 22:50:24 minifree kernel: [ 0.000000] PERCPU: Embedded 29 pages/cpu @ffff88007f400000 s86336 r8192 d24256 u1048576
+Aug 31 22:50:24 minifree kernel: [ 0.000000] pcpu-alloc: s86336 r8192 d24256 u1048576 alloc=1*2097152
+Aug 31 22:50:24 minifree kernel: [ 0.000000] pcpu-alloc: [0] 0 1
+Aug 31 22:50:24 minifree kernel: [ 0.000000] Built 1 zonelists in Node order, mobility grouping on. Total pages: 513666
+Aug 31 22:50:24 minifree kernel: [ 0.000000] Policy zone: DMA32
+Aug 31 22:50:24 minifree kernel: [ 0.000000] Kernel command line: BOOT_IMAGE=/vmlinuz root=/dev/mapper/buzz-distro cryptdevice=/dev/mapper/buzz-distro:root quiet splash drm.debug=0x06 ro
+Aug 31 22:50:24 minifree kernel: [ 0.000000] PID hash table entries: 4096 (order: 3, 32768 bytes)
+Aug 31 22:50:24 minifree kernel: [ 0.000000] Checking aperture...
+Aug 31 22:50:24 minifree kernel: [ 0.000000] No AGP bridge found
+Aug 31 22:50:24 minifree kernel: [ 0.000000] Calgary: detecting Calgary via BIOS EBDA area
+Aug 31 22:50:24 minifree kernel: [ 0.000000] Calgary: Unable to locate Rio Grande table in EBDA - bailing!
+Aug 31 22:50:24 minifree kernel: [ 0.000000] Memory: 2013772K/2087376K available (7391K kernel code, 1145K rwdata, 3416K rodata, 1336K init, 1440K bss, 73604K reserved)
+Aug 31 22:50:24 minifree kernel: [ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1
+Aug 31 22:50:24 minifree kernel: [ 0.000000] Hierarchical RCU implementation.
+Aug 31 22:50:24 minifree kernel: [ 0.000000] RCU dyntick-idle grace-period acceleration is enabled.
+Aug 31 22:50:24 minifree kernel: [ 0.000000] RCU restricting CPUs from NR_CPUS=256 to nr_cpu_ids=2.
+Aug 31 22:50:24 minifree kernel: [ 0.000000] Offload RCU callbacks from all CPUs
+Aug 31 22:50:24 minifree kernel: [ 0.000000] Offload RCU callbacks from CPUs: 0-1.
+Aug 31 22:50:24 minifree kernel: [ 0.000000] NR_IRQS:16640 nr_irqs:512 16
+Aug 31 22:50:24 minifree kernel: [ 0.000000] Console: colour VGA+ 80x25
+Aug 31 22:50:24 minifree kernel: [ 0.000000] console [tty0] enabled
+Aug 31 22:50:24 minifree kernel: [ 0.000000] allocated 8388608 bytes of page_cgroup
+Aug 31 22:50:24 minifree kernel: [ 0.000000] please try 'cgroup_disable=memory' option if you don't want memory cgroups
+Aug 31 22:50:24 minifree kernel: [ 0.000000] hpet clockevent registered
+Aug 31 22:50:24 minifree kernel: [ 0.000000] tsc: Fast TSC calibration using PIT
+Aug 31 22:50:24 minifree kernel: [ 0.000000] tsc: Detected 1496.227 MHz processor
+Aug 31 22:50:24 minifree kernel: [ 0.004006] Calibrating delay loop (skipped), value calculated using timer frequency.. 2992.45 BogoMIPS (lpj=5984908)
+Aug 31 22:50:24 minifree kernel: [ 0.004013] pid_max: default: 32768 minimum: 301
+Aug 31 22:50:24 minifree kernel: [ 0.004059] Security Framework initialized
+Aug 31 22:50:24 minifree kernel: [ 0.004095] AppArmor: AppArmor initialized
+Aug 31 22:50:24 minifree kernel: [ 0.004097] Yama: becoming mindful.
+Aug 31 22:50:24 minifree kernel: [ 0.004475] Dentry cache hash table entries: 262144 (order: 9, 2097152 bytes)
+Aug 31 22:50:24 minifree kernel: [ 0.008553] Inode-cache hash table entries: 131072 (order: 8, 1048576 bytes)
+Aug 31 22:50:24 minifree kernel: [ 0.009333] Mount-cache hash table entries: 4096 (order: 3, 32768 bytes)
+Aug 31 22:50:24 minifree kernel: [ 0.009340] Mountpoint-cache hash table entries: 4096 (order: 3, 32768 bytes)
+Aug 31 22:50:24 minifree kernel: [ 0.009749] Initializing cgroup subsys memory
+Aug 31 22:50:24 minifree kernel: [ 0.009764] Initializing cgroup subsys devices
+Aug 31 22:50:24 minifree kernel: [ 0.009767] Initializing cgroup subsys freezer
+Aug 31 22:50:24 minifree kernel: [ 0.009771] Initializing cgroup subsys blkio
+Aug 31 22:50:24 minifree kernel: [ 0.009775] Initializing cgroup subsys bfqio
+Aug 31 22:50:24 minifree kernel: [ 0.009778] Initializing cgroup subsys perf_event
+Aug 31 22:50:24 minifree kernel: [ 0.009783] Initializing cgroup subsys hugetlb
+Aug 31 22:50:24 minifree kernel: [ 0.009821] CPU: Physical Processor ID: 0
+Aug 31 22:50:24 minifree kernel: [ 0.009823] CPU: Processor Core ID: 0
+Aug 31 22:50:24 minifree kernel: [ 0.009827] mce: CPU supports 6 MCE banks
+Aug 31 22:50:24 minifree kernel: [ 0.009839] CPU0: Thermal monitoring enabled (TM2)
+Aug 31 22:50:24 minifree kernel: [ 0.009850] Last level iTLB entries: 4KB 128, 2MB 4, 4MB 4
+Aug 31 22:50:24 minifree kernel: [ 0.009850] Last level dTLB entries: 4KB 256, 2MB 0, 4MB 32
+Aug 31 22:50:24 minifree kernel: [ 0.009850] tlb_flushall_shift: -1
+Aug 31 22:50:24 minifree kernel: [ 0.010001] Freeing SMP alternatives memory: 32K (ffffffff81e6e000 - ffffffff81e76000)
+Aug 31 22:50:24 minifree kernel: [ 0.012383] ACPI: Core revision 20131115
+Aug 31 22:50:24 minifree kernel: [ 0.015473] ACPI: All ACPI Tables successfully acquired
+Aug 31 22:50:24 minifree kernel: [ 0.016025] ftrace: allocating 28599 entries in 112 pages
+Aug 31 22:50:24 minifree kernel: [ 0.028599] ..TIMER: vector=0x30 apic1=0 pin1=2 apic2=-1 pin2=-1
+Aug 31 22:50:24 minifree kernel: [ 0.070880] smpboot: CPU0: Intel(R) Core(TM)2 CPU L7400 @ 1.50GHz (fam: 06, model: 0f, stepping: 06)
+Aug 31 22:50:24 minifree kernel: [ 0.072000] Performance Events: PEBS fmt0-, 4-deep LBR, Core2 events, Intel PMU driver.
+Aug 31 22:50:24 minifree kernel: [ 0.072000] perf_event_intel: PEBS disabled due to CPU errata
+Aug 31 22:50:24 minifree kernel: [ 0.072000] ... version: 2
+Aug 31 22:50:24 minifree kernel: [ 0.072000] ... bit width: 40
+Aug 31 22:50:24 minifree kernel: [ 0.072000] ... generic registers: 2
+Aug 31 22:50:24 minifree kernel: [ 0.072000] ... value mask: 000000ffffffffff
+Aug 31 22:50:24 minifree kernel: [ 0.072000] ... max period: 000000007fffffff
+Aug 31 22:50:24 minifree kernel: [ 0.072000] ... fixed-purpose events: 3
+Aug 31 22:50:24 minifree kernel: [ 0.072000] ... event mask: 0000000700000003
+Aug 31 22:50:24 minifree kernel: [ 0.072000] x86: Booting SMP configuration:
+Aug 31 22:50:24 minifree kernel: [ 0.072000] .... node #0, CPUs: #1
+Aug 31 22:50:24 minifree kernel: [ 0.084066] x86: Booted up 1 node, 2 CPUs
+Aug 31 22:50:24 minifree kernel: [ 0.084074] smpboot: Total of 2 processors activated (5984.90 BogoMIPS)
+Aug 31 22:50:24 minifree kernel: [ 0.084177] NMI watchdog: enabled on all CPUs, permanently consumes one hw-PMU counter.
+Aug 31 22:50:24 minifree kernel: [ 0.088071] devtmpfs: initialized
+Aug 31 22:50:24 minifree kernel: [ 0.098352] EVM: security.selinux
+Aug 31 22:50:24 minifree kernel: [ 0.098355] EVM: security.SMACK64
+Aug 31 22:50:24 minifree kernel: [ 0.098357] EVM: security.ima
+Aug 31 22:50:24 minifree kernel: [ 0.098359] EVM: security.capability
+Aug 31 22:50:24 minifree kernel: [ 0.100096] pinctrl core: initialized pinctrl subsystem
+Aug 31 22:50:24 minifree kernel: [ 0.100211] regulator-dummy: no parameters
+Aug 31 22:50:24 minifree kernel: [ 0.100257] RTC time: 21:49:54, date: 08/31/14
+Aug 31 22:50:24 minifree kernel: [ 0.100319] NET: Registered protocol family 16
+Aug 31 22:50:24 minifree kernel: [ 0.100522] cpuidle: using governor ladder
+Aug 31 22:50:24 minifree kernel: [ 0.100525] cpuidle: using governor menu
+Aug 31 22:50:24 minifree kernel: [ 0.100592] ACPI: bus type PCI registered
+Aug 31 22:50:24 minifree kernel: [ 0.100595] acpiphp: ACPI Hot Plug PCI Controller Driver version: 0.5
+Aug 31 22:50:24 minifree kernel: [ 0.100691] PCI: MMCONFIG for domain 0000 [bus 00-3f] at [mem 0xf0000000-0xf3ffffff] (base 0xf0000000)
+Aug 31 22:50:24 minifree kernel: [ 0.100695] PCI: MMCONFIG at [mem 0xf0000000-0xf3ffffff] reserved in E820
+Aug 31 22:50:24 minifree kernel: [ 0.105678] PCI: Using configuration type 1 for base access
+Aug 31 22:50:24 minifree kernel: [ 0.108094] bio: create slab <bio-0> at 0
+Aug 31 22:50:24 minifree kernel: [ 0.108141] ACPI: Added _OSI(Module Device)
+Aug 31 22:50:24 minifree kernel: [ 0.108144] ACPI: Added _OSI(Processor Device)
+Aug 31 22:50:24 minifree kernel: [ 0.108147] ACPI: Added _OSI(3.0 _SCP Extensions)
+Aug 31 22:50:24 minifree kernel: [ 0.108149] ACPI: Added _OSI(Processor Aggregator Device)
+Aug 31 22:50:24 minifree kernel: [ 0.111400] [Firmware Bug]: ACPI: BIOS _OSI(Linux) query ignored
+Aug 31 22:50:24 minifree kernel: [ 0.111850] ACPI: Interpreter enabled
+Aug 31 22:50:24 minifree kernel: [ 0.111859] ACPI Exception: AE_NOT_FOUND, While evaluating Sleep State [\_S1_] (20131115/hwxface-580)
+Aug 31 22:50:24 minifree kernel: [ 0.111867] ACPI Exception: AE_NOT_FOUND, While evaluating Sleep State [\_S2_] (20131115/hwxface-580)
+Aug 31 22:50:24 minifree kernel: [ 0.111889] ACPI: (supports S0 S3 S4 S5)
+Aug 31 22:50:24 minifree kernel: [ 0.111892] ACPI: Using IOAPIC for interrupt routing
+Aug 31 22:50:24 minifree kernel: [ 0.111927] PCI: Using host bridge windows from ACPI; if necessary, use "pci=nocrs" and report a bug
+Aug 31 22:50:24 minifree kernel: [ 0.112256] ACPI: ACPI Dock Station Driver: 1 docks/bays found
+Aug 31 22:50:24 minifree kernel: [ 0.121379] ACPI: PCI Root Bridge [PCI0] (domain 0000 [bus 00-ff])
+Aug 31 22:50:24 minifree kernel: [ 0.121389] acpi PNP0A08:00: _OSC: OS supports [ExtendedConfig ASPM ClockPM Segments MSI]
+Aug 31 22:50:24 minifree kernel: [ 0.121498] acpi PNP0A08:00: _OSC: OS now controls [PCIeHotplug PME AER PCIeCapability]
+Aug 31 22:50:24 minifree kernel: [ 0.121642] acpi PNP0A08:00: [Firmware Info]: MMCONFIG for domain 0000 [bus 00-3f] only partially covers this bridge
+Aug 31 22:50:24 minifree kernel: [ 0.121922] PCI host bridge to bus 0000:00
+Aug 31 22:50:24 minifree kernel: [ 0.121927] pci_bus 0000:00: root bus resource [bus 00-ff]
+Aug 31 22:50:24 minifree kernel: [ 0.121931] pci_bus 0000:00: root bus resource [io 0x0000-0x0cf7]
+Aug 31 22:50:24 minifree kernel: [ 0.121935] pci_bus 0000:00: root bus resource [io 0x0d00-0xffff]
+Aug 31 22:50:24 minifree kernel: [ 0.121938] pci_bus 0000:00: root bus resource [mem 0x000a0000-0x000bffff]
+Aug 31 22:50:24 minifree kernel: [ 0.121942] pci_bus 0000:00: root bus resource [mem 0x000c0000-0x000c3fff]
+Aug 31 22:50:24 minifree kernel: [ 0.121945] pci_bus 0000:00: root bus resource [mem 0x000c4000-0x000c7fff]
+Aug 31 22:50:24 minifree kernel: [ 0.121948] pci_bus 0000:00: root bus resource [mem 0x000c8000-0x000cbfff]
+Aug 31 22:50:24 minifree kernel: [ 0.121951] pci_bus 0000:00: root bus resource [mem 0x000cc000-0x000cffff]
+Aug 31 22:50:24 minifree kernel: [ 0.121955] pci_bus 0000:00: root bus resource [mem 0x000d0000-0x000d3fff]
+Aug 31 22:50:24 minifree kernel: [ 0.121958] pci_bus 0000:00: root bus resource [mem 0x000d4000-0x000d7fff]
+Aug 31 22:50:24 minifree kernel: [ 0.121961] pci_bus 0000:00: root bus resource [mem 0x000d8000-0x000dbfff]
+Aug 31 22:50:24 minifree kernel: [ 0.121965] pci_bus 0000:00: root bus resource [mem 0x000dc000-0x000dffff]
+Aug 31 22:50:24 minifree kernel: [ 0.121968] pci_bus 0000:00: root bus resource [mem 0x000e0000-0x000e3fff]
+Aug 31 22:50:24 minifree kernel: [ 0.121971] pci_bus 0000:00: root bus resource [mem 0x000e4000-0x000e7fff]
+Aug 31 22:50:24 minifree kernel: [ 0.121975] pci_bus 0000:00: root bus resource [mem 0x000e8000-0x000ebfff]
+Aug 31 22:50:24 minifree kernel: [ 0.121978] pci_bus 0000:00: root bus resource [mem 0x000ec000-0x000effff]
+Aug 31 22:50:24 minifree kernel: [ 0.121981] pci_bus 0000:00: root bus resource [mem 0x000f0000-0x000fffff]
+Aug 31 22:50:24 minifree kernel: [ 0.121985] pci_bus 0000:00: root bus resource [mem 0x80000000-0xfebfffff]
+Aug 31 22:50:24 minifree kernel: [ 0.121988] pci_bus 0000:00: root bus resource [mem 0xfed40000-0xfed44fff]
+Aug 31 22:50:24 minifree kernel: [ 0.122002] pci 0000:00:00.0: [8086:27a0] type 00 class 0x060000
+Aug 31 22:50:24 minifree kernel: [ 0.122153] pci 0000:00:02.0: [8086:27a2] type 00 class 0x030000
+Aug 31 22:50:24 minifree kernel: [ 0.122170] pci 0000:00:02.0: reg 0x10: [mem 0xe4200000-0xe427ffff]
+Aug 31 22:50:24 minifree kernel: [ 0.122179] pci 0000:00:02.0: reg 0x14: [io 0x50a0-0x50a7]
+Aug 31 22:50:24 minifree kernel: [ 0.122188] pci 0000:00:02.0: reg 0x18: [mem 0xd0000000-0xdfffffff pref]
+Aug 31 22:50:24 minifree kernel: [ 0.122198] pci 0000:00:02.0: reg 0x1c: [mem 0xe4300000-0xe433ffff]
+Aug 31 22:50:24 minifree kernel: [ 0.122338] pci 0000:00:02.1: [8086:27a6] type 00 class 0x038000
+Aug 31 22:50:24 minifree kernel: [ 0.122352] pci 0000:00:02.1: reg 0x10: [mem 0xe4280000-0xe42fffff]
+Aug 31 22:50:24 minifree kernel: [ 0.122564] pci 0000:00:1b.0: [8086:27d8] type 00 class 0x040300
+Aug 31 22:50:24 minifree kernel: [ 0.122591] pci 0000:00:1b.0: reg 0x10: [mem 0xe4340000-0xe4343fff 64bit]
+Aug 31 22:50:24 minifree kernel: [ 0.122706] pci 0000:00:1b.0: PME# supported from D0 D3hot D3cold
+Aug 31 22:50:24 minifree kernel: [ 0.122785] pci 0000:00:1b.0: System wakeup disabled by ACPI
+Aug 31 22:50:24 minifree kernel: [ 0.122842] pci 0000:00:1c.0: [8086:27d0] type 01 class 0x060400
+Aug 31 22:50:24 minifree kernel: [ 0.122964] pci 0000:00:1c.0: PME# supported from D0 D3hot D3cold
+Aug 31 22:50:24 minifree kernel: [ 0.123100] pci 0000:00:1c.1: [8086:27d2] type 01 class 0x060400
+Aug 31 22:50:24 minifree kernel: [ 0.123210] pci 0000:00:1c.1: PME# supported from D0 D3hot D3cold
+Aug 31 22:50:24 minifree kernel: [ 0.123337] pci 0000:00:1c.2: [8086:27d4] type 01 class 0x060400
+Aug 31 22:50:24 minifree kernel: [ 0.123447] pci 0000:00:1c.2: PME# supported from D0 D3hot D3cold
+Aug 31 22:50:24 minifree kernel: [ 0.123579] pci 0000:00:1c.3: [8086:27d6] type 01 class 0x060400
+Aug 31 22:50:24 minifree kernel: [ 0.123689] pci 0000:00:1c.3: PME# supported from D0 D3hot D3cold
+Aug 31 22:50:24 minifree kernel: [ 0.123817] pci 0000:00:1d.0: [8086:27c8] type 00 class 0x0c0300
+Aug 31 22:50:24 minifree kernel: [ 0.123881] pci 0000:00:1d.0: reg 0x20: [io 0x5000-0x501f]
+Aug 31 22:50:24 minifree kernel: [ 0.124006] pci 0000:00:1d.0: System wakeup disabled by ACPI
+Aug 31 22:50:24 minifree kernel: [ 0.124057] pci 0000:00:1d.1: [8086:27c9] type 00 class 0x0c0300
+Aug 31 22:50:24 minifree kernel: [ 0.124120] pci 0000:00:1d.1: reg 0x20: [io 0x5020-0x503f]
+Aug 31 22:50:24 minifree kernel: [ 0.124236] pci 0000:00:1d.1: System wakeup disabled by ACPI
+Aug 31 22:50:24 minifree kernel: [ 0.124286] pci 0000:00:1d.2: [8086:27ca] type 00 class 0x0c0300
+Aug 31 22:50:24 minifree kernel: [ 0.124349] pci 0000:00:1d.2: reg 0x20: [io 0x5040-0x505f]
+Aug 31 22:50:24 minifree kernel: [ 0.124464] pci 0000:00:1d.2: System wakeup disabled by ACPI
+Aug 31 22:50:24 minifree kernel: [ 0.124515] pci 0000:00:1d.3: [8086:27cb] type 00 class 0x0c0300
+Aug 31 22:50:24 minifree kernel: [ 0.124578] pci 0000:00:1d.3: reg 0x20: [io 0x5060-0x507f]
+Aug 31 22:50:24 minifree kernel: [ 0.124695] pci 0000:00:1d.3: System wakeup disabled by ACPI
+Aug 31 22:50:24 minifree kernel: [ 0.124759] pci 0000:00:1d.7: [8086:27cc] type 00 class 0x0c0320
+Aug 31 22:50:24 minifree kernel: [ 0.124787] pci 0000:00:1d.7: reg 0x10: [mem 0xe4344000-0xe43443ff]
+Aug 31 22:50:24 minifree kernel: [ 0.124905] pci 0000:00:1d.7: PME# supported from D0 D3hot D3cold
+Aug 31 22:50:24 minifree kernel: [ 0.124978] pci 0000:00:1d.7: System wakeup disabled by ACPI
+Aug 31 22:50:24 minifree kernel: [ 0.125032] pci 0000:00:1e.0: [8086:2448] type 01 class 0x060401
+Aug 31 22:50:24 minifree kernel: [ 0.125214] pci 0000:00:1f.0: [8086:27b9] type 00 class 0x060100
+Aug 31 22:50:24 minifree kernel: [ 0.125339] pci 0000:00:1f.0: address space collision: [io 0x0500-0x057f] conflicts with ACPI CPU throttle [??? 0x00000510-0x00000515 flags 0x80000000]
+Aug 31 22:50:24 minifree kernel: [ 0.125347] pci 0000:00:1f.0: quirk: [io 0x0480-0x04bf] claimed by ICH6 GPIO
+Aug 31 22:50:24 minifree kernel: [ 0.125353] pci 0000:00:1f.0: ICH7 LPC Generic IO decode 1 PIO at 1600 (mask 007f)
+Aug 31 22:50:24 minifree kernel: [ 0.125359] pci 0000:00:1f.0: ICH7 LPC Generic IO decode 2 PIO at 15e0 (mask 000f)
+Aug 31 22:50:24 minifree kernel: [ 0.125364] pci 0000:00:1f.0: ICH7 LPC Generic IO decode 3 PIO at 1680 (mask 001f)
+Aug 31 22:50:24 minifree kernel: [ 0.125515] pci 0000:00:1f.1: [8086:27df] type 00 class 0x01018a
+Aug 31 22:50:24 minifree kernel: [ 0.125535] pci 0000:00:1f.1: reg 0x10: [io 0x50a8-0x50af]
+Aug 31 22:50:24 minifree kernel: [ 0.125550] pci 0000:00:1f.1: reg 0x14: [io 0x50c8-0x50cb]
+Aug 31 22:50:24 minifree kernel: [ 0.125564] pci 0000:00:1f.1: reg 0x18: [io 0x50b0-0x50b7]
+Aug 31 22:50:24 minifree kernel: [ 0.125578] pci 0000:00:1f.1: reg 0x1c: [io 0x50cc-0x50cf]
+Aug 31 22:50:24 minifree kernel: [ 0.125592] pci 0000:00:1f.1: reg 0x20: [io 0x5080-0x508f]
+Aug 31 22:50:24 minifree kernel: [ 0.125736] pci 0000:00:1f.2: [8086:27c5] type 00 class 0x010601
+Aug 31 22:50:24 minifree kernel: [ 0.125764] pci 0000:00:1f.2: reg 0x10: [io 0x50b8-0x50bf]
+Aug 31 22:50:24 minifree kernel: [ 0.125777] pci 0000:00:1f.2: reg 0x14: [io 0x50d0-0x50d3]
+Aug 31 22:50:24 minifree kernel: [ 0.125792] pci 0000:00:1f.2: reg 0x18: [io 0x50c0-0x50c7]
+Aug 31 22:50:24 minifree kernel: [ 0.125806] pci 0000:00:1f.2: reg 0x1c: [io 0x50d4-0x50d7]
+Aug 31 22:50:24 minifree kernel: [ 0.125820] pci 0000:00:1f.2: reg 0x20: [io 0x5090-0x509f]
+Aug 31 22:50:24 minifree kernel: [ 0.125835] pci 0000:00:1f.2: reg 0x24: [mem 0xe4344400-0xe43447ff]
+Aug 31 22:50:24 minifree kernel: [ 0.125899] pci 0000:00:1f.2: PME# supported from D3hot
+Aug 31 22:50:24 minifree kernel: [ 0.126016] pci 0000:00:1f.3: [8086:27da] type 00 class 0x0c0500
+Aug 31 22:50:24 minifree kernel: [ 0.126096] pci 0000:00:1f.3: reg 0x20: [io 0x0400-0x041f]
+Aug 31 22:50:24 minifree kernel: [ 0.126355] pci 0000:01:00.0: [8086:109a] type 00 class 0x020000
+Aug 31 22:50:24 minifree kernel: [ 0.126389] pci 0000:01:00.0: reg 0x10: [mem 0xe4100000-0xe411ffff]
+Aug 31 22:50:24 minifree kernel: [ 0.126434] pci 0000:01:00.0: reg 0x18: [io 0x4000-0x401f]
+Aug 31 22:50:24 minifree kernel: [ 0.126628] pci 0000:01:00.0: PME# supported from D0 D3hot D3cold
+Aug 31 22:50:24 minifree kernel: [ 0.126710] pci 0000:01:00.0: disabling ASPM on pre-1.1 PCIe device. You can enable it with 'pcie_aspm=force'
+Aug 31 22:50:24 minifree kernel: [ 0.126731] pci 0000:00:1c.0: PCI bridge to [bus 01]
+Aug 31 22:50:24 minifree kernel: [ 0.126737] pci 0000:00:1c.0: bridge window [io 0x4000-0x4fff]
+Aug 31 22:50:24 minifree kernel: [ 0.126744] pci 0000:00:1c.0: bridge window [mem 0xe4100000-0xe41fffff]
+Aug 31 22:50:24 minifree kernel: [ 0.126838] pci 0000:00:1c.1: PCI bridge to [bus 02]
+Aug 31 22:50:24 minifree kernel: [ 0.126938] pci 0000:00:1c.2: PCI bridge to [bus 03]
+Aug 31 22:50:24 minifree kernel: [ 0.127032] pci 0000:00:1c.3: PCI bridge to [bus 04]
+Aug 31 22:50:24 minifree kernel: [ 0.127187] pci 0000:05:00.0: [1180:0476] type 02 class 0x060700
+Aug 31 22:50:24 minifree kernel: [ 0.127210] pci 0000:05:00.0: proprietary Ricoh MMC controller disabled (via cardbus function)
+Aug 31 22:50:24 minifree kernel: [ 0.127213] pci 0000:05:00.0: MMC cards are now supported by standard SDHCI controller
+Aug 31 22:50:24 minifree kernel: [ 0.127233] pci 0000:05:00.0: reg 0x10: [mem 0xe2000000-0xe2000fff]
+Aug 31 22:50:24 minifree kernel: [ 0.127274] pci 0000:05:00.0: supports D1 D2
+Aug 31 22:50:24 minifree kernel: [ 0.127278] pci 0000:05:00.0: PME# supported from D0 D1 D2 D3hot D3cold
+Aug 31 22:50:24 minifree kernel: [ 0.127318] pci 0000:05:00.0: System wakeup disabled by ACPI
+Aug 31 22:50:24 minifree kernel: [ 0.127377] pci 0000:05:00.1: [1180:0552] type 00 class 0x0c0010
+Aug 31 22:50:24 minifree kernel: [ 0.127403] pci 0000:05:00.1: reg 0x10: [mem 0xe2001000-0xe20017ff]
+Aug 31 22:50:24 minifree kernel: [ 0.127512] pci 0000:05:00.1: supports D1 D2
+Aug 31 22:50:24 minifree kernel: [ 0.127516] pci 0000:05:00.1: PME# supported from D0 D1 D2 D3hot D3cold
+Aug 31 22:50:24 minifree kernel: [ 0.127599] pci 0000:05:00.2: [1180:0822] type 00 class 0x080500
+Aug 31 22:50:24 minifree kernel: [ 0.127626] pci 0000:05:00.2: reg 0x10: [mem 0xe2001800-0xe20018ff]
+Aug 31 22:50:24 minifree kernel: [ 0.127736] pci 0000:05:00.2: supports D1 D2
+Aug 31 22:50:24 minifree kernel: [ 0.127740] pci 0000:05:00.2: PME# supported from D0 D1 D2 D3hot D3cold
+Aug 31 22:50:24 minifree kernel: [ 0.127880] pci 0000:00:1e.0: PCI bridge to [bus 05-06] (subtractive decode)
+Aug 31 22:50:24 minifree kernel: [ 0.127887] pci 0000:00:1e.0: bridge window [io 0x2000-0x3fff]
+Aug 31 22:50:24 minifree kernel: [ 0.127894] pci 0000:00:1e.0: bridge window [mem 0xe0000000-0xe20fffff]
+Aug 31 22:50:24 minifree kernel: [ 0.127904] pci 0000:00:1e.0: bridge window [mem 0xe2100000-0xe40fffff 64bit pref]
+Aug 31 22:50:24 minifree kernel: [ 0.127908] pci 0000:00:1e.0: bridge window [io 0x0000-0x0cf7] (subtractive decode)
+Aug 31 22:50:24 minifree kernel: [ 0.127911] pci 0000:00:1e.0: bridge window [io 0x0d00-0xffff] (subtractive decode)
+Aug 31 22:50:24 minifree kernel: [ 0.127915] pci 0000:00:1e.0: bridge window [mem 0x000a0000-0x000bffff] (subtractive decode)
+Aug 31 22:50:24 minifree kernel: [ 0.127918] pci 0000:00:1e.0: bridge window [mem 0x000c0000-0x000c3fff] (subtractive decode)
+Aug 31 22:50:24 minifree kernel: [ 0.127922] pci 0000:00:1e.0: bridge window [mem 0x000c4000-0x000c7fff] (subtractive decode)
+Aug 31 22:50:24 minifree kernel: [ 0.127925] pci 0000:00:1e.0: bridge window [mem 0x000c8000-0x000cbfff] (subtractive decode)
+Aug 31 22:50:24 minifree kernel: [ 0.127928] pci 0000:00:1e.0: bridge window [mem 0x000cc000-0x000cffff] (subtractive decode)
+Aug 31 22:50:24 minifree kernel: [ 0.127932] pci 0000:00:1e.0: bridge window [mem 0x000d0000-0x000d3fff] (subtractive decode)
+Aug 31 22:50:24 minifree kernel: [ 0.127935] pci 0000:00:1e.0: bridge window [mem 0x000d4000-0x000d7fff] (subtractive decode)
+Aug 31 22:50:24 minifree kernel: [ 0.127938] pci 0000:00:1e.0: bridge window [mem 0x000d8000-0x000dbfff] (subtractive decode)
+Aug 31 22:50:24 minifree kernel: [ 0.127942] pci 0000:00:1e.0: bridge window [mem 0x000dc000-0x000dffff] (subtractive decode)
+Aug 31 22:50:24 minifree kernel: [ 0.127945] pci 0000:00:1e.0: bridge window [mem 0x000e0000-0x000e3fff] (subtractive decode)
+Aug 31 22:50:24 minifree kernel: [ 0.127949] pci 0000:00:1e.0: bridge window [mem 0x000e4000-0x000e7fff] (subtractive decode)
+Aug 31 22:50:24 minifree kernel: [ 0.127952] pci 0000:00:1e.0: bridge window [mem 0x000e8000-0x000ebfff] (subtractive decode)
+Aug 31 22:50:24 minifree kernel: [ 0.127955] pci 0000:00:1e.0: bridge window [mem 0x000ec000-0x000effff] (subtractive decode)
+Aug 31 22:50:24 minifree kernel: [ 0.127959] pci 0000:00:1e.0: bridge window [mem 0x000f0000-0x000fffff] (subtractive decode)
+Aug 31 22:50:24 minifree kernel: [ 0.127962] pci 0000:00:1e.0: bridge window [mem 0x80000000-0xfebfffff] (subtractive decode)
+Aug 31 22:50:24 minifree kernel: [ 0.127966] pci 0000:00:1e.0: bridge window [mem 0xfed40000-0xfed44fff] (subtractive decode)
+Aug 31 22:50:24 minifree kernel: [ 0.128041] pci_bus 0000:06: busn_res: can not insert [bus 06-ff] under [bus 05-06] (conflicts with (null) [bus 05-06])
+Aug 31 22:50:24 minifree kernel: [ 0.128049] pci_bus 0000:06: busn_res: [bus 06-ff] end is updated to 09
+Aug 31 22:50:24 minifree kernel: [ 0.128053] pci_bus 0000:06: busn_res: can not insert [bus 06-09] under [bus 05-06] (conflicts with (null) [bus 05-06])
+Aug 31 22:50:24 minifree kernel: [ 0.128060] pci_bus 0000:06: [bus 06-09] partially hidden behind transparent bridge 0000:05 [bus 05-06]
+Aug 31 22:50:24 minifree kernel: [ 0.128336] ACPI: PCI Interrupt Link [LNKA] (IRQs 1 3 4 5 6 7 10 12 14 15) *11
+Aug 31 22:50:24 minifree kernel: [ 0.128426] ACPI: PCI Interrupt Link [LNKB] (IRQs 1 3 4 5 6 7 *11 12 14 15)
+Aug 31 22:50:24 minifree kernel: [ 0.128512] ACPI: PCI Interrupt Link [LNKC] (IRQs 1 3 4 5 6 7 10 12 14 15) *11
+Aug 31 22:50:24 minifree kernel: [ 0.128597] ACPI: PCI Interrupt Link [LNKD] (IRQs 1 3 4 5 6 7 *11 12 14 15)
+Aug 31 22:50:24 minifree kernel: [ 0.128682] ACPI: PCI Interrupt Link [LNKE] (IRQs 1 3 4 5 6 7 10 12 14 15) *11
+Aug 31 22:50:24 minifree kernel: [ 0.128766] ACPI: PCI Interrupt Link [LNKF] (IRQs 1 3 4 5 6 7 *11 12 14 15)
+Aug 31 22:50:24 minifree kernel: [ 0.128850] ACPI: PCI Interrupt Link [LNKG] (IRQs 1 3 4 5 6 7 10 12 14 15) *11
+Aug 31 22:50:24 minifree kernel: [ 0.128935] ACPI: PCI Interrupt Link [LNKH] (IRQs 1 3 4 5 6 7 *11 12 14 15)
+Aug 31 22:50:24 minifree kernel: [ 0.129051] ACPI: \_SB_.PCI0: notify handler is installed
+Aug 31 22:50:24 minifree kernel: [ 0.129051] Found 1 acpi root devices
+Aug 31 22:50:24 minifree kernel: [ 0.129051] ACPI : EC: GPE = 0x1c, I/O: command/status = 0x66, data = 0x62
+Aug 31 22:50:24 minifree kernel: [ 0.129051] vgaarb: device added: PCI:0000:00:02.0,decodes=io+mem,owns=io+mem,locks=none
+Aug 31 22:50:24 minifree kernel: [ 0.129051] vgaarb: loaded
+Aug 31 22:50:24 minifree kernel: [ 0.129051] vgaarb: bridge control possible 0000:00:02.0
+Aug 31 22:50:24 minifree kernel: [ 0.129051] SCSI subsystem initialized
+Aug 31 22:50:24 minifree kernel: [ 0.129051] libata version 3.00 loaded.
+Aug 31 22:50:24 minifree kernel: [ 0.129051] ACPI: bus type USB registered
+Aug 31 22:50:24 minifree kernel: [ 0.129051] usbcore: registered new interface driver usbfs
+Aug 31 22:50:24 minifree kernel: [ 0.129051] usbcore: registered new interface driver hub
+Aug 31 22:50:24 minifree kernel: [ 0.129051] usbcore: registered new device driver usb
+Aug 31 22:50:24 minifree kernel: [ 0.129051] PCI: Using ACPI for IRQ routing
+Aug 31 22:50:24 minifree kernel: [ 0.133275] PCI: pci_cache_line_size set to 64 bytes
+Aug 31 22:50:24 minifree kernel: [ 0.133369] e820: reserve RAM buffer [mem 0x7f6d5000-0x7fffffff]
+Aug 31 22:50:24 minifree kernel: [ 0.133506] NetLabel: Initializing
+Aug 31 22:50:24 minifree kernel: [ 0.133509] NetLabel: domain hash size = 128
+Aug 31 22:50:24 minifree kernel: [ 0.133510] NetLabel: protocols = UNLABELED CIPSOv4
+Aug 31 22:50:24 minifree kernel: [ 0.133537] NetLabel: unlabeled traffic allowed by default
+Aug 31 22:50:24 minifree kernel: [ 0.133557] HPET: 3 timers in total, 0 timers will be used for per-cpu timer
+Aug 31 22:50:24 minifree kernel: [ 0.133557] hpet0: at MMIO 0xfed00000, IRQs 2, 8, 0
+Aug 31 22:50:24 minifree kernel: [ 0.133557] hpet0: 3 comparators, 64-bit 14.318180 MHz counter
+Aug 31 22:50:24 minifree kernel: [ 0.134098] Switched to clocksource hpet
+Aug 31 22:50:24 minifree kernel: [ 0.142214] AppArmor: AppArmor Filesystem Enabled
+Aug 31 22:50:24 minifree kernel: [ 0.142264] pnp: PnP ACPI init
+Aug 31 22:50:24 minifree kernel: [ 0.142291] ACPI: bus type PNP registered
+Aug 31 22:50:24 minifree kernel: [ 0.142445] system 00:00: [mem 0xfed1c000-0xfed1ffff] has been reserved
+Aug 31 22:50:24 minifree kernel: [ 0.142450] system 00:00: [mem 0xfed14000-0xfed17fff] has been reserved
+Aug 31 22:50:24 minifree kernel: [ 0.142454] system 00:00: [mem 0xfed18000-0xfed18fff] has been reserved
+Aug 31 22:50:24 minifree kernel: [ 0.142458] system 00:00: [mem 0xfed19000-0xfed19fff] has been reserved
+Aug 31 22:50:24 minifree kernel: [ 0.142462] system 00:00: [mem 0xf0000000-0xf3ffffff] has been reserved
+Aug 31 22:50:24 minifree kernel: [ 0.142466] system 00:00: [mem 0xfed20000-0xfed3ffff] has been reserved
+Aug 31 22:50:24 minifree kernel: [ 0.142470] system 00:00: [mem 0xfed40000-0xfed44fff] has been reserved
+Aug 31 22:50:24 minifree kernel: [ 0.142474] system 00:00: [mem 0xfed45000-0xfed8ffff] has been reserved
+Aug 31 22:50:24 minifree kernel: [ 0.142481] system 00:00: Plug and Play ACPI device, IDs PNP0c02 (active)
+Aug 31 22:50:24 minifree kernel: [ 0.143002] pnp 00:01: [dma 4]
+Aug 31 22:50:24 minifree kernel: [ 0.143047] pnp 00:01: Plug and Play ACPI device, IDs PNP0200 (active)
+Aug 31 22:50:24 minifree kernel: [ 0.143092] pnp 00:02: Plug and Play ACPI device, IDs INT0800 (active)
+Aug 31 22:50:24 minifree kernel: [ 0.143244] system 00:03: [mem 0xfed00000-0xfed003ff] has been reserved
+Aug 31 22:50:24 minifree kernel: [ 0.143250] system 00:03: Plug and Play ACPI device, IDs PNP0103 PNP0c01 (active)
+Aug 31 22:50:24 minifree kernel: [ 0.143320] pnp 00:04: Plug and Play ACPI device, IDs PNP0c04 (active)
+Aug 31 22:50:24 minifree kernel: [ 0.143397] system 00:05: [io 0x0800-0x080f] has been reserved
+Aug 31 22:50:24 minifree kernel: [ 0.143402] system 00:05: [io 0x0500-0x057f] could not be reserved
+Aug 31 22:50:24 minifree kernel: [ 0.143406] system 00:05: [io 0x0480-0x04bf] has been reserved
+Aug 31 22:50:24 minifree kernel: [ 0.143411] system 00:05: Plug and Play ACPI device, IDs PNP0c02 (active)
+Aug 31 22:50:24 minifree kernel: [ 0.143463] pnp 00:06: Plug and Play ACPI device, IDs PNP0b00 (active)
+Aug 31 22:50:24 minifree kernel: [ 0.143529] pnp 00:07: Plug and Play ACPI device, IDs PNP0303 PNP030b (active)
+Aug 31 22:50:24 minifree kernel: [ 0.143593] pnp 00:08: Plug and Play ACPI device, IDs PNP0f13 (active)
+Aug 31 22:50:24 minifree kernel: [ 0.143654] pnp 00:09: Plug and Play ACPI device, IDs PNP0501 (active)
+Aug 31 22:50:24 minifree kernel: [ 0.143699] pnp: PnP ACPI: found 10 devices
+Aug 31 22:50:24 minifree kernel: [ 0.143702] ACPI: bus type PNP unregistered
+Aug 31 22:50:24 minifree kernel: [ 0.151684] pci 0000:00:1c.0: bridge window [mem 0x00100000-0x000fffff 64bit pref] to [bus 01] add_size 200000
+Aug 31 22:50:24 minifree kernel: [ 0.151738] pci 0000:00:1f.0: BAR 13: [io 0x0500-0x057f] has bogus alignment
+Aug 31 22:50:24 minifree kernel: [ 0.151744] pci 0000:00:1c.0: res[15]=[mem 0x00100000-0x000fffff 64bit pref] get_res_add_size add_size 200000
+Aug 31 22:50:24 minifree kernel: [ 0.151755] pci 0000:00:1c.0: BAR 15: assigned [mem 0x80000000-0x801fffff 64bit pref]
+Aug 31 22:50:24 minifree kernel: [ 0.151759] pci 0000:00:1c.0: PCI bridge to [bus 01]
+Aug 31 22:50:24 minifree kernel: [ 0.151765] pci 0000:00:1c.0: bridge window [io 0x4000-0x4fff]
+Aug 31 22:50:24 minifree kernel: [ 0.151773] pci 0000:00:1c.0: bridge window [mem 0xe4100000-0xe41fffff]
+Aug 31 22:50:24 minifree kernel: [ 0.151780] pci 0000:00:1c.0: bridge window [mem 0x80000000-0x801fffff 64bit pref]
+Aug 31 22:50:24 minifree kernel: [ 0.151790] pci 0000:00:1c.1: PCI bridge to [bus 02]
+Aug 31 22:50:24 minifree kernel: [ 0.151807] pci 0000:00:1c.2: PCI bridge to [bus 03]
+Aug 31 22:50:24 minifree kernel: [ 0.151824] pci 0000:00:1c.3: PCI bridge to [bus 04]
+Aug 31 22:50:24 minifree kernel: [ 0.151848] pci 0000:05:00.0: res[15]=[mem 0x04000000-0x03ffffff pref] get_res_add_size add_size 4000000
+Aug 31 22:50:24 minifree kernel: [ 0.151852] pci 0000:05:00.0: res[16]=[mem 0x04000000-0x03ffffff] get_res_add_size add_size 4000000
+Aug 31 22:50:24 minifree kernel: [ 0.151856] pci 0000:05:00.0: res[13]=[io 0x0100-0x00ff] get_res_add_size add_size 100
+Aug 31 22:50:24 minifree kernel: [ 0.151860] pci 0000:05:00.0: res[14]=[io 0x0100-0x00ff] get_res_add_size add_size 100
+Aug 31 22:50:24 minifree kernel: [ 0.151868] pci 0000:05:00.0: BAR 15: assigned [mem 0x84000000-0x87ffffff pref]
+Aug 31 22:50:24 minifree kernel: [ 0.151875] pci 0000:05:00.0: BAR 16: assigned [mem 0x88000000-0x8bffffff]
+Aug 31 22:50:24 minifree kernel: [ 0.151879] pci 0000:05:00.0: BAR 13: assigned [io 0x2000-0x20ff]
+Aug 31 22:50:24 minifree kernel: [ 0.151883] pci 0000:05:00.0: BAR 14: assigned [io 0x2400-0x24ff]
+Aug 31 22:50:24 minifree kernel: [ 0.151888] pci 0000:05:00.0: CardBus bridge to [bus 06-09]
+Aug 31 22:50:24 minifree kernel: [ 0.151891] pci 0000:05:00.0: bridge window [io 0x2000-0x20ff]
+Aug 31 22:50:24 minifree kernel: [ 0.151897] pci 0000:05:00.0: bridge window [io 0x2400-0x24ff]
+Aug 31 22:50:24 minifree kernel: [ 0.151904] pci 0000:05:00.0: bridge window [mem 0x84000000-0x87ffffff pref]
+Aug 31 22:50:24 minifree kernel: [ 0.151910] pci 0000:05:00.0: bridge window [mem 0x88000000-0x8bffffff]
+Aug 31 22:50:24 minifree kernel: [ 0.151917] pci 0000:00:1e.0: PCI bridge to [bus 05-06]
+Aug 31 22:50:24 minifree kernel: [ 0.151922] pci 0000:00:1e.0: bridge window [io 0x2000-0x3fff]
+Aug 31 22:50:24 minifree kernel: [ 0.151930] pci 0000:00:1e.0: bridge window [mem 0xe0000000-0xe20fffff]
+Aug 31 22:50:24 minifree kernel: [ 0.151937] pci 0000:00:1e.0: bridge window [mem 0xe2100000-0xe40fffff 64bit pref]
+Aug 31 22:50:24 minifree kernel: [ 0.151947] pci_bus 0000:00: resource 4 [io 0x0000-0x0cf7]
+Aug 31 22:50:24 minifree kernel: [ 0.151951] pci_bus 0000:00: resource 5 [io 0x0d00-0xffff]
+Aug 31 22:50:24 minifree kernel: [ 0.151955] pci_bus 0000:00: resource 6 [mem 0x000a0000-0x000bffff]
+Aug 31 22:50:24 minifree kernel: [ 0.151958] pci_bus 0000:00: resource 7 [mem 0x000c0000-0x000c3fff]
+Aug 31 22:50:24 minifree kernel: [ 0.151962] pci_bus 0000:00: resource 8 [mem 0x000c4000-0x000c7fff]
+Aug 31 22:50:24 minifree kernel: [ 0.151965] pci_bus 0000:00: resource 9 [mem 0x000c8000-0x000cbfff]
+Aug 31 22:50:24 minifree kernel: [ 0.151968] pci_bus 0000:00: resource 10 [mem 0x000cc000-0x000cffff]
+Aug 31 22:50:24 minifree kernel: [ 0.151972] pci_bus 0000:00: resource 11 [mem 0x000d0000-0x000d3fff]
+Aug 31 22:50:24 minifree kernel: [ 0.151975] pci_bus 0000:00: resource 12 [mem 0x000d4000-0x000d7fff]
+Aug 31 22:50:24 minifree kernel: [ 0.151978] pci_bus 0000:00: resource 13 [mem 0x000d8000-0x000dbfff]
+Aug 31 22:50:24 minifree kernel: [ 0.151981] pci_bus 0000:00: resource 14 [mem 0x000dc000-0x000dffff]
+Aug 31 22:50:24 minifree kernel: [ 0.151985] pci_bus 0000:00: resource 15 [mem 0x000e0000-0x000e3fff]
+Aug 31 22:50:24 minifree kernel: [ 0.151988] pci_bus 0000:00: resource 16 [mem 0x000e4000-0x000e7fff]
+Aug 31 22:50:24 minifree kernel: [ 0.151991] pci_bus 0000:00: resource 17 [mem 0x000e8000-0x000ebfff]
+Aug 31 22:50:24 minifree kernel: [ 0.151994] pci_bus 0000:00: resource 18 [mem 0x000ec000-0x000effff]
+Aug 31 22:50:24 minifree kernel: [ 0.151998] pci_bus 0000:00: resource 19 [mem 0x000f0000-0x000fffff]
+Aug 31 22:50:24 minifree kernel: [ 0.152014] pci_bus 0000:00: resource 20 [mem 0x80000000-0xfebfffff]
+Aug 31 22:50:24 minifree kernel: [ 0.152018] pci_bus 0000:00: resource 21 [mem 0xfed40000-0xfed44fff]
+Aug 31 22:50:24 minifree kernel: [ 0.152022] pci_bus 0000:01: resource 0 [io 0x4000-0x4fff]
+Aug 31 22:50:24 minifree kernel: [ 0.152025] pci_bus 0000:01: resource 1 [mem 0xe4100000-0xe41fffff]
+Aug 31 22:50:24 minifree kernel: [ 0.152029] pci_bus 0000:01: resource 2 [mem 0x80000000-0x801fffff 64bit pref]
+Aug 31 22:50:24 minifree kernel: [ 0.152033] pci_bus 0000:05: resource 0 [io 0x2000-0x3fff]
+Aug 31 22:50:24 minifree kernel: [ 0.152036] pci_bus 0000:05: resource 1 [mem 0xe0000000-0xe20fffff]
+Aug 31 22:50:24 minifree kernel: [ 0.152040] pci_bus 0000:05: resource 2 [mem 0xe2100000-0xe40fffff 64bit pref]
+Aug 31 22:50:24 minifree kernel: [ 0.152043] pci_bus 0000:05: resource 4 [io 0x0000-0x0cf7]
+Aug 31 22:50:24 minifree kernel: [ 0.152047] pci_bus 0000:05: resource 5 [io 0x0d00-0xffff]
+Aug 31 22:50:24 minifree kernel: [ 0.152050] pci_bus 0000:05: resource 6 [mem 0x000a0000-0x000bffff]
+Aug 31 22:50:24 minifree kernel: [ 0.152054] pci_bus 0000:05: resource 7 [mem 0x000c0000-0x000c3fff]
+Aug 31 22:50:24 minifree kernel: [ 0.152057] pci_bus 0000:05: resource 8 [mem 0x000c4000-0x000c7fff]
+Aug 31 22:50:24 minifree kernel: [ 0.152061] pci_bus 0000:05: resource 9 [mem 0x000c8000-0x000cbfff]
+Aug 31 22:50:24 minifree kernel: [ 0.152064] pci_bus 0000:05: resource 10 [mem 0x000cc000-0x000cffff]
+Aug 31 22:50:24 minifree kernel: [ 0.152067] pci_bus 0000:05: resource 11 [mem 0x000d0000-0x000d3fff]
+Aug 31 22:50:24 minifree kernel: [ 0.152071] pci_bus 0000:05: resource 12 [mem 0x000d4000-0x000d7fff]
+Aug 31 22:50:24 minifree kernel: [ 0.152074] pci_bus 0000:05: resource 13 [mem 0x000d8000-0x000dbfff]
+Aug 31 22:50:24 minifree kernel: [ 0.152077] pci_bus 0000:05: resource 14 [mem 0x000dc000-0x000dffff]
+Aug 31 22:50:24 minifree kernel: [ 0.152080] pci_bus 0000:05: resource 15 [mem 0x000e0000-0x000e3fff]
+Aug 31 22:50:24 minifree kernel: [ 0.152084] pci_bus 0000:05: resource 16 [mem 0x000e4000-0x000e7fff]
+Aug 31 22:50:24 minifree kernel: [ 0.152087] pci_bus 0000:05: resource 17 [mem 0x000e8000-0x000ebfff]
+Aug 31 22:50:24 minifree kernel: [ 0.152090] pci_bus 0000:05: resource 18 [mem 0x000ec000-0x000effff]
+Aug 31 22:50:24 minifree kernel: [ 0.152093] pci_bus 0000:05: resource 19 [mem 0x000f0000-0x000fffff]
+Aug 31 22:50:24 minifree kernel: [ 0.152097] pci_bus 0000:05: resource 20 [mem 0x80000000-0xfebfffff]
+Aug 31 22:50:24 minifree kernel: [ 0.152100] pci_bus 0000:05: resource 21 [mem 0xfed40000-0xfed44fff]
+Aug 31 22:50:24 minifree kernel: [ 0.152104] pci_bus 0000:06: resource 0 [io 0x2000-0x20ff]
+Aug 31 22:50:24 minifree kernel: [ 0.152107] pci_bus 0000:06: resource 1 [io 0x2400-0x24ff]
+Aug 31 22:50:24 minifree kernel: [ 0.152111] pci_bus 0000:06: resource 2 [mem 0x84000000-0x87ffffff pref]
+Aug 31 22:50:24 minifree kernel: [ 0.152114] pci_bus 0000:06: resource 3 [mem 0x88000000-0x8bffffff]
+Aug 31 22:50:24 minifree kernel: [ 0.152167] NET: Registered protocol family 2
+Aug 31 22:50:24 minifree kernel: [ 0.152410] TCP established hash table entries: 16384 (order: 5, 131072 bytes)
+Aug 31 22:50:24 minifree kernel: [ 0.152518] TCP bind hash table entries: 16384 (order: 6, 262144 bytes)
+Aug 31 22:50:24 minifree kernel: [ 0.152669] TCP: Hash tables configured (established 16384 bind 16384)
+Aug 31 22:50:24 minifree kernel: [ 0.152731] TCP: reno registered
+Aug 31 22:50:24 minifree kernel: [ 0.152739] UDP hash table entries: 1024 (order: 3, 32768 bytes)
+Aug 31 22:50:24 minifree kernel: [ 0.152763] UDP-Lite hash table entries: 1024 (order: 3, 32768 bytes)
+Aug 31 22:50:24 minifree kernel: [ 0.152861] NET: Registered protocol family 1
+Aug 31 22:50:24 minifree kernel: [ 0.152882] pci 0000:00:02.0: Boot video device
+Aug 31 22:50:24 minifree kernel: [ 0.154029] PCI: CLS 64 bytes, default 64
+Aug 31 22:50:24 minifree kernel: [ 0.154130] Trying to unpack rootfs image as initramfs...
+Aug 31 22:50:24 minifree kernel: [ 0.891588] Freeing initrd memory: 23964K (ffff880035122000 - ffff880036889000)
+Aug 31 22:50:24 minifree kernel: [ 0.891983] microcode: CPU0 sig=0x6f6, pf=0x20, revision=0x0
+Aug 31 22:50:24 minifree kernel: [ 0.891991] microcode: CPU1 sig=0x6f6, pf=0x20, revision=0x0
+Aug 31 22:50:24 minifree kernel: [ 0.892123] microcode: Microcode Update Driver: v2.00 <tigran@aivazian.fsnet.co.uk>, Peter Oruba
+Aug 31 22:50:24 minifree kernel: [ 0.892126] Scanning for low memory corruption every 60 seconds
+Aug 31 22:50:24 minifree kernel: [ 0.892509] Initialise system trusted keyring
+Aug 31 22:50:24 minifree kernel: [ 0.892592] audit: initializing netlink socket (disabled)
+Aug 31 22:50:24 minifree kernel: [ 0.892616] type=2000 audit(1409521794.892:1): initialized
+Aug 31 22:50:24 minifree kernel: [ 0.938675] HugeTLB registered 2 MB page size, pre-allocated 0 pages
+Aug 31 22:50:24 minifree kernel: [ 0.940706] zbud: loaded
+Aug 31 22:50:24 minifree kernel: [ 0.940918] VFS: Disk quotas dquot_6.5.2
+Aug 31 22:50:24 minifree kernel: [ 0.940988] Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
+Aug 31 22:50:24 minifree kernel: [ 0.941797] fuse init (API version 7.22)
+Aug 31 22:50:24 minifree kernel: [ 0.941924] msgmni has been set to 3980
+Aug 31 22:50:24 minifree kernel: [ 0.942015] Key type big_key registered
+Aug 31 22:50:24 minifree kernel: [ 0.942641] Key type asymmetric registered
+Aug 31 22:50:24 minifree kernel: [ 0.942645] Asymmetric key parser 'x509' registered
+Aug 31 22:50:24 minifree kernel: [ 0.942697] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 252)
+Aug 31 22:50:24 minifree kernel: [ 0.942747] io scheduler noop registered
+Aug 31 22:50:24 minifree kernel: [ 0.942751] io scheduler deadline registered (default)
+Aug 31 22:50:24 minifree kernel: [ 0.942789] io scheduler cfq registered
+Aug 31 22:50:24 minifree kernel: [ 0.942802] io scheduler bfq registered
+Aug 31 22:50:24 minifree kernel: [ 0.942804] BFQ I/O-scheduler version: v7r5
+Aug 31 22:50:24 minifree kernel: [ 0.943133] pcieport 0000:00:1c.0: irq 40 for MSI/MSI-X
+Aug 31 22:50:24 minifree kernel: [ 0.943399] pcieport 0000:00:1c.1: irq 41 for MSI/MSI-X
+Aug 31 22:50:24 minifree kernel: [ 0.943635] pcieport 0000:00:1c.2: irq 42 for MSI/MSI-X
+Aug 31 22:50:24 minifree kernel: [ 0.943873] pcieport 0000:00:1c.3: irq 43 for MSI/MSI-X
+Aug 31 22:50:24 minifree kernel: [ 0.944051] pcieport 0000:00:1c.0: Signaling PME through PCIe PME interrupt
+Aug 31 22:50:24 minifree kernel: [ 0.944061] pci 0000:01:00.0: Signaling PME through PCIe PME interrupt
+Aug 31 22:50:24 minifree kernel: [ 0.944068] pcie_pme 0000:00:1c.0:pcie01: service driver pcie_pme loaded
+Aug 31 22:50:24 minifree kernel: [ 0.944102] pcieport 0000:00:1c.1: Signaling PME through PCIe PME interrupt
+Aug 31 22:50:24 minifree kernel: [ 0.944109] pcie_pme 0000:00:1c.1:pcie01: service driver pcie_pme loaded
+Aug 31 22:50:24 minifree kernel: [ 0.944142] pcieport 0000:00:1c.2: Signaling PME through PCIe PME interrupt
+Aug 31 22:50:24 minifree kernel: [ 0.944149] pcie_pme 0000:00:1c.2:pcie01: service driver pcie_pme loaded
+Aug 31 22:50:24 minifree kernel: [ 0.944178] pcieport 0000:00:1c.3: Signaling PME through PCIe PME interrupt
+Aug 31 22:50:24 minifree kernel: [ 0.944185] pcie_pme 0000:00:1c.3:pcie01: service driver pcie_pme loaded
+Aug 31 22:50:24 minifree kernel: [ 0.944207] pci_hotplug: PCI Hot Plug PCI Core version: 0.5
+Aug 31 22:50:24 minifree kernel: [ 0.944253] pciehp 0000:00:1c.0:pcie04: HPC vendor_id 8086 device_id 27d0 ss_vid 8086 ss_did 27d0
+Aug 31 22:50:24 minifree kernel: [ 0.944297] pciehp 0000:00:1c.0:pcie04: service driver pciehp loaded
+Aug 31 22:50:24 minifree kernel: [ 0.944307] pciehp: PCI Express Hot Plug Controller Driver version: 0.4
+Aug 31 22:50:24 minifree kernel: [ 0.944385] intel_idle: does not run on family 6 model 15
+Aug 31 22:50:24 minifree kernel: [ 0.944397] ipmi message handler version 39.2
+Aug 31 22:50:24 minifree kernel: [ 0.944733] ACPI: AC Adapter [AC] (off-line)
+Aug 31 22:50:24 minifree kernel: [ 0.944807] ACPI Exception: AE_NOT_FOUND, Error reading AC Adapter state (20131115/ac-108)
+Aug 31 22:50:24 minifree kernel: [ 0.945053] input: Sleep Button as /devices/LNXSYSTM:00/device:00/PNP0A08:00/device:24/PNP0C09:00/PNP0C0E:00/input/input0
+Aug 31 22:50:24 minifree kernel: [ 0.945061] ACPI: Sleep Button [SLPB]
+Aug 31 22:50:24 minifree kernel: [ 0.945124] input: Lid Switch as /devices/LNXSYSTM:00/device:00/PNP0A08:00/device:24/PNP0C09:00/PNP0C0D:00/input/input1
+Aug 31 22:50:24 minifree kernel: [ 0.945243] ACPI: Lid Switch [LID]
+Aug 31 22:50:24 minifree kernel: [ 0.945307] input: Power Button as /devices/LNXSYSTM:00/LNXPWRBN:00/input/input2
+Aug 31 22:50:24 minifree kernel: [ 0.945312] ACPI: Power Button [PWRF]
+Aug 31 22:50:24 minifree kernel: [ 0.946267] Monitor-Mwait will be used to enter C-1 state
+Aug 31 22:50:24 minifree kernel: [ 0.946279] tsc: Marking TSC unstable due to TSC halts in idle
+Aug 31 22:50:24 minifree kernel: [ 0.946288] ACPI: acpi_idle registered with cpuidle
+Aug 31 22:50:24 minifree kernel: [ 0.947899] thermal LNXTHERM:00: registered as thermal_zone0
+Aug 31 22:50:24 minifree kernel: [ 0.947904] ACPI: Thermal Zone [THM0] (39 C)
+Aug 31 22:50:24 minifree kernel: [ 0.948530] thermal LNXTHERM:01: registered as thermal_zone1
+Aug 31 22:50:24 minifree kernel: [ 0.948533] ACPI: Thermal Zone [THM1] (27 C)
+Aug 31 22:50:24 minifree kernel: [ 0.948573] GHES: HEST is not enabled!
+Aug 31 22:50:24 minifree kernel: [ 0.948770] Serial: 8250/16550 driver, 32 ports, IRQ sharing enabled
+Aug 31 22:50:24 minifree kernel: [ 0.952564] Linux agpgart interface v0.103
+Aug 31 22:50:24 minifree kernel: [ 0.952903] agpgart-intel 0000:00:00.0: Intel 945GM Chipset
+Aug 31 22:50:24 minifree kernel: [ 0.952979] agpgart-intel 0000:00:00.0: detected gtt size: 262144K total, 262144K mappable
+Aug 31 22:50:24 minifree kernel: [ 0.954238] agpgart-intel 0000:00:00.0: detected 8192K stolen memory
+Aug 31 22:50:24 minifree kernel: [ 0.954581] agpgart-intel 0000:00:00.0: AGP aperture is 256M @ 0xd0000000
+Aug 31 22:50:24 minifree kernel: [ 0.960749] brd: module loaded
+Aug 31 22:50:24 minifree kernel: [ 0.962506] loop: module loaded
+Aug 31 22:50:24 minifree kernel: [ 0.962983] ata_piix 0000:00:1f.1: version 2.13
+Aug 31 22:50:24 minifree kernel: [ 0.963770] ACPI: Deprecated procfs I/F for battery is loaded, please retry with CONFIG_ACPI_PROCFS_POWER cleared
+Aug 31 22:50:24 minifree kernel: [ 0.963780] ACPI: Battery Slot [BAT0] (battery present)
+Aug 31 22:50:24 minifree kernel: [ 0.963927] ACPI: Deprecated procfs I/F for battery is loaded, please retry with CONFIG_ACPI_PROCFS_POWER cleared
+Aug 31 22:50:24 minifree kernel: [ 0.963935] ACPI: Battery Slot [BAT1] (battery absent)
+Aug 31 22:50:24 minifree kernel: [ 0.964039] scsi0 : ata_piix
+Aug 31 22:50:24 minifree kernel: [ 0.964177] scsi1 : ata_piix
+Aug 31 22:50:24 minifree kernel: [ 0.964231] ata1: PATA max UDMA/100 cmd 0x1f0 ctl 0x3f6 bmdma 0x5080 irq 14
+Aug 31 22:50:24 minifree kernel: [ 0.964235] ata2: PATA max UDMA/100 cmd 0x170 ctl 0x376 bmdma 0x5088 irq 15
+Aug 31 22:50:24 minifree kernel: [ 0.964290] ata1: port disabled--ignoring
+Aug 31 22:50:24 minifree kernel: [ 0.964327] ata2: port disabled--ignoring
+Aug 31 22:50:24 minifree kernel: [ 0.964709] libphy: Fixed MDIO Bus: probed
+Aug 31 22:50:24 minifree kernel: [ 0.964859] tun: Universal TUN/TAP device driver, 1.6
+Aug 31 22:50:24 minifree kernel: [ 0.964861] tun: (C) 1999-2004 Max Krasnyansky <maxk@qualcomm.com>
+Aug 31 22:50:24 minifree kernel: [ 0.964949] PPP generic driver version 2.4.2
+Aug 31 22:50:24 minifree kernel: [ 0.965035] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
+Aug 31 22:50:24 minifree kernel: [ 0.965043] ehci-pci: EHCI PCI platform driver
+Aug 31 22:50:24 minifree kernel: [ 0.965215] ehci-pci 0000:00:1d.7: EHCI Host Controller
+Aug 31 22:50:24 minifree kernel: [ 0.965228] ehci-pci 0000:00:1d.7: new USB bus registered, assigned bus number 1
+Aug 31 22:50:24 minifree kernel: [ 0.965248] ehci-pci 0000:00:1d.7: debug port 1
+Aug 31 22:50:24 minifree kernel: [ 0.969175] ehci-pci 0000:00:1d.7: cache line size of 64 is not supported
+Aug 31 22:50:24 minifree kernel: [ 0.969198] ehci-pci 0000:00:1d.7: irq 19, io mem 0xe4344000
+Aug 31 22:50:24 minifree kernel: [ 0.980055] ehci-pci 0000:00:1d.7: USB 2.0 started, EHCI 1.00
+Aug 31 22:50:24 minifree kernel: [ 0.980167] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
+Aug 31 22:50:24 minifree kernel: [ 0.980171] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
+Aug 31 22:50:24 minifree kernel: [ 0.980174] usb usb1: Product: EHCI Host Controller
+Aug 31 22:50:24 minifree kernel: [ 0.980178] usb usb1: Manufacturer: Linux 3.13.0-34-generic ehci_hcd
+Aug 31 22:50:24 minifree kernel: [ 0.980181] usb usb1: SerialNumber: 0000:00:1d.7
+Aug 31 22:50:24 minifree kernel: [ 0.980361] hub 1-0:1.0: USB hub found
+Aug 31 22:50:24 minifree kernel: [ 0.980376] hub 1-0:1.0: 8 ports detected
+Aug 31 22:50:24 minifree kernel: [ 0.980772] ehci-platform: EHCI generic platform driver
+Aug 31 22:50:24 minifree kernel: [ 0.980789] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
+Aug 31 22:50:24 minifree kernel: [ 0.980791] ohci-pci: OHCI PCI platform driver
+Aug 31 22:50:24 minifree kernel: [ 0.980807] ohci-platform: OHCI generic platform driver
+Aug 31 22:50:24 minifree kernel: [ 0.980820] uhci_hcd: USB Universal Host Controller Interface driver
+Aug 31 22:50:24 minifree kernel: [ 0.980960] uhci_hcd 0000:00:1d.0: UHCI Host Controller
+Aug 31 22:50:24 minifree kernel: [ 0.980969] uhci_hcd 0000:00:1d.0: new USB bus registered, assigned bus number 2
+Aug 31 22:50:24 minifree kernel: [ 0.981013] uhci_hcd 0000:00:1d.0: irq 16, io base 0x00005000
+Aug 31 22:50:24 minifree kernel: [ 0.981094] usb usb2: New USB device found, idVendor=1d6b, idProduct=0001
+Aug 31 22:50:24 minifree kernel: [ 0.981099] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
+Aug 31 22:50:24 minifree kernel: [ 0.981102] usb usb2: Product: UHCI Host Controller
+Aug 31 22:50:24 minifree kernel: [ 0.981106] usb usb2: Manufacturer: Linux 3.13.0-34-generic uhci_hcd
+Aug 31 22:50:24 minifree kernel: [ 0.981109] usb usb2: SerialNumber: 0000:00:1d.0
+Aug 31 22:50:24 minifree kernel: [ 0.981266] hub 2-0:1.0: USB hub found
+Aug 31 22:50:24 minifree kernel: [ 0.981279] hub 2-0:1.0: 2 ports detected
+Aug 31 22:50:24 minifree kernel: [ 0.981522] uhci_hcd 0000:00:1d.1: UHCI Host Controller
+Aug 31 22:50:24 minifree kernel: [ 0.981530] uhci_hcd 0000:00:1d.1: new USB bus registered, assigned bus number 3
+Aug 31 22:50:24 minifree kernel: [ 0.981575] uhci_hcd 0000:00:1d.1: irq 17, io base 0x00005020
+Aug 31 22:50:24 minifree kernel: [ 0.981654] usb usb3: New USB device found, idVendor=1d6b, idProduct=0001
+Aug 31 22:50:24 minifree kernel: [ 0.981658] usb usb3: New USB device strings: Mfr=3, Product=2, SerialNumber=1
+Aug 31 22:50:24 minifree kernel: [ 0.981662] usb usb3: Product: UHCI Host Controller
+Aug 31 22:50:24 minifree kernel: [ 0.981665] usb usb3: Manufacturer: Linux 3.13.0-34-generic uhci_hcd
+Aug 31 22:50:24 minifree kernel: [ 0.981669] usb usb3: SerialNumber: 0000:00:1d.1
+Aug 31 22:50:24 minifree kernel: [ 0.981825] hub 3-0:1.0: USB hub found
+Aug 31 22:50:24 minifree kernel: [ 0.981840] hub 3-0:1.0: 2 ports detected
+Aug 31 22:50:24 minifree kernel: [ 0.982079] uhci_hcd 0000:00:1d.2: UHCI Host Controller
+Aug 31 22:50:24 minifree kernel: [ 0.982090] uhci_hcd 0000:00:1d.2: new USB bus registered, assigned bus number 4
+Aug 31 22:50:24 minifree kernel: [ 0.982135] uhci_hcd 0000:00:1d.2: irq 18, io base 0x00005040
+Aug 31 22:50:24 minifree kernel: [ 0.982218] usb usb4: New USB device found, idVendor=1d6b, idProduct=0001
+Aug 31 22:50:24 minifree kernel: [ 0.982222] usb usb4: New USB device strings: Mfr=3, Product=2, SerialNumber=1
+Aug 31 22:50:24 minifree kernel: [ 0.982225] usb usb4: Product: UHCI Host Controller
+Aug 31 22:50:24 minifree kernel: [ 0.982229] usb usb4: Manufacturer: Linux 3.13.0-34-generic uhci_hcd
+Aug 31 22:50:24 minifree kernel: [ 0.982232] usb usb4: SerialNumber: 0000:00:1d.2
+Aug 31 22:50:24 minifree kernel: [ 0.982388] hub 4-0:1.0: USB hub found
+Aug 31 22:50:24 minifree kernel: [ 0.982401] hub 4-0:1.0: 2 ports detected
+Aug 31 22:50:24 minifree kernel: [ 0.982648] uhci_hcd 0000:00:1d.3: UHCI Host Controller
+Aug 31 22:50:24 minifree kernel: [ 0.982656] uhci_hcd 0000:00:1d.3: new USB bus registered, assigned bus number 5
+Aug 31 22:50:24 minifree kernel: [ 0.982688] uhci_hcd 0000:00:1d.3: irq 19, io base 0x00005060
+Aug 31 22:50:24 minifree kernel: [ 0.982769] usb usb5: New USB device found, idVendor=1d6b, idProduct=0001
+Aug 31 22:50:24 minifree kernel: [ 0.982774] usb usb5: New USB device strings: Mfr=3, Product=2, SerialNumber=1
+Aug 31 22:50:24 minifree kernel: [ 0.982777] usb usb5: Product: UHCI Host Controller
+Aug 31 22:50:24 minifree kernel: [ 0.982781] usb usb5: Manufacturer: Linux 3.13.0-34-generic uhci_hcd
+Aug 31 22:50:24 minifree kernel: [ 0.982784] usb usb5: SerialNumber: 0000:00:1d.3
+Aug 31 22:50:24 minifree kernel: [ 0.982935] hub 5-0:1.0: USB hub found
+Aug 31 22:50:24 minifree kernel: [ 0.982947] hub 5-0:1.0: 2 ports detected
+Aug 31 22:50:24 minifree kernel: [ 0.983162] i8042: PNP: PS/2 Controller [PNP0303:PS2K,PNP0f13:PS2M] at 0x60,0x64 irq 1,12
+Aug 31 22:50:24 minifree kernel: [ 0.996933] serio: i8042 KBD port at 0x60,0x64 irq 1
+Aug 31 22:50:24 minifree kernel: [ 0.996948] serio: i8042 AUX port at 0x60,0x64 irq 12
+Aug 31 22:50:24 minifree kernel: [ 0.997177] mousedev: PS/2 mouse device common for all mice
+Aug 31 22:50:24 minifree kernel: [ 0.997526] rtc_cmos 00:06: RTC can wake from S4
+Aug 31 22:50:24 minifree kernel: [ 0.997724] rtc_cmos 00:06: rtc core: registered rtc_cmos as rtc0
+Aug 31 22:50:24 minifree kernel: [ 0.997761] rtc_cmos 00:06: alarms up to one month, y3k, 242 bytes nvram, hpet irqs
+Aug 31 22:50:24 minifree kernel: [ 0.997869] device-mapper: uevent: version 1.0.3
+Aug 31 22:50:24 minifree kernel: [ 0.997988] device-mapper: ioctl: 4.27.0-ioctl (2013-10-30) initialised: dm-devel@redhat.com
+Aug 31 22:50:24 minifree kernel: [ 0.998000] ledtrig-cpu: registered to indicate activity on CPUs
+Aug 31 22:50:24 minifree kernel: [ 0.998153] TCP: cubic registered
+Aug 31 22:50:24 minifree kernel: [ 0.998301] NET: Registered protocol family 10
+Aug 31 22:50:24 minifree kernel: [ 0.998581] NET: Registered protocol family 17
+Aug 31 22:50:24 minifree kernel: [ 0.998598] Key type dns_resolver registered
+Aug 31 22:50:24 minifree kernel: [ 0.999003] Loading compiled-in X.509 certificates
+Aug 31 22:50:24 minifree kernel: [ 1.000843] Loaded X.509 cert 'Magrathea: Glacier signing key: 0cadd161e4220740356b3090aabd2b3fcb83a5d0'
+Aug 31 22:50:24 minifree kernel: [ 1.000865] registered taskstats version 1
+Aug 31 22:50:24 minifree kernel: [ 1.004840] input: AT Translated Set 2 keyboard as /devices/platform/i8042/serio0/input/input3
+Aug 31 22:50:24 minifree kernel: [ 1.006130] Key type trusted registered
+Aug 31 22:50:24 minifree kernel: [ 1.010130] Key type encrypted registered
+Aug 31 22:50:24 minifree kernel: [ 1.015532] AppArmor: AppArmor sha1 policy hashing enabled
+Aug 31 22:50:24 minifree kernel: [ 1.015538] IMA: No TPM chip found, activating TPM-bypass!
+Aug 31 22:50:24 minifree kernel: [ 1.015959] regulator-dummy: disabling
+Aug 31 22:50:24 minifree kernel: [ 1.016046] Magic number: 10:359:855
+Aug 31 22:50:24 minifree kernel: [ 1.016202] rtc_cmos 00:06: setting system clock to 2014-08-31 21:49:55 UTC (1409521795)
+Aug 31 22:50:24 minifree kernel: [ 1.017114] BIOS EDD facility v0.16 2004-Jun-25, 0 devices found
+Aug 31 22:50:24 minifree kernel: [ 1.017120] EDD information not available.
+Aug 31 22:50:24 minifree kernel: [ 1.017162] PM: Hibernation image not present or could not be loaded.
+Aug 31 22:50:24 minifree kernel: [ 1.019541] Freeing unused kernel memory: 1336K (ffffffff81d20000 - ffffffff81e6e000)
+Aug 31 22:50:24 minifree kernel: [ 1.019544] Write protecting the kernel read-only data: 12288k
+Aug 31 22:50:24 minifree kernel: [ 1.023552] Freeing unused kernel memory: 788K (ffff88000173b000 - ffff880001800000)
+Aug 31 22:50:24 minifree kernel: [ 1.026751] Freeing unused kernel memory: 680K (ffff880001b56000 - ffff880001c00000)
+Aug 31 22:50:24 minifree kernel: [ 1.094875] pps_core: LinuxPPS API ver. 1 registered
+Aug 31 22:50:24 minifree kernel: [ 1.094880] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
+Aug 31 22:50:24 minifree kernel: [ 1.098290] [drm] Initialized drm 1.1.0 20060810
+Aug 31 22:50:24 minifree kernel: [ 1.102066] ACPI: Video Device [GFX0] (multi-head: yes rom: no post: no)
+Aug 31 22:50:24 minifree kernel: [ 1.106256] PTP clock support registered
+Aug 31 22:50:24 minifree kernel: [ 1.113596] e1000e: Intel(R) PRO/1000 Network Driver - 2.3.2-k
+Aug 31 22:50:24 minifree kernel: [ 1.113602] e1000e: Copyright(c) 1999 - 2013 Intel Corporation.
+Aug 31 22:50:24 minifree kernel: [ 1.124513] e1000e 0000:01:00.0: Interrupt Throttling Rate (ints/sec) set to dynamic conservative mode
+Aug 31 22:50:24 minifree kernel: [ 1.124561] e1000e 0000:01:00.0: irq 44 for MSI/MSI-X
+Aug 31 22:50:24 minifree kernel: [ 1.124660] acpi device:04: registered as cooling_device2
+Aug 31 22:50:24 minifree kernel: [ 1.124749] input: Video Bus as /devices/LNXSYSTM:00/device:00/PNP0A08:00/LNXVIDEO:00/input/input5
+Aug 31 22:50:24 minifree kernel: [ 1.147236] [drm:i915_dump_device_info], i915 device info: gen=3, pciid=0x27a2 flags=is_mobile,is_i945gm,has_hotplug,cursor_needs_physical,has_overlay,overlay_needs_physical,supports_tv,
+Aug 31 22:50:24 minifree kernel: [ 1.147327] [drm:intel_detect_pch], No PCH found.
+Aug 31 22:50:24 minifree kernel: [ 1.147333] [drm] Memory usable by graphics device = 256M
+Aug 31 22:50:24 minifree kernel: [ 1.147335] [drm:i915_gem_gtt_init], GMADR size = 256M
+Aug 31 22:50:24 minifree kernel: [ 1.147338] [drm:i915_gem_gtt_init], GTT stolen size = 8M
+Aug 31 22:50:24 minifree kernel: [ 1.149656] sdhci: Secure Digital Host Controller Interface driver
+Aug 31 22:50:24 minifree kernel: [ 1.149659] sdhci: Copyright(c) Pierre Ossman
+Aug 31 22:50:24 minifree kernel: [ 1.152120] sdhci-pci 0000:05:00.2: SDHCI controller found [1180:0822] (rev 18)
+Aug 31 22:50:24 minifree kernel: [ 1.152136] pci 0000:00:1e.0: enabling device (0004 -> 0007)
+Aug 31 22:50:24 minifree kernel: [ 1.180299] [drm:intel_opregion_setup], graphic opregion physical addr: 0x0
+Aug 31 22:50:24 minifree kernel: [ 1.180306] [drm:intel_opregion_setup], ACPI OpRegion not supported!
+Aug 31 22:50:24 minifree kernel: [ 1.180346] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
+Aug 31 22:50:24 minifree kernel: [ 1.180348] [drm] Driver supports precise vblank timestamp query.
+Aug 31 22:50:24 minifree kernel: [ 1.180351] [drm:init_vbt_defaults], Set default to SSC at 100MHz
+Aug 31 22:50:24 minifree kernel: [ 1.180358] i915 0000:00:02.0: Invalid ROM contents
+Aug 31 22:50:24 minifree kernel: [ 1.180360] [drm:intel_parse_bios], VBT signature missing
+Aug 31 22:50:24 minifree kernel: [ 1.180363] [drm] failed to find VBIOS tables
+Aug 31 22:50:24 minifree kernel: [ 1.180369] [drm:intel_dsm_pci_probe], no _DSM method for intel device
+Aug 31 22:50:24 minifree kernel: [ 1.180383] [drm:i915_gem_init_stolen], found 8388608 bytes of stolen memory at 7f800000
+Aug 31 22:50:24 minifree kernel: [ 1.180409] [drm] GPU crash dump saved to /sys/class/drm/card0/error
+Aug 31 22:50:24 minifree kernel: [ 1.180412] [drm:intel_modeset_init], 2 display pipes available.
+Aug 31 22:50:24 minifree kernel: [ 1.180419] [drm:intel_crtc_init], swapping pipes & planes for FBC
+Aug 31 22:50:24 minifree kernel: [ 1.180421] [drm] GPU hangs can indicate a bug anywhere in the entire gfx stack, including userspace.
+Aug 31 22:50:24 minifree kernel: [ 1.180423] [drm] Please file a _new_ bug report on bugs.freedesktop.org against DRI -> DRM/Intel
+Aug 31 22:50:24 minifree kernel: [ 1.180425] [drm] drm/i915 developers can then reassign to the right component if it's not a kernel issue.
+Aug 31 22:50:24 minifree kernel: [ 1.180427] [drm] The gpu crash dump is required to analyze gpu hangs, so please always attach it.
+Aug 31 22:50:24 minifree kernel: [ 1.180429] [drm:intel_modeset_init], pipe A sprite A init failed: -19
+Aug 31 22:50:24 minifree kernel: [ 1.180435] [drm:intel_crtc_init], swapping pipes & planes for FBC
+Aug 31 22:50:24 minifree kernel: [ 1.180437] [drm:intel_modeset_init], pipe B sprite B init failed: -19
+Aug 31 22:50:24 minifree kernel: [ 1.180440] [drm:intel_shared_dpll_init], 0 shared PLLs initialized
+Aug 31 22:50:24 minifree kernel: [ 1.180448] vgaarb: device changed decodes: PCI:0000:00:02.0,olddecodes=io+mem,decodes=io+mem:owns=io+mem
+Aug 31 22:50:24 minifree kernel: [ 1.180450] i915: render error detected, EIR: 0x00000010
+Aug 31 22:50:24 minifree kernel: [ 1.180452] i915: page table error
+Aug 31 22:50:24 minifree kernel: [ 1.180454] i915: PGTBL_ER: 0x00000012
+Aug 31 22:50:24 minifree kernel: [ 1.180457] [drm:i915_report_and_clear_eir] *ERROR* EIR stuck: 0x00000010, masking
+Aug 31 22:50:24 minifree kernel: [ 1.180463] [drm:i915_irq_handler], pipe B underrun
+Aug 31 22:50:24 minifree kernel: [ 1.180469] i915: render error detected, EIR: 0x00000010
+Aug 31 22:50:24 minifree kernel: [ 1.180471] i915: page table error
+Aug 31 22:50:24 minifree kernel: [ 1.180473] i915: PGTBL_ER: 0x00000012
+Aug 31 22:50:24 minifree kernel: [ 1.182043] sdhci-pci 0000:05:00.2: Will use DMA mode even though HW doesn't fully claim to support it.
+Aug 31 22:50:24 minifree kernel: [ 1.182056] sdhci-pci 0000:05:00.2: dummy supplies not allowed
+Aug 31 22:50:24 minifree kernel: [ 1.182059] mmc0: no vqmmc regulator found
+Aug 31 22:50:24 minifree kernel: [ 1.182062] sdhci-pci 0000:05:00.2: dummy supplies not allowed
+Aug 31 22:50:24 minifree kernel: [ 1.182064] mmc0: no vmmc regulator found
+Aug 31 22:50:24 minifree kernel: [ 1.183062] sdhci-pci 0000:05:00.2: Will use DMA mode even though HW doesn't fully claim to support it.
+Aug 31 22:50:24 minifree kernel: [ 1.183862] mmc0: SDHCI controller on PCI [0000:05:00.2] using DMA
+Aug 31 22:50:24 minifree kernel: [ 1.236462] e1000e 0000:01:00.0 eth0: (PCI Express:2.5GT/s:Width x1) 00:16:d3:b6:d0:98
+Aug 31 22:50:24 minifree kernel: [ 1.236469] e1000e 0000:01:00.0 eth0: Intel(R) PRO/1000 Network Connection
+Aug 31 22:50:24 minifree kernel: [ 1.236549] e1000e 0000:01:00.0 eth0: MAC: 2, PHY: 2, PBA No: 005302-003
+Aug 31 22:50:24 minifree kernel: [ 1.248155] firewire_ohci 0000:05:00.1: added OHCI v1.10 device as card 0, 4 IR + 4 IT contexts, quirks 0x11
+Aug 31 22:50:24 minifree kernel: [ 1.264281] [drm:intel_lvds_init], using preferred mode from EDID:
+Aug 31 22:50:24 minifree kernel: [ 1.264287] [drm:drm_mode_debug_printmodeline], Modeline 8:"1024x768" 50 54160 1024 1048 1184 1344 768 771 777 806 0x48 0xa
+Aug 31 22:50:24 minifree kernel: [ 1.264297] [drm:intel_lvds_init], detected single-link lvds configuration
+Aug 31 22:50:24 minifree kernel: [ 1.264356] [drm:intel_panel_get_backlight], get backlight PWM = 24832
+Aug 31 22:50:24 minifree kernel: [ 1.264360] [drm:intel_panel_get_max_backlight], max backlight PWM = 24832
+Aug 31 22:50:24 minifree kernel: [ 1.264505] [drm:i915_gem_setup_global_gtt], clearing unused GTT space: [0, ffff000]
+Aug 31 22:50:24 minifree kernel: [ 1.264889] [drm:i915_gem_object_create_stolen], creating stolen object: size=20000
+Aug 31 22:50:24 minifree kernel: [ 1.264897] [drm:i915_pages_create_for_stolen], offset=0x0, size=131072
+Aug 31 22:50:24 minifree kernel: [ 1.264946] [drm:i915_gem_context_init], Disabling HW Contexts; old hardware
+Aug 31 22:50:24 minifree kernel: [ 1.264996] [drm] initialized overlay support
+Aug 31 22:50:24 minifree kernel: [ 1.265002] [drm:intel_modeset_readout_hw_state], [CRTC:3] hw state readout: disabled
+Aug 31 22:50:24 minifree kernel: [ 1.265012] [drm:intel_modeset_readout_hw_state], [CRTC:4] hw state readout: enabled
+Aug 31 22:50:24 minifree kernel: [ 1.265017] [drm:intel_modeset_readout_hw_state], [ENCODER:6:LVDS-6] hw state readout: enabled, pipe B
+Aug 31 22:50:24 minifree kernel: [ 1.265022] [drm:intel_modeset_readout_hw_state], [ENCODER:16:DAC-16] hw state readout: disabled, pipe A
+Aug 31 22:50:24 minifree kernel: [ 1.265026] [drm:intel_modeset_readout_hw_state], [ENCODER:18:TV-18] hw state readout: disabled, pipe A
+Aug 31 22:50:24 minifree kernel: [ 1.265031] [drm:intel_modeset_readout_hw_state], [CONNECTOR:5:LVDS-1] hw state readout: enabled
+Aug 31 22:50:24 minifree kernel: [ 1.265035] [drm:intel_modeset_readout_hw_state], [CONNECTOR:15:VGA-1] hw state readout: disabled
+Aug 31 22:50:24 minifree kernel: [ 1.265039] [drm:intel_modeset_readout_hw_state], [CONNECTOR:17:SVIDEO-1] hw state readout: disabled
+Aug 31 22:50:24 minifree kernel: [ 1.265044] [drm:intel_dump_pipe_config], [CRTC:3][setup_hw_state] config for pipe A
+Aug 31 22:50:24 minifree kernel: [ 1.265047] [drm:intel_dump_pipe_config], cpu_transcoder: A
+Aug 31 22:50:24 minifree kernel: [ 1.265050] [drm:intel_dump_pipe_config], pipe bpp: 0, dithering: 0
+Aug 31 22:50:24 minifree kernel: [ 1.265053] [drm:intel_dump_pipe_config], fdi/pch: 0, lanes: 0, gmch_m: 0, gmch_n: 0, link_m: 0, link_n: 0, tu: 0
+Aug 31 22:50:24 minifree kernel: [ 1.265057] [drm:intel_dump_pipe_config], dp: 0, gmch_m: 0, gmch_n: 0, link_m: 0, link_n: 0, tu: 0
+Aug 31 22:50:24 minifree kernel: [ 1.265060] [drm:intel_dump_pipe_config], requested mode:
+Aug 31 22:50:24 minifree kernel: [ 1.265063] [drm:drm_mode_debug_printmodeline], Modeline 0:"" 0 0 0 0 0 0 0 0 0 0 0x0 0x0
+Aug 31 22:50:24 minifree kernel: [ 1.265067] [drm:intel_dump_pipe_config], adjusted mode:
+Aug 31 22:50:24 minifree kernel: [ 1.265070] [drm:drm_mode_debug_printmodeline], Modeline 0:"" 0 0 0 0 0 0 0 0 0 0 0x0 0x0
+Aug 31 22:50:24 minifree kernel: [ 1.265074] [drm:intel_dump_crtc_timings], crtc timings: 0 0 0 0 0 0 0 0 0, type: 0x0 flags: 0x0
+Aug 31 22:50:24 minifree kernel: [ 1.265078] [drm:intel_dump_pipe_config], port clock: 0
+Aug 31 22:50:24 minifree kernel: [ 1.265081] [drm:intel_dump_pipe_config], pipe src size: 0x0
+Aug 31 22:50:24 minifree kernel: [ 1.265084] [drm:intel_dump_pipe_config], gmch pfit: control: 0x00000000, ratios: 0x00000000, lvds border: 0x00000000
+Aug 31 22:50:24 minifree kernel: [ 1.265087] [drm:intel_dump_pipe_config], pch pfit: pos: 0x00000000, size: 0x00000000, disabled
+Aug 31 22:50:24 minifree kernel: [ 1.265090] [drm:intel_dump_pipe_config], ips: 0
+Aug 31 22:50:24 minifree kernel: [ 1.265093] [drm:intel_dump_pipe_config], double wide: 0
+Aug 31 22:50:24 minifree kernel: [ 1.265097] [drm:intel_dump_pipe_config], [CRTC:4][setup_hw_state] config for pipe B
+Aug 31 22:50:24 minifree kernel: [ 1.265100] [drm:intel_dump_pipe_config], cpu_transcoder: B
+Aug 31 22:50:24 minifree kernel: [ 1.265102] [drm:intel_dump_pipe_config], pipe bpp: 0, dithering: 0
+Aug 31 22:50:24 minifree kernel: [ 1.265105] [drm:intel_dump_pipe_config], fdi/pch: 0, lanes: 0, gmch_m: 0, gmch_n: 0, link_m: 0, link_n: 0, tu: 0
+Aug 31 22:50:24 minifree kernel: [ 1.265109] [drm:intel_dump_pipe_config], dp: 0, gmch_m: 0, gmch_n: 0, link_m: 0, link_n: 0, tu: 0
+Aug 31 22:50:24 minifree kernel: [ 1.265112] [drm:intel_dump_pipe_config], requested mode:
+Aug 31 22:50:24 minifree kernel: [ 1.265115] [drm:drm_mode_debug_printmodeline], Modeline 0:"" 0 0 640 0 0 0 400 0 0 0 0x0 0x0
+Aug 31 22:50:24 minifree kernel: [ 1.265119] [drm:intel_dump_pipe_config], adjusted mode:
+Aug 31 22:50:24 minifree kernel: [ 1.265122] [drm:drm_mode_debug_printmodeline], Modeline 0:"" 0 0 0 0 0 0 0 0 0 0 0x0 0xa
+Aug 31 22:50:24 minifree kernel: [ 1.265126] [drm:intel_dump_crtc_timings], crtc timings: 45982 1024 1048 1184 1344 768 779 1 806, type: 0x0 flags: 0xa
+Aug 31 22:50:24 minifree kernel: [ 1.265130] [drm:intel_dump_pipe_config], port clock: 45982
+Aug 31 22:50:24 minifree kernel: [ 1.265133] [drm:intel_dump_pipe_config], pipe src size: 640x400
+Aug 31 22:50:24 minifree kernel: [ 1.265136] [drm:intel_dump_pipe_config], gmch pfit: control: 0x80000220, ratios: 0x00000000, lvds border: 0x00000000
+Aug 31 22:50:24 minifree kernel: [ 1.265139] [drm:intel_dump_pipe_config], pch pfit: pos: 0x00000000, size: 0x00000000, disabled
+Aug 31 22:50:24 minifree kernel: [ 1.265142] [drm:intel_dump_pipe_config], ips: 0
+Aug 31 22:50:24 minifree kernel: [ 1.265145] [drm:intel_dump_pipe_config], double wide: 0
+Aug 31 22:50:24 minifree kernel: [ 1.265149] [drm:intel_connector_check_state], [CONNECTOR:5:LVDS-1]
+Aug 31 22:50:24 minifree kernel: [ 1.265153] [drm:check_encoder_state], [ENCODER:6:LVDS-6]
+Aug 31 22:50:24 minifree kernel: [ 1.265157] [drm:check_encoder_state], [ENCODER:16:DAC-16]
+Aug 31 22:50:24 minifree kernel: [ 1.265160] [drm:check_encoder_state], [ENCODER:18:TV-18]
+Aug 31 22:50:24 minifree kernel: [ 1.265163] [drm:check_crtc_state], [CRTC:3]
+Aug 31 22:50:24 minifree kernel: [ 1.265166] [drm:check_crtc_state], [CRTC:4]
+Aug 31 22:50:24 minifree kernel: [ 1.265183] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:5:LVDS-1]
+Aug 31 22:50:24 minifree kernel: [ 1.265187] [drm:intel_lvds_detect], [CONNECTOR:5:LVDS-1]
+Aug 31 22:50:24 minifree kernel: [ 1.265204] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:5:LVDS-1] probed modes :
+Aug 31 22:50:24 minifree kernel: [ 1.265208] [drm:drm_mode_debug_printmodeline], Modeline 8:"1024x768" 50 54160 1024 1048 1184 1344 768 771 777 806 0x48 0xa
+Aug 31 22:50:24 minifree kernel: [ 1.265213] [drm:drm_mode_debug_printmodeline], Modeline 12:"1024x768" 60 65000 1024 1048 1184 1344 768 771 777 806 0x40 0xa
+Aug 31 22:50:24 minifree kernel: [ 1.265218] [drm:drm_mode_debug_printmodeline], Modeline 9:"1024x768" 40 43330 1024 1048 1184 1344 768 771 777 806 0x40 0xa
+Aug 31 22:50:24 minifree kernel: [ 1.265222] [drm:drm_mode_debug_printmodeline], Modeline 10:"800x600" 60 40000 800 840 968 1056 600 601 605 628 0x40 0x5
+Aug 31 22:50:24 minifree kernel: [ 1.265227] [drm:drm_mode_debug_printmodeline], Modeline 11:"640x480" 60 25200 640 656 752 800 480 490 492 525 0x40 0xa
+Aug 31 22:50:24 minifree kernel: [ 1.265232] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:15:VGA-1]
+Aug 31 22:50:24 minifree kernel: [ 1.265235] [drm:intel_crt_detect], [CONNECTOR:15:VGA-1] force=1
+Aug 31 22:50:24 minifree kernel: [ 1.280167] [drm:intel_crt_detect], CRT not detected via hotplug
+Aug 31 22:50:24 minifree kernel: [ 1.284121] [drm:gmbus_xfer], GMBUS [i915 gmbus vga] NAK for addr: 0050 r(1)
+Aug 31 22:50:24 minifree kernel: [ 1.284128] [drm:drm_do_probe_ddc_edid], drm: skipping non-existent adapter i915 gmbus vga
+Aug 31 22:50:24 minifree kernel: [ 1.284131] [drm:intel_crt_get_edid], CRT GMBUS EDID read failed, retry using GPIO bit-banging
+Aug 31 22:50:24 minifree kernel: [ 1.284134] [drm:intel_gmbus_force_bit], enabling bit-banging on i915 gmbus vga. force bit now 1
+Aug 31 22:50:24 minifree kernel: [ 1.284413] [drm:drm_do_probe_ddc_edid], drm: skipping non-existent adapter i915 gmbus vga
+Aug 31 22:50:24 minifree kernel: [ 1.284416] [drm:intel_gmbus_force_bit], disabling bit-banging on i915 gmbus vga. force bit now 0
+Aug 31 22:50:24 minifree kernel: [ 1.284419] [drm:intel_crt_detect_ddc], CRT not detected via DDC:0x50 [no valid EDID found]
+Aug 31 22:50:24 minifree kernel: [ 1.284423] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:15:VGA-1] disconnected
+Aug 31 22:50:24 minifree kernel: [ 1.284429] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:17:SVIDEO-1]
+Aug 31 22:50:24 minifree kernel: [ 1.284432] [drm:intel_tv_detect], [CONNECTOR:17:SVIDEO-1] force=1
+Aug 31 22:50:24 minifree kernel: [ 1.284437] [drm:intel_get_load_detect_pipe], [CONNECTOR:17:SVIDEO-1], [ENCODER:18:TV-18]
+Aug 31 22:50:24 minifree kernel: [ 1.284441] [drm:intel_get_load_detect_pipe], creating tmp fb for load-detection
+Aug 31 22:50:24 minifree kernel: [ 1.284454] [drm:intel_modeset_affected_pipes], set mode pipe masks: modeset: 1, prepare: 1, disable: 0
+Aug 31 22:50:24 minifree kernel: [ 1.284460] [drm:connected_sink_compute_bpp], [CONNECTOR:17:SVIDEO-1] checking for sink bpp constrains
+Aug 31 22:50:24 minifree kernel: [ 1.284464] [drm:intel_tv_compute_config], forcing bpc to 8 for TV
+Aug 31 22:50:24 minifree kernel: [ 1.284467] [drm:intel_modeset_pipe_config], plane bpp: 24, pipe bpp: 24, dithering: 0
+Aug 31 22:50:24 minifree kernel: [ 1.284470] [drm:intel_dump_pipe_config], [CRTC:3][modeset] config for pipe A
+Aug 31 22:50:24 minifree kernel: [ 1.284473] [drm:intel_dump_pipe_config], cpu_transcoder: A
+Aug 31 22:50:24 minifree kernel: [ 1.284476] [drm:intel_dump_pipe_config], pipe bpp: 24, dithering: 0
+Aug 31 22:50:24 minifree kernel: [ 1.284479] [drm:intel_dump_pipe_config], fdi/pch: 0, lanes: 0, gmch_m: 0, gmch_n: 0, link_m: 0, link_n: 0, tu: 0
+Aug 31 22:50:24 minifree kernel: [ 1.284483] [drm:intel_dump_pipe_config], dp: 0, gmch_m: 0, gmch_n: 0, link_m: 0, link_n: 0, tu: 0
+Aug 31 22:50:24 minifree kernel: [ 1.284486] [drm:intel_dump_pipe_config], requested mode:
+Aug 31 22:50:24 minifree kernel: [ 1.284488] [drm:drm_mode_debug_printmodeline], Modeline 0:"NTSC 480i" 0 107520 1280 1368 1496 1712 1024 1027 1034 1104 0x40 0x0
+Aug 31 22:50:24 minifree kernel: [ 1.284493] [drm:intel_dump_pipe_config], adjusted mode:
+Aug 31 22:50:24 minifree kernel: [ 1.284496] [drm:drm_mode_debug_printmodeline], Modeline 0:"NTSC 480i" 0 107520 1280 1368 1496 1712 1024 1027 1034 1104 0x40 0x0
+Aug 31 22:50:24 minifree kernel: [ 1.284501] [drm:intel_dump_crtc_timings], crtc timings: 108000 1280 1368 1496 1712 1024 1027 1034 1104, type: 0x40 flags: 0x0
+Aug 31 22:50:24 minifree kernel: [ 1.284505] [drm:intel_dump_pipe_config], port clock: 108000
+Aug 31 22:50:24 minifree kernel: [ 1.284508] [drm:intel_dump_pipe_config], pipe src size: 1280x1024
+Aug 31 22:50:24 minifree kernel: [ 1.284511] [drm:intel_dump_pipe_config], gmch pfit: control: 0x00000000, ratios: 0x00000000, lvds border: 0x00000000
+Aug 31 22:50:24 minifree kernel: [ 1.284514] [drm:intel_dump_pipe_config], pch pfit: pos: 0x00000000, size: 0x00000000, disabled
+Aug 31 22:50:24 minifree kernel: [ 1.284517] [drm:intel_dump_pipe_config], ips: 0
+Aug 31 22:50:24 minifree kernel: [ 1.284520] [drm:intel_dump_pipe_config], double wide: 0
+Aug 31 22:50:24 minifree kernel: [ 1.292029] [drm:i9xx_update_plane], Writing base 00020000 00000000 0 0 5120
+Aug 31 22:50:24 minifree kernel: [ 1.292040] [drm:intel_crtc_mode_set], [ENCODER:18:TV-18] set [MODE:0:NTSC 480i]
+Aug 31 22:50:24 minifree kernel: [ 1.297668] [drm:i9xx_get_fifo_size], FIFO size - (0x00001d9c) A: 28
+Aug 31 22:50:24 minifree kernel: [ 1.297673] [drm:i9xx_get_fifo_size], FIFO size - (0x00001d9c) B: 31
+Aug 31 22:50:24 minifree kernel: [ 1.297676] [drm:intel_calculate_wm], FIFO entries required for mode: 34
+Aug 31 22:50:24 minifree kernel: [ 1.297679] [drm:intel_calculate_wm], FIFO watermark level: -5
+Aug 31 22:50:24 minifree kernel: [ 1.297681] [drm:i9xx_update_wm], FIFO watermarks - A: 26, B: 1
+Aug 31 22:50:24 minifree kernel: [ 1.297685] [drm:i9xx_update_wm], self-refresh entries: 80
+Aug 31 22:50:24 minifree kernel: [ 1.297687] [drm:i9xx_update_wm], Setting FIFO watermarks - A: 26, B: 1, C: 2, SR 47
+Aug 31 22:50:24 minifree kernel: [ 1.297691] [drm:i9xx_update_wm], memory self refresh enabled
+Aug 31 22:50:24 minifree kernel: [ 1.320114] [drm:intel_connector_check_state], [CONNECTOR:5:LVDS-1]
+Aug 31 22:50:24 minifree kernel: [ 1.320123] [drm:intel_connector_check_state], [CONNECTOR:17:SVIDEO-1]
+Aug 31 22:50:24 minifree kernel: [ 1.320128] [drm:check_encoder_state], [ENCODER:6:LVDS-6]
+Aug 31 22:50:24 minifree kernel: [ 1.320133] [drm:check_encoder_state], [ENCODER:16:DAC-16]
+Aug 31 22:50:24 minifree kernel: [ 1.320138] [drm:check_encoder_state], [ENCODER:18:TV-18]
+Aug 31 22:50:24 minifree kernel: [ 1.320142] [drm:check_crtc_state], [CRTC:3]
+Aug 31 22:50:24 minifree kernel: [ 1.320155] [drm:check_crtc_state], [CRTC:4]
+Aug 31 22:50:24 minifree kernel: [ 1.360100] [drm:intel_tv_detect_type], TV detected: c0007, 7f0000aa
+Aug 31 22:50:24 minifree kernel: [ 1.360106] [drm:intel_tv_detect_type], Unrecognised TV connection
+Aug 31 22:50:24 minifree kernel: [ 1.376107] [drm:intel_release_load_detect_pipe], [CONNECTOR:17:SVIDEO-1], [ENCODER:18:TV-18]
+Aug 31 22:50:24 minifree kernel: [ 1.376114] [drm:intel_modeset_affected_pipes], set mode pipe masks: modeset: 0, prepare: 0, disable: 1
+Aug 31 22:50:24 minifree kernel: [ 1.421067] [drm:i9xx_get_fifo_size], FIFO size - (0x00001d9c) A: 28
+Aug 31 22:50:24 minifree kernel: [ 1.421071] [drm:i9xx_get_fifo_size], FIFO size - (0x00001d9c) B: 31
+Aug 31 22:50:24 minifree kernel: [ 1.421074] [drm:i9xx_update_wm], FIFO watermarks - A: 26, B: 29
+Aug 31 22:50:24 minifree kernel: [ 1.421077] [drm:i9xx_update_wm], Setting FIFO watermarks - A: 26, B: 29, C: 2, SR 1
+Aug 31 22:50:24 minifree kernel: [ 1.421080] [drm:i9xx_update_wm], memory self refresh disabled
+Aug 31 22:50:24 minifree kernel: [ 1.421087] [drm:intel_connector_check_state], [CONNECTOR:5:LVDS-1]
+Aug 31 22:50:24 minifree kernel: [ 1.421091] [drm:check_encoder_state], [ENCODER:6:LVDS-6]
+Aug 31 22:50:24 minifree kernel: [ 1.421094] [drm:check_encoder_state], [ENCODER:16:DAC-16]
+Aug 31 22:50:24 minifree kernel: [ 1.421098] [drm:check_encoder_state], [ENCODER:18:TV-18]
+Aug 31 22:50:24 minifree kernel: [ 1.421101] [drm:check_crtc_state], [CRTC:3]
+Aug 31 22:50:24 minifree kernel: [ 1.421104] [drm:check_crtc_state], [CRTC:4]
+Aug 31 22:50:24 minifree kernel: [ 1.421246] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:17:SVIDEO-1] disconnected
+Aug 31 22:50:24 minifree kernel: [ 1.421251] [drm:drm_setup_crtcs],
+Aug 31 22:50:24 minifree kernel: [ 1.421254] [drm:drm_enable_connectors], connector 5 enabled? yes
+Aug 31 22:50:24 minifree kernel: [ 1.421257] [drm:drm_enable_connectors], connector 15 enabled? no
+Aug 31 22:50:24 minifree kernel: [ 1.421260] [drm:drm_enable_connectors], connector 17 enabled? no
+Aug 31 22:50:24 minifree kernel: [ 1.421263] [drm:drm_target_preferred], looking for cmdline mode on connector 5
+Aug 31 22:50:24 minifree kernel: [ 1.421266] [drm:drm_target_preferred], looking for preferred mode on connector 5
+Aug 31 22:50:24 minifree kernel: [ 1.421268] [drm:drm_target_preferred], found mode 1024x768
+Aug 31 22:50:24 minifree kernel: [ 1.421271] [drm:drm_setup_crtcs], picking CRTCs for 4096x4096 config
+Aug 31 22:50:24 minifree kernel: [ 1.421275] [drm:drm_setup_crtcs], desired mode 1024x768 set on crtc 4
+Aug 31 22:50:24 minifree kernel: [ 1.421281] [drm:i915_gem_object_create_stolen], creating stolen object: size=300000
+Aug 31 22:50:24 minifree kernel: [ 1.421285] [drm:i915_pages_create_for_stolen], offset=0x20000, size=3145728
+Aug 31 22:50:24 minifree kernel: [ 1.422732] [drm:intelfb_create], allocated 1024x768 fb: 0x00020000, bo ffff880035eaa300
+Aug 31 22:50:24 minifree kernel: [ 1.422872] fbcon: inteldrmfb (fb0) is primary device
+Aug 31 22:50:24 minifree kernel: [ 1.423535] [drm:intel_crtc_set_config], [CRTC:3] [NOFB]
+Aug 31 22:50:24 minifree kernel: [ 1.423538] [drm:intel_set_config_compute_mode_changes], computed changes for [CRTC:3], mode_changed=0, fb_changed=0
+Aug 31 22:50:24 minifree kernel: [ 1.423541] [drm:intel_modeset_stage_output_state], [CONNECTOR:5:LVDS-1] to [CRTC:4]
+Aug 31 22:50:24 minifree kernel: [ 1.423544] [drm:intel_crtc_set_config], [CRTC:4] [FB:33] #connectors=1 (x y) (0 0)
+Aug 31 22:50:24 minifree kernel: [ 1.423546] [drm:intel_set_config_compute_mode_changes], inactive crtc, full mode set
+Aug 31 22:50:24 minifree kernel: [ 1.423548] [drm:intel_set_config_compute_mode_changes], modes are different, full mode set
+Aug 31 22:50:24 minifree kernel: [ 1.423552] [drm:drm_mode_debug_printmodeline], Modeline 0:"" 0 0 0 0 0 0 0 0 0 0 0x0 0x0
+Aug 31 22:50:24 minifree kernel: [ 1.423556] [drm:drm_mode_debug_printmodeline], Modeline 32:"1024x768" 50 54160 1024 1048 1184 1344 768 771 777 806 0x48 0xa
+Aug 31 22:50:24 minifree kernel: [ 1.423558] [drm:intel_set_config_compute_mode_changes], computed changes for [CRTC:4], mode_changed=1, fb_changed=0
+Aug 31 22:50:24 minifree kernel: [ 1.423560] [drm:intel_modeset_stage_output_state], [CONNECTOR:5:LVDS-1] to [CRTC:4]
+Aug 31 22:50:24 minifree kernel: [ 1.423563] [drm:intel_modeset_affected_pipes], set mode pipe masks: modeset: 2, prepare: 2, disable: 0
+Aug 31 22:50:24 minifree kernel: [ 1.423566] [drm:connected_sink_compute_bpp], [CONNECTOR:5:LVDS-1] checking for sink bpp constrains
+Aug 31 22:50:24 minifree kernel: [ 1.423570] [drm:intel_lvds_compute_config], forcing display bpp (was 24) to LVDS (18)
+Aug 31 22:50:24 minifree kernel: [ 1.423573] [drm:intel_modeset_pipe_config], plane bpp: 24, pipe bpp: 18, dithering: 1
+Aug 31 22:50:24 minifree kernel: [ 1.423576] [drm:intel_dump_pipe_config], [CRTC:4][modeset] config for pipe B
+Aug 31 22:50:24 minifree kernel: [ 1.423577] [drm:intel_dump_pipe_config], cpu_transcoder: B
+Aug 31 22:50:24 minifree kernel: [ 1.423579] [drm:intel_dump_pipe_config], pipe bpp: 18, dithering: 1
+Aug 31 22:50:24 minifree kernel: [ 1.423582] [drm:intel_dump_pipe_config], fdi/pch: 0, lanes: 0, gmch_m: 0, gmch_n: 0, link_m: 0, link_n: 0, tu: 0
+Aug 31 22:50:24 minifree kernel: [ 1.423584] [drm:intel_dump_pipe_config], dp: 0, gmch_m: 0, gmch_n: 0, link_m: 0, link_n: 0, tu: 0
+Aug 31 22:50:24 minifree kernel: [ 1.423586] [drm:intel_dump_pipe_config], requested mode:
+Aug 31 22:50:24 minifree kernel: [ 1.423589] [drm:drm_mode_debug_printmodeline], Modeline 0:"1024x768" 50 54160 1024 1048 1184 1344 768 771 777 806 0x48 0xa
+Aug 31 22:50:24 minifree kernel: [ 1.423591] [drm:intel_dump_pipe_config], adjusted mode:
+Aug 31 22:50:24 minifree kernel: [ 1.423595] [drm:drm_mode_debug_printmodeline], Modeline 0:"1024x768" 50 54160 1024 1048 1184 1344 768 771 777 806 0x48 0xa
+Aug 31 22:50:24 minifree kernel: [ 1.423598] [drm:intel_dump_crtc_timings], crtc timings: 54160 1024 1048 1184 1344 768 771 777 806, type: 0x48 flags: 0xa
+Aug 31 22:50:24 minifree kernel: [ 1.423600] [drm:intel_dump_pipe_config], port clock: 54160
+Aug 31 22:50:24 minifree kernel: [ 1.423602] [drm:intel_dump_pipe_config], pipe src size: 1024x768
+Aug 31 22:50:24 minifree kernel: [ 1.423604] [drm:intel_dump_pipe_config], gmch pfit: control: 0x00000008, ratios: 0x00000000, lvds border: 0x00000000
+Aug 31 22:50:24 minifree kernel: [ 1.423607] [drm:intel_dump_pipe_config], pch pfit: pos: 0x00000000, size: 0x00000000, disabled
+Aug 31 22:50:24 minifree kernel: [ 1.423608] [drm:intel_dump_pipe_config], ips: 0
+Aug 31 22:50:24 minifree kernel: [ 1.423610] [drm:intel_dump_pipe_config], double wide: 0
+Aug 31 22:50:24 minifree kernel: [ 1.423613] [drm:intel_panel_actually_set_backlight], set backlight PWM = 0
+Aug 31 22:50:24 minifree kernel: [ 1.457065] [drm:i9xx_pfit_disable], disabling pfit, current: 0x80000220
+Aug 31 22:50:24 minifree kernel: [ 1.457069] [drm:i9xx_get_fifo_size], FIFO size - (0x00001d9c) A: 28
+Aug 31 22:50:24 minifree kernel: [ 1.457071] [drm:i9xx_get_fifo_size], FIFO size - (0x00001d9c) B: 31
+Aug 31 22:50:24 minifree kernel: [ 1.457073] [drm:i9xx_update_wm], FIFO watermarks - A: 26, B: 29
+Aug 31 22:50:24 minifree kernel: [ 1.457076] [drm:i9xx_update_wm], Setting FIFO watermarks - A: 26, B: 29, C: 2, SR 1
+Aug 31 22:50:24 minifree kernel: [ 1.457077] [drm:i9xx_update_wm], memory self refresh disabled
+Aug 31 22:50:24 minifree kernel: [ 1.457082] [drm:i9xx_get_refclk], using SSC reference clock of 100 MHz
+Aug 31 22:50:24 minifree kernel: [ 1.457252] [drm:i9xx_update_plane], Writing base 00020000 00000000 0 0 4096
+Aug 31 22:50:24 minifree kernel: [ 1.457256] [drm:intel_crtc_mode_set], [ENCODER:6:LVDS-6] set [MODE:0:1024x768]
+Aug 31 22:50:24 minifree kernel: [ 1.457893] [drm:i9xx_get_fifo_size], FIFO size - (0x00001d9c) A: 28
+Aug 31 22:50:24 minifree kernel: [ 1.457895] [drm:intel_calculate_wm], FIFO entries required for mode: 17
+Aug 31 22:50:24 minifree kernel: [ 1.457896] [drm:intel_calculate_wm], FIFO watermark level: 9
+Aug 31 22:50:24 minifree kernel: [ 1.457898] [drm:i9xx_get_fifo_size], FIFO size - (0x00001d9c) B: 31
+Aug 31 22:50:24 minifree kernel: [ 1.457900] [drm:i9xx_update_wm], FIFO watermarks - A: 9, B: 29
+Aug 31 22:50:24 minifree kernel: [ 1.457902] [drm:i9xx_update_wm], self-refresh entries: 64
+Aug 31 22:50:24 minifree kernel: [ 1.457905] [drm:i9xx_update_wm], Setting FIFO watermarks - A: 9, B: 29, C: 2, SR 63
+Aug 31 22:50:24 minifree kernel: [ 1.457906] [drm:i9xx_update_wm], memory self refresh enabled
+Aug 31 22:50:24 minifree kernel: [ 1.650555] psmouse serio1: alps: Unknown ALPS touchpad: E7=10 00 64, EC=10 00 64
+Aug 31 22:50:24 minifree kernel: [ 1.748270] firewire_core 0000:05:00.1: created device fw0: GUID 0000000000000000, S400
+Aug 31 22:50:24 minifree kernel: [ 1.800110] [drm:intel_panel_enable_backlight], pipe B
+Aug 31 22:50:24 minifree kernel: [ 1.800114] [drm:intel_panel_actually_set_backlight], set backlight PWM = 24832
+Aug 31 22:50:24 minifree kernel: [ 1.800120] [drm:intel_connector_check_state], [CONNECTOR:5:LVDS-1]
+Aug 31 22:50:24 minifree kernel: [ 1.800125] [drm:check_encoder_state], [ENCODER:6:LVDS-6]
+Aug 31 22:50:24 minifree kernel: [ 1.800129] [drm:check_encoder_state], [ENCODER:16:DAC-16]
+Aug 31 22:50:24 minifree kernel: [ 1.800133] [drm:check_encoder_state], [ENCODER:18:TV-18]
+Aug 31 22:50:24 minifree kernel: [ 1.800136] [drm:check_crtc_state], [CRTC:3]
+Aug 31 22:50:24 minifree kernel: [ 1.800139] [drm:check_crtc_state], [CRTC:4]
+Aug 31 22:50:24 minifree kernel: [ 1.800178] [drm:intel_crtc_set_config], [CRTC:4] [FB:33] #connectors=1 (x y) (0 0)
+Aug 31 22:50:24 minifree kernel: [ 1.800182] [drm:intel_set_config_compute_mode_changes], computed changes for [CRTC:4], mode_changed=0, fb_changed=0
+Aug 31 22:50:24 minifree kernel: [ 1.800186] [drm:intel_modeset_stage_output_state], [CONNECTOR:5:LVDS-1] to [CRTC:4]
+Aug 31 22:50:24 minifree kernel: [ 1.803473] Console: switching to colour frame buffer device 128x48
+Aug 31 22:50:24 minifree kernel: [ 1.803478] [drm:intel_crtc_set_config], [CRTC:4] [FB:33] #connectors=1 (x y) (0 0)
+Aug 31 22:50:24 minifree kernel: [ 1.803481] [drm:intel_set_config_compute_mode_changes], computed changes for [CRTC:4], mode_changed=0, fb_changed=0
+Aug 31 22:50:24 minifree kernel: [ 1.803483] [drm:intel_modeset_stage_output_state], [CONNECTOR:5:LVDS-1] to [CRTC:4]
+Aug 31 22:50:24 minifree kernel: [ 1.806832] i915 0000:00:02.0: fb0: inteldrmfb frame buffer device
+Aug 31 22:50:24 minifree kernel: [ 1.806835] i915 0000:00:02.0: registered panic notifier
+Aug 31 22:50:24 minifree kernel: [ 1.806859] [drm] Initialized i915 1.6.0 20080730 for 0000:00:02.0 on minor 0
+Aug 31 22:50:24 minifree kernel: [ 1.806909] ahci 0000:00:1f.2: version 3.0
+Aug 31 22:50:24 minifree kernel: [ 1.807136] ahci 0000:00:1f.2: irq 45 for MSI/MSI-X
+Aug 31 22:50:24 minifree kernel: [ 1.807190] ahci 0000:00:1f.2: SSS flag set, parallel bus scan disabled
+Aug 31 22:50:24 minifree kernel: [ 1.807222] ahci 0000:00:1f.2: AHCI 0001.0100 32 slots 4 ports 1.5 Gbps 0x1 impl SATA mode
+Aug 31 22:50:24 minifree kernel: [ 1.807228] ahci 0000:00:1f.2: flags: 64bit ncq ilck stag pm led clo pmp pio slum part
+Aug 31 22:50:24 minifree kernel: [ 1.808040] scsi2 : ahci
+Aug 31 22:50:24 minifree kernel: [ 1.808204] scsi3 : ahci
+Aug 31 22:50:24 minifree kernel: [ 1.808350] scsi4 : ahci
+Aug 31 22:50:24 minifree kernel: [ 1.808499] scsi5 : ahci
+Aug 31 22:50:24 minifree kernel: [ 1.808567] ata3: SATA max UDMA/133 abar m1024@0xe4344400 port 0xe4344500 irq 45
+Aug 31 22:50:24 minifree kernel: [ 1.808570] ata4: DUMMY
+Aug 31 22:50:24 minifree kernel: [ 1.808572] ata5: DUMMY
+Aug 31 22:50:24 minifree kernel: [ 1.808574] ata6: DUMMY
+Aug 31 22:50:24 minifree kernel: [ 2.014396] psmouse serio1: trackpoint: IBM TrackPoint firmware: 0x0e, buttons: 3/3
+Aug 31 22:50:24 minifree kernel: [ 2.033367] input: TPPS/2 IBM TrackPoint as /devices/platform/i8042/serio1/input/input6
+Aug 31 22:50:24 minifree kernel: [ 2.304119] ata3: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
+Aug 31 22:50:24 minifree kernel: [ 2.305312] ata3.00: ATA-8: HITACHI HTS722010K9SA00, DC2ZC75A, max UDMA/133
+Aug 31 22:50:24 minifree kernel: [ 2.305317] ata3.00: 195371568 sectors, multi 0: LBA48 NCQ (depth 31/32), AA
+Aug 31 22:50:24 minifree kernel: [ 2.306684] ata3.00: configured for UDMA/133
+Aug 31 22:50:24 minifree kernel: [ 2.306893] scsi 2:0:0:0: Direct-Access ATA HITACHI HTS72201 DC2Z PQ: 0 ANSI: 5
+Aug 31 22:50:24 minifree kernel: [ 2.307119] sd 2:0:0:0: Attached scsi generic sg0 type 0
+Aug 31 22:50:24 minifree kernel: [ 2.307251] sd 2:0:0:0: [sda] 195371568 512-byte logical blocks: (100 GB/93.1 GiB)
+Aug 31 22:50:24 minifree kernel: [ 2.307395] sd 2:0:0:0: [sda] Write Protect is off
+Aug 31 22:50:24 minifree kernel: [ 2.307400] sd 2:0:0:0: [sda] Mode Sense: 00 3a 00 00
+Aug 31 22:50:24 minifree kernel: [ 2.307477] sd 2:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
+Aug 31 22:50:24 minifree kernel: [ 2.632829] sda: sda1
+Aug 31 22:50:24 minifree kernel: [ 2.633271] sd 2:0:0:0: [sda] Attached SCSI disk
+Aug 31 22:50:24 minifree kernel: [ 2.784099] [drm:intel_crtc_set_config], [CRTC:4] [FB:33] #connectors=1 (x y) (0 0)
+Aug 31 22:50:24 minifree kernel: [ 2.784104] [drm:intel_set_config_compute_mode_changes], computed changes for [CRTC:4], mode_changed=0, fb_changed=0
+Aug 31 22:50:24 minifree kernel: [ 2.784107] [drm:intel_modeset_stage_output_state], [CONNECTOR:5:LVDS-1] to [CRTC:4]
+Aug 31 22:50:24 minifree kernel: [ 2.908607] [drm:i915_gem_open],
+Aug 31 22:50:24 minifree kernel: [ 2.908634] [drm:intel_crtc_cursor_set], cursor off
+Aug 31 22:50:24 minifree kernel: [ 2.908638] [drm:intel_crtc_set_config], [CRTC:3] [NOFB]
+Aug 31 22:50:24 minifree kernel: [ 2.908643] [drm:intel_set_config_compute_mode_changes], computed changes for [CRTC:3], mode_changed=0, fb_changed=0
+Aug 31 22:50:24 minifree kernel: [ 2.908648] [drm:intel_modeset_stage_output_state], [CONNECTOR:5:LVDS-1] to [CRTC:4]
+Aug 31 22:50:24 minifree kernel: [ 2.908652] [drm:intel_crtc_cursor_set], cursor off
+Aug 31 22:50:24 minifree kernel: [ 2.908655] [drm:intel_crtc_set_config], [CRTC:4] [FB:33] #connectors=1 (x y) (0 0)
+Aug 31 22:50:24 minifree kernel: [ 2.908660] [drm:intel_set_config_compute_mode_changes], computed changes for [CRTC:4], mode_changed=0, fb_changed=0
+Aug 31 22:50:24 minifree kernel: [ 2.908663] [drm:intel_modeset_stage_output_state], [CONNECTOR:5:LVDS-1] to [CRTC:4]
+Aug 31 22:50:24 minifree kernel: [ 2.908682] [drm:i915_gem_open],
+Aug 31 22:50:24 minifree kernel: [ 2.908697] [drm:intel_crtc_cursor_set], cursor off
+Aug 31 22:50:24 minifree kernel: [ 2.908700] [drm:intel_crtc_set_config], [CRTC:3] [NOFB]
+Aug 31 22:50:24 minifree kernel: [ 2.908703] [drm:intel_set_config_compute_mode_changes], computed changes for [CRTC:3], mode_changed=0, fb_changed=0
+Aug 31 22:50:24 minifree kernel: [ 2.908706] [drm:intel_modeset_stage_output_state], [CONNECTOR:5:LVDS-1] to [CRTC:4]
+Aug 31 22:50:24 minifree kernel: [ 2.908709] [drm:intel_crtc_cursor_set], cursor off
+Aug 31 22:50:24 minifree kernel: [ 2.908712] [drm:intel_crtc_set_config], [CRTC:4] [FB:33] #connectors=1 (x y) (0 0)
+Aug 31 22:50:24 minifree kernel: [ 2.908716] [drm:intel_set_config_compute_mode_changes], computed changes for [CRTC:4], mode_changed=0, fb_changed=0
+Aug 31 22:50:24 minifree kernel: [ 2.908719] [drm:intel_modeset_stage_output_state], [CONNECTOR:5:LVDS-1] to [CRTC:4]
+Aug 31 22:50:24 minifree kernel: [ 2.908735] [drm:i915_gem_open],
+Aug 31 22:50:24 minifree kernel: [ 2.908824] [drm:drm_mode_getresources], CRTC[2] CONNECTORS[3] ENCODERS[3]
+Aug 31 22:50:24 minifree kernel: [ 2.908830] [drm:drm_mode_getresources], CRTC[2] CONNECTORS[3] ENCODERS[3]
+Aug 31 22:50:24 minifree kernel: [ 2.908841] [drm:drm_mode_getconnector], [CONNECTOR:5:?]
+Aug 31 22:50:24 minifree kernel: [ 2.908846] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:5:LVDS-1]
+Aug 31 22:50:24 minifree kernel: [ 2.908850] [drm:intel_lvds_detect], [CONNECTOR:5:LVDS-1]
+Aug 31 22:50:24 minifree kernel: [ 2.908871] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:5:LVDS-1] probed modes :
+Aug 31 22:50:24 minifree kernel: [ 2.908874] [drm:drm_mode_debug_printmodeline], Modeline 8:"1024x768" 50 54160 1024 1048 1184 1344 768 771 777 806 0x48 0xa
+Aug 31 22:50:24 minifree kernel: [ 2.908880] [drm:drm_mode_debug_printmodeline], Modeline 12:"1024x768" 60 65000 1024 1048 1184 1344 768 771 777 806 0x40 0xa
+Aug 31 22:50:24 minifree kernel: [ 2.908885] [drm:drm_mode_debug_printmodeline], Modeline 9:"1024x768" 40 43330 1024 1048 1184 1344 768 771 777 806 0x40 0xa
+Aug 31 22:50:24 minifree kernel: [ 2.908889] [drm:drm_mode_debug_printmodeline], Modeline 10:"800x600" 60 40000 800 840 968 1056 600 601 605 628 0x40 0x5
+Aug 31 22:50:24 minifree kernel: [ 2.908894] [drm:drm_mode_debug_printmodeline], Modeline 11:"640x480" 60 25200 640 656 752 800 480 490 492 525 0x40 0xa
+Aug 31 22:50:24 minifree kernel: [ 2.908901] [drm:drm_mode_getconnector], [CONNECTOR:5:?]
+Aug 31 22:50:24 minifree kernel: [ 2.912519] [drm:drm_mode_getconnector], [CONNECTOR:15:?]
+Aug 31 22:50:24 minifree kernel: [ 2.912529] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:15:VGA-1]
+Aug 31 22:50:24 minifree kernel: [ 2.912533] [drm:intel_crt_detect], [CONNECTOR:15:VGA-1] force=1
+Aug 31 22:50:24 minifree kernel: [ 2.928108] [drm:intel_crt_detect], CRT not detected via hotplug
+Aug 31 22:50:24 minifree kernel: [ 2.932103] [drm:gmbus_xfer], GMBUS [i915 gmbus vga] NAK for addr: 0050 r(1)
+Aug 31 22:50:24 minifree kernel: [ 2.932110] [drm:drm_do_probe_ddc_edid], drm: skipping non-existent adapter i915 gmbus vga
+Aug 31 22:50:24 minifree kernel: [ 2.932115] [drm:intel_crt_get_edid], CRT GMBUS EDID read failed, retry using GPIO bit-banging
+Aug 31 22:50:24 minifree kernel: [ 2.932118] [drm:intel_gmbus_force_bit], enabling bit-banging on i915 gmbus vga. force bit now 1
+Aug 31 22:50:24 minifree kernel: [ 2.932404] [drm:drm_do_probe_ddc_edid], drm: skipping non-existent adapter i915 gmbus vga
+Aug 31 22:50:24 minifree kernel: [ 2.932407] [drm:intel_gmbus_force_bit], disabling bit-banging on i915 gmbus vga. force bit now 0
+Aug 31 22:50:24 minifree kernel: [ 2.932410] [drm:intel_crt_detect_ddc], CRT not detected via DDC:0x50 [no valid EDID found]
+Aug 31 22:50:24 minifree kernel: [ 2.932413] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:15:VGA-1] disconnected
+Aug 31 22:50:24 minifree kernel: [ 2.932424] [drm:drm_mode_getconnector], [CONNECTOR:15:?]
+Aug 31 22:50:24 minifree kernel: [ 2.932427] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:15:VGA-1]
+Aug 31 22:50:24 minifree kernel: [ 2.932430] [drm:intel_crt_detect], [CONNECTOR:15:VGA-1] force=1
+Aug 31 22:50:24 minifree kernel: [ 2.948104] [drm:intel_crt_detect], CRT not detected via hotplug
+Aug 31 22:50:24 minifree kernel: [ 2.952104] [drm:gmbus_xfer], GMBUS [i915 gmbus vga] NAK for addr: 0050 r(1)
+Aug 31 22:50:24 minifree kernel: [ 2.952111] [drm:drm_do_probe_ddc_edid], drm: skipping non-existent adapter i915 gmbus vga
+Aug 31 22:50:24 minifree kernel: [ 2.952115] [drm:intel_crt_get_edid], CRT GMBUS EDID read failed, retry using GPIO bit-banging
+Aug 31 22:50:24 minifree kernel: [ 2.952118] [drm:intel_gmbus_force_bit], enabling bit-banging on i915 gmbus vga. force bit now 1
+Aug 31 22:50:24 minifree kernel: [ 2.952401] [drm:drm_do_probe_ddc_edid], drm: skipping non-existent adapter i915 gmbus vga
+Aug 31 22:50:24 minifree kernel: [ 2.952403] [drm:intel_gmbus_force_bit], disabling bit-banging on i915 gmbus vga. force bit now 0
+Aug 31 22:50:24 minifree kernel: [ 2.952406] [drm:intel_crt_detect_ddc], CRT not detected via DDC:0x50 [no valid EDID found]
+Aug 31 22:50:24 minifree kernel: [ 2.952409] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:15:VGA-1] disconnected
+Aug 31 22:50:24 minifree kernel: [ 2.952420] [drm:drm_mode_getconnector], [CONNECTOR:17:?]
+Aug 31 22:50:24 minifree kernel: [ 2.952423] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:17:SVIDEO-1]
+Aug 31 22:50:24 minifree kernel: [ 2.952427] [drm:intel_tv_detect], [CONNECTOR:17:SVIDEO-1] force=1
+Aug 31 22:50:24 minifree kernel: [ 2.952431] [drm:intel_get_load_detect_pipe], [CONNECTOR:17:SVIDEO-1], [ENCODER:18:TV-18]
+Aug 31 22:50:24 minifree kernel: [ 2.952436] [drm:intel_get_load_detect_pipe], creating tmp fb for load-detection
+Aug 31 22:50:24 minifree kernel: [ 2.952459] [drm:intel_modeset_affected_pipes], set mode pipe masks: modeset: 1, prepare: 1, disable: 0
+Aug 31 22:50:24 minifree kernel: [ 2.952466] [drm:connected_sink_compute_bpp], [CONNECTOR:17:SVIDEO-1] checking for sink bpp constrains
+Aug 31 22:50:24 minifree kernel: [ 2.952471] [drm:intel_tv_compute_config], forcing bpc to 8 for TV
+Aug 31 22:50:24 minifree kernel: [ 2.952474] [drm:intel_modeset_pipe_config], plane bpp: 24, pipe bpp: 24, dithering: 0
+Aug 31 22:50:24 minifree kernel: [ 2.952477] [drm:intel_dump_pipe_config], [CRTC:3][modeset] config for pipe A
+Aug 31 22:50:24 minifree kernel: [ 2.952480] [drm:intel_dump_pipe_config], cpu_transcoder: A
+Aug 31 22:50:24 minifree kernel: [ 2.952483] [drm:intel_dump_pipe_config], pipe bpp: 24, dithering: 0
+Aug 31 22:50:24 minifree kernel: [ 2.952486] [drm:intel_dump_pipe_config], fdi/pch: 0, lanes: 0, gmch_m: 0, gmch_n: 0, link_m: 0, link_n: 0, tu: 0
+Aug 31 22:50:24 minifree kernel: [ 2.952489] [drm:intel_dump_pipe_config], dp: 0, gmch_m: 0, gmch_n: 0, link_m: 0, link_n: 0, tu: 0
+Aug 31 22:50:24 minifree kernel: [ 2.952493] [drm:intel_dump_pipe_config], requested mode:
+Aug 31 22:50:24 minifree kernel: [ 2.952495] [drm:drm_mode_debug_printmodeline], Modeline 0:"NTSC 480i" 0 107520 1280 1368 1496 1712 1024 1027 1034 1104 0x40 0x0
+Aug 31 22:50:24 minifree kernel: [ 2.952500] [drm:intel_dump_pipe_config], adjusted mode:
+Aug 31 22:50:24 minifree kernel: [ 2.952503] [drm:drm_mode_debug_printmodeline], Modeline 0:"NTSC 480i" 0 107520 1280 1368 1496 1712 1024 1027 1034 1104 0x40 0x0
+Aug 31 22:50:24 minifree kernel: [ 2.952508] [drm:intel_dump_crtc_timings], crtc timings: 108000 1280 1368 1496 1712 1024 1027 1034 1104, type: 0x40 flags: 0x0
+Aug 31 22:50:24 minifree kernel: [ 2.952512] [drm:intel_dump_pipe_config], port clock: 108000
+Aug 31 22:50:24 minifree kernel: [ 2.952514] [drm:intel_dump_pipe_config], pipe src size: 1280x1024
+Aug 31 22:50:24 minifree kernel: [ 2.952517] [drm:intel_dump_pipe_config], gmch pfit: control: 0x00000000, ratios: 0x00000000, lvds border: 0x00000000
+Aug 31 22:50:24 minifree kernel: [ 2.952521] [drm:intel_dump_pipe_config], pch pfit: pos: 0x00000000, size: 0x00000000, disabled
+Aug 31 22:50:24 minifree kernel: [ 2.952524] [drm:intel_dump_pipe_config], ips: 0
+Aug 31 22:50:24 minifree kernel: [ 2.952527] [drm:intel_dump_pipe_config], double wide: 0
+Aug 31 22:50:24 minifree kernel: [ 2.959612] [drm:i9xx_update_plane], Writing base 00320000 00000000 0 0 5120
+Aug 31 22:50:24 minifree kernel: [ 2.959624] [drm:intel_crtc_mode_set], [ENCODER:18:TV-18] set [MODE:0:NTSC 480i]
+Aug 31 22:50:24 minifree kernel: [ 2.965254] [drm:i9xx_get_fifo_size], FIFO size - (0x00001d9c) A: 28
+Aug 31 22:50:24 minifree kernel: [ 2.965259] [drm:intel_calculate_wm], FIFO entries required for mode: 17
+Aug 31 22:50:24 minifree kernel: [ 2.965261] [drm:intel_calculate_wm], FIFO watermark level: 9
+Aug 31 22:50:24 minifree kernel: [ 2.965264] [drm:i9xx_get_fifo_size], FIFO size - (0x00001d9c) B: 31
+Aug 31 22:50:24 minifree kernel: [ 2.965267] [drm:intel_calculate_wm], FIFO entries required for mode: 34
+Aug 31 22:50:24 minifree kernel: [ 2.965270] [drm:intel_calculate_wm], FIFO watermark level: -5
+Aug 31 22:50:24 minifree kernel: [ 2.965272] [drm:i9xx_update_wm], FIFO watermarks - A: 9, B: 1
+Aug 31 22:50:24 minifree kernel: [ 2.965276] [drm:i9xx_update_wm], Setting FIFO watermarks - A: 9, B: 1, C: 2, SR 1
+Aug 31 22:50:24 minifree kernel: [ 2.965279] [drm:i9xx_update_wm], memory self refresh disabled
+Aug 31 22:50:24 minifree kernel: [ 2.988110] [drm:intel_connector_check_state], [CONNECTOR:5:LVDS-1]
+Aug 31 22:50:24 minifree kernel: [ 2.988118] [drm:intel_connector_check_state], [CONNECTOR:17:SVIDEO-1]
+Aug 31 22:50:24 minifree kernel: [ 2.988123] [drm:check_encoder_state], [ENCODER:6:LVDS-6]
+Aug 31 22:50:24 minifree kernel: [ 2.988128] [drm:check_encoder_state], [ENCODER:16:DAC-16]
+Aug 31 22:50:24 minifree kernel: [ 2.988133] [drm:check_encoder_state], [ENCODER:18:TV-18]
+Aug 31 22:50:24 minifree kernel: [ 2.988138] [drm:check_crtc_state], [CRTC:3]
+Aug 31 22:50:24 minifree kernel: [ 2.988151] [drm:check_crtc_state], [CRTC:4]
+Aug 31 22:50:24 minifree kernel: [ 3.028106] [drm:intel_tv_detect_type], TV detected: c0007, 7f0000aa
+Aug 31 22:50:24 minifree kernel: [ 3.028114] [drm:intel_tv_detect_type], Unrecognised TV connection
+Aug 31 22:50:24 minifree kernel: [ 3.044104] [drm:intel_release_load_detect_pipe], [CONNECTOR:17:SVIDEO-1], [ENCODER:18:TV-18]
+Aug 31 22:50:24 minifree kernel: [ 3.044113] [drm:intel_modeset_affected_pipes], set mode pipe masks: modeset: 0, prepare: 0, disable: 1
+Aug 31 22:50:24 minifree kernel: [ 3.089061] [drm:i9xx_get_fifo_size], FIFO size - (0x00001d9c) A: 28
+Aug 31 22:50:24 minifree kernel: [ 3.089065] [drm:intel_calculate_wm], FIFO entries required for mode: 17
+Aug 31 22:50:24 minifree kernel: [ 3.089067] [drm:intel_calculate_wm], FIFO watermark level: 9
+Aug 31 22:50:24 minifree kernel: [ 3.089070] [drm:i9xx_get_fifo_size], FIFO size - (0x00001d9c) B: 31
+Aug 31 22:50:24 minifree kernel: [ 3.089074] [drm:i9xx_update_wm], FIFO watermarks - A: 9, B: 29
+Aug 31 22:50:24 minifree kernel: [ 3.089077] [drm:i9xx_update_wm], self-refresh entries: 64
+Aug 31 22:50:24 minifree kernel: [ 3.089079] [drm:i9xx_update_wm], Setting FIFO watermarks - A: 9, B: 29, C: 2, SR 63
+Aug 31 22:50:24 minifree kernel: [ 3.089083] [drm:i9xx_update_wm], memory self refresh enabled
+Aug 31 22:50:24 minifree kernel: [ 3.089089] [drm:intel_connector_check_state], [CONNECTOR:5:LVDS-1]
+Aug 31 22:50:24 minifree kernel: [ 3.089094] [drm:check_encoder_state], [ENCODER:6:LVDS-6]
+Aug 31 22:50:24 minifree kernel: [ 3.089097] [drm:check_encoder_state], [ENCODER:16:DAC-16]
+Aug 31 22:50:24 minifree kernel: [ 3.089100] [drm:check_encoder_state], [ENCODER:18:TV-18]
+Aug 31 22:50:24 minifree kernel: [ 3.089103] [drm:check_crtc_state], [CRTC:3]
+Aug 31 22:50:24 minifree kernel: [ 3.089106] [drm:check_crtc_state], [CRTC:4]
+Aug 31 22:50:24 minifree kernel: [ 3.089258] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:17:SVIDEO-1] disconnected
+Aug 31 22:50:24 minifree kernel: [ 3.090319] [drm:drm_mode_getconnector], [CONNECTOR:17:?]
+Aug 31 22:50:24 minifree kernel: [ 3.090324] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:17:SVIDEO-1]
+Aug 31 22:50:24 minifree kernel: [ 3.090327] [drm:intel_tv_detect], [CONNECTOR:17:SVIDEO-1] force=1
+Aug 31 22:50:24 minifree kernel: [ 3.090331] [drm:intel_get_load_detect_pipe], [CONNECTOR:17:SVIDEO-1], [ENCODER:18:TV-18]
+Aug 31 22:50:24 minifree kernel: [ 3.090335] [drm:intel_get_load_detect_pipe], creating tmp fb for load-detection
+Aug 31 22:50:24 minifree kernel: [ 3.090351] [drm:intel_modeset_affected_pipes], set mode pipe masks: modeset: 1, prepare: 1, disable: 0
+Aug 31 22:50:24 minifree kernel: [ 3.090356] [drm:connected_sink_compute_bpp], [CONNECTOR:17:SVIDEO-1] checking for sink bpp constrains
+Aug 31 22:50:24 minifree kernel: [ 3.090359] [drm:intel_tv_compute_config], forcing bpc to 8 for TV
+Aug 31 22:50:24 minifree kernel: [ 3.090362] [drm:intel_modeset_pipe_config], plane bpp: 24, pipe bpp: 24, dithering: 0
+Aug 31 22:50:24 minifree kernel: [ 3.090365] [drm:intel_dump_pipe_config], [CRTC:3][modeset] config for pipe A
+Aug 31 22:50:24 minifree kernel: [ 3.090369] [drm:intel_dump_pipe_config], cpu_transcoder: A
+Aug 31 22:50:24 minifree kernel: [ 3.090371] [drm:intel_dump_pipe_config], pipe bpp: 24, dithering: 0
+Aug 31 22:50:24 minifree kernel: [ 3.090374] [drm:intel_dump_pipe_config], fdi/pch: 0, lanes: 0, gmch_m: 0, gmch_n: 0, link_m: 0, link_n: 0, tu: 0
+Aug 31 22:50:24 minifree kernel: [ 3.090378] [drm:intel_dump_pipe_config], dp: 0, gmch_m: 0, gmch_n: 0, link_m: 0, link_n: 0, tu: 0
+Aug 31 22:50:24 minifree kernel: [ 3.090381] [drm:intel_dump_pipe_config], requested mode:
+Aug 31 22:50:24 minifree kernel: [ 3.090384] [drm:drm_mode_debug_printmodeline], Modeline 0:"NTSC 480i" 0 107520 1280 1368 1496 1712 1024 1027 1034 1104 0x40 0x0
+Aug 31 22:50:24 minifree kernel: [ 3.090389] [drm:intel_dump_pipe_config], adjusted mode:
+Aug 31 22:50:24 minifree kernel: [ 3.090391] [drm:drm_mode_debug_printmodeline], Modeline 0:"NTSC 480i" 0 107520 1280 1368 1496 1712 1024 1027 1034 1104 0x40 0x0
+Aug 31 22:50:24 minifree kernel: [ 3.090396] [drm:intel_dump_crtc_timings], crtc timings: 108000 1280 1368 1496 1712 1024 1027 1034 1104, type: 0x40 flags: 0x0
+Aug 31 22:50:24 minifree kernel: [ 3.090400] [drm:intel_dump_pipe_config], port clock: 108000
+Aug 31 22:50:24 minifree kernel: [ 3.090403] [drm:intel_dump_pipe_config], pipe src size: 1280x1024
+Aug 31 22:50:24 minifree kernel: [ 3.090406] [drm:intel_dump_pipe_config], gmch pfit: control: 0x00000000, ratios: 0x00000000, lvds border: 0x00000000
+Aug 31 22:50:24 minifree kernel: [ 3.090409] [drm:intel_dump_pipe_config], pch pfit: pos: 0x00000000, size: 0x00000000, disabled
+Aug 31 22:50:24 minifree kernel: [ 3.090412] [drm:intel_dump_pipe_config], ips: 0
+Aug 31 22:50:24 minifree kernel: [ 3.090415] [drm:intel_dump_pipe_config], double wide: 0
+Aug 31 22:50:24 minifree kernel: [ 3.096851] [drm:i9xx_update_plane], Writing base 00320000 00000000 0 0 5120
+Aug 31 22:50:24 minifree kernel: [ 3.096864] [drm:intel_crtc_mode_set], [ENCODER:18:TV-18] set [MODE:0:NTSC 480i]
+Aug 31 22:50:24 minifree kernel: [ 3.102491] [drm:i9xx_get_fifo_size], FIFO size - (0x00001d9c) A: 28
+Aug 31 22:50:24 minifree kernel: [ 3.102495] [drm:intel_calculate_wm], FIFO entries required for mode: 17
+Aug 31 22:50:24 minifree kernel: [ 3.102498] [drm:intel_calculate_wm], FIFO watermark level: 9
+Aug 31 22:50:24 minifree kernel: [ 3.102501] [drm:i9xx_get_fifo_size], FIFO size - (0x00001d9c) B: 31
+Aug 31 22:50:24 minifree kernel: [ 3.102504] [drm:intel_calculate_wm], FIFO entries required for mode: 34
+Aug 31 22:50:24 minifree kernel: [ 3.102506] [drm:intel_calculate_wm], FIFO watermark level: -5
+Aug 31 22:50:24 minifree kernel: [ 3.102509] [drm:i9xx_update_wm], FIFO watermarks - A: 9, B: 1
+Aug 31 22:50:24 minifree kernel: [ 3.102512] [drm:i9xx_update_wm], Setting FIFO watermarks - A: 9, B: 1, C: 2, SR 1
+Aug 31 22:50:24 minifree kernel: [ 3.102515] [drm:i9xx_update_wm], memory self refresh disabled
+Aug 31 22:50:24 minifree kernel: [ 3.124103] [drm:intel_connector_check_state], [CONNECTOR:5:LVDS-1]
+Aug 31 22:50:24 minifree kernel: [ 3.124110] [drm:intel_connector_check_state], [CONNECTOR:17:SVIDEO-1]
+Aug 31 22:50:24 minifree kernel: [ 3.124116] [drm:check_encoder_state], [ENCODER:6:LVDS-6]
+Aug 31 22:50:24 minifree kernel: [ 3.124121] [drm:check_encoder_state], [ENCODER:16:DAC-16]
+Aug 31 22:50:24 minifree kernel: [ 3.124126] [drm:check_encoder_state], [ENCODER:18:TV-18]
+Aug 31 22:50:24 minifree kernel: [ 3.124131] [drm:check_crtc_state], [CRTC:3]
+Aug 31 22:50:24 minifree kernel: [ 3.124143] [drm:check_crtc_state], [CRTC:4]
+Aug 31 22:50:24 minifree kernel: [ 3.164099] [drm:intel_tv_detect_type], TV detected: c0007, 7f0000aa
+Aug 31 22:50:24 minifree kernel: [ 3.164104] [drm:intel_tv_detect_type], Unrecognised TV connection
+Aug 31 22:50:24 minifree kernel: [ 3.188098] [drm:intel_release_load_detect_pipe], [CONNECTOR:17:SVIDEO-1], [ENCODER:18:TV-18]
+Aug 31 22:50:24 minifree kernel: [ 3.188105] [drm:intel_modeset_affected_pipes], set mode pipe masks: modeset: 0, prepare: 0, disable: 1
+Aug 31 22:50:24 minifree kernel: [ 3.229059] [drm:i9xx_get_fifo_size], FIFO size - (0x00001d9c) A: 28
+Aug 31 22:50:24 minifree kernel: [ 3.229063] [drm:intel_calculate_wm], FIFO entries required for mode: 17
+Aug 31 22:50:24 minifree kernel: [ 3.229065] [drm:intel_calculate_wm], FIFO watermark level: 9
+Aug 31 22:50:24 minifree kernel: [ 3.229068] [drm:i9xx_get_fifo_size], FIFO size - (0x00001d9c) B: 31
+Aug 31 22:50:24 minifree kernel: [ 3.229071] [drm:i9xx_update_wm], FIFO watermarks - A: 9, B: 29
+Aug 31 22:50:24 minifree kernel: [ 3.229075] [drm:i9xx_update_wm], self-refresh entries: 64
+Aug 31 22:50:24 minifree kernel: [ 3.229077] [drm:i9xx_update_wm], Setting FIFO watermarks - A: 9, B: 29, C: 2, SR 63
+Aug 31 22:50:24 minifree kernel: [ 3.229081] [drm:i9xx_update_wm], memory self refresh enabled
+Aug 31 22:50:24 minifree kernel: [ 3.229086] [drm:intel_connector_check_state], [CONNECTOR:5:LVDS-1]
+Aug 31 22:50:24 minifree kernel: [ 3.229091] [drm:check_encoder_state], [ENCODER:6:LVDS-6]
+Aug 31 22:50:24 minifree kernel: [ 3.229094] [drm:check_encoder_state], [ENCODER:16:DAC-16]
+Aug 31 22:50:24 minifree kernel: [ 3.229097] [drm:check_encoder_state], [ENCODER:18:TV-18]
+Aug 31 22:50:24 minifree kernel: [ 3.229100] [drm:check_crtc_state], [CRTC:3]
+Aug 31 22:50:24 minifree kernel: [ 3.229103] [drm:check_crtc_state], [CRTC:4]
+Aug 31 22:50:24 minifree kernel: [ 3.229256] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:17:SVIDEO-1] disconnected
+Aug 31 22:50:24 minifree kernel: [ 3.230324] [drm:drm_mode_addfb], [FB:34]
+Aug 31 22:50:24 minifree kernel: [ 3.603108] [drm:drm_mode_addfb], [FB:34]
+Aug 31 22:50:24 minifree kernel: [ 3.603201] [drm:intel_crtc_set_config], [CRTC:4] [FB:33] #connectors=1 (x y) (0 0)
+Aug 31 22:50:24 minifree kernel: [ 3.603207] [drm:intel_set_config_compute_mode_changes], computed changes for [CRTC:4], mode_changed=0, fb_changed=0
+Aug 31 22:50:24 minifree kernel: [ 3.603211] [drm:intel_modeset_stage_output_state], [CONNECTOR:5:LVDS-1] to [CRTC:4]
+Aug 31 22:50:24 minifree kernel: [ 3.606628] [drm:drm_mode_setcrtc], [CRTC:4]
+Aug 31 22:50:24 minifree kernel: [ 3.606636] [drm:drm_mode_setcrtc], [CONNECTOR:5:LVDS-1]
+Aug 31 22:50:24 minifree kernel: [ 3.606640] [drm:intel_crtc_set_config], [CRTC:4] [FB:34] #connectors=1 (x y) (0 0)
+Aug 31 22:50:24 minifree kernel: [ 3.606645] [drm:intel_set_config_compute_mode_changes], computed changes for [CRTC:4], mode_changed=0, fb_changed=1
+Aug 31 22:50:24 minifree kernel: [ 3.606648] [drm:intel_modeset_stage_output_state], [CONNECTOR:5:LVDS-1] to [CRTC:4]
+Aug 31 22:50:24 minifree kernel: [ 3.610935] [drm:i9xx_update_plane], Writing base 00320000 00000000 0 0 4096
+Aug 31 22:50:24 minifree kernel: [ 3.627861] md: linear personality registered for level -1
+Aug 31 22:50:24 minifree kernel: [ 3.628773] [drm:drm_mode_setcrtc], [CRTC:4]
+Aug 31 22:50:24 minifree kernel: [ 3.628782] [drm:drm_mode_setcrtc], [CONNECTOR:5:LVDS-1]
+Aug 31 22:50:24 minifree kernel: [ 3.628787] [drm:intel_crtc_set_config], [CRTC:4] [FB:34] #connectors=1 (x y) (0 0)
+Aug 31 22:50:24 minifree kernel: [ 3.628793] [drm:intel_set_config_compute_mode_changes], computed changes for [CRTC:4], mode_changed=0, fb_changed=0
+Aug 31 22:50:24 minifree kernel: [ 3.628797] [drm:intel_modeset_stage_output_state], [CONNECTOR:5:LVDS-1] to [CRTC:4]
+Aug 31 22:50:24 minifree kernel: [ 3.633141] md: multipath personality registered for level -4
+Aug 31 22:50:24 minifree kernel: [ 3.638092] md: raid0 personality registered for level 0
+Aug 31 22:50:24 minifree kernel: [ 3.643718] md: raid1 personality registered for level 1
+Aug 31 22:50:24 minifree kernel: [ 3.716024] raid6: sse2x1 2266 MB/s
+Aug 31 22:50:24 minifree kernel: [ 3.784028] raid6: sse2x2 4053 MB/s
+Aug 31 22:50:24 minifree kernel: [ 3.852032] raid6: sse2x4 4547 MB/s
+Aug 31 22:50:24 minifree kernel: [ 3.852036] raid6: using algorithm sse2x4 (4547 MB/s)
+Aug 31 22:50:24 minifree kernel: [ 3.852038] raid6: using ssse3x2 recovery algorithm
+Aug 31 22:50:24 minifree kernel: [ 3.854266] xor: measuring software checksum speed
+Aug 31 22:50:24 minifree kernel: [ 3.892019] prefetch64-sse: 6047.000 MB/sec
+Aug 31 22:50:24 minifree kernel: [ 3.932018] generic_sse: 5363.000 MB/sec
+Aug 31 22:50:24 minifree kernel: [ 3.932021] xor: using function: prefetch64-sse (6047.000 MB/sec)
+Aug 31 22:50:24 minifree kernel: [ 3.934078] async_tx: api initialized (async)
+Aug 31 22:50:24 minifree kernel: [ 3.946437] md: raid6 personality registered for level 6
+Aug 31 22:50:24 minifree kernel: [ 3.946441] md: raid5 personality registered for level 5
+Aug 31 22:50:24 minifree kernel: [ 3.946444] md: raid4 personality registered for level 4
+Aug 31 22:50:24 minifree kernel: [ 3.957827] md: raid10 personality registered for level 10
+Aug 31 22:50:24 minifree kernel: [ 9.243505] random: cryptsetup urandom read with 119 bits of entropy available
+Aug 31 22:50:24 minifree kernel: [ 9.246108] random: nonblocking pool is initialized
+Aug 31 22:50:24 minifree kernel: [ 9.266100] bio: create slab <bio-1> at 1
+Aug 31 22:50:24 minifree kernel: [ 9.513079] bio: create slab <bio-1> at 1
+Aug 31 22:50:24 minifree kernel: [ 10.331147] bio: create slab <bio-2> at 2
+Aug 31 22:50:24 minifree kernel: [ 10.332723] Btrfs loaded
+Aug 31 22:50:24 minifree kernel: [ 11.808132] [drm:intel_tv_detect], [CONNECTOR:17:SVIDEO-1] force=0
+Aug 31 22:50:24 minifree kernel: [ 15.403838] EXT4-fs (dm-1): INFO: recovery required on readonly filesystem
+Aug 31 22:50:24 minifree kernel: [ 15.403844] EXT4-fs (dm-1): write access will be enabled during recovery
+Aug 31 22:50:24 minifree kernel: [ 17.127673] EXT4-fs (dm-1): orphan cleanup on readonly fs
+Aug 31 22:50:24 minifree kernel: [ 17.127796] EXT4-fs (dm-1): 1 orphan inode deleted
+Aug 31 22:50:24 minifree kernel: [ 17.127800] EXT4-fs (dm-1): recovery complete
+Aug 31 22:50:24 minifree kernel: [ 17.216730] EXT4-fs (dm-1): mounted filesystem with ordered data mode. Opts: (null)
+Aug 31 22:50:24 minifree kernel: [ 21.824056] [drm:intel_tv_detect], [CONNECTOR:17:SVIDEO-1] force=0
+Aug 31 22:50:24 minifree kernel: [ 28.044685] EXT4-fs (dm-1): re-mounted. Opts: errors=remount-ro
+Aug 31 22:50:24 minifree kernel: [ 29.253227] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
+Aug 31 22:50:24 minifree kernel: [ 29.727869] lp: driver loaded but no devices found
+Aug 31 22:50:24 minifree kernel: [ 29.764157] ppdev: user-space parallel port driver
+Aug 31 22:50:24 minifree kernel: [ 30.065222] type=1400 audit(1409521824.544:2): apparmor="STATUS" operation="profile_load" profile="unconfined" name="/usr/lib/cups/backend/cups-pdf" pid=647 comm="apparmor_parser"
+Aug 31 22:50:24 minifree kernel: [ 30.065234] type=1400 audit(1409521824.544:3): apparmor="STATUS" operation="profile_load" profile="unconfined" name="/usr/sbin/cupsd" pid=647 comm="apparmor_parser"
+Aug 31 22:50:24 minifree kernel: [ 30.065934] type=1400 audit(1409521824.544:4): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/usr/sbin/cupsd" pid=647 comm="apparmor_parser"
+Aug 31 22:50:24 minifree kernel: [ 30.182531] Bluetooth: Core ver 2.17
+Aug 31 22:50:24 minifree kernel: [ 30.184399] NET: Registered protocol family 31
+Aug 31 22:50:24 minifree kernel: [ 30.184403] Bluetooth: HCI device and connection manager initialized
+Aug 31 22:50:24 minifree kernel: [ 30.184417] Bluetooth: HCI socket layer initialized
+Aug 31 22:50:24 minifree kernel: [ 30.184422] Bluetooth: L2CAP socket layer initialized
+Aug 31 22:50:24 minifree kernel: [ 30.184430] Bluetooth: SCO socket layer initialized
+Aug 31 22:50:24 minifree kernel: [ 30.216147] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
+Aug 31 22:50:24 minifree kernel: [ 30.216153] Bluetooth: BNEP filters: protocol multicast
+Aug 31 22:50:24 minifree kernel: [ 30.216167] Bluetooth: BNEP socket layer initialized
+Aug 31 22:50:24 minifree kernel: [ 30.217692] Bluetooth: RFCOMM TTY layer initialized
+Aug 31 22:50:24 minifree kernel: [ 30.217701] Bluetooth: RFCOMM socket layer initialized
+Aug 31 22:50:24 minifree kernel: [ 30.217712] Bluetooth: RFCOMM ver 1.11
+Aug 31 22:50:24 minifree kernel: [ 30.227989] intel_rng: FWH not detected
+Aug 31 22:50:24 minifree kernel: [ 30.348498] ACPI Warning: 0x0000000000000528-0x000000000000052f SystemIO conflicts with Region \PMIO 1 (20131115/utaddress-251)
+Aug 31 22:50:24 minifree kernel: [ 30.348510] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver
+Aug 31 22:50:24 minifree kernel: [ 30.348517] ACPI Warning: 0x00000000000004b0-0x00000000000004bf SystemIO conflicts with Region \GPIO 1 (20131115/utaddress-251)
+Aug 31 22:50:24 minifree kernel: [ 30.348522] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver
+Aug 31 22:50:24 minifree kernel: [ 30.348525] ACPI Warning: 0x0000000000000480-0x00000000000004af SystemIO conflicts with Region \GPIO 1 (20131115/utaddress-251)
+Aug 31 22:50:24 minifree kernel: [ 30.348530] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver
+Aug 31 22:50:24 minifree kernel: [ 30.348533] lpc_ich: Resource conflict(s) found affecting gpio_ich
+Aug 31 22:50:24 minifree kernel: [ 30.372503] leds_ss4200: no LED devices found
+Aug 31 22:50:24 minifree kernel: [ 30.372824] yenta_cardbus 0000:05:00.0: CardBus bridge found [0000:0000]
+Aug 31 22:50:24 minifree kernel: [ 30.493456] type=1400 audit(1409521824.972:5): apparmor="STATUS" operation="profile_load" profile="unconfined" name="/sbin/dhclient" pid=696 comm="apparmor_parser"
+Aug 31 22:50:24 minifree kernel: [ 30.493470] type=1400 audit(1409521824.972:6): apparmor="STATUS" operation="profile_load" profile="unconfined" name="/usr/lib/NetworkManager/nm-dhcp-client.action" pid=696 comm="apparmor_parser"
+Aug 31 22:50:24 minifree kernel: [ 30.493478] type=1400 audit(1409521824.972:7): apparmor="STATUS" operation="profile_load" profile="unconfined" name="/usr/lib/connman/scripts/dhclient-script" pid=696 comm="apparmor_parser"
+Aug 31 22:50:24 minifree kernel: [ 30.496483] type=1400 audit(1409521824.976:8): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/usr/lib/NetworkManager/nm-dhcp-client.action" pid=696 comm="apparmor_parser"
+Aug 31 22:50:24 minifree kernel: [ 30.496497] type=1400 audit(1409521824.976:9): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/usr/lib/connman/scripts/dhclient-script" pid=696 comm="apparmor_parser"
+Aug 31 22:50:24 minifree kernel: [ 30.496998] type=1400 audit(1409521824.976:10): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/usr/lib/connman/scripts/dhclient-script" pid=696 comm="apparmor_parser"
+Aug 31 22:50:24 minifree kernel: [ 30.501113] yenta_cardbus 0000:05:00.0: ISA IRQ mask 0x0cb8, PCI irq 16
+Aug 31 22:50:24 minifree kernel: [ 30.501120] yenta_cardbus 0000:05:00.0: Socket status: 30000006
+Aug 31 22:50:24 minifree kernel: [ 30.501126] pci_bus 0000:05: Raising subordinate bus# of parent bus (#05) from #06 to #09
+Aug 31 22:50:24 minifree kernel: [ 30.501295] yenta_cardbus 0000:05:00.0: pcmcia: parent PCI bridge window: [io 0x2000-0x3fff]
+Aug 31 22:50:24 minifree kernel: [ 30.501300] yenta_cardbus 0000:05:00.0: pcmcia: parent PCI bridge window: [mem 0xe0000000-0xe20fffff]
+Aug 31 22:50:24 minifree kernel: [ 30.501305] pcmcia_socket pcmcia_socket0: cs: memory probe 0xe0000000-0xe20fffff:
+Aug 31 22:50:24 minifree kernel: [ 30.501318] excluding 0xe1ef0000-0xe20fffff
+Aug 31 22:50:24 minifree kernel: [ 30.501325] yenta_cardbus 0000:05:00.0: pcmcia: parent PCI bridge window: [mem 0xe2100000-0xe40fffff 64bit pref]
+Aug 31 22:50:24 minifree kernel: [ 30.501329] pcmcia_socket pcmcia_socket0: cs: memory probe 0xe2100000-0xe40fffff:
+Aug 31 22:50:24 minifree kernel: [ 30.501411] excluding 0xe2100000-0xe40fffff
+Aug 31 22:50:25 minifree kernel: [ 30.761785] e1000e 0000:01:00.0: irq 44 for MSI/MSI-X
+Aug 31 22:50:25 minifree kernel: [ 30.772718] device-mapper: multipath: version 1.6.0 loaded
+Aug 31 22:50:25 minifree kernel: [ 30.841196] Non-volatile memory driver v1.3
+Aug 31 22:50:25 minifree kernel: [ 30.846354] thinkpad_acpi: ThinkPad ACPI Extras v0.25
+Aug 31 22:50:25 minifree kernel: [ 30.846360] thinkpad_acpi: http://ibm-acpi.sf.net/
+Aug 31 22:50:25 minifree kernel: [ 30.846363] thinkpad_acpi: ThinkPad BIOS CBET4000 7BETC7WW (2.08 ), EC 7BHT37WW-3.4
+Aug 31 22:50:25 minifree kernel: [ 30.846365] thinkpad_acpi: Lenovo ThinkPad X60s, model 1702L8G
+Aug 31 22:50:25 minifree kernel: [ 30.853545] thinkpad_acpi: detected a 8-level brightness capable ThinkPad
+Aug 31 22:50:25 minifree kernel: [ 30.853591] thinkpad_acpi: This ThinkPad has standard ACPI backlight brightness control, supported by the ACPI video driver
+Aug 31 22:50:25 minifree kernel: [ 30.853594] thinkpad_acpi: Disabling thinkpad-acpi brightness events by default...
+Aug 31 22:50:25 minifree kernel: [ 30.864133] e1000e 0000:01:00.0: irq 44 for MSI/MSI-X
+Aug 31 22:50:25 minifree kernel: [ 30.864654] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
+Aug 31 22:50:25 minifree kernel: [ 30.904471] thinkpad_acpi: Standard ACPI backlight interface available, not loading native one
+Aug 31 22:50:25 minifree kernel: [ 30.904716] thinkpad_acpi: Console audio control enabled, mode: monitor (read only)
+Aug 31 22:50:25 minifree kernel: [ 30.917451] input: ThinkPad Extra Buttons as /devices/platform/thinkpad_acpi/input/input7
+Aug 31 22:50:25 minifree kernel: [ 31.070696] hda_intel: probe_mask set to 0x1 for device 17aa:2010
+Aug 31 22:50:25 minifree kernel: [ 31.070755] snd_hda_intel 0000:00:1b.0: irq 46 for MSI/MSI-X
+Aug 31 22:50:25 minifree kernel: [ 31.221006] autoconfig: line_outs=1 (0x5/0x0/0x0/0x0/0x0) type:line
+Aug 31 22:50:25 minifree kernel: [ 31.221013] speaker_outs=1 (0x7/0x0/0x0/0x0/0x0)
+Aug 31 22:50:25 minifree kernel: [ 31.221016] hp_outs=1 (0x6/0x0/0x0/0x0/0x0)
+Aug 31 22:50:25 minifree kernel: [ 31.221018] mono: mono_out=0x0
+Aug 31 22:50:25 minifree kernel: [ 31.221020] dig-out=0xa/0x0
+Aug 31 22:50:25 minifree kernel: [ 31.221022] inputs:
+Aug 31 22:50:25 minifree kernel: [ 31.221073] Rear Mic=0x18
+Aug 31 22:50:25 minifree kernel: [ 31.221076] Front Mic=0x8
+Aug 31 22:50:25 minifree kernel: [ 31.221079] Line=0x9
+Aug 31 22:50:25 minifree kernel: [ 31.221081] CD=0x19
+Aug 31 22:50:25 minifree kernel: [ 31.221084] Aux=0x17
+Aug 31 22:50:25 minifree kernel: [ 31.306204] input: HDA Intel Front Headphone as /devices/pci0000:00/0000:00:1b.0/sound/card0/input12
+Aug 31 22:50:25 minifree kernel: [ 31.309615] input: HDA Intel Line Out as /devices/pci0000:00/0000:00:1b.0/sound/card0/input11
+Aug 31 22:50:25 minifree kernel: [ 31.312192] input: HDA Intel Line as /devices/pci0000:00/0000:00:1b.0/sound/card0/input10
+Aug 31 22:50:25 minifree kernel: [ 31.316499] input: HDA Intel Front Mic as /devices/pci0000:00/0000:00:1b.0/sound/card0/input9
+Aug 31 22:50:25 minifree kernel: [ 31.316647] input: HDA Intel Rear Mic as /devices/pci0000:00/0000:00:1b.0/sound/card0/input8
+Aug 31 22:50:25 minifree kernel: [ 31.491549] pcmcia_socket pcmcia_socket0: cs: memory probe 0x0c0000-0x0fffff:
+Aug 31 22:50:25 minifree kernel: [ 31.491580] excluding 0xf0000-0xfffff
+Aug 31 22:50:25 minifree kernel: [ 31.491611] pcmcia_socket pcmcia_socket0: cs: memory probe 0xa0000000-0xa0ffffff:
+Aug 31 22:50:25 minifree kernel: [ 31.491646] clean.
+Aug 31 22:50:25 minifree kernel: [ 31.491672] pcmcia_socket pcmcia_socket0: cs: memory probe 0x60000000-0x60ffffff:
+Aug 31 22:50:25 minifree kernel: [ 31.491705] excluding 0x60000000-0x60ffffff
+Aug 31 22:50:26 minifree kernel: [ 31.840110] [drm:intel_tv_detect], [CONNECTOR:17:SVIDEO-1] force=0
+Aug 31 22:50:36 minifree kernel: [ 41.856122] [drm:intel_tv_detect], [CONNECTOR:17:SVIDEO-1] force=0
+Aug 31 22:50:46 minifree kernel: [ 51.872113] [drm:intel_tv_detect], [CONNECTOR:17:SVIDEO-1] force=0
+Aug 31 22:50:54 minifree kernel: [ 60.227922] type=1400 audit(1409521854.704:11): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/usr/lib/cups/backend/cups-pdf" pid=1132 comm="apparmor_parser"
+Aug 31 22:50:54 minifree kernel: [ 60.227937] type=1400 audit(1409521854.704:12): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/usr/sbin/cupsd" pid=1132 comm="apparmor_parser"
+Aug 31 22:50:54 minifree kernel: [ 60.228674] type=1400 audit(1409521854.708:13): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/usr/sbin/cupsd" pid=1132 comm="apparmor_parser"
+Aug 31 22:50:55 minifree kernel: [ 60.787283] type=1400 audit(1409521855.264:14): apparmor="STATUS" operation="profile_load" profile="unconfined" name="/usr/sbin/cups-browsed" pid=1143 comm="apparmor_parser"
+Aug 31 22:50:56 minifree kernel: [ 61.888127] [drm:intel_tv_detect], [CONNECTOR:17:SVIDEO-1] force=0
+Aug 31 22:51:04 minifree kernel: [ 70.140147] usb 1-1: new high-speed USB device number 2 using ehci-pci
+Aug 31 22:51:04 minifree kernel: [ 70.289002] usb 1-1: New USB device found, idVendor=0cf3, idProduct=9271
+Aug 31 22:51:04 minifree kernel: [ 70.289008] usb 1-1: New USB device strings: Mfr=16, Product=32, SerialNumber=48
+Aug 31 22:51:04 minifree kernel: [ 70.289012] usb 1-1: Product: UB93
+Aug 31 22:51:04 minifree kernel: [ 70.289015] usb 1-1: Manufacturer: ATHEROS
+Aug 31 22:51:04 minifree kernel: [ 70.289019] usb 1-1: SerialNumber: 12345
+Aug 31 22:51:04 minifree kernel: [ 70.441093] cfg80211: Calling CRDA to update world regulatory domain
+Aug 31 22:51:05 minifree kernel: [ 70.579584] cfg80211: World regulatory domain updated:
+Aug 31 22:51:05 minifree kernel: [ 70.579590] cfg80211: (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
+Aug 31 22:51:05 minifree kernel: [ 70.579594] cfg80211: (2402000 KHz - 2472000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
+Aug 31 22:51:05 minifree kernel: [ 70.579598] cfg80211: (2457000 KHz - 2482000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
+Aug 31 22:51:05 minifree kernel: [ 70.579601] cfg80211: (2474000 KHz - 2494000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
+Aug 31 22:51:05 minifree kernel: [ 70.579604] cfg80211: (5170000 KHz - 5250000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
+Aug 31 22:51:05 minifree kernel: [ 70.579607] cfg80211: (5735000 KHz - 5835000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
+Aug 31 22:51:05 minifree kernel: [ 70.613130] usb 1-1: ath9k_htc: Firmware htc_9271.fw requested
+Aug 31 22:51:05 minifree kernel: [ 70.613246] usbcore: registered new interface driver ath9k_htc
+Aug 31 22:51:05 minifree kernel: [ 70.909647] usb 1-1: ath9k_htc: Transferred FW: htc_9271.fw, size: 50980
+Aug 31 22:51:05 minifree kernel: [ 71.150263] ath9k_htc 1-1:1.0: ath9k_htc: HTC initialized with 33 credits
+Aug 31 22:51:05 minifree kernel: [ 71.418766] ath9k_htc 1-1:1.0: ath9k_htc: FW Version: 1.3
+Aug 31 22:51:05 minifree kernel: [ 71.418770] ath: EEPROM regdomain: 0x65
+Aug 31 22:51:05 minifree kernel: [ 71.418773] ath: EEPROM indicates we should expect a direct regpair map
+Aug 31 22:51:05 minifree kernel: [ 71.418777] ath: Country alpha2 being used: 00
+Aug 31 22:51:05 minifree kernel: [ 71.418779] ath: Regpair used: 0x65
+Aug 31 22:51:05 minifree kernel: [ 71.460149] ieee80211 phy0: Atheros AR9271 Rev:1
+Aug 31 22:51:06 minifree kernel: [ 71.904067] [drm:intel_tv_detect], [CONNECTOR:17:SVIDEO-1] force=0
+Aug 31 22:51:14 minifree kernel: [ 79.945375] usb 1-1: USB disconnect, device number 2
+Aug 31 22:51:14 minifree kernel: [ 80.151202] usb 1-1: ath9k_htc: USB layer deinitialized
+Aug 31 22:51:16 minifree kernel: [ 81.920129] [drm:intel_tv_detect], [CONNECTOR:17:SVIDEO-1] force=0
+Aug 31 22:51:26 minifree kernel: [ 91.936033] [drm:intel_tv_detect], [CONNECTOR:17:SVIDEO-1] force=0
+Aug 31 22:51:36 minifree kernel: [ 101.952108] [drm:intel_tv_detect], [CONNECTOR:17:SVIDEO-1] force=0
+Aug 31 22:51:46 minifree kernel: [ 111.968120] [drm:intel_tv_detect], [CONNECTOR:17:SVIDEO-1] force=0
+Aug 31 22:51:56 minifree kernel: [ 121.984105] [drm:intel_tv_detect], [CONNECTOR:17:SVIDEO-1] force=0
+Aug 31 22:52:06 minifree kernel: [ 132.000103] [drm:intel_tv_detect], [CONNECTOR:17:SVIDEO-1] force=0
+Aug 31 22:52:16 minifree kernel: [ 142.016108] [drm:intel_tv_detect], [CONNECTOR:17:SVIDEO-1] force=0
+Aug 31 22:52:23 minifree kernel: [ 149.297093] e1000e: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: Rx/Tx
+Aug 31 22:52:23 minifree kernel: [ 149.297248] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
+Aug 31 22:52:25 minifree kernel: [ 151.489247] type=1400 audit(1409521945.968:15): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/sbin/dhclient" pid=1314 comm="apparmor_parser"
+Aug 31 22:52:25 minifree kernel: [ 151.489262] type=1400 audit(1409521945.968:16): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/usr/lib/NetworkManager/nm-dhcp-client.action" pid=1314 comm="apparmor_parser"
+Aug 31 22:52:25 minifree kernel: [ 151.489271] type=1400 audit(1409521945.968:17): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/usr/lib/connman/scripts/dhclient-script" pid=1314 comm="apparmor_parser"
+Aug 31 22:52:25 minifree kernel: [ 151.490046] type=1400 audit(1409521945.968:18): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/usr/lib/NetworkManager/nm-dhcp-client.action" pid=1314 comm="apparmor_parser"
+Aug 31 22:52:25 minifree kernel: [ 151.490055] type=1400 audit(1409521945.968:19): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/usr/lib/connman/scripts/dhclient-script" pid=1314 comm="apparmor_parser"
+Aug 31 22:52:25 minifree kernel: [ 151.490416] type=1400 audit(1409521945.968:20): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/usr/lib/connman/scripts/dhclient-script" pid=1314 comm="apparmor_parser"
+Aug 31 22:52:25 minifree kernel: [ 151.495908] type=1400 audit(1409521945.972:21): apparmor="STATUS" operation="profile_load" profile="unconfined" name="system_tor" pid=1315 comm="apparmor_parser"
+Aug 31 22:52:25 minifree kernel: [ 151.500387] type=1400 audit(1409521945.980:22): apparmor="STATUS" operation="profile_load" profile="unconfined" name="/usr/lib/lightdm/lightdm-guest-session" pid=1313 comm="apparmor_parser"
+Aug 31 22:52:25 minifree kernel: [ 151.500398] type=1400 audit(1409521945.980:23): apparmor="STATUS" operation="profile_load" profile="unconfined" name="chromium" pid=1313 comm="apparmor_parser"
+Aug 31 22:52:25 minifree kernel: [ 151.500825] type=1400 audit(1409521945.980:24): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="chromium" pid=1313 comm="apparmor_parser"
+Aug 31 22:52:26 minifree kernel: [ 152.032044] [drm:intel_tv_detect], [CONNECTOR:17:SVIDEO-1] force=0
+Aug 31 22:52:27 minifree kernel: [ 153.407166] [drm:i915_gem_open],
+Aug 31 22:52:28 minifree kernel: [ 154.128716] [drm:i915_gem_open],
+Aug 31 22:52:28 minifree kernel: [ 154.128739] [drm:drm_mode_getresources], CRTC[2] CONNECTORS[3] ENCODERS[3]
+Aug 31 22:52:28 minifree kernel: [ 154.129127] [drm:i915_gem_open],
+Aug 31 22:52:28 minifree kernel: [ 154.129142] [drm:drm_mode_getresources], CRTC[2] CONNECTORS[3] ENCODERS[3]
+Aug 31 22:52:28 minifree kernel: [ 154.129149] [drm:drm_mode_getresources], CRTC[2] CONNECTORS[3] ENCODERS[3]
+Aug 31 22:52:28 minifree kernel: [ 154.130884] [drm:drm_mode_addfb], [FB:35]
+Aug 31 22:52:28 minifree kernel: [ 154.131523] [drm:drm_mode_getresources], CRTC[2] CONNECTORS[3] ENCODERS[3]
+Aug 31 22:52:28 minifree kernel: [ 154.131530] [drm:drm_mode_getresources], CRTC[2] CONNECTORS[3] ENCODERS[3]
+Aug 31 22:52:28 minifree kernel: [ 154.131585] [drm:drm_mode_getconnector], [CONNECTOR:5:?]
+Aug 31 22:52:28 minifree kernel: [ 154.131595] [drm:drm_mode_getconnector], [CONNECTOR:5:?]
+Aug 31 22:52:28 minifree kernel: [ 154.131939] [drm:drm_mode_getconnector], [CONNECTOR:15:?]
+Aug 31 22:52:28 minifree kernel: [ 154.131949] [drm:drm_mode_getconnector], [CONNECTOR:15:?]
+Aug 31 22:52:28 minifree kernel: [ 154.131987] [drm:drm_mode_getconnector], [CONNECTOR:17:?]
+Aug 31 22:52:28 minifree kernel: [ 154.131996] [drm:drm_mode_getconnector], [CONNECTOR:17:?]
+Aug 31 22:52:28 minifree kernel: [ 154.256944] [drm:drm_mode_addfb], [FB:35]
+Aug 31 22:52:28 minifree kernel: [ 154.256966] [drm:drm_mode_setcrtc], [CRTC:4]
+Aug 31 22:52:28 minifree kernel: [ 154.256976] [drm:drm_mode_setcrtc], [CONNECTOR:5:LVDS-1]
+Aug 31 22:52:28 minifree kernel: [ 154.256980] [drm:intel_crtc_set_config], [CRTC:4] [FB:35] #connectors=1 (x y) (0 0)
+Aug 31 22:52:28 minifree kernel: [ 154.256986] [drm:intel_set_config_compute_mode_changes], computed changes for [CRTC:4], mode_changed=0, fb_changed=1
+Aug 31 22:52:28 minifree kernel: [ 154.256991] [drm:intel_modeset_stage_output_state], [CONNECTOR:5:LVDS-1] to [CRTC:4]
+Aug 31 22:52:28 minifree kernel: [ 154.258670] [drm:i9xx_update_plane], Writing base 00800000 00000000 0 0 4096
+Aug 31 22:52:32 minifree kernel: [ 158.275793] [drm:drm_mode_getconnector], [CONNECTOR:5:?]
+Aug 31 22:52:32 minifree kernel: [ 158.275804] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:5:LVDS-1]
+Aug 31 22:52:32 minifree kernel: [ 158.275809] [drm:intel_lvds_detect], [CONNECTOR:5:LVDS-1]
+Aug 31 22:52:32 minifree kernel: [ 158.275832] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:5:LVDS-1] probed modes :
+Aug 31 22:52:32 minifree kernel: [ 158.275836] [drm:drm_mode_debug_printmodeline], Modeline 8:"1024x768" 50 54160 1024 1048 1184 1344 768 771 777 806 0x48 0xa
+Aug 31 22:52:32 minifree kernel: [ 158.275841] [drm:drm_mode_debug_printmodeline], Modeline 12:"1024x768" 60 65000 1024 1048 1184 1344 768 771 777 806 0x40 0xa
+Aug 31 22:52:32 minifree kernel: [ 158.275846] [drm:drm_mode_debug_printmodeline], Modeline 9:"1024x768" 40 43330 1024 1048 1184 1344 768 771 777 806 0x40 0xa
+Aug 31 22:52:32 minifree kernel: [ 158.275851] [drm:drm_mode_debug_printmodeline], Modeline 10:"800x600" 60 40000 800 840 968 1056 600 601 605 628 0x40 0x5
+Aug 31 22:52:32 minifree kernel: [ 158.275856] [drm:drm_mode_debug_printmodeline], Modeline 11:"640x480" 60 25200 640 656 752 800 480 490 492 525 0x40 0xa
+Aug 31 22:52:32 minifree kernel: [ 158.275865] [drm:drm_mode_getconnector], [CONNECTOR:5:?]
+Aug 31 22:52:32 minifree kernel: [ 158.276430] [drm:drm_mode_getconnector], [CONNECTOR:15:?]
+Aug 31 22:52:32 minifree kernel: [ 158.276435] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:15:VGA-1]
+Aug 31 22:52:32 minifree kernel: [ 158.276439] [drm:intel_crt_detect], [CONNECTOR:15:VGA-1] force=1
+Aug 31 22:52:32 minifree kernel: [ 158.288160] [drm:intel_crt_detect], CRT not detected via hotplug
+Aug 31 22:52:32 minifree kernel: [ 158.292045] [drm:gmbus_xfer], GMBUS [i915 gmbus vga] NAK for addr: 0050 r(1)
+Aug 31 22:52:32 minifree kernel: [ 158.292055] [drm:drm_do_probe_ddc_edid], drm: skipping non-existent adapter i915 gmbus vga
+Aug 31 22:52:32 minifree kernel: [ 158.292059] [drm:intel_crt_get_edid], CRT GMBUS EDID read failed, retry using GPIO bit-banging
+Aug 31 22:52:32 minifree kernel: [ 158.292062] [drm:intel_gmbus_force_bit], enabling bit-banging on i915 gmbus vga. force bit now 1
+Aug 31 22:52:32 minifree kernel: [ 158.292346] [drm:drm_do_probe_ddc_edid], drm: skipping non-existent adapter i915 gmbus vga
+Aug 31 22:52:32 minifree kernel: [ 158.292349] [drm:intel_gmbus_force_bit], disabling bit-banging on i915 gmbus vga. force bit now 0
+Aug 31 22:52:32 minifree kernel: [ 158.292352] [drm:intel_crt_detect_ddc], CRT not detected via DDC:0x50 [no valid EDID found]
+Aug 31 22:52:32 minifree kernel: [ 158.292358] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:15:VGA-1] disconnected
+Aug 31 22:52:32 minifree kernel: [ 158.292396] [drm:drm_mode_getconnector], [CONNECTOR:17:?]
+Aug 31 22:52:32 minifree kernel: [ 158.292401] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:17:SVIDEO-1]
+Aug 31 22:52:32 minifree kernel: [ 158.292404] [drm:intel_tv_detect], [CONNECTOR:17:SVIDEO-1] force=1
+Aug 31 22:52:32 minifree kernel: [ 158.292410] [drm:intel_get_load_detect_pipe], [CONNECTOR:17:SVIDEO-1], [ENCODER:18:TV-18]
+Aug 31 22:52:32 minifree kernel: [ 158.292414] [drm:intel_get_load_detect_pipe], creating tmp fb for load-detection
+Aug 31 22:52:32 minifree kernel: [ 158.292433] [drm:intel_modeset_affected_pipes], set mode pipe masks: modeset: 1, prepare: 1, disable: 0
+Aug 31 22:52:32 minifree kernel: [ 158.292439] [drm:connected_sink_compute_bpp], [CONNECTOR:17:SVIDEO-1] checking for sink bpp constrains
+Aug 31 22:52:32 minifree kernel: [ 158.292443] [drm:intel_tv_compute_config], forcing bpc to 8 for TV
+Aug 31 22:52:32 minifree kernel: [ 158.292447] [drm:intel_modeset_pipe_config], plane bpp: 24, pipe bpp: 24, dithering: 0
+Aug 31 22:52:32 minifree kernel: [ 158.292450] [drm:intel_dump_pipe_config], [CRTC:3][modeset] config for pipe A
+Aug 31 22:52:32 minifree kernel: [ 158.292454] [drm:intel_dump_pipe_config], cpu_transcoder: A
+Aug 31 22:52:32 minifree kernel: [ 158.292457] [drm:intel_dump_pipe_config], pipe bpp: 24, dithering: 0
+Aug 31 22:52:32 minifree kernel: [ 158.292459] [drm:intel_dump_pipe_config], fdi/pch: 0, lanes: 0, gmch_m: 0, gmch_n: 0, link_m: 0, link_n: 0, tu: 0
+Aug 31 22:52:32 minifree kernel: [ 158.292463] [drm:intel_dump_pipe_config], dp: 0, gmch_m: 0, gmch_n: 0, link_m: 0, link_n: 0, tu: 0
+Aug 31 22:52:32 minifree kernel: [ 158.292467] [drm:intel_dump_pipe_config], requested mode:
+Aug 31 22:52:32 minifree kernel: [ 158.292469] [drm:drm_mode_debug_printmodeline], Modeline 0:"NTSC 480i" 0 107520 1280 1368 1496 1712 1024 1027 1034 1104 0x40 0x0
+Aug 31 22:52:32 minifree kernel: [ 158.292475] [drm:intel_dump_pipe_config], adjusted mode:
+Aug 31 22:52:32 minifree kernel: [ 158.292477] [drm:drm_mode_debug_printmodeline], Modeline 0:"NTSC 480i" 0 107520 1280 1368 1496 1712 1024 1027 1034 1104 0x40 0x0
+Aug 31 22:52:32 minifree kernel: [ 158.292482] [drm:intel_dump_crtc_timings], crtc timings: 108000 1280 1368 1496 1712 1024 1027 1034 1104, type: 0x40 flags: 0x0
+Aug 31 22:52:32 minifree kernel: [ 158.292486] [drm:intel_dump_pipe_config], port clock: 108000
+Aug 31 22:52:32 minifree kernel: [ 158.292489] [drm:intel_dump_pipe_config], pipe src size: 1280x1024
+Aug 31 22:52:32 minifree kernel: [ 158.292492] [drm:intel_dump_pipe_config], gmch pfit: control: 0x00000000, ratios: 0x00000000, lvds border: 0x00000000
+Aug 31 22:52:32 minifree kernel: [ 158.292495] [drm:intel_dump_pipe_config], pch pfit: pos: 0x00000000, size: 0x00000000, disabled
+Aug 31 22:52:32 minifree kernel: [ 158.292499] [drm:intel_dump_pipe_config], ips: 0
+Aug 31 22:52:32 minifree kernel: [ 158.292501] [drm:intel_dump_pipe_config], double wide: 0
+Aug 31 22:52:32 minifree kernel: [ 158.300167] [drm:i9xx_update_plane], Writing base 00C00000 00000000 0 0 5120
+Aug 31 22:52:32 minifree kernel: [ 158.300181] [drm:intel_crtc_mode_set], [ENCODER:18:TV-18] set [MODE:0:NTSC 480i]
+Aug 31 22:52:32 minifree kernel: [ 158.305816] [drm:i9xx_get_fifo_size], FIFO size - (0x00001d9c) A: 28
+Aug 31 22:52:32 minifree kernel: [ 158.305823] [drm:intel_calculate_wm], FIFO entries required for mode: 17
+Aug 31 22:52:32 minifree kernel: [ 158.305825] [drm:intel_calculate_wm], FIFO watermark level: 9
+Aug 31 22:52:32 minifree kernel: [ 158.305828] [drm:i9xx_get_fifo_size], FIFO size - (0x00001d9c) B: 31
+Aug 31 22:52:32 minifree kernel: [ 158.305832] [drm:intel_calculate_wm], FIFO entries required for mode: 34
+Aug 31 22:52:32 minifree kernel: [ 158.305834] [drm:intel_calculate_wm], FIFO watermark level: -5
+Aug 31 22:52:32 minifree kernel: [ 158.305837] [drm:i9xx_update_wm], FIFO watermarks - A: 9, B: 1
+Aug 31 22:52:32 minifree kernel: [ 158.305840] [drm:i9xx_update_wm], Setting FIFO watermarks - A: 9, B: 1, C: 2, SR 1
+Aug 31 22:52:32 minifree kernel: [ 158.305844] [drm:i9xx_update_wm], memory self refresh disabled
+Aug 31 22:52:32 minifree kernel: [ 158.324056] [drm:intel_connector_check_state], [CONNECTOR:5:LVDS-1]
+Aug 31 22:52:32 minifree kernel: [ 158.324066] [drm:intel_connector_check_state], [CONNECTOR:17:SVIDEO-1]
+Aug 31 22:52:32 minifree kernel: [ 158.324071] [drm:check_encoder_state], [ENCODER:6:LVDS-6]
+Aug 31 22:52:32 minifree kernel: [ 158.324074] [drm:check_encoder_state], [ENCODER:16:DAC-16]
+Aug 31 22:52:32 minifree kernel: [ 158.324078] [drm:check_encoder_state], [ENCODER:18:TV-18]
+Aug 31 22:52:32 minifree kernel: [ 158.324081] [drm:check_crtc_state], [CRTC:3]
+Aug 31 22:52:32 minifree kernel: [ 158.324093] [drm:check_crtc_state], [CRTC:4]
+Aug 31 22:52:32 minifree kernel: [ 158.376040] [drm:intel_tv_detect_type], TV detected: c0007, 7f0000aa
+Aug 31 22:52:32 minifree kernel: [ 158.376049] [drm:intel_tv_detect_type], Unrecognised TV connection
+Aug 31 22:52:32 minifree kernel: [ 158.392042] [drm:intel_release_load_detect_pipe], [CONNECTOR:17:SVIDEO-1], [ENCODER:18:TV-18]
+Aug 31 22:52:32 minifree kernel: [ 158.392052] [drm:intel_modeset_affected_pipes], set mode pipe masks: modeset: 0, prepare: 0, disable: 1
+Aug 31 22:52:32 minifree kernel: [ 158.433012] [drm:i9xx_get_fifo_size], FIFO size - (0x00001d9c) A: 28
+Aug 31 22:52:32 minifree kernel: [ 158.433022] [drm:intel_calculate_wm], FIFO entries required for mode: 17
+Aug 31 22:52:32 minifree kernel: [ 158.433025] [drm:intel_calculate_wm], FIFO watermark level: 9
+Aug 31 22:52:32 minifree kernel: [ 158.433028] [drm:i9xx_get_fifo_size], FIFO size - (0x00001d9c) B: 31
+Aug 31 22:52:32 minifree kernel: [ 158.433031] [drm:i9xx_update_wm], FIFO watermarks - A: 9, B: 29
+Aug 31 22:52:32 minifree kernel: [ 158.433034] [drm:i9xx_update_wm], self-refresh entries: 64
+Aug 31 22:52:32 minifree kernel: [ 158.433037] [drm:i9xx_update_wm], Setting FIFO watermarks - A: 9, B: 29, C: 2, SR 63
+Aug 31 22:52:32 minifree kernel: [ 158.433041] [drm:i9xx_update_wm], memory self refresh enabled
+Aug 31 22:52:32 minifree kernel: [ 158.433052] [drm:intel_connector_check_state], [CONNECTOR:5:LVDS-1]
+Aug 31 22:52:32 minifree kernel: [ 158.433058] [drm:check_encoder_state], [ENCODER:6:LVDS-6]
+Aug 31 22:52:32 minifree kernel: [ 158.433061] [drm:check_encoder_state], [ENCODER:16:DAC-16]
+Aug 31 22:52:32 minifree kernel: [ 158.433065] [drm:check_encoder_state], [ENCODER:18:TV-18]
+Aug 31 22:52:32 minifree kernel: [ 158.433068] [drm:check_crtc_state], [CRTC:3]
+Aug 31 22:52:32 minifree kernel: [ 158.433072] [drm:check_crtc_state], [CRTC:4]
+Aug 31 22:52:32 minifree kernel: [ 158.433226] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:17:SVIDEO-1] disconnected
+Aug 31 22:52:33 minifree kernel: [ 158.887022] [drm:intel_lvds_detect], [CONNECTOR:5:LVDS-1]
+Aug 31 22:52:33 minifree kernel: [ 158.887071] [drm:intel_tv_detect], [CONNECTOR:17:SVIDEO-1] force=1
+Aug 31 22:52:33 minifree kernel: [ 158.887077] [drm:intel_get_load_detect_pipe], [CONNECTOR:17:SVIDEO-1], [ENCODER:18:TV-18]
+Aug 31 22:52:33 minifree kernel: [ 158.887081] [drm:intel_get_load_detect_pipe], creating tmp fb for load-detection
+Aug 31 22:52:33 minifree kernel: [ 158.887098] [drm:intel_modeset_affected_pipes], set mode pipe masks: modeset: 1, prepare: 1, disable: 0
+Aug 31 22:52:33 minifree kernel: [ 158.887104] [drm:connected_sink_compute_bpp], [CONNECTOR:17:SVIDEO-1] checking for sink bpp constrains
+Aug 31 22:52:33 minifree kernel: [ 158.887108] [drm:intel_tv_compute_config], forcing bpc to 8 for TV
+Aug 31 22:52:33 minifree kernel: [ 158.887112] [drm:intel_modeset_pipe_config], plane bpp: 24, pipe bpp: 24, dithering: 0
+Aug 31 22:52:33 minifree kernel: [ 158.887115] [drm:intel_dump_pipe_config], [CRTC:3][modeset] config for pipe A
+Aug 31 22:52:33 minifree kernel: [ 158.887118] [drm:intel_dump_pipe_config], cpu_transcoder: A
+Aug 31 22:52:33 minifree kernel: [ 158.887121] [drm:intel_dump_pipe_config], pipe bpp: 24, dithering: 0
+Aug 31 22:52:33 minifree kernel: [ 158.887124] [drm:intel_dump_pipe_config], fdi/pch: 0, lanes: 0, gmch_m: 0, gmch_n: 0, link_m: 0, link_n: 0, tu: 0
+Aug 31 22:52:33 minifree kernel: [ 158.887128] [drm:intel_dump_pipe_config], dp: 0, gmch_m: 0, gmch_n: 0, link_m: 0, link_n: 0, tu: 0
+Aug 31 22:52:33 minifree kernel: [ 158.887131] [drm:intel_dump_pipe_config], requested mode:
+Aug 31 22:52:33 minifree kernel: [ 158.887134] [drm:drm_mode_debug_printmodeline], Modeline 0:"NTSC 480i" 0 107520 1280 1368 1496 1712 1024 1027 1034 1104 0x40 0x0
+Aug 31 22:52:33 minifree kernel: [ 158.887139] [drm:intel_dump_pipe_config], adjusted mode:
+Aug 31 22:52:33 minifree kernel: [ 158.887142] [drm:drm_mode_debug_printmodeline], Modeline 0:"NTSC 480i" 0 107520 1280 1368 1496 1712 1024 1027 1034 1104 0x40 0x0
+Aug 31 22:52:33 minifree kernel: [ 158.887147] [drm:intel_dump_crtc_timings], crtc timings: 108000 1280 1368 1496 1712 1024 1027 1034 1104, type: 0x40 flags: 0x0
+Aug 31 22:52:33 minifree kernel: [ 158.887151] [drm:intel_dump_pipe_config], port clock: 108000
+Aug 31 22:52:33 minifree kernel: [ 158.887154] [drm:intel_dump_pipe_config], pipe src size: 1280x1024
+Aug 31 22:52:33 minifree kernel: [ 158.887157] [drm:intel_dump_pipe_config], gmch pfit: control: 0x00000000, ratios: 0x00000000, lvds border: 0x00000000
+Aug 31 22:52:33 minifree kernel: [ 158.887160] [drm:intel_dump_pipe_config], pch pfit: pos: 0x00000000, size: 0x00000000, disabled
+Aug 31 22:52:33 minifree kernel: [ 158.887164] [drm:intel_dump_pipe_config], ips: 0
+Aug 31 22:52:33 minifree kernel: [ 158.887167] [drm:intel_dump_pipe_config], double wide: 0
+Aug 31 22:52:33 minifree kernel: [ 158.895657] [drm:i9xx_update_plane], Writing base 00C00000 00000000 0 0 5120
+Aug 31 22:52:33 minifree kernel: [ 158.895671] [drm:intel_crtc_mode_set], [ENCODER:18:TV-18] set [MODE:0:NTSC 480i]
+Aug 31 22:52:33 minifree kernel: [ 158.901303] [drm:i9xx_get_fifo_size], FIFO size - (0x00001d9c) A: 28
+Aug 31 22:52:33 minifree kernel: [ 158.901308] [drm:intel_calculate_wm], FIFO entries required for mode: 17
+Aug 31 22:52:33 minifree kernel: [ 158.901310] [drm:intel_calculate_wm], FIFO watermark level: 9
+Aug 31 22:52:33 minifree kernel: [ 158.901313] [drm:i9xx_get_fifo_size], FIFO size - (0x00001d9c) B: 31
+Aug 31 22:52:33 minifree kernel: [ 158.901317] [drm:intel_calculate_wm], FIFO entries required for mode: 34
+Aug 31 22:52:33 minifree kernel: [ 158.901319] [drm:intel_calculate_wm], FIFO watermark level: -5
+Aug 31 22:52:33 minifree kernel: [ 158.901322] [drm:i9xx_update_wm], FIFO watermarks - A: 9, B: 1
+Aug 31 22:52:33 minifree kernel: [ 158.901325] [drm:i9xx_update_wm], Setting FIFO watermarks - A: 9, B: 1, C: 2, SR 1
+Aug 31 22:52:33 minifree kernel: [ 158.901328] [drm:i9xx_update_wm], memory self refresh disabled
+Aug 31 22:52:33 minifree kernel: [ 158.924049] [drm:intel_connector_check_state], [CONNECTOR:5:LVDS-1]
+Aug 31 22:52:33 minifree kernel: [ 158.924061] [drm:intel_connector_check_state], [CONNECTOR:17:SVIDEO-1]
+Aug 31 22:52:33 minifree kernel: [ 158.924065] [drm:check_encoder_state], [ENCODER:6:LVDS-6]
+Aug 31 22:52:33 minifree kernel: [ 158.924069] [drm:check_encoder_state], [ENCODER:16:DAC-16]
+Aug 31 22:52:33 minifree kernel: [ 158.924072] [drm:check_encoder_state], [ENCODER:18:TV-18]
+Aug 31 22:52:33 minifree kernel: [ 158.924076] [drm:check_crtc_state], [CRTC:3]
+Aug 31 22:52:33 minifree kernel: [ 158.924086] [drm:check_crtc_state], [CRTC:4]
+Aug 31 22:52:33 minifree kernel: [ 158.964043] [drm:intel_tv_detect_type], TV detected: c0007, 7f0000aa
+Aug 31 22:52:33 minifree kernel: [ 158.964051] [drm:intel_tv_detect_type], Unrecognised TV connection
+Aug 31 22:52:33 minifree kernel: [ 158.984046] [drm:intel_release_load_detect_pipe], [CONNECTOR:17:SVIDEO-1], [ENCODER:18:TV-18]
+Aug 31 22:52:33 minifree kernel: [ 158.984058] [drm:intel_modeset_affected_pipes], set mode pipe masks: modeset: 0, prepare: 0, disable: 1
+Aug 31 22:52:33 minifree kernel: [ 159.033005] [drm:i9xx_get_fifo_size], FIFO size - (0x00001d9c) A: 28
+Aug 31 22:52:33 minifree kernel: [ 159.033015] [drm:intel_calculate_wm], FIFO entries required for mode: 17
+Aug 31 22:52:33 minifree kernel: [ 159.033018] [drm:intel_calculate_wm], FIFO watermark level: 9
+Aug 31 22:52:33 minifree kernel: [ 159.033021] [drm:i9xx_get_fifo_size], FIFO size - (0x00001d9c) B: 31
+Aug 31 22:52:33 minifree kernel: [ 159.033025] [drm:i9xx_update_wm], FIFO watermarks - A: 9, B: 29
+Aug 31 22:52:33 minifree kernel: [ 159.033028] [drm:i9xx_update_wm], self-refresh entries: 64
+Aug 31 22:52:33 minifree kernel: [ 159.033031] [drm:i9xx_update_wm], Setting FIFO watermarks - A: 9, B: 29, C: 2, SR 63
+Aug 31 22:52:33 minifree kernel: [ 159.033035] [drm:i9xx_update_wm], memory self refresh enabled
+Aug 31 22:52:33 minifree kernel: [ 159.033047] [drm:intel_connector_check_state], [CONNECTOR:5:LVDS-1]
+Aug 31 22:52:33 minifree kernel: [ 159.033053] [drm:check_encoder_state], [ENCODER:6:LVDS-6]
+Aug 31 22:52:33 minifree kernel: [ 159.033057] [drm:check_encoder_state], [ENCODER:16:DAC-16]
+Aug 31 22:52:33 minifree kernel: [ 159.033060] [drm:check_encoder_state], [ENCODER:18:TV-18]
+Aug 31 22:52:33 minifree kernel: [ 159.033064] [drm:check_crtc_state], [CRTC:3]
+Aug 31 22:52:33 minifree kernel: [ 159.033067] [drm:check_crtc_state], [CRTC:4]
+Aug 31 22:52:33 minifree kernel: [ 159.034333] [drm:intel_crt_detect], [CONNECTOR:15:VGA-1] force=1
+Aug 31 22:52:33 minifree kernel: [ 159.056046] [drm:intel_crt_detect], CRT not detected via hotplug
+Aug 31 22:52:33 minifree kernel: [ 159.060079] [drm:gmbus_xfer], GMBUS [i915 gmbus vga] NAK for addr: 0050 r(1)
+Aug 31 22:52:33 minifree kernel: [ 159.060087] [drm:drm_do_probe_ddc_edid], drm: skipping non-existent adapter i915 gmbus vga
+Aug 31 22:52:33 minifree kernel: [ 159.060091] [drm:intel_crt_get_edid], CRT GMBUS EDID read failed, retry using GPIO bit-banging
+Aug 31 22:52:33 minifree kernel: [ 159.060094] [drm:intel_gmbus_force_bit], enabling bit-banging on i915 gmbus vga. force bit now 1
+Aug 31 22:52:33 minifree kernel: [ 159.060374] [drm:drm_do_probe_ddc_edid], drm: skipping non-existent adapter i915 gmbus vga
+Aug 31 22:52:33 minifree kernel: [ 159.060377] [drm:intel_gmbus_force_bit], disabling bit-banging on i915 gmbus vga. force bit now 0
+Aug 31 22:52:33 minifree kernel: [ 159.060380] [drm:intel_crt_detect_ddc], CRT not detected via DDC:0x50 [no valid EDID found]
+Aug 31 22:52:36 minifree kernel: [ 162.048052] [drm:intel_tv_detect], [CONNECTOR:17:SVIDEO-1] force=0
+Aug 31 22:52:43 minifree kernel: [ 168.846014] [drm:i915_gem_open],
+Aug 31 22:52:43 minifree kernel: [ 169.194795] [drm:i915_gem_open],
+Aug 31 22:52:43 minifree kernel: [ 169.249719] [drm:i915_gem_open],
+Aug 31 22:52:43 minifree kernel: [ 169.283957] [drm:drm_mode_getconnector], [CONNECTOR:5:?]
+Aug 31 22:52:43 minifree kernel: [ 169.283968] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:5:LVDS-1]
+Aug 31 22:52:43 minifree kernel: [ 169.283973] [drm:intel_lvds_detect], [CONNECTOR:5:LVDS-1]
+Aug 31 22:52:43 minifree kernel: [ 169.283995] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:5:LVDS-1] probed modes :
+Aug 31 22:52:43 minifree kernel: [ 169.284035] [drm:drm_mode_debug_printmodeline], Modeline 8:"1024x768" 50 54160 1024 1048 1184 1344 768 771 777 806 0x48 0xa
+Aug 31 22:52:43 minifree kernel: [ 169.284041] [drm:drm_mode_debug_printmodeline], Modeline 12:"1024x768" 60 65000 1024 1048 1184 1344 768 771 777 806 0x40 0xa
+Aug 31 22:52:43 minifree kernel: [ 169.284046] [drm:drm_mode_debug_printmodeline], Modeline 9:"1024x768" 40 43330 1024 1048 1184 1344 768 771 777 806 0x40 0xa
+Aug 31 22:52:43 minifree kernel: [ 169.284051] [drm:drm_mode_debug_printmodeline], Modeline 10:"800x600" 60 40000 800 840 968 1056 600 601 605 628 0x40 0x5
+Aug 31 22:52:43 minifree kernel: [ 169.284055] [drm:drm_mode_debug_printmodeline], Modeline 11:"640x480" 60 25200 640 656 752 800 480 490 492 525 0x40 0xa
+Aug 31 22:52:43 minifree kernel: [ 169.284065] [drm:drm_mode_getconnector], [CONNECTOR:5:?]
+Aug 31 22:52:43 minifree kernel: [ 169.284300] [drm:drm_mode_getconnector], [CONNECTOR:15:?]
+Aug 31 22:52:43 minifree kernel: [ 169.284305] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:15:VGA-1]
+Aug 31 22:52:43 minifree kernel: [ 169.284308] [drm:intel_crt_detect], [CONNECTOR:15:VGA-1] force=1
+Aug 31 22:52:43 minifree kernel: [ 169.300132] [drm:intel_crt_detect], CRT not detected via hotplug
+Aug 31 22:52:43 minifree kernel: [ 169.304126] [drm:gmbus_xfer], GMBUS [i915 gmbus vga] NAK for addr: 0050 r(1)
+Aug 31 22:52:43 minifree kernel: [ 169.304134] [drm:drm_do_probe_ddc_edid], drm: skipping non-existent adapter i915 gmbus vga
+Aug 31 22:52:43 minifree kernel: [ 169.304138] [drm:intel_crt_get_edid], CRT GMBUS EDID read failed, retry using GPIO bit-banging
+Aug 31 22:52:43 minifree kernel: [ 169.304142] [drm:intel_gmbus_force_bit], enabling bit-banging on i915 gmbus vga. force bit now 1
+Aug 31 22:52:43 minifree kernel: [ 169.304438] [drm:drm_do_probe_ddc_edid], drm: skipping non-existent adapter i915 gmbus vga
+Aug 31 22:52:43 minifree kernel: [ 169.304441] [drm:intel_gmbus_force_bit], disabling bit-banging on i915 gmbus vga. force bit now 0
+Aug 31 22:52:43 minifree kernel: [ 169.304445] [drm:intel_crt_detect_ddc], CRT not detected via DDC:0x50 [no valid EDID found]
+Aug 31 22:52:43 minifree kernel: [ 169.304449] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:15:VGA-1] disconnected
+Aug 31 22:52:43 minifree kernel: [ 169.304503] [drm:drm_mode_getconnector], [CONNECTOR:17:?]
+Aug 31 22:52:43 minifree kernel: [ 169.304508] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:17:SVIDEO-1]
+Aug 31 22:52:43 minifree kernel: [ 169.304512] [drm:intel_tv_detect], [CONNECTOR:17:SVIDEO-1] force=1
+Aug 31 22:52:43 minifree kernel: [ 169.304516] [drm:intel_get_load_detect_pipe], [CONNECTOR:17:SVIDEO-1], [ENCODER:18:TV-18]
+Aug 31 22:52:43 minifree kernel: [ 169.304521] [drm:intel_get_load_detect_pipe], creating tmp fb for load-detection
+Aug 31 22:52:43 minifree kernel: [ 169.304535] [drm:intel_modeset_affected_pipes], set mode pipe masks: modeset: 1, prepare: 1, disable: 0
+Aug 31 22:52:43 minifree kernel: [ 169.304541] [drm:connected_sink_compute_bpp], [CONNECTOR:17:SVIDEO-1] checking for sink bpp constrains
+Aug 31 22:52:43 minifree kernel: [ 169.304544] [drm:intel_tv_compute_config], forcing bpc to 8 for TV
+Aug 31 22:52:43 minifree kernel: [ 169.304548] [drm:intel_modeset_pipe_config], plane bpp: 24, pipe bpp: 24, dithering: 0
+Aug 31 22:52:43 minifree kernel: [ 169.304551] [drm:intel_dump_pipe_config], [CRTC:3][modeset] config for pipe A
+Aug 31 22:52:43 minifree kernel: [ 169.304554] [drm:intel_dump_pipe_config], cpu_transcoder: A
+Aug 31 22:52:43 minifree kernel: [ 169.304557] [drm:intel_dump_pipe_config], pipe bpp: 24, dithering: 0
+Aug 31 22:52:43 minifree kernel: [ 169.304560] [drm:intel_dump_pipe_config], fdi/pch: 0, lanes: 0, gmch_m: 0, gmch_n: 0, link_m: 0, link_n: 0, tu: 0
+Aug 31 22:52:43 minifree kernel: [ 169.304563] [drm:intel_dump_pipe_config], dp: 0, gmch_m: 0, gmch_n: 0, link_m: 0, link_n: 0, tu: 0
+Aug 31 22:52:43 minifree kernel: [ 169.304567] [drm:intel_dump_pipe_config], requested mode:
+Aug 31 22:52:43 minifree kernel: [ 169.304569] [drm:drm_mode_debug_printmodeline], Modeline 0:"NTSC 480i" 0 107520 1280 1368 1496 1712 1024 1027 1034 1104 0x40 0x0
+Aug 31 22:52:43 minifree kernel: [ 169.304575] [drm:intel_dump_pipe_config], adjusted mode:
+Aug 31 22:52:43 minifree kernel: [ 169.304577] [drm:drm_mode_debug_printmodeline], Modeline 0:"NTSC 480i" 0 107520 1280 1368 1496 1712 1024 1027 1034 1104 0x40 0x0
+Aug 31 22:52:43 minifree kernel: [ 169.304582] [drm:intel_dump_crtc_timings], crtc timings: 108000 1280 1368 1496 1712 1024 1027 1034 1104, type: 0x40 flags: 0x0
+Aug 31 22:52:43 minifree kernel: [ 169.304586] [drm:intel_dump_pipe_config], port clock: 108000
+Aug 31 22:52:43 minifree kernel: [ 169.304589] [drm:intel_dump_pipe_config], pipe src size: 1280x1024
+Aug 31 22:52:43 minifree kernel: [ 169.304592] [drm:intel_dump_pipe_config], gmch pfit: control: 0x00000000, ratios: 0x00000000, lvds border: 0x00000000
+Aug 31 22:52:43 minifree kernel: [ 169.304595] [drm:intel_dump_pipe_config], pch pfit: pos: 0x00000000, size: 0x00000000, disabled
+Aug 31 22:52:43 minifree kernel: [ 169.304599] [drm:intel_dump_pipe_config], ips: 0
+Aug 31 22:52:43 minifree kernel: [ 169.304601] [drm:intel_dump_pipe_config], double wide: 0
+Aug 31 22:52:43 minifree kernel: [ 169.312528] [drm:i9xx_update_plane], Writing base 02800000 00000000 0 0 5120
+Aug 31 22:52:43 minifree kernel: [ 169.312539] [drm:intel_crtc_mode_set], [ENCODER:18:TV-18] set [MODE:0:NTSC 480i]
+Aug 31 22:52:43 minifree kernel: [ 169.318168] [drm:i9xx_get_fifo_size], FIFO size - (0x00001d9c) A: 28
+Aug 31 22:52:43 minifree kernel: [ 169.318172] [drm:intel_calculate_wm], FIFO entries required for mode: 17
+Aug 31 22:52:43 minifree kernel: [ 169.318175] [drm:intel_calculate_wm], FIFO watermark level: 9
+Aug 31 22:52:43 minifree kernel: [ 169.318178] [drm:i9xx_get_fifo_size], FIFO size - (0x00001d9c) B: 31
+Aug 31 22:52:43 minifree kernel: [ 169.318181] [drm:intel_calculate_wm], FIFO entries required for mode: 34
+Aug 31 22:52:43 minifree kernel: [ 169.318184] [drm:intel_calculate_wm], FIFO watermark level: -5
+Aug 31 22:52:43 minifree kernel: [ 169.318187] [drm:i9xx_update_wm], FIFO watermarks - A: 9, B: 1
+Aug 31 22:52:43 minifree kernel: [ 169.318190] [drm:i9xx_update_wm], Setting FIFO watermarks - A: 9, B: 1, C: 2, SR 1
+Aug 31 22:52:43 minifree kernel: [ 169.318193] [drm:i9xx_update_wm], memory self refresh disabled
+Aug 31 22:52:43 minifree kernel: [ 169.340052] [drm:intel_connector_check_state], [CONNECTOR:5:LVDS-1]
+Aug 31 22:52:43 minifree kernel: [ 169.340063] [drm:intel_connector_check_state], [CONNECTOR:17:SVIDEO-1]
+Aug 31 22:52:43 minifree kernel: [ 169.340070] [drm:check_encoder_state], [ENCODER:6:LVDS-6]
+Aug 31 22:52:43 minifree kernel: [ 169.340075] [drm:check_encoder_state], [ENCODER:16:DAC-16]
+Aug 31 22:52:43 minifree kernel: [ 169.340080] [drm:check_encoder_state], [ENCODER:18:TV-18]
+Aug 31 22:52:43 minifree kernel: [ 169.340085] [drm:check_crtc_state], [CRTC:3]
+Aug 31 22:52:43 minifree kernel: [ 169.340098] [drm:check_crtc_state], [CRTC:4]
+Aug 31 22:52:43 minifree kernel: [ 169.380054] [drm:intel_tv_detect_type], TV detected: c0007, 7f0000aa
+Aug 31 22:52:43 minifree kernel: [ 169.380062] [drm:intel_tv_detect_type], Unrecognised TV connection
+Aug 31 22:52:43 minifree kernel: [ 169.424049] [drm:intel_release_load_detect_pipe], [CONNECTOR:17:SVIDEO-1], [ENCODER:18:TV-18]
+Aug 31 22:52:43 minifree kernel: [ 169.424058] [drm:intel_modeset_affected_pipes], set mode pipe masks: modeset: 0, prepare: 0, disable: 1
+Aug 31 22:52:43 minifree kernel: [ 169.465004] [drm:i9xx_get_fifo_size], FIFO size - (0x00001d9c) A: 28
+Aug 31 22:52:43 minifree kernel: [ 169.465012] [drm:intel_calculate_wm], FIFO entries required for mode: 17
+Aug 31 22:52:43 minifree kernel: [ 169.465015] [drm:intel_calculate_wm], FIFO watermark level: 9
+Aug 31 22:52:43 minifree kernel: [ 169.465018] [drm:i9xx_get_fifo_size], FIFO size - (0x00001d9c) B: 31
+Aug 31 22:52:43 minifree kernel: [ 169.465021] [drm:i9xx_update_wm], FIFO watermarks - A: 9, B: 29
+Aug 31 22:52:43 minifree kernel: [ 169.465025] [drm:i9xx_update_wm], self-refresh entries: 64
+Aug 31 22:52:43 minifree kernel: [ 169.465028] [drm:i9xx_update_wm], Setting FIFO watermarks - A: 9, B: 29, C: 2, SR 63
+Aug 31 22:52:43 minifree kernel: [ 169.465031] [drm:i9xx_update_wm], memory self refresh enabled
+Aug 31 22:52:43 minifree kernel: [ 169.465043] [drm:intel_connector_check_state], [CONNECTOR:5:LVDS-1]
+Aug 31 22:52:43 minifree kernel: [ 169.465048] [drm:check_encoder_state], [ENCODER:6:LVDS-6]
+Aug 31 22:52:43 minifree kernel: [ 169.465052] [drm:check_encoder_state], [ENCODER:16:DAC-16]
+Aug 31 22:52:43 minifree kernel: [ 169.465055] [drm:check_encoder_state], [ENCODER:18:TV-18]
+Aug 31 22:52:43 minifree kernel: [ 169.465059] [drm:check_crtc_state], [CRTC:3]
+Aug 31 22:52:43 minifree kernel: [ 169.465062] [drm:check_crtc_state], [CRTC:4]
+Aug 31 22:52:43 minifree kernel: [ 169.465213] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:17:SVIDEO-1] disconnected
+Aug 31 22:52:44 minifree kernel: [ 169.535204] [drm:intel_crtc_cursor_set], cursor off
+Aug 31 22:52:44 minifree kernel: [ 169.646187] [drm:intel_crtc_cursor_set], cursor off
+Aug 31 22:52:44 minifree kernel: [ 170.257502] [drm:drm_mode_getconnector], [CONNECTOR:5:?]
+Aug 31 22:52:44 minifree kernel: [ 170.257514] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:5:LVDS-1]
+Aug 31 22:52:44 minifree kernel: [ 170.257520] [drm:intel_lvds_detect], [CONNECTOR:5:LVDS-1]
+Aug 31 22:52:44 minifree kernel: [ 170.257543] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:5:LVDS-1] probed modes :
+Aug 31 22:52:44 minifree kernel: [ 170.257547] [drm:drm_mode_debug_printmodeline], Modeline 8:"1024x768" 50 54160 1024 1048 1184 1344 768 771 777 806 0x48 0xa
+Aug 31 22:52:44 minifree kernel: [ 170.257553] [drm:drm_mode_debug_printmodeline], Modeline 12:"1024x768" 60 65000 1024 1048 1184 1344 768 771 777 806 0x40 0xa
+Aug 31 22:52:44 minifree kernel: [ 170.257558] [drm:drm_mode_debug_printmodeline], Modeline 9:"1024x768" 40 43330 1024 1048 1184 1344 768 771 777 806 0x40 0xa
+Aug 31 22:52:44 minifree kernel: [ 170.257563] [drm:drm_mode_debug_printmodeline], Modeline 10:"800x600" 60 40000 800 840 968 1056 600 601 605 628 0x40 0x5
+Aug 31 22:52:44 minifree kernel: [ 170.257568] [drm:drm_mode_debug_printmodeline], Modeline 11:"640x480" 60 25200 640 656 752 800 480 490 492 525 0x40 0xa
+Aug 31 22:52:44 minifree kernel: [ 170.257576] [drm:drm_mode_getconnector], [CONNECTOR:5:?]
+Aug 31 22:52:44 minifree kernel: [ 170.257806] [drm:drm_mode_getconnector], [CONNECTOR:15:?]
+Aug 31 22:52:44 minifree kernel: [ 170.257811] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:15:VGA-1]
+Aug 31 22:52:44 minifree kernel: [ 170.257815] [drm:intel_crt_detect], [CONNECTOR:15:VGA-1] force=1
+Aug 31 22:52:44 minifree kernel: [ 170.272041] [drm:intel_crt_detect], CRT not detected via hotplug
+Aug 31 22:52:44 minifree kernel: [ 170.276070] [drm:gmbus_xfer], GMBUS [i915 gmbus vga] NAK for addr: 0050 r(1)
+Aug 31 22:52:44 minifree kernel: [ 170.276077] [drm:drm_do_probe_ddc_edid], drm: skipping non-existent adapter i915 gmbus vga
+Aug 31 22:52:44 minifree kernel: [ 170.276080] [drm:intel_crt_get_edid], CRT GMBUS EDID read failed, retry using GPIO bit-banging
+Aug 31 22:52:44 minifree kernel: [ 170.276083] [drm:intel_gmbus_force_bit], enabling bit-banging on i915 gmbus vga. force bit now 1
+Aug 31 22:52:44 minifree kernel: [ 170.276360] [drm:drm_do_probe_ddc_edid], drm: skipping non-existent adapter i915 gmbus vga
+Aug 31 22:52:44 minifree kernel: [ 170.276363] [drm:intel_gmbus_force_bit], disabling bit-banging on i915 gmbus vga. force bit now 0
+Aug 31 22:52:44 minifree kernel: [ 170.276366] [drm:intel_crt_detect_ddc], CRT not detected via DDC:0x50 [no valid EDID found]
+Aug 31 22:52:44 minifree kernel: [ 170.276370] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:15:VGA-1] disconnected
+Aug 31 22:52:44 minifree kernel: [ 170.276393] [drm:drm_mode_getconnector], [CONNECTOR:17:?]
+Aug 31 22:52:44 minifree kernel: [ 170.276397] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:17:SVIDEO-1]
+Aug 31 22:52:44 minifree kernel: [ 170.276401] [drm:intel_tv_detect], [CONNECTOR:17:SVIDEO-1] force=1
+Aug 31 22:52:44 minifree kernel: [ 170.276405] [drm:intel_get_load_detect_pipe], [CONNECTOR:17:SVIDEO-1], [ENCODER:18:TV-18]
+Aug 31 22:52:44 minifree kernel: [ 170.276410] [drm:intel_get_load_detect_pipe], creating tmp fb for load-detection
+Aug 31 22:52:44 minifree kernel: [ 170.276424] [drm:intel_modeset_affected_pipes], set mode pipe masks: modeset: 1, prepare: 1, disable: 0
+Aug 31 22:52:44 minifree kernel: [ 170.276430] [drm:connected_sink_compute_bpp], [CONNECTOR:17:SVIDEO-1] checking for sink bpp constrains
+Aug 31 22:52:44 minifree kernel: [ 170.276433] [drm:intel_tv_compute_config], forcing bpc to 8 for TV
+Aug 31 22:52:44 minifree kernel: [ 170.276437] [drm:intel_modeset_pipe_config], plane bpp: 24, pipe bpp: 24, dithering: 0
+Aug 31 22:52:44 minifree kernel: [ 170.276440] [drm:intel_dump_pipe_config], [CRTC:3][modeset] config for pipe A
+Aug 31 22:52:44 minifree kernel: [ 170.276443] [drm:intel_dump_pipe_config], cpu_transcoder: A
+Aug 31 22:52:44 minifree kernel: [ 170.276446] [drm:intel_dump_pipe_config], pipe bpp: 24, dithering: 0
+Aug 31 22:52:44 minifree kernel: [ 170.276449] [drm:intel_dump_pipe_config], fdi/pch: 0, lanes: 0, gmch_m: 0, gmch_n: 0, link_m: 0, link_n: 0, tu: 0
+Aug 31 22:52:44 minifree kernel: [ 170.276453] [drm:intel_dump_pipe_config], dp: 0, gmch_m: 0, gmch_n: 0, link_m: 0, link_n: 0, tu: 0
+Aug 31 22:52:44 minifree kernel: [ 170.276456] [drm:intel_dump_pipe_config], requested mode:
+Aug 31 22:52:44 minifree kernel: [ 170.276459] [drm:drm_mode_debug_printmodeline], Modeline 0:"NTSC 480i" 0 107520 1280 1368 1496 1712 1024 1027 1034 1104 0x40 0x0
+Aug 31 22:52:44 minifree kernel: [ 170.276464] [drm:intel_dump_pipe_config], adjusted mode:
+Aug 31 22:52:44 minifree kernel: [ 170.276467] [drm:drm_mode_debug_printmodeline], Modeline 0:"NTSC 480i" 0 107520 1280 1368 1496 1712 1024 1027 1034 1104 0x40 0x0
+Aug 31 22:52:44 minifree kernel: [ 170.276472] [drm:intel_dump_crtc_timings], crtc timings: 108000 1280 1368 1496 1712 1024 1027 1034 1104, type: 0x40 flags: 0x0
+Aug 31 22:52:44 minifree kernel: [ 170.276476] [drm:intel_dump_pipe_config], port clock: 108000
+Aug 31 22:52:44 minifree kernel: [ 170.276479] [drm:intel_dump_pipe_config], pipe src size: 1280x1024
+Aug 31 22:52:44 minifree kernel: [ 170.276482] [drm:intel_dump_pipe_config], gmch pfit: control: 0x00000000, ratios: 0x00000000, lvds border: 0x00000000
+Aug 31 22:52:44 minifree kernel: [ 170.276485] [drm:intel_dump_pipe_config], pch pfit: pos: 0x00000000, size: 0x00000000, disabled
+Aug 31 22:52:44 minifree kernel: [ 170.276488] [drm:intel_dump_pipe_config], ips: 0
+Aug 31 22:52:44 minifree kernel: [ 170.276491] [drm:intel_dump_pipe_config], double wide: 0
+Aug 31 22:52:44 minifree kernel: [ 170.283303] [drm:i9xx_update_plane], Writing base 02800000 00000000 0 0 5120
+Aug 31 22:52:44 minifree kernel: [ 170.283314] [drm:intel_crtc_mode_set], [ENCODER:18:TV-18] set [MODE:0:NTSC 480i]
+Aug 31 22:52:44 minifree kernel: [ 170.288947] [drm:i9xx_get_fifo_size], FIFO size - (0x00001d9c) A: 28
+Aug 31 22:52:44 minifree kernel: [ 170.288952] [drm:intel_calculate_wm], FIFO entries required for mode: 17
+Aug 31 22:52:44 minifree kernel: [ 170.288954] [drm:intel_calculate_wm], FIFO watermark level: 9
+Aug 31 22:52:44 minifree kernel: [ 170.288958] [drm:i9xx_get_fifo_size], FIFO size - (0x00001d9c) B: 31
+Aug 31 22:52:44 minifree kernel: [ 170.288961] [drm:intel_calculate_wm], FIFO entries required for mode: 34
+Aug 31 22:52:44 minifree kernel: [ 170.288963] [drm:intel_calculate_wm], FIFO watermark level: -5
+Aug 31 22:52:44 minifree kernel: [ 170.288966] [drm:i9xx_update_wm], FIFO watermarks - A: 9, B: 1
+Aug 31 22:52:44 minifree kernel: [ 170.288969] [drm:i9xx_update_wm], Setting FIFO watermarks - A: 9, B: 1, C: 2, SR 1
+Aug 31 22:52:44 minifree kernel: [ 170.288972] [drm:i9xx_update_wm], memory self refresh disabled
+Aug 31 22:52:44 minifree kernel: [ 170.328052] [drm:intel_connector_check_state], [CONNECTOR:5:LVDS-1]
+Aug 31 22:52:44 minifree kernel: [ 170.328061] [drm:intel_connector_check_state], [CONNECTOR:17:SVIDEO-1]
+Aug 31 22:52:44 minifree kernel: [ 170.328066] [drm:check_encoder_state], [ENCODER:6:LVDS-6]
+Aug 31 22:52:44 minifree kernel: [ 170.328069] [drm:check_encoder_state], [ENCODER:16:DAC-16]
+Aug 31 22:52:44 minifree kernel: [ 170.328073] [drm:check_encoder_state], [ENCODER:18:TV-18]
+Aug 31 22:52:44 minifree kernel: [ 170.328076] [drm:check_crtc_state], [CRTC:3]
+Aug 31 22:52:44 minifree kernel: [ 170.328087] [drm:check_crtc_state], [CRTC:4]
+Aug 31 22:52:44 minifree kernel: [ 170.368047] [drm:intel_tv_detect_type], TV detected: c0007, 7f0000aa
+Aug 31 22:52:44 minifree kernel: [ 170.368054] [drm:intel_tv_detect_type], Unrecognised TV connection
+Aug 31 22:52:44 minifree kernel: [ 170.384041] [drm:intel_release_load_detect_pipe], [CONNECTOR:17:SVIDEO-1], [ENCODER:18:TV-18]
+Aug 31 22:52:44 minifree kernel: [ 170.384048] [drm:intel_modeset_affected_pipes], set mode pipe masks: modeset: 0, prepare: 0, disable: 1
+Aug 31 22:52:44 minifree kernel: [ 170.429004] [drm:i9xx_get_fifo_size], FIFO size - (0x00001d9c) A: 28
+Aug 31 22:52:44 minifree kernel: [ 170.429010] [drm:intel_calculate_wm], FIFO entries required for mode: 17
+Aug 31 22:52:44 minifree kernel: [ 170.429013] [drm:intel_calculate_wm], FIFO watermark level: 9
+Aug 31 22:52:44 minifree kernel: [ 170.429016] [drm:i9xx_get_fifo_size], FIFO size - (0x00001d9c) B: 31
+Aug 31 22:52:44 minifree kernel: [ 170.429020] [drm:i9xx_update_wm], FIFO watermarks - A: 9, B: 29
+Aug 31 22:52:44 minifree kernel: [ 170.429023] [drm:i9xx_update_wm], self-refresh entries: 64
+Aug 31 22:52:44 minifree kernel: [ 170.429026] [drm:i9xx_update_wm], Setting FIFO watermarks - A: 9, B: 29, C: 2, SR 63
+Aug 31 22:52:44 minifree kernel: [ 170.429029] [drm:i9xx_update_wm], memory self refresh enabled
+Aug 31 22:52:44 minifree kernel: [ 170.429043] [drm:intel_connector_check_state], [CONNECTOR:5:LVDS-1]
+Aug 31 22:52:44 minifree kernel: [ 170.429048] [drm:check_encoder_state], [ENCODER:6:LVDS-6]
+Aug 31 22:52:44 minifree kernel: [ 170.429052] [drm:check_encoder_state], [ENCODER:16:DAC-16]
+Aug 31 22:52:44 minifree kernel: [ 170.429055] [drm:check_encoder_state], [ENCODER:18:TV-18]
+Aug 31 22:52:44 minifree kernel: [ 170.429058] [drm:check_crtc_state], [CRTC:3]
+Aug 31 22:52:44 minifree kernel: [ 170.429062] [drm:check_crtc_state], [CRTC:4]
+Aug 31 22:52:44 minifree kernel: [ 170.429212] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:17:SVIDEO-1] disconnected
+Aug 31 22:52:45 minifree kernel: [ 171.084188] [drm:drm_mode_getconnector], [CONNECTOR:5:?]
+Aug 31 22:52:45 minifree kernel: [ 171.084198] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:5:LVDS-1]
+Aug 31 22:52:45 minifree kernel: [ 171.084203] [drm:intel_lvds_detect], [CONNECTOR:5:LVDS-1]
+Aug 31 22:52:45 minifree kernel: [ 171.084225] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:5:LVDS-1] probed modes :
+Aug 31 22:52:45 minifree kernel: [ 171.084229] [drm:drm_mode_debug_printmodeline], Modeline 8:"1024x768" 50 54160 1024 1048 1184 1344 768 771 777 806 0x48 0xa
+Aug 31 22:52:45 minifree kernel: [ 171.084235] [drm:drm_mode_debug_printmodeline], Modeline 12:"1024x768" 60 65000 1024 1048 1184 1344 768 771 777 806 0x40 0xa
+Aug 31 22:52:45 minifree kernel: [ 171.084240] [drm:drm_mode_debug_printmodeline], Modeline 9:"1024x768" 40 43330 1024 1048 1184 1344 768 771 777 806 0x40 0xa
+Aug 31 22:52:45 minifree kernel: [ 171.084245] [drm:drm_mode_debug_printmodeline], Modeline 10:"800x600" 60 40000 800 840 968 1056 600 601 605 628 0x40 0x5
+Aug 31 22:52:45 minifree kernel: [ 171.084249] [drm:drm_mode_debug_printmodeline], Modeline 11:"640x480" 60 25200 640 656 752 800 480 490 492 525 0x40 0xa
+Aug 31 22:52:45 minifree kernel: [ 171.084258] [drm:drm_mode_getconnector], [CONNECTOR:5:?]
+Aug 31 22:52:45 minifree kernel: [ 171.084505] [drm:drm_mode_getconnector], [CONNECTOR:15:?]
+Aug 31 22:52:45 minifree kernel: [ 171.084510] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:15:VGA-1]
+Aug 31 22:52:45 minifree kernel: [ 171.084514] [drm:intel_crt_detect], [CONNECTOR:15:VGA-1] force=1
+Aug 31 22:52:45 minifree kernel: [ 171.100045] [drm:intel_crt_detect], CRT not detected via hotplug
+Aug 31 22:52:45 minifree kernel: [ 171.104195] [drm:gmbus_xfer], GMBUS [i915 gmbus vga] NAK for addr: 0050 r(1)
+Aug 31 22:52:45 minifree kernel: [ 171.104204] [drm:drm_do_probe_ddc_edid], drm: skipping non-existent adapter i915 gmbus vga
+Aug 31 22:52:45 minifree kernel: [ 171.104207] [drm:intel_crt_get_edid], CRT GMBUS EDID read failed, retry using GPIO bit-banging
+Aug 31 22:52:45 minifree kernel: [ 171.104210] [drm:intel_gmbus_force_bit], enabling bit-banging on i915 gmbus vga. force bit now 1
+Aug 31 22:52:45 minifree kernel: [ 171.104487] [drm:drm_do_probe_ddc_edid], drm: skipping non-existent adapter i915 gmbus vga
+Aug 31 22:52:45 minifree kernel: [ 171.104490] [drm:intel_gmbus_force_bit], disabling bit-banging on i915 gmbus vga. force bit now 0
+Aug 31 22:52:45 minifree kernel: [ 171.104494] [drm:intel_crt_detect_ddc], CRT not detected via DDC:0x50 [no valid EDID found]
+Aug 31 22:52:45 minifree kernel: [ 171.104498] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:15:VGA-1] disconnected
+Aug 31 22:52:45 minifree kernel: [ 171.104532] [drm:drm_mode_getconnector], [CONNECTOR:17:?]
+Aug 31 22:52:45 minifree kernel: [ 171.104537] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:17:SVIDEO-1]
+Aug 31 22:52:45 minifree kernel: [ 171.104541] [drm:intel_tv_detect], [CONNECTOR:17:SVIDEO-1] force=1
+Aug 31 22:52:45 minifree kernel: [ 171.104546] [drm:intel_get_load_detect_pipe], [CONNECTOR:17:SVIDEO-1], [ENCODER:18:TV-18]
+Aug 31 22:52:45 minifree kernel: [ 171.104550] [drm:intel_get_load_detect_pipe], creating tmp fb for load-detection
+Aug 31 22:52:45 minifree kernel: [ 171.104568] [drm:intel_modeset_affected_pipes], set mode pipe masks: modeset: 1, prepare: 1, disable: 0
+Aug 31 22:52:45 minifree kernel: [ 171.104574] [drm:connected_sink_compute_bpp], [CONNECTOR:17:SVIDEO-1] checking for sink bpp constrains
+Aug 31 22:52:45 minifree kernel: [ 171.104577] [drm:intel_tv_compute_config], forcing bpc to 8 for TV
+Aug 31 22:52:45 minifree kernel: [ 171.104581] [drm:intel_modeset_pipe_config], plane bpp: 24, pipe bpp: 24, dithering: 0
+Aug 31 22:52:45 minifree kernel: [ 171.104584] [drm:intel_dump_pipe_config], [CRTC:3][modeset] config for pipe A
+Aug 31 22:52:45 minifree kernel: [ 171.104588] [drm:intel_dump_pipe_config], cpu_transcoder: A
+Aug 31 22:52:45 minifree kernel: [ 171.104590] [drm:intel_dump_pipe_config], pipe bpp: 24, dithering: 0
+Aug 31 22:52:45 minifree kernel: [ 171.104593] [drm:intel_dump_pipe_config], fdi/pch: 0, lanes: 0, gmch_m: 0, gmch_n: 0, link_m: 0, link_n: 0, tu: 0
+Aug 31 22:52:45 minifree kernel: [ 171.104597] [drm:intel_dump_pipe_config], dp: 0, gmch_m: 0, gmch_n: 0, link_m: 0, link_n: 0, tu: 0
+Aug 31 22:52:45 minifree kernel: [ 171.104600] [drm:intel_dump_pipe_config], requested mode:
+Aug 31 22:52:45 minifree kernel: [ 171.104603] [drm:drm_mode_debug_printmodeline], Modeline 0:"NTSC 480i" 0 107520 1280 1368 1496 1712 1024 1027 1034 1104 0x40 0x0
+Aug 31 22:52:45 minifree kernel: [ 171.104608] [drm:intel_dump_pipe_config], adjusted mode:
+Aug 31 22:52:45 minifree kernel: [ 171.104611] [drm:drm_mode_debug_printmodeline], Modeline 0:"NTSC 480i" 0 107520 1280 1368 1496 1712 1024 1027 1034 1104 0x40 0x0
+Aug 31 22:52:45 minifree kernel: [ 171.104616] [drm:intel_dump_crtc_timings], crtc timings: 108000 1280 1368 1496 1712 1024 1027 1034 1104, type: 0x40 flags: 0x0
+Aug 31 22:52:45 minifree kernel: [ 171.104620] [drm:intel_dump_pipe_config], port clock: 108000
+Aug 31 22:52:45 minifree kernel: [ 171.104623] [drm:intel_dump_pipe_config], pipe src size: 1280x1024
+Aug 31 22:52:45 minifree kernel: [ 171.104626] [drm:intel_dump_pipe_config], gmch pfit: control: 0x00000000, ratios: 0x00000000, lvds border: 0x00000000
+Aug 31 22:52:45 minifree kernel: [ 171.104629] [drm:intel_dump_pipe_config], pch pfit: pos: 0x00000000, size: 0x00000000, disabled
+Aug 31 22:52:45 minifree kernel: [ 171.104633] [drm:intel_dump_pipe_config], ips: 0
+Aug 31 22:52:45 minifree kernel: [ 171.104635] [drm:intel_dump_pipe_config], double wide: 0
+Aug 31 22:52:45 minifree kernel: [ 171.113463] [drm:i9xx_update_plane], Writing base 02800000 00000000 0 0 5120
+Aug 31 22:52:45 minifree kernel: [ 171.113476] [drm:intel_crtc_mode_set], [ENCODER:18:TV-18] set [MODE:0:NTSC 480i]
+Aug 31 22:52:45 minifree kernel: [ 171.119107] [drm:i9xx_get_fifo_size], FIFO size - (0x00001d9c) A: 28
+Aug 31 22:52:45 minifree kernel: [ 171.119112] [drm:intel_calculate_wm], FIFO entries required for mode: 17
+Aug 31 22:52:45 minifree kernel: [ 171.119115] [drm:intel_calculate_wm], FIFO watermark level: 9
+Aug 31 22:52:45 minifree kernel: [ 171.119118] [drm:i9xx_get_fifo_size], FIFO size - (0x00001d9c) B: 31
+Aug 31 22:52:45 minifree kernel: [ 171.119122] [drm:intel_calculate_wm], FIFO entries required for mode: 34
+Aug 31 22:52:45 minifree kernel: [ 171.119124] [drm:intel_calculate_wm], FIFO watermark level: -5
+Aug 31 22:52:45 minifree kernel: [ 171.119127] [drm:i9xx_update_wm], FIFO watermarks - A: 9, B: 1
+Aug 31 22:52:45 minifree kernel: [ 171.119130] [drm:i9xx_update_wm], Setting FIFO watermarks - A: 9, B: 1, C: 2, SR 1
+Aug 31 22:52:45 minifree kernel: [ 171.119133] [drm:i9xx_update_wm], memory self refresh disabled
+Aug 31 22:52:45 minifree kernel: [ 171.144051] [drm:intel_connector_check_state], [CONNECTOR:5:LVDS-1]
+Aug 31 22:52:45 minifree kernel: [ 171.144061] [drm:intel_connector_check_state], [CONNECTOR:17:SVIDEO-1]
+Aug 31 22:52:45 minifree kernel: [ 171.144065] [drm:check_encoder_state], [ENCODER:6:LVDS-6]
+Aug 31 22:52:45 minifree kernel: [ 171.144069] [drm:check_encoder_state], [ENCODER:16:DAC-16]
+Aug 31 22:52:45 minifree kernel: [ 171.144073] [drm:check_encoder_state], [ENCODER:18:TV-18]
+Aug 31 22:52:45 minifree kernel: [ 171.144076] [drm:check_crtc_state], [CRTC:3]
+Aug 31 22:52:45 minifree kernel: [ 171.144087] [drm:check_crtc_state], [CRTC:4]
+Aug 31 22:52:45 minifree kernel: [ 171.212055] [drm:intel_tv_detect_type], TV detected: c0007, 7f0000aa
+Aug 31 22:52:45 minifree kernel: [ 171.212063] [drm:intel_tv_detect_type], Unrecognised TV connection
+Aug 31 22:52:45 minifree kernel: [ 171.228056] [drm:intel_release_load_detect_pipe], [CONNECTOR:17:SVIDEO-1], [ENCODER:18:TV-18]
+Aug 31 22:52:45 minifree kernel: [ 171.228066] [drm:intel_modeset_affected_pipes], set mode pipe masks: modeset: 0, prepare: 0, disable: 1
+Aug 31 22:52:45 minifree kernel: [ 171.269008] [drm:i9xx_get_fifo_size], FIFO size - (0x00001d9c) A: 28
+Aug 31 22:52:45 minifree kernel: [ 171.269017] [drm:intel_calculate_wm], FIFO entries required for mode: 17
+Aug 31 22:52:45 minifree kernel: [ 171.269020] [drm:intel_calculate_wm], FIFO watermark level: 9
+Aug 31 22:52:45 minifree kernel: [ 171.269023] [drm:i9xx_get_fifo_size], FIFO size - (0x00001d9c) B: 31
+Aug 31 22:52:45 minifree kernel: [ 171.269026] [drm:i9xx_update_wm], FIFO watermarks - A: 9, B: 29
+Aug 31 22:52:45 minifree kernel: [ 171.269029] [drm:i9xx_update_wm], self-refresh entries: 64
+Aug 31 22:52:45 minifree kernel: [ 171.269032] [drm:i9xx_update_wm], Setting FIFO watermarks - A: 9, B: 29, C: 2, SR 63
+Aug 31 22:52:45 minifree kernel: [ 171.269036] [drm:i9xx_update_wm], memory self refresh enabled
+Aug 31 22:52:45 minifree kernel: [ 171.271055] [drm:intel_connector_check_state], [CONNECTOR:5:LVDS-1]
+Aug 31 22:52:45 minifree kernel: [ 171.271062] [drm:check_encoder_state], [ENCODER:6:LVDS-6]
+Aug 31 22:52:45 minifree kernel: [ 171.271065] [drm:check_encoder_state], [ENCODER:16:DAC-16]
+Aug 31 22:52:45 minifree kernel: [ 171.271069] [drm:check_encoder_state], [ENCODER:18:TV-18]
+Aug 31 22:52:45 minifree kernel: [ 171.271072] [drm:check_crtc_state], [CRTC:3]
+Aug 31 22:52:45 minifree kernel: [ 171.271076] [drm:check_crtc_state], [CRTC:4]
+Aug 31 22:52:45 minifree kernel: [ 171.271234] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:17:SVIDEO-1] disconnected
+Aug 31 22:52:45 minifree kernel: [ 171.449390] [drm:drm_mode_getconnector], [CONNECTOR:5:?]
+Aug 31 22:52:45 minifree kernel: [ 171.449401] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:5:LVDS-1]
+Aug 31 22:52:45 minifree kernel: [ 171.449406] [drm:intel_lvds_detect], [CONNECTOR:5:LVDS-1]
+Aug 31 22:52:45 minifree kernel: [ 171.449429] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:5:LVDS-1] probed modes :
+Aug 31 22:52:45 minifree kernel: [ 171.449433] [drm:drm_mode_debug_printmodeline], Modeline 8:"1024x768" 50 54160 1024 1048 1184 1344 768 771 777 806 0x48 0xa
+Aug 31 22:52:45 minifree kernel: [ 171.449439] [drm:drm_mode_debug_printmodeline], Modeline 12:"1024x768" 60 65000 1024 1048 1184 1344 768 771 777 806 0x40 0xa
+Aug 31 22:52:45 minifree kernel: [ 171.449444] [drm:drm_mode_debug_printmodeline], Modeline 9:"1024x768" 40 43330 1024 1048 1184 1344 768 771 777 806 0x40 0xa
+Aug 31 22:52:45 minifree kernel: [ 171.449449] [drm:drm_mode_debug_printmodeline], Modeline 10:"800x600" 60 40000 800 840 968 1056 600 601 605 628 0x40 0x5
+Aug 31 22:52:45 minifree kernel: [ 171.449453] [drm:drm_mode_debug_printmodeline], Modeline 11:"640x480" 60 25200 640 656 752 800 480 490 492 525 0x40 0xa
+Aug 31 22:52:45 minifree kernel: [ 171.449462] [drm:drm_mode_getconnector], [CONNECTOR:5:?]
+Aug 31 22:52:45 minifree kernel: [ 171.449715] [drm:drm_mode_getconnector], [CONNECTOR:15:?]
+Aug 31 22:52:45 minifree kernel: [ 171.449720] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:15:VGA-1]
+Aug 31 22:52:45 minifree kernel: [ 171.449724] [drm:intel_crt_detect], [CONNECTOR:15:VGA-1] force=1
+Aug 31 22:52:45 minifree kernel: [ 171.464239] [drm:intel_crt_detect], CRT not detected via hotplug
+Aug 31 22:52:45 minifree kernel: [ 171.468039] [drm:gmbus_xfer], GMBUS [i915 gmbus vga] NAK for addr: 0050 r(1)
+Aug 31 22:52:45 minifree kernel: [ 171.468046] [drm:drm_do_probe_ddc_edid], drm: skipping non-existent adapter i915 gmbus vga
+Aug 31 22:52:45 minifree kernel: [ 171.468050] [drm:intel_crt_get_edid], CRT GMBUS EDID read failed, retry using GPIO bit-banging
+Aug 31 22:52:45 minifree kernel: [ 171.468053] [drm:intel_gmbus_force_bit], enabling bit-banging on i915 gmbus vga. force bit now 1
+Aug 31 22:52:45 minifree kernel: [ 171.468335] [drm:drm_do_probe_ddc_edid], drm: skipping non-existent adapter i915 gmbus vga
+Aug 31 22:52:45 minifree kernel: [ 171.468338] [drm:intel_gmbus_force_bit], disabling bit-banging on i915 gmbus vga. force bit now 0
+Aug 31 22:52:45 minifree kernel: [ 171.468341] [drm:intel_crt_detect_ddc], CRT not detected via DDC:0x50 [no valid EDID found]
+Aug 31 22:52:45 minifree kernel: [ 171.468346] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:15:VGA-1] disconnected
+Aug 31 22:52:45 minifree kernel: [ 171.468379] [drm:drm_mode_getconnector], [CONNECTOR:17:?]
+Aug 31 22:52:45 minifree kernel: [ 171.468384] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:17:SVIDEO-1]
+Aug 31 22:52:45 minifree kernel: [ 171.468388] [drm:intel_tv_detect], [CONNECTOR:17:SVIDEO-1] force=1
+Aug 31 22:52:45 minifree kernel: [ 171.468393] [drm:intel_get_load_detect_pipe], [CONNECTOR:17:SVIDEO-1], [ENCODER:18:TV-18]
+Aug 31 22:52:45 minifree kernel: [ 171.468397] [drm:intel_get_load_detect_pipe], creating tmp fb for load-detection
+Aug 31 22:52:45 minifree kernel: [ 171.468414] [drm:intel_modeset_affected_pipes], set mode pipe masks: modeset: 1, prepare: 1, disable: 0
+Aug 31 22:52:45 minifree kernel: [ 171.468420] [drm:connected_sink_compute_bpp], [CONNECTOR:17:SVIDEO-1] checking for sink bpp constrains
+Aug 31 22:52:45 minifree kernel: [ 171.468424] [drm:intel_tv_compute_config], forcing bpc to 8 for TV
+Aug 31 22:52:45 minifree kernel: [ 171.468427] [drm:intel_modeset_pipe_config], plane bpp: 24, pipe bpp: 24, dithering: 0
+Aug 31 22:52:45 minifree kernel: [ 171.468431] [drm:intel_dump_pipe_config], [CRTC:3][modeset] config for pipe A
+Aug 31 22:52:45 minifree kernel: [ 171.468434] [drm:intel_dump_pipe_config], cpu_transcoder: A
+Aug 31 22:52:45 minifree kernel: [ 171.468437] [drm:intel_dump_pipe_config], pipe bpp: 24, dithering: 0
+Aug 31 22:52:45 minifree kernel: [ 171.468440] [drm:intel_dump_pipe_config], fdi/pch: 0, lanes: 0, gmch_m: 0, gmch_n: 0, link_m: 0, link_n: 0, tu: 0
+Aug 31 22:52:45 minifree kernel: [ 171.468443] [drm:intel_dump_pipe_config], dp: 0, gmch_m: 0, gmch_n: 0, link_m: 0, link_n: 0, tu: 0
+Aug 31 22:52:45 minifree kernel: [ 171.468447] [drm:intel_dump_pipe_config], requested mode:
+Aug 31 22:52:45 minifree kernel: [ 171.468450] [drm:drm_mode_debug_printmodeline], Modeline 0:"NTSC 480i" 0 107520 1280 1368 1496 1712 1024 1027 1034 1104 0x40 0x0
+Aug 31 22:52:45 minifree kernel: [ 171.468455] [drm:intel_dump_pipe_config], adjusted mode:
+Aug 31 22:52:45 minifree kernel: [ 171.468458] [drm:drm_mode_debug_printmodeline], Modeline 0:"NTSC 480i" 0 107520 1280 1368 1496 1712 1024 1027 1034 1104 0x40 0x0
+Aug 31 22:52:45 minifree kernel: [ 171.468462] [drm:intel_dump_crtc_timings], crtc timings: 108000 1280 1368 1496 1712 1024 1027 1034 1104, type: 0x40 flags: 0x0
+Aug 31 22:52:45 minifree kernel: [ 171.468467] [drm:intel_dump_pipe_config], port clock: 108000
+Aug 31 22:52:45 minifree kernel: [ 171.468469] [drm:intel_dump_pipe_config], pipe src size: 1280x1024
+Aug 31 22:52:45 minifree kernel: [ 171.468472] [drm:intel_dump_pipe_config], gmch pfit: control: 0x00000000, ratios: 0x00000000, lvds border: 0x00000000
+Aug 31 22:52:45 minifree kernel: [ 171.468476] [drm:intel_dump_pipe_config], pch pfit: pos: 0x00000000, size: 0x00000000, disabled
+Aug 31 22:52:45 minifree kernel: [ 171.468479] [drm:intel_dump_pipe_config], ips: 0
+Aug 31 22:52:45 minifree kernel: [ 171.468482] [drm:intel_dump_pipe_config], double wide: 0
+Aug 31 22:52:45 minifree kernel: [ 171.475659] [drm:i9xx_update_plane], Writing base 02860000 00000000 0 0 5120
+Aug 31 22:52:45 minifree kernel: [ 171.475670] [drm:intel_crtc_mode_set], [ENCODER:18:TV-18] set [MODE:0:NTSC 480i]
+Aug 31 22:52:45 minifree kernel: [ 171.481311] [drm:i9xx_get_fifo_size], FIFO size - (0x00001d9c) A: 28
+Aug 31 22:52:45 minifree kernel: [ 171.481317] [drm:intel_calculate_wm], FIFO entries required for mode: 17
+Aug 31 22:52:45 minifree kernel: [ 171.481320] [drm:intel_calculate_wm], FIFO watermark level: 9
+Aug 31 22:52:45 minifree kernel: [ 171.481323] [drm:i9xx_get_fifo_size], FIFO size - (0x00001d9c) B: 31
+Aug 31 22:52:45 minifree kernel: [ 171.481326] [drm:intel_calculate_wm], FIFO entries required for mode: 34
+Aug 31 22:52:45 minifree kernel: [ 171.481329] [drm:intel_calculate_wm], FIFO watermark level: -5
+Aug 31 22:52:45 minifree kernel: [ 171.481331] [drm:i9xx_update_wm], FIFO watermarks - A: 9, B: 1
+Aug 31 22:52:45 minifree kernel: [ 171.481335] [drm:i9xx_update_wm], Setting FIFO watermarks - A: 9, B: 1, C: 2, SR 1
+Aug 31 22:52:45 minifree kernel: [ 171.481338] [drm:i9xx_update_wm], memory self refresh disabled
+Aug 31 22:52:45 minifree kernel: [ 171.504105] [drm:intel_connector_check_state], [CONNECTOR:5:LVDS-1]
+Aug 31 22:52:45 minifree kernel: [ 171.504115] [drm:intel_connector_check_state], [CONNECTOR:17:SVIDEO-1]
+Aug 31 22:52:45 minifree kernel: [ 171.504119] [drm:check_encoder_state], [ENCODER:6:LVDS-6]
+Aug 31 22:52:45 minifree kernel: [ 171.504123] [drm:check_encoder_state], [ENCODER:16:DAC-16]
+Aug 31 22:52:45 minifree kernel: [ 171.504127] [drm:check_encoder_state], [ENCODER:18:TV-18]
+Aug 31 22:52:45 minifree kernel: [ 171.504130] [drm:check_crtc_state], [CRTC:3]
+Aug 31 22:52:45 minifree kernel: [ 171.504141] [drm:check_crtc_state], [CRTC:4]
+Aug 31 22:52:46 minifree kernel: [ 171.568041] [drm:intel_tv_detect_type], TV detected: c0007, 7f0000aa
+Aug 31 22:52:46 minifree kernel: [ 171.568048] [drm:intel_tv_detect_type], Unrecognised TV connection
+Aug 31 22:52:46 minifree kernel: [ 171.628046] [drm:intel_wait_for_vblank], vblank wait timed out
+Aug 31 22:52:46 minifree kernel: [ 171.628054] [drm:intel_release_load_detect_pipe], [CONNECTOR:17:SVIDEO-1], [ENCODER:18:TV-18]
+Aug 31 22:52:46 minifree kernel: [ 171.628059] [drm:intel_modeset_affected_pipes], set mode pipe masks: modeset: 0, prepare: 0, disable: 1
+Aug 31 22:52:46 minifree kernel: [ 171.673007] [drm:i9xx_get_fifo_size], FIFO size - (0x00001d9c) A: 28
+Aug 31 22:52:46 minifree kernel: [ 171.673014] [drm:intel_calculate_wm], FIFO entries required for mode: 17
+Aug 31 22:52:46 minifree kernel: [ 171.673017] [drm:intel_calculate_wm], FIFO watermark level: 9
+Aug 31 22:52:46 minifree kernel: [ 171.673020] [drm:i9xx_get_fifo_size], FIFO size - (0x00001d9c) B: 31
+Aug 31 22:52:46 minifree kernel: [ 171.673023] [drm:i9xx_update_wm], FIFO watermarks - A: 9, B: 29
+Aug 31 22:52:46 minifree kernel: [ 171.673027] [drm:i9xx_update_wm], self-refresh entries: 64
+Aug 31 22:52:46 minifree kernel: [ 171.673029] [drm:i9xx_update_wm], Setting FIFO watermarks - A: 9, B: 29, C: 2, SR 63
+Aug 31 22:52:46 minifree kernel: [ 171.673033] [drm:i9xx_update_wm], memory self refresh enabled
+Aug 31 22:52:46 minifree kernel: [ 171.673133] [drm:intel_connector_check_state], [CONNECTOR:5:LVDS-1]
+Aug 31 22:52:46 minifree kernel: [ 171.673139] [drm:check_encoder_state], [ENCODER:6:LVDS-6]
+Aug 31 22:52:46 minifree kernel: [ 171.673143] [drm:check_encoder_state], [ENCODER:16:DAC-16]
+Aug 31 22:52:46 minifree kernel: [ 171.673147] [drm:check_encoder_state], [ENCODER:18:TV-18]
+Aug 31 22:52:46 minifree kernel: [ 171.673151] [drm:check_crtc_state], [CRTC:3]
+Aug 31 22:52:46 minifree kernel: [ 171.673154] [drm:check_crtc_state], [CRTC:4]
+Aug 31 22:52:46 minifree kernel: [ 171.673361] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:17:SVIDEO-1] disconnected
+Aug 31 22:52:46 minifree kernel: [ 171.676431] [drm:drm_mode_getconnector], [CONNECTOR:5:?]
+Aug 31 22:52:46 minifree kernel: [ 171.676439] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:5:LVDS-1]
+Aug 31 22:52:46 minifree kernel: [ 171.676444] [drm:intel_lvds_detect], [CONNECTOR:5:LVDS-1]
+Aug 31 22:52:46 minifree kernel: [ 171.676465] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:5:LVDS-1] probed modes :
+Aug 31 22:52:46 minifree kernel: [ 171.676468] [drm:drm_mode_debug_printmodeline], Modeline 8:"1024x768" 50 54160 1024 1048 1184 1344 768 771 777 806 0x48 0xa
+Aug 31 22:52:46 minifree kernel: [ 171.676474] [drm:drm_mode_debug_printmodeline], Modeline 12:"1024x768" 60 65000 1024 1048 1184 1344 768 771 777 806 0x40 0xa
+Aug 31 22:52:46 minifree kernel: [ 171.676479] [drm:drm_mode_debug_printmodeline], Modeline 9:"1024x768" 40 43330 1024 1048 1184 1344 768 771 777 806 0x40 0xa
+Aug 31 22:52:46 minifree kernel: [ 171.676483] [drm:drm_mode_debug_printmodeline], Modeline 10:"800x600" 60 40000 800 840 968 1056 600 601 605 628 0x40 0x5
+Aug 31 22:52:46 minifree kernel: [ 171.676488] [drm:drm_mode_debug_printmodeline], Modeline 11:"640x480" 60 25200 640 656 752 800 480 490 492 525 0x40 0xa
+Aug 31 22:52:46 minifree kernel: [ 171.676497] [drm:drm_mode_getconnector], [CONNECTOR:5:?]
+Aug 31 22:52:46 minifree kernel: [ 171.676719] [drm:drm_mode_getconnector], [CONNECTOR:15:?]
+Aug 31 22:52:46 minifree kernel: [ 171.676724] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:15:VGA-1]
+Aug 31 22:52:46 minifree kernel: [ 171.676727] [drm:intel_crt_detect], [CONNECTOR:15:VGA-1] force=1
+Aug 31 22:52:46 minifree kernel: [ 171.692056] [drm:intel_crt_detect], CRT not detected via hotplug
+Aug 31 22:52:46 minifree kernel: [ 171.697188] [drm:gmbus_xfer], GMBUS [i915 gmbus vga] NAK for addr: 0050 r(1)
+Aug 31 22:52:46 minifree kernel: [ 171.697197] [drm:drm_do_probe_ddc_edid], drm: skipping non-existent adapter i915 gmbus vga
+Aug 31 22:52:46 minifree kernel: [ 171.697201] [drm:intel_crt_get_edid], CRT GMBUS EDID read failed, retry using GPIO bit-banging
+Aug 31 22:52:46 minifree kernel: [ 171.697203] [drm:intel_gmbus_force_bit], enabling bit-banging on i915 gmbus vga. force bit now 1
+Aug 31 22:52:46 minifree kernel: [ 171.697483] [drm:drm_do_probe_ddc_edid], drm: skipping non-existent adapter i915 gmbus vga
+Aug 31 22:52:46 minifree kernel: [ 171.697486] [drm:intel_gmbus_force_bit], disabling bit-banging on i915 gmbus vga. force bit now 0
+Aug 31 22:52:46 minifree kernel: [ 171.697489] [drm:intel_crt_detect_ddc], CRT not detected via DDC:0x50 [no valid EDID found]
+Aug 31 22:52:46 minifree kernel: [ 171.697494] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:15:VGA-1] disconnected
+Aug 31 22:52:46 minifree kernel: [ 171.697528] [drm:drm_mode_getconnector], [CONNECTOR:17:?]
+Aug 31 22:52:46 minifree kernel: [ 171.697534] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:17:SVIDEO-1]
+Aug 31 22:52:46 minifree kernel: [ 171.697537] [drm:intel_tv_detect], [CONNECTOR:17:SVIDEO-1] force=1
+Aug 31 22:52:46 minifree kernel: [ 171.697542] [drm:intel_get_load_detect_pipe], [CONNECTOR:17:SVIDEO-1], [ENCODER:18:TV-18]
+Aug 31 22:52:46 minifree kernel: [ 171.697546] [drm:intel_get_load_detect_pipe], creating tmp fb for load-detection
+Aug 31 22:52:46 minifree kernel: [ 171.697564] [drm:intel_modeset_affected_pipes], set mode pipe masks: modeset: 1, prepare: 1, disable: 0
+Aug 31 22:52:46 minifree kernel: [ 171.697570] [drm:connected_sink_compute_bpp], [CONNECTOR:17:SVIDEO-1] checking for sink bpp constrains
+Aug 31 22:52:46 minifree kernel: [ 171.697574] [drm:intel_tv_compute_config], forcing bpc to 8 for TV
+Aug 31 22:52:46 minifree kernel: [ 171.697578] [drm:intel_modeset_pipe_config], plane bpp: 24, pipe bpp: 24, dithering: 0
+Aug 31 22:52:46 minifree kernel: [ 171.697581] [drm:intel_dump_pipe_config], [CRTC:3][modeset] config for pipe A
+Aug 31 22:52:46 minifree kernel: [ 171.697585] [drm:intel_dump_pipe_config], cpu_transcoder: A
+Aug 31 22:52:46 minifree kernel: [ 171.697588] [drm:intel_dump_pipe_config], pipe bpp: 24, dithering: 0
+Aug 31 22:52:46 minifree kernel: [ 171.697590] [drm:intel_dump_pipe_config], fdi/pch: 0, lanes: 0, gmch_m: 0, gmch_n: 0, link_m: 0, link_n: 0, tu: 0
+Aug 31 22:52:46 minifree kernel: [ 171.697594] [drm:intel_dump_pipe_config], dp: 0, gmch_m: 0, gmch_n: 0, link_m: 0, link_n: 0, tu: 0
+Aug 31 22:52:46 minifree kernel: [ 171.697598] [drm:intel_dump_pipe_config], requested mode:
+Aug 31 22:52:46 minifree kernel: [ 171.697600] [drm:drm_mode_debug_printmodeline], Modeline 0:"NTSC 480i" 0 107520 1280 1368 1496 1712 1024 1027 1034 1104 0x40 0x0
+Aug 31 22:52:46 minifree kernel: [ 171.697605] [drm:intel_dump_pipe_config], adjusted mode:
+Aug 31 22:52:46 minifree kernel: [ 171.697608] [drm:drm_mode_debug_printmodeline], Modeline 0:"NTSC 480i" 0 107520 1280 1368 1496 1712 1024 1027 1034 1104 0x40 0x0
+Aug 31 22:52:46 minifree kernel: [ 171.697613] [drm:intel_dump_crtc_timings], crtc timings: 108000 1280 1368 1496 1712 1024 1027 1034 1104, type: 0x40 flags: 0x0
+Aug 31 22:52:46 minifree kernel: [ 171.697617] [drm:intel_dump_pipe_config], port clock: 108000
+Aug 31 22:52:46 minifree kernel: [ 171.697620] [drm:intel_dump_pipe_config], pipe src size: 1280x1024
+Aug 31 22:52:46 minifree kernel: [ 171.697623] [drm:intel_dump_pipe_config], gmch pfit: control: 0x00000000, ratios: 0x00000000, lvds border: 0x00000000
+Aug 31 22:52:46 minifree kernel: [ 171.697626] [drm:intel_dump_pipe_config], pch pfit: pos: 0x00000000, size: 0x00000000, disabled
+Aug 31 22:52:46 minifree kernel: [ 171.697629] [drm:intel_dump_pipe_config], ips: 0
+Aug 31 22:52:46 minifree kernel: [ 171.697632] [drm:intel_dump_pipe_config], double wide: 0
+Aug 31 22:52:46 minifree kernel: [ 171.705575] [drm:i9xx_update_plane], Writing base 02860000 00000000 0 0 5120
+Aug 31 22:52:46 minifree kernel: [ 171.705587] [drm:intel_crtc_mode_set], [ENCODER:18:TV-18] set [MODE:0:NTSC 480i]
+Aug 31 22:52:46 minifree kernel: [ 171.711217] [drm:i9xx_get_fifo_size], FIFO size - (0x00001d9c) A: 28
+Aug 31 22:52:46 minifree kernel: [ 171.711221] [drm:intel_calculate_wm], FIFO entries required for mode: 17
+Aug 31 22:52:46 minifree kernel: [ 171.711224] [drm:intel_calculate_wm], FIFO watermark level: 9
+Aug 31 22:52:46 minifree kernel: [ 171.711227] [drm:i9xx_get_fifo_size], FIFO size - (0x00001d9c) B: 31
+Aug 31 22:52:46 minifree kernel: [ 171.711230] [drm:intel_calculate_wm], FIFO entries required for mode: 34
+Aug 31 22:52:46 minifree kernel: [ 171.711233] [drm:intel_calculate_wm], FIFO watermark level: -5
+Aug 31 22:52:46 minifree kernel: [ 171.711235] [drm:i9xx_update_wm], FIFO watermarks - A: 9, B: 1
+Aug 31 22:52:46 minifree kernel: [ 171.711239] [drm:i9xx_update_wm], Setting FIFO watermarks - A: 9, B: 1, C: 2, SR 1
+Aug 31 22:52:46 minifree kernel: [ 171.711242] [drm:i9xx_update_wm], memory self refresh disabled
+Aug 31 22:52:46 minifree kernel: [ 171.732081] [drm:intel_connector_check_state], [CONNECTOR:5:LVDS-1]
+Aug 31 22:52:46 minifree kernel: [ 171.732087] [drm:intel_connector_check_state], [CONNECTOR:17:SVIDEO-1]
+Aug 31 22:52:46 minifree kernel: [ 171.732091] [drm:check_encoder_state], [ENCODER:6:LVDS-6]
+Aug 31 22:52:46 minifree kernel: [ 171.732095] [drm:check_encoder_state], [ENCODER:16:DAC-16]
+Aug 31 22:52:46 minifree kernel: [ 171.732098] [drm:check_encoder_state], [ENCODER:18:TV-18]
+Aug 31 22:52:46 minifree kernel: [ 171.732102] [drm:check_crtc_state], [CRTC:3]
+Aug 31 22:52:46 minifree kernel: [ 171.732112] [drm:check_crtc_state], [CRTC:4]
+Aug 31 22:52:46 minifree kernel: [ 171.772048] [drm:intel_tv_detect_type], TV detected: c0007, 7f0000aa
+Aug 31 22:52:46 minifree kernel: [ 171.772053] [drm:intel_tv_detect_type], Unrecognised TV connection
+Aug 31 22:52:46 minifree kernel: [ 171.788030] [drm:intel_release_load_detect_pipe], [CONNECTOR:17:SVIDEO-1], [ENCODER:18:TV-18]
+Aug 31 22:52:46 minifree kernel: [ 171.788036] [drm:intel_modeset_affected_pipes], set mode pipe masks: modeset: 0, prepare: 0, disable: 1
+Aug 31 22:52:46 minifree kernel: [ 171.837008] [drm:i9xx_get_fifo_size], FIFO size - (0x00001d9c) A: 28
+Aug 31 22:52:46 minifree kernel: [ 171.837016] [drm:intel_calculate_wm], FIFO entries required for mode: 17
+Aug 31 22:52:46 minifree kernel: [ 171.837019] [drm:intel_calculate_wm], FIFO watermark level: 9
+Aug 31 22:52:46 minifree kernel: [ 171.837022] [drm:i9xx_get_fifo_size], FIFO size - (0x00001d9c) B: 31
+Aug 31 22:52:46 minifree kernel: [ 171.837026] [drm:i9xx_update_wm], FIFO watermarks - A: 9, B: 29
+Aug 31 22:52:46 minifree kernel: [ 171.837029] [drm:i9xx_update_wm], self-refresh entries: 64
+Aug 31 22:52:46 minifree kernel: [ 171.837032] [drm:i9xx_update_wm], Setting FIFO watermarks - A: 9, B: 29, C: 2, SR 63
+Aug 31 22:52:46 minifree kernel: [ 171.837035] [drm:i9xx_update_wm], memory self refresh enabled
+Aug 31 22:52:46 minifree kernel: [ 171.837045] [drm:intel_connector_check_state], [CONNECTOR:5:LVDS-1]
+Aug 31 22:52:46 minifree kernel: [ 171.837050] [drm:check_encoder_state], [ENCODER:6:LVDS-6]
+Aug 31 22:52:46 minifree kernel: [ 171.837053] [drm:check_encoder_state], [ENCODER:16:DAC-16]
+Aug 31 22:52:46 minifree kernel: [ 171.837057] [drm:check_encoder_state], [ENCODER:18:TV-18]
+Aug 31 22:52:46 minifree kernel: [ 171.837060] [drm:check_crtc_state], [CRTC:3]
+Aug 31 22:52:46 minifree kernel: [ 171.837064] [drm:check_crtc_state], [CRTC:4]
+Aug 31 22:52:46 minifree kernel: [ 171.837214] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:17:SVIDEO-1] disconnected
+Aug 31 22:52:46 minifree kernel: [ 171.997747] [drm:drm_mode_addfb], [FB:34]
+Aug 31 22:52:46 minifree kernel: [ 172.064040] [drm:intel_tv_detect], [CONNECTOR:17:SVIDEO-1] force=0
+Aug 31 22:52:56 minifree kernel: [ 182.080084] [drm:intel_tv_detect], [CONNECTOR:17:SVIDEO-1] force=0
+Aug 31 22:53:06 minifree kernel: [ 191.573667] [drm:drm_mode_getconnector], [CONNECTOR:5:?]
+Aug 31 22:53:06 minifree kernel: [ 191.573678] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:5:LVDS-1]
+Aug 31 22:53:06 minifree kernel: [ 191.573684] [drm:intel_lvds_detect], [CONNECTOR:5:LVDS-1]
+Aug 31 22:53:06 minifree kernel: [ 191.573706] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:5:LVDS-1] probed modes :
+Aug 31 22:53:06 minifree kernel: [ 191.573710] [drm:drm_mode_debug_printmodeline], Modeline 8:"1024x768" 50 54160 1024 1048 1184 1344 768 771 777 806 0x48 0xa
+Aug 31 22:53:06 minifree kernel: [ 191.573715] [drm:drm_mode_debug_printmodeline], Modeline 12:"1024x768" 60 65000 1024 1048 1184 1344 768 771 777 806 0x40 0xa
+Aug 31 22:53:06 minifree kernel: [ 191.573720] [drm:drm_mode_debug_printmodeline], Modeline 9:"1024x768" 40 43330 1024 1048 1184 1344 768 771 777 806 0x40 0xa
+Aug 31 22:53:06 minifree kernel: [ 191.573725] [drm:drm_mode_debug_printmodeline], Modeline 10:"800x600" 60 40000 800 840 968 1056 600 601 605 628 0x40 0x5
+Aug 31 22:53:06 minifree kernel: [ 191.573730] [drm:drm_mode_debug_printmodeline], Modeline 11:"640x480" 60 25200 640 656 752 800 480 490 492 525 0x40 0xa
+Aug 31 22:53:06 minifree kernel: [ 191.573739] [drm:drm_mode_getconnector], [CONNECTOR:5:?]
+Aug 31 22:53:06 minifree kernel: [ 191.573976] [drm:drm_mode_getconnector], [CONNECTOR:15:?]
+Aug 31 22:53:06 minifree kernel: [ 191.573980] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:15:VGA-1]
+Aug 31 22:53:06 minifree kernel: [ 191.573984] [drm:intel_crt_detect], [CONNECTOR:15:VGA-1] force=1
+Aug 31 22:53:06 minifree kernel: [ 191.596041] [drm:intel_crt_detect], CRT not detected via hotplug
+Aug 31 22:53:06 minifree kernel: [ 191.600059] [drm:gmbus_xfer], GMBUS [i915 gmbus vga] NAK for addr: 0050 r(1)
+Aug 31 22:53:06 minifree kernel: [ 191.600066] [drm:drm_do_probe_ddc_edid], drm: skipping non-existent adapter i915 gmbus vga
+Aug 31 22:53:06 minifree kernel: [ 191.600070] [drm:intel_crt_get_edid], CRT GMBUS EDID read failed, retry using GPIO bit-banging
+Aug 31 22:53:06 minifree kernel: [ 191.600072] [drm:intel_gmbus_force_bit], enabling bit-banging on i915 gmbus vga. force bit now 1
+Aug 31 22:53:06 minifree kernel: [ 191.600350] [drm:drm_do_probe_ddc_edid], drm: skipping non-existent adapter i915 gmbus vga
+Aug 31 22:53:06 minifree kernel: [ 191.600353] [drm:intel_gmbus_force_bit], disabling bit-banging on i915 gmbus vga. force bit now 0
+Aug 31 22:53:06 minifree kernel: [ 191.600356] [drm:intel_crt_detect_ddc], CRT not detected via DDC:0x50 [no valid EDID found]
+Aug 31 22:53:06 minifree kernel: [ 191.600359] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:15:VGA-1] disconnected
+Aug 31 22:53:06 minifree kernel: [ 191.600384] [drm:drm_mode_getconnector], [CONNECTOR:17:?]
+Aug 31 22:53:06 minifree kernel: [ 191.600388] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:17:SVIDEO-1]
+Aug 31 22:53:06 minifree kernel: [ 191.600392] [drm:intel_tv_detect], [CONNECTOR:17:SVIDEO-1] force=1
+Aug 31 22:53:06 minifree kernel: [ 191.600397] [drm:intel_get_load_detect_pipe], [CONNECTOR:17:SVIDEO-1], [ENCODER:18:TV-18]
+Aug 31 22:53:06 minifree kernel: [ 191.600401] [drm:intel_get_load_detect_pipe], creating tmp fb for load-detection
+Aug 31 22:53:06 minifree kernel: [ 191.600417] [drm:intel_modeset_affected_pipes], set mode pipe masks: modeset: 1, prepare: 1, disable: 0
+Aug 31 22:53:06 minifree kernel: [ 191.600423] [drm:connected_sink_compute_bpp], [CONNECTOR:17:SVIDEO-1] checking for sink bpp constrains
+Aug 31 22:53:06 minifree kernel: [ 191.600426] [drm:intel_tv_compute_config], forcing bpc to 8 for TV
+Aug 31 22:53:06 minifree kernel: [ 191.600429] [drm:intel_modeset_pipe_config], plane bpp: 24, pipe bpp: 24, dithering: 0
+Aug 31 22:53:06 minifree kernel: [ 191.600433] [drm:intel_dump_pipe_config], [CRTC:3][modeset] config for pipe A
+Aug 31 22:53:06 minifree kernel: [ 191.600436] [drm:intel_dump_pipe_config], cpu_transcoder: A
+Aug 31 22:53:06 minifree kernel: [ 191.600439] [drm:intel_dump_pipe_config], pipe bpp: 24, dithering: 0
+Aug 31 22:53:06 minifree kernel: [ 191.600442] [drm:intel_dump_pipe_config], fdi/pch: 0, lanes: 0, gmch_m: 0, gmch_n: 0, link_m: 0, link_n: 0, tu: 0
+Aug 31 22:53:06 minifree kernel: [ 191.600445] [drm:intel_dump_pipe_config], dp: 0, gmch_m: 0, gmch_n: 0, link_m: 0, link_n: 0, tu: 0
+Aug 31 22:53:06 minifree kernel: [ 191.600449] [drm:intel_dump_pipe_config], requested mode:
+Aug 31 22:53:06 minifree kernel: [ 191.600452] [drm:drm_mode_debug_printmodeline], Modeline 0:"NTSC 480i" 0 107520 1280 1368 1496 1712 1024 1027 1034 1104 0x40 0x0
+Aug 31 22:53:06 minifree kernel: [ 191.600457] [drm:intel_dump_pipe_config], adjusted mode:
+Aug 31 22:53:06 minifree kernel: [ 191.600459] [drm:drm_mode_debug_printmodeline], Modeline 0:"NTSC 480i" 0 107520 1280 1368 1496 1712 1024 1027 1034 1104 0x40 0x0
+Aug 31 22:53:06 minifree kernel: [ 191.600464] [drm:intel_dump_crtc_timings], crtc timings: 108000 1280 1368 1496 1712 1024 1027 1034 1104, type: 0x40 flags: 0x0
+Aug 31 22:53:06 minifree kernel: [ 191.600468] [drm:intel_dump_pipe_config], port clock: 108000
+Aug 31 22:53:06 minifree kernel: [ 191.600471] [drm:intel_dump_pipe_config], pipe src size: 1280x1024
+Aug 31 22:53:06 minifree kernel: [ 191.600474] [drm:intel_dump_pipe_config], gmch pfit: control: 0x00000000, ratios: 0x00000000, lvds border: 0x00000000
+Aug 31 22:53:06 minifree kernel: [ 191.600477] [drm:intel_dump_pipe_config], pch pfit: pos: 0x00000000, size: 0x00000000, disabled
+Aug 31 22:53:06 minifree kernel: [ 191.600481] [drm:intel_dump_pipe_config], ips: 0
+Aug 31 22:53:06 minifree kernel: [ 191.600484] [drm:intel_dump_pipe_config], double wide: 0
+Aug 31 22:53:06 minifree kernel: [ 191.607207] [drm:i9xx_update_plane], Writing base 05040000 00000000 0 0 5120
+Aug 31 22:53:06 minifree kernel: [ 191.607218] [drm:intel_crtc_mode_set], [ENCODER:18:TV-18] set [MODE:0:NTSC 480i]
+Aug 31 22:53:06 minifree kernel: [ 191.612854] [drm:i9xx_get_fifo_size], FIFO size - (0x00001d9c) A: 28
+Aug 31 22:53:06 minifree kernel: [ 191.612859] [drm:intel_calculate_wm], FIFO entries required for mode: 17
+Aug 31 22:53:06 minifree kernel: [ 191.612862] [drm:intel_calculate_wm], FIFO watermark level: 9
+Aug 31 22:53:06 minifree kernel: [ 191.612865] [drm:i9xx_get_fifo_size], FIFO size - (0x00001d9c) B: 31
+Aug 31 22:53:06 minifree kernel: [ 191.612868] [drm:intel_calculate_wm], FIFO entries required for mode: 34
+Aug 31 22:53:06 minifree kernel: [ 191.612870] [drm:intel_calculate_wm], FIFO watermark level: -5
+Aug 31 22:53:06 minifree kernel: [ 191.612873] [drm:i9xx_update_wm], FIFO watermarks - A: 9, B: 1
+Aug 31 22:53:06 minifree kernel: [ 191.612876] [drm:i9xx_update_wm], Setting FIFO watermarks - A: 9, B: 1, C: 2, SR 1
+Aug 31 22:53:06 minifree kernel: [ 191.612880] [drm:i9xx_update_wm], memory self refresh disabled
+Aug 31 22:53:06 minifree kernel: [ 191.636051] [drm:intel_connector_check_state], [CONNECTOR:5:LVDS-1]
+Aug 31 22:53:06 minifree kernel: [ 191.636059] [drm:intel_connector_check_state], [CONNECTOR:17:SVIDEO-1]
+Aug 31 22:53:06 minifree kernel: [ 191.636063] [drm:check_encoder_state], [ENCODER:6:LVDS-6]
+Aug 31 22:53:06 minifree kernel: [ 191.636066] [drm:check_encoder_state], [ENCODER:16:DAC-16]
+Aug 31 22:53:06 minifree kernel: [ 191.636070] [drm:check_encoder_state], [ENCODER:18:TV-18]
+Aug 31 22:53:06 minifree kernel: [ 191.636073] [drm:check_crtc_state], [CRTC:3]
+Aug 31 22:53:06 minifree kernel: [ 191.636083] [drm:check_crtc_state], [CRTC:4]
+Aug 31 22:53:06 minifree kernel: [ 191.676047] [drm:intel_tv_detect_type], TV detected: c0007, 7f0000aa
+Aug 31 22:53:06 minifree kernel: [ 191.676053] [drm:intel_tv_detect_type], Unrecognised TV connection
+Aug 31 22:53:06 minifree kernel: [ 191.692041] [drm:intel_release_load_detect_pipe], [CONNECTOR:17:SVIDEO-1], [ENCODER:18:TV-18]
+Aug 31 22:53:06 minifree kernel: [ 191.692047] [drm:intel_modeset_affected_pipes], set mode pipe masks: modeset: 0, prepare: 0, disable: 1
+Aug 31 22:53:06 minifree kernel: [ 191.745006] [drm:i9xx_get_fifo_size], FIFO size - (0x00001d9c) A: 28
+Aug 31 22:53:06 minifree kernel: [ 191.745014] [drm:intel_calculate_wm], FIFO entries required for mode: 17
+Aug 31 22:53:06 minifree kernel: [ 191.745017] [drm:intel_calculate_wm], FIFO watermark level: 9
+Aug 31 22:53:06 minifree kernel: [ 191.745020] [drm:i9xx_get_fifo_size], FIFO size - (0x00001d9c) B: 31
+Aug 31 22:53:06 minifree kernel: [ 191.745024] [drm:i9xx_update_wm], FIFO watermarks - A: 9, B: 29
+Aug 31 22:53:06 minifree kernel: [ 191.745027] [drm:i9xx_update_wm], self-refresh entries: 64
+Aug 31 22:53:06 minifree kernel: [ 191.745030] [drm:i9xx_update_wm], Setting FIFO watermarks - A: 9, B: 29, C: 2, SR 63
+Aug 31 22:53:06 minifree kernel: [ 191.745034] [drm:i9xx_update_wm], memory self refresh enabled
+Aug 31 22:53:06 minifree kernel: [ 191.745045] [drm:intel_connector_check_state], [CONNECTOR:5:LVDS-1]
+Aug 31 22:53:06 minifree kernel: [ 191.745050] [drm:check_encoder_state], [ENCODER:6:LVDS-6]
+Aug 31 22:53:06 minifree kernel: [ 191.745053] [drm:check_encoder_state], [ENCODER:16:DAC-16]
+Aug 31 22:53:06 minifree kernel: [ 191.745057] [drm:check_encoder_state], [ENCODER:18:TV-18]
+Aug 31 22:53:06 minifree kernel: [ 191.745060] [drm:check_crtc_state], [CRTC:3]
+Aug 31 22:53:06 minifree kernel: [ 191.745064] [drm:check_crtc_state], [CRTC:4]
+Aug 31 22:53:06 minifree kernel: [ 191.745217] [drm:drm_helper_probe_single_connector_modes], [CONNECTOR:17:SVIDEO-1] disconnected
+Aug 31 22:53:06 minifree kernel: [ 192.096128] [drm:intel_tv_detect], [CONNECTOR:17:SVIDEO-1] force=0
+Aug 31 22:53:16 minifree kernel: [ 202.112100] [drm:intel_tv_detect], [CONNECTOR:17:SVIDEO-1] force=0
+Aug 31 22:53:26 minifree kernel: [ 212.128145] [drm:intel_tv_detect], [CONNECTOR:17:SVIDEO-1] force=0
+Aug 31 22:53:36 minifree kernel: [ 222.144192] [drm:intel_tv_detect], [CONNECTOR:17:SVIDEO-1] force=0
+Aug 31 22:53:46 minifree kernel: [ 232.160064] [drm:intel_tv_detect], [CONNECTOR:17:SVIDEO-1] force=0
+Aug 31 22:53:56 minifree kernel: [ 242.176124] [drm:intel_tv_detect], [CONNECTOR:17:SVIDEO-1] force=0
diff --git a/docs/future/dumps/x60_lspcixxxvvnn_5927_19 b/docs/future/dumps/x60_lspcixxxvvnn_5927_19
new file mode 100644
index 00000000..5c524c9f
--- /dev/null
+++ b/docs/future/dumps/x60_lspcixxxvvnn_5927_19
@@ -0,0 +1,809 @@
+00:00.0 Host bridge [0600]: Intel Corporation Mobile 945GM/PM/GMS, 943/940GML and 945GT Express Memory Controller Hub [8086:27a0] (rev 03)
+ Subsystem: Lenovo ThinkPad T60/R60 series [17aa:2017]
+ Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
+ Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx-
+ Latency: 0
+ Capabilities: [e0] Vendor Specific Information: Len=09 <?>
+ Kernel driver in use: agpgart-intel
+00: 86 80 a0 27 06 00 90 20 03 00 00 06 00 00 00 00
+10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+20: 00 00 00 00 00 00 00 00 00 00 00 00 aa 17 17 20
+30: 00 00 00 00 e0 00 00 00 00 00 00 00 00 00 00 00
+40: 01 90 d1 fe 01 40 d1 fe 05 00 00 f0 01 80 d1 fe
+50: 00 00 30 00 19 00 00 00 00 00 00 00 00 00 00 00
+60: 01 30 d1 fe 00 00 00 00 00 00 00 00 00 00 00 00
+70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+90: 30 33 33 33 33 33 33 00 ff 03 00 00 80 1a 38 00
+a0: 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+d0: 00 00 00 00 00 00 00 00 00 00 00 00 be ba fe ca
+e0: 09 00 09 51 02 04 0a 90 0e 00 00 00 00 00 00 00
+f0: 00 00 00 00 00 00 00 00 86 0f 05 00 10 00 00 00
+
+00:02.0 VGA compatible controller [0300]: Intel Corporation Mobile 945GM/GMS, 943/940GML Express Integrated Graphics Controller [8086:27a2] (rev 03) (prog-if 00 [VGA controller])
+ Subsystem: Lenovo ThinkPad T60/R60 series [17aa:201a]
+ Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
+ Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
+ Latency: 0
+ Interrupt: pin A routed to IRQ 16
+ Region 0: Memory at e4200000 (32-bit, non-prefetchable) [size=512K]
+ Region 1: I/O ports at 50a0 [size=8]
+ Region 2: Memory at d0000000 (32-bit, prefetchable) [size=256M]
+ Region 3: Memory at e4300000 (32-bit, non-prefetchable) [size=256K]
+ Expansion ROM at <unassigned> [disabled]
+ Capabilities: [90] MSI: Enable- Count=1/1 Maskable- 64bit-
+ Address: 00000000 Data: 0000
+ Capabilities: [d0] Power Management version 2
+ Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
+ Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
+ Kernel driver in use: i915
+00: 86 80 a2 27 07 00 90 00 03 00 00 03 00 00 80 00
+10: 00 00 20 e4 a1 50 00 00 08 00 00 d0 00 00 30 e4
+20: 00 00 00 00 00 00 00 00 00 00 00 00 aa 17 1a 20
+30: 00 00 00 00 90 00 00 00 00 00 00 00 0b 01 00 00
+40: 00 00 00 00 48 00 00 00 09 00 09 51 02 04 0a 90
+50: 0e 00 30 00 19 00 00 00 00 00 00 00 00 00 80 7f
+60: 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00
+70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+90: 05 d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+c0: 00 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+d0: 01 00 22 00 00 00 00 00 00 00 00 00 00 00 00 00
+e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+f0: 03 00 64 34 ff 00 00 00 86 0f 05 00 00 00 00 00
+
+00:02.1 Display controller [0380]: Intel Corporation Mobile 945GM/GMS/GME, 943/940GML Express Integrated Graphics Controller [8086:27a6] (rev 03)
+ Subsystem: Lenovo ThinkPad T60/R60 series [17aa:201a]
+ Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
+ Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
+ Latency: 0
+ Region 0: Memory at e4280000 (32-bit, non-prefetchable) [size=512K]
+ Capabilities: [d0] Power Management version 2
+ Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
+ Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
+00: 86 80 a6 27 07 00 90 00 03 00 80 03 00 00 80 00
+10: 00 00 28 e4 00 00 00 00 00 00 00 00 00 00 00 00
+20: 00 00 00 00 00 00 00 00 00 00 00 00 aa 17 1a 20
+30: 00 00 00 00 d0 00 00 00 00 00 00 00 00 00 00 00
+40: 00 00 00 00 48 00 00 00 09 00 09 51 02 04 0a 90
+50: 0e 00 30 00 19 00 00 00 00 00 00 00 00 00 80 7f
+60: 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00
+70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+c0: 00 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+d0: 01 00 22 00 00 00 00 00 00 00 00 00 00 00 00 00
+e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+f0: 03 00 64 34 ff 00 00 00 86 0f 05 00 00 00 00 00
+
+00:1b.0 Audio device [0403]: Intel Corporation NM10/ICH7 Family High Definition Audio Controller [8086:27d8] (rev 02)
+ Subsystem: Lenovo ThinkPad T60/R60 series [17aa:2010]
+ Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
+ Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
+ Latency: 0, Cache Line Size: 64 bytes
+ Interrupt: pin B routed to IRQ 46
+ Region 0: Memory at e4340000 (64-bit, non-prefetchable) [size=16K]
+ Capabilities: [50] Power Management version 2
+ Flags: PMEClk- DSI- D1- D2- AuxCurrent=55mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
+ Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
+ Capabilities: [60] MSI: Enable+ Count=1/1 Maskable- 64bit+
+ Address: 00000000fee0300c Data: 4162
+ Capabilities: [70] Express (v1) Root Complex Integrated Endpoint, MSI 00
+ DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <64ns, L1 <1us
+ ExtTag- RBE- FLReset-
+ DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
+ RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop+
+ MaxPayload 128 bytes, MaxReadReq 128 bytes
+ DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+ TransPend-
+ LnkCap: Port #0, Speed unknown, Width x0, ASPM unknown, Latency L0 <64ns, L1 <1us
+ ClockPM- Surprise- LLActRep- BwNot-
+ LnkCtl: ASPM Disabled; Disabled- Retrain- CommClk-
+ ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
+ LnkSta: Speed unknown, Width x0, TrErr- Train- SlotClk- DLActive- BWMgmt- ABWMgmt-
+ Capabilities: [100 v1] Virtual Channel
+ Caps: LPEVC=0 RefClk=100ns PATEntryBits=1
+ Arb: Fixed- WRR32- WRR64- WRR128-
+ Ctrl: ArbSelect=Fixed
+ Status: InProgress-
+ VC0: Caps: PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
+ Arb: Fixed- WRR32- WRR64- WRR128- TWRR128- WRR256-
+ Ctrl: Enable+ ID=0 ArbSelect=Fixed TC/VC=01
+ Status: NegoPending- InProgress-
+ VC1: Caps: PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
+ Arb: Fixed- WRR32- WRR64- WRR128- TWRR128- WRR256-
+ Ctrl: Enable+ ID=1 ArbSelect=Fixed TC/VC=80
+ Status: NegoPending- InProgress-
+ Capabilities: [130 v1] Root Complex Link
+ Desc: PortNumber=0f ComponentID=00 EltType=Config
+ Link0: Desc: TargetPort=00 TargetComponent=00 AssocRCRB- LinkType=MemMapped LinkValid+
+ Addr: 00000000fed1c000
+ Kernel driver in use: snd_hda_intel
+00: 86 80 d8 27 06 05 10 00 02 00 03 04 10 00 00 00
+10: 04 00 34 e4 00 00 00 00 00 00 00 00 00 00 00 00
+20: 00 00 00 00 00 00 00 00 00 00 00 00 aa 17 10 20
+30: 00 00 00 00 50 00 00 00 00 00 00 00 0b 02 00 00
+40: 07 00 00 03 00 00 00 00 00 00 00 00 00 00 00 00
+50: 01 60 42 c8 00 00 00 00 00 00 00 00 00 00 00 00
+60: 05 70 81 00 0c 30 e0 fe 00 00 00 00 62 41 00 00
+70: 10 00 91 00 00 00 00 00 00 08 10 00 00 00 00 00
+80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+c0: 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00
+d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+f0: 00 00 00 00 00 00 00 00 86 0f 02 00 00 00 00 00
+
+00:1c.0 PCI bridge [0604]: Intel Corporation NM10/ICH7 Family PCI Express Port 1 [8086:27d0] (rev 02) (prog-if 00 [Normal decode])
+ Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
+ Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
+ Latency: 0, Cache Line Size: 64 bytes
+ Bus: primary=00, secondary=01, subordinate=01, sec-latency=0
+ I/O behind bridge: 00004000-00004fff
+ Memory behind bridge: e4100000-e41fffff
+ Prefetchable memory behind bridge: 0000000080000000-00000000801fffff
+ Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- <SERR- <PERR-
+ BridgeCtl: Parity- SERR+ NoISA+ VGA- MAbort- >Reset- FastB2B-
+ PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
+ Capabilities: [40] Express (v1) Root Port (Slot+), MSI 00
+ DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s unlimited, L1 unlimited
+ ExtTag- RBE- FLReset-
+ DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
+ RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
+ MaxPayload 128 bytes, MaxReadReq 128 bytes
+ DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+ TransPend-
+ LnkCap: Port #1, Speed 2.5GT/s, Width x1, ASPM L0s L1, Latency L0 <256ns, L1 <4us
+ ClockPM- Surprise- LLActRep+ BwNot-
+ LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk+
+ ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
+ LnkSta: Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive+ BWMgmt- ABWMgmt-
+ SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug+ Surprise+
+ Slot #0, PowerLimit 0.000W; Interlock- NoCompl-
+ SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet+ CmdCplt+ HPIrq+ LinkChg+
+ Control: AttnInd Unknown, PwrInd Unknown, Power- Interlock-
+ SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet+ Interlock-
+ Changed: MRL- PresDet- LinkState+
+ RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna+ CRSVisible-
+ RootCap: CRSVisible-
+ RootSta: PME ReqID 0000, PMEStatus- PMEPending-
+ Capabilities: [80] MSI: Enable+ Count=1/1 Maskable- 64bit-
+ Address: fee0300c Data: 4191
+ Capabilities: [90] Subsystem: Intel Corporation NM10/ICH7 Family PCI Express Port 1 [8086:27d0]
+ Capabilities: [a0] Power Management version 2
+ Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
+ Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
+ Capabilities: [100 v1] Virtual Channel
+ Caps: LPEVC=0 RefClk=100ns PATEntryBits=1
+ Arb: Fixed+ WRR32- WRR64- WRR128-
+ Ctrl: ArbSelect=Fixed
+ Status: InProgress-
+ VC0: Caps: PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
+ Arb: Fixed+ WRR32- WRR64- WRR128- TWRR128- WRR256-
+ Ctrl: Enable+ ID=0 ArbSelect=Fixed TC/VC=01
+ Status: NegoPending- InProgress-
+ VC1: Caps: PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
+ Arb: Fixed+ WRR32- WRR64- WRR128- TWRR128- WRR256-
+ Ctrl: Enable- ID=0 ArbSelect=Fixed TC/VC=00
+ Status: NegoPending- InProgress-
+ Capabilities: [180 v1] Root Complex Link
+ Desc: PortNumber=01 ComponentID=00 EltType=Config
+ Link0: Desc: TargetPort=00 TargetComponent=00 AssocRCRB- LinkType=MemMapped LinkValid+
+ Addr: 00000000fed1c001
+ Kernel driver in use: pcieport
+00: 86 80 d0 27 07 05 10 00 02 00 04 06 10 00 81 00
+10: 00 00 00 00 00 00 00 00 00 01 01 00 40 40 00 00
+20: 10 e4 10 e4 01 80 11 80 00 00 00 00 00 00 00 00
+30: 00 00 00 00 40 00 00 00 00 00 00 00 0b 01 06 00
+40: 10 80 41 01 c0 0f 00 00 00 00 10 00 11 2c 11 01
+50: 40 00 11 30 60 00 00 00 38 10 40 01 08 00 00 00
+60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+80: 05 90 01 00 0c 30 e0 fe 91 41 00 00 00 00 00 00
+90: 0d a0 00 00 86 80 d0 27 00 00 00 00 00 00 00 00
+a0: 01 00 02 c8 00 00 00 00 00 00 00 00 00 00 00 00
+b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+d0: 00 00 00 00 00 00 00 00 80 00 11 00 00 00 00 00
+e0: 0e 00 c7 00 06 07 08 00 00 00 00 00 00 00 00 00
+f0: 00 00 00 00 00 00 00 00 86 0f 02 00 00 00 00 00
+
+00:1c.1 PCI bridge [0604]: Intel Corporation NM10/ICH7 Family PCI Express Port 2 [8086:27d2] (rev 02) (prog-if 00 [Normal decode])
+ Control: I/O- Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
+ Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
+ Latency: 0, Cache Line Size: 64 bytes
+ Bus: primary=00, secondary=02, subordinate=02, sec-latency=0
+ Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ <SERR- <PERR-
+ BridgeCtl: Parity- SERR+ NoISA+ VGA- MAbort- >Reset- FastB2B-
+ PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
+ Capabilities: [40] Express (v1) Root Port (Slot-), MSI 00
+ DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s unlimited, L1 unlimited
+ ExtTag- RBE- FLReset-
+ DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
+ RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
+ MaxPayload 128 bytes, MaxReadReq 128 bytes
+ DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+ TransPend-
+ LnkCap: Port #2, Speed 2.5GT/s, Width x1, ASPM L0s L1, Latency L0 <256ns, L1 <4us
+ ClockPM- Surprise- LLActRep+ BwNot-
+ LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk+
+ ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
+ LnkSta: Speed 2.5GT/s, Width x0, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
+ RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna+ CRSVisible-
+ RootCap: CRSVisible-
+ RootSta: PME ReqID 0000, PMEStatus- PMEPending-
+ Capabilities: [80] MSI: Enable+ Count=1/1 Maskable- 64bit-
+ Address: fee0300c Data: 41b1
+ Capabilities: [90] Subsystem: Intel Corporation NM10/ICH7 Family PCI Express Port 2 [8086:27d2]
+ Capabilities: [a0] Power Management version 2
+ Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
+ Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
+ Capabilities: [100 v1] Virtual Channel
+ Caps: LPEVC=0 RefClk=100ns PATEntryBits=1
+ Arb: Fixed+ WRR32- WRR64- WRR128-
+ Ctrl: ArbSelect=Fixed
+ Status: InProgress-
+ VC0: Caps: PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
+ Arb: Fixed+ WRR32- WRR64- WRR128- TWRR128- WRR256-
+ Ctrl: Enable+ ID=0 ArbSelect=Fixed TC/VC=01
+ Status: NegoPending- InProgress-
+ VC1: Caps: PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
+ Arb: Fixed+ WRR32- WRR64- WRR128- TWRR128- WRR256-
+ Ctrl: Enable- ID=0 ArbSelect=Fixed TC/VC=00
+ Status: NegoPending- InProgress-
+ Capabilities: [180 v1] Root Complex Link
+ Desc: PortNumber=02 ComponentID=00 EltType=Config
+ Link0: Desc: TargetPort=00 TargetComponent=00 AssocRCRB- LinkType=MemMapped LinkValid+
+ Addr: 00000000fed1c001
+ Kernel driver in use: pcieport
+00: 86 80 d2 27 04 05 10 00 02 00 04 06 10 00 81 00
+10: 00 00 00 00 00 00 00 00 00 02 02 00 f0 00 00 20
+20: f0 ff 00 00 f1 ff 01 00 00 00 00 00 00 00 00 00
+30: 00 00 00 00 40 00 00 00 00 00 00 00 0b 02 06 00
+40: 10 80 41 00 c0 0f 00 00 00 00 10 00 11 2c 11 02
+50: 40 00 01 10 60 00 00 00 00 00 40 00 08 00 00 00
+60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+80: 05 90 01 00 0c 30 e0 fe b1 41 00 00 00 00 00 00
+90: 0d a0 00 00 86 80 d2 27 00 00 00 00 00 00 00 00
+a0: 01 00 02 c8 00 00 00 00 00 00 00 00 00 00 00 00
+b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+d0: 00 00 00 00 00 00 00 00 80 00 11 00 00 00 00 00
+e0: 0e 00 c7 00 06 07 08 00 00 00 00 00 00 00 00 00
+f0: 00 00 00 00 00 00 00 00 86 0f 02 00 00 00 00 00
+
+00:1c.2 PCI bridge [0604]: Intel Corporation NM10/ICH7 Family PCI Express Port 3 [8086:27d4] (rev 02) (prog-if 00 [Normal decode])
+ Control: I/O- Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
+ Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
+ Latency: 0, Cache Line Size: 64 bytes
+ Bus: primary=00, secondary=03, subordinate=03, sec-latency=0
+ Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ <SERR- <PERR-
+ BridgeCtl: Parity- SERR+ NoISA+ VGA- MAbort- >Reset- FastB2B-
+ PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
+ Capabilities: [40] Express (v1) Root Port (Slot-), MSI 00
+ DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s unlimited, L1 unlimited
+ ExtTag- RBE- FLReset-
+ DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
+ RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
+ MaxPayload 128 bytes, MaxReadReq 128 bytes
+ DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+ TransPend-
+ LnkCap: Port #3, Speed 2.5GT/s, Width x1, ASPM L0s L1, Latency L0 <256ns, L1 <4us
+ ClockPM- Surprise- LLActRep+ BwNot-
+ LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk+
+ ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
+ LnkSta: Speed 2.5GT/s, Width x0, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
+ RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna+ CRSVisible-
+ RootCap: CRSVisible-
+ RootSta: PME ReqID 0000, PMEStatus- PMEPending-
+ Capabilities: [80] MSI: Enable+ Count=1/1 Maskable- 64bit-
+ Address: fee0300c Data: 41d1
+ Capabilities: [90] Subsystem: Device [0000:0000]
+ Capabilities: [a0] Power Management version 2
+ Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
+ Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
+ Capabilities: [100 v1] Virtual Channel
+ Caps: LPEVC=0 RefClk=100ns PATEntryBits=1
+ Arb: Fixed+ WRR32- WRR64- WRR128-
+ Ctrl: ArbSelect=Fixed
+ Status: InProgress-
+ VC0: Caps: PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
+ Arb: Fixed+ WRR32- WRR64- WRR128- TWRR128- WRR256-
+ Ctrl: Enable+ ID=0 ArbSelect=Fixed TC/VC=01
+ Status: NegoPending- InProgress-
+ VC1: Caps: PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
+ Arb: Fixed+ WRR32- WRR64- WRR128- TWRR128- WRR256-
+ Ctrl: Enable- ID=0 ArbSelect=Fixed TC/VC=00
+ Status: NegoPending- InProgress-
+ Capabilities: [180 v1] Root Complex Link
+ Desc: PortNumber=03 ComponentID=00 EltType=Config
+ Link0: Desc: TargetPort=00 TargetComponent=00 AssocRCRB- LinkType=MemMapped LinkValid+
+ Addr: 00000000fed1c001
+ Kernel driver in use: pcieport
+00: 86 80 d4 27 04 04 10 00 02 00 04 06 10 00 81 00
+10: 00 00 00 00 00 00 00 00 00 03 03 00 f0 00 00 20
+20: f0 ff 00 00 f1 ff 01 00 00 00 00 00 00 00 00 00
+30: 00 00 00 00 40 00 00 00 00 00 00 00 0b 03 06 00
+40: 10 80 41 00 c0 0f 00 00 00 00 10 00 11 2c 11 03
+50: 40 00 01 10 60 00 00 00 00 00 40 00 08 00 00 00
+60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+80: 05 90 01 00 0c 30 e0 fe d1 41 00 00 00 00 00 00
+90: 0d a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+a0: 01 00 02 c8 00 00 00 00 00 00 00 00 00 00 00 00
+b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+d0: 00 00 00 00 00 00 00 00 80 00 11 00 00 00 00 00
+e0: 0e 00 c7 00 06 07 08 00 00 00 00 00 00 00 00 00
+f0: 00 00 00 00 00 00 00 00 86 0f 02 00 00 00 00 00
+
+00:1c.3 PCI bridge [0604]: Intel Corporation NM10/ICH7 Family PCI Express Port 4 [8086:27d6] (rev 02) (prog-if 00 [Normal decode])
+ Control: I/O- Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
+ Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
+ Latency: 0, Cache Line Size: 64 bytes
+ Bus: primary=00, secondary=04, subordinate=04, sec-latency=0
+ Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ <SERR- <PERR-
+ BridgeCtl: Parity- SERR+ NoISA+ VGA- MAbort- >Reset- FastB2B-
+ PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
+ Capabilities: [40] Express (v1) Root Port (Slot-), MSI 00
+ DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s unlimited, L1 unlimited
+ ExtTag- RBE- FLReset-
+ DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
+ RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
+ MaxPayload 128 bytes, MaxReadReq 128 bytes
+ DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+ TransPend-
+ LnkCap: Port #4, Speed 2.5GT/s, Width x1, ASPM L0s L1, Latency L0 <256ns, L1 <4us
+ ClockPM- Surprise- LLActRep+ BwNot-
+ LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk+
+ ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
+ LnkSta: Speed 2.5GT/s, Width x0, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
+ RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna+ CRSVisible-
+ RootCap: CRSVisible-
+ RootSta: PME ReqID 0000, PMEStatus- PMEPending-
+ Capabilities: [80] MSI: Enable+ Count=1/1 Maskable- 64bit-
+ Address: fee0300c Data: 4122
+ Capabilities: [90] Subsystem: Device [0000:0000]
+ Capabilities: [a0] Power Management version 2
+ Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
+ Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
+ Capabilities: [100 v1] Virtual Channel
+ Caps: LPEVC=0 RefClk=100ns PATEntryBits=1
+ Arb: Fixed+ WRR32- WRR64- WRR128-
+ Ctrl: ArbSelect=Fixed
+ Status: InProgress-
+ VC0: Caps: PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
+ Arb: Fixed+ WRR32- WRR64- WRR128- TWRR128- WRR256-
+ Ctrl: Enable+ ID=0 ArbSelect=Fixed TC/VC=01
+ Status: NegoPending- InProgress-
+ VC1: Caps: PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
+ Arb: Fixed+ WRR32- WRR64- WRR128- TWRR128- WRR256-
+ Ctrl: Enable- ID=0 ArbSelect=Fixed TC/VC=00
+ Status: NegoPending- InProgress-
+ Capabilities: [180 v1] Root Complex Link
+ Desc: PortNumber=04 ComponentID=00 EltType=Config
+ Link0: Desc: TargetPort=00 TargetComponent=00 AssocRCRB- LinkType=MemMapped LinkValid+
+ Addr: 00000000fed1c001
+ Kernel driver in use: pcieport
+00: 86 80 d6 27 04 04 10 00 02 00 04 06 10 00 81 00
+10: 00 00 00 00 00 00 00 00 00 04 04 00 f0 00 00 20
+20: f0 ff 00 00 f1 ff 01 00 00 00 00 00 00 00 00 00
+30: 00 00 00 00 40 00 00 00 00 00 00 00 0b 04 06 00
+40: 10 80 41 00 c0 0f 00 00 00 00 10 00 11 2c 11 04
+50: 40 00 01 10 60 00 00 00 00 00 40 00 08 00 00 00
+60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+80: 05 90 01 00 0c 30 e0 fe 22 41 00 00 00 00 00 00
+90: 0d a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+a0: 01 00 02 c8 00 00 00 00 00 00 00 00 00 00 00 00
+b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+d0: 00 00 00 00 00 00 00 00 80 00 11 00 00 00 00 00
+e0: 0e 00 c7 00 06 07 08 00 00 00 00 00 00 00 00 00
+f0: 00 00 00 00 00 00 00 00 86 0f 02 00 00 00 00 00
+
+00:1d.0 USB controller [0c03]: Intel Corporation NM10/ICH7 Family USB UHCI Controller #1 [8086:27c8] (rev 02) (prog-if 00 [UHCI])
+ Subsystem: Lenovo ThinkPad T60/R60 series [17aa:200a]
+ Control: I/O+ Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
+ Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
+ Interrupt: pin A routed to IRQ 16
+ Region 4: I/O ports at 5000 [size=32]
+ Kernel driver in use: uhci_hcd
+00: 86 80 c8 27 01 00 80 02 02 00 03 0c 00 00 80 00
+10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+20: 01 50 00 00 00 00 00 00 00 00 00 00 aa 17 0a 20
+30: 00 00 00 00 00 00 00 00 00 00 00 00 0b 01 00 00
+40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+60: 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+c0: 00 0f 00 00 03 00 00 00 00 00 01 00 00 00 00 00
+d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+f0: 00 00 00 00 00 00 00 00 86 0f 02 00 00 00 00 00
+
+00:1d.1 USB controller [0c03]: Intel Corporation NM10/ICH7 Family USB UHCI Controller #2 [8086:27c9] (rev 02) (prog-if 00 [UHCI])
+ Subsystem: Lenovo ThinkPad T60/R60 series [17aa:200a]
+ Control: I/O+ Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
+ Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
+ Interrupt: pin B routed to IRQ 17
+ Region 4: I/O ports at 5020 [size=32]
+ Kernel driver in use: uhci_hcd
+00: 86 80 c9 27 01 00 80 02 02 00 03 0c 00 00 00 00
+10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+20: 21 50 00 00 00 00 00 00 00 00 00 00 aa 17 0a 20
+30: 00 00 00 00 00 00 00 00 00 00 00 00 0b 02 00 00
+40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+60: 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+c0: 00 0f 00 00 03 00 00 00 00 00 01 00 00 00 00 00
+d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+f0: 00 00 00 00 00 00 00 00 86 0f 02 00 00 00 00 00
+
+00:1d.2 USB controller [0c03]: Intel Corporation NM10/ICH7 Family USB UHCI Controller #3 [8086:27ca] (rev 02) (prog-if 00 [UHCI])
+ Subsystem: Lenovo ThinkPad T60/R60 series [17aa:200a]
+ Control: I/O+ Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
+ Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
+ Interrupt: pin C routed to IRQ 18
+ Region 4: I/O ports at 5040 [size=32]
+ Kernel driver in use: uhci_hcd
+00: 86 80 ca 27 01 00 80 02 02 00 03 0c 00 00 00 00
+10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+20: 41 50 00 00 00 00 00 00 00 00 00 00 aa 17 0a 20
+30: 00 00 00 00 00 00 00 00 00 00 00 00 0b 03 00 00
+40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+60: 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+c0: 00 0f 00 00 03 00 00 00 00 00 01 00 00 00 00 00
+d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+f0: 00 00 00 00 00 00 00 00 86 0f 02 00 00 00 00 00
+
+00:1d.3 USB controller [0c03]: Intel Corporation NM10/ICH7 Family USB UHCI Controller #4 [8086:27cb] (rev 02) (prog-if 00 [UHCI])
+ Subsystem: Lenovo ThinkPad T60/R60 series [17aa:200a]
+ Control: I/O+ Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
+ Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
+ Interrupt: pin D routed to IRQ 19
+ Region 4: I/O ports at 5060 [size=32]
+ Kernel driver in use: uhci_hcd
+00: 86 80 cb 27 01 00 80 02 02 00 03 0c 00 00 00 00
+10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+20: 61 50 00 00 00 00 00 00 00 00 00 00 aa 17 0a 20
+30: 00 00 00 00 00 00 00 00 00 00 00 00 0b 04 00 00
+40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+60: 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+c0: 00 0f 00 00 03 00 00 00 00 00 01 00 00 00 00 00
+d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+f0: 00 00 00 00 00 00 00 00 86 0f 02 00 00 00 00 00
+
+00:1d.7 USB controller [0c03]: Intel Corporation NM10/ICH7 Family USB2 EHCI Controller [8086:27cc] (rev 02) (prog-if 20 [EHCI])
+ Subsystem: Lenovo ThinkPad T60/R60 series [17aa:200b]
+ Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
+ Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
+ Latency: 0
+ Interrupt: pin D routed to IRQ 19
+ Region 0: Memory at e4344000 (32-bit, non-prefetchable) [size=1K]
+ Capabilities: [50] Power Management version 2
+ Flags: PMEClk- DSI- D1- D2- AuxCurrent=375mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
+ Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
+ Capabilities: [58] Debug port: BAR=1 offset=00a0
+ Kernel driver in use: ehci-pci
+00: 86 80 cc 27 06 01 90 02 02 20 03 0c 00 00 00 00
+10: 00 40 34 e4 00 00 00 00 00 00 00 00 00 00 00 00
+20: 00 00 00 00 00 00 00 00 00 00 00 00 aa 17 0b 20
+30: 00 00 00 00 50 00 00 00 00 00 00 00 0b 04 00 00
+40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+50: 01 58 c2 c9 00 00 00 00 0a 00 a0 20 00 00 00 00
+60: 20 20 ff 01 00 00 00 00 01 00 00 01 00 00 00 e0
+70: 00 00 df 3f 00 00 00 00 00 00 00 00 00 00 00 00
+80: 00 00 00 00 11 00 00 00 00 00 00 00 00 00 00 00
+90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+d0: 00 00 00 00 00 aa ff 00 ff 00 ff 00 20 00 00 88
+e0: 00 00 00 00 db b6 6d 00 00 00 00 00 00 00 00 00
+f0: 00 80 00 09 88 85 40 00 86 0f 02 00 0a 17 02 20
+
+00:1e.0 PCI bridge [0604]: Intel Corporation 82801 Mobile PCI Bridge [8086:2448] (rev e2) (prog-if 01 [Subtractive decode])
+ Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
+ Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
+ Latency: 0
+ Bus: primary=00, secondary=05, subordinate=06, sec-latency=32
+ I/O behind bridge: 00002000-00003fff
+ Memory behind bridge: e0000000-e20fffff
+ Prefetchable memory behind bridge: 00000000e2100000-00000000e40fffff
+ Secondary status: 66MHz- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort+ <SERR- <PERR-
+ BridgeCtl: Parity- SERR+ NoISA+ VGA- MAbort- >Reset- FastB2B-
+ PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
+ Capabilities: [50] Subsystem: Device [0000:0000]
+00: 86 80 48 24 07 00 10 00 e2 01 04 06 00 00 01 00
+10: 00 00 00 00 00 00 00 00 00 05 06 20 20 30 80 22
+20: 00 e0 00 e2 11 e2 01 e4 00 00 00 00 00 00 00 00
+30: 00 00 00 00 50 00 00 00 00 00 00 00 ff 00 06 00
+40: 00 00 00 00 00 00 00 00 00 00 00 00 00 12 00 00
+50: 0d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+f0: 00 00 00 00 00 00 00 00 86 0f 02 00 00 00 00 00
+
+00:1f.0 ISA bridge [0601]: Intel Corporation 82801GBM (ICH7-M) LPC Interface Bridge [8086:27b9] (rev 02)
+ Subsystem: Lenovo ThinkPad T60/R60 series [17aa:2009]
+ Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
+ Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
+ Latency: 0
+ Capabilities: [e0] Vendor Specific Information: Len=0c <?>
+ Kernel driver in use: lpc_ich
+00: 86 80 b9 27 07 00 10 02 02 00 01 06 00 00 80 00
+10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+20: 00 00 00 00 00 00 00 00 00 00 00 00 aa 17 09 20
+30: 00 00 00 00 e0 00 00 00 00 00 00 00 00 00 00 00
+40: 01 05 00 00 80 00 00 00 81 04 00 00 10 00 00 00
+50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+60: 80 80 80 80 d0 00 00 00 80 80 80 80 00 00 00 00
+70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+80: 10 02 0d 1f 01 16 7c 00 e1 15 0c 00 81 16 1c 00
+90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+a0: ac 06 00 00 30 00 00 00 13 1c 0a 00 00 03 00 00
+b0: 00 00 f0 00 00 00 00 00 00 00 02 0a 00 00 00 00
+c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+d0: 33 22 11 00 67 45 00 00 cf ff 00 00 08 00 00 00
+e0: 09 00 0c 10 b4 02 24 17 00 00 00 00 00 00 00 00
+f0: 01 c0 d1 fe 00 00 00 00 86 0f 02 00 00 00 00 00
+
+00:1f.1 IDE interface [0101]: Intel Corporation 82801G (ICH7 Family) IDE Controller [8086:27df] (rev 02) (prog-if 8a [Master SecP PriP])
+ Subsystem: Lenovo ThinkPad T60/R60 series [17aa:200c]
+ Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
+ Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx+
+ Latency: 0
+ Interrupt: pin C routed to IRQ 16
+ Region 0: I/O ports at 01f0 [size=8]
+ Region 1: I/O ports at 03f4 [size=1]
+ Region 2: I/O ports at 0170 [size=8]
+ Region 3: I/O ports at 0374 [size=1]
+ Region 4: I/O ports at 5080 [size=16]
+ Kernel driver in use: ata_piix
+00: 86 80 df 27 05 00 88 02 02 8a 01 01 00 00 00 00
+10: a9 50 00 00 c9 50 00 00 b1 50 00 00 cd 50 00 00
+20: 81 50 00 00 00 00 00 00 00 00 00 00 aa 17 0c 20
+30: 00 00 00 00 00 00 00 00 00 00 00 00 ff 03 00 00
+40: 00 40 00 40 00 00 00 00 00 00 00 00 00 00 00 00
+50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+f0: 00 00 00 00 00 00 00 00 86 0f 02 00 00 00 00 00
+
+00:1f.2 SATA controller [0106]: Intel Corporation 82801GBM/GHM (ICH7-M Family) SATA Controller [AHCI mode] [8086:27c5] (rev 02) (prog-if 01 [AHCI 1.0])
+ Subsystem: Lenovo ThinkPad T60/R60 series [17aa:200d]
+ Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
+ Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
+ Latency: 0
+ Interrupt: pin B routed to IRQ 45
+ Region 0: I/O ports at 50b8 [size=8]
+ Region 1: I/O ports at 50d0 [size=4]
+ Region 2: I/O ports at 50c0 [size=8]
+ Region 3: I/O ports at 50d4 [size=4]
+ Region 4: I/O ports at 5090 [size=16]
+ Region 5: Memory at e4344400 (32-bit, non-prefetchable) [size=1K]
+ Capabilities: [80] MSI: Enable+ Count=1/1 Maskable- 64bit-
+ Address: fee0300c Data: 4152
+ Capabilities: [70] Power Management version 2
+ Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot+,D3cold-)
+ Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
+ Kernel driver in use: ahci
+00: 86 80 c5 27 07 04 b0 02 02 01 06 01 00 00 00 00
+10: b9 50 00 00 d1 50 00 00 c1 50 00 00 d5 50 00 00
+20: 91 50 00 00 00 44 34 e4 00 00 00 00 aa 17 0d 20
+30: 00 00 00 00 80 00 00 00 00 00 00 00 00 02 00 00
+40: 07 a3 00 80 00 00 00 00 01 00 01 00 00 00 00 00
+50: 00 00 00 00 03 30 00 00 00 00 00 00 00 00 00 00
+60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+70: 01 00 02 40 00 00 00 00 00 00 00 00 00 00 00 00
+80: 05 70 01 00 0c 30 e0 fe 52 41 00 00 00 00 00 00
+90: 40 00 15 02 80 01 00 5a 00 00 00 00 00 00 00 00
+a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+f0: 00 00 00 00 00 00 00 00 86 0f 02 00 00 00 00 00
+
+00:1f.3 SMBus [0c05]: Intel Corporation NM10/ICH7 Family SMBus Controller [8086:27da] (rev 02)
+ Subsystem: Lenovo ThinkPad T60/R60 series [17aa:200f]
+ Control: I/O+ Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
+ Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
+ Interrupt: pin A routed to IRQ 11
+ Region 4: I/O ports at 0400 [size=32]
+00: 86 80 da 27 01 01 80 02 02 00 05 0c 00 00 00 00
+10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+20: 01 04 00 00 00 00 00 00 00 00 00 00 aa 17 0f 20
+30: 00 00 00 00 00 00 00 00 00 00 00 00 0b 01 00 00
+40: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+f0: 00 00 00 00 00 00 00 00 86 0f 02 00 00 00 00 00
+
+01:00.0 Ethernet controller [0200]: Intel Corporation 82573L Gigabit Ethernet Controller [8086:109a]
+ Subsystem: Lenovo ThinkPad X60s [17aa:207e]
+ Physical Slot: 0
+ Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
+ Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
+ Interrupt: pin A routed to IRQ 44
+ Region 0: Memory at e4100000 (32-bit, non-prefetchable) [disabled] [size=128K]
+ Region 2: I/O ports at 4000 [disabled] [size=32]
+ Capabilities: [c8] Power Management version 2
+ Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
+ Status: D3 NoSoftRst- PME-Enable+ DSel=0 DScale=1 PME-
+ Capabilities: [d0] MSI: Enable+ Count=1/1 Maskable- 64bit+
+ Address: 00000000fee0300c Data: 4182
+ Capabilities: [e0] Express (v1) Endpoint, MSI 00
+ DevCap: MaxPayload 256 bytes, PhantFunc 0, Latency L0s <512ns, L1 <64us
+ ExtTag- AttnBtn- AttnInd- PwrInd- RBE- FLReset-
+ DevCtl: Report errors: Correctable+ Non-Fatal+ Fatal+ Unsupported+
+ RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
+ MaxPayload 128 bytes, MaxReadReq 512 bytes
+ DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+ TransPend-
+ LnkCap: Port #0, Speed 2.5GT/s, Width x1, ASPM L0s L1, Latency L0 <128ns, L1 <64us
+ ClockPM+ Surprise- LLActRep- BwNot-
+ LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk-
+ ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
+ LnkSta: Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
+ Capabilities: [100 v1] Advanced Error Reporting
+ UESta: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
+ UEMsk: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
+ UESvrt: DLP+ SDES- TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
+ CESta: RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
+ CEMsk: RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
+ AERCap: First Error Pointer: 00, GenCap- CGenEn- ChkCap- ChkEn-
+ Capabilities: [140 v1] Device Serial Number 00-16-d3-ff-ff-b6-d0-98
+ Kernel driver in use: e1000e
+00: 86 80 9a 10 00 04 10 00 00 00 00 02 10 00 00 00
+10: 00 00 10 e4 00 00 00 00 01 40 00 00 00 00 00 00
+20: 00 00 00 00 00 00 00 00 00 00 00 00 aa 17 7e 20
+30: 00 00 00 00 c8 00 00 00 00 00 00 00 0b 01 00 00
+40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+c0: 00 00 00 00 00 00 00 00 01 d0 22 c8 03 21 00 0f
+d0: 05 e0 81 00 0c 30 e0 fe 00 00 00 00 82 41 00 00
+e0: 10 00 01 00 c1 0c 00 00 1f 28 10 00 11 1c 07 00
+f0: 00 00 11 10 00 00 00 00 00 00 00 00 00 00 00 00
+
+05:00.0 CardBus bridge [0607]: Ricoh Co Ltd RL5c476 II [1180:0476] (rev b4)
+ Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
+ Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
+ Latency: 168
+ Interrupt: pin A routed to IRQ 16
+ Region 0: Memory at e2000000 (32-bit, non-prefetchable) [size=4K]
+ Bus: primary=05, secondary=06, subordinate=06, sec-latency=176
+ Memory window 0: 84000000-87fff000 (prefetchable)
+ Memory window 1: 88000000-8bfff000
+ I/O window 0: 00002000-000020ff
+ I/O window 1: 00002400-000024ff
+ BridgeCtl: Parity+ SERR+ ISA- VGA- MAbort- >Reset- 16bInt+ PostWrite+
+ 16-bit legacy interface ports at 0001
+ Kernel driver in use: yenta_cardbus
+00: 80 11 76 04 07 00 10 02 b4 00 07 06 00 a8 82 00
+10: 00 00 00 e2 dc 00 00 02 05 06 06 b0 00 00 00 84
+20: 00 f0 ff 87 00 00 00 88 00 f0 ff 8b 00 20 00 00
+30: fc 20 00 00 00 24 00 00 fc 24 00 00 0b 01 83 05
+40: 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00
+50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+80: 01 00 a0 00 00 03 00 00 63 04 63 04 00 00 00 00
+90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+a0: 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+b0: 00 00 00 00 00 00 00 b2 00 30 00 00 00 00 00 00
+c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+d0: 00 00 00 00 00 00 00 00 00 00 00 00 01 00 0a fe
+e0: 00 40 c0 24 00 00 00 00 00 00 00 00 00 00 00 00
+f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+
+05:00.1 FireWire (IEEE 1394) [0c00]: Ricoh Co Ltd R5C552 IEEE 1394 Controller [1180:0552] (rev 09) (prog-if 10 [OHCI])
+ Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
+ Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
+ Latency: 64 (500ns min, 1000ns max)
+ Interrupt: pin B routed to IRQ 17
+ Region 0: Memory at e2001000 (32-bit, non-prefetchable) [size=2K]
+ Capabilities: [dc] Power Management version 2
+ Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0+,D1+,D2+,D3hot+,D3cold+)
+ Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=2 PME+
+ Kernel driver in use: firewire_ohci
+00: 80 11 52 05 06 00 10 02 09 10 00 0c 00 40 80 00
+10: 00 10 00 e2 00 00 00 00 00 00 00 00 00 00 00 00
+20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+30: 00 00 00 00 dc 00 00 00 00 00 00 00 0b 02 02 04
+40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+80: 00 00 80 16 00 00 00 00 00 20 00 00 66 66 32 12
+90: 48 60 66 10 00 00 02 00 00 80 00 00 00 01 18 00
+a0: 00 00 00 00 00 00 00 00 20 00 00 00 00 00 00 00
+b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 04
+c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+d0: 00 00 00 00 00 00 00 00 00 00 00 00 01 00 02 fe
+e0: 00 c0 00 48 00 00 00 00 00 00 00 00 00 00 00 00
+f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+
+05:00.2 SD Host controller [0805]: Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter [1180:0822] (rev 18)
+ Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
+ Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
+ Latency: 64
+ Interrupt: pin C routed to IRQ 18
+ Region 0: Memory at e2001800 (32-bit, non-prefetchable) [size=256]
+ Capabilities: [80] Power Management version 2
+ Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0+,D1+,D2+,D3hot+,D3cold+)
+ Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=2 PME-
+ Kernel driver in use: sdhci-pci
+00: 80 11 22 08 06 00 10 02 18 00 05 08 00 40 80 00
+10: 00 18 00 e2 00 00 00 00 00 00 00 00 00 00 00 00
+20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+30: 00 00 00 00 80 00 00 00 00 00 00 00 0b 03 00 00
+40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+80: 01 00 02 fe 00 40 00 48 00 00 00 00 00 00 00 00
+90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+b0: 00 00 02 00 00 00 00 00 00 00 00 00 a0 00 00 00
+c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+e0: a1 21 80 01 00 00 00 00 40 00 00 00 00 00 00 00
+f0: 00 00 00 00 00 00 00 00 c3 00 20 02 00 00 00 00
+
diff --git a/docs/future/dumps/x60_lspcixxxvvnn_6717_1 b/docs/future/dumps/x60_lspcixxxvvnn_6717_1
new file mode 100644
index 00000000..ca1b298e
--- /dev/null
+++ b/docs/future/dumps/x60_lspcixxxvvnn_6717_1
@@ -0,0 +1,810 @@
+00:00.0 Host bridge [0600]: Intel Corporation Mobile 945GM/PM/GMS, 943/940GML and 945GT Express Memory Controller Hub [8086:27a0] (rev 03)
+ Subsystem: Lenovo ThinkPad T60/R60 series [17aa:2017]
+ Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
+ Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx-
+ Latency: 0
+ Capabilities: [e0] Vendor Specific Information: Len=09 <?>
+ Kernel driver in use: agpgart-intel
+00: 86 80 a0 27 06 00 90 20 03 00 00 06 00 00 00 00
+10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+20: 00 00 00 00 00 00 00 00 00 00 00 00 aa 17 17 20
+30: 00 00 00 00 e0 00 00 00 00 00 00 00 00 00 00 00
+40: 01 90 d1 fe 01 40 d1 fe 05 00 00 f0 01 80 d1 fe
+50: 00 00 30 00 19 00 00 00 00 00 00 00 00 00 00 00
+60: 01 30 d1 fe 00 00 00 00 00 00 00 00 00 00 00 00
+70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+90: 30 33 33 33 33 33 33 00 ff 03 00 00 80 1a 38 00
+a0: 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+d0: 00 00 00 00 00 00 00 00 00 00 00 00 be ba fe ca
+e0: 09 00 09 51 02 04 0a 90 0e 00 00 00 00 00 00 00
+f0: 00 00 00 00 00 00 00 00 86 0f 05 00 10 00 00 00
+
+00:02.0 VGA compatible controller [0300]: Intel Corporation Mobile 945GM/GMS, 943/940GML Express Integrated Graphics Controller [8086:27a2] (rev 03) (prog-if 00 [VGA controller])
+ Subsystem: Lenovo ThinkPad T60/R60 series [17aa:201a]
+ Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
+ Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
+ Latency: 0
+ Interrupt: pin A routed to IRQ 16
+ Region 0: Memory at e4200000 (32-bit, non-prefetchable) [size=512K]
+ Region 1: I/O ports at 50a0 [size=8]
+ Region 2: Memory at d0000000 (32-bit, prefetchable) [size=256M]
+ Region 3: Memory at e4300000 (32-bit, non-prefetchable) [size=256K]
+ Expansion ROM at <unassigned> [disabled]
+ Capabilities: [90] MSI: Enable- Count=1/1 Maskable- 64bit-
+ Address: 00000000 Data: 0000
+ Capabilities: [d0] Power Management version 2
+ Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
+ Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
+ Kernel driver in use: i915
+00: 86 80 a2 27 07 00 90 00 03 00 00 03 00 00 80 00
+10: 00 00 20 e4 a1 50 00 00 08 00 00 d0 00 00 30 e4
+20: 00 00 00 00 00 00 00 00 00 00 00 00 aa 17 1a 20
+30: 00 00 00 00 90 00 00 00 00 00 00 00 0b 01 00 00
+40: 00 00 00 00 48 00 00 00 09 00 09 51 02 04 0a 90
+50: 0e 00 30 00 19 00 00 00 00 00 00 00 00 00 80 7f
+60: 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00
+70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+90: 05 d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+c0: 00 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+d0: 01 00 22 00 00 00 00 00 00 00 00 00 00 00 00 00
+e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+f0: 03 00 64 34 ff 00 00 00 86 0f 05 00 00 00 00 00
+
+00:02.1 Display controller [0380]: Intel Corporation Mobile 945GM/GMS/GME, 943/940GML Express Integrated Graphics Controller [8086:27a6] (rev 03)
+ Subsystem: Lenovo ThinkPad T60/R60 series [17aa:201a]
+ Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
+ Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
+ Latency: 0
+ Region 0: Memory at e4280000 (32-bit, non-prefetchable) [size=512K]
+ Capabilities: [d0] Power Management version 2
+ Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
+ Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
+00: 86 80 a6 27 07 00 90 00 03 00 80 03 00 00 80 00
+10: 00 00 28 e4 00 00 00 00 00 00 00 00 00 00 00 00
+20: 00 00 00 00 00 00 00 00 00 00 00 00 aa 17 1a 20
+30: 00 00 00 00 d0 00 00 00 00 00 00 00 00 00 00 00
+40: 00 00 00 00 48 00 00 00 09 00 09 51 02 04 0a 90
+50: 0e 00 30 00 19 00 00 00 00 00 00 00 00 00 80 7f
+60: 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00
+70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+c0: 00 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+d0: 01 00 22 00 00 00 00 00 00 00 00 00 00 00 00 00
+e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+f0: 03 00 64 34 ff 00 00 00 86 0f 05 00 00 00 00 00
+
+00:1b.0 Audio device [0403]: Intel Corporation NM10/ICH7 Family High Definition Audio Controller [8086:27d8] (rev 02)
+ Subsystem: Lenovo ThinkPad T60/R60 series [17aa:2010]
+ Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
+ Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
+ Latency: 0, Cache Line Size: 64 bytes
+ Interrupt: pin B routed to IRQ 46
+ Region 0: Memory at e4340000 (64-bit, non-prefetchable) [size=16K]
+ Capabilities: [50] Power Management version 2
+ Flags: PMEClk- DSI- D1- D2- AuxCurrent=55mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
+ Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
+ Capabilities: [60] MSI: Enable+ Count=1/1 Maskable- 64bit+
+ Address: 00000000fee0300c Data: 4162
+ Capabilities: [70] Express (v1) Root Complex Integrated Endpoint, MSI 00
+ DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <64ns, L1 <1us
+ ExtTag- RBE- FLReset-
+ DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
+ RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop+
+ MaxPayload 128 bytes, MaxReadReq 128 bytes
+ DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+ TransPend-
+ LnkCap: Port #0, Speed unknown, Width x0, ASPM unknown, Latency L0 <64ns, L1 <1us
+ ClockPM- Surprise- LLActRep- BwNot-
+ LnkCtl: ASPM Disabled; Disabled- Retrain- CommClk-
+ ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
+ LnkSta: Speed unknown, Width x0, TrErr- Train- SlotClk- DLActive- BWMgmt- ABWMgmt-
+ Capabilities: [100 v1] Virtual Channel
+ Caps: LPEVC=0 RefClk=100ns PATEntryBits=1
+ Arb: Fixed- WRR32- WRR64- WRR128-
+ Ctrl: ArbSelect=Fixed
+ Status: InProgress-
+ VC0: Caps: PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
+ Arb: Fixed- WRR32- WRR64- WRR128- TWRR128- WRR256-
+ Ctrl: Enable+ ID=0 ArbSelect=Fixed TC/VC=01
+ Status: NegoPending- InProgress-
+ VC1: Caps: PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
+ Arb: Fixed- WRR32- WRR64- WRR128- TWRR128- WRR256-
+ Ctrl: Enable+ ID=1 ArbSelect=Fixed TC/VC=80
+ Status: NegoPending- InProgress-
+ Capabilities: [130 v1] Root Complex Link
+ Desc: PortNumber=0f ComponentID=00 EltType=Config
+ Link0: Desc: TargetPort=00 TargetComponent=00 AssocRCRB- LinkType=MemMapped LinkValid+
+ Addr: 00000000fed1c000
+ Kernel driver in use: snd_hda_intel
+00: 86 80 d8 27 06 05 10 00 02 00 03 04 10 00 00 00
+10: 04 00 34 e4 00 00 00 00 00 00 00 00 00 00 00 00
+20: 00 00 00 00 00 00 00 00 00 00 00 00 aa 17 10 20
+30: 00 00 00 00 50 00 00 00 00 00 00 00 0b 02 00 00
+40: 07 00 00 03 00 00 00 00 00 00 00 00 00 00 00 00
+50: 01 60 42 c8 00 00 00 00 00 00 00 00 00 00 00 00
+60: 05 70 81 00 0c 30 e0 fe 00 00 00 00 62 41 00 00
+70: 10 00 91 00 00 00 00 00 00 08 10 00 00 00 00 00
+80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+c0: 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00
+d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+f0: 00 00 00 00 00 00 00 00 86 0f 02 00 00 00 00 00
+
+00:1c.0 PCI bridge [0604]: Intel Corporation NM10/ICH7 Family PCI Express Port 1 [8086:27d0] (rev 02) (prog-if 00 [Normal decode])
+ Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
+ Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
+ Latency: 0, Cache Line Size: 64 bytes
+ Bus: primary=00, secondary=01, subordinate=01, sec-latency=0
+ I/O behind bridge: 00004000-00004fff
+ Memory behind bridge: e4100000-e41fffff
+ Prefetchable memory behind bridge: 0000000080000000-00000000801fffff
+ Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- <SERR- <PERR-
+ BridgeCtl: Parity- SERR+ NoISA+ VGA- MAbort- >Reset- FastB2B-
+ PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
+ Capabilities: [40] Express (v1) Root Port (Slot+), MSI 00
+ DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s unlimited, L1 unlimited
+ ExtTag- RBE- FLReset-
+ DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
+ RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
+ MaxPayload 128 bytes, MaxReadReq 128 bytes
+ DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+ TransPend-
+ LnkCap: Port #1, Speed 2.5GT/s, Width x1, ASPM L0s L1, Latency L0 <256ns, L1 <4us
+ ClockPM- Surprise- LLActRep+ BwNot-
+ LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk+
+ ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
+ LnkSta: Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive+ BWMgmt- ABWMgmt-
+ SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug+ Surprise+
+ Slot #0, PowerLimit 0.000W; Interlock- NoCompl-
+ SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet+ CmdCplt+ HPIrq+ LinkChg+
+ Control: AttnInd Unknown, PwrInd Unknown, Power- Interlock-
+ SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet+ Interlock-
+ Changed: MRL- PresDet- LinkState+
+ RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna+ CRSVisible-
+ RootCap: CRSVisible-
+ RootSta: PME ReqID 0000, PMEStatus- PMEPending-
+ Capabilities: [80] MSI: Enable+ Count=1/1 Maskable- 64bit-
+ Address: fee0300c Data: 4191
+ Capabilities: [90] Subsystem: Intel Corporation NM10/ICH7 Family PCI Express Port 1 [8086:27d0]
+ Capabilities: [a0] Power Management version 2
+ Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
+ Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
+ Capabilities: [100 v1] Virtual Channel
+ Caps: LPEVC=0 RefClk=100ns PATEntryBits=1
+ Arb: Fixed+ WRR32- WRR64- WRR128-
+ Ctrl: ArbSelect=Fixed
+ Status: InProgress-
+ VC0: Caps: PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
+ Arb: Fixed+ WRR32- WRR64- WRR128- TWRR128- WRR256-
+ Ctrl: Enable+ ID=0 ArbSelect=Fixed TC/VC=01
+ Status: NegoPending- InProgress-
+ VC1: Caps: PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
+ Arb: Fixed+ WRR32- WRR64- WRR128- TWRR128- WRR256-
+ Ctrl: Enable- ID=0 ArbSelect=Fixed TC/VC=00
+ Status: NegoPending- InProgress-
+ Capabilities: [180 v1] Root Complex Link
+ Desc: PortNumber=01 ComponentID=00 EltType=Config
+ Link0: Desc: TargetPort=00 TargetComponent=00 AssocRCRB- LinkType=MemMapped LinkValid+
+ Addr: 00000000fed1c001
+ Kernel driver in use: pcieport
+00: 86 80 d0 27 07 05 10 00 02 00 04 06 10 00 81 00
+10: 00 00 00 00 00 00 00 00 00 01 01 00 40 40 00 00
+20: 10 e4 10 e4 01 80 11 80 00 00 00 00 00 00 00 00
+30: 00 00 00 00 40 00 00 00 00 00 00 00 0b 01 06 00
+40: 10 80 41 01 c0 0f 00 00 00 00 10 00 11 2c 11 01
+50: 40 00 11 30 60 00 00 00 38 10 40 01 08 00 00 00
+60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+80: 05 90 01 00 0c 30 e0 fe 91 41 00 00 00 00 00 00
+90: 0d a0 00 00 86 80 d0 27 00 00 00 00 00 00 00 00
+a0: 01 00 02 c8 00 00 00 00 00 00 00 00 00 00 00 00
+b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+d0: 00 00 00 00 00 00 00 00 80 00 11 00 00 00 00 00
+e0: 0e 00 c7 00 06 07 08 00 00 00 00 00 00 00 00 00
+f0: 00 00 00 00 00 00 00 00 86 0f 02 00 00 00 00 00
+
+00:1c.1 PCI bridge [0604]: Intel Corporation NM10/ICH7 Family PCI Express Port 2 [8086:27d2] (rev 02) (prog-if 00 [Normal decode])
+ Control: I/O- Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
+ Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
+ Latency: 0, Cache Line Size: 64 bytes
+ Bus: primary=00, secondary=02, subordinate=02, sec-latency=0
+ Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ <SERR- <PERR-
+ BridgeCtl: Parity- SERR+ NoISA+ VGA- MAbort- >Reset- FastB2B-
+ PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
+ Capabilities: [40] Express (v1) Root Port (Slot-), MSI 00
+ DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s unlimited, L1 unlimited
+ ExtTag- RBE- FLReset-
+ DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
+ RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
+ MaxPayload 128 bytes, MaxReadReq 128 bytes
+ DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+ TransPend-
+ LnkCap: Port #2, Speed 2.5GT/s, Width x1, ASPM L0s L1, Latency L0 <256ns, L1 <4us
+ ClockPM- Surprise- LLActRep+ BwNot-
+ LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk+
+ ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
+ LnkSta: Speed 2.5GT/s, Width x0, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
+ RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna+ CRSVisible-
+ RootCap: CRSVisible-
+ RootSta: PME ReqID 0000, PMEStatus- PMEPending-
+ Capabilities: [80] MSI: Enable+ Count=1/1 Maskable- 64bit-
+ Address: fee0300c Data: 41b1
+ Capabilities: [90] Subsystem: Intel Corporation NM10/ICH7 Family PCI Express Port 2 [8086:27d2]
+ Capabilities: [a0] Power Management version 2
+ Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
+ Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
+ Capabilities: [100 v1] Virtual Channel
+ Caps: LPEVC=0 RefClk=100ns PATEntryBits=1
+ Arb: Fixed+ WRR32- WRR64- WRR128-
+ Ctrl: ArbSelect=Fixed
+ Status: InProgress-
+ VC0: Caps: PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
+ Arb: Fixed+ WRR32- WRR64- WRR128- TWRR128- WRR256-
+ Ctrl: Enable+ ID=0 ArbSelect=Fixed TC/VC=01
+ Status: NegoPending- InProgress-
+ VC1: Caps: PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
+ Arb: Fixed+ WRR32- WRR64- WRR128- TWRR128- WRR256-
+ Ctrl: Enable- ID=0 ArbSelect=Fixed TC/VC=00
+ Status: NegoPending- InProgress-
+ Capabilities: [180 v1] Root Complex Link
+ Desc: PortNumber=02 ComponentID=00 EltType=Config
+ Link0: Desc: TargetPort=00 TargetComponent=00 AssocRCRB- LinkType=MemMapped LinkValid+
+ Addr: 00000000fed1c001
+ Kernel driver in use: pcieport
+00: 86 80 d2 27 04 05 10 00 02 00 04 06 10 00 81 00
+10: 00 00 00 00 00 00 00 00 00 02 02 00 f0 00 00 20
+20: f0 ff 00 00 f1 ff 01 00 00 00 00 00 00 00 00 00
+30: 00 00 00 00 40 00 00 00 00 00 00 00 0b 02 06 00
+40: 10 80 41 00 c0 0f 00 00 00 00 10 00 11 2c 11 02
+50: 40 00 01 10 60 00 00 00 00 00 40 00 08 00 00 00
+60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+80: 05 90 01 00 0c 30 e0 fe b1 41 00 00 00 00 00 00
+90: 0d a0 00 00 86 80 d2 27 00 00 00 00 00 00 00 00
+a0: 01 00 02 c8 00 00 00 00 00 00 00 00 00 00 00 00
+b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+d0: 00 00 00 00 00 00 00 00 80 00 11 00 00 00 00 00
+e0: 0e 00 c7 00 06 07 08 00 00 00 00 00 00 00 00 00
+f0: 00 00 00 00 00 00 00 00 86 0f 02 00 00 00 00 00
+
+00:1c.2 PCI bridge [0604]: Intel Corporation NM10/ICH7 Family PCI Express Port 3 [8086:27d4] (rev 02) (prog-if 00 [Normal decode])
+ Control: I/O- Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
+ Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
+ Latency: 0, Cache Line Size: 64 bytes
+ Bus: primary=00, secondary=03, subordinate=03, sec-latency=0
+ Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ <SERR- <PERR-
+ BridgeCtl: Parity- SERR+ NoISA+ VGA- MAbort- >Reset- FastB2B-
+ PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
+ Capabilities: [40] Express (v1) Root Port (Slot-), MSI 00
+ DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s unlimited, L1 unlimited
+ ExtTag- RBE- FLReset-
+ DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
+ RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
+ MaxPayload 128 bytes, MaxReadReq 128 bytes
+ DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+ TransPend-
+ LnkCap: Port #3, Speed 2.5GT/s, Width x1, ASPM L0s L1, Latency L0 <256ns, L1 <4us
+ ClockPM- Surprise- LLActRep+ BwNot-
+ LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk+
+ ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
+ LnkSta: Speed 2.5GT/s, Width x0, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
+ RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna+ CRSVisible-
+ RootCap: CRSVisible-
+ RootSta: PME ReqID 0000, PMEStatus- PMEPending-
+ Capabilities: [80] MSI: Enable+ Count=1/1 Maskable- 64bit-
+ Address: fee0300c Data: 41d1
+ Capabilities: [90] Subsystem: Device [0000:0000]
+ Capabilities: [a0] Power Management version 2
+ Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
+ Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
+ Capabilities: [100 v1] Virtual Channel
+ Caps: LPEVC=0 RefClk=100ns PATEntryBits=1
+ Arb: Fixed+ WRR32- WRR64- WRR128-
+ Ctrl: ArbSelect=Fixed
+ Status: InProgress-
+ VC0: Caps: PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
+ Arb: Fixed+ WRR32- WRR64- WRR128- TWRR128- WRR256-
+ Ctrl: Enable+ ID=0 ArbSelect=Fixed TC/VC=01
+ Status: NegoPending- InProgress-
+ VC1: Caps: PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
+ Arb: Fixed+ WRR32- WRR64- WRR128- TWRR128- WRR256-
+ Ctrl: Enable- ID=0 ArbSelect=Fixed TC/VC=00
+ Status: NegoPending- InProgress-
+ Capabilities: [180 v1] Root Complex Link
+ Desc: PortNumber=03 ComponentID=00 EltType=Config
+ Link0: Desc: TargetPort=00 TargetComponent=00 AssocRCRB- LinkType=MemMapped LinkValid+
+ Addr: 00000000fed1c001
+ Kernel driver in use: pcieport
+00: 86 80 d4 27 04 04 10 00 02 00 04 06 10 00 81 00
+10: 00 00 00 00 00 00 00 00 00 03 03 00 f0 00 00 20
+20: f0 ff 00 00 f1 ff 01 00 00 00 00 00 00 00 00 00
+30: 00 00 00 00 40 00 00 00 00 00 00 00 0b 03 06 00
+40: 10 80 41 00 c0 0f 00 00 00 00 10 00 11 2c 11 03
+50: 40 00 01 10 60 00 00 00 00 00 40 00 08 00 00 00
+60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+80: 05 90 01 00 0c 30 e0 fe d1 41 00 00 00 00 00 00
+90: 0d a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+a0: 01 00 02 c8 00 00 00 00 00 00 00 00 00 00 00 00
+b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+d0: 00 00 00 00 00 00 00 00 80 00 11 00 00 00 00 00
+e0: 0e 00 c7 00 06 07 08 00 00 00 00 00 00 00 00 00
+f0: 00 00 00 00 00 00 00 00 86 0f 02 00 00 00 00 00
+
+00:1c.3 PCI bridge [0604]: Intel Corporation NM10/ICH7 Family PCI Express Port 4 [8086:27d6] (rev 02) (prog-if 00 [Normal decode])
+ Control: I/O- Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
+ Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
+ Latency: 0, Cache Line Size: 64 bytes
+ Bus: primary=00, secondary=04, subordinate=04, sec-latency=0
+ Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ <SERR- <PERR-
+ BridgeCtl: Parity- SERR+ NoISA+ VGA- MAbort- >Reset- FastB2B-
+ PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
+ Capabilities: [40] Express (v1) Root Port (Slot-), MSI 00
+ DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s unlimited, L1 unlimited
+ ExtTag- RBE- FLReset-
+ DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
+ RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
+ MaxPayload 128 bytes, MaxReadReq 128 bytes
+ DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+ TransPend-
+ LnkCap: Port #4, Speed 2.5GT/s, Width x1, ASPM L0s L1, Latency L0 <256ns, L1 <4us
+ ClockPM- Surprise- LLActRep+ BwNot-
+ LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk+
+ ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
+ LnkSta: Speed 2.5GT/s, Width x0, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
+ RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna+ CRSVisible-
+ RootCap: CRSVisible-
+ RootSta: PME ReqID 0000, PMEStatus- PMEPending-
+ Capabilities: [80] MSI: Enable+ Count=1/1 Maskable- 64bit-
+ Address: fee0300c Data: 4122
+ Capabilities: [90] Subsystem: Device [0000:0000]
+ Capabilities: [a0] Power Management version 2
+ Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
+ Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
+ Capabilities: [100 v1] Virtual Channel
+ Caps: LPEVC=0 RefClk=100ns PATEntryBits=1
+ Arb: Fixed+ WRR32- WRR64- WRR128-
+ Ctrl: ArbSelect=Fixed
+ Status: InProgress-
+ VC0: Caps: PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
+ Arb: Fixed+ WRR32- WRR64- WRR128- TWRR128- WRR256-
+ Ctrl: Enable+ ID=0 ArbSelect=Fixed TC/VC=01
+ Status: NegoPending- InProgress-
+ VC1: Caps: PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
+ Arb: Fixed+ WRR32- WRR64- WRR128- TWRR128- WRR256-
+ Ctrl: Enable- ID=0 ArbSelect=Fixed TC/VC=00
+ Status: NegoPending- InProgress-
+ Capabilities: [180 v1] Root Complex Link
+ Desc: PortNumber=04 ComponentID=00 EltType=Config
+ Link0: Desc: TargetPort=00 TargetComponent=00 AssocRCRB- LinkType=MemMapped LinkValid+
+ Addr: 00000000fed1c001
+ Kernel driver in use: pcieport
+00: 86 80 d6 27 04 04 10 00 02 00 04 06 10 00 81 00
+10: 00 00 00 00 00 00 00 00 00 04 04 00 f0 00 00 20
+20: f0 ff 00 00 f1 ff 01 00 00 00 00 00 00 00 00 00
+30: 00 00 00 00 40 00 00 00 00 00 00 00 0b 04 06 00
+40: 10 80 41 00 c0 0f 00 00 00 00 10 00 11 2c 11 04
+50: 40 00 01 10 60 00 00 00 00 00 40 00 08 00 00 00
+60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+80: 05 90 01 00 0c 30 e0 fe 22 41 00 00 00 00 00 00
+90: 0d a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+a0: 01 00 02 c8 00 00 00 00 00 00 00 00 00 00 00 00
+b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+d0: 00 00 00 00 00 00 00 00 80 00 11 00 00 00 00 00
+e0: 0e 00 c7 00 06 07 08 00 00 00 00 00 00 00 00 00
+f0: 00 00 00 00 00 00 00 00 86 0f 02 00 00 00 00 00
+
+00:1d.0 USB controller [0c03]: Intel Corporation NM10/ICH7 Family USB UHCI Controller #1 [8086:27c8] (rev 02) (prog-if 00 [UHCI])
+ Subsystem: Lenovo ThinkPad T60/R60 series [17aa:200a]
+ Control: I/O+ Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
+ Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
+ Interrupt: pin A routed to IRQ 16
+ Region 4: I/O ports at 5000 [size=32]
+ Kernel driver in use: uhci_hcd
+00: 86 80 c8 27 01 00 80 02 02 00 03 0c 00 00 80 00
+10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+20: 01 50 00 00 00 00 00 00 00 00 00 00 aa 17 0a 20
+30: 00 00 00 00 00 00 00 00 00 00 00 00 0b 01 00 00
+40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+60: 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+c0: 00 0f 00 00 03 00 00 00 00 00 01 00 00 00 00 00
+d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+f0: 00 00 00 00 00 00 00 00 86 0f 02 00 00 00 00 00
+
+00:1d.1 USB controller [0c03]: Intel Corporation NM10/ICH7 Family USB UHCI Controller #2 [8086:27c9] (rev 02) (prog-if 00 [UHCI])
+ Subsystem: Lenovo ThinkPad T60/R60 series [17aa:200a]
+ Control: I/O+ Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
+ Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
+ Interrupt: pin B routed to IRQ 17
+ Region 4: I/O ports at 5020 [size=32]
+ Kernel driver in use: uhci_hcd
+00: 86 80 c9 27 01 00 80 02 02 00 03 0c 00 00 00 00
+10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+20: 21 50 00 00 00 00 00 00 00 00 00 00 aa 17 0a 20
+30: 00 00 00 00 00 00 00 00 00 00 00 00 0b 02 00 00
+40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+60: 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+c0: 00 0f 00 00 03 00 00 00 00 00 01 00 00 00 00 00
+d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+f0: 00 00 00 00 00 00 00 00 86 0f 02 00 00 00 00 00
+
+00:1d.2 USB controller [0c03]: Intel Corporation NM10/ICH7 Family USB UHCI Controller #3 [8086:27ca] (rev 02) (prog-if 00 [UHCI])
+ Subsystem: Lenovo ThinkPad T60/R60 series [17aa:200a]
+ Control: I/O+ Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
+ Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
+ Interrupt: pin C routed to IRQ 18
+ Region 4: I/O ports at 5040 [size=32]
+ Kernel driver in use: uhci_hcd
+00: 86 80 ca 27 01 00 80 02 02 00 03 0c 00 00 00 00
+10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+20: 41 50 00 00 00 00 00 00 00 00 00 00 aa 17 0a 20
+30: 00 00 00 00 00 00 00 00 00 00 00 00 0b 03 00 00
+40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+60: 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+c0: 00 0f 00 00 03 00 00 00 00 00 01 00 00 00 00 00
+d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+f0: 00 00 00 00 00 00 00 00 86 0f 02 00 00 00 00 00
+
+00:1d.3 USB controller [0c03]: Intel Corporation NM10/ICH7 Family USB UHCI Controller #4 [8086:27cb] (rev 02) (prog-if 00 [UHCI])
+ Subsystem: Lenovo ThinkPad T60/R60 series [17aa:200a]
+ Control: I/O+ Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
+ Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
+ Interrupt: pin D routed to IRQ 19
+ Region 4: I/O ports at 5060 [size=32]
+ Kernel driver in use: uhci_hcd
+00: 86 80 cb 27 01 00 80 02 02 00 03 0c 00 00 00 00
+10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+20: 61 50 00 00 00 00 00 00 00 00 00 00 aa 17 0a 20
+30: 00 00 00 00 00 00 00 00 00 00 00 00 0b 04 00 00
+40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+60: 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+c0: 00 0f 00 00 03 00 00 00 00 00 01 00 00 00 00 00
+d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+f0: 00 00 00 00 00 00 00 00 86 0f 02 00 00 00 00 00
+
+00:1d.7 USB controller [0c03]: Intel Corporation NM10/ICH7 Family USB2 EHCI Controller [8086:27cc] (rev 02) (prog-if 20 [EHCI])
+ Subsystem: Lenovo ThinkPad T60/R60 series [17aa:200b]
+ Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
+ Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
+ Latency: 0
+ Interrupt: pin D routed to IRQ 19
+ Region 0: Memory at e4344000 (32-bit, non-prefetchable) [size=1K]
+ Capabilities: [50] Power Management version 2
+ Flags: PMEClk- DSI- D1- D2- AuxCurrent=375mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
+ Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
+ Capabilities: [58] Debug port: BAR=1 offset=00a0
+ Kernel driver in use: ehci-pci
+00: 86 80 cc 27 06 01 90 02 02 20 03 0c 00 00 00 00
+10: 00 40 34 e4 00 00 00 00 00 00 00 00 00 00 00 00
+20: 00 00 00 00 00 00 00 00 00 00 00 00 aa 17 0b 20
+30: 00 00 00 00 50 00 00 00 00 00 00 00 0b 04 00 00
+40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+50: 01 58 c2 c9 00 00 00 00 0a 00 a0 20 00 00 00 00
+60: 20 20 ff 01 00 00 00 00 01 00 00 01 00 00 08 e0
+70: 00 00 ff 3f 00 00 00 00 00 00 00 00 00 00 00 00
+80: 00 00 00 00 11 00 00 00 00 00 00 00 00 00 00 00
+90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+d0: 00 00 00 00 00 aa ff 00 ff 00 ff 00 20 00 00 88
+e0: 00 00 00 00 db b6 6d 00 00 00 00 00 00 00 00 00
+f0: 00 80 00 09 88 85 40 00 86 0f 02 00 0a 17 02 20
+
+00:1e.0 PCI bridge [0604]: Intel Corporation 82801 Mobile PCI Bridge [8086:2448] (rev e2) (prog-if 01 [Subtractive decode])
+ Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
+ Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
+ Latency: 0
+ Bus: primary=00, secondary=05, subordinate=06, sec-latency=32
+ I/O behind bridge: 00002000-00003fff
+ Memory behind bridge: e0000000-e20fffff
+ Prefetchable memory behind bridge: 00000000e2100000-00000000e40fffff
+ Secondary status: 66MHz- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort+ <SERR- <PERR-
+ BridgeCtl: Parity- SERR+ NoISA+ VGA- MAbort- >Reset- FastB2B-
+ PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
+ Capabilities: [50] Subsystem: Device [0000:0000]
+00: 86 80 48 24 07 00 10 00 e2 01 04 06 00 00 01 00
+10: 00 00 00 00 00 00 00 00 00 05 06 20 20 30 80 22
+20: 00 e0 00 e2 11 e2 01 e4 00 00 00 00 00 00 00 00
+30: 00 00 00 00 50 00 00 00 00 00 00 00 ff 00 06 00
+40: 00 00 00 00 00 00 00 00 00 00 00 00 00 12 00 00
+50: 0d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+f0: 00 00 00 00 00 00 00 00 86 0f 02 00 00 00 00 00
+
+00:1f.0 ISA bridge [0601]: Intel Corporation 82801GBM (ICH7-M) LPC Interface Bridge [8086:27b9] (rev 02)
+ Subsystem: Lenovo ThinkPad T60/R60 series [17aa:2009]
+ Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
+ Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
+ Latency: 0
+ Capabilities: [e0] Vendor Specific Information: Len=0c <?>
+ Kernel driver in use: lpc_ich
+00: 86 80 b9 27 07 00 10 02 02 00 01 06 00 00 80 00
+10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+20: 00 00 00 00 00 00 00 00 00 00 00 00 aa 17 09 20
+30: 00 00 00 00 e0 00 00 00 00 00 00 00 00 00 00 00
+40: 01 05 00 00 80 00 00 00 81 04 00 00 10 00 00 00
+50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+60: 80 80 80 80 d0 00 00 00 80 80 80 80 00 00 00 00
+70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+80: 10 02 0d 1f 01 16 7c 00 e1 15 0c 00 81 16 1c 00
+90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+a0: ac 06 00 00 30 00 00 00 13 1c 0a 00 00 03 00 00
+b0: 00 00 f0 00 00 00 00 00 00 00 02 0a 00 00 00 00
+c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+d0: 33 22 11 00 67 45 00 00 cf ff 00 00 08 00 00 00
+e0: 09 00 0c 10 b4 02 24 17 00 00 00 00 00 00 00 00
+f0: 01 c0 d1 fe 00 00 00 00 86 0f 02 00 00 00 00 00
+
+00:1f.1 IDE interface [0101]: Intel Corporation 82801G (ICH7 Family) IDE Controller [8086:27df] (rev 02) (prog-if 8a [Master SecP PriP])
+ Subsystem: Lenovo ThinkPad T60/R60 series [17aa:200c]
+ Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
+ Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx+
+ Latency: 0
+ Interrupt: pin C routed to IRQ 16
+ Region 0: I/O ports at 01f0 [size=8]
+ Region 1: I/O ports at 03f4 [size=1]
+ Region 2: I/O ports at 0170 [size=8]
+ Region 3: I/O ports at 0374 [size=1]
+ Region 4: I/O ports at 5080 [size=16]
+ Kernel driver in use: ata_piix
+00: 86 80 df 27 05 00 88 02 02 8a 01 01 00 00 00 00
+10: a9 50 00 00 c9 50 00 00 b1 50 00 00 cd 50 00 00
+20: 81 50 00 00 00 00 00 00 00 00 00 00 aa 17 0c 20
+30: 00 00 00 00 00 00 00 00 00 00 00 00 ff 03 00 00
+40: 00 40 00 40 00 00 00 00 00 00 00 00 00 00 00 00
+50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+f0: 00 00 00 00 00 00 00 00 86 0f 02 00 00 00 00 00
+
+00:1f.2 SATA controller [0106]: Intel Corporation 82801GBM/GHM (ICH7-M Family) SATA Controller [AHCI mode] [8086:27c5] (rev 02) (prog-if 01 [AHCI 1.0])
+ Subsystem: Lenovo ThinkPad T60/R60 series [17aa:200d]
+ Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
+ Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
+ Latency: 0
+ Interrupt: pin B routed to IRQ 44
+ Region 0: I/O ports at 50b8 [size=8]
+ Region 1: I/O ports at 50d0 [size=4]
+ Region 2: I/O ports at 50c0 [size=8]
+ Region 3: I/O ports at 50d4 [size=4]
+ Region 4: I/O ports at 5090 [size=16]
+ Region 5: Memory at e4344400 (32-bit, non-prefetchable) [size=1K]
+ Capabilities: [80] MSI: Enable+ Count=1/1 Maskable- 64bit-
+ Address: fee0300c Data: 4142
+ Capabilities: [70] Power Management version 2
+ Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot+,D3cold-)
+ Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
+ Kernel driver in use: ahci
+00: 86 80 c5 27 07 04 b0 02 02 01 06 01 00 00 00 00
+10: b9 50 00 00 d1 50 00 00 c1 50 00 00 d5 50 00 00
+20: 91 50 00 00 00 44 34 e4 00 00 00 00 aa 17 0d 20
+30: 00 00 00 00 80 00 00 00 00 00 00 00 00 02 00 00
+40: 07 a3 00 80 00 00 00 00 01 00 01 00 00 00 00 00
+50: 00 00 00 00 03 30 00 00 00 00 00 00 00 00 00 00
+60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+70: 01 00 02 40 00 00 00 00 00 00 00 00 00 00 00 00
+80: 05 70 01 00 0c 30 e0 fe 42 41 00 00 00 00 00 00
+90: 40 00 15 02 80 01 00 5a 00 00 00 00 00 00 00 00
+a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+f0: 00 00 00 00 00 00 00 00 86 0f 02 00 00 00 00 00
+
+00:1f.3 SMBus [0c05]: Intel Corporation NM10/ICH7 Family SMBus Controller [8086:27da] (rev 02)
+ Subsystem: Lenovo ThinkPad T60/R60 series [17aa:200f]
+ Control: I/O+ Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
+ Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
+ Interrupt: pin A routed to IRQ 11
+ Region 4: I/O ports at 0400 [size=32]
+00: 86 80 da 27 01 01 80 02 02 00 05 0c 00 00 00 00
+10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+20: 01 04 00 00 00 00 00 00 00 00 00 00 aa 17 0f 20
+30: 00 00 00 00 00 00 00 00 00 00 00 00 0b 01 00 00
+40: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+f0: 00 00 00 00 00 00 00 00 86 0f 02 00 00 00 00 00
+
+01:00.0 Ethernet controller [0200]: Intel Corporation 82573L Gigabit Ethernet Controller [8086:109a]
+ Subsystem: Lenovo ThinkPad X60s [17aa:207e]
+ Physical Slot: 0
+ Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
+ Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
+ Latency: 0, Cache Line Size: 64 bytes
+ Interrupt: pin A routed to IRQ 45
+ Region 0: Memory at e4100000 (32-bit, non-prefetchable) [size=128K]
+ Region 2: I/O ports at 4000 [size=32]
+ Capabilities: [c8] Power Management version 2
+ Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
+ Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=1 PME-
+ Capabilities: [d0] MSI: Enable+ Count=1/1 Maskable- 64bit+
+ Address: 00000000fee0300c Data: 4182
+ Capabilities: [e0] Express (v1) Endpoint, MSI 00
+ DevCap: MaxPayload 256 bytes, PhantFunc 0, Latency L0s <512ns, L1 <64us
+ ExtTag- AttnBtn- AttnInd- PwrInd- RBE- FLReset-
+ DevCtl: Report errors: Correctable+ Non-Fatal+ Fatal+ Unsupported+
+ RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
+ MaxPayload 128 bytes, MaxReadReq 512 bytes
+ DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+ TransPend-
+ LnkCap: Port #0, Speed 2.5GT/s, Width x1, ASPM L0s L1, Latency L0 <128ns, L1 <64us
+ ClockPM+ Surprise- LLActRep- BwNot-
+ LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk-
+ ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
+ LnkSta: Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
+ Capabilities: [100 v1] Advanced Error Reporting
+ UESta: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq+ ACSViol-
+ UEMsk: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
+ UESvrt: DLP+ SDES- TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
+ CESta: RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
+ CEMsk: RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
+ AERCap: First Error Pointer: 14, GenCap- CGenEn- ChkCap- ChkEn-
+ Capabilities: [140 v1] Device Serial Number 00-16-d3-ff-ff-b6-d0-98
+ Kernel driver in use: e1000e
+00: 86 80 9a 10 07 04 10 00 00 00 00 02 10 00 00 00
+10: 00 00 10 e4 00 00 00 00 01 40 00 00 00 00 00 00
+20: 00 00 00 00 00 00 00 00 00 00 00 00 aa 17 7e 20
+30: 00 00 00 00 c8 00 00 00 00 00 00 00 0b 01 00 00
+40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+c0: 00 00 00 00 00 00 00 00 01 d0 22 c8 00 20 00 0f
+d0: 05 e0 81 00 0c 30 e0 fe 00 00 00 00 82 41 00 00
+e0: 10 00 01 00 c1 0c 00 00 1f 28 10 00 11 1c 07 00
+f0: 00 00 11 10 00 00 00 00 00 00 00 00 00 00 00 00
+
+05:00.0 CardBus bridge [0607]: Ricoh Co Ltd RL5c476 II [1180:0476] (rev b4)
+ Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
+ Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
+ Latency: 168
+ Interrupt: pin A routed to IRQ 16
+ Region 0: Memory at e2000000 (32-bit, non-prefetchable) [size=4K]
+ Bus: primary=05, secondary=06, subordinate=06, sec-latency=176
+ Memory window 0: 84000000-87fff000 (prefetchable)
+ Memory window 1: 88000000-8bfff000
+ I/O window 0: 00002000-000020ff
+ I/O window 1: 00002400-000024ff
+ BridgeCtl: Parity+ SERR+ ISA- VGA- MAbort- >Reset- 16bInt+ PostWrite+
+ 16-bit legacy interface ports at 0001
+ Kernel driver in use: yenta_cardbus
+00: 80 11 76 04 07 00 10 02 b4 00 07 06 00 a8 82 00
+10: 00 00 00 e2 dc 00 00 02 05 06 06 b0 00 00 00 84
+20: 00 f0 ff 87 00 00 00 88 00 f0 ff 8b 00 20 00 00
+30: fc 20 00 00 00 24 00 00 fc 24 00 00 0b 01 83 05
+40: 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00
+50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+80: 01 00 a0 00 00 03 00 00 63 04 63 04 00 00 00 00
+90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+a0: 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+b0: 00 00 00 00 00 00 00 b2 00 30 00 00 00 00 00 00
+c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+d0: 00 00 00 00 00 00 00 00 00 00 00 00 01 00 0a fe
+e0: 00 40 c0 24 00 00 00 00 00 00 00 00 00 00 00 00
+f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+
+05:00.1 FireWire (IEEE 1394) [0c00]: Ricoh Co Ltd R5C552 IEEE 1394 Controller [1180:0552] (rev 09) (prog-if 10 [OHCI])
+ Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
+ Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
+ Latency: 64 (500ns min, 1000ns max)
+ Interrupt: pin B routed to IRQ 17
+ Region 0: Memory at e2001000 (32-bit, non-prefetchable) [size=2K]
+ Capabilities: [dc] Power Management version 2
+ Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0+,D1+,D2+,D3hot+,D3cold+)
+ Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=2 PME+
+ Kernel driver in use: firewire_ohci
+00: 80 11 52 05 06 00 10 02 09 10 00 0c 00 40 80 00
+10: 00 10 00 e2 00 00 00 00 00 00 00 00 00 00 00 00
+20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+30: 00 00 00 00 dc 00 00 00 00 00 00 00 0b 02 02 04
+40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+80: 00 00 80 16 00 00 00 00 00 20 00 00 66 66 32 12
+90: 48 60 66 10 00 00 02 00 00 80 00 00 00 01 18 00
+a0: 00 00 00 00 00 00 00 00 20 00 00 00 00 00 00 00
+b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 04
+c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+d0: 00 00 00 00 00 00 00 00 00 00 00 00 01 00 02 fe
+e0: 00 c0 00 48 00 00 00 00 00 00 00 00 00 00 00 00
+f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+
+05:00.2 SD Host controller [0805]: Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter [1180:0822] (rev 18)
+ Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
+ Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
+ Latency: 64
+ Interrupt: pin C routed to IRQ 18
+ Region 0: Memory at e2001800 (32-bit, non-prefetchable) [size=256]
+ Capabilities: [80] Power Management version 2
+ Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0+,D1+,D2+,D3hot+,D3cold+)
+ Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=2 PME-
+ Kernel driver in use: sdhci-pci
+00: 80 11 22 08 06 00 10 02 18 00 05 08 00 40 80 00
+10: 00 18 00 e2 00 00 00 00 00 00 00 00 00 00 00 00
+20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+30: 00 00 00 00 80 00 00 00 00 00 00 00 0b 03 00 00
+40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+80: 01 00 02 fe 00 40 00 48 00 00 00 00 00 00 00 00
+90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+b0: 00 00 02 00 00 00 00 00 00 00 00 00 a0 00 00 00
+c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+e0: a1 21 80 01 00 00 00 00 40 00 00 00 00 00 00 00
+f0: 00 00 00 00 00 00 00 00 c3 00 20 02 00 00 00 00
+
diff --git a/docs/future/dumps/x60_lspcixxxvvnn_factory b/docs/future/dumps/x60_lspcixxxvvnn_factory
new file mode 100644
index 00000000..885a7bce
--- /dev/null
+++ b/docs/future/dumps/x60_lspcixxxvvnn_factory
@@ -0,0 +1,842 @@
+00:00.0 Host bridge [0600]: Intel Corporation Mobile 945GM/PM/GMS, 943/940GML and 945GT Express Memory Controller Hub [8086:27a0] (rev 03)
+ Subsystem: Lenovo ThinkPad T60/R60 series [17aa:2017]
+ Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
+ Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx-
+ Latency: 0
+ Capabilities: [e0] Vendor Specific Information: Len=09 <?>
+ Kernel driver in use: agpgart-intel
+00: 86 80 a0 27 06 01 90 20 03 00 00 06 00 00 00 00
+10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+20: 00 00 00 00 00 00 00 00 00 00 00 00 aa 17 17 20
+30: 00 00 00 00 e0 00 00 00 00 00 00 00 00 00 00 00
+40: 01 90 d1 fe 01 40 d1 fe 05 00 00 f0 01 80 d1 fe
+50: 00 00 30 00 19 00 00 00 00 00 00 00 00 00 00 00
+60: 01 00 20 80 00 00 00 00 00 00 00 00 00 00 00 00
+70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+90: 10 11 11 01 30 11 11 00 ff 03 00 00 80 1a 39 00
+a0: 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+d0: 00 00 00 00 00 00 00 00 00 00 00 00 04 01 00 00
+e0: 09 00 09 51 02 04 0a 90 0e 00 00 00 00 00 00 00
+f0: 00 00 00 00 00 00 00 00 86 0f 05 00 10 00 00 00
+
+00:02.0 VGA compatible controller [0300]: Intel Corporation Mobile 945GM/GMS, 943/940GML Express Integrated Graphics Controller [8086:27a2] (rev 03) (prog-if 00 [VGA controller])
+ Subsystem: Lenovo ThinkPad T60/R60 series [17aa:201a]
+ Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
+ Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
+ Latency: 0
+ Interrupt: pin A routed to IRQ 16
+ Region 0: Memory at ee100000 (32-bit, non-prefetchable) [size=512K]
+ Region 1: I/O ports at 1800 [size=8]
+ Region 2: Memory at d0000000 (32-bit, prefetchable) [size=256M]
+ Region 3: Memory at ee200000 (32-bit, non-prefetchable) [size=256K]
+ Expansion ROM at <unassigned> [disabled]
+ Capabilities: [90] MSI: Enable- Count=1/1 Maskable- 64bit-
+ Address: 00000000 Data: 0000
+ Capabilities: [d0] Power Management version 2
+ Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
+ Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
+ Kernel driver in use: i915
+00: 86 80 a2 27 07 00 90 00 03 00 00 03 00 00 80 00
+10: 00 00 10 ee 01 18 00 00 08 00 00 d0 00 00 20 ee
+20: 00 00 00 00 00 00 00 00 00 00 00 00 aa 17 1a 20
+30: 00 00 00 00 90 00 00 00 00 00 00 00 0b 01 00 00
+40: 00 00 00 00 48 00 00 00 09 00 09 51 02 04 0a 90
+50: 0e 00 30 00 19 00 00 00 00 00 00 00 00 00 80 7f
+60: 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00
+70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+90: 05 d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+c0: 00 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+d0: 01 00 22 00 00 00 00 00 00 00 00 00 00 00 00 00
+e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+f0: 03 00 64 34 b2 00 00 00 86 0f 05 00 00 00 00 00
+
+00:02.1 Display controller [0380]: Intel Corporation Mobile 945GM/GMS/GME, 943/940GML Express Integrated Graphics Controller [8086:27a6] (rev 03)
+ Subsystem: Lenovo ThinkPad T60/R60 series [17aa:201a]
+ Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
+ Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
+ Region 0: Memory at ee180000 (32-bit, non-prefetchable) [size=512K]
+ Capabilities: [d0] Power Management version 2
+ Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
+ Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
+00: 86 80 a6 27 03 00 90 00 03 00 80 03 00 00 80 00
+10: 00 00 18 ee 00 00 00 00 00 00 00 00 00 00 00 00
+20: 00 00 00 00 00 00 00 00 00 00 00 00 aa 17 1a 20
+30: 00 00 00 00 d0 00 00 00 00 00 00 00 00 00 00 00
+40: 00 00 00 00 48 00 00 00 09 00 09 51 02 04 0a 90
+50: 0e 00 30 00 19 00 00 00 00 00 00 00 00 00 80 7f
+60: 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00
+70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+c0: 00 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+d0: 01 00 22 00 00 00 00 00 00 00 00 00 00 00 00 00
+e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+f0: 03 00 64 34 b2 00 00 00 86 0f 05 00 00 00 00 00
+
+00:1b.0 Audio device [0403]: Intel Corporation NM10/ICH7 Family High Definition Audio Controller [8086:27d8] (rev 02)
+ Subsystem: Lenovo ThinkPad T60/R60 series [17aa:2010]
+ Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
+ Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
+ Latency: 0, Cache Line Size: 64 bytes
+ Interrupt: pin B routed to IRQ 46
+ Region 0: Memory at ee240000 (64-bit, non-prefetchable) [size=16K]
+ Capabilities: [50] Power Management version 2
+ Flags: PMEClk- DSI- D1- D2- AuxCurrent=55mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
+ Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
+ Capabilities: [60] MSI: Enable+ Count=1/1 Maskable- 64bit+
+ Address: 00000000fee0300c Data: 4162
+ Capabilities: [70] Express (v1) Root Complex Integrated Endpoint, MSI 00
+ DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <64ns, L1 <1us
+ ExtTag- RBE- FLReset-
+ DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
+ RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop+
+ MaxPayload 128 bytes, MaxReadReq 128 bytes
+ DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+ TransPend-
+ LnkCap: Port #0, Speed unknown, Width x0, ASPM unknown, Latency L0 <64ns, L1 <1us
+ ClockPM- Surprise- LLActRep- BwNot-
+ LnkCtl: ASPM Disabled; Disabled- Retrain- CommClk-
+ ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
+ LnkSta: Speed unknown, Width x0, TrErr- Train- SlotClk- DLActive- BWMgmt- ABWMgmt-
+ Capabilities: [100 v1] Virtual Channel
+ Caps: LPEVC=0 RefClk=100ns PATEntryBits=1
+ Arb: Fixed- WRR32- WRR64- WRR128-
+ Ctrl: ArbSelect=Fixed
+ Status: InProgress-
+ VC0: Caps: PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
+ Arb: Fixed- WRR32- WRR64- WRR128- TWRR128- WRR256-
+ Ctrl: Enable+ ID=0 ArbSelect=Fixed TC/VC=01
+ Status: NegoPending- InProgress-
+ VC1: Caps: PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
+ Arb: Fixed- WRR32- WRR64- WRR128- TWRR128- WRR256-
+ Ctrl: Enable+ ID=1 ArbSelect=Fixed TC/VC=80
+ Status: NegoPending- InProgress-
+ Capabilities: [130 v1] Root Complex Link
+ Desc: PortNumber=0f ComponentID=02 EltType=Config
+ Link0: Desc: TargetPort=00 TargetComponent=02 AssocRCRB- LinkType=MemMapped LinkValid+
+ Addr: 00000000fed1c000
+ Kernel driver in use: snd_hda_intel
+00: 86 80 d8 27 06 05 10 00 02 00 03 04 10 00 00 00
+10: 04 00 24 ee 00 00 00 00 00 00 00 00 00 00 00 00
+20: 00 00 00 00 00 00 00 00 00 00 00 00 aa 17 10 20
+30: 00 00 00 00 50 00 00 00 00 00 00 00 0b 02 00 00
+40: 03 00 00 03 00 00 00 00 00 00 00 00 00 80 00 00
+50: 01 60 42 c8 00 00 00 00 00 00 00 00 00 00 00 00
+60: 05 70 81 00 0c 30 e0 fe 00 00 00 00 62 41 00 00
+70: 10 00 91 00 00 00 00 00 00 08 10 00 00 00 00 00
+80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+c0: 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00
+d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+f0: 00 00 00 00 00 00 00 00 86 0f 02 00 00 00 00 00
+
+00:1c.0 PCI bridge [0604]: Intel Corporation NM10/ICH7 Family PCI Express Port 1 [8086:27d0] (rev 02) (prog-if 00 [Normal decode])
+ Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
+ Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
+ Latency: 0, Cache Line Size: 64 bytes
+ Bus: primary=00, secondary=02, subordinate=02, sec-latency=0
+ I/O behind bridge: 00002000-00002fff
+ Memory behind bridge: ee000000-ee0fffff
+ Prefetchable memory behind bridge: 0000000080000000-00000000801fffff
+ Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ <SERR- <PERR-
+ BridgeCtl: Parity- SERR- NoISA+ VGA- MAbort- >Reset- FastB2B-
+ PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
+ Capabilities: [40] Express (v1) Root Port (Slot+), MSI 00
+ DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s unlimited, L1 unlimited
+ ExtTag- RBE- FLReset-
+ DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
+ RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
+ MaxPayload 128 bytes, MaxReadReq 128 bytes
+ DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+ TransPend-
+ LnkCap: Port #1, Speed 2.5GT/s, Width x1, ASPM L0s L1, Latency L0 <256ns, L1 <4us
+ ClockPM- Surprise- LLActRep+ BwNot-
+ LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk+
+ ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
+ LnkSta: Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive+ BWMgmt- ABWMgmt-
+ SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug+ Surprise+
+ Slot #2, PowerLimit 6.500W; Interlock- NoCompl-
+ SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet+ CmdCplt+ HPIrq+ LinkChg+
+ Control: AttnInd Unknown, PwrInd Unknown, Power- Interlock-
+ SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet+ Interlock-
+ Changed: MRL- PresDet- LinkState+
+ RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna+ CRSVisible-
+ RootCap: CRSVisible-
+ RootSta: PME ReqID 0000, PMEStatus- PMEPending-
+ Capabilities: [80] MSI: Enable+ Count=1/1 Maskable- 64bit-
+ Address: fee0300c Data: 4191
+ Capabilities: [90] Subsystem: Lenovo Device [17aa:2011]
+ Capabilities: [a0] Power Management version 2
+ Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
+ Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
+ Capabilities: [100 v1] Virtual Channel
+ Caps: LPEVC=0 RefClk=100ns PATEntryBits=1
+ Arb: Fixed+ WRR32- WRR64- WRR128-
+ Ctrl: ArbSelect=Fixed
+ Status: InProgress-
+ VC0: Caps: PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
+ Arb: Fixed+ WRR32- WRR64- WRR128- TWRR128- WRR256-
+ Ctrl: Enable+ ID=0 ArbSelect=Fixed TC/VC=01
+ Status: NegoPending- InProgress-
+ VC1: Caps: PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
+ Arb: Fixed+ WRR32- WRR64- WRR128- TWRR128- WRR256-
+ Ctrl: Enable- ID=0 ArbSelect=Fixed TC/VC=00
+ Status: NegoPending- InProgress-
+ Capabilities: [180 v1] Root Complex Link
+ Desc: PortNumber=01 ComponentID=02 EltType=Config
+ Link0: Desc: TargetPort=00 TargetComponent=02 AssocRCRB- LinkType=MemMapped LinkValid+
+ Addr: 00000000fed1c001
+ Kernel driver in use: pcieport
+00: 86 80 d0 27 07 05 10 00 02 00 04 06 10 00 81 00
+10: 00 00 00 00 00 00 00 00 00 02 02 00 20 20 00 20
+20: 00 ee 00 ee 01 80 11 80 00 00 00 00 00 00 00 00
+30: 00 00 00 00 40 00 00 00 00 00 00 00 0b 01 04 00
+40: 10 80 41 01 c0 0f 00 00 00 00 10 00 11 2c 11 01
+50: 40 00 11 30 e0 a0 10 00 38 10 40 01 08 00 00 00
+60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+80: 05 90 01 00 0c 30 e0 fe 91 41 00 00 00 00 00 00
+90: 0d a0 00 00 aa 17 11 20 00 00 00 00 00 00 00 00
+a0: 01 00 02 c8 00 00 00 00 00 00 00 00 00 00 00 00
+b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+d0: 00 00 00 00 00 00 00 00 80 00 11 80 00 00 00 00
+e0: 00 0f c7 00 06 07 08 00 00 00 00 00 00 00 00 00
+f0: 00 00 00 00 00 00 00 00 86 0f 02 00 00 00 00 00
+
+00:1c.1 PCI bridge [0604]: Intel Corporation NM10/ICH7 Family PCI Express Port 2 [8086:27d2] (rev 02) (prog-if 00 [Normal decode])
+ Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
+ Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
+ Latency: 0, Cache Line Size: 64 bytes
+ Bus: primary=00, secondary=03, subordinate=03, sec-latency=0
+ I/O behind bridge: 00003000-00004fff
+ Memory behind bridge: e8000000-e9ffffff
+ Prefetchable memory behind bridge: 00000000e4000000-00000000e40fffff
+ Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ <SERR- <PERR-
+ BridgeCtl: Parity- SERR- NoISA+ VGA- MAbort- >Reset- FastB2B-
+ PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
+ Capabilities: [40] Express (v1) Root Port (Slot+), MSI 00
+ DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s unlimited, L1 unlimited
+ ExtTag- RBE- FLReset-
+ DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
+ RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
+ MaxPayload 128 bytes, MaxReadReq 128 bytes
+ DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+ TransPend-
+ LnkCap: Port #2, Speed 2.5GT/s, Width x1, ASPM L0s L1, Latency L0 <1us, L1 <4us
+ ClockPM- Surprise- LLActRep+ BwNot-
+ LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk-
+ ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
+ LnkSta: Speed 2.5GT/s, Width x0, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
+ SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug+ Surprise+
+ Slot #3, PowerLimit 6.500W; Interlock- NoCompl-
+ SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet+ CmdCplt+ HPIrq+ LinkChg+
+ Control: AttnInd Unknown, PwrInd Unknown, Power- Interlock-
+ SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet- Interlock-
+ Changed: MRL- PresDet- LinkState-
+ RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna+ CRSVisible-
+ RootCap: CRSVisible-
+ RootSta: PME ReqID 0000, PMEStatus- PMEPending-
+ Capabilities: [80] MSI: Enable+ Count=1/1 Maskable- 64bit-
+ Address: fee0300c Data: 41b1
+ Capabilities: [90] Subsystem: Lenovo Device [17aa:2011]
+ Capabilities: [a0] Power Management version 2
+ Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
+ Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
+ Capabilities: [100 v1] Virtual Channel
+ Caps: LPEVC=0 RefClk=100ns PATEntryBits=1
+ Arb: Fixed+ WRR32- WRR64- WRR128-
+ Ctrl: ArbSelect=Fixed
+ Status: InProgress-
+ VC0: Caps: PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
+ Arb: Fixed+ WRR32- WRR64- WRR128- TWRR128- WRR256-
+ Ctrl: Enable+ ID=0 ArbSelect=Fixed TC/VC=ff
+ Status: NegoPending- InProgress-
+ VC1: Caps: PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
+ Arb: Fixed+ WRR32- WRR64- WRR128- TWRR128- WRR256-
+ Ctrl: Enable- ID=0 ArbSelect=Fixed TC/VC=00
+ Status: NegoPending- InProgress-
+ Capabilities: [180 v1] Root Complex Link
+ Desc: PortNumber=02 ComponentID=02 EltType=Config
+ Link0: Desc: TargetPort=00 TargetComponent=02 AssocRCRB- LinkType=MemMapped LinkValid+
+ Addr: 00000000fed1c001
+ Kernel driver in use: pcieport
+00: 86 80 d2 27 07 05 10 00 02 00 04 06 10 00 81 00
+10: 00 00 00 00 00 00 00 00 00 03 03 00 30 40 00 20
+20: 00 e8 f0 e9 01 e4 01 e4 00 00 00 00 00 00 00 00
+30: 00 00 00 00 40 00 00 00 00 00 00 00 0b 02 04 00
+40: 10 80 41 01 c0 0f 00 00 00 00 10 00 11 4c 11 02
+50: 00 00 01 10 e0 a0 18 00 38 10 00 00 08 00 00 00
+60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+80: 05 90 01 00 0c 30 e0 fe b1 41 00 00 00 00 00 00
+90: 0d a0 00 00 aa 17 11 20 00 00 00 00 00 00 00 00
+a0: 01 00 02 c8 00 00 00 00 00 00 00 00 00 00 00 00
+b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+d0: 00 00 00 00 00 00 00 00 80 00 11 00 00 00 00 00
+e0: 00 00 c7 00 06 07 08 00 00 00 00 00 00 00 00 00
+f0: 00 00 00 00 00 00 00 00 86 0f 02 00 00 00 00 00
+
+00:1c.2 PCI bridge [0604]: Intel Corporation NM10/ICH7 Family PCI Express Port 3 [8086:27d4] (rev 02) (prog-if 00 [Normal decode])
+ Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
+ Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
+ Latency: 0, Cache Line Size: 64 bytes
+ Bus: primary=00, secondary=04, subordinate=0b, sec-latency=0
+ I/O behind bridge: 00005000-00006fff
+ Memory behind bridge: ea000000-ebffffff
+ Prefetchable memory behind bridge: 00000000e4100000-00000000e41fffff
+ Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ <SERR- <PERR-
+ BridgeCtl: Parity- SERR- NoISA+ VGA- MAbort- >Reset- FastB2B-
+ PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
+ Capabilities: [40] Express (v1) Root Port (Slot+), MSI 00
+ DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s unlimited, L1 unlimited
+ ExtTag- RBE- FLReset-
+ DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
+ RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
+ MaxPayload 128 bytes, MaxReadReq 128 bytes
+ DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+ TransPend-
+ LnkCap: Port #3, Speed 2.5GT/s, Width x1, ASPM L0s L1, Latency L0 <1us, L1 <4us
+ ClockPM- Surprise- LLActRep+ BwNot-
+ LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk-
+ ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
+ LnkSta: Speed 2.5GT/s, Width x0, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
+ SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug+ Surprise+
+ Slot #4, PowerLimit 6.500W; Interlock- NoCompl-
+ SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet+ CmdCplt+ HPIrq+ LinkChg+
+ Control: AttnInd Unknown, PwrInd Unknown, Power- Interlock-
+ SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet- Interlock-
+ Changed: MRL- PresDet- LinkState-
+ RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna+ CRSVisible-
+ RootCap: CRSVisible-
+ RootSta: PME ReqID 0000, PMEStatus- PMEPending-
+ Capabilities: [80] MSI: Enable+ Count=1/1 Maskable- 64bit-
+ Address: fee0300c Data: 41d1
+ Capabilities: [90] Subsystem: Lenovo Device [17aa:2011]
+ Capabilities: [a0] Power Management version 2
+ Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
+ Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
+ Capabilities: [100 v1] Virtual Channel
+ Caps: LPEVC=0 RefClk=100ns PATEntryBits=1
+ Arb: Fixed+ WRR32- WRR64- WRR128-
+ Ctrl: ArbSelect=Fixed
+ Status: InProgress-
+ VC0: Caps: PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
+ Arb: Fixed+ WRR32- WRR64- WRR128- TWRR128- WRR256-
+ Ctrl: Enable+ ID=0 ArbSelect=Fixed TC/VC=ff
+ Status: NegoPending- InProgress-
+ VC1: Caps: PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
+ Arb: Fixed+ WRR32- WRR64- WRR128- TWRR128- WRR256-
+ Ctrl: Enable- ID=0 ArbSelect=Fixed TC/VC=00
+ Status: NegoPending- InProgress-
+ Capabilities: [180 v1] Root Complex Link
+ Desc: PortNumber=03 ComponentID=02 EltType=Config
+ Link0: Desc: TargetPort=00 TargetComponent=02 AssocRCRB- LinkType=MemMapped LinkValid+
+ Addr: 00000000fed1c001
+ Kernel driver in use: pcieport
+00: 86 80 d4 27 07 05 10 00 02 00 04 06 10 00 81 00
+10: 00 00 00 00 00 00 00 00 00 04 0b 00 50 60 00 20
+20: 00 ea f0 eb 11 e4 11 e4 00 00 00 00 00 00 00 00
+30: 00 00 00 00 40 00 00 00 00 00 00 00 0b 03 04 00
+40: 10 80 41 01 c0 0f 00 00 00 00 10 00 11 4c 11 03
+50: 00 00 01 10 e0 a0 20 00 38 10 00 00 08 00 00 00
+60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+80: 05 90 01 00 0c 30 e0 fe d1 41 00 00 00 00 00 00
+90: 0d a0 00 00 aa 17 11 20 00 00 00 00 00 00 00 00
+a0: 01 00 02 c8 00 00 00 00 00 00 00 00 00 00 00 00
+b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+d0: 00 00 00 00 00 00 00 00 80 00 11 00 00 00 00 00
+e0: 00 00 c7 00 06 07 08 00 00 00 00 00 00 00 00 00
+f0: 00 00 00 00 00 00 00 00 86 0f 02 00 00 00 00 00
+
+00:1c.3 PCI bridge [0604]: Intel Corporation NM10/ICH7 Family PCI Express Port 4 [8086:27d6] (rev 02) (prog-if 00 [Normal decode])
+ Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
+ Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
+ Latency: 0, Cache Line Size: 64 bytes
+ Bus: primary=00, secondary=0c, subordinate=13, sec-latency=0
+ I/O behind bridge: 00007000-00008fff
+ Memory behind bridge: ec000000-edffffff
+ Prefetchable memory behind bridge: 00000000e4200000-00000000e42fffff
+ Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ <SERR- <PERR-
+ BridgeCtl: Parity- SERR- NoISA+ VGA- MAbort- >Reset- FastB2B-
+ PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
+ Capabilities: [40] Express (v1) Root Port (Slot+), MSI 00
+ DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s unlimited, L1 unlimited
+ ExtTag- RBE- FLReset-
+ DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
+ RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
+ MaxPayload 128 bytes, MaxReadReq 128 bytes
+ DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+ TransPend-
+ LnkCap: Port #4, Speed 2.5GT/s, Width x1, ASPM L0s L1, Latency L0 <1us, L1 <4us
+ ClockPM- Surprise- LLActRep+ BwNot-
+ LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk-
+ ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
+ LnkSta: Speed 2.5GT/s, Width x0, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
+ SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug+ Surprise+
+ Slot #5, PowerLimit 6.500W; Interlock- NoCompl-
+ SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet+ CmdCplt+ HPIrq+ LinkChg+
+ Control: AttnInd Unknown, PwrInd Unknown, Power- Interlock-
+ SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet- Interlock-
+ Changed: MRL- PresDet- LinkState-
+ RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna+ CRSVisible-
+ RootCap: CRSVisible-
+ RootSta: PME ReqID 0000, PMEStatus- PMEPending-
+ Capabilities: [80] MSI: Enable+ Count=1/1 Maskable- 64bit-
+ Address: fee0300c Data: 4122
+ Capabilities: [90] Subsystem: Lenovo Device [17aa:2011]
+ Capabilities: [a0] Power Management version 2
+ Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
+ Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
+ Capabilities: [100 v1] Virtual Channel
+ Caps: LPEVC=0 RefClk=100ns PATEntryBits=1
+ Arb: Fixed+ WRR32- WRR64- WRR128-
+ Ctrl: ArbSelect=Fixed
+ Status: InProgress-
+ VC0: Caps: PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
+ Arb: Fixed+ WRR32- WRR64- WRR128- TWRR128- WRR256-
+ Ctrl: Enable+ ID=0 ArbSelect=Fixed TC/VC=ff
+ Status: NegoPending- InProgress-
+ VC1: Caps: PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
+ Arb: Fixed+ WRR32- WRR64- WRR128- TWRR128- WRR256-
+ Ctrl: Enable- ID=0 ArbSelect=Fixed TC/VC=00
+ Status: NegoPending- InProgress-
+ Capabilities: [180 v1] Root Complex Link
+ Desc: PortNumber=04 ComponentID=02 EltType=Config
+ Link0: Desc: TargetPort=00 TargetComponent=02 AssocRCRB- LinkType=MemMapped LinkValid+
+ Addr: 00000000fed1c001
+ Kernel driver in use: pcieport
+00: 86 80 d6 27 07 05 10 00 02 00 04 06 10 00 81 00
+10: 00 00 00 00 00 00 00 00 00 0c 13 00 70 80 00 20
+20: 00 ec f0 ed 21 e4 21 e4 00 00 00 00 00 00 00 00
+30: 00 00 00 00 40 00 00 00 00 00 00 00 0b 04 04 00
+40: 10 80 41 01 c0 0f 00 00 00 00 10 00 11 4c 11 04
+50: 00 00 01 10 e0 a0 28 00 38 10 00 00 08 00 00 00
+60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+80: 05 90 01 00 0c 30 e0 fe 22 41 00 00 00 00 00 00
+90: 0d a0 00 00 aa 17 11 20 00 00 00 00 00 00 00 00
+a0: 01 00 02 c8 00 00 00 00 00 00 00 00 00 00 00 00
+b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+d0: 00 00 00 00 00 00 00 00 80 00 11 00 00 00 00 00
+e0: 00 00 c7 00 06 07 08 00 00 00 00 00 00 00 00 00
+f0: 00 00 00 00 00 00 00 00 86 0f 02 00 00 00 00 00
+
+00:1d.0 USB controller [0c03]: Intel Corporation NM10/ICH7 Family USB UHCI Controller #1 [8086:27c8] (rev 02) (prog-if 00 [UHCI])
+ Subsystem: Lenovo ThinkPad T60/R60 series [17aa:200a]
+ Control: I/O+ Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
+ Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
+ Interrupt: pin A routed to IRQ 16
+ Region 4: I/O ports at 1820 [size=32]
+ Kernel driver in use: uhci_hcd
+00: 86 80 c8 27 01 00 80 02 02 00 03 0c 00 00 80 00
+10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+20: 21 18 00 00 00 00 00 00 00 00 00 00 aa 17 0a 20
+30: 00 00 00 00 00 00 00 00 00 00 00 00 0b 01 00 00
+40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+60: 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+c0: 00 0f 00 00 03 00 00 00 00 00 00 00 00 00 00 00
+d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+f0: 00 00 00 00 00 00 00 00 86 0f 02 00 00 00 00 00
+
+00:1d.1 USB controller [0c03]: Intel Corporation NM10/ICH7 Family USB UHCI Controller #2 [8086:27c9] (rev 02) (prog-if 00 [UHCI])
+ Subsystem: Lenovo ThinkPad T60/R60 series [17aa:200a]
+ Control: I/O+ Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
+ Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
+ Interrupt: pin B routed to IRQ 17
+ Region 4: I/O ports at 1840 [size=32]
+ Kernel driver in use: uhci_hcd
+00: 86 80 c9 27 01 00 80 02 02 00 03 0c 00 00 00 00
+10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+20: 41 18 00 00 00 00 00 00 00 00 00 00 aa 17 0a 20
+30: 00 00 00 00 00 00 00 00 00 00 00 00 0b 02 00 00
+40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+60: 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+c0: 00 0f 00 00 03 00 00 00 00 00 00 00 00 00 00 00
+d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+f0: 00 00 00 00 00 00 00 00 86 0f 02 00 00 00 00 00
+
+00:1d.2 USB controller [0c03]: Intel Corporation NM10/ICH7 Family USB UHCI Controller #3 [8086:27ca] (rev 02) (prog-if 00 [UHCI])
+ Subsystem: Lenovo ThinkPad T60/R60 series [17aa:200a]
+ Control: I/O+ Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
+ Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
+ Interrupt: pin C routed to IRQ 18
+ Region 4: I/O ports at 1860 [size=32]
+ Kernel driver in use: uhci_hcd
+00: 86 80 ca 27 01 00 80 02 02 00 03 0c 00 00 00 00
+10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+20: 61 18 00 00 00 00 00 00 00 00 00 00 aa 17 0a 20
+30: 00 00 00 00 00 00 00 00 00 00 00 00 0b 03 00 00
+40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+60: 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+c0: 00 0f 00 00 03 00 00 00 00 00 00 00 00 00 00 00
+d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+f0: 00 00 00 00 00 00 00 00 86 0f 02 00 00 00 00 00
+
+00:1d.3 USB controller [0c03]: Intel Corporation NM10/ICH7 Family USB UHCI Controller #4 [8086:27cb] (rev 02) (prog-if 00 [UHCI])
+ Subsystem: Lenovo ThinkPad T60/R60 series [17aa:200a]
+ Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
+ Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
+ Latency: 0
+ Interrupt: pin D routed to IRQ 19
+ Region 4: I/O ports at 1880 [size=32]
+ Kernel driver in use: uhci_hcd
+00: 86 80 cb 27 05 00 80 02 02 00 03 0c 00 00 00 00
+10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+20: 81 18 00 00 00 00 00 00 00 00 00 00 aa 17 0a 20
+30: 00 00 00 00 00 00 00 00 00 00 00 00 0b 04 00 00
+40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+60: 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+c0: 00 2f 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+f0: 00 00 00 00 00 00 00 00 86 0f 02 00 00 00 00 00
+
+00:1d.7 USB controller [0c03]: Intel Corporation NM10/ICH7 Family USB2 EHCI Controller [8086:27cc] (rev 02) (prog-if 20 [EHCI])
+ Subsystem: Lenovo ThinkPad T60/R60 series [17aa:200b]
+ Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
+ Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
+ Latency: 0
+ Interrupt: pin D routed to IRQ 19
+ Region 0: Memory at ee444000 (32-bit, non-prefetchable) [size=1K]
+ Capabilities: [50] Power Management version 2
+ Flags: PMEClk- DSI- D1- D2- AuxCurrent=375mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
+ Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
+ Capabilities: [58] Debug port: BAR=1 offset=00a0
+ Kernel driver in use: ehci-pci
+00: 86 80 cc 27 06 01 90 02 02 20 03 0c 00 00 00 00
+10: 00 40 44 ee 00 00 00 00 00 00 00 00 00 00 00 00
+20: 00 00 00 00 00 00 00 00 00 00 00 00 aa 17 0b 20
+30: 00 00 00 00 50 00 00 00 00 00 00 00 0b 04 00 00
+40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+50: 01 58 c2 c9 00 00 00 00 0a 00 a0 20 00 00 00 00
+60: 20 20 9f 01 00 00 00 00 01 00 00 00 00 00 08 c0
+70: 00 00 dd 3f 00 00 00 00 00 00 00 00 00 00 00 00
+80: 00 00 00 00 11 00 00 00 00 00 00 00 00 00 00 00
+90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+d0: 00 00 00 00 00 aa ff 00 ff 00 ff 00 20 00 00 88
+e0: 00 00 00 00 db b6 6d 00 00 00 00 00 00 00 00 00
+f0: 00 80 00 09 88 85 40 00 86 0f 02 00 06 17 02 20
+
+00:1e.0 PCI bridge [0604]: Intel Corporation 82801 Mobile PCI Bridge [8086:2448] (rev e2) (prog-if 01 [Subtractive decode])
+ Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
+ Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
+ Latency: 0
+ Bus: primary=00, secondary=15, subordinate=18, sec-latency=32
+ I/O behind bridge: 00009000-0000cfff
+ Memory behind bridge: e4300000-e7ffffff
+ Prefetchable memory behind bridge: 00000000e0000000-00000000e3ffffff
+ Secondary status: 66MHz- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort+ <SERR- <PERR-
+ BridgeCtl: Parity- SERR- NoISA- VGA- MAbort- >Reset- FastB2B-
+ PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
+ Capabilities: [50] Subsystem: Lenovo Device [17aa:2013]
+00: 86 80 48 24 07 00 10 00 e2 01 04 06 00 00 01 00
+10: 00 00 00 00 00 00 00 00 00 15 18 20 90 c0 80 22
+20: 30 e4 f0 e7 01 e0 f1 e3 00 00 00 00 00 00 00 00
+30: 00 00 00 00 50 00 00 00 00 00 00 00 ff 00 00 00
+40: 00 00 00 00 00 00 00 00 00 00 00 00 00 12 00 00
+50: 0d 00 00 00 aa 17 13 20 00 00 00 00 00 00 00 00
+60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+f0: 00 00 00 00 00 00 00 00 86 0f 02 00 00 00 00 00
+
+00:1f.0 ISA bridge [0601]: Intel Corporation 82801GBM (ICH7-M) LPC Interface Bridge [8086:27b9] (rev 02)
+ Subsystem: Lenovo ThinkPad T60/R60 series [17aa:2009]
+ Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
+ Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
+ Latency: 0
+ Capabilities: [e0] Vendor Specific Information: Len=0c <?>
+ Kernel driver in use: lpc_ich
+00: 86 80 b9 27 07 00 10 02 02 00 01 06 00 00 80 00
+10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+20: 00 00 00 00 00 00 00 00 00 00 00 00 aa 17 09 20
+30: 00 00 00 00 e0 00 00 00 00 00 00 00 00 00 00 00
+40: 01 10 00 00 80 00 00 00 81 11 00 00 10 00 00 00
+50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+60: 8b 8b 8b 8b 92 00 00 00 8b 8b 8b 8b 00 00 00 00
+70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+80: 10 02 0e 1f 01 16 7c 00 e1 15 0c 00 81 16 1c 00
+90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+a0: 24 02 00 00 30 00 00 00 13 1c 0a 02 00 03 00 00
+b0: 00 00 f0 00 00 00 00 00 00 00 02 0a 00 00 00 00
+c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+d0: 44 12 11 00 67 45 00 00 c0 ff 00 00 01 00 00 00
+e0: 09 00 0c 10 b4 02 24 17 00 00 00 00 00 00 00 00
+f0: 01 c0 d1 fe 00 00 00 00 86 0f 02 00 00 00 00 00
+
+00:1f.1 IDE interface [0101]: Intel Corporation 82801G (ICH7 Family) IDE Controller [8086:27df] (rev 02) (prog-if 8a [Master SecP PriP])
+ Subsystem: Lenovo ThinkPad T60/R60 series [17aa:200c]
+ Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
+ Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx+
+ Latency: 0
+ Interrupt: pin C routed to IRQ 16
+ Region 0: I/O ports at 01f0 [size=8]
+ Region 1: I/O ports at 03f4 [size=1]
+ Region 2: I/O ports at 0170 [size=8]
+ Region 3: I/O ports at 0374 [size=1]
+ Region 4: I/O ports at 1810 [size=16]
+ Kernel driver in use: ata_piix
+00: 86 80 df 27 05 00 88 02 02 8a 01 01 00 00 00 00
+10: 01 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00
+20: 11 18 00 00 00 00 00 00 00 00 00 00 aa 17 0c 20
+30: 00 00 00 00 00 00 00 00 00 00 00 00 ff 03 00 00
+40: 00 c0 00 40 00 00 00 00 00 00 00 00 00 00 00 00
+50: 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00
+60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+c0: 00 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00
+d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+f0: 00 00 00 00 00 00 00 00 86 0f 02 00 00 00 00 00
+
+00:1f.2 SATA controller [0106]: Intel Corporation 82801GBM/GHM (ICH7-M Family) SATA Controller [AHCI mode] [8086:27c5] (rev 02) (prog-if 01 [AHCI 1.0])
+ Subsystem: Lenovo ThinkPad T60/R60 series [17aa:200d]
+ Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
+ Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
+ Latency: 0
+ Interrupt: pin B routed to IRQ 45
+ Region 0: I/O ports at 18d0 [size=8]
+ Region 1: I/O ports at 18c4 [size=4]
+ Region 2: I/O ports at 18c8 [size=8]
+ Region 3: I/O ports at 18c0 [size=4]
+ Region 4: I/O ports at 18b0 [size=16]
+ Region 5: Memory at ee444400 (32-bit, non-prefetchable) [size=1K]
+ Capabilities: [80] MSI: Enable+ Count=1/1 Maskable- 64bit-
+ Address: fee0300c Data: 4152
+ Capabilities: [70] Power Management version 2
+ Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot+,D3cold-)
+ Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
+ Kernel driver in use: ahci
+00: 86 80 c5 27 07 04 b0 02 02 01 06 01 00 00 00 00
+10: d1 18 00 00 c5 18 00 00 c9 18 00 00 c1 18 00 00
+20: b1 18 00 00 00 44 44 ee 00 00 00 00 aa 17 0d 20
+30: 00 00 00 00 80 00 00 00 00 00 00 00 0b 02 00 00
+40: 07 a3 00 80 00 00 00 00 01 00 02 00 00 00 00 00
+50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+70: 01 00 02 40 00 00 00 00 00 00 00 00 00 00 00 00
+80: 05 70 01 00 0c 30 e0 fe 52 41 00 00 00 00 00 00
+90: 40 00 11 10 80 01 00 4a 00 00 00 00 00 00 00 00
+a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+c0: 00 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00
+d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+f0: 00 00 00 00 00 00 00 00 86 0f 02 00 00 00 00 00
+
+00:1f.3 SMBus [0c05]: Intel Corporation NM10/ICH7 Family SMBus Controller [8086:27da] (rev 02)
+ Subsystem: Lenovo ThinkPad T60/R60 series [17aa:200f]
+ Control: I/O+ Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
+ Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
+ Interrupt: pin A routed to IRQ 11
+ Region 4: I/O ports at 18e0 [size=32]
+00: 86 80 da 27 01 01 80 02 02 00 05 0c 00 00 00 00
+10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+20: e1 18 00 00 00 00 00 00 00 00 00 00 aa 17 0f 20
+30: 00 00 00 00 00 00 00 00 00 00 00 00 0b 01 00 00
+40: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+f0: 00 00 00 00 00 00 00 00 86 0f 02 00 00 00 00 00
+
+02:00.0 Ethernet controller [0200]: Intel Corporation 82573L Gigabit Ethernet Controller [8086:109a]
+ Subsystem: Lenovo ThinkPad X60s [17aa:207e]
+ Physical Slot: 2
+ Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
+ Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
+ Interrupt: pin A routed to IRQ 44
+ Region 0: Memory at ee000000 (32-bit, non-prefetchable) [disabled] [size=128K]
+ Region 2: I/O ports at 2000 [disabled] [size=32]
+ Capabilities: [c8] Power Management version 2
+ Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
+ Status: D3 NoSoftRst- PME-Enable+ DSel=0 DScale=1 PME-
+ Capabilities: [d0] MSI: Enable+ Count=1/1 Maskable- 64bit+
+ Address: 00000000fee0300c Data: 4182
+ Capabilities: [e0] Express (v1) Endpoint, MSI 00
+ DevCap: MaxPayload 256 bytes, PhantFunc 0, Latency L0s <512ns, L1 <64us
+ ExtTag- AttnBtn- AttnInd- PwrInd- RBE- FLReset-
+ DevCtl: Report errors: Correctable+ Non-Fatal+ Fatal+ Unsupported+
+ RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
+ MaxPayload 128 bytes, MaxReadReq 512 bytes
+ DevSta: CorrErr- UncorrErr+ FatalErr- UnsuppReq+ AuxPwr+ TransPend-
+ LnkCap: Port #0, Speed 2.5GT/s, Width x1, ASPM L0s L1, Latency L0 <128ns, L1 <64us
+ ClockPM+ Surprise- LLActRep- BwNot-
+ LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk+
+ ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
+ LnkSta: Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
+ Capabilities: [100 v1] Advanced Error Reporting
+ UESta: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq+ ACSViol-
+ UEMsk: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
+ UESvrt: DLP+ SDES- TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
+ CESta: RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
+ CEMsk: RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
+ AERCap: First Error Pointer: 14, GenCap- CGenEn- ChkCap- ChkEn-
+ Capabilities: [140 v1] Device Serial Number 00-16-d3-ff-ff-b6-d0-98
+ Kernel driver in use: e1000e
+00: 86 80 9a 10 00 05 10 00 00 00 00 02 10 00 00 00
+10: 00 00 00 ee 00 00 00 00 01 20 00 00 00 00 00 00
+20: 00 00 00 00 00 00 00 00 00 00 00 00 aa 17 7e 20
+30: 00 00 00 00 c8 00 00 00 00 00 00 00 0b 01 00 00
+40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+c0: 00 00 00 00 00 00 00 00 01 d0 22 c8 03 21 00 0f
+d0: 05 e0 81 00 0c 30 e0 fe 00 00 00 00 82 41 00 00
+e0: 10 00 01 00 c1 0c 00 00 1f 28 1a 00 11 1c 07 00
+f0: 40 00 11 10 00 00 00 00 00 00 00 00 00 00 00 00
+
+15:00.0 CardBus bridge [0607]: Ricoh Co Ltd RL5c476 II [1180:0476] (rev b4)
+ Subsystem: Lenovo ThinkPad X60s [17aa:201c]
+ Physical Slot: 1
+ Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
+ Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
+ Latency: 168
+ Interrupt: pin A routed to IRQ 16
+ Region 0: Memory at e4300000 (32-bit, non-prefetchable) [size=4K]
+ Bus: primary=15, secondary=16, subordinate=17, sec-latency=176
+ Memory window 0: e0000000-e3fff000 (prefetchable)
+ Memory window 1: f4000000-f7fff000
+ I/O window 0: 00009000-000090ff
+ I/O window 1: 00009400-000094ff
+ BridgeCtl: Parity- SERR- ISA- VGA- MAbort- >Reset- 16bInt+ PostWrite+
+ 16-bit legacy interface ports at 0001
+ Kernel driver in use: yenta_cardbus
+00: 80 11 76 04 07 00 10 02 b4 00 07 06 00 a8 82 00
+10: 00 00 30 e4 dc 00 00 02 15 16 17 b0 00 00 00 e0
+20: 00 f0 ff e3 00 00 00 f4 00 f0 ff f7 00 90 00 00
+30: fc 90 00 00 00 94 00 00 fc 94 00 00 0b 01 80 05
+40: aa 17 1c 20 01 00 00 00 00 00 00 00 00 00 00 00
+50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+80: 01 00 a0 04 00 03 00 00 63 04 63 04 00 00 00 00
+90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+a0: 00 00 00 00 00 00 00 00 00 00 f0 00 00 00 00 00
+b0: 00 00 00 00 00 00 00 b2 00 30 00 00 00 00 00 00
+c0: aa 17 1c 20 00 00 00 00 00 00 00 00 00 00 00 00
+d0: 00 00 00 00 00 00 00 00 00 00 00 00 01 00 0a fe
+e0: 00 40 c0 24 00 00 00 00 00 00 00 00 00 00 00 00
+f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+
+15:00.1 FireWire (IEEE 1394) [0c00]: Ricoh Co Ltd R5C552 IEEE 1394 Controller [1180:0552] (rev 09) (prog-if 10 [OHCI])
+ Subsystem: Lenovo ThinkPad X60s [17aa:201e]
+ Physical Slot: 1
+ Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
+ Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
+ Latency: 64 (500ns min, 1000ns max)
+ Interrupt: pin B routed to IRQ 17
+ Region 0: Memory at e4301000 (32-bit, non-prefetchable) [size=2K]
+ Capabilities: [dc] Power Management version 2
+ Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
+ Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=2 PME+
+ Kernel driver in use: firewire_ohci
+00: 80 11 52 05 06 00 10 02 09 10 00 0c 00 40 80 00
+10: 00 10 30 e4 00 00 00 00 00 00 00 00 00 00 00 00
+20: 00 00 00 00 00 00 00 00 00 00 00 00 aa 17 1e 20
+30: 00 00 00 00 dc 00 00 00 00 00 00 00 0b 02 02 04
+40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+80: 00 80 80 16 00 00 00 00 00 20 00 00 66 66 32 12
+90: 48 60 66 10 00 00 02 00 50 80 00 00 00 01 18 00
+a0: 00 00 00 00 00 00 00 00 20 00 00 00 aa 17 1e 20
+b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 04
+c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+d0: 00 00 00 00 00 00 00 00 00 00 00 00 01 00 02 c8
+e0: 00 c0 00 48 00 00 00 00 00 00 00 00 00 00 00 00
+f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+
+15:00.2 SD Host controller [0805]: Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter [1180:0822] (rev 18)
+ Subsystem: Lenovo ThinkPad X60s [17aa:201d]
+ Physical Slot: 1
+ Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
+ Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
+ Latency: 64
+ Interrupt: pin C routed to IRQ 18
+ Region 0: Memory at e4301800 (32-bit, non-prefetchable) [size=256]
+ Capabilities: [80] Power Management version 2
+ Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0+,D1+,D2+,D3hot+,D3cold+)
+ Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=2 PME-
+ Kernel driver in use: sdhci-pci
+00: 80 11 22 08 06 00 10 02 18 00 05 08 00 40 80 00
+10: 00 18 30 e4 00 00 00 00 00 00 00 00 00 00 00 00
+20: 00 00 00 00 00 00 00 00 00 00 00 00 aa 17 1d 20
+30: 00 00 00 00 80 00 00 00 00 00 00 00 0b 03 00 00
+40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+80: 01 00 02 fe 00 40 00 48 00 00 00 00 00 00 00 00
+90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+a0: 00 00 00 00 00 00 00 00 00 00 00 00 aa 17 1d 20
+b0: 00 00 02 00 00 00 00 00 00 00 00 00 a0 00 00 00
+c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+e0: a1 21 80 01 00 00 00 00 40 00 00 00 00 00 00 00
+f0: 00 00 00 00 00 00 00 00 c3 00 20 02 00 00 00 00
+
diff --git a/docs/future/f2a85m_dmidecode b/docs/future/f2a85m_dmidecode
new file mode 100644
index 00000000..64ff073a
--- /dev/null
+++ b/docs/future/f2a85m_dmidecode
@@ -0,0 +1,686 @@
+
+
+For f2a85 BIOS rev 5103 (an older version):
+
+# dmidecode 2.11
+SMBIOS 2.7 present.
+66 structures occupying 2602 bytes.
+Table at 0x000EB330.
+
+Handle 0x0000, DMI type 0, 24 bytes
+BIOS Information
+ Vendor: American Megatrends Inc.
+ Version: 5103
+ Release Date: 09/19/2012
+ Address: 0xF0000
+ Runtime Size: 64 kB
+ ROM Size: 8192 kB
+ Characteristics:
+ PCI is supported
+ BIOS is upgradeable
+ BIOS shadowing is allowed
+ Boot from CD is supported
+ Selectable boot is supported
+ BIOS ROM is socketed
+ EDD is supported
+ 5.25"/1.2 MB floppy services are supported (int 13h)
+ 3.5"/720 kB floppy services are supported (int 13h)
+ 3.5"/2.88 MB floppy services are supported (int 13h)
+ Print screen service is supported (int 5h)
+ 8042 keyboard services are supported (int 9h)
+ Serial services are supported (int 14h)
+ Printer services are supported (int 17h)
+ ACPI is supported
+ USB legacy is supported
+ BIOS boot specification is supported
+ Targeted content distribution is supported
+ UEFI is supported
+ BIOS Revision: 4.6
+
+Handle 0x0001, DMI type 1, 27 bytes
+System Information
+ Manufacturer: System manufacturer
+ Product Name: System Product Name
+ Version: System Version
+ Serial Number: System Serial Number
+ UUID: 4E5BFAA0-1609-11E0-B25A-50465D90D676
+ Wake-up Type: Power Switch
+ SKU Number: SKU
+ Family: To be filled by O.E.M.
+
+Handle 0x0002, DMI type 2, 15 bytes
+Base Board Information
+ Manufacturer: ASUSTeK COMPUTER INC.
+ Product Name: F2A85-M
+ Version: Rev X.0x
+ Serial Number: 121002909202970
+ Asset Tag: To be filled by O.E.M.
+ Features:
+ Board is a hosting board
+ Board is replaceable
+ Location In Chassis: To be filled by O.E.M.
+ Chassis Handle: 0x0003
+ Type: Motherboard
+ Contained Object Handles: 0
+
+Handle 0x0003, DMI type 3, 22 bytes
+Chassis Information
+ Manufacturer: Chassis Manufacture
+ Type: Desktop
+ Lock: Not Present
+ Version: Chassis Version
+ Serial Number: Chassis Serial Number
+ Asset Tag: Asset-1234567890
+ Boot-up State: Safe
+ Power Supply State: Safe
+ Thermal State: Safe
+ Security Status: None
+ OEM Information: 0x00000000
+ Height: Unspecified
+ Number Of Power Cords: 1
+ Contained Elements: 0
+ SKU Number: To be filled by O.E.M.
+
+Handle 0x0004, DMI type 8, 9 bytes
+Port Connector Information
+ Internal Reference Designator: PS/2 Keyboard/Mouse
+ Internal Connector Type: None
+ External Reference Designator: PS/2 Keyboard/Mouse
+ External Connector Type: PS/2
+ Port Type: Keyboard Port
+
+Handle 0x0005, DMI type 8, 9 bytes
+Port Connector Information
+ Internal Reference Designator: USB34
+ Internal Connector Type: None
+ External Reference Designator: USB34
+ External Connector Type: Access Bus (USB)
+ Port Type: USB
+
+Handle 0x0006, DMI type 8, 9 bytes
+Port Connector Information
+ Internal Reference Designator: SPDIFO
+ Internal Connector Type: None
+ External Reference Designator: SPDIFO
+ External Connector Type: Other
+ Port Type: Other
+
+Handle 0x0007, DMI type 8, 9 bytes
+Port Connector Information
+ Internal Reference Designator: HDMI
+ Internal Connector Type: None
+ External Reference Designator: HDMI port
+ External Connector Type: Other
+ Port Type: Other
+
+Handle 0x0008, DMI type 8, 9 bytes
+Port Connector Information
+ Internal Reference Designator: D-SUB
+ Internal Connector Type: None
+ External Reference Designator: D-SUB port
+ External Connector Type: Other
+ Port Type: Other
+
+Handle 0x0009, DMI type 8, 9 bytes
+Port Connector Information
+ Internal Reference Designator: DVI
+ Internal Connector Type: None
+ External Reference Designator: DVI port
+ External Connector Type: Other
+ Port Type: Other
+
+Handle 0x000A, DMI type 8, 9 bytes
+Port Connector Information
+ Internal Reference Designator: ESATA
+ Internal Connector Type: None
+ External Reference Designator: ESATA
+ External Connector Type: SAS/SATA Plug Receptacle
+ Port Type: SATA
+
+Handle 0x000B, DMI type 8, 9 bytes
+Port Connector Information
+ Internal Reference Designator: USB3_12
+ Internal Connector Type: None
+ External Reference Designator: USB3_12
+ External Connector Type: Access Bus (USB)
+ Port Type: USB
+
+Handle 0x000C, DMI type 8, 9 bytes
+Port Connector Information
+ Internal Reference Designator: LAN
+ Internal Connector Type: None
+ External Reference Designator: LAN
+ External Connector Type: RJ-45
+ Port Type: Network Port
+
+Handle 0x000D, DMI type 8, 9 bytes
+Port Connector Information
+ Internal Reference Designator: USB12
+ Internal Connector Type: None
+ External Reference Designator: USB12
+ External Connector Type: Access Bus (USB)
+ Port Type: USB
+
+Handle 0x000E, DMI type 8, 9 bytes
+Port Connector Information
+ Internal Reference Designator: Audio_Line_In
+ Internal Connector Type: None
+ External Reference Designator: Audio_Line_In
+ External Connector Type: Mini Jack (headphones)
+ Port Type: Audio Port
+
+Handle 0x000F, DMI type 8, 9 bytes
+Port Connector Information
+ Internal Reference Designator: Audio_Line_Out
+ Internal Connector Type: None
+ External Reference Designator: Audio_Line_Out
+ External Connector Type: Mini Jack (headphones)
+ Port Type: Audio Port
+
+Handle 0x0010, DMI type 8, 9 bytes
+Port Connector Information
+ Internal Reference Designator: Audio_Mic_In
+ Internal Connector Type: None
+ External Reference Designator: Audio_Mic_In
+ External Connector Type: Mini Jack (headphones)
+ Port Type: Audio Port
+
+Handle 0x0011, DMI type 8, 9 bytes
+Port Connector Information
+ Internal Reference Designator: Audio_Center/Sub
+ Internal Connector Type: None
+ External Reference Designator: Audio_Center/Sub
+ External Connector Type: Mini Jack (headphones)
+ Port Type: Audio Port
+
+Handle 0x0012, DMI type 8, 9 bytes
+Port Connector Information
+ Internal Reference Designator: Audio_Rear
+ Internal Connector Type: None
+ External Reference Designator: Audio_Rear
+ External Connector Type: Mini Jack (headphones)
+ Port Type: Audio Port
+
+Handle 0x0013, DMI type 8, 9 bytes
+Port Connector Information
+ Internal Reference Designator: Audio_Side
+ Internal Connector Type: None
+ External Reference Designator: Audio_Side
+ External Connector Type: Mini Jack (headphones)
+ Port Type: Audio Port
+
+Handle 0x0014, DMI type 8, 9 bytes
+Port Connector Information
+ Internal Reference Designator: SATA6G_1
+ Internal Connector Type: SAS/SATA Plug Receptacle
+ External Reference Designator: Not Specified
+ External Connector Type: None
+ Port Type: SATA
+
+Handle 0x0015, DMI type 8, 9 bytes
+Port Connector Information
+ Internal Reference Designator: SATA6G_2
+ Internal Connector Type: SAS/SATA Plug Receptacle
+ External Reference Designator: Not Specified
+ External Connector Type: None
+ Port Type: SATA
+
+Handle 0x0016, DMI type 8, 9 bytes
+Port Connector Information
+ Internal Reference Designator: SATA6G_3
+ Internal Connector Type: SAS/SATA Plug Receptacle
+ External Reference Designator: Not Specified
+ External Connector Type: None
+ Port Type: SATA
+
+Handle 0x0017, DMI type 8, 9 bytes
+Port Connector Information
+ Internal Reference Designator: SATA6G_4
+ Internal Connector Type: SAS/SATA Plug Receptacle
+ External Reference Designator: Not Specified
+ External Connector Type: None
+ Port Type: SATA
+
+Handle 0x0018, DMI type 8, 9 bytes
+Port Connector Information
+ Internal Reference Designator: SATA6G_5
+ Internal Connector Type: SAS/SATA Plug Receptacle
+ External Reference Designator: Not Specified
+ External Connector Type: None
+ Port Type: SATA
+
+Handle 0x0019, DMI type 8, 9 bytes
+Port Connector Information
+ Internal Reference Designator: SATA6G_6
+ Internal Connector Type: SAS/SATA Plug Receptacle
+ External Reference Designator: Not Specified
+ External Connector Type: None
+ Port Type: SATA
+
+Handle 0x001A, DMI type 8, 9 bytes
+Port Connector Information
+ Internal Reference Designator: SATA6G_7
+ Internal Connector Type: SAS/SATA Plug Receptacle
+ External Reference Designator: Not Specified
+ External Connector Type: None
+ Port Type: SATA
+
+Handle 0x001B, DMI type 8, 9 bytes
+Port Connector Information
+ Internal Reference Designator: ESATA6G
+ Internal Connector Type: SAS/SATA Plug Receptacle
+ External Reference Designator: Not Specified
+ External Connector Type: None
+ Port Type: SATA
+
+Handle 0x001C, DMI type 8, 9 bytes
+Port Connector Information
+ Internal Reference Designator: USB3_34
+ Internal Connector Type: Access Bus (USB)
+ External Reference Designator: Not Specified
+ External Connector Type: None
+ Port Type: USB
+
+Handle 0x001D, DMI type 8, 9 bytes
+Port Connector Information
+ Internal Reference Designator: USB78
+ Internal Connector Type: Access Bus (USB)
+ External Reference Designator: Not Specified
+ External Connector Type: None
+ Port Type: USB
+
+Handle 0x001E, DMI type 8, 9 bytes
+Port Connector Information
+ Internal Reference Designator: USB910
+ Internal Connector Type: Access Bus (USB)
+ External Reference Designator: Not Specified
+ External Connector Type: None
+ Port Type: USB
+
+Handle 0x001F, DMI type 8, 9 bytes
+Port Connector Information
+ Internal Reference Designator: USB34
+ Internal Connector Type: Access Bus (USB)
+ External Reference Designator: Not Specified
+ External Connector Type: None
+ Port Type: USB
+
+Handle 0x0020, DMI type 8, 9 bytes
+Port Connector Information
+ Internal Reference Designator: USB56
+ Internal Connector Type: Access Bus (USB)
+ External Reference Designator: Not Specified
+ External Connector Type: None
+ Port Type: USB
+
+Handle 0x0021, DMI type 8, 9 bytes
+Port Connector Information
+ Internal Reference Designator: PANEL
+ Internal Connector Type: Other
+ External Reference Designator: Not Specified
+ External Connector Type: None
+ Port Type: Other
+
+Handle 0x0022, DMI type 8, 9 bytes
+Port Connector Information
+ Internal Reference Designator: COM1
+ Internal Connector Type: 9 Pin Dual Inline (pin 10 cut)
+ External Reference Designator: Not Specified
+ External Connector Type: None
+ Port Type: Other
+
+Handle 0x0023, DMI type 8, 9 bytes
+Port Connector Information
+ Internal Reference Designator: SPDIF_OUT
+ Internal Connector Type: Other
+ External Reference Designator: Not Specified
+ External Connector Type: None
+ Port Type: Other
+
+Handle 0x0024, DMI type 8, 9 bytes
+Port Connector Information
+ Internal Reference Designator: AAFP
+ Internal Connector Type: Mini Jack (headphones)
+ External Reference Designator: Not Specified
+ External Connector Type: None
+ Port Type: Audio Port
+
+Handle 0x0025, DMI type 8, 9 bytes
+Port Connector Information
+ Internal Reference Designator: CPU_FAN
+ Internal Connector Type: Other
+ External Reference Designator: Not Specified
+ External Connector Type: None
+ Port Type: Other
+
+Handle 0x0026, DMI type 8, 9 bytes
+Port Connector Information
+ Internal Reference Designator: CHA_FAN
+ Internal Connector Type: Other
+ External Reference Designator: Not Specified
+ External Connector Type: None
+ Port Type: Other
+
+Handle 0x0027, DMI type 8, 9 bytes
+Port Connector Information
+ Internal Reference Designator: PWR_FAN
+ Internal Connector Type: Other
+ External Reference Designator: Not Specified
+ External Connector Type: None
+ Port Type: Other
+
+Handle 0x0028, DMI type 9, 17 bytes
+System Slot Information
+ Designation: PCIEX16_1
+ Type: 32-bit PCI Express
+ Current Usage: In Use
+ Length: Short
+ ID: 1
+ Characteristics:
+ 3.3 V is provided
+ Opening is shared
+ PME signal is supported
+ Bus Address: 0000:00:01.0
+
+Handle 0x0029, DMI type 9, 17 bytes
+System Slot Information
+ Designation: PCIEX1_2
+ Type: 32-bit PCI Express
+ Current Usage: In Use
+ Length: Short
+ ID: 2
+ Characteristics:
+ 3.3 V is provided
+ Opening is shared
+ PME signal is supported
+ Bus Address: 0000:00:1c.4
+
+Handle 0x002A, DMI type 9, 17 bytes
+System Slot Information
+ Designation: PCI1
+ Type: 32-bit PCI
+ Current Usage: In Use
+ Length: Short
+ ID: 3
+ Characteristics:
+ 3.3 V is provided
+ Opening is shared
+ PME signal is supported
+ Bus Address: 0000:00:1c.6
+
+Handle 0x002B, DMI type 9, 17 bytes
+System Slot Information
+ Designation: PCIEX16_2
+ Type: 32-bit PCI Express
+ Current Usage: In Use
+ Length: Short
+ ID: 4
+ Characteristics:
+ 3.3 V is provided
+ Opening is shared
+ PME signal is supported
+ Bus Address: 0000:00:01.0
+
+Handle 0x002C, DMI type 10, 10 bytes
+On Board Device 1 Information
+ Type: Video
+ Status: Enabled
+ Description: To Be Filled By O.E.M.
+On Board Device 2 Information
+ Type: Ethernet
+ Status: Enabled
+ Description: To Be Filled By O.E.M.
+On Board Device 3 Information
+ Type: Sound
+ Status: Enabled
+ Description: To Be Filled By O.E.M.
+
+Handle 0x002D, DMI type 11, 5 bytes
+OEM Strings
+ String 1: To Be Filled By O.E.M.
+
+Handle 0x002E, DMI type 12, 5 bytes
+System Configuration Options
+ Option 1: To Be Filled By O.E.M.
+
+Handle 0x002F, DMI type 16, 23 bytes
+Physical Memory Array
+ Location: System Board Or Motherboard
+ Use: System Memory
+ Error Correction Type: None
+ Maximum Capacity: 8 GB
+ Error Information Handle: Not Provided
+ Number Of Devices: 4
+
+Handle 0x0030, DMI type 19, 31 bytes
+Memory Array Mapped Address
+ Starting Address: 0x00000000000
+ Ending Address: 0x003FFFFFFFF
+ Range Size: 16 GB
+ Physical Array Handle: 0x002F
+ Partition Width: 255
+
+Handle 0x0031, DMI type 17, 34 bytes
+Memory Device
+ Array Handle: 0x002F
+ Error Information Handle: Not Provided
+ Total Width: 64 bits
+ Data Width: 64 bits
+ Size: 4096 MB
+ Form Factor: DIMM
+ Set: None
+ Locator: DIMM_A1
+ Bank Locator: A1_BANK0
+ Type: DDR3
+ Type Detail: Synchronous Unbuffered (Unregistered)
+ Speed: 800 MHz
+ Manufacturer: Undefined
+ Serial Number: 00000000
+ Asset Tag: A1_AssetTagNum1
+ Part Number: F3-17000CL11-4GBXL
+ Rank: 2
+ Configured Clock Speed: Unknown
+
+Handle 0x0032, DMI type 20, 35 bytes
+Memory Device Mapped Address
+ Starting Address: 0x00000000000
+ Ending Address: 0x000FFFFFFFF
+ Range Size: 4 GB
+ Physical Device Handle: 0x0031
+ Memory Array Mapped Address Handle: 0x0030
+ Partition Row Position: 1
+
+Handle 0x0033, DMI type 17, 34 bytes
+Memory Device
+ Array Handle: 0x002F
+ Error Information Handle: Not Provided
+ Total Width: 64 bits
+ Data Width: 64 bits
+ Size: 4096 MB
+ Form Factor: DIMM
+ Set: None
+ Locator: DIMM_A2
+ Bank Locator: A1_BANK1
+ Type: DDR3
+ Type Detail: Synchronous Unbuffered (Unregistered)
+ Speed: 800 MHz
+ Manufacturer: Undefined
+ Serial Number: 00000000
+ Asset Tag: A1_AssetTagNum0
+ Part Number: F3-17000CL11-4GBXL
+ Rank: 2
+ Configured Clock Speed: 39335 MHz
+
+Handle 0x0034, DMI type 20, 35 bytes
+Memory Device Mapped Address
+ Starting Address: 0x00100000000
+ Ending Address: 0x001FFFFFFFF
+ Range Size: 4 GB
+ Physical Device Handle: 0x0033
+ Memory Array Mapped Address Handle: 0x0030
+ Partition Row Position: 1
+
+Handle 0x0035, DMI type 17, 34 bytes
+Memory Device
+ Array Handle: 0x002F
+ Error Information Handle: Not Provided
+ Total Width: 64 bits
+ Data Width: 64 bits
+ Size: 4096 MB
+ Form Factor: DIMM
+ Set: None
+ Locator: DIMM_B1
+ Bank Locator: A1_BANK2
+ Type: DDR3
+ Type Detail: Synchronous Unbuffered (Unregistered)
+ Speed: 800 MHz
+ Manufacturer: Undefined
+ Serial Number: 00000000
+ Asset Tag: A1_AssetTagNum2
+ Part Number: F3-17000CL11-4GBXL
+ Rank: 2
+ Configured Clock Speed: Unknown
+
+Handle 0x0036, DMI type 20, 35 bytes
+Memory Device Mapped Address
+ Starting Address: 0x00200000000
+ Ending Address: 0x002FFFFFFFF
+ Range Size: 4 GB
+ Physical Device Handle: 0x0035
+ Memory Array Mapped Address Handle: 0x0030
+ Partition Row Position: 1
+
+Handle 0x0037, DMI type 17, 34 bytes
+Memory Device
+ Array Handle: 0x002F
+ Error Information Handle: Not Provided
+ Total Width: 64 bits
+ Data Width: 64 bits
+ Size: 4096 MB
+ Form Factor: DIMM
+ Set: None
+ Locator: DIMM_B2
+ Bank Locator: A1_BANK3
+ Type: DDR3
+ Type Detail: Synchronous Unbuffered (Unregistered)
+ Speed: 800 MHz
+ Manufacturer: Undefined
+ Serial Number: 00000000
+ Asset Tag: A1_AssetTagNum3
+ Part Number: F3-17000CL11-4GBXL
+ Rank: 2
+ Configured Clock Speed: 1 MHz
+
+Handle 0x0038, DMI type 20, 35 bytes
+Memory Device Mapped Address
+ Starting Address: 0x00300000000
+ Ending Address: 0x003FFFFFFFF
+ Range Size: 4 GB
+ Physical Device Handle: 0x0037
+ Memory Array Mapped Address Handle: 0x0030
+ Partition Row Position: 1
+
+Handle 0x0039, DMI type 32, 20 bytes
+System Boot Information
+ Status: No errors detected
+
+Handle 0x003A, DMI type 41, 11 bytes
+Onboard Device
+ Reference Designation: Onboard IGD
+ Type: Video
+ Status: Enabled
+ Type Instance: 1
+ Bus Address: 0000:00:02.0
+
+Handle 0x003B, DMI type 41, 11 bytes
+Onboard Device
+ Reference Designation: Onboard LAN
+ Type: Ethernet
+ Status: Enabled
+ Type Instance: 1
+ Bus Address: 0000:00:19.0
+
+Handle 0x003C, DMI type 41, 11 bytes
+Onboard Device
+ Reference Designation: Onboard 1394
+ Type: Other
+ Status: Enabled
+ Type Instance: 1
+ Bus Address: 0000:03:1c.2
+
+Handle 0x003D, DMI type 7, 19 bytes
+Cache Information
+ Socket Designation: L1 CACHE
+ Configuration: Enabled, Not Socketed, Level 1
+ Operational Mode: Write Back
+ Location: Internal
+ Installed Size: 192 kB
+ Maximum Size: 192 kB
+ Supported SRAM Types:
+ Pipeline Burst
+ Installed SRAM Type: Pipeline Burst
+ Speed: 1 ns
+ Error Correction Type: Multi-bit ECC
+ System Type: Unified
+ Associativity: 2-way Set-associative
+
+Handle 0x003E, DMI type 7, 19 bytes
+Cache Information
+ Socket Designation: L2 CACHE
+ Configuration: Enabled, Not Socketed, Level 2
+ Operational Mode: Write Back
+ Location: Internal
+ Installed Size: 4096 kB
+ Maximum Size: 4096 kB
+ Supported SRAM Types:
+ Pipeline Burst
+ Installed SRAM Type: Pipeline Burst
+ Speed: 1 ns
+ Error Correction Type: Multi-bit ECC
+ System Type: Unified
+ Associativity: 16-way Set-associative
+
+Handle 0x0047, DMI type 4, 42 bytes
+Processor Information
+ Socket Designation: FM2
+ Type: Central Processor
+ Family: <OUT OF SPEC>
+ Manufacturer: AuthenticAMD
+ ID: 31 0F 61 00 FF FB 8B 17
+ Version: AMD A10-6800K APU with Radeon(tm) HD Graphics
+ Voltage: 1.3 V
+ External Clock: 100 MHz
+ Max Speed: 4100 MHz
+ Current Speed: 4100 MHz
+ Status: Populated, Enabled
+ Upgrade: <OUT OF SPEC>
+ L1 Cache Handle: 0x003D
+ L2 Cache Handle: 0x003E
+ L3 Cache Handle: Not Provided
+ Serial Number: Not Specified
+ Asset Tag: Not Specified
+ Part Number: Not Specified
+ Core Count: 4
+ Core Enabled: 4
+ Thread Count: 4
+ Characteristics:
+ 64-bit capable
+
+Handle 0x0048, DMI type 13, 22 bytes
+BIOS Language Information
+ Language Description Format: Long
+ Installable Languages: 8
+ en|US|iso8859-1
+ fr|FR|iso8859-1
+ es|ES|iso8859-1
+ de|DE|iso8859-1
+ ru|RU|iso8859-5
+ ja|JP|unicode
+ zh|TW|unicode
+ zh|CN|unicode
+ Currently Installed Language: en|US|iso8859-1
+
+Handle 0x0049, DMI type 127, 4 bytes
+End Of Table
+
+
diff --git a/docs/future/gnutoo_fallback_patch b/docs/future/gnutoo_fallback_patch
new file mode 100644
index 00000000..50af7798
--- /dev/null
+++ b/docs/future/gnutoo_fallback_patch
@@ -0,0 +1,182 @@
+<GNUtoo-irssi> I documented it
+<GNUtoo-irssi> but I should update the page
+<GNUtoo-irssi> somehow it works without any but one of my extra patches
+<GNUtoo-irssi> but it has 1 small issue
+<phcoder-1creen> GNUtoo-irssi: do you need review on those? I think that sth like it could save me countless external reflashs
+<GNUtoo-irssi> phcoder-1creen: well, most of them are unnecessary now
+<GNUtoo-irssi> 1 patch is usefull only for improving code readability of existing coreboot code
+<GNUtoo-irssi> 1 patch is only changing the reboot count of the fallback mecanism
+<GNUtoo-irssi> beside that I see nothing remaining
+<GNUtoo-irssi> but I can check again
+<GNUtoo-irssi> I have to do it now
+<GNUtoo-irssi> The documentation is on the wiki
+<GNUtoo-irssi> caveats:
+<GNUtoo-irssi> 1) sometimes the x60 reboots twice,
+<GNUtoo-irssi> for instance if you run poweroff, then let it power down, and as soon as it seems powered down, you press the power button
+<GNUtoo-irssi> in that case it will do a reset
+<GNUtoo-irssi> 2) suspend/resume and userspace needs some handling, I've systemd units for booting only, but not for suspend/resume
+<GNUtoo-irssi> but you can do it by hand
+<GNUtoo-irssi> config MAX_REBOOT_CNT
+<GNUtoo-irssi> <tab>int
+<GNUtoo-irssi> <tab>default 1
+<GNUtoo-irssi> that's what I added in src/mainboard/lenovo/x60/Kconfig
+<GNUtoo-irssi> before I had a patch to make it selectable it in Kconfig,
+<GNUtoo-irssi> that is to say the user enter the max reboot count he wants
+<GNUtoo-irssi> I think the global default is 3
+<GNUtoo-irssi> Then I've some other interesting patches
+<GNUtoo-irssi> I wonder if they're acceptable
+<GNUtoo-irssi> one patch is for adding etc/grub.cfg from Kconfig
+<GNUtoo-irssi> Use case: the user builds once, he do ./build/cbfstool ./build/coreboot.rom add -n etc/grub.cfg -f grub.cfg -t raw
+<GNUtoo-irssi> but he re-do make
+<GNUtoo-irssi> and forgett to re-add grub.cfg
+<GNUtoo-irssi> it's just a convenience
+<GNUtoo-irssi> (he could do it with a script too)
+<GNUtoo-irssi> *he/she
+<GNUtoo-irssi> I guess the user is a she in english?
+<GNUtoo-irssi> en french it's a he
+<GNUtoo-irssi> I've also a flashrom patch to submit
+<GNUtoo-irssi> phcoder-1creen: "it could save me countless external reflashs" => that was exactly my use case
+<GNUtoo-irssi> There are some other interesting stuff that could extend the use case:
+<GNUtoo-irssi> there is a flash log for the chromebooks
+<GNUtoo-irssi> example use case: you go to a conference in the USA, you are in the plane
+<GNUtoo-irssi> you then continue developing there, you reflash etc...
+<GNUtoo-irssi> but then you need the log of the failed boot somehow
+<GNUtoo-irssi> the flash log (which is in coreboot but require CONFIG_CHROMEOS or something like that) could help with that second use case
+<GNUtoo-irssi> Else the logs in RAM + a watchdog could also do the trick
+<GNUtoo-irssi> *hardware watchdog
+<GNUtoo-irssi> so that second approach of the second use case would just require some modifications related to cbmem
+<GNUtoo-irssi> they may already be there, because I'm way out of the loop
+<GNUtoo-irssi> I'll make a list of the interesting patches I have locally
+<GNUtoo-irssi> and look at gerrit too
+<GNUtoo-irssi> btw, is there some easy infrastructure work to do?
+<GNUtoo-irssi> like something that can be done on the side
+* ttyS3 has quit (Ping timeout: 264 seconds)
+<GNUtoo-irssi> The x60[s/t], T60(with intel GPUs), are mostly complete, the main issue remaining is merging that improved GPU init code
+<GNUtoo-irssi> fallback/ is mostly merged but that one patch I was talking about
+<GNUtoo-irssi> then I guess the ACPI part was merged
+<GNUtoo-irssi> I'm unsure about the IRDA
+<GNUtoo-irssi> I mostly test on x60t nowadays
+<GNUtoo-irssi> (my t60 has a nasty bug with ctrl+d, probably ec related)
+<GNUtoo-irssi> I've also to look about the security of the I/Os
+<GNUtoo-irssi> (like what's on the dock connector)
+<GNUtoo-irssi> there is also the license issue of the microcodes inside the headers
+<GNUtoo-irssi> I'll add all that in the wiki
+<phcoder-1creen> GNUtoo-irssi: did you test digitizer?
+<GNUtoo-irssi> yes
+<GNUtoo-irssi> works well with libreboot 6 beta3 patches on top of coreboot git
+<GNUtoo-irssi> I use it often
+<GNUtoo-irssi> with xournal mainly
+<GNUtoo-irssi> I've been in a local shop and I've found a compatilble wacom pen: it has:
+<GNUtoo-irssi> touch, button(right click), eraser
+<GNUtoo-irssi> all do work
+<GNUtoo-irssi> the pen is not the x60 pen, but it does work fine
+<phcoder-1creen> digitizer patches are already in
+<GNUtoo-irssi> The screen's directional keys the its middle key work
+<GNUtoo-irssi> yes
+<GNUtoo-irssi> I'll update soon
+<GNUtoo-irssi> I'll probably sumarize the patch I've left in the wiki
+<GNUtoo-irssi> and update that fallback page
+<GNUtoo-irssi> phcoder-1creen: is the IRDA supposed to work?
+<phcoder-1creen> GNUtoo-irssi: 5243
+<phcoder-1creen> T60, rght?
+* KidBeta has quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
+<GNUtoo-irssi> x60 and x60t
+<GNUtoo-irssi> oops
+<GNUtoo-irssi> x60t and t60
+<GNUtoo-irssi> I'll test them together, I was trying lirc instead directlyt
+<phcoder-1creen> 5242 for X60
+<GNUtoo-irssi> ok
+<GNUtoo-irssi> thanks
+<phcoder-1creen> GNUtoo-irssi: did you see x200 port?
+<GNUtoo-irssi> yes
+<GNUtoo-irssi> what CPU is it?
+<GNUtoo-irssi> and what chipset?
+<phcoder-1creen> gm45. Intel GPU
+<GNUtoo-irssi> ok
+<GNUtoo-irssi> I've looked at your new ports and related,
+<GNUtoo-irssi> it probably cover the chipset I have in my N71JQ
+<GNUtoo-irssi> but I probably don't have time to do the port anytime soon
+<phcoder-1creen> gm45 was already covered by rk9
+<GNUtoo-irssi> yes
+<GNUtoo-irssi> it's core 2 duo with the first AMT in the NICs, right?
+<GNUtoo-irssi> and 64bit?
+<phcoder-1creen> it's 64bit. I can't tell anything about AMT.
+<GNUtoo-irssi> so I guess that if someone unsolder his nic firmware flash, the AMT is gone?
+<GNUtoo-irssi> ok
+<GNUtoo-irssi> if so that's probably a good tradeoff
+<GNUtoo-irssi> you get more recent laptops at the cost of unsoldering or blanking the NIC's flash
+<phcoder-1creen> ME firmware is in the flash chip. There is information that on gm45 you can remove ME firmware without any consequences but I din't really try
+<GNUtoo-irssi> assuming it's like with the old i945 laptops
+<GNUtoo-irssi> ok, wow, nice
+<GNUtoo-irssi> how fast is it in between the T60's and the Nehalem's laptops(x201)
+<phcoder-1creen> roda rk9 runs without ME firmware AFACIT
+<GNUtoo-irssi> ok
+<GNUtoo-irssi> about roda and so on, there isn't a lot of infos on the rugged laptops
+<GNUtoo-irssi> I guess that nobody still test on them
+<phcoder-1creen> No. But the list of connectors they have is truly impressive. As is battery capacity and heaviness.
+<GNUtoo-irssi> indeed
+<GNUtoo-irssi> it probably has lot of interesting peripherals too, like GPS, 3g modem(how is it connected?) and so on
+<GNUtoo-irssi> for the heavyness, it's a way to make geeks become like rambo?
+<GNUtoo-irssi> s/geeks/geeks and nerds
+<phcoder-1creen> 3g modems are optional. I guess it's minipcie slot.
+<phcoder-1creen> BTW x200 has 3 minipcie slots
+<GNUtoo-irssi> wow
+<phcoder-1creen> (not counting exprecsscard)
+<GNUtoo-irssi> ok
+<GNUtoo-irssi> that permits to have 2 wifi cards...
+<phcoder-1creen> if driver can handle it, sure. When I tried with 2 intel cards, intel drivers and networkmanager got confused.
+<GNUtoo-irssi> (ath9k/ath5k have some difficulties when creating multiples interfaces when WPA is involved)
+<GNUtoo-irssi> ok
+<phcoder-1creen> 3rd minipcie was intended for UWB.
+<GNUtoo-irssi> well, I have multiples cards easily here
+<GNUtoo-irssi> I never had a problem with non-intel cards
+<phcoder-1creen> network manager will still get confused
+<GNUtoo-irssi> example: ath9k + ath9k_htc => both interfaces appear in kde's network manager GUI
+<GNUtoo-irssi> it was getting confused with intel cards and rfkill
+<GNUtoo-irssi> (and I lacked the fimrware of the intel cards...so that added to the confusion)
+<GNUtoo-irssi> Example use case: connect to 2 different AP on 2 different networks
+<phcoder-1creen> yes network manager and multiple cards and rfkill resultsin confusion
+<GNUtoo-irssi> my ath9k_htc is usb
+<GNUtoo-irssi> so no hardware rfkill
+<GNUtoo-irssi> btw, the mini-pcie connectors do export only pci?
+<GNUtoo-irssi> do they export usb, and sata?
+<GNUtoo-irssi> (and some other pins for rfkill, SIM card, and so on)
+
+
+
+
+
+
+
+<GNUtoo-irssi> ok
+<GNUtoo-irssi> well, I must update the instructions
+<GNUtoo-irssi> I was going trough the list of patches I had first
+<GNUtoo-irssi> yes
+<GNUtoo-irssi> but to a specific/personal page
+<fchmmr> could you link me to the updated instructions? (when done)
+<GNUtoo-irssi> well, I'll update them first
+<GNUtoo-irssi> I was going trough my patches list before that
+<GNUtoo-irssi> so I'll do that now
+<fchmmr> So I gather that you basically reset the counter yourself after you boot (after typing grub password)
+<fchmmr> and so, if you boot and the counter is higher, you know if someone tried to use it
+<GNUtoo-irssi> yes, my systemd unit does it
+<GNUtoo-irssi> *resets it
+<GNUtoo-irssi> so it works like that:
+<GNUtoo-irssi> the bootblock switch from normal/ to fallback if the counter is > CONFIG_MAX_REBOOT_CNT
+<GNUtoo-irssi> if no normal/ is there it also switch to fallback/
+<GNUtoo-irssi> and then it increments the counter
+<GNUtoo-irssi> (it's badly explained by me but you get the idea)
+<GNUtoo-irssi> then my systemd units reset the counter to 0 once it's fully booted
+<GNUtoo-irssi> that way if it fails, let's say at booting any linux kernel, then the user won't have bricked the laptop
+<GNUtoo-irssi> (and the developer will have saved lot of time)
+<GNUtoo-irssi> the issue is that I didn't reset the counter at resume
+<GNUtoo-irssi> I should look how
+<GNUtoo-irssi> but at least that makes it developer friendly if the user don't have suspend-resume covered yet
+<GNUtoo-irssi> testing images is then a lot faster
+<GNUtoo-irssi> and for "production", only fallback/ populated, but with the mecanism in place
+<GNUtoo-irssi> that way he can test normal/ easily
+
+
+
+
+
diff --git a/docs/future/index.html b/docs/future/index.html
index 3eee4f7e..0bdabf49 100644
--- a/docs/future/index.html
+++ b/docs/future/index.html
@@ -24,7 +24,7 @@
<header>
<h1 id="pagetop">Development notes</h1>
- <aside>These are development notes, for future use.</aside>
+ <aside>These are development notes, for future use. For old (obselete) notes, see <a href="old.html">old.html</a>.</aside>
</header>
<p>
@@ -41,10 +41,6 @@
<li><a href="#fastboot">Fast boot</a></li>
<li><a href="#lcd_i945_incompatibility">LCD panels on i945 - fix incompatible panels</a></li>
<li><a href="#blind_x60">Blind X60 - kernel git bisect</a></li>
- <li><a href="#x60_native_notes">X60 native graphics initialization (backlight controls)</a></li>
- <li><a href="#t60_native_notes">T60 native graphics initialization (backlight controls)</a></li>
- <li><a href="#5320_kernel312fix">i945: 3D fix (based on 5927) for kernel 3.12+ on 5320</a></li>
- <li><a href="#x60_cb5927_testing">i945/x60: coreboot 5927 testing (3D fix for kernel 3.12+ on replay code)</a></li>
<li><a href="#i945_vbt">i945 X60/T60 VBT implementation (experimental: testing)</a></li>
<li><a href="#intelvbttool_results">IntelVbtTool results</a></li>
<li><a href="#cpu_cstates_buzzing">CPU c-states (X60/T60) buzzing sound on CPU idle</a></li>
@@ -53,33 +49,6 @@
<hr/>
- <h1 id="todo">TODO (bold means high priority)</h1>
- <ul>
- <li>
- <b><a href="#intelvbttool_results">#intelvbttool_results</a>: Finish getting runningvga.bin dumps and intelvbttool dumps for all known targets on X60 and T60.</b>
- <ul>
- <li>Figure out why 15" T60 with 1024x768 panel doesn't work on native graphics initialization. And fix it (implementing VBT might, also understanding how
- to correctly interpret EDID, according to phcoder and damo22).</li>
- <li><b><a href="#i945_vbt">#i945_vbt</a>: Finish getting results when running native init and loading (but not executing) the VBIOS option ROM.</b></li>
- <li>When VBT is implemented/tested, also test SeaVGABIOS (part of SeaBIOS)</li>
- </ul>
- </li>
- <li>test that patch (DYNAMIC_CBMEM, <a href="http://review.coreboot.org/#/c/6036">http://review.coreboot.org/#/c/6036</a>) on X60 and T60 for kmalkki</li>
- <li>Further study how backlight controls work</li>
- <li>funfunctor (from coreboot IRC) wants me to try building libreboot/coreboot on X60 with clang/llvm because he says there are some issues where boards fail when built with this: fchmmr: well you will need to compile the latest clang, here are some instructions: https://gist.github.com/victoredwardocallaghan/38689e88dd7b9a439468 and also: funfunctor: fchmmr: you will need the latest coreboot code and http://review.coreboot.org/#/c/5814/ to get clang to build whatever board. also! <br/><br/>
-
- fchmmr: see this topic http://review.coreboot.org/#/q/status:open+project:coreboot+branch:master+topic:clang-fixes,n,z you will need those fixes to get anywhere with building t60/x60 with clang. at the time of writing that was 6122/1, 6121/1, 6120/1 and 6119/1<br/><br/>
-
- fchmmr: its unclear if http://review.coreboot.org/#/c/6129/ has uncovered a bug yet or not..fchmmr: well this was a bug spotted http://review.coreboot.org/#/c/6052/<br/><br/>
-
- funfunctor says X60 (not sure about T60) ROM's can now be built with Clang/LLVM</li>
- <li>Investigate <a href="#battery_eventc">#battery_eventc</a>.</li>
- </ul>
-
- <p><a href="#pagetop">Back to top of page</a></p>
-
-<hr/>
-
<h1 id="standard_test">standard test</h1>
<p>
These logs are usually obtained when testing changes related to graphics on i945 (X60 and T60).
@@ -289,199 +258,6 @@
<hr/>
- <h1 id="x60_native_notes">X60 native graphics initialization (with backlight controls)</h1>
- <p>
- <b><i>Also check <a href="#5320_kernel312fix">#5320_kernel312fix</a> (to fix 3D on kernel 3.12/higher)</i></b>
- </p>
- <p>
- <b>The fix below was done on 5320/6 (from review.coreboot.org) but should work just fine on later versions of 5320.</b>
- </p>
- <p>
- Native gpu init + backlight controls! (Fn keys). Also confirmed on X60 Tablet (1024x768) and X60 Tablet (1400x1050)
- </p>
- <p>
- <b>Add backlight controls:</b> in <i>src/mainboard/lenovo/x60/devicetree.cb</i>, change <b>gpu_backlight</b> to <b>0x879F879E</b>
- </p>
- <p>
- That's all! <b>This has also been backported into libreboot 5th release (line 1233 in src/mainboard/lenovo/x60/i915io.c)</b>. GNUtoo (Denis Carikli)
- told me about the register <b>BLC_PWM_CTL</b> and that you could set it to control backlight. I read that address using devmem2 while running the VBIOS:<br/>
- <b># devmem2 0xe4361254 w</b>
- </p>
- <p>
- The change is also included in libreboot 6.
- </p>
- <p>
- When doing this, it gave back that value. The same trick was used to get backlight controls for T60 (see <a href="#t60_native_notes">#t60_native_notes</a>).
- </p>
-
- <h2>Further notes</h2>
- <p>
- Reading <b>0xe4361254</b> (address) in Lenovo BIOS always yields FFFFFFFF, even when writing to it (and writing to it doesn't affect brightness controls).
- 'mtjm' on IRC found that the buttons (Fn keys) control /sys/class/backlight/acpi_video0 which has no affect on 61254 (BLC_PWM_CTL). He says
- intel_backlight has different values and uses the register. devmem2 works, needs checking <b>lspci -vv</b> for where the memory is mapped,
- which is different than on coreboot; mtjm found that it was 0xec061254 on his machine (X60 Tablet), and the register value is different too.
- <b>This is relevant, because we still don't know how backlight controls are actually handled. We got it working by accident. We need to know more.</b>.
- </p>
- <p>
- Intel-gpu-tools may prove useful for further debugging: <a href="http://cgit.freedesktop.org/xorg/app/intel-gpu-tools/">http://cgit.freedesktop.org/xorg/app/intel-gpu-tools/</a>
- </p>
- <p>
- mtjm says 0xe4300000 is an MMIO region of the gpu (lspci -vv shows it), 0x61254 (BLC_PWM_CTL) is a documented register. Searching the kernel driver for backlight
- shows that in intel_panel.c this register is used (there is an XXX comment about finding the right value, where recent kernels get it from.
- </p>
- <p>
- What we want to do is calculate a good value, instead of setting it in devicetree.cb. mtjm says about backlight physics:
- it has a light source , uses pulse width modulation (PWM) to turn it on/off, dimming is done by spending less time on.
- <b>Note: this may not be correct; he says his understanding is based on how the Lenote yeeloong works</b>.
- </p>
- <p>
- mtjm goes on to say, that the register specifies the frequency used for PWM in its depending on the GPU core frequency, so it
- might be possible to calculate it without hardcoded laptop-specific values. Therefore, I am supposed to find out the 'display core frequency'
- (mtjm says there might be a register for it; also, it might be in 5320 or the replay code) and the PWM modulation frequency.
- https://en.wikipedia.org/wiki/Backlight#Flicker_due_to_backlight_dimming
- </p>
- <p>
- phcoder (Vladimir Serbinenko) who is author of 5320 (review.coreboot.org) talks about 'duty cycle limit' and 'flickering frequency'.
- </p>
-
- <p><a href="#pagetop">Back to top of page</a></p>
-
-<hr/>
-
- <h1 id="t60_native_notes">T60 native graphics initialization (with backlight controls)</h1>
- <p>
- <b><i>Also check <a href="#5320_kernel312fix">#5320_kernel312fix</a> (to fix 3D on kernel 3.12/higher)</i></b>
- </p>
- <p>
- <b>The fix below was done on an earlier version of 5345 changeset (review.coreboot.org), but should work on the current version. it is included in libreboot 6</b>
- </p>
- <p>
- <b>Add backlight controls:</b> in <i>src/mainboard/lenovo/t60/devicetree.cb</i>, change <b>gpu_backlight</b> to <b>0x58BF58BE</b>
- </p>
- <p>
- Hold on! Check <a href="../index.html#get_edid_panelname">../index.html#get_edid_panelname</a> to know what LCD panel you have. This is important for the next step!
- </p>
-
- <h2>Supported panels</h2>
- <p>
- <a href="../index.html#supported_t60_list">../index.html#supported_t60_list</a>.
- </p>
-
- <p>
- See <a href="#lcd_i945_incompatibility">#lcd_i945_incompatibility</a>.
- </p>
-
- <p><a href="#pagetop">Back to top of page</a></p>
-
-<hr/>
-
- <h1 id="5320_kernel312fix">i945: 3D fix (based on 5927) for kernel 3.12+ on 5320</h1>
-
- <p><b>This needs to be rewritten (or better organized, or deleted?)</b>. This is also now included in libreboot 6 (using the proper way, not the 7c0000 method which was a hack)</p>
-
- <p>
- <b>This was done on 5320/6 so far. The fix below is for 5320/6 which is now obsolete. This needs to be re-done for the latest version
- of 5320. The fix below is (in practise) only for reference, therefore.</b>
- </p>
-
- <p>
- See <a href="#x60_cb5927_testing">#x60_cb5927_testing</a> for the original (and current) fix, for the replay code. Now we want
- to implement that on top of <a href="http://review.coreboot.org/#/c/5320">http://review.coreboot.org/#/c/5320</a>
- which is the current code for native graphics initialization on i945.
- </p>
-
- <p>
- src/northbridge/intel/i945/gma.c (using the 7c0000 hack) on 5320: <a href="dumps/5320_7c0000_gma.c">5320_7c0000_gma.c</a> (rename it to gma.c,
- replacing the current one).
- </p>
-
- <p>
- The above is a hack (as is the original). A better (more correct) method is implemented in later versions of 5927, so
- that should also be adapted for 5320. For now, you can use the above fix.
- </p>
-
- <p>
- The correct way to do it is to set gtt address to (end of stolen memory - gtt size), which is what later versions of 5927 do (successfully).
- </p>
-
- <p>
- Here is some debugging output using intel_gpu_tools v1.2-1 (from trisquel repositories) using tool "intel_gtt":
- </p>
-
- <ul>
- <li>
- Trisquel 6. kernel 3.14.4:
- <ul>
- <li>with libreboot 5th release (using the 7c0000 gtt hack from 5927/3): <a href="http://paste.debian.net/104306">http://paste.debian.net/104306</a></li>
- <li>with coreboot+vgarom: <a href="http://paste.debian.net/104309">http://paste.debian.net/104309</a></li>
- </ul>
- </li>
- <li>
- Trisquel 6. kernel 3.2.0-60 (from Trisquel repositories):
- <ul>
- <li>with coreboot (no vbios or native init): <a href="http://paste.debian.net/104341">http://paste.debian.net/104341</a></li>
- </ul>
- </li>
- </ul>
-
- <p><a href="#pagetop">Back to top of page</a></p>
-
-<hr/>
-
- <h1 id="x60_cb5927_testing">i945/X60: Coreboot 5927 testing (3D fix for kernel 3.12+ on replay code)</h1>
-
- <p><b>The latest version as-is (5927/11) has not been tested by me yet. Always boot with 'drm.debug=0x06' kernel parameter when testing this.</b></p>
-
- <p>
- This is the fix for 3D on kernel 3.12 and higher on i945 (ThinkPad X60 in this case). This is for the replay code.
- Libreboot 5th release has a version of this backported already (based on 5927/3 using the '7c0000' hack).
- </p>
-
- <p>
- <b>
- The replay code is obsolete (see 5320 changeset on review.coreboot.org for better version
- which supports more machines/screens, and then 5345 for T60). Information here for reference since that is where the fix was first applied.
- </b>
- </p>
-
- <p>
- Read the information on <a href="http://review.coreboot.org/#/c/5927/">http://review.coreboot.org/#/c/5927/</a>.
- </p>
-
- <p>
- For historical purposes, here is a collection of IRC logs that once existed on this page, related to the issue:
- <a href="dumps/kernel312_irc">kernel312_irc</a>.
- </p>
-
- <p>
- PGETBL_CTL differs between VBIOS (-) and native graphics init (+).<br/>
-
- - PGETBL_CTL: 0x3ffc0001<br/>
- + PGETBL_CTL: 0x3f800001
- </p>
-
- <p>GTT (graphics translation table) size is PGETBL_save, max 256 KiB. BSM (Base of Stolen Memory) is given by the bios.</p>
-
- <ul>
- <li>5927/7: <a href="dumps/5927_7.tar.gz">5927_7.tar.gz</a> (GRUB graphics are correct now, and 3D still works)</li>
- <li>5927/6: <a href="dumps/5927_6.tar.gz">5927_6.tar.gz</a> (GRUB graphics still corrupt, 3D/everything still works after GRUB)</li>
- <li>5927/5: <a href="dumps/5927_5.tar.gz">5927_5.tar.gz</a> (GRUB graphics corrupt, 3D/everything still works after GRUB)</li>
- <li>5927/3: <a href="dumps/5927_3.tar.gz">5927_3.tar.gz</a> (3D still works! kernel 3.14.4) - the '7c0000' hack</li>
- <li>5927/2: <a href="dumps/5927_2.tar.gz">5927_2.tar.gz</a> (3D works! kernel 3.14.4) - the '7c0000' hack</li>
- <li>
- 5927/1 (didn't fix the 3D issue):
- <ul>
- <li><a href="dumps/5927_cbmemc">cbmem -c</a></li>
- <li><a href="dumps/5927_crashdump">/sys/class/drm/card0/error</a></li>
- <li><a href="dumps/5927_config">.config</a></li>
- </ul>
- </li>
- </ul>
-
- <p><a href="#pagetop">Back to top of page</a></p>
-
-<hr/>
-
<h1 id="i945_vbt">i945 gfx: X60/T60 VBT implementation (experimental: testing)</h1>
<p>
intel_bios_dumper (use man) in intel-gpu-tools seems interesting.
@@ -802,9 +578,18 @@
<a href="#pagetop">Back to top of page.</a>
</p>
+<hr/>
+
+ <p>
+ Copyright &copy; 2014 Francis Rowe &lt;info@gluglug.org.uk&gt;<br/>
+ This document is released under the Creative Commons Attribution-ShareAlike 4.0 International Public License and all future versions.
+ A copy of the license can be found at <a href="../license.txt">../license.txt</a>.
+ </p>
+
<p>
- Copyright &copy; 2014 Francis Rowe, All Rights Reserved.<br/>
- See <a href="../license.html">../license.html</a> for license conditions.
+ This document is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See <a href="../license.txt">../license.txt</a> for more information.
</p>
</body>
diff --git a/docs/future/old.html b/docs/future/old.html
new file mode 100644
index 00000000..7d72ec74
--- /dev/null
+++ b/docs/future/old.html
@@ -0,0 +1,277 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="utf-8">
+ <title>libreboot tutorials</title>
+
+ <style type="text/css">
+ body {
+ font-family: sans-serif;
+ font-size: 1em;
+ background: #fff;
+ color: #000;
+ }
+
+ </style>
+
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+ <meta name="author" content="glugman">
+ <meta name="description" content="tutorials for libreboot, the reboot library.">
+ <meta name="robots" content="all">
+</head>
+
+<body>
+
+ <header>
+ <h1 id="pagetop">Development notes (old/obsolete notes)</h1>
+ <aside>For current notes, see <a href="index.html">index.html</a>.</aside>
+ </header>
+
+ <p>
+ These are old (obsolete) notes that mare kept because they might become useful again in the future.
+ </p>
+
+<hr/>
+
+ <h2>Contents</h2>
+ <ul>
+ <li><a href="#x60_native_notes">X60 native graphics initialization (backlight controls)</a></li>
+ <li><a href="#t60_native_notes">T60 native graphics initialization (backlight controls)</a></li>
+ <li><a href="#5320_kernel312fix">i945: 3D fix (based on 5927) for kernel 3.12+ on 5320</a></li>
+ <li><a href="#x60_cb5927_testing">i945/x60: coreboot 5927 testing (3D fix for kernel 3.12+ on replay code)</a></li>
+ </ul>
+
+<hr/>
+
+ <h1 id="x60_native_notes">X60 native graphics initialization (with backlight controls)</h1>
+
+ <p>
+ <b>
+ This is now obsolete. A better way was found (included in libreboot): <a href="http://review.coreboot.org/#/c/6731/">http://review.coreboot.org/#/c/6731/</a>
+ </b>
+ </p>
+
+ <p>
+ <b><i>Also check <a href="#5320_kernel312fix">#5320_kernel312fix</a> (to fix 3D on kernel 3.12/higher)</i></b>
+ </p>
+ <p>
+ <b>The fix below was done on 5320/6 (from review.coreboot.org) but should work just fine on later versions of 5320.</b>
+ </p>
+ <p>
+ Native gpu init + backlight controls! (Fn keys). Also confirmed on X60 Tablet (1024x768) and X60 Tablet (1400x1050)
+ </p>
+ <p>
+ <b>Add backlight controls:</b> in <i>src/mainboard/lenovo/x60/devicetree.cb</i>, change <b>gpu_backlight</b> to <b>0x879F879E</b>
+ </p>
+ <p>
+ That's all! <b>This has also been backported into libreboot 5th release (line 1233 in src/mainboard/lenovo/x60/i915io.c)</b>. GNUtoo (Denis Carikli)
+ told me about the register <b>BLC_PWM_CTL</b> and that you could set it to control backlight. I read that address using devmem2 while running the VBIOS:<br/>
+ <b># devmem2 0xe4361254 w</b>
+ </p>
+ <p>
+ The change is also included in libreboot 6.
+ </p>
+ <p>
+ When doing this, it gave back that value. The same trick was used to get backlight controls for T60 (see <a href="#t60_native_notes">#t60_native_notes</a>).
+ </p>
+
+ <h2>Further notes</h2>
+ <p>
+ Reading <b>0xe4361254</b> (address) in Lenovo BIOS always yields FFFFFFFF, even when writing to it (and writing to it doesn't affect brightness controls).
+ 'mtjm' on IRC found that the buttons (Fn keys) control /sys/class/backlight/acpi_video0 which has no affect on 61254 (BLC_PWM_CTL). He says
+ intel_backlight has different values and uses the register. devmem2 works, needs checking <b>lspci -vv</b> for where the memory is mapped,
+ which is different than on coreboot; mtjm found that it was 0xec061254 on his machine (X60 Tablet), and the register value is different too.
+ <b>This is relevant, because we still don't know how backlight controls are actually handled. We got it working by accident. We need to know more.</b>.
+ </p>
+ <p>
+ Intel-gpu-tools may prove useful for further debugging: <a href="http://cgit.freedesktop.org/xorg/app/intel-gpu-tools/">http://cgit.freedesktop.org/xorg/app/intel-gpu-tools/</a>
+ </p>
+ <p>
+ mtjm says 0xe4300000 is an MMIO region of the gpu (lspci -vv shows it), 0x61254 (BLC_PWM_CTL) is a documented register. Searching the kernel driver for backlight
+ shows that in intel_panel.c this register is used (there is an XXX comment about finding the right value, where recent kernels get it from.
+ </p>
+ <p>
+ What we want to do is calculate a good value, instead of setting it in devicetree.cb. mtjm says about backlight physics:
+ it has a light source , uses pulse width modulation (PWM) to turn it on/off, dimming is done by spending less time on.
+ <b>Note: this may not be correct; he says his understanding is based on how the Lenote yeeloong works</b>.
+ </p>
+ <p>
+ mtjm goes on to say, that the register specifies the frequency used for PWM in its depending on the GPU core frequency, so it
+ might be possible to calculate it without hardcoded laptop-specific values. Therefore, I am supposed to find out the 'display core frequency'
+ (mtjm says there might be a register for it; also, it might be in 5320 or the replay code) and the PWM modulation frequency.
+ https://en.wikipedia.org/wiki/Backlight#Flicker_due_to_backlight_dimming
+ </p>
+ <p>
+ phcoder (Vladimir Serbinenko) who is author of 5320 (review.coreboot.org) talks about 'duty cycle limit' and 'flickering frequency'.
+ </p>
+
+ <p><a href="#pagetop">Back to top of page</a></p>
+
+<hr/>
+
+ <h1 id="t60_native_notes">T60 native graphics initialization (with backlight controls)</h1>
+
+ <p>
+ <b>
+ This is now obsolete. A better way was found (included in libreboot): <a href="http://review.coreboot.org/#/c/6731/">http://review.coreboot.org/#/c/6731/</a>
+ </b>
+ </p>
+ <p>
+ <b><i>Also check <a href="#5320_kernel312fix">#5320_kernel312fix</a> (to fix 3D on kernel 3.12/higher)</i></b>
+ </p>
+ <p>
+ <b>The fix below was done on an earlier version of 5345 changeset (review.coreboot.org), but should work on the current version. it is included in libreboot 6</b>
+ </p>
+ <p>
+ <b>Add backlight controls:</b> in <i>src/mainboard/lenovo/t60/devicetree.cb</i>, change <b>gpu_backlight</b> to <b>0x58BF58BE</b>
+ </p>
+ <p>
+ Hold on! Check <a href="../index.html#get_edid_panelname">../index.html#get_edid_panelname</a> to know what LCD panel you have. This is important for the next step!
+ </p>
+
+ <h2>Supported panels</h2>
+ <p>
+ <a href="../index.html#supported_t60_list">../index.html#supported_t60_list</a>.
+ </p>
+
+ <p>
+ See <a href="#lcd_i945_incompatibility">#lcd_i945_incompatibility</a>.
+ </p>
+
+ <p><a href="#pagetop">Back to top of page</a></p>
+
+<hr/>
+
+ <h1 id="5320_kernel312fix">i945: 3D fix (based on 5927) for kernel 3.12+ on 5320</h1>
+
+ <p>
+ <b>
+ This is now obsolete. Merged in coreboot: <a href="http://review.coreboot.org/#/c/5927/">http://review.coreboot.org/#/c/5927/</a>
+ </b>
+ </p>
+
+ <p><b>This needs to be rewritten (or better organized, or deleted?)</b>. This is also now included in libreboot 6 (using the proper way, not the 7c0000 method which was a hack)</p>
+
+ <p>
+ <b>This was done on 5320/6 so far. The fix below is for 5320/6 which is now obsolete. This needs to be re-done for the latest version
+ of 5320. The fix below is (in practise) only for reference, therefore.</b>
+ </p>
+
+ <p>
+ See <a href="#x60_cb5927_testing">#x60_cb5927_testing</a> for the original (and current) fix, for the replay code. Now we want
+ to implement that on top of <a href="http://review.coreboot.org/#/c/5320">http://review.coreboot.org/#/c/5320</a>
+ which is the current code for native graphics initialization on i945.
+ </p>
+
+ <p>
+ src/northbridge/intel/i945/gma.c (using the 7c0000 hack) on 5320: <a href="dumps/5320_7c0000_gma.c">5320_7c0000_gma.c</a> (rename it to gma.c,
+ replacing the current one).
+ </p>
+
+ <p>
+ The above is a hack (as is the original). A better (more correct) method is implemented in later versions of 5927, so
+ that should also be adapted for 5320. For now, you can use the above fix.
+ </p>
+
+ <p>
+ The correct way to do it is to set gtt address to (end of stolen memory - gtt size), which is what later versions of 5927 do (successfully).
+ </p>
+
+ <p>
+ Here is some debugging output using intel_gpu_tools v1.2-1 (from trisquel repositories) using tool "intel_gtt":
+ </p>
+
+ <ul>
+ <li>
+ Trisquel 6. kernel 3.14.4:
+ <ul>
+ <li>with libreboot 5th release (using the 7c0000 gtt hack from 5927/3): <a href="http://paste.debian.net/104306">http://paste.debian.net/104306</a></li>
+ <li>with coreboot+vgarom: <a href="http://paste.debian.net/104309">http://paste.debian.net/104309</a></li>
+ </ul>
+ </li>
+ <li>
+ Trisquel 6. kernel 3.2.0-60 (from Trisquel repositories):
+ <ul>
+ <li>with coreboot (no vbios or native init): <a href="http://paste.debian.net/104341">http://paste.debian.net/104341</a></li>
+ </ul>
+ </li>
+ </ul>
+
+ <p><a href="#pagetop">Back to top of page</a></p>
+
+<hr/>
+
+ <h1 id="x60_cb5927_testing">i945/X60: Coreboot 5927 testing (3D fix for kernel 3.12+ on replay code)</h1>
+
+ <p>
+ <b>
+ This is now obsolete. Merged in coreboot: <a href="http://review.coreboot.org/#/c/5927/">http://review.coreboot.org/#/c/5927/</a>
+ </b>
+ </p>
+
+ <p><b>The latest version as-is (5927/11) has not been tested by me yet. Always boot with 'drm.debug=0x06' kernel parameter when testing this.</b></p>
+
+ <p>
+ This is the fix for 3D on kernel 3.12 and higher on i945 (ThinkPad X60 in this case). This is for the replay code.
+ Libreboot 5th release has a version of this backported already (based on 5927/3 using the '7c0000' hack).
+ </p>
+
+ <p>
+ <b>
+ The replay code is obsolete (see 5320 changeset on review.coreboot.org for better version
+ which supports more machines/screens, and then 5345 for T60). Information here for reference since that is where the fix was first applied.
+ </b>
+ </p>
+
+ <p>
+ Read the information on <a href="http://review.coreboot.org/#/c/5927/">http://review.coreboot.org/#/c/5927/</a>.
+ </p>
+
+ <p>
+ For historical purposes, here is a collection of IRC logs that once existed on this page, related to the issue:
+ <a href="dumps/kernel312_irc">kernel312_irc</a>.
+ </p>
+
+ <p>
+ PGETBL_CTL differs between VBIOS (-) and native graphics init (+).<br/>
+
+ - PGETBL_CTL: 0x3ffc0001<br/>
+ + PGETBL_CTL: 0x3f800001
+ </p>
+
+ <p>GTT (graphics translation table) size is PGETBL_save, max 256 KiB. BSM (Base of Stolen Memory) is given by the bios.</p>
+
+ <ul>
+ <li>5927/7: <a href="dumps/5927_7.tar.gz">5927_7.tar.gz</a> (GRUB graphics are correct now, and 3D still works)</li>
+ <li>5927/6: <a href="dumps/5927_6.tar.gz">5927_6.tar.gz</a> (GRUB graphics still corrupt, 3D/everything still works after GRUB)</li>
+ <li>5927/5: <a href="dumps/5927_5.tar.gz">5927_5.tar.gz</a> (GRUB graphics corrupt, 3D/everything still works after GRUB)</li>
+ <li>5927/3: <a href="dumps/5927_3.tar.gz">5927_3.tar.gz</a> (3D still works! kernel 3.14.4) - the '7c0000' hack</li>
+ <li>5927/2: <a href="dumps/5927_2.tar.gz">5927_2.tar.gz</a> (3D works! kernel 3.14.4) - the '7c0000' hack</li>
+ <li>
+ 5927/1 (didn't fix the 3D issue):
+ <ul>
+ <li><a href="dumps/5927_cbmemc">cbmem -c</a></li>
+ <li><a href="dumps/5927_crashdump">/sys/class/drm/card0/error</a></li>
+ <li><a href="dumps/5927_config">.config</a></li>
+ </ul>
+ </li>
+ </ul>
+
+ <p><a href="#pagetop">Back to top of page</a></p>
+
+<hr/>
+
+ <p>
+ Copyright &copy; 2014 Francis Rowe &lt;info@gluglug.org.uk&gt;<br/>
+ This document is released under the Creative Commons Attribution-ShareAlike 4.0 International Public License and all future versions.
+ A copy of the license can be found at <a href="../license.txt">../license.txt</a>.
+ </p>
+
+ <p>
+ This document is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See <a href="../license.txt">../license.txt</a> for more information.
+ </p>
+
+</body>
+</html>
diff --git a/docs/gnu-fdl-1.3.shtml b/docs/gnu-fdl-1.3.shtml
deleted file mode 100644
index 91e35f6b..00000000
--- a/docs/gnu-fdl-1.3.shtml
+++ /dev/null
@@ -1,506 +0,0 @@
-<!DOCTYPE html>
-<html lang="en"><head>
-<meta http-equiv="content-type" content="text/html; charset=UTF-8">
- <meta charset="utf-8">
- <title>GNU Free Documentation License v1.3
-</title>
-</head>
-
-<body>
-
-<div id="doc" class="yui-t5">
-
- <div id="bd">
- <div id="yui-main">
-
-
-<h3 style="text-align: center;">GNU Free Documentation License</h3>
-
-<p style="text-align: center;">Version 1.3, 3 November 2008</p>
-
-<p> Copyright © 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
- &lt;<a href="http://fsf.org/">http://fsf.org/</a>&gt;
- </p><p>Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.</p>
-
-<h4>0. PREAMBLE</h4>
-
-<p>The purpose of this License is to make a manual, textbook, or other
-functional and useful document "free" in the sense of freedom: to
-assure everyone the effective freedom to copy and redistribute it,
-with or without modifying it, either commercially or noncommercially.
-Secondarily, this License preserves for the author and publisher a way
-to get credit for their work, while not being considered responsible
-for modifications made by others.</p>
-
-<p>This License is a kind of "copyleft", which means that derivative
-works of the document must themselves be free in the same sense. It
-complements the GNU General Public License, which is a copyleft
-license designed for free software.</p>
-
-<p>We have designed this License in order to use it for manuals for free
-software, because free software needs free documentation: a free
-program should come with manuals providing the same freedoms that the
-software does. But this License is not limited to software manuals;
-it can be used for any textual work, regardless of subject matter or
-whether it is published as a printed book. We recommend this License
-principally for works whose purpose is instruction or reference.</p>
-
-<h4>1. APPLICABILITY AND DEFINITIONS</h4>
-
-<p>This License applies to any manual or other work, in any medium, that
-contains a notice placed by the copyright holder saying it can be
-distributed under the terms of this License. Such a notice grants a
-world-wide, royalty-free license, unlimited in duration, to use that
-work under the conditions stated herein. The "Document", below,
-refers to any such manual or work. Any member of the public is a
-licensee, and is addressed as "you". You accept the license if you
-copy, modify or distribute the work in a way requiring permission
-under copyright law.</p>
-
-<p>A "Modified Version" of the Document means any work containing the
-Document or a portion of it, either copied verbatim, or with
-modifications and/or translated into another language.</p>
-
-<p>A "Secondary Section" is a named appendix or a front-matter section of
-the Document that deals exclusively with the relationship of the
-publishers or authors of the Document to the Document's overall
-subject (or to related matters) and contains nothing that could fall
-directly within that overall subject. (Thus, if the Document is in
-part a textbook of mathematics, a Secondary Section may not explain
-any mathematics.) The relationship could be a matter of historical
-connection with the subject or with related matters, or of legal,
-commercial, philosophical, ethical or political position regarding
-them.</p>
-
-<p>The "Invariant Sections" are certain Secondary Sections whose titles
-are designated, as being those of Invariant Sections, in the notice
-that says that the Document is released under this License. If a
-section does not fit the above definition of Secondary then it is not
-allowed to be designated as Invariant. The Document may contain zero
-Invariant Sections. If the Document does not identify any Invariant
-Sections then there are none.</p>
-
-<p>The "Cover Texts" are certain short passages of text that are listed,
-as Front-Cover Texts or Back-Cover Texts, in the notice that says that
-the Document is released under this License. A Front-Cover Text may
-be at most 5 words, and a Back-Cover Text may be at most 25 words.</p>
-
-<p>A "Transparent" copy of the Document means a machine-readable copy,
-represented in a format whose specification is available to the
-general public, that is suitable for revising the document
-straightforwardly with generic text editors or (for images composed of
-pixels) generic paint programs or (for drawings) some widely available
-drawing editor, and that is suitable for input to text formatters or
-for automatic translation to a variety of formats suitable for input
-to text formatters. A copy made in an otherwise Transparent file
-format whose markup, or absence of markup, has been arranged to thwart
-or discourage subsequent modification by readers is not Transparent.
-An image format is not Transparent if used for any substantial amount
-of text. A copy that is not "Transparent" is called "Opaque".</p>
-
-<p>Examples of suitable formats for Transparent copies include plain
-ASCII without markup, Texinfo input format, LaTeX input format, SGML
-or XML using a publicly available DTD, and standard-conforming simple
-HTML, PostScript or PDF designed for human modification. Examples of
-transparent image formats include PNG, XCF and JPG. Opaque formats
-include proprietary formats that can be read and edited only by
-proprietary word processors, SGML or XML for which the DTD and/or
-processing tools are not generally available, and the
-machine-generated HTML, PostScript or PDF produced by some word
-processors for output purposes only.</p>
-
-<p>The "Title Page" means, for a printed book, the title page itself,
-plus such following pages as are needed to hold, legibly, the material
-this License requires to appear in the title page. For works in
-formats which do not have any title page as such, "Title Page" means
-the text near the most prominent appearance of the work's title,
-preceding the beginning of the body of the text.</p>
-
-<p>The "publisher" means any person or entity that distributes copies of
-the Document to the public.</p>
-
-<p>A section "Entitled XYZ" means a named subunit of the Document whose
-title either is precisely XYZ or contains XYZ in parentheses following
-text that translates XYZ in another language. (Here XYZ stands for a
-specific section name mentioned below, such as "Acknowledgements",
-"Dedications", "Endorsements", or "History".) To "Preserve the Title"
-of such a section when you modify the Document means that it remains a
-section "Entitled XYZ" according to this definition.</p>
-
-<p>The Document may include Warranty Disclaimers next to the notice which
-states that this License applies to the Document. These Warranty
-Disclaimers are considered to be included by reference in this
-License, but only as regards disclaiming warranties: any other
-implication that these Warranty Disclaimers may have is void and has
-no effect on the meaning of this License.</p>
-
-<h4>2. VERBATIM COPYING</h4>
-
-<p>You may copy and distribute the Document in any medium, either
-commercially or noncommercially, provided that this License, the
-copyright notices, and the license notice saying this License applies
-to the Document are reproduced in all copies, and that you add no
-other conditions whatsoever to those of this License. You may not use
-technical measures to obstruct or control the reading or further
-copying of the copies you make or distribute. However, you may accept
-compensation in exchange for copies. If you distribute a large enough
-number of copies you must also follow the conditions in section 3.</p>
-
-<p>You may also lend copies, under the same conditions stated above, and
-you may publicly display copies.</p>
-
-<h4>3. COPYING IN QUANTITY</h4>
-
-<p>If you publish printed copies (or copies in media that commonly have
-printed covers) of the Document, numbering more than 100, and the
-Document's license notice requires Cover Texts, you must enclose the
-copies in covers that carry, clearly and legibly, all these Cover
-Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on
-the back cover. Both covers must also clearly and legibly identify
-you as the publisher of these copies. The front cover must present
-the full title with all words of the title equally prominent and
-visible. You may add other material on the covers in addition.
-Copying with changes limited to the covers, as long as they preserve
-the title of the Document and satisfy these conditions, can be treated
-as verbatim copying in other respects.</p>
-
-<p>If the required texts for either cover are too voluminous to fit
-legibly, you should put the first ones listed (as many as fit
-reasonably) on the actual cover, and continue the rest onto adjacent
-pages.</p>
-
-<p>If you publish or distribute Opaque copies of the Document numbering
-more than 100, you must either include a machine-readable Transparent
-copy along with each Opaque copy, or state in or with each Opaque copy
-a computer-network location from which the general network-using
-public has access to download using public-standard network protocols
-a complete Transparent copy of the Document, free of added material.
-If you use the latter option, you must take reasonably prudent steps,
-when you begin distribution of Opaque copies in quantity, to ensure
-that this Transparent copy will remain thus accessible at the stated
-location until at least one year after the last time you distribute an
-Opaque copy (directly or through your agents or retailers) of that
-edition to the public.</p>
-
-<p>It is requested, but not required, that you contact the authors of the
-Document well before redistributing any large number of copies, to
-give them a chance to provide you with an updated version of the
-Document.</p>
-
-<h4>4. MODIFICATIONS</h4>
-
-<p>You may copy and distribute a Modified Version of the Document under
-the conditions of sections 2 and 3 above, provided that you release
-the Modified Version under precisely this License, with the Modified
-Version filling the role of the Document, thus licensing distribution
-and modification of the Modified Version to whoever possesses a copy
-of it. In addition, you must do these things in the Modified Version:</p>
-
-<ul>
-
-
-<li>A. Use in the Title Page (and on the covers, if any) a title distinct
- from that of the Document, and from those of previous versions
- (which should, if there were any, be listed in the History section
- of the Document). You may use the same title as a previous version
- if the original publisher of that version gives permission.
-</li>
-
-<li>B. List on the Title Page, as authors, one or more persons or entities
- responsible for authorship of the modifications in the Modified
- Version, together with at least five of the principal authors of the
- Document (all of its principal authors, if it has fewer than five),
- unless they release you from this requirement.
-</li>
-
-<li>C. State on the Title page the name of the publisher of the
- Modified Version, as the publisher.
-</li>
-
-<li>D. Preserve all the copyright notices of the Document.
-</li>
-
-<li>E. Add an appropriate copyright notice for your modifications
- adjacent to the other copyright notices.
-</li>
-
-<li>F. Include, immediately after the copyright notices, a license notice
- giving the public permission to use the Modified Version under the
- terms of this License, in the form shown in the Addendum below.
-</li>
-
-<li>G. Preserve in that license notice the full lists of Invariant Sections
- and required Cover Texts given in the Document's license notice.
-</li>
-
-<li>H. Include an unaltered copy of this License.
-</li>
-
-<li>I. Preserve the section Entitled "History", Preserve its Title, and add
- to it an item stating at least the title, year, new authors, and
- publisher of the Modified Version as given on the Title Page. If
- there is no section Entitled "History" in the Document, create one
- stating the title, year, authors, and publisher of the Document as
- given on its Title Page, then add an item describing the Modified
- Version as stated in the previous sentence.
-</li>
-
-<li>J. Preserve the network location, if any, given in the Document for
- public access to a Transparent copy of the Document, and likewise
- the network locations given in the Document for previous versions
- it was based on. These may be placed in the "History" section.
- You may omit a network location for a work that was published at
- least four years before the Document itself, or if the original
- publisher of the version it refers to gives permission.
-</li>
-
-<li>K. For any section Entitled "Acknowledgements" or "Dedications",
- Preserve the Title of the section, and preserve in the section all
- the substance and tone of each of the contributor acknowledgements
- and/or dedications given therein.
-</li>
-
-<li>L. Preserve all the Invariant Sections of the Document,
- unaltered in their text and in their titles. Section numbers
- or the equivalent are not considered part of the section titles.
-</li>
-
-<li>M. Delete any section Entitled "Endorsements". Such a section
- may not be included in the Modified Version.
-</li>
-
-<li>N. Do not retitle any existing section to be Entitled "Endorsements"
- or to conflict in title with any Invariant Section.
-</li>
-
-<li>O. Preserve any Warranty Disclaimers.</li>
-
-</ul>
-
-<p>If the Modified Version includes new front-matter sections or
-appendices that qualify as Secondary Sections and contain no material
-copied from the Document, you may at your option designate some or all
-of these sections as invariant. To do this, add their titles to the
-list of Invariant Sections in the Modified Version's license notice.
-These titles must be distinct from any other section titles.</p>
-
-<p>You may add a section Entitled "Endorsements", provided it contains
-nothing but endorsements of your Modified Version by various
-parties—for example, statements of peer review or that the text has
-been approved by an organization as the authoritative definition of a
-standard.</p>
-
-<p>You may add a passage of up to five words as a Front-Cover Text, and a
-passage of up to 25 words as a Back-Cover Text, to the end of the list
-of Cover Texts in the Modified Version. Only one passage of
-Front-Cover Text and one of Back-Cover Text may be added by (or
-through arrangements made by) any one entity. If the Document already
-includes a cover text for the same cover, previously added by you or
-by arrangement made by the same entity you are acting on behalf of,
-you may not add another; but you may replace the old one, on explicit
-permission from the previous publisher that added the old one.</p>
-
-<p>The author(s) and publisher(s) of the Document do not by this License
-give permission to use their names for publicity for or to assert or
-imply endorsement of any Modified Version.</p>
-
-<h4>5. COMBINING DOCUMENTS</h4>
-
-<p>You may combine the Document with other documents released under this
-License, under the terms defined in section 4 above for modified
-versions, provided that you include in the combination all of the
-Invariant Sections of all of the original documents, unmodified, and
-list them all as Invariant Sections of your combined work in its
-license notice, and that you preserve all their Warranty Disclaimers.</p>
-
-<p>The combined work need only contain one copy of this License, and
-multiple identical Invariant Sections may be replaced with a single
-copy. If there are multiple Invariant Sections with the same name but
-different contents, make the title of each such section unique by
-adding at the end of it, in parentheses, the name of the original
-author or publisher of that section if known, or else a unique number.
-Make the same adjustment to the section titles in the list of
-Invariant Sections in the license notice of the combined work.</p>
-
-<p>In the combination, you must combine any sections Entitled "History"
-in the various original documents, forming one section Entitled
-"History"; likewise combine any sections Entitled "Acknowledgements",
-and any sections Entitled "Dedications". You must delete all sections
-Entitled "Endorsements".</p>
-
-<h4>6. COLLECTIONS OF DOCUMENTS</h4>
-
-<p>You may make a collection consisting of the Document and other
-documents released under this License, and replace the individual
-copies of this License in the various documents with a single copy
-that is included in the collection, provided that you follow the rules
-of this License for verbatim copying of each of the documents in all
-other respects.</p>
-
-<p>You may extract a single document from such a collection, and
-distribute it individually under this License, provided you insert a
-copy of this License into the extracted document, and follow this
-License in all other respects regarding verbatim copying of that
-document.</p>
-
-<h4>7. AGGREGATION WITH INDEPENDENT WORKS</h4>
-
-<p>A compilation of the Document or its derivatives with other separate
-and independent documents or works, in or on a volume of a storage or
-distribution medium, is called an "aggregate" if the copyright
-resulting from the compilation is not used to limit the legal rights
-of the compilation's users beyond what the individual works permit.
-When the Document is included in an aggregate, this License does not
-apply to the other works in the aggregate which are not themselves
-derivative works of the Document.</p>
-
-<p>If the Cover Text requirement of section 3 is applicable to these
-copies of the Document, then if the Document is less than one half of
-the entire aggregate, the Document's Cover Texts may be placed on
-covers that bracket the Document within the aggregate, or the
-electronic equivalent of covers if the Document is in electronic form.
-Otherwise they must appear on printed covers that bracket the whole
-aggregate.</p>
-
-<h4>8. TRANSLATION</h4>
-
-<p>Translation is considered a kind of modification, so you may
-distribute translations of the Document under the terms of section 4.
-Replacing Invariant Sections with translations requires special
-permission from their copyright holders, but you may include
-translations of some or all Invariant Sections in addition to the
-original versions of these Invariant Sections. You may include a
-translation of this License, and all the license notices in the
-Document, and any Warranty Disclaimers, provided that you also include
-the original English version of this License and the original versions
-of those notices and disclaimers. In case of a disagreement between
-the translation and the original version of this License or a notice
-or disclaimer, the original version will prevail.</p>
-
-<p>If a section in the Document is Entitled "Acknowledgements",
-"Dedications", or "History", the requirement (section 4) to Preserve
-its Title (section 1) will typically require changing the actual
-title.</p>
-
-<h4>9. TERMINATION</h4>
-
-<p>You may not copy, modify, sublicense, or distribute the Document
-except as expressly provided under this License. Any attempt
-otherwise to copy, modify, sublicense, or distribute it is void, and
-will automatically terminate your rights under this License.</p>
-
-<p>However, if you cease all violation of this License, then your license
-from a particular copyright holder is reinstated (a) provisionally,
-unless and until the copyright holder explicitly and finally
-terminates your license, and (b) permanently, if the copyright holder
-fails to notify you of the violation by some reasonable means prior to
-60 days after the cessation.</p>
-
-<p>Moreover, your license from a particular copyright holder is
-reinstated permanently if the copyright holder notifies you of the
-violation by some reasonable means, this is the first time you have
-received notice of violation of this License (for any work) from that
-copyright holder, and you cure the violation prior to 30 days after
-your receipt of the notice.</p>
-
-<p>Termination of your rights under this section does not terminate the
-licenses of parties who have received copies or rights from you under
-this License. If your rights have been terminated and not permanently
-reinstated, receipt of a copy of some or all of the same material does
-not give you any rights to use it.</p>
-
-<h4>10. FUTURE REVISIONS OF THIS LICENSE</h4>
-
-<p>The Free Software Foundation may publish new, revised versions of the
-GNU Free Documentation License from time to time. Such new versions
-will be similar in spirit to the present version, but may differ in
-detail to address new problems or concerns. See
-<a href="http://www.gnu.org/copyleft/">http://www.gnu.org/copyleft/</a>.</p>
-
-<p>Each version of the License is given a distinguishing version number.
-If the Document specifies that a particular numbered version of this
-License "or any later version" applies to it, you have the option of
-following the terms and conditions either of that specified version or
-of any later version that has been published (not as a draft) by the
-Free Software Foundation. If the Document does not specify a version
-number of this License, you may choose any version ever published (not
-as a draft) by the Free Software Foundation. If the Document
-specifies that a proxy can decide which future versions of this
-License can be used, that proxy's public statement of acceptance of a
-version permanently authorizes you to choose that version for the
-Document.</p>
-
-<h4>11. RELICENSING</h4>
-
-<p>"Massive Multiauthor Collaboration Site" (or "MMC Site") means any
-World Wide Web server that publishes copyrightable works and also
-provides prominent facilities for anybody to edit those works. A
-public wiki that anybody can edit is an example of such a server. A
-
-"Massive Multiauthor Collaboration" (or "MMC") contained in the site
-means any set of copyrightable works thus published on the MMC site.</p>
-
-<p>"CC-BY-SA" means the Creative Commons Attribution-Share Alike 3.0
-license published by Creative Commons Corporation, a not-for-profit
-corporation with a principal place of business in San Francisco,
-California, as well as future copyleft versions of that license
-published by that same organization.</p>
-
-<p>"Incorporate" means to publish or republish a Document, in whole or in
-part, as part of another Document.</p>
-
-<p>An MMC is "eligible for relicensing" if it is licensed under this
-License, and if all works that were first published under this License
-somewhere other than this MMC, and subsequently incorporated in whole or
-in part into the MMC, (1) had no cover texts or invariant sections, and
-(2) were thus incorporated prior to November 1, 2008.</p>
-
-<p>The operator of an MMC Site may republish an MMC contained in the site
-under CC-BY-SA on the same site at any time before August 1, 2009,
-provided the MMC is eligible for relicensing.</p>
-
-<h3>ADDENDUM: How to use this License for your documents</h3>
-
-<p>To use this License in a document you have written, include a copy of
-the License in the document and put the following copyright and
-license notices just after the title page:</p>
-
-<pre> Copyright (C) YEAR YOUR NAME.
- Permission is granted to copy, distribute and/or modify this document
- under the terms of the GNU Free Documentation License, Version 1.3
- or any later version published by the Free Software Foundation;
- with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
- A copy of the license is included in the section entitled "GNU
- Free Documentation License".
-
-</pre>
-
-<p>If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts,
-replace the "with … Texts." line with this:</p>
-
-<pre> with the Invariant Sections being LIST THEIR TITLES, with the
- Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST.
-</pre>
-
-<p>If you have Invariant Sections without Cover Texts, or some other
-combination of the three, merge those two alternatives to suit the
-situation.</p>
-
-<p>If your document contains nontrivial examples of program code, we
-recommend releasing these examples in parallel under your choice of
-free software license, such as the GNU General Public License,
-to permit their use in free software.
-</p>
-
-
- </div>
-
- </div>
-
-</div>
-
-
-
-
-</body></html>
diff --git a/docs/gnu-gpl-3.0.shtml b/docs/gnu-gpl-3.0.shtml
deleted file mode 100644
index f6f19e24..00000000
--- a/docs/gnu-gpl-3.0.shtml
+++ /dev/null
@@ -1,707 +0,0 @@
-<!DOCTYPE html>
-<html lang="en"><head>
-<meta http-equiv="content-type" content="text/html; charset=UTF-8">
- <meta charset="utf-8">
- <title>GNU General Public License v3.0</title>
-</head>
-
-<body>
-
-<div id="doc" class="yui-t5">
-
- <div id="bd">
- <div id="yui-main">
-
-<h3 style="text-align: center;">GNU GENERAL PUBLIC LICENSE</h3>
-<p style="text-align: center;">Version 3, 29 June 2007</p>
-
-<p>Copyright © 2007 Free Software Foundation, Inc.
- &lt;<a href="http://fsf.org/">http://fsf.org/</a>&gt;</p><p>
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.</p>
-
-<h3>Preamble</h3>
-
-<p>The GNU General Public License is a free, copyleft license for
-software and other kinds of works.</p>
-
-<p>The licenses for most software and other practical works are designed
-to take away your freedom to share and change the works. By contrast,
-the GNU General Public License is intended to guarantee your freedom to
-share and change all versions of a program--to make sure it remains free
-software for all its users. We, the Free Software Foundation, use the
-GNU General Public License for most of our software; it applies also to
-any other work released this way by its authors. You can apply it to
-your programs, too.</p>
-
-<p>When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-them if you wish), that you receive source code or can get it if you
-want it, that you can change the software or use pieces of it in new
-free programs, and that you know you can do these things.</p>
-
-<p>To protect your rights, we need to prevent others from denying you
-these rights or asking you to surrender the rights. Therefore, you have
-certain responsibilities if you distribute copies of the software, or if
-you modify it: responsibilities to respect the freedom of others.</p>
-
-<p>For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must pass on to the recipients the same
-freedoms that you received. You must make sure that they, too, receive
-or can get the source code. And you must show them these terms so they
-know their rights.</p>
-
-<p>Developers that use the GNU GPL protect your rights with two steps:
-(1) assert copyright on the software, and (2) offer you this License
-giving you legal permission to copy, distribute and/or modify it.</p>
-
-<p>For the developers' and authors' protection, the GPL clearly explains
-that there is no warranty for this free software. For both users' and
-authors' sake, the GPL requires that modified versions be marked as
-changed, so that their problems will not be attributed erroneously to
-authors of previous versions.</p>
-
-<p>Some devices are designed to deny users access to install or run
-modified versions of the software inside them, although the manufacturer
-can do so. This is fundamentally incompatible with the aim of
-protecting users' freedom to change the software. The systematic
-pattern of such abuse occurs in the area of products for individuals to
-use, which is precisely where it is most unacceptable. Therefore, we
-have designed this version of the GPL to prohibit the practice for those
-products. If such problems arise substantially in other domains, we
-stand ready to extend this provision to those domains in future versions
-of the GPL, as needed to protect the freedom of users.</p>
-
-<p>Finally, every program is threatened constantly by software patents.
-States should not allow patents to restrict development and use of
-software on general-purpose computers, but in those that do, we wish to
-avoid the special danger that patents applied to a free program could
-make it effectively proprietary. To prevent this, the GPL assures that
-patents cannot be used to render the program non-free.</p>
-
-<p>The precise terms and conditions for copying, distribution and
-modification follow.</p>
-
-<h3>TERMS AND CONDITIONS</h3>
-
-<h4>0. Definitions.</h4>
-
-<p>“This License” refers to version 3 of the GNU General Public License.</p>
-
-<p>“Copyright” also means copyright-like laws that apply to other kinds of
-works, such as semiconductor masks.</p>
-
-<p>“The Program” refers to any copyrightable work licensed under this
-License. Each licensee is addressed as “you”. “Licensees” and
-“recipients” may be individuals or organizations.</p>
-
-<p>To “modify” a work means to copy from or adapt all or part of the work
-in a fashion requiring copyright permission, other than the making of an
-exact copy. The resulting work is called a “modified version” of the
-earlier work or a work “based on” the earlier work.</p>
-
-<p>A “covered work” means either the unmodified Program or a work based
-on the Program.</p>
-
-<p>To “propagate” a work means to do anything with it that, without
-permission, would make you directly or secondarily liable for
-infringement under applicable copyright law, except executing it on a
-computer or modifying a private copy. Propagation includes copying,
-distribution (with or without modification), making available to the
-public, and in some countries other activities as well.</p>
-
-<p>To “convey” a work means any kind of propagation that enables other
-parties to make or receive copies. Mere interaction with a user through
-a computer network, with no transfer of a copy, is not conveying.</p>
-
-<p>An interactive user interface displays “Appropriate Legal Notices”
-to the extent that it includes a convenient and prominently visible
-feature that (1) displays an appropriate copyright notice, and (2)
-tells the user that there is no warranty for the work (except to the
-extent that warranties are provided), that licensees may convey the
-work under this License, and how to view a copy of this License. If
-the interface presents a list of user commands or options, such as a
-menu, a prominent item in the list meets this criterion.</p>
-
-<h4>1. Source Code.</h4>
-
-<p>The “source code” for a work means the preferred form of the work
-for making modifications to it. “Object code” means any non-source
-form of a work.</p>
-
-<p>A “Standard Interface” means an interface that either is an official
-standard defined by a recognized standards body, or, in the case of
-interfaces specified for a particular programming language, one that
-is widely used among developers working in that language.</p>
-
-<p>The “System Libraries” of an executable work include anything, other
-than the work as a whole, that (a) is included in the normal form of
-packaging a Major Component, but which is not part of that Major
-Component, and (b) serves only to enable use of the work with that
-Major Component, or to implement a Standard Interface for which an
-implementation is available to the public in source code form. A
-“Major Component”, in this context, means a major essential component
-(kernel, window system, and so on) of the specific operating system
-(if any) on which the executable work runs, or a compiler used to
-produce the work, or an object code interpreter used to run it.</p>
-
-<p>The “Corresponding Source” for a work in object code form means all
-the source code needed to generate, install, and (for an executable
-work) run the object code and to modify the work, including scripts to
-control those activities. However, it does not include the work's
-System Libraries, or general-purpose tools or generally available free
-programs which are used unmodified in performing those activities but
-which are not part of the work. For example, Corresponding Source
-includes interface definition files associated with source files for
-the work, and the source code for shared libraries and dynamically
-linked subprograms that the work is specifically designed to require,
-such as by intimate data communication or control flow between those
-subprograms and other parts of the work.</p>
-
-<p>The Corresponding Source need not include anything that users
-can regenerate automatically from other parts of the Corresponding
-Source.</p>
-
-<p>The Corresponding Source for a work in source code form is that
-same work.</p>
-
-<h4>2. Basic Permissions.</h4>
-
-<p>All rights granted under this License are granted for the term of
-copyright on the Program, and are irrevocable provided the stated
-conditions are met. This License explicitly affirms your unlimited
-permission to run the unmodified Program. The output from running a
-covered work is covered by this License only if the output, given its
-content, constitutes a covered work. This License acknowledges your
-rights of fair use or other equivalent, as provided by copyright law.</p>
-
-<p>You may make, run and propagate covered works that you do not
-convey, without conditions so long as your license otherwise remains
-in force. You may convey covered works to others for the sole purpose
-of having them make modifications exclusively for you, or provide you
-with facilities for running those works, provided that you comply with
-the terms of this License in conveying all material for which you do
-not control copyright. Those thus making or running the covered works
-for you must do so exclusively on your behalf, under your direction
-and control, on terms that prohibit them from making any copies of
-your copyrighted material outside their relationship with you.</p>
-
-<p>Conveying under any other circumstances is permitted solely under
-the conditions stated below. Sublicensing is not allowed; section 10
-makes it unnecessary.</p>
-
-<h4>3. Protecting Users' Legal Rights From Anti-Circumvention Law.</h4>
-
-<p>No covered work shall be deemed part of an effective technological
-measure under any applicable law fulfilling obligations under article
-11 of the WIPO copyright treaty adopted on 20 December 1996, or
-similar laws prohibiting or restricting circumvention of such
-measures.</p>
-
-<p>When you convey a covered work, you waive any legal power to forbid
-circumvention of technological measures to the extent such circumvention
-is effected by exercising rights under this License with respect to
-the covered work, and you disclaim any intention to limit operation or
-modification of the work as a means of enforcing, against the work's
-users, your or third parties' legal rights to forbid circumvention of
-technological measures.</p>
-
-<h4>4. Conveying Verbatim Copies.</h4>
-
-<p>You may convey verbatim copies of the Program's source code as you
-receive it, in any medium, provided that you conspicuously and
-appropriately publish on each copy an appropriate copyright notice;
-keep intact all notices stating that this License and any
-non-permissive terms added in accord with section 7 apply to the code;
-keep intact all notices of the absence of any warranty; and give all
-recipients a copy of this License along with the Program.</p>
-
-<p>You may charge any price or no price for each copy that you convey,
-and you may offer support or warranty protection for a fee.</p>
-
-<h4>5. Conveying Modified Source Versions.</h4>
-
-<p>You may convey a work based on the Program, or the modifications to
-produce it from the Program, in the form of source code under the
-terms of section 4, provided that you also meet all of these conditions:</p>
-
-<ul>
-<li>a) The work must carry prominent notices stating that you modified
- it, and giving a relevant date.</li>
-
-<li>b) The work must carry prominent notices stating that it is
- released under this License and any conditions added under section
- 7. This requirement modifies the requirement in section 4 to
- “keep intact all notices”.</li>
-
-<li>c) You must license the entire work, as a whole, under this
- License to anyone who comes into possession of a copy. This
- License will therefore apply, along with any applicable section 7
- additional terms, to the whole of the work, and all its parts,
- regardless of how they are packaged. This License gives no
- permission to license the work in any other way, but it does not
- invalidate such permission if you have separately received it.</li>
-
-<li>d) If the work has interactive user interfaces, each must display
- Appropriate Legal Notices; however, if the Program has interactive
- interfaces that do not display Appropriate Legal Notices, your
- work need not make them do so.</li>
-</ul>
-
-<p>A compilation of a covered work with other separate and independent
-works, which are not by their nature extensions of the covered work,
-and which are not combined with it such as to form a larger program,
-in or on a volume of a storage or distribution medium, is called an
-“aggregate” if the compilation and its resulting copyright are not
-used to limit the access or legal rights of the compilation's users
-beyond what the individual works permit. Inclusion of a covered work
-in an aggregate does not cause this License to apply to the other
-parts of the aggregate.</p>
-
-<h4>6. Conveying Non-Source Forms.</h4>
-
-<p>You may convey a covered work in object code form under the terms
-of sections 4 and 5, provided that you also convey the
-machine-readable Corresponding Source under the terms of this License,
-in one of these ways:</p>
-
-<ul>
-<li>a) Convey the object code in, or embodied in, a physical product
- (including a physical distribution medium), accompanied by the
- Corresponding Source fixed on a durable physical medium
- customarily used for software interchange.</li>
-
-<li>b) Convey the object code in, or embodied in, a physical product
- (including a physical distribution medium), accompanied by a
- written offer, valid for at least three years and valid for as
- long as you offer spare parts or customer support for that product
- model, to give anyone who possesses the object code either (1) a
- copy of the Corresponding Source for all the software in the
- product that is covered by this License, on a durable physical
- medium customarily used for software interchange, for a price no
- more than your reasonable cost of physically performing this
- conveying of source, or (2) access to copy the
- Corresponding Source from a network server at no charge.</li>
-
-<li>c) Convey individual copies of the object code with a copy of the
- written offer to provide the Corresponding Source. This
- alternative is allowed only occasionally and noncommercially, and
- only if you received the object code with such an offer, in accord
- with subsection 6b.</li>
-
-<li>d) Convey the object code by offering access from a designated
- place (gratis or for a charge), and offer equivalent access to the
- Corresponding Source in the same way through the same place at no
- further charge. You need not require recipients to copy the
- Corresponding Source along with the object code. If the place to
- copy the object code is a network server, the Corresponding Source
- may be on a different server (operated by you or a third party)
- that supports equivalent copying facilities, provided you maintain
- clear directions next to the object code saying where to find the
- Corresponding Source. Regardless of what server hosts the
- Corresponding Source, you remain obligated to ensure that it is
- available for as long as needed to satisfy these requirements.</li>
-
-<li>e) Convey the object code using peer-to-peer transmission, provided
- you inform other peers where the object code and Corresponding
- Source of the work are being offered to the general public at no
- charge under subsection 6d.</li>
-</ul>
-
-<p>A separable portion of the object code, whose source code is excluded
-from the Corresponding Source as a System Library, need not be
-included in conveying the object code work.</p>
-
-<p>A “User Product” is either (1) a “consumer product”, which means any
-tangible personal property which is normally used for personal, family,
-or household purposes, or (2) anything designed or sold for incorporation
-into a dwelling. In determining whether a product is a consumer product,
-doubtful cases shall be resolved in favor of coverage. For a particular
-product received by a particular user, “normally used” refers to a
-typical or common use of that class of product, regardless of the status
-of the particular user or of the way in which the particular user
-actually uses, or expects or is expected to use, the product. A product
-is a consumer product regardless of whether the product has substantial
-commercial, industrial or non-consumer uses, unless such uses represent
-the only significant mode of use of the product.</p>
-
-<p>“Installation Information” for a User Product means any methods,
-procedures, authorization keys, or other information required to install
-and execute modified versions of a covered work in that User Product from
-a modified version of its Corresponding Source. The information must
-suffice to ensure that the continued functioning of the modified object
-code is in no case prevented or interfered with solely because
-modification has been made.</p>
-
-<p>If you convey an object code work under this section in, or with, or
-specifically for use in, a User Product, and the conveying occurs as
-part of a transaction in which the right of possession and use of the
-User Product is transferred to the recipient in perpetuity or for a
-fixed term (regardless of how the transaction is characterized), the
-Corresponding Source conveyed under this section must be accompanied
-by the Installation Information. But this requirement does not apply
-if neither you nor any third party retains the ability to install
-modified object code on the User Product (for example, the work has
-been installed in ROM).</p>
-
-<p>The requirement to provide Installation Information does not include a
-requirement to continue to provide support service, warranty, or updates
-for a work that has been modified or installed by the recipient, or for
-the User Product in which it has been modified or installed. Access to a
-network may be denied when the modification itself materially and
-adversely affects the operation of the network or violates the rules and
-protocols for communication across the network.</p>
-
-<p>Corresponding Source conveyed, and Installation Information provided,
-in accord with this section must be in a format that is publicly
-documented (and with an implementation available to the public in
-source code form), and must require no special password or key for
-unpacking, reading or copying.</p>
-
-<h4>7. Additional Terms.</h4>
-
-<p>“Additional permissions” are terms that supplement the terms of this
-License by making exceptions from one or more of its conditions.
-Additional permissions that are applicable to the entire Program shall
-be treated as though they were included in this License, to the extent
-that they are valid under applicable law. If additional permissions
-apply only to part of the Program, that part may be used separately
-under those permissions, but the entire Program remains governed by
-this License without regard to the additional permissions.</p>
-
-<p>When you convey a copy of a covered work, you may at your option
-remove any additional permissions from that copy, or from any part of
-it. (Additional permissions may be written to require their own
-removal in certain cases when you modify the work.) You may place
-additional permissions on material, added by you to a covered work,
-for which you have or can give appropriate copyright permission.</p>
-
-<p>Notwithstanding any other provision of this License, for material you
-add to a covered work, you may (if authorized by the copyright holders of
-that material) supplement the terms of this License with terms:</p>
-
-<ul>
-<li>a) Disclaiming warranty or limiting liability differently from the
- terms of sections 15 and 16 of this License; or</li>
-
-<li>b) Requiring preservation of specified reasonable legal notices or
- author attributions in that material or in the Appropriate Legal
- Notices displayed by works containing it; or</li>
-
-<li>c) Prohibiting misrepresentation of the origin of that material, or
- requiring that modified versions of such material be marked in
- reasonable ways as different from the original version; or</li>
-
-<li>d) Limiting the use for publicity purposes of names of licensors or
- authors of the material; or</li>
-
-<li>e) Declining to grant rights under trademark law for use of some
- trade names, trademarks, or service marks; or</li>
-
-<li>f) Requiring indemnification of licensors and authors of that
- material by anyone who conveys the material (or modified versions of
- it) with contractual assumptions of liability to the recipient, for
- any liability that these contractual assumptions directly impose on
- those licensors and authors.</li>
-</ul>
-
-<p>All other non-permissive additional terms are considered “further
-restrictions” within the meaning of section 10. If the Program as you
-received it, or any part of it, contains a notice stating that it is
-governed by this License along with a term that is a further
-restriction, you may remove that term. If a license document contains
-a further restriction but permits relicensing or conveying under this
-License, you may add to a covered work material governed by the terms
-of that license document, provided that the further restriction does
-not survive such relicensing or conveying.</p>
-
-<p>If you add terms to a covered work in accord with this section, you
-must place, in the relevant source files, a statement of the
-additional terms that apply to those files, or a notice indicating
-where to find the applicable terms.</p>
-
-<p>Additional terms, permissive or non-permissive, may be stated in the
-form of a separately written license, or stated as exceptions;
-the above requirements apply either way.</p>
-
-<h4>8. Termination.</h4>
-
-<p>You may not propagate or modify a covered work except as expressly
-provided under this License. Any attempt otherwise to propagate or
-modify it is void, and will automatically terminate your rights under
-this License (including any patent licenses granted under the third
-paragraph of section 11).</p>
-
-<p>However, if you cease all violation of this License, then your
-license from a particular copyright holder is reinstated (a)
-provisionally, unless and until the copyright holder explicitly and
-finally terminates your license, and (b) permanently, if the copyright
-holder fails to notify you of the violation by some reasonable means
-prior to 60 days after the cessation.</p>
-
-<p>Moreover, your license from a particular copyright holder is
-reinstated permanently if the copyright holder notifies you of the
-violation by some reasonable means, this is the first time you have
-received notice of violation of this License (for any work) from that
-copyright holder, and you cure the violation prior to 30 days after
-your receipt of the notice.</p>
-
-<p>Termination of your rights under this section does not terminate the
-licenses of parties who have received copies or rights from you under
-this License. If your rights have been terminated and not permanently
-reinstated, you do not qualify to receive new licenses for the same
-material under section 10.</p>
-
-<h4>9. Acceptance Not Required for Having Copies.</h4>
-
-<p>You are not required to accept this License in order to receive or
-run a copy of the Program. Ancillary propagation of a covered work
-occurring solely as a consequence of using peer-to-peer transmission
-to receive a copy likewise does not require acceptance. However,
-nothing other than this License grants you permission to propagate or
-modify any covered work. These actions infringe copyright if you do
-not accept this License. Therefore, by modifying or propagating a
-covered work, you indicate your acceptance of this License to do so.</p>
-
-<h4>10. Automatic Licensing of Downstream Recipients.</h4>
-
-<p>Each time you convey a covered work, the recipient automatically
-receives a license from the original licensors, to run, modify and
-propagate that work, subject to this License. You are not responsible
-for enforcing compliance by third parties with this License.</p>
-
-<p>An “entity transaction” is a transaction transferring control of an
-organization, or substantially all assets of one, or subdividing an
-organization, or merging organizations. If propagation of a covered
-work results from an entity transaction, each party to that
-transaction who receives a copy of the work also receives whatever
-licenses to the work the party's predecessor in interest had or could
-give under the previous paragraph, plus a right to possession of the
-Corresponding Source of the work from the predecessor in interest, if
-the predecessor has it or can get it with reasonable efforts.</p>
-
-<p>You may not impose any further restrictions on the exercise of the
-rights granted or affirmed under this License. For example, you may
-not impose a license fee, royalty, or other charge for exercise of
-rights granted under this License, and you may not initiate litigation
-(including a cross-claim or counterclaim in a lawsuit) alleging that
-any patent claim is infringed by making, using, selling, offering for
-sale, or importing the Program or any portion of it.</p>
-
-<h4>11. Patents.</h4>
-
-<p>A “contributor” is a copyright holder who authorizes use under this
-License of the Program or a work on which the Program is based. The
-work thus licensed is called the contributor's “contributor version”.</p>
-
-<p>A contributor's “essential patent claims” are all patent claims
-owned or controlled by the contributor, whether already acquired or
-hereafter acquired, that would be infringed by some manner, permitted
-by this License, of making, using, or selling its contributor version,
-but do not include claims that would be infringed only as a
-consequence of further modification of the contributor version. For
-purposes of this definition, “control” includes the right to grant
-patent sublicenses in a manner consistent with the requirements of
-this License.</p>
-
-<p>Each contributor grants you a non-exclusive, worldwide, royalty-free
-patent license under the contributor's essential patent claims, to
-make, use, sell, offer for sale, import and otherwise run, modify and
-propagate the contents of its contributor version.</p>
-
-<p>In the following three paragraphs, a “patent license” is any express
-agreement or commitment, however denominated, not to enforce a patent
-(such as an express permission to practice a patent or covenant not to
-sue for patent infringement). To “grant” such a patent license to a
-party means to make such an agreement or commitment not to enforce a
-patent against the party.</p>
-
-<p>If you convey a covered work, knowingly relying on a patent license,
-and the Corresponding Source of the work is not available for anyone
-to copy, free of charge and under the terms of this License, through a
-publicly available network server or other readily accessible means,
-then you must either (1) cause the Corresponding Source to be so
-available, or (2) arrange to deprive yourself of the benefit of the
-patent license for this particular work, or (3) arrange, in a manner
-consistent with the requirements of this License, to extend the patent
-license to downstream recipients. “Knowingly relying” means you have
-actual knowledge that, but for the patent license, your conveying the
-covered work in a country, or your recipient's use of the covered work
-in a country, would infringe one or more identifiable patents in that
-country that you have reason to believe are valid.</p>
-
-<p>If, pursuant to or in connection with a single transaction or
-arrangement, you convey, or propagate by procuring conveyance of, a
-covered work, and grant a patent license to some of the parties
-receiving the covered work authorizing them to use, propagate, modify
-or convey a specific copy of the covered work, then the patent license
-you grant is automatically extended to all recipients of the covered
-work and works based on it.</p>
-
-<p>A patent license is “discriminatory” if it does not include within
-the scope of its coverage, prohibits the exercise of, or is
-conditioned on the non-exercise of one or more of the rights that are
-specifically granted under this License. You may not convey a covered
-work if you are a party to an arrangement with a third party that is
-in the business of distributing software, under which you make payment
-to the third party based on the extent of your activity of conveying
-the work, and under which the third party grants, to any of the
-parties who would receive the covered work from you, a discriminatory
-patent license (a) in connection with copies of the covered work
-conveyed by you (or copies made from those copies), or (b) primarily
-for and in connection with specific products or compilations that
-contain the covered work, unless you entered into that arrangement,
-or that patent license was granted, prior to 28 March 2007.</p>
-
-<p>Nothing in this License shall be construed as excluding or limiting
-any implied license or other defenses to infringement that may
-otherwise be available to you under applicable patent law.</p>
-
-<h4>12. No Surrender of Others' Freedom.</h4>
-
-<p>If conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot convey a
-covered work so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you may
-not convey it at all. For example, if you agree to terms that obligate you
-to collect a royalty for further conveying from those to whom you convey
-the Program, the only way you could satisfy both those terms and this
-License would be to refrain entirely from conveying the Program.</p>
-
-<h4>13. Use with the GNU Affero General Public License.</h4>
-
-<p>Notwithstanding any other provision of this License, you have
-permission to link or combine any covered work with a work licensed
-under version 3 of the GNU Affero General Public License into a single
-combined work, and to convey the resulting work. The terms of this
-License will continue to apply to the part which is the covered work,
-but the special requirements of the GNU Affero General Public License,
-section 13, concerning interaction through a network will apply to the
-combination as such.</p>
-
-<h4>14. Revised Versions of this License.</h4>
-
-<p>The Free Software Foundation may publish revised and/or new versions of
-the GNU General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.</p>
-
-<p>Each version is given a distinguishing version number. If the
-Program specifies that a certain numbered version of the GNU General
-Public License “or any later version” applies to it, you have the
-option of following the terms and conditions either of that numbered
-version or of any later version published by the Free Software
-Foundation. If the Program does not specify a version number of the
-GNU General Public License, you may choose any version ever published
-by the Free Software Foundation.</p>
-
-<p>If the Program specifies that a proxy can decide which future
-versions of the GNU General Public License can be used, that proxy's
-public statement of acceptance of a version permanently authorizes you
-to choose that version for the Program.</p>
-
-<p>Later license versions may give you additional or different
-permissions. However, no additional obligations are imposed on any
-author or copyright holder as a result of your choosing to follow a
-later version.</p>
-
-<h4>15. Disclaimer of Warranty.</h4>
-
-<p>THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
-APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
-HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM “AS IS” WITHOUT WARRANTY
-OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
-IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
-ALL NECESSARY SERVICING, REPAIR OR CORRECTION.</p>
-
-<h4>16. Limitation of Liability.</h4>
-
-<p>IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
-THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
-GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
-USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
-DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
-PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
-EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
-SUCH DAMAGES.</p>
-
-<h4>17. Interpretation of Sections 15 and 16.</h4>
-
-<p>If the disclaimer of warranty and limitation of liability provided
-above cannot be given local legal effect according to their terms,
-reviewing courts shall apply local law that most closely approximates
-an absolute waiver of all civil liability in connection with the
-Program, unless a warranty or assumption of liability accompanies a
-copy of the Program in return for a fee.</p>
-
-<p>END OF TERMS AND CONDITIONS</p>
-
-<h3>How to Apply These Terms to Your New Programs</h3>
-
-<p>If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.</p>
-
-<p>To do so, attach the following notices to the program. It is safest
-to attach them to the start of each source file to most effectively
-state the exclusion of warranty; and each file should have at least
-the “copyright” line and a pointer to where the full notice is found.</p>
-
-<pre> &lt;one line to give the program's name and a brief idea of what it does.&gt;
- Copyright (C) &lt;year&gt; &lt;name of author&gt;
-
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see &lt;http://www.gnu.org/licenses/&gt;.
-</pre>
-
-<p>Also add information on how to contact you by electronic and paper mail.</p>
-
-<p>If the program does terminal interaction, make it output a short
-notice like this when it starts in an interactive mode:</p>
-
-<pre> &lt;program&gt; Copyright (C) &lt;year&gt; &lt;name of author&gt;
- This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- This is free software, and you are welcome to redistribute it
- under certain conditions; type `show c' for details.
-</pre>
-
-<p>The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License. Of course, your program's commands
-might be different; for a GUI interface, you would use an “about box”.</p>
-
-<p>You should also get your employer (if you work as a programmer) or school,
-if any, to sign a “copyright disclaimer” for the program, if necessary.
-For more information on this, and how to apply and follow the GNU GPL, see
-&lt;<a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>&gt;.</p>
-
-<p>The GNU General Public License does not permit incorporating your program
-into proprietary programs. If your program is a subroutine library, you
-may consider it more useful to permit linking proprietary applications with
-the library. If this is what you want to do, use the GNU Lesser General
-Public License instead of this License. But first, please read
-&lt;<a href="http://www.gnu.org/philosophy/why-not-lgpl.html">http://www.gnu.org/philosophy/why-not-lgpl.html</a>&gt;.</p>
-
- </div>
-
- </div>
-
-</div>
-
-
-
-</body></html>
diff --git a/docs/howtos/encrypted_trisquel.html b/docs/howtos/encrypted_trisquel.html
new file mode 100644
index 00000000..2529da4c
--- /dev/null
+++ b/docs/howtos/encrypted_trisquel.html
@@ -0,0 +1,321 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+
+ <style type="text/css">
+ body {
+ background:#fff;
+ color:#000;
+ font-family:sans-serif;
+ font-size:1em;
+ }
+ div.important {
+ background-color:#ccc;
+ }
+ </style>
+
+ <title>Installing Trisquel GNU/Linux with full disk encryption (including /boot)</title>
+</head>
+
+<body>
+ <header>
+ <h1>Installing Trisquel GNU/Linux with full disk encryption (including /boot)</h1>
+ <aside>Or <a href="../index.html">back to main index</a></aside>
+ </header>
+
+ <p>
+ Because GRUB is installed directly as a payload of libreboot (or coreboot), you don't need an unencrypted /boot partition
+ when setting up an encrypted system. This means that your machine can really secure data while powered off.
+ </p>
+
+ <p>
+ This works in Trisquel 7, and probably Trisquel 6. Boot the 'net installer' (Install Trisquel in Text Mode). <a href="grub_boot_installer.html">How to boot a GNU/Linux installer</a>.
+ </p>
+
+ <p>
+ Set a strong user password (ideally above 40 characters, of lowercase/uppercase, numbers and symbols) and when the installer asks you to setup
+ encryption (ecryptfs) for your home directory, select 'Yes'.
+ </p>
+
+ <p>
+ <b>
+ Your user password should be different than the LUKS password which you will set later on.
+ Your LUKS password should, like the user password, be secure.
+ </b>
+ </p>
+
+ <h1>Partitioning</h1>
+
+ <p>Choose 'Manual' partitioning:</p>
+ <ul>
+ <li>Select drive and create new partition table</li>
+ <li>
+ Single large partition. The following are mostly defaults:
+ <ul>
+ <li>Use as: physical volume for encryption</li>
+ <li>Encryption: aes</li>
+ <li>key size: 256</li>
+ <li>IV algorithm: xts-plain64</li>
+ <li>Encryption key: passphrase</li>
+ <li>erase data: Yes (only choose 'No' if it's a new drive that doesn't contain your private data)</li>
+ </ul>
+ </li>
+ <li>
+ Select 'configure encrypted volumes'
+ <ul>
+ <li>Create encrypted volumes</li>
+ <li>Select your partition</li>
+ <li>Finish</li>
+ <li>Really erase: Yes</li>
+ <li>(erase will take a long time. be patient)</li>
+ </ul>
+ </li>
+ <li>
+ Select encrypted space:
+ <ul>
+ <li>use as: physical volume for LVM</li>
+ <li>Choose 'done setting up the partition'</li>
+ </ul>
+ </li>
+ <li>
+ Configure the logical volume manager:
+ <ul>
+ <li>Keep settings: Yes</li>
+ </ul>
+ </li>
+ <li>
+ Create volume group:
+ <ul>
+ <li>Name: <b>buzz</b> (you can use whatever you want here, this is just an example)</li>
+ <li>Select crypto partition</li>
+ </ul>
+ </li>
+ <li>
+ Create logical volume
+ <ul>
+ <li>select <b>buzz</b> (or whatever you named it before)</li>
+ <li>name: <b>distro</b> (you can use whatever you want here, this is just an example)</li>
+ <li>size: default, minus 2048 MB</li>
+ </ul>
+ </li>
+ <li>
+ Create logical volume
+ <ul>
+ <li>select <b>buzz</b> (or whatever you named it before)</li>
+ <li>name: <b>swap</b> (you can use whatever you want here, this is just an example)</li>
+ <li>size: press enter</li>
+ </ul>
+ </li>
+ </ul>
+
+ <h1>Further partitioning</h1>
+
+ <p>
+ Now you are back at the main partitioning screen. You will simply set mountpoints and filesystems to use.
+ </p>
+ <ul>
+ <li>
+ LVM LV distro
+ <ul>
+ <li>use as: ext4</li>
+ <li>mount point: /</li>
+ <li>done setting up partition</li>
+ </ul>
+ </li>
+ <li>
+ LVM LV swap
+ <ul>
+ <li>use as: swap area</li>
+ <li>done setting up partition</li>
+ </ul>
+ </li>
+ <li>Now you select 'Finished partitioning and write changes to disk'.</li>
+ </ul>
+
+ <h1>Kernel</h1>
+
+ <p>
+ Installation will ask what kernel you want to use. linux-generic is fine.
+ </p>
+
+ <h1>Tasksel</h1>
+
+ <p>
+ Just continue here, without selecting anything. You can install everything later (it's really easy).
+ </p>
+
+ <h1>Install the GRUB boot loader to the master boot record</h1>
+
+ <p>
+ Choose 'Yes'. It will fail, but don't worry. Then at the main menu, choose 'Continue without a bootloader'.
+ </p>
+
+ <p>
+ <i>You do not need to install GRUB at all, since in libreboot you are using the GRUB payload (for libreboot) to boot your system directly.</i>
+ </p>
+
+ <h1>Clock UTC</h1>
+
+ <p>
+ Just say 'Yes'.
+ </p>
+
+ <h1>
+ Booting your system
+ </h1>
+
+ <p>
+ At this point, you will have finished the installation. At your GRUB payload, press C to get to the command line.
+ </p>
+
+ <p>
+ Do that:<br/>
+ grub&gt; <b>cryptomount -a (ahci0,msdos1)</b><br/>
+ grub&gt; <b>set root='lvm/buzz-distro'</b><br/>
+ grub&gt; <b>linux /vmlinuz root=/dev/mapper/buzz-distro cryptdevice=/dev/mapper/buzz-distro:root quiet splash ro</b><br/>
+ grub&gt; <b>initrd /initrd.img</b><br/>
+ grub&gt; <b>boot</b>
+ </p>
+
+ <h1>
+ ecryptfs
+ </h1>
+
+ <p>
+ Immediately after logging in, do that:<br/>
+ $ <b>sudo ecryptfs-unwrap-passphrase</b>
+ </p>
+
+ <p>
+ This will be needed in the future if you ever need to recover your home directory from another system, so write it down and keep the note
+ somewhere secret. Ideally, you should memorize it and then burn the note (or not even write it down, and memorize it still)>
+ </p>
+
+ <h1>
+ Modify grub.cfg (CBFS)
+ </h1>
+
+ <p>
+ Now you need to set it up so that the system will automatically boot, without having to type a bunch of commands.
+ </p>
+
+ <p>
+ Modify your grub.cfg (in the firmware) <a href="grub_cbfs.html">using this tutorial</a>;
+ just change the default menu entry 'Load Operating System' to say this inside:
+ </p>
+
+ <p>
+ <b>cryptomount -a (ahci0,msdos1)</b><br/>
+ <b>set root='lvm/buzz-distro'</b><br/>
+ <b>linux /vmlinuz root=/dev/mapper/buzz-distro cryptdevice=/dev/mapper/buzz-distro:root quiet splash ro</b><br/>
+ <b>initrd /initrd.img</b>
+ </p>
+
+ <p>
+ Additionally, you should set a GRUB password. This is not your LUKS password, but it's a password that you have to enter to see
+ GRUB. This protects your system from an attacker simply booting a live USB and re-flashing your firmware. <b>This should be different than your LUKS passphrase and user password.</b>
+ </p>
+
+ <p>
+ The GRUB utility can be used like so:<br/>
+ $ <b>grub-mkpasswd-pbkdf2</b>
+ </p>
+
+ <p>
+ Give it a password (remember, it has to be secure) and it'll output something like:<br/>
+ <b>grub.pbkdf2.sha512.10000.711F186347156BC105CD83A2ED7AF1EB971AA2B1EB2640172F34B0DEFFC97E654AF48E5F0C3B7622502B76458DA494270CC0EA6504411D676E6752FD1651E749.8DD11178EB8D1F633308FD8FCC64D0B243F949B9B99CCEADE2ECA11657A757D22025986B0FA116F1D5191E0A22677674C994EDBFADE62240E9D161688266A711</b>
+ </p>
+
+ <p>
+ Put that in the grub.cfg (the one for CBFS inside the ROM) before the 'Load Operating System' menu entry like so (example):<br/>
+ </p>
+ <pre>
+<b>set superusers=&quot;root&quot;</b>
+<b>password_pbkdf2 root grub.pbkdf2.sha512.10000.711F186347156BC105CD83A2ED7AF1EB971AA2B1EB2640172F34B0DEFFC97E654AF48E5F0C3B7622502B76458DA494270CC0EA6504411D676E6752FD1651E749.8DD11178EB8D1F633308FD8FCC64D0B243F949B9B99CCEADE2ECA11657A757D22025986B0FA116F1D5191E0A22677674C994EDBFADE62240E9D161688266A711</b>
+ </pre>
+
+ <p>
+ Obviously, replace it with the correct hash that you actually got for the password that you entered. Meaning, not the hash that you see above!
+ </p>
+
+ <p>
+ After this, you will have a modified ROM with the menu entry for cryptomount, and the entry before that for the GRUB password. Flash the modified ROM
+ using <a href="../index.html#flashrom">this tutorial</a>.
+ </p>
+
+ <h1>
+ Update Trisquel
+ </h1>
+
+ <p>
+ $ <b>sudo apt-get update</b><br/>
+ $ <b>sudo apt-get upgrade</b>
+ </p>
+
+ <p>
+ At the time of writing, Trisquel 7 had <a href="https://bugs.launchpad.net/ubuntu/+source/sudo/+bug/1274680">this</a>
+ bug from upstream. The workaround identified in <a href="https://trisquel.info/en/forum/trisquel-7-memory-leak-issues">this page</a>
+ was as follows:<br/>
+ $ <b>sudo apt-get remove libpam-smbpass</b>
+ </p>
+
+ <h1>
+ Install a desktop (optional)
+ </h1>
+
+ <p>
+ Installs the default desktop:<br/>
+ $ <b>sudo apt-get install trisquel</b>
+ </p>
+
+ <p>
+ It might ask for postfix configuration. I just choose 'No configuration'.
+ </p>
+
+ <p>
+ Next time you boot, it'll start lightdm and you can login. To start lightdm now, do:<br/>
+ $ <b>sudo service lightdm start</b>
+ </p>
+
+ <p>
+ Go back to the terminal (ctrl-alt-f1) and exit:<br/>
+ $ <b>exit</b>
+ </p>
+
+ <p>
+ Go back to lightdm (ctrl-alt-f7) and login.
+ </p>
+
+ <p>
+ Since you installed using net install and you only installed the base system, network-manager isn't controlling
+ your eth0 but instead /etc/network/interfaces is. Comment out the eth0 lines in that file, and then do:<br/>
+ $ <b>sudo /etc/init.d/networking stop</b><br/>
+ $ <b>sudo service network-manager restart</b>
+ </p>
+
+ <h1>
+ Conclusion
+ </h1>
+
+ <p>
+ If you followed all that correctly, you should now have a fully encrypted system.
+ </p>
+
+<hr/>
+
+ <p>
+ Copyright &copy; 2014 Francis Rowe &lt;info@gluglug.org.uk&gt;<br/>
+ This document is released under the Creative Commons Attribution-ShareAlike 4.0 International Public License and all future versions.
+ A copy of the license can be found at <a href="../license.txt">../license.txt</a>.
+ </p>
+
+ <p>
+ This document is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See <a href="../license.txt">../license.txt</a> for more information.
+ </p>
+
+</body>
+</html>
diff --git a/docs/howtos/grub_boot_installer.html b/docs/howtos/grub_boot_installer.html
index 9377cfc1..38a47955 100644
--- a/docs/howtos/grub_boot_installer.html
+++ b/docs/howtos/grub_boot_installer.html
@@ -63,11 +63,43 @@
the way you specified.
</p>
+ <h1>Troubleshooting</h1>
+
+ <h2>debian-installer (trisquel net install) graphical corruption in text-mode</h2>
+ <p>
+ When using the ROM images that use coreboot's &quot;text mode&quot; instead of the coreboot framebuffer,
+ booting the Trisquel net installer results in graphical corruption because it is trying to switch to a framebuffer which doesn't
+ exist. Use that kernel parameter on the 'linux' line when booting it:<br/>
+ <b>vga=normal fb=false</b>
+ </p>
+
+ <p>
+ Tested in Trisquel 6 (and 7). This forces debian-installer to start in text-mode, instead of trying to switch to a framebuffer.
+ </p>
+
+ <p>
+ If selecting text-mode from a GRUB menu created using the ISOLINUX parser, you can press E on the menu entry to add this.
+ Or, if you are booting manually (from GRUB terminal) then just add the parameters.
+ </p>
+
+ <p>
+ This workaround was found on the page: <a href="https://www.debian.org/releases/stable/i386/ch05s04.html">https://www.debian.org/releases/stable/i386/ch05s04.html</a>.
+ It should also work for gNewSense, Debian and any other apt-get distro that provides debian-installer (text mode) net install method.
+ </p>
+
<hr/>
<p>
- Copyright &copy; 2014 Francis Rowe, All Rights Reserved.<br/>
- See <a href="../license.html">../license.html</a> for license conditions.
+ Copyright &copy; 2014 Francis Rowe &lt;info@gluglug.org.uk&gt;<br/>
+ This document is released under the Creative Commons Attribution-ShareAlike 4.0 International Public License and all future versions.
+ A copy of the license can be found at <a href="../license.txt">../license.txt</a>.
</p>
+
+ <p>
+ This document is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See <a href="../license.txt">../license.txt</a> for more information.
+ </p>
+
</body>
</html>
diff --git a/docs/howtos/grub_cbfs.html b/docs/howtos/grub_cbfs.html
index d95904d0..b82a12a9 100644
--- a/docs/howtos/grub_cbfs.html
+++ b/docs/howtos/grub_cbfs.html
@@ -11,6 +11,9 @@
font-family:sans-serif;
font-size:1em;
}
+ div.important {
+ background-color:#ccc;
+ }
</style>
<title>Libreboot documentation: GRUB menu</title>
@@ -42,12 +45,11 @@
<p>
Download libreboot_src.tar.gz or libreboot_bin.tar.gz from <a href="http://libreboot.org/" target="_blank">http://libreboot.org/</a>
- <br/><b>If you downloaded libreboot_meta.tar.gz, refer to <a href="../index.html#build_meta">../index.html#build_meta</a> before continuing.</b>
+ <br/><b>If you downloaded libreboot from git, refer to <a href="../index.html#build_meta">../index.html#build_meta</a> before continuing.</b>
</p>
<p>
- On apt-get distributions such as Trisquel you can install the build dependency (GCC) by running:<br/>
- <b>$ sudo apt-get install build-essential</b>
+ First, <a href="../index.html#build_dependencies">install the build dependencies</a>.
</p>
<p>
@@ -74,21 +76,152 @@
</p>
<p>
+ If you currently have flashed a ROM image from an older version, it is recommended to update first: basically, modify one of the latest ROM's
+ and then flash it.
+ </p>
+
+ <p>
Display contents of ROM:<br/>
<b>$ ./cbfstool libreboot_usqwerty.rom print</b>
</p>
<p>
- The libreboot_usqwerty.rom file contains your grub.cfg.
+ The libreboot_usqwerty.rom file contains your grub.cfg, along with a copy called grubtest.cfg.
+ You should extract, modify and re-insert the copy first. grub.cfg will load first, but it has a menu entry for switching to the copy (grubtest.cfg).
+ This reduces your chance of making a mistake that could make your machine unbootable (or very hard to boot).
</p>
<p>
Extract grub.cfg from the ROM:<br/>
- <b>$ ./cbfstool libreboot_usqwerty.rom extract -n grub.cfg -f grub.cfg</b>
+ <b>$ ./cbfstool libreboot_usqwerty.rom extract -n grubtest.cfg -f grubtest.cfg</b>
</p>
<p>
- Now you have a grub.cfg in cbfstool directory. Edit it however you wish.
+ Now you have a grubtest.cfg in cbfstool directory. Edit it however you wish.
+ </p>
+
+ <div class="important">
+
+ <h2>Example modification (Trisquel GNU/Linux, can also be adapted, or copied, for other apt-get distros)</h2>
+
+ <p>
+ Look at the 3 lines under the menu entry 'Load Operating System'; these are all you need to change.
+ </p>
+
+ <p>
+ As an example, on my test system in /boot/grub/grub.cfg I see for the main menu entry:
+ <b>linux /boot/vmlinuz-3.15.1-gnu.nonpae root=UUID=3a008e14-4871-497b-95e5-fb180f277951 ro crashkernel=384M-2G:64M,2G-:128M quiet splash $vt_handoff</b>
+ <b>initrd /boot/initrd.img-3.15.1-gnu.nonpae</b>
+ </p>
+
+ <p>
+ crashkernel=384M-2G:64M,2G-:128M and $vt_handoff can be safely ignored.
+ </p>
+
+ <p>
+ I use this to get my partition layout:<br/>
+ $ <b>lsblk</b>
+ </p>
+
+ <p>
+ In my case, I have no /boot partition, instead /boot is on the same partition as / on sda1. Yours might be different.
+ In GRUB terms, sda means ahci0. 1 means msdos1, or gpt1, depending on whether I am using MBR or GPT partitioning.
+ Thus, /dev/sda1 is GRUB is (ahci0,msdos1) or (ahci0,gpt1). In my case, I use MBR partitioning so it's (ahci0,msdos1).
+ 'msdos' is GRUB's name simply because this partitioning type is traditionally used by MS-DOS. It doesn't mean you have a
+ proprietary OS.
+ </p>
+
+ <p>
+ Trisquel doesn't keep the filenames of kernels consistent, instead it keeps old kernels and new kernel updates are provided
+ with the version in the filename. This can make GRUB payload a bit tricky. Fortunately, there are symlinks /vmlinuz and /initrd.img
+ so if your /boot and / are on the same partition, you can set GRUB to boot from that. These are also updated automatically when
+ installing kernel updates from your distributions apt-get repositories.
+ NOte: when using jxself.org/linux-libre kernels, these are not updated at all and you have to update them manually.
+ </p>
+
+ <p>
+ For the GRUB payload's grub.cfg (in 'Load Operating System' menu entry), we therefore have (in this example):<br/>
+ <b>set root='ahci0,msdos1'</b><br/>
+ <b>linux /vmlinuz root=UUID=3a008e14-4871-497b-95e5-fb180f277951 ro quiet splash</b><br/>
+ <b>initrd /initrd.img</b>
+ </p>
+
+ <p>
+ Optionally, you can convert the UUID to it's real device name, for example /dev/sda1 in this case.
+ sdX naming isn't very reliable, though, which is why UUID is used for most distributions.
+ </p>
+
+ <p>
+ Alternatively, if your /boot is on a separate partition then you cannot rely on the /vmlinuz and /initrd.img symlinks.
+ Instead, go into /boot and create your own symlinks (update them manually when you install a new kernel update).<br/>
+ $ <b>sudo -s</b><br/>
+ # <b>cd /boot/</b><br/>
+ # <b>rm -rf vmlinuz initrd.img</b><br/>
+ # <b>ln -s <u>kernel</u> ksym</b><br/>
+ # <b>ln -s <u>initrd</u> isym</b><br/>
+ # <b>exit</b>
+ </p>
+
+ <p>
+ Replace the underlined <b>kernel</b> and <b>initrd</b> filenames above with the actual filenames, of course.
+ </p>
+
+ <p>
+ Then your grub.cfg menu entry (for payload) becomes like that, for example if / was on sda2 and /boot was on sda1:<br/>
+ <b>set root='ahci0,msdos1'</b><br/>
+ <b>linux /ksym root=/dev/sda2 ro quiet splash</b><br/>
+ <b>initrd /isym</b>
+ </p>
+
+ <p>
+ There are lots of possible variations so please try to adapt.
+ </p>
+
+ <h2>Parabola GNU/Linux-libre</h2>
+
+ <p>
+ You can basically adapt the above. Note however that Parabola does not keep old kernels still installed, and the file names
+ are always consistent, so you don't need to boot from symlinks, you can just use the real thing directly.
+ </p>
+
+ </div>
+
+ <p>
+ Now you have your modified grub.cfg. (right?)
+ </p>
+
+ <p>
+ Delete the grubtest.cfg that remained inside the ROM:<br/>
+ <b>$ ./cbfstool libreboot_usqwerty.rom remove -n grubtest.cfg</b>
+ </p>
+
+ <p>
+ Display ROM contents and now you see grubtest.cfg no longer exists there:<br/>
+ <b>$ ./cbfstool libreboot_usqwerty.rom print</b>
+ </p>
+
+ <p>
+ Add the modified version that you just made:<br/>
+ <b>$ ./cbfstool libreboot_usqwerty.rom add -n grubtest.cfg -f grubtest.cfg -t raw</b>
+ </p>
+
+ <p>
+ Now display ROM contents again and see that it exists again:<br/>
+ <b>$ ./cbfstool libreboot_usqwerty.rom print</b>
+ </p>
+
+ <p>
+ Now you have a modified ROM. Refer back to <a href="../index.html#flashrom">../index.html#flashrom</a> for information
+ on how to flash it.
+ </p>
+
+ <p>
+ Choose (in GRUB) the menu entry that switches to grubtest.cfg. If it works, then your config is safe and you can continue below.
+ </p>
+
+ <p>
+ Rename (just reduce confusion):<br/>
+ $ <b>mv grubtest.cfg grub.cfg</b>
</p>
<p>
@@ -117,14 +250,25 @@
</p>
<p>
+ If all went well, GRUB should now boot your system the way you intended.
+ </p>
+
+ <p>
<b>Anecdotally, a user reported that segmentation faults occur with cbfstool when using this procedure depending on the size of the grub.cfg being re-insterted. In his case, a minimum size of 857 bytes was required. This could (at the time of this release) be a bug in cbfstool that should be investigated with the coreboot community. If cbfstool segfaults, then keep this in mind. 'strace' (or gdb? clang?) could be used for debugging. This was in libreboot 5th release (based on coreboot from late 2013). Not sure if the issue perists in the 6th release (based on coreboot from June 1st, 2014 at the time of writing); I have never personally encountered the bug. strace (from that user) is here: <a href="cbfstool_libreboot5_strace">cbfstool_libreboot5_strace</a>. The issue has been reported by a few users, so does not happen all the time: this bug (if it still exists) could (should) be reproduced.</b>
</p>
<hr/>
<p>
- Copyright &copy; 2014 Francis Rowe, All Rights Reserved.<br/>
- See <a href="../license.html">../license.html</a> for license conditions.
+ Copyright &copy; 2014 Francis Rowe &lt;info@gluglug.org.uk&gt;<br/>
+ This document is released under the Creative Commons Attribution-ShareAlike 4.0 International Public License and all future versions.
+ A copy of the license can be found at <a href="../license.txt">../license.txt</a>.
+ </p>
+
+ <p>
+ This document is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See <a href="../license.txt">../license.txt</a> for more information.
</p>
</body>
diff --git a/docs/howtos/t60_dev/t60_unbrick.jpg b/docs/howtos/t60_dev/t60_unbrick.jpg
new file mode 100644
index 00000000..820a9b42
--- /dev/null
+++ b/docs/howtos/t60_dev/t60_unbrick.jpg
Binary files differ
diff --git a/docs/howtos/t60_heatsink.html b/docs/howtos/t60_heatsink.html
index d2d52fdb..f10ea60c 100644
--- a/docs/howtos/t60_heatsink.html
+++ b/docs/howtos/t60_heatsink.html
@@ -118,8 +118,15 @@
<hr/>
<p>
- Copyright &copy; 2014 Francis Rowe, All Rights Reserved.<br/>
- See <a href="../license.html">../license.html</a> for license conditions.
+ Copyright &copy; 2014 Francis Rowe &lt;info@gluglug.org.uk&gt;<br/>
+ This document is released under the Creative Commons Attribution-ShareAlike 4.0 International Public License and all future versions.
+ A copy of the license can be found at <a href="../license.txt">../license.txt</a>.
+ </p>
+
+ <p>
+ This document is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See <a href="../license.txt">../license.txt</a> for more information.
</p>
</body>
diff --git a/docs/howtos/t60_lcd_15.html b/docs/howtos/t60_lcd_15.html
index b5fbd5f5..3b382f5a 100644
--- a/docs/howtos/t60_lcd_15.html
+++ b/docs/howtos/t60_lcd_15.html
@@ -79,8 +79,15 @@
<hr/>
<p>
- Copyright &copy; 2014 Francis Rowe, All Rights Reserved.<br/>
- See <a href="../license.html">../license.html</a> for license conditions.
+ Copyright &copy; 2014 Francis Rowe &lt;info@gluglug.org.uk&gt;<br/>
+ This document is released under the Creative Commons Attribution-ShareAlike 4.0 International Public License and all future versions.
+ A copy of the license can be found at <a href="../license.txt">../license.txt</a>.
+ </p>
+
+ <p>
+ This document is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See <a href="../license.txt">../license.txt</a> for more information.
</p>
</body>
diff --git a/docs/howtos/t60_mainboard/t60_ati_gpu.jpg b/docs/howtos/t60_mainboard/t60_ati_gpu.jpg
deleted file mode 100644
index d2c83db2..00000000
--- a/docs/howtos/t60_mainboard/t60_ati_gpu.jpg
+++ /dev/null
Binary files differ
diff --git a/docs/howtos/t60_mainboard/t60_intel_gpu.jpg b/docs/howtos/t60_mainboard/t60_intel_gpu.jpg
deleted file mode 100644
index 46fc5619..00000000
--- a/docs/howtos/t60_mainboard/t60_intel_gpu.jpg
+++ /dev/null
Binary files differ
diff --git a/docs/howtos/t60_security.html b/docs/howtos/t60_security.html
index 0ce36456..27d1e75e 100644
--- a/docs/howtos/t60_security.html
+++ b/docs/howtos/t60_security.html
@@ -346,12 +346,6 @@
</ul>
</li>
<li>
- Software-based security hardening (GRUB trust/cryptomount, kernel LUKS/ecryptfs, etc).
- <ul>
- <li>modify grub to delay password attemps by a few seconds, and fail after a set time (and record all attemps in a counter, writing that to nvram)</li>
- </ul>
- </li>
- <li>
General tips/advice and web links showing how to detect physical intrusions.
</li>
<li>
@@ -386,10 +380,17 @@
<li>Atheros PCI wifi: unknown, but lower than intel wifi.</li>
<li>Microphone: only problematic if the computer gets compromised.</li>
<li>Speakers: only problematic if the computer gets compromised.</li>
- <li>EC: can be mitigated if following the <b>(not yet written)</b> guide on software security.</li>
+ <li>EC: can be mitigated if following the guide on software security.</li>
</ul>
<h1>
+ Further reading material (software security)
+ </h1>
+ <ul>
+ <li><a href="encrypted_trisquel.html">Installing Trisquel GNU/Linux with full disk encryption (including /boot)</a></li>
+ </ul>
+
+ <h1>
References
</h1>
<h2 id="ref1">[1] physical access</h2>
@@ -423,8 +424,15 @@
<hr/>
<p>
- Copyright &copy; 2014 Francis Rowe, All Rights Reserved.<br/>
- See <a href="../license.html">../license.html</a> for license conditions.
+ Copyright &copy; 2014 Francis Rowe &lt;info@gluglug.org.uk&gt;<br/>
+ This document is released under the Creative Commons Attribution-ShareAlike 4.0 International Public License and all future versions.
+ A copy of the license can be found at <a href="../license.txt">../license.txt</a>.
+ </p>
+
+ <p>
+ This document is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See <a href="../license.txt">../license.txt</a> for more information.
</p>
</body>
diff --git a/docs/howtos/t60_unbrick.html b/docs/howtos/t60_unbrick.html
index 9a262126..69648e1c 100644
--- a/docs/howtos/t60_unbrick.html
+++ b/docs/howtos/t60_unbrick.html
@@ -304,8 +304,15 @@
<hr/>
<p>
- Copyright &copy; 2014 Francis Rowe, All Rights Reserved.<br/>
- See <a href="../license.html">../license.html</a> for license conditions.
+ Copyright &copy; 2014 Francis Rowe &lt;info@gluglug.org.uk&gt;<br/>
+ This document is released under the Creative Commons Attribution-ShareAlike 4.0 International Public License and all future versions.
+ A copy of the license can be found at <a href="../license.txt">../license.txt</a>.
+ </p>
+
+ <p>
+ This document is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See <a href="../license.txt">../license.txt</a> for more information.
</p>
</body>
diff --git a/docs/howtos/x60_heatsink.html b/docs/howtos/x60_heatsink.html
index 0feee779..22b55e1c 100644
--- a/docs/howtos/x60_heatsink.html
+++ b/docs/howtos/x60_heatsink.html
@@ -134,8 +134,15 @@
<hr/>
<p>
- Copyright &copy; 2014 Francis Rowe, All Rights Reserved.<br/>
- See <a href="../license.html">../license.html</a> for license conditions.
+ Copyright &copy; 2014 Francis Rowe &lt;info@gluglug.org.uk&gt;<br/>
+ This document is released under the Creative Commons Attribution-ShareAlike 4.0 International Public License and all future versions.
+ A copy of the license can be found at <a href="../license.txt">../license.txt</a>.
+ </p>
+
+ <p>
+ This document is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See <a href="../license.txt">../license.txt</a> for more information.
</p>
</body>
diff --git a/docs/howtos/x60_lcd_change.html b/docs/howtos/x60_lcd_change.html
new file mode 100644
index 00000000..3ddeaac0
--- /dev/null
+++ b/docs/howtos/x60_lcd_change.html
@@ -0,0 +1,54 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+
+ <style type="text/css">
+ body {
+ background:#fff;
+ color:#000;
+ font-family:sans-serif;
+ font-size:1em;
+ }
+ </style>
+
+ <title>Libreboot documentation: Unbricking the ThinkPad T60</title>
+</head>
+
+<body>
+
+ <header>
+ <h1>Changing the LCD panel on X60</h1>
+ </header>
+
+ <p>Or go <a href="../index.html">back to main index</a></p>
+
+ <p>This tutorial is incomplete, and only pictures for now.</p>
+
+ <p>
+ <img src="x60_lcd_change/0001.JPG" alt="" />
+ <img src="x60_lcd_change/0002.JPG" alt="" />
+ <img src="x60_lcd_change/0003.JPG" alt="" />
+ <img src="x60_lcd_change/0004.JPG" alt="" />
+ <img src="x60_lcd_change/0005.JPG" alt="" />
+ <img src="x60_lcd_change/0006.JPG" alt="" />
+ <img src="x60_lcd_change/0007.JPG" alt="" />
+ </p>
+
+<hr/>
+
+ <p>
+ Copyright &copy; 2014 Francis Rowe &lt;info@gluglug.org.uk&gt;<br/>
+ This document is released under the Creative Commons Attribution-ShareAlike 4.0 International Public License and all future versions.
+ A copy of the license can be found at <a href="../license.txt">../license.txt</a>.
+ </p>
+
+ <p>
+ This document is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See <a href="../license.txt">../license.txt</a> for more information.
+ </p>
+
+</body>
+</html>
diff --git a/docs/howtos/x60_lcd_change/0001.JPG b/docs/howtos/x60_lcd_change/0001.JPG
new file mode 100755
index 00000000..fd066eb2
--- /dev/null
+++ b/docs/howtos/x60_lcd_change/0001.JPG
Binary files differ
diff --git a/docs/howtos/x60_lcd_change/0002.JPG b/docs/howtos/x60_lcd_change/0002.JPG
new file mode 100755
index 00000000..96949f1e
--- /dev/null
+++ b/docs/howtos/x60_lcd_change/0002.JPG
Binary files differ
diff --git a/docs/howtos/x60_lcd_change/0003.JPG b/docs/howtos/x60_lcd_change/0003.JPG
new file mode 100755
index 00000000..90216aaa
--- /dev/null
+++ b/docs/howtos/x60_lcd_change/0003.JPG
Binary files differ
diff --git a/docs/howtos/x60_lcd_change/0004.JPG b/docs/howtos/x60_lcd_change/0004.JPG
new file mode 100755
index 00000000..3b704a45
--- /dev/null
+++ b/docs/howtos/x60_lcd_change/0004.JPG
Binary files differ
diff --git a/docs/howtos/x60_lcd_change/0005.JPG b/docs/howtos/x60_lcd_change/0005.JPG
new file mode 100755
index 00000000..823bab94
--- /dev/null
+++ b/docs/howtos/x60_lcd_change/0005.JPG
Binary files differ
diff --git a/docs/howtos/x60_lcd_change/0006.JPG b/docs/howtos/x60_lcd_change/0006.JPG
new file mode 100755
index 00000000..040f2ca4
--- /dev/null
+++ b/docs/howtos/x60_lcd_change/0006.JPG
Binary files differ
diff --git a/docs/howtos/x60_lcd_change/0007.JPG b/docs/howtos/x60_lcd_change/0007.JPG
new file mode 100755
index 00000000..42c2607c
--- /dev/null
+++ b/docs/howtos/x60_lcd_change/0007.JPG
Binary files differ
diff --git a/docs/howtos/x60_security.html b/docs/howtos/x60_security.html
index 6abda98d..660dbd68 100644
--- a/docs/howtos/x60_security.html
+++ b/docs/howtos/x60_security.html
@@ -207,12 +207,6 @@
</ul>
</li>
<li>
- Software-based security hardening (GRUB trust/cryptomount, kernel LUKS/ecryptfs, etc).
- <ul>
- <li>modify grub to delay password attemps by a few seconds, and fail after a set time (and record all attemps in a counter, writing that to nvram)</li>
- </ul>
- </li>
- <li>
General tips/advice and web links showing how to detect physical intrusions.
</li>
<li>
@@ -247,10 +241,17 @@
<li>Atheros PCI wifi: unknown, but lower than intel wifi.</li>
<li>Microphone: only problematic if the computer gets compromised.</li>
<li>Speakers: only problematic if the computer gets compromised.</li>
- <li>EC: can be mitigated if following the <b>(not yet written)</b> guide on software security.</li>
+ <li>EC: can be mitigated if following the guide on software security.</li>
</ul>
<h1>
+ Further reading material (software security)
+ </h1>
+ <ul>
+ <li><a href="encrypted_trisquel.html">Installing Trisquel GNU/Linux with full disk encryption (including /boot)</a></li>
+ </ul>
+
+ <h1>
References
</h1>
<h2 id="ref1">[1] physical access</h2>
@@ -284,8 +285,15 @@
<hr/>
<p>
- Copyright &copy; 2014 Francis Rowe, All Rights Reserved.<br/>
- See <a href="../license.html">../license.html</a> for license conditions.
+ Copyright &copy; 2014 Francis Rowe &lt;info@gluglug.org.uk&gt;<br/>
+ This document is released under the Creative Commons Attribution-ShareAlike 4.0 International Public License and all future versions.
+ A copy of the license can be found at <a href="../license.txt">../license.txt</a>.
+ </p>
+
+ <p>
+ This document is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See <a href="../license.txt">../license.txt</a> for more information.
</p>
</body>
diff --git a/docs/howtos/x60_unbrick.html b/docs/howtos/x60_unbrick.html
index 8427c5ac..945712d8 100644
--- a/docs/howtos/x60_unbrick.html
+++ b/docs/howtos/x60_unbrick.html
@@ -295,8 +295,15 @@
<hr/>
<p>
- Copyright &copy; 2014 Francis Rowe, All Rights Reserved.<br/>
- See <a href="../license.html">../license.html</a> for license conditions.
+ Copyright &copy; 2014 Francis Rowe &lt;info@gluglug.org.uk&gt;<br/>
+ This document is released under the Creative Commons Attribution-ShareAlike 4.0 International Public License and all future versions.
+ A copy of the license can be found at <a href="../license.txt">../license.txt</a>.
+ </p>
+
+ <p>
+ This document is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See <a href="../license.txt">../license.txt</a> for more information.
</p>
</body>
diff --git a/docs/howtos/x60tablet_unbrick.html b/docs/howtos/x60tablet_unbrick.html
index 975c7643..da60227f 100644
--- a/docs/howtos/x60tablet_unbrick.html
+++ b/docs/howtos/x60tablet_unbrick.html
@@ -204,8 +204,15 @@
<hr/>
<p>
- Copyright &copy; 2014 Francis Rowe, All Rights Reserved.<br/>
- See <a href="../license.html">../license.html</a> for license conditions.
+ Copyright &copy; 2014 Francis Rowe &lt;info@gluglug.org.uk&gt;<br/>
+ This document is released under the Creative Commons Attribution-ShareAlike 4.0 International Public License and all future versions.
+ A copy of the license can be found at <a href="../license.txt">../license.txt</a>.
+ </p>
+
+ <p>
+ This document is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See <a href="../license.txt">../license.txt</a> for more information.
</p>
</body>
diff --git a/docs/index.html b/docs/index.html
index b4289722..666569f6 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -49,7 +49,8 @@
<h2>Working with source code</h2>
<ul>
- <li><a href="#build_meta">Building libreboot_src from libreboot_meta</a></li>
+ <li><a href="#build_dependencies">Install build dependencies</a></li>
+ <li><a href="#build_meta">Get the full source code from metadata (git clone)</a></li>
<li><a href="#build_bucts">How to build &quot;bucts&quot; (for LenovoBIOS X60/X60S/X60T/T60)</a></li>
<li><a href="#build_flashrom">How to build &quot;flashrom&quot;</a></li>
<li>
@@ -65,22 +66,15 @@
<li><a href="#build">How to build your ROM's</a></li>
</ul>
- <h2>Hardware maintenance</h2>
+ <h2>Supported hardware</h2>
<ul>
<li><a href="#supported_list">List of supported hardware</a></li>
- <li><a href="#supported_x60_list">List of supported ThinkPad X60's</a></li>
+ <li><a href="#recommended_wifi">Recommended wifi chipsets</a></li>
+ <li><a href="#supported_x60_list">List of supported ThinkPad X60/X60s</a></li>
<li><a href="#supported_x60t_list">List of supported ThinkPad X60 Tablets</a></li>
<li><a href="#supported_t60_list">List of supported ThinkPad T60's</a></li>
<li><a href="#t60_ati_intel">ThinkPad T60 (ATI GPU) and ThinkPad T60 (Intel GPU) differences.</a></li>
- <li><a href="howtos/t60_lcd_15.html">ThinkPad T60 15.1&quot; changing LCD panel</a></li>
- <li><a href="howtos/x60_heatsink.html">ThinkPad X60/X60S: change the fan/heatsink</a></li>
- <li><a href="howtos/t60_heatsink.html">ThinkPad T60: change the fan/heatsink</a></li>
- <li><a href="howtos/x60_security.html">ThinkPad X60/X60S: security</a></li>
- <li><a href="howtos/t60_security.html">ThinkPad T60: security</a></li>
- </ul>
-
- <h2>Macbook2,1</h2>
- <ul>
+ <li><a href="#macbook11">Information about the Macbook1,1</a></li></li>
<li><a href="#macbook21">Information about the Macbook2,1</a></li></li>
</ul>
@@ -98,38 +92,37 @@
<li><a href="howtos/x60tablet_unbrick.html">ThinkPad X60 Tablet: How to unbrick</a></li>
<li><a href="howtos/t60_unbrick.html">ThinkPad T60: How to unbrick</a></li>
</ul>
+
+ <h2>Security topics</h2>
+ <ul>
+ <li><a href="howtos/x60_security.html">ThinkPad X60/X60S: hardware security</a></li>
+ <li><a href="howtos/t60_security.html">ThinkPad T60: hardware security</a></li>
+ <li><a href="howtos/encrypted_trisquel.html">Installing Trisquel GNU/Linux with full disk encryption (including /boot)</a></li>
+ </ul>
+
+ <h2>Hardware maintenance</h2>
+ <ul>
+ <li><a href="howtos/x60_heatsink.html">ThinkPad X60/X60S: change the fan/heatsink</a></li>
+ <li><a href="howtos/x60_lcd_change.html">ThinkPad X60/X60s: How to change the LCD panel</a> (incomplete. pics only for now)</li>
+ <li><a href="howtos/t60_lcd_15.html">ThinkPad T60 15.1&quot; changing LCD panel</a></li>
+ <li><a href="howtos/t60_heatsink.html">ThinkPad T60: change the fan/heatsink</a></li>
+ </ul>
<h2>GRUB2 payload</h2>
<ul>
<li><a href="#grub_font">Setting font in GRUB</a></li>
<li><a href="#grub_keyboard">GRUB keyboard layouts</a>
<ul>
- <li>
- <a href="#keyboards">Pictures of keyboard layouts</a>
- <ul>
- <li><a href="#keyboards_ukqwerty">QWERTY (United Kingdom)</a></li>
- <li><a href="#keyboards_usqwerty">QWERTY (United States)</a></li>
- <li><a href="#keyboards_ukdvorak">Dvorak (United Kingdom)</a></li>
- <li><a href="#keyboards_usdvorak">Dvorak (United States)</a></li>
- <li><a href="#keyboards_frazerty">Azerty (French)</a></li>
- <li><a href="#keyboards_itqwerty">QWERTY (Italian)</a></li>
- </ul>
- </li>
<li><a href="#grub_custom_keyboard">Custom keyboard layout in GRUB</a></li>
- <li><a href="#grub_qwerty_keyboard">US Qwerty keyboard layout in GRUB</a></li>
- <li><a href="#grub_ukqwerty_keyboard">UK Qwerty keyboard layout in GRUB</a></li>
- <li><a href="#grub_dvorak_keyboard">US Dvorak keyboard layout in GRUB</a></li>
<li><a href="#grub_ukdvorak_keyboard">UK Dvorak keyboard layout in GRUB</a></li>
- <li><a href="#grub_frazerty_keyboard">French AZERTY keyboard layout in GRUB</a></li>
- <li><a href="#grub_itqwerty_keyboard">Italian QWERTY keyboard layout in GRUB</a></li>
</ul>
</li>
</ul>
<h2>Miscallaneous</h2>
<ul>
- <li><a href="#tft_brightness">Brightness controls (ThinkPad X60) - how to prevent 'scrolling'</a></li>
<li><a href="#x60_wifi">ThinkPad X60: Enable or disable wifi</a></li>
+ <li><a href="#x60_bluetooth">ThinkPad X60: Enable or disable bluetooth</a></li>
<li><a href="#x60_trackpoint">ThinkPad X60: Enable or disable trackpoint</a></li>
<li><a href="#high_pitch_trisquel">High Pitched Whining Noise on Idle (how to remove in Trisquel)</a>
<ul>
@@ -156,7 +149,7 @@
</li>
<li>
Coreboot is hacker-friendly and focusses on software developers, libreboot is user-focussed and attempts to
- turn coreboot into a distribution, much in the same vein as a GNU/Linux distribution: for example, libreboot
+ turn coreboot into a distribution, sort of like a GNU/Linux distribution (same concept, different software): for example, libreboot
distributes GRUB/memtest86+/bucts (and more) and comes with user-focussed documentation and build scripts; libreboot
is therefore made more 'user-friendly'.
</li>
@@ -205,21 +198,39 @@
<hr/>
- <h1 id="build_meta">How to build libreboot_src from libreboot_meta</h1>
+ <h1 id="build_dependencies">Install build dependencies</h1>
<p>
- If you downloaded libreboot_meta.tar.gz, then you can use the scripts included
- which download all of the extra dependencies and (basically) generates libreboot_src.
+ Before doing anything, you need the dependencies first.
+ </p>
+ <ul>
+ <li><b>deps-trisquel</b> script installs dependencies for Trisquel 6 (also tested in Trisquel 7).</li>
+ <li><b>deps-parabola</b> script installs dependencies for Parabola</li>
+ </ul>
+
+ <p>
+ For all other GNU/Linux distributions, you may have to adapt these scripts. By all means send patches!
+ </p>
+
+ <p><a href="#pagetop">Back to top of page</a></p>
+
+<hr/>
+
+ <h1 id="build_meta">Get the full source code from metadata (git clone)</h1>
+
+ <p>
+ If you downloaded libreboot from git, then there are some steps to download and patch
+ the source code for all relevant dependencies. The archive in the git repository used to be
+ available as a tarball called 'libreboot_meta.tar.gz'. It contains 'metadata' (scripts)
+ which define how the source was created (where it came from).
</p>
<p>
- You need to install the build dependencies first.
+ You can use the scripts included to dwnload everything.
</p>
<p>
- The following scripts installs them for apt-get distros.<br/>
- Adapt what's in this script if you don't use an apt-get distro:<br/>
- <b>$ sudo ./builddeb</b>
+ First, <a href="#build_dependencies">install the build dependencies</a>.
</p>
<p>
@@ -234,7 +245,6 @@
</p>
<p>
- After that, you will have the full source. Rename libreboot_meta to libreboot_src.
To build the ROM's, see <a href="#build">#build</a>.
</p>
@@ -262,7 +272,7 @@
<p>
BUC.TS utility is included in libreboot_src.tar.gz and libreboot_bin.tar.gz.<br/>
- <b>If you downloaded libreboot_meta.tar.gz, follow <a href="#build_meta">#build_meta</a> before you proceed.</b>
+ <b>If you downloaded from git, follow <a href="#build_meta">#build_meta</a> before you proceed.</b>
</p>
<p>
@@ -271,8 +281,7 @@
</p>
<p>
- You need to install GCC. The following will work on apt-get distros (adapt that script if your distro doesn't use apt-get):<br/>
- <b>$ sudo ./builddeb-bucts</b>
+ First, <a href="#build_dependencies">install the build dependencies</a>.
</p>
<p>
@@ -281,7 +290,7 @@
</p>
<p>
- The &quot;builddeps&quot; script in libreboot_src and libreboot_meta also makes use of builddeps-bucts.
+ The &quot;builddeps&quot; script in libreboot_src also makes use of builddeps-bucts.
</p>
<p><a href="#pagetop">Back to top of page.</a></p>
@@ -296,13 +305,11 @@
<p>
Flashrom source code is included in libreboot_src.tar.gz and libreboot_bin.tar.gz.<br/>
- <b>If you downloaded libreboot_meta.tar.gz, follow <a href="#build_meta">#build_meta</a> before you proceed.</b>
+ <b>If you downloaded from git, follow <a href="#build_meta">#build_meta</a> before you proceed.</b>
</p>
<p>
- You need the build dependencies for flashrom.
- The following script works in apt-get distros (tested in Trisquel 6):<br/>
- <b>$ sudo ./builddeb-flashrom</b>
+ First, <a href="#build_dependencies">install the build dependencies</a>.
</p>
<p>
@@ -335,7 +342,7 @@
</ul>
<p>
- The &quot;builddeps&quot; script in libreboot_src and libreboot_meta also makes use of builddeps-flashrom.
+ The &quot;builddeps&quot; script in libreboot_src also makes use of builddeps-flashrom.
</p>
<p><a href="#pagetop">Back to top of page.</a></p>
@@ -398,6 +405,13 @@
<li>Mainboard / SMBIOS Product name = <i>1702L8G</i></li>
<li>Chipset / Include CPU microcode in CBFS = <i>Do not include microcode updates</i></li>
<li>Devices / Use native graphics initialization = <i>enable</i></li>
+ <li>
+ Display / Keep VESA framebuffer = <i>disable</i> (disable for text-mode graphics, enable for coreboot vesa framebuffer)
+ <ul>
+ <li>Libreboot provides this with text-mode enabled by default, but it automatically patches a copy of the config at boot time
+ to enable coreboot framebuffer for a separate set of ROM images, in each machine.</li>
+ </ul>
+ </li>
<li>Generic Drivers / Digitizer = <i>Autodetect</i></li>
<li>Console / Send console output to a CBMEM buffer = <i>enable</i></li>
<li>Payload / Add a payload = <i>An ELF executable payload</i></li>
@@ -437,6 +451,13 @@
<li>Mainboard / SMBIOS Product name = <i>6364WJ1</i></li>
<li>Chipset / Include CPU microcode in CBFS = <i>Do not include microcode updates</i></li>
<li>Devices / Use native graphics initialization = <i>enable</i></li>
+ <li>
+ Display / Keep VESA framebuffer = <i>disable</i> (disable for text-mode graphics, enable for coreboot vesa framebuffer)
+ <ul>
+ <li>Libreboot provides this with text-mode enabled by default, but it automatically patches a copy of the config at boot time
+ to enable coreboot framebuffer for a separate set of ROM images, in each machine.</li>
+ </ul>
+ </li>
<li>Generic Drivers / Digitizer = <i>Present</i></li>
<li>Console / Send console output to a CBMEM buffer = <i>enable</i></li>
<li>Payload / Add a payload = <i>An ELF executable payload</i></li>
@@ -472,6 +493,13 @@
<li>Mainboard / SMBIOS Product name = <i>1951FEG</i></li>
<li>Chipset / Include CPU microcode in CBFS = <i>Do not include microcode updates</i></li>
<li>Devices / Use native graphics initialization = <i>enable</i></li>
+ <li>
+ Display / Keep VESA framebuffer = <i>disable</i> (disable for text-mode graphics, enable for coreboot vesa framebuffer)
+ <ul>
+ <li>Libreboot provides this with text-mode enabled by default, but it automatically patches a copy of the config at boot time
+ to enable coreboot framebuffer for a separate set of ROM images, in each machine.</li>
+ </ul>
+ </li>
<li>Console / Send console output to a CBMEM buffer = <i>enable</i></li>
<li>Payload / Add a payload = <i>An ELF executable payload</i></li>
<li>Payload / Payload path and filename = <i>grub.elf</i></li>
@@ -506,6 +534,13 @@
<li>Mainboard / SMBIOS Product Name = <i>MacBook2,1</i></li>
<li>Chipset / Include CPU microcode in CBFS = <i>Do not include microcode updates</i></li>
<li>Devices / Use native graphics initialization = <i>enable</i></li>
+ <li>
+ Display / Keep VESA framebuffer = <i>disable</i> (disable for text-mode graphics, enable for coreboot vesa framebuffer)
+ <ul>
+ <li>Libreboot provides this with text-mode enabled by default, but it automatically patches a copy of the config at boot time
+ to enable coreboot framebuffer for a separate set of ROM images, in each machine.</li>
+ </ul>
+ </li>
<li>Console / Send console output to a CBMEM buffer = <i>enable</i></li>
<li>Payload / Add a payload = <i>An ELF executable payload</i></li>
<li>Payload / Payload path and filename = <i>grub.elf</i></li>
@@ -519,7 +554,7 @@
</ul>
<p>
The resulting .config file was saved as resources/libreboot/config/<b>macbook21/config</b> and is used by the build
- scripts for this machine.
+ scripts for this machine. <b>This config is also used for the MacBook1,1</b>.
</p>
<p><a href="#pagetop">Back to top of page.</a></p>
@@ -528,18 +563,11 @@
<h1 id="build">How to build the ROM's!</h1>
- <p>If you have anything special in a directory called libreboot_bin, just outside of libreboot_src,
- then back it up first.</p>
-
<p>You don't need to do much: there are scripts already written for you that can build everything automatically.</p>
- <p>Install <b>all</b> dependencies (works on apt-get distros, tested in Trisquel 6)<br/>
- <b>$ sudo ./builddeb</b></p>
-
- <p>If your distro uses a different package manager or package names, then you'll need to adapt what you see in
- 'builddeb' and install it yourself - maybe you could share the script for your distro!</p>
-
- <p>Also, make sure that you have the sha512sum utility installed.</p>
+ <p>
+ First, <a href="#build_dependencies">install the build dependencies</a>.
+ </p>
<p>If running for the first time, run this:<br/>
<b>$ ./buildall</b> (also performs the "./build" step below)<br/>
@@ -551,17 +579,23 @@
<b>$ ./build</b></p>
<p>To un-build (clean) the build dependencies that you built before, do that:<br/>
+ This also deletes the ROM images under ./bin/:<br/>
<b>$ ./cleandeps</b></p>
<p>Note: after running 'cleandeps', you will need to run 'builddeps' or 'buildall' again before you can use 'build'.</p>
- <p>After 'build' or 'buildall' has finished, an ../libreboot_bin directory will exist outside of libreboot_src containing the ROM's and other files. In libreboot_src will also be
- a directory called 'bin' which contains all of the ROM's that you compiled.</p>
+ <p>After 'build' or 'buildall' has finished, you'll find the ROM images for each machine under ./bin/</p>
- <p>The script also generates a 'libreboot_meta' directory outside of libreboot_src, which contains everything in src except for grub, coreboot, memtest,
- flashrom and bucts. There is a script called 'getall' from src included in meta, which downloads and patches everything needed to create src.</p>
+ <h2>Preparing release archives (optional)</h2>
+
+ <p>
+ Run that script:<br/>
+ <b>$ ./build-release</b>
+ </p>
- <p>Reading all of those scripts will teach you how everything is built. It should also be simple to modify it to your needs.</p>
+ <p>
+ You'll find that the files libreboot_bin.tar.xz and libreboot_src.tar.xz have been created.
+ </p>
<p><a href="#pagetop">Back to top of page</a></p>
@@ -575,7 +609,8 @@
<ul>
<li><a href="#supported_x60_list">Lenovo ThinkPad X60/X60s</a></li>
<li><a href="#supported_x60t_list">Lenovo ThinkPad X60 Tablet</a></li>
- <li><a href="#supported_t60_list">Lenovo ThinkPad T60</a></li>
+ <li><a href="#supported_t60_list">Lenovo ThinkPad T60</a> (there are exceptions. see link)</li>
+ <li><a href="#macbook11">Apple MacBook1,1</a></li>
<li><a href="#macbook21">Apple MacBook2,1</a></li>
</ul>
@@ -593,6 +628,20 @@
<hr/>
+ <h1 id="recommended_wifi">Recommended wifi chipsets</h1>
+ <p>
+ The following are known to work well:
+ </p>
+ <ul>
+ <li>Atheros AR5B95 (chipset: Atheros AR9285); mini PCI-E. Most of these are half-height, so you will need a half&gt;full height mini PCI express adapter/bracket.</li>
+ <li>Unex DNUA-93F (chipset: Atheros AR9271); USB.</li>
+ <li>Any of the chipsets sold at <a href="https://fsf.org/ryf">https://fsf.org/ryf</a></li>
+ </ul>
+
+ <p><a href="#pagetop">Back to top of page</a></p>
+
+<hr/>
+
<h1 id="supported_x60_list">List of supported ThinkPad X60's</h1>
<p>
@@ -617,6 +666,12 @@
and the motherboards are the same shape/size.
</p>
+ <p>
+ The X60 typically comes with an Intel wifi chipset which does not work at all without proprietary firmware, and while Lenovo BIOS is running
+ the machine will refuse to boot if you replace the card. Fortunately it is very easily replaced;
+ just remove the card and install another one <b>after</b> libreboot is installed. See <a href="#recommended_wifi">#recommended_wifi</a> for replacements.
+ </p>
+
<p><a href="#pagetop">Back to top of page.</a></p>
<hr/>
@@ -661,6 +716,12 @@
and the motherboards are the same shape/size. <b>It is unknown if the same applies between the X60 Tablet and the X61 Tablet</b>.
</p>
+ <p>
+ The X60 Tablet typically comes with an Intel wifi chipset which does not work at all without proprietary firmware, and while Lenovo BIOS is running
+ the machine will refuse to boot if you replace the card. Fortunately it is very easily replaced;
+ just remove the card and install another one <b>after</b> libreboot is installed. See <a href="#recommended_wifi">#recommended_wifi</a> for replacements.
+ </p>
+
<p><a href="#pagetop">Back to top of page.</a></p>
<hr/>
@@ -732,6 +793,12 @@
It is unknown whether the 1680x1050 (15.4&quot;) and 1920x1200 (15.4&quot;) panels use a different inverter board than the 1280x800 panels.
</p>
+ <p>
+ The T60 typically comes with an Intel wifi chipset which does not work at all without proprietary firmware, and while Lenovo BIOS is running
+ the machine will refuse to boot if you replace the card. Fortunately it is very easily replaced;
+ just remove the card and install another one <b>after</b> libreboot is installed. See <a href="#recommended_wifi">#recommended_wifi</a> for replacements.
+ </p>
+
</div>
<p><a href="#pagetop">Back to top of page.</a></p>
@@ -760,13 +827,8 @@
</p>
<p>
- The following T60 motherboard shows an ATI GPU (<b>do not buy this</b>) (highlighted in red, or on the right next to the white CPU socket), which is unsupported by libreboot:<br/>
- <img src="howtos/t60_mainboard/t60_ati_gpu.jpg" alt="" />
- </p>
-
- <p>
- The following T60 motherboard shows an Intel GPU (<b>buy this!</b>) (highlighted in red or on the right next to the white CPU socket, you can see that the space for ATI GPU is empty):<br/>
- <img src="howtos/t60_mainboard/t60_intel_gpu.jpg" alt="" />
+ The following T60 motherboard (see area highlighted in white) shows an empty space where the ATI GPU would be (this particular motherboard has an Intel GPU):
+ <img src="howtos/t60_dev/t60_unbrick.jpg" alt="" />
</p>
<p>
@@ -795,6 +857,57 @@
<hr/>
+ <h1 id="macbook11">Information about the macbook1,1</h1>
+
+ <p>
+ There is an Apple laptop called the macbook1,1 from 2006 which uses the same i945 chipset as the ThinkPad X60/T60.
+ A developer ported the <a href="#macbook21">MacBook2,1</a> to coreboot, the ROM images also work on the macbook1,1.
+ </p>
+
+ <p>
+ You can refer to <a href="#macbook21">#macbook21</a> for most of this. Macbook2,1 laptops come with Core 2 Duo processors
+ which support 64-bit operating systems (and 32-bit). The MacBook1,1 uses Core Duo processors (supports 32-bit OS but not 64-bit),
+ and it is believed that this is the only difference.
+ </p>
+
+ <p>
+ It is believed that all models are compatible, listed here:
+ </p>
+ <ul>
+ <li><a href="http://www.everymac.com/ultimate-mac-lookup/?search_keywords=MacBook1,1">http://www.everymac.com/ultimate-mac-lookup/?search_keywords=MacBook1,1</a></li>
+ </ul>
+
+ <h2>
+ Compatible models
+ </h2>
+ <p>
+ Specifically (Order No. / Model No. / CPU):
+ </p>
+ <ul>
+ <li>MA255LL/A / A1181 (EMC 2092) / Core Duo T2500 <b>(tested - working)</b></i>
+ <li>MA254LL/A / A1181 (EMC 2092) / Core Duo T2400 (untested)</li>
+ <li>MA472LL/A / A1181 (EMC 2092) / Core Duo T2500 (untested)</li>
+ </ul>
+
+ <p>
+ Also of interest: <a href="#config_macbook21">#config_macbook21</a>.
+ </p>
+
+ <p>
+ Unbricking: <a href="https://www.ifixit.com/Device/MacBook_Core_2_Duo">this page shows disassembly guides</a> and mono's page (see <a href="#macbook21">#macbook21</a>)
+ shows the location of the SPI flash chip on the motherboard. <a href="https://www.ifixit.com/Guide/MacBook+Core+2+Duo+PRAM+Battery+Replacement/529">How to remove the motherboard</a>.
+ </p>
+
+ <p>
+ No method is yet known for flashing in GNU/Linux while the Apple firmware is running. You will need to disassemble the machine and flash externally.
+ Reading from flash seems to work. Bus Pirate recommended for external flashing (there are others) and needed tools: clip (eg Pomona 5250), mini usb cable,
+ bus pirate cable (for connecting Pomona to the bus pirate).
+ </p>
+
+ <p><a href="#pagetop">Back to top of page.</a></p>
+
+<hr/>
+
<h1 id="macbook21">Information about the macbook2,1</h1>
<p>
@@ -859,8 +972,8 @@
Specifically (Order No. / Model No. / CPU):
</p>
<ul>
- <li>MA699LL/A / A1181 (EMC 2121) / Intel Core 2 Duo T5600 <b>(tested - working)</li>
- <li>MA701LL/A / A1181 (EMC 2121) / Intel Core 2 Duo T7200 (untested)</li>
+ <li>MA699LL/A / A1181 (EMC 2121) / Intel Core 2 Duo T5600 <b>(tested - working)</b></li>
+ <li>MA701LL/A / A1181 (EMC 2121) / Intel Core 2 Duo T7200 <b>(tested - working)</b></li>
<li>MB061LL/A / A1181 (EMC 2139) / Intel Core 2 Duo T7200 (untested)</li>
<li>MA700LL/A / A1181 (EMC 2121) / Intel Core 2 Duo T7200 (untested)</li>
<li>MB063LL/A / A1181 (EMC 2139) / Intel Core 2 Duo T7400 (untested)</li>
@@ -872,6 +985,16 @@
</p>
<p>
+ Unbricking: <a href="https://www.ifixit.com/Device/MacBook_Core_2_Duo">this page shows disassembly guides</a> and mono's page (see above)
+ shows the location of the SPI flash chip on the motherboard. <a href="https://www.ifixit.com/Guide/MacBook+Core+2+Duo+PRAM+Battery+Replacement/529">How to remove the motherboard</a>.
+ </p>
+
+ <p>
+ Bus Pirate recommended for external flashing (there are others) and needed tools: clip (eg Pomona 5250), mini usb cable,
+ bus pirate cable (for connecting Pomona to the bus pirate).
+ </p>
+
+ <p>
You need to replace OS X with GNU/Linux before flashing libreboot. (OSX won't run at all in libreboot).
</p>
@@ -881,13 +1004,42 @@
<p>
This is an apple laptop, so it comes with OS X: it has an Apple keyboard, which means that certain keys you expect are missing:
- insert, del, home, end, pgup, pgdown. There is also one mouse button only. Battery life is poor compared to X60/T60. Cooling (ventilation)
- is also poor. The speaker might aswell not be there, quality is really bad. Not only that, these machines are expensive and usually easier to find in North America, so if you live outside
- of NA then you will most likely have to import it. It's the opinion of this libreboot developer that the MacBook2,1 is not a very good machine.
+ insert, del, home, end, pgup, pgdown. There is also one mouse button only. Battery life is poor compared to X60/T60 (for now).
It also has other issues: for example, the Apple logo on the back is a hole, exposing the backlight, which means that it glows. You should cover it up.
</p>
<p>
+ The macbook21 gets extremely hot under GNU/Linux and libreboot; Macfanctld (mac fan control daemon) I'm told is a programme (GPLv3 license) that can help with this.
+ </p>
+
+ <p>
+ Debugging the heating issues (initial work):<br/>
+ Distro: Trisquel 7. kernel(linux-libre): 3.13.0-32<br/>
+ <b>CPU temperatures:</b><br/>
+ 52C(idle)/81C(stress) on factory.bin<br/>
+ 70C(idle)/80C(stress) on coreboot(with microcode updates). libreboot results (without microcode updates) were the same.<br/>
+ (libreboot and coreboot rom's were both built from the same code, just with or without microcode included in the rom)<br/>
+ battery life was higher on original firmware, lower on coreboot/libreboot.<br/>
+ microcode patches included [y/n] makes no difference.<br/>
+ libreboot: 1hr18min left on idle (99% battery), 42mins left on stress (82% battery)<br/>
+ factory.bin: 2 hours left on idle (99% battery), 48mins left on stress (82% battery)
+ </p>
+ <p>
+ mtjm: see what Macbook's vendor boot firmware has in its ACPI tables?<br/>
+ fchmmr: if this works, I'll add the patch to libreboot proper, and udpate the build scripts to use it (also, I should submit the change upstream)<br/>
+ fchmmr: mtjm, how do I do that?<br/>
+ mtjm: (I don't know if these values are generic or specific to something)<br/>
+ mtjm: fchmmr: get them, decompile, read, use the spec to understand what _CST does; acpidump and iasl help<br/>
+ so, acpidump and then iasl -d ?<br/>
+ http://smackerelofopinion.blogspot.co.uk/2009/10/dumping-acpi-tables-using-acpidump-and.html
+ cstate entries should be is SSDT.dat. so use iasl -d on it
+ </p>
+ <p>
+ The following patch was made (copied from x60 mainboard.c): <a href="future/donotusethis_macbook_acpi.diff">do not use this</a><br/>
+ (resulted in bricked macbook21: grub booted, but kernel would get stuck while booting (flashing text). wasn't sure how to debug)
+ </p>
+
+ <p>
<b>
The MacBook2,1 comes with a webcam, which does not work without proprietary software. Also, webcams are a security risk; cover it up! Or remove it.
</b>
@@ -899,81 +1051,49 @@
<h1 id="rom">Recommended ROM's to flash</h1>
- <p>Recommended ROM's to flash:</p>
- <ul>
- <li>
- ThinkPad X60, X60s (<b>bin/x60/</b>)
- <ul>
- <li>US Qwerty keyboard, no dock: <b>libreboot_usqwerty.rom</b></li>
- <li>US Qwerty keyboard, with dock: <b>libreboot_serial_usqwerty.rom</b></li>
- <li>UK Qwerty keyboard, no dock: <b>libreboot_ukqwerty.rom</b></li>
- <li>UK Qwerty keyboard, with dock: <b>libreboot_serial_ukqwerty.rom</b></li>
- <li>US Dvorak keyboard, no dock: <b>libreboot_usdvorak.rom</b></li>
- <li>US Dvorak keyboard, with dock: <b>libreboot_serial_usdvorak.rom</b></li>
- <li>UK Dvorak keyboard, no dock: <b>libreboot_ukdvorak.rom</b></li>
- <li>UK Dvorak keyboard, with dock: <b>libreboot_serial_ukdvorak.rom</b></li>
- <li>French Azerty keyboard, no dock: <b>libreboot_frazerty.rom</b></li>
- <li>French Azerty keyboard, with dock: <b>libreboot_serial_frazerty.rom</b></li>
- <li>Italian Qwerty keyboard, no dock: <b>libreboot_itqwerty.rom</b></li>
- <li>Italian Qwerty keyboard, with dock: <b>libreboot_serial_itqwerty.rom</b></li>
- </ul>
- </li>
- <li>
- ThinkPad X60 Tablet (<b>bin/x60t/</b>)
- <ul>
- <li>US Qwerty keyboard, no dock: <b>libreboot_usqwerty.rom</b></li>
- <li>US Qwerty keyboard, with dock: <b>libreboot_serial_usqwerty.rom</b></li>
- <li>UK Qwerty keyboard, no dock: <b>libreboot_ukqwerty.rom</b></li>
- <li>UK Qwerty keyboard, with dock: <b>libreboot_serial_ukqwerty.rom</b></li>
- <li>US Dvorak keyboard, no dock: <b>libreboot_usdvorak.rom</b></li>
- <li>US Dvorak keyboard, with dock: <b>libreboot_serial_usdvorak.rom</b></li>
- <li>UK Dvorak keyboard, no dock: <b>libreboot_ukdvorak.rom</b></li>
- <li>UK Dvorak keyboard, with dock: <b>libreboot_serial_ukdvorak.rom</b></li>
- <li>French Azerty keyboard, no dock: <b>libreboot_frazerty.rom</b></li>
- <li>French Azerty keyboard, with dock: <b>libreboot_serial_frazerty.rom</b></li>
- <li>Italian Qwerty keyboard, no dock: <b>libreboot_itqwerty.rom</b></li>
- <li>Italian Qwerty keyboard, with dock: <b>libreboot_serial_itqwerty.rom</b></li>
- </ul>
- </li>
- <li>
- ThinkPad T60 (<b>bin/t60/</b>) (note, see <a href="#supported_t60_list">#supported_t60_list</a>)
- <ul>
- <li>US Qwerty keyboard, no dock: <b>libreboot_usqwerty.rom</b></li>
- <li>US Qwerty keyboard, with dock: <b>libreboot_serial_usqwerty.rom</b></li>
- <li>UK Qwerty keyboard, no dock: <b>libreboot_ukqwerty.rom</b></li>
- <li>UK Qwerty keyboard, with dock: <b>libreboot_serial_ukqwerty.rom</b></li>
- <li>US Dvorak keyboard, no dock: <b>libreboot_usdvorak.rom</b></li>
- <li>US Dvorak keyboard, with dock: <b>libreboot_serial_usdvorak.rom</b></li>
- <li>UK Dvorak keyboard, no dock: <b>libreboot_ukdvorak.rom</b></li>
- <li>UK Dvorak keyboard, with dock: <b>libreboot_serial_ukdvorak.rom</b></li>
- <li>French Azerty keyboard, no dock: <b>libreboot_frazerty.rom</b></li>
- <li>French Azerty keyboard, with dock: <b>libreboot_serial_frazerty.rom</b></li>
- <li>Italian Qwerty keyboard, no dock: <b>libreboot_itqwerty.rom</b></li>
- <li>Italian Qwerty keyboard, with dock: <b>libreboot_serial_itqwerty.rom</b></li>
- </ul>
- </li>
- <li>
- MacBook2,1 (<b>bin/macbook21/</b>)
- <ul>
- <li>US Qwerty keyboard: <b>libreboot_usqwerty.rom</b></li>
- <li>UK Qwerty keyboard: <b>libreboot_ukqwerty.rom</b></li>
- <li>US Dvorak keyboard: <b>libreboot_usdvorak.rom</b></li>
- <li>UK Dvorak keyboard: <b>libreboot_ukdvorak.rom</b></li>
- <li>French Azerty keyboard: <b>libreboot_frazerty.rom</b></li>
- <li>Italian Qwerty keyboard: <b>libreboot_itqwerty.rom</b></li>
- <li>The MacBook2,1 uses the same chipset, i945, as the X60/X60s X60T and T60 but there is no dock or serial port available for this machine.</li>
- </ul>
- </li>
- </ul>
+ <p>
+ List of directories corresponding to each board:
+ </p>
+ <ul>
+ <li>ThinkPad X60, X60s: <b>bin/x60/</b></li>
+ <li>ThinkPad X60 Tablet: <b>bin/x60t/</b></li>
+ <li>ThinkPad T60: <b>bin/t60/</b> (note, see <a href="#supported_t60_list">#supported_t60_list</a>)</li>
+ <li>Apple MacBook2,1: <b>bin/macbook21/</b></li>
+ <li>Apple MacBook1,1: <b>bin/macbook21/</b> (it's not a typo; the same ROM's work)</li>
+ </ul>
+
+ <p>These images use coreboot text-mode graphics:</p>
+ <ul>
+ <li>US Qwerty keyboard: <b>libreboot_usqwerty_txtmode.rom</b></li>
+ <li>UK Qwerty keyboard: <b>libreboot_ukqwerty_txtmode.rom</b></li>
+ <li>US Dvorak keyboard: <b>libreboot_usdvorak_txtmode.rom</b></li>
+ <li>UK Dvorak keyboard: <b>libreboot_ukdvorak.rom</b></li>
+ <li>French Azerty keyboard: <b>libreboot_frazerty_txtmode.rom</b></li>
+ <li>Italian Qwerty keyboard: <b>libreboot_itqwerty_txtmode.rom</b></li>
+ <li>Swedish Qwerty keyboard: <b>libreboot_svenska_txtmode.rom</b></li>
+ </ul>
+ <p>These images use coreboot framebuffer graphics:</p>
+ <ul>
+ <li>US Qwerty keyboard: <b>libreboot_usqwerty_vesafb.rom</b></li>
+ <li>UK Qwerty keyboard: <b>libreboot_ukqwerty_vesafb.rom</b></li>
+ <li>US Dvorak keyboard: <b>libreboot_usdvorak_vesafb.rom</b></li>
+ <li>UK Dvorak keyboard: <b>libreboot_ukdvorak_vesafb.rom</b></li>
+ <li>French Azerty keyboard: <b>libreboot_frazerty_vesafb.rom</b></li>
+ <li>Italian Qwerty keyboard: <b>libreboot_itqwerty_vesafb.rom</b></li>
+ <li>Swedish Qwerty keyboard: <b>libreboot_svenska_vesafb.rom</b></li>
+ </ul>
+
+ <p>
+ _txtmode images come with a working MemTest86+ and GRUB Invaders, both of which require text-mode.
+ _vesafb images are recommended in most cases.
+ </p>
+
<p>
This will give you your native keyboard layout inside GRUB. The preferences in your OS are not affected, it just makes using
the GRUB command line easier (if you ever need to do that).
<a href="#grub_keyboard">#grub_keyboard</a>shows you how this was done. If your native keyboard layout
differs, you can adapt those notes and hack the 'build' script for your needs.
</p>
- <p>
- For pictures of what these keyboard layouts look like (so you can compare with yours), see <a href="#keyboards">#keyboards</a>.
- </p>
<p><a href="#pagetop">Back to top of page.</a></p>
@@ -998,6 +1118,9 @@
</p>
<p>
+ The following is for the libreboot image and *not* the factory bios dump:
+ </p>
+ <p>
Check the last two 64K regions in your ROM file (libreboot.rom in this example):<br/>
<b>$ dd if=libreboot.rom of=top64k.bin bs=1 skip=$[$(stat -c %s libreboot.rom) - 0x10000] count=64k</b><br/>
<b>$ dd if=libreboot.rom of=lower64k.bin bs=1 skip=$[$(stat -c %s libreboot.rom) - 0x20000] count=64k</b><br/>
@@ -1016,15 +1139,23 @@
<p><b>If you are flashing a Lenovo ThinkPad T60, be sure to read <a href="#supported_t60_list">#supported_t60_list</a></b></p>
<p>
- If you are using Trisquel 6 (32-bit) then the bucts/flashrom binaries are tested. If not (or if you want), recompile them:<br/>
- <b>See: <a href="#build_flashrom">#build_flashrom</a></b><br/>
- <b>See: <a href="#build_bucts">#build_bucts</a></b><br/>
- In any case, you will want the dependencies to run them aswell:<br/>
- <b>$ sudo ./builddeb-flashrom</b><br/>
- <b>$ sudo ./builddeb-bucts</b><br/>
- (^ works on Trisquel 6, maybe other apt-get distros. Adapt for all other distros.)
+ First, <a href="#build_dependencies">install the build dependencies</a>.
</p>
+ <div class="important">
+
+ <p>
+ <b>
+ Before you proceed, make *sure* to build flashrom and bucts from source. Both are provided. This is very important!
+ </b>
+ </p>
+ <ul>
+ <li><a href="#build_flashrom">How to build flashrom from source</a></li>
+ <li><a href="#build_bucts">How to build bucts from source</a></li>
+ </ul>
+
+ </div>
+
<p>&quot;YOURBOARD/YOURROM&quot; should be replaced with what is correct as per <a href="#rom">#rom</a>. Alternatively
you may be using your own custom ROM. Adapt.</p>
@@ -1060,7 +1191,6 @@
<p>
<b>
If you boot and you see nothing, try turning up the backlight (Fn+Home).
- If this is a ThinkPad X60 and backlight resets to zero when turning it up while at max, look at <a href="#tft_brightness">#tft_brightness</a>.
</b>
</p>
@@ -1119,6 +1249,10 @@
(this theory is untested at the time of writing)
</p>
+ <p>
+ Note: <b>If you have a MacBook1,1 then these instructions will not work. See <a href="#macbook11">#macbook11</a> for MacBook1,1 flashing instructions.</b>
+ </p>
+
</div>
<p>
@@ -1133,13 +1267,22 @@
</p>
<p>
- If you need to recompile flashrom:<br/>
- <b>See: <a href="#build_flashrom">#build_flashrom</a></b>
- </p>
- <p>
- You also need the run-time dependencies. This script works on apt-get distros:<br/>
- <b>$ sudo ./builddeb-flashrom</b>
+ First, <a href="#build_dependencies">install the build dependencies</a>.
</p>
+
+ <div class="important">
+
+ <p>
+ <b>
+ Before you proceed, make *sure* to build flashrom from source. This is very important!
+ </b>
+ </p>
+ <ul>
+ <li><a href="#build_flashrom">How to build flashrom from source</a></li>
+ </ul>
+
+ </div>
+
<p>
Look at <a href="#rom">#rom</a> to see which ROM is suitable for your machine. Alternatively you may be using your own
custom ROM. Adapt.
@@ -1212,13 +1355,20 @@
</b>
</p>
<p>
- If you need to recompile flashrom:<br/>
- <b>See: <a href="#build_flashrom">#build_flashrom</a></b>
- </p>
- <p>
- You also need the run-time dependencies. This script works on apt-get distros:<br/>
- <b>$ sudo ./builddeb-flashrom</b>
+ First, <a href="#build_dependencies">install the build dependencies</a>.
</p>
+ <div class="important">
+
+ <p>
+ <b>
+ Before you proceed, make *sure* to build flashrom from source. This is very important!
+ </b>
+ </p>
+ <ul>
+ <li><a href="#build_flashrom">How to build flashrom from source</a></li>
+ </ul>
+
+ </div>
<p>
Look at <a href="#rom">#rom</a> to see which ROM is suitable for your machine. Alternative you may be using your own
custom ROM. Adapt.
@@ -1238,7 +1388,6 @@
<p>
<b>
If you boot and you see nothing, try turning up the backlight (Fn+Home for X60/X60S/X60T/T60, F2 for macbook21).
- If this is a ThinkPad X60 and backlight resets to zero when turning it up while at max, look at <a href="#tft_brightness">#tft_brightness</a>.
</b>
</p>
@@ -1288,50 +1437,10 @@
<h1 id="grub_keyboard">GRUB keyboard layouts (for reference)</h1>
- <h2 id="keyboards">Pictures of keyboard layouts</h2>
-
- <p>
- Taken from WikiPedia.
- See <a href="https://en.wikipedia.org/wiki/Dvorak_Simplified_Keyboard">https://en.wikipedia.org/wiki/Dvorak_Simplified_Keyboard</a>,
- <a href="https://en.wikipedia.org/wiki/QWERTY">https://en.wikipedia.org/wiki/QWERTY</a>
- and <a href="https://en.wikipedia.org/wiki/AZERTY">https://en.wikipedia.org/wiki/AZERTY</a>.
- </p>
-
- <h3 id="keyboards_ukqwerty">QWERTY (United Kingdom)</h3>
- <p>
- <a href="https://upload.wikimedia.org/wikipedia/commons/thumb/d/da/KB_United_Kingdom.svg/900px-KB_United_Kingdom.svg.png">https://upload.wikimedia.org/wikipedia/commons/thumb/d/da/KB_United_Kingdom.svg/900px-KB_United_Kingdom.svg.png</a>
- </p>
-
- <h3 id="keyboards_usqwerty">QWERTY (United States)</h3>
- <p>
- <a href="https://upload.wikimedia.org/wikipedia/commons/thumb/5/51/KB_United_States-NoAltGr.svg/900px-KB_United_States-NoAltGr.svg.png">https://upload.wikimedia.org/wikipedia/commons/thumb/5/51/KB_United_States-NoAltGr.svg/900px-KB_United_States-NoAltGr.svg.png</a>
- </p>
-
- <h3 id="keyboards_ukdvorak">Dvorak (United Kingdom)</h3>
- <p>
- <a href="https://upload.wikimedia.org/wikipedia/commons/thumb/c/cc/KB_United_Kingdom_Dvorak.svg/900px-KB_United_Kingdom_Dvorak.svg.png">https://upload.wikimedia.org/wikipedia/commons/thumb/c/cc/KB_United_Kingdom_Dvorak.svg/900px-KB_United_Kingdom_Dvorak.svg.png</a>
- </p>
-
- <h3 id="keyboards_usdvorak">Dvorak (United States)</h3>
- <p>
- <a href="https://upload.wikimedia.org/wikipedia/commons/thumb/2/25/KB_United_States_Dvorak.svg/800px-KB_United_States_Dvorak.svg.png">https://upload.wikimedia.org/wikipedia/commons/thumb/2/25/KB_United_States_Dvorak.svg/800px-KB_United_States_Dvorak.svg.png</a>
- </p>
-
- <h3 id="keyboards_frazerty">AZERTY (French)</h3>
- <p>
- <a href="https://upload.wikimedia.org/wikipedia/commons/thumb/b/b9/KB_France.svg/800px-KB_France.svg.png">https://upload.wikimedia.org/wikipedia/commons/thumb/b/b9/KB_France.svg/800px-KB_France.svg.png</a>
- </p>
- <h3 id="keyboards_itqwerty">QWERTY (Italian)</h3>
- <p>
- <a href="https://upload.wikimedia.org/wikipedia/commons/thumb/e/e5/Italian_Keyboard_layout.svg/799px-Italian_Keyboard_layout.svg.png">https://upload.wikimedia.org/wikipedia/commons/thumb/e/e5/Italian_Keyboard_layout.svg/799px-Italian_Keyboard_layout.svg.png</a>
- </p>
-
- <p><a href="#pagetop">Back to top of page</a></p>
-
<h2 id="grub_custom_keyboard">Custom keyboard layout in GRUB (for reference)</h2>
<p>
- Keymaps are stored in resources/grub/keymap/original (original files) and resources/grub/keymap (.gkb files).
+ Keymaps are stored in resources/utilities/grub-assemble/keymap/.
</p>
<p>
@@ -1346,8 +1455,8 @@
</p>
<p>
- Then from the above example, you would put <b>frazerty</b> in <b>resources/grub/keymap/original/</b> and
- the <b>frazerty.gkb</b> file goes under <b>resources/grub/keymap/</b>
+ Then from the above example, you would put <b>frazerty</b> in <b>resources/utilities/grub-assemble/keymap/original/</b> and
+ the <b>frazerty.gkb</b> file goes under <b>resources/utilities/grub-assemble/keymap/</b>
</p>
<p>
@@ -1357,90 +1466,23 @@
<p><a href="#pagetop">Back to top of page</a></p>
- <h2 id="grub_qwerty_keyboard">US Qwerty keyboard layout in GRUB (for reference)</h2>
-
- <p>Generate the layout file:<br/>
- <b>$ ckbcomp us > usqwerty</b><br/>
- <b>$ cat usqwerty | ./grub/grub-mklayout -o usqwerty.gkb</b></p>
-
- <p><a href="#pagetop">Back to top of page</a></p>
-
- <h2 id="grub_ukqwerty_keyboard">UK Qwerty keyboard layout in GRUB (for reference)</h2>
-
- <p>Generate the layout file:<br/>
- <b>$ ckbcomp gb > ukqwerty</b><br/>
- <b>$ cat ukqwerty | ./grub/grub-mklayout -o ukqwerty.gkb</b></p>
-
- <p><a href="#pagetop">Back to top of page</a></p>
-
- <h2 id="grub_dvorak_keyboard">US Dvorak keyboard layout in GRUB (for reference)</h2>
-
- <p>Generate the layout file:<br/>
- <b>$ ckbcomp dvorak > usdvorak</b><br/>
- <b>$ cat usdvorak | ./grub/grub-mklayout -o usdvorak.gkb</b></p>
-
- <p><a href="#pagetop">Back to top of page</a></p>
-
<h2 id="grub_ukdvorak_keyboard">UK Dvorak keyboard layout in GRUB (for reference)</h2>
<p>
- ukdvorak had to be created manually, based on usdvorak. diff them (under resources/grub/keymap/original)
+ ukdvorak had to be created manually, based on usdvorak. diff them (under resources/utilities/grub-assemble/keymap/original)
to see how ukdvorak file was created
</p>
<b>$ cat ukdvorak | ./grub/grub-mklayout -o ukdvorak.gkb</b></p>
- <h2 id="grub_frazerty_keyboard">French AZERTY keyboard layout in GRUB (for reference)</h2>
-
- <p>Generate the layout file:<br/>
- <b>$ ckbcomp fr > frazerty</b><br/>
- <b>$ cat frazerty | ./grub/grub-mklayout -o frazerty.gkb</b></p>
-
- <h2 id="grub_itqwerty_keyboard">Italian QWERTY keyboard layout in GRUB (for reference)</h2>
-
- <p>Generate the layout file:<br/>
- <b>$ ckbcomp it > itqwerty</b><br/>
- <b>$ cat itqwerty | ./grub/grub-mklayout -o itqwerty.gkb</b></p>
-
<p><a href="#pagetop">Back to top of page</a></p>
<hr/>
- <h1 id="tft_brightness">Brightness controls (ThinkPad X60) - how to prevent 'scrolling'</h1>
- <p>
- Sometimes, on some setups, when turning up the brightness while at max, it will loop back to minimum.
- Also, the minimum will turn the backlight off completely.
- </p>
- <p>
- Install build dependencies (for Trisquel 6. Adapt if your distro is different):<br/>
- <b>$ sudo apt-get install build-essential</b>
- </p>
- <p>
- Go into the libreboot_src directory. Under coreboot/util/nvramtool/ do that to compile it:<br/>
- <b>$ make</b><br/>
- (nvramtool is also in libreboot_bin/nvramtool)
- </p>
- <p>
- Now do that:<br/>
- <b>$ sudo ./nvramtool -w tft_brightness=0xff</b><br/>
- Alternatively if there are errors, try:<br/>
- <b>$ sudo ./nvramtool -y ../../src/mainboard/lenovo/x60/cmos.layout -w tft_brightness=0xff</b><br/>
- If you are using libreboot_bin, do that:<br/>
- <b>$ sudo ../x60cmos.layout -w tft_brightness=0xff</b><br/>
- </p>
- <p>
- The next time you boot, the looping issue should be gone.
- </p>
-
- <p><a href="#pagetop">Back to top of page</a></p>
-
-<hr/>
-
<h1 id="x60_wifi">ThinkPad X60: Enable or disable wifi</h1>
<p>
- Install build dependencies in Trisquel 6 (adapt for other distro):<br/>
- <b>$ sudo apt-get install build-essential</b><br/>
- nvramtool is in coreboot or libreboot source tree until util/:<br/>
+ <a href="#build_dependencies">Install the build dependencies</a> and then build nvramtool.<br/>
+ nvramtool is in coreboot or libreboot source tree under util/:<br/>
<b>$ cd libreboot_src/coreboot/util/nvramtool</b><br/>
(nvramtool is also in libreboot_bin/nvramtool)<br/>
<b>$ make</b><br/>
@@ -1460,11 +1502,33 @@
<hr/>
+ <h1 id="x60_bluetooth">ThinkPad X60: Enable or disable bluetooth</h1>
+ <p>
+ <a href="#build_dependencies">Install the build dependencies</a> and then build nvramtool.<br/>
+ nvramtool is in coreboot or libreboot source tree under util/:<br/>
+ <b>$ cd libreboot_src/coreboot/util/nvramtool</b><br/>
+ (nvramtool is also in libreboot_bin/nvramtool)<br/>
+ <b>$ make</b><br/>
+ Enable wifi:<br/>
+ <b>$ sudo ./nvramtool -w bluetooth=Enable</b><br/>
+ Disable wifi:<br/>
+ <b>$ sudo ./nvramtool -w bluetooth=Disable</b><br/>
+ If that doesn't work, try one of these instead:<br/>
+ <b>$ sudo ./nvramtool -y ../../src/mainboard/lenovo/x60/cmos.layout -w bluetooth=Enable</b><br/>
+ <b>$ sudo ./nvramtool -y ../../src/mainboard/lenovo/x60/cmos.layout -w bluetooth=Disable</b><br/>
+ If you are using libreboot_bin, do that instead:<br/>
+ <b>$ sudo ./nvramtool -y ../x60cmos.layout -w bluetooth=Enable</b><br/>
+ <b>$ sudo ./nvramtool -y ../x60cmos.layout -w bluetooth=Disable</b>
+ </p>
+ <p>The next time you boot, wifi will be enabled.</p>
+ <p><a href="#pagetop">Back to top of page</a></p>
+
+<hr/>
+
<h1 id="x60_trackpoint">ThinkPad X60: Enable or disable trackpoint</h1>
<p>
- Install build dependencies in Trisquel 6 (adapt for other distro):<br/>
- <b>$ sudo apt-get install build-essential</b><br/>
- nvramtool is in coreboot or libreboot source tree until util/:<br/>
+ <a href="#build_dependencies">Install the build dependencies</a> and then build nvramtool.<br/>
+ nvramtool is in coreboot or libreboot source tree under util/:<br/>
<b>$ cd libreboot_src/coreboot/util/nvramtool</b><br/>
(nvramtool is also in libreboot_bin/nvramtool)<br/>
<b>$ make</b><br/>
@@ -1486,6 +1550,13 @@
<h1 id="high_pitch_trisquel">High Pitched Whining Noise on Idle (how to remove in Trisquel)</h1>
+ <p>
+ Tested in Trisquel 6.
+ </p>
+ <p>
+ Note: untested in Trisquel 7. Remove this note when it is.
+ </p>
+
<h2 id="howtouse_powertop">Powertop - how to use</h2>
<p>Now you can use this command to kill that noise:<br/>
@@ -1594,7 +1665,7 @@ WantedBy=multi-user.target
<h1 id="get_edid_panelname">Get EDID: Find out the name (model) of your LCD panel</h1>
<p>
- Get the panel name with <b>sudo get-edit | strings</b><br/>
+ Get the panel name with <b>sudo get-edid | strings</b><br/>
Or look in <b>/sys/class/drm/card0-LVDS-1/edid</b>
</p>
<p>
@@ -1630,8 +1701,15 @@ WantedBy=multi-user.target
<hr/>
<p>
- Copyright &copy; 2014 Francis Rowe, All Rights Reserved.<br/>
- See <a href="license.html">license.html</a> for license conditions.
+ Copyright &copy; 2014 Francis Rowe &lt;info@gluglug.org.uk&gt;<br/>
+ This document is released under the Creative Commons Attribution-ShareAlike 4.0 International Public License and all future versions.
+ A copy of the license can be found at <a href="license.txt">license.txt</a>.
+ </p>
+
+ <p>
+ This document is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See <a href="license.txt">license.txt</a> for more information.
</p>
</body>
diff --git a/docs/license.html b/docs/license.html
deleted file mode 100644
index 3b5f415e..00000000
--- a/docs/license.html
+++ /dev/null
@@ -1,80 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-
- <meta charset="utf-8">
- <meta name="viewport" content="width=device-width, initial-scale=1">
-
- <style type="text/css">
- body {
- background:#fff;
- color:#000;
- font-family:sans-serif;
- font-size:1em;
- }
- </style>
-
- <title>
- Copyright licensing information for the libreboot project (http://www.libreboot.org/) documentation
- </title>
-
-</head>
-
-<body>
-
- <header>
- <h1 id="pagetop">Copyright licensing information for the libreboot project (http://www.libreboot.org/) documentation</h1>
- <aside>Time and date of writing: 07:54 (time zone: UTC) on July 11th, 2014.</aside>
- </header>
-
- <p>
- Libreboot documentation (included in the 'docs' directory) and this license document are:<br/>
- <b>Copyright &copy; 2014 Francis Rowe, All Rights Reserved.</b><br/>
- Send email to info@gluglug.org.uk for your enquiry.
- </p>
-
- <p>
- I (Francis Rowe) give license (except where otherwise noted) to you (the licensee or &quot;end user&quot;) for the supplied documentation in the 'docs' directory, -- <b>with exception to this license document that you are reading now which may only be read, copied and distributed without modification</b> -- under your chosen <b>parallel (simultaneous) combination of AT LEAST ONE (1) of</b>, or <b>singular selection from AT LEAST ONE (1) of</b> or <b>parallel (simultaneous) choice of ALL THREE (3) of</b> the following copyright licenses:
- </p>
-
- <ul>
- <li>
- <b>Creative Commons Attribution-ShareAlike 4.0 International</b> public license (per <a href="cc-by-sa-4.txt">cc-by-sa-4.txt</a>)
- or (at your choosing) any subsequent version of the <b>Creative Commons Attribution-ShareAlike International</b> public license
- (per <a href="https://creativecommons.org/licenses/">https://creativecommons.org/licenses/</a>)
- as published by <a href="https://creativecommons.org/">Creative Commons</a>.
- </li>
- <li>
- <b>GNU Free Documentation License, version 1.3 with no Invariant Sections, no Front-Cover Texts and no Back-Cover Texts</b> (per <a href="gnu-fdl-1.3.shtml">gnu-fdl-1.3.shtml</a>)
- or (at your choosing) any subsequent version of the <b>GNU Free Documentation License with no Invariant Sections, no Front-Cover Texts and no Back-Cover Texts</b> (per <a href="https://www.gnu.org/licenses/">https://www.gnu.org/licenses/</a>) as published by the <a href="https://www.fsf.org">Free Software Foundation</a>.
- </li>
- <li>
- <b>GNU General Public License, version 3.0</b> (per <a href="gnu-gpl-3.0.shtml">gnu-gpl-3.0.shtml</a>) or (at your option) any subsequent version
- of the <b>GNU General Public License</b> (per <a href="https://www.gnu.org/licenses/">https://www.gnu.org/licenses/</a>) as published by the <a href="https://www.fsf.org">Free Software Foundation</a>. Per <b>Section 7b</b> of the <b>GNU General Public License version 3.0</b> (per <a href="gnu-gpl-3.0.shtml">gnu-gpl-3.0.shtml</a>) you must also comply with the <b>Attribution</b> section below:
- </li>
- </ul>
-
- <h2>Attribution</h2>
- <ul>
- <li>Credit Francis Rowe,</li>
- <li>Provide the title of the work,</li>
- <li>Provide the URL where the work is made available,</li>
- <li>Indicate the type of license it is available under and provide a copy of the license (so others can find out the license terms); and</li>
- <li>Keep intact any copyright notices associated with the work.</li>
- </ul>
-
- <h2>
- Exceptions
- </h2>
-
- <p>
- I (Francis Rowe) <b>do not claim</b> copyright ownership (due to <b>lack</b> of copyright ownership) on the following license documents located within the 'docs' directory:
- </p>
- <ul>
- <li><a href="cc-by-sa-4.txt">cc-by-sa-4.txt</a> (attributed to <a href="https://creativecommons.org/">Creative Commons</a>)</li>
- <li><a href="gnu-fdl-1.3.shtml">gnu-fdl-1.3.shtml</a> (attributed to the <a href="https://www.fsf.org/">Free Software Foundation</a>)</li>
- <li><a href="gnu-gpl-3.0.shtml">gnu-gpl-3.0.shtml</a> (attributed to the <a href="https://www.fsf.org/">Free Software Foundation</a>)</li>
- </ul>
-
-</body>
-</html>
diff --git a/docs/cc-by-sa-4.txt b/docs/license.txt
index 34ec65f3..c333481c 100644
--- a/docs/cc-by-sa-4.txt
+++ b/docs/license.txt
@@ -423,3 +423,4 @@ the avoidance of doubt, this paragraph does not form part of the public
licenses.
Creative Commons may be contacted at creativecommons.org.
+
diff --git a/docs/patch.html b/docs/patch.html
index 7b219cf9..2131951e 100644
--- a/docs/patch.html
+++ b/docs/patch.html
@@ -153,8 +153,15 @@
<hr/>
<p>
- Copyright &copy; 2014 Francis Rowe, All Rights Reserved.<br/>
- See <a href="license.html">license.html</a> for license conditions.
+ Copyright &copy; 2014 Francis Rowe &lt;info@gluglug.org.uk&gt;<br/>
+ This document is released under the Creative Commons Attribution-ShareAlike 4.0 International Public License and all future versions.
+ A copy of the license can be found at <a href="license.txt">license.txt</a>.
+ </p>
+
+ <p>
+ This document is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See <a href="license.txt">license.txt</a> for more information.
</p>
</body>
diff --git a/docs/release.html b/docs/release.html
index 15b23426..b11cf300 100644
--- a/docs/release.html
+++ b/docs/release.html
@@ -45,7 +45,7 @@
<h2>Releases</h2>
<ul>
- <li><a href="#release6">6th release</a> (2014 August 11th, <b>pre-release, 5th beta</b>)</h1>
+ <li><a href="#release6">6th release</a> (2014 September 3rd <b>pre-release, 6th beta</b>) (see <a href="#critical_tasks">critical</a> and <a href="#noncritical_tasks">non-critical</a> tasks)</h1>
<li><a href="#release5">5th release</a> (2014 March 7th, revised 2014 June 22nd)</h1>
<li><a href="#release4">4th release</a> (2014 February 21st)</h1>
<li><a href="#release3">3rd release</a> (2013 December 14th)</h1>
@@ -65,7 +65,7 @@
<hr/>
- <h1 id="release6">6th release (pre-release, 5th beta)</h1>
+ <h1 id="release6">6th release (pre-release, 6th beta)</h1>
<ul>
<li>Released 2014 July 11th (pre-release) 1st beta</li>
@@ -73,6 +73,7 @@
<li>Revised (pre-release, 3rd beta) 2014 July 20th</li>
<li>Revised (pre-release, 4th beta) 2014 July 29th</li>
<li>Revised (pre-release, 5th beta) 2014 August 11th (corrected 2014 August 11th)</li>
+ <li>Revised (pre-release, 6th beta) 2014 September 3rd</li>
</ul>
<div class="important">
@@ -87,21 +88,13 @@
<h2>Binaries (for flashing) (right-click save as, or use wget)</h2>
<ul>
- <li><a href="http://libreboot.org/release/5/prerelease_beta5/correction/libreboot_bin.tar.gz">http://libreboot.org/release/5/prerelease_beta5/correction/libreboot_bin.tar.gz</a></li>
- <li><a href="http://libreboot.org/release/5/prerelease_beta5/correction/libreboot_bin.tar.gz.sig">http://libreboot.org/release/5/prerelease_beta5/correction/libreboot_bin.tar.gz.sig</a></li>
- <li><a href="http://libreboot.org/release/5/prerelease_beta5/correction/libreboot_bin.tar.gz.sha512sum.txt">http://libreboot.org/release/5/prerelease_beta5/correction/libreboot_bin.tar.gz.sha512sum.txt</a></li>
+ <li><a href="http://libreboot.org/release/5/prerelease_beta6/libreboot_bin.tar.xz">http://libreboot.org/release/5/prerelease_beta6/libreboot_bin.tar.xz</a></li>
+ <li><a href="http://libreboot.org/release/5/prerelease_beta6/libreboot_bin.tar.xz.sig">http://libreboot.org/release/5/prerelease_beta6/libreboot_bin.tar.xz.sig</a></li>
</ul>
<h2>Source code (for hacking) (right-click save as, or use wget)</h2>
<ul>
- <li><a href="http://libreboot.org/release/5/prerelease_beta5/correction/libreboot_src.tar.gz">http://libreboot.org/release/5/prerelease_beta5/correction/libreboot_src.tar.gz</a></li>
- <li><a href="http://libreboot.org/release/5/prerelease_beta5/correction/libreboot_src.tar.gz.sig">http://libreboot.org/release/5/prerelease_beta5/correction/libreboot_src.tar.gz.sig</a></li>
- <li><a href="http://libreboot.org/release/5/prerelease_beta5/correction/libreboot_src.tar.gz.sha512sum.txt">http://libreboot.org/release/5/prerelease_beta5/correction/libreboot_src.tar.gz.sha512sum.txt</a></li>
- </ul>
- <h2>Metadata (for re-creating the source archive) (right-click save as, or use wget)</h2>
- <ul>
- <li><a href="http://libreboot.org/release/5/prerelease_beta5/correction/libreboot_meta.tar.gz">http://libreboot.org/release/5/prerelease_beta5/correction/libreboot_meta.tar.gz</a></li>
- <li><a href="http://libreboot.org/release/5/prerelease_beta5/correction/libreboot_meta.tar.gz.sig">http://libreboot.org/release/5/prerelease_beta5/correction/libreboot_meta.tar.gz.sig</a></li>
- <li><a href="http://libreboot.org/release/5/prerelease_beta5/correction/libreboot_meta.tar.gz.sha512sum.txt">http://libreboot.org/release/5/prerelease_beta5/correction/libreboot_meta.tar.gz.sha512sum.txt</a></li>
+ <li><a href="http://libreboot.org/release/5/prerelease_beta6/libreboot_src.tar.xz">http://libreboot.org/release/5/prerelease_beta6/libreboot_src.tar.xz</a></li>
+ <li><a href="http://libreboot.org/release/5/prerelease_beta6/libreboot_src.tar.xz.sig">http://libreboot.org/release/5/prerelease_beta6/libreboot_src.tar.xz.sig</a></li>
</ul>
<h2>Machines still supported (compared to previous release):</h2>
@@ -130,6 +123,13 @@
<li>See notes below for exceptions, and <a href="../docs/index.html#supported_t60_list">../docs/index.html#supported_t60_list</a> for known working LCD panels.</li>
<li>It is unknown whether a T61 can have it's mainboard replaced with a T60 motherboard.</li>
<li>See <a href="../docs/future/index.html#t60_cpu_microcode">../docs/future/index.html#t60_cpu_microcode</a>.</li>
+ <li>T60p (and T60's with ATI GPU) will likely never be supported: <a href="../docs/index.html#t60_ati_intel">../docs/index.html#t60_ati_intel</a></li>
+ </ul>
+ </li>
+ <li>
+ <b>Apple MacBook1,1</b> (MA255LL/A, MA254LL/A, MA472LL/A)
+ <ul>
+ <li>See <a href="../docs/index.html#macbook11">../docs/index.html#macbook11</a>.</li>
</ul>
</li>
<li>
@@ -468,6 +468,7 @@
</li>
<li>Re-added .git files to bucts</li>
<li>Fixed the oversight where macbook21_firstflash wasn't included in binary archives</li>
+ <li>Release archives are now compressed using .tar.xz for better compression</li>
</ul>
<h2>
@@ -478,25 +479,311 @@
<li>Fixed incorrect grub.cfg that was actually placed in resources/grub/config/x60/grub_usqwerty.cfg which broke the default GRUB menu entry on X60</li>
</ul>
+ <h2>
+ Revisions for 6th beta (2014 September 3rd)
+ </h2>
+ <ul>
+ <li>Added modified builddeb* scripts for Parabola GNU/Linux-libre: buildpac, buildpac-flashrom, buildpac-bucts (courtesy of Noah Vesely)</li>
+ <li>Documentation: updated all relevant areas to mention use of buildpac* scripts for Parabola users.</li>
+ <li>Documentation: added information showing how to enable or disable bluetooth on the X60</li>
+ <li>MacBook1,1 tested! See <a href="../docs/index.html#macbook11">../docs/index.html#macbook11"</a></li>
+ <li>Documentation: fixed typo in ../docs/index.html#get_edid_panelname (get-edit changed to get-edid)</li>
+ <li>Documentation: added ../docs/howtos/x60_lcd_change/ (pics only for now)</li>
+ <li>Added gcry_serpent and gcry_whirlpool to the GRUB module list in the 'build' script (for luks users)</li>
+ <li>
+ <b>Libreboot is now based on a new coreboot version from August 23rd, 2014:<br/>
+ Merged commits (relates to boards that were already supported in libreboot):</b>
+ <ul>
+ <li><a href="http://review.coreboot.org/#/c/6697/">http://review.coreboot.org/#/c/6697/</a></li>
+ <li><a href="http://review.coreboot.org/#/c/6698/">http://review.coreboot.org/#/c/6698/</a> (merged already)</li>
+ <li><a href="http://review.coreboot.org/#/c/6699/">http://review.coreboot.org/#/c/6699/</a> (merged already)</li>
+ <li><a href="http://review.coreboot.org/#/c/6696/">http://review.coreboot.org/#/c/6696/</a> (merged already)</li>
+ <li><a href="http://review.coreboot.org/#/c/6695/">http://review.coreboot.org/#/c/6695/</a> (merged already)</li>
+ <li><b><a href="http://review.coreboot.org/#/c/5927/">http://review.coreboot.org/#/c/5927/</a> (merged already)</b></li>
+ <li><a href="http://review.coreboot.org/#/c/6717/">http://review.coreboot.org/#/c/6717/</a> (merged already)</li>
+ <li><a href="http://review.coreboot.org/#/c/6718/">http://review.coreboot.org/#/c/6718/</a> (merged already)</li>
+ <li>
+ <a href="http://review.coreboot.org/#/c/6723/">http://review.coreboot.org/#/c/6723/</a> (merged already)
+ (text-mode patch, might enable memtest. macbook21)
+ </li>
+ <li>
+ <a href="http://review.coreboot.org/#/c/6732/">http://review.coreboot.org/#/c/6732/</a> (MERGED)
+ (remove useless ps/2 keyboard delay from macbook21. already merged)
+ </li>
+ </ul>
+ </li>
+ <li>
+ These were also merged in coreboot (relates to boards that libreboot already supported):
+ <ul>
+ <li><a href="http://review.coreboot.org/#/c/5320/">http://review.coreboot.org/#/c/5320/</a> (merged)</li>
+ <li><a href="http://review.coreboot.org/#/c/5321/">http://review.coreboot.org/#/c/5321/</a> (merged)</li>
+ <li><a href="http://review.coreboot.org/#/c/5323/">http://review.coreboot.org/#/c/5323/</a> (merged)</li>
+ <li><a href="http://review.coreboot.org/#/c/6693/">http://review.coreboot.org/#/c/6693/</a> (merged)</li>
+ <li><a href="http://review.coreboot.org/#/c/6694/">http://review.coreboot.org/#/c/6694/</a> (merged)</li>
+ <li><a href="http://review.coreboot.org/#/c/5324/">http://review.coreboot.org/#/c/5324/</a> (merged)</li>
+ </ul>
+ </li>
+ <li>Documentation: removed the section about tft_brightness on X60 (new code makes it obsolete)</li>
+ <li>Removed all patches from resources/libreboot/patch/ and added new patch: 0000_t60_textmode.git.diff</li>
+ <li>Updated getcb script and DEBLOB script.</li>
+ <li>Updated configuration files under resources/libreboot/config/ to accomodate new coreboot version.</li>
+ <li>
+ Removed grub_serial*.cfg and libreboot_serial*.rom, all configs/rom's are now unified (containing same configuration as serial rom's from before).
+ <ul>
+ <li>Documentation: updated ../docs/index.html#rom to reflect the above.</li>
+ </ul>
+ </li>
+ <li>Updated GRUB to new version from August 14th, 2014.</li>
+ <li>Unified all grub configurations for all machines to a single grub.cfg under resources/grub/config/</li>
+ <li>Updated flashrom to new version from August 20th, 2014</li>
+ <li>
+ Added getseabios and builddeps-seabios (builddeps and getall were also updated)
+ <ul>
+ <li>
+ Added instructions to 'buildrom-withgrub' to include bios.bin.elf and vgaroms/vgabios.bin from SeaBIOS inside the ROM.
+ </li>
+ </ul>
+ </li>
+ <li>Added seabios (and sgavgabios) to grub as payload option in menu</li>
+ <li>
+ Disabled serial output in Memtest86+ (no longer needed) to speed up tests.
+ <ul>
+ <li>MemTest86+ now works properly, it can output on the laptop screen (no serial port needed anymore).</li>
+ </ul>
+ </li>
+ <li>
+ Added getgrubinvaders, builddeps-grubinvaders scripts. Added these to getall and builddeps.
+ <ul>
+ <li>
+ Added <a href="http://www.coreboot.org/GRUB_invaders">GRUB Invaders</a> menu entry in resources/grub/config/grub.cfg
+ </li>
+ </ul>
+ </li>
+ <li>Added rules to builddeps-coreboot to build libpayload with TinyCurses. (added appropriate instructions to cleandeps script).</li>
+ <li>Commented out lines in resources/grub/config/grub.cfg for loading font/background (not useful anymore, now that GRUB is in text-mode).</li>
+ <li>Commented out lines in buildrom-withgrub that included backgrounds/fonts (not useful anymore, now that GRUB is in text-mode).</li>
+ <li>
+ Added resources/utilities/i945-pwm/ (from git://git.mtjm.eu/i945-pwm), for debugging acpi brightness on i945 machines.
+ <ul>
+ <li>Added instructions for it in builddeps, builddeps-i945pwm, builddeb and cleandeps</li>
+ </ul>
+ </li>
+ <li>'build' script: removed the parts that generated sha512sum manifests (not needed, since release tarballs are GPG-signed)</li>
+ <li>
+ 'build' script: removed the parts that generated libreboot_meta directory (not needed anymore, since _meta will be hosted in git)
+ <ul>
+ <li>Updated ../docs/index.html#build_meta (and other parts of documentation) to accomodate this change.</li>
+ </ul>
+ </li>
+ <li>Documentation: simplified (refactored) the notes in ../docs/index.html#rom</li>
+ <li>
+ 'build' script: removed the parts that generated libreboot_bin and added them to a new script: 'build-release'
+ <ul>
+ <li>Documentation: ../docs/index.html#build updated to reflect the above.</li>
+ </ul>
+ </li>
+ <li>Removed 'sudo' from builddeb, builddeb-flashrom, powertop.trisquel6 and builddeb-bucts scripts (assuming that the user has it is a really bad idea).</li>
+ <li><s>Added all gcry_* modules to grub (luks/cryptomount): gcry_arcfour gcry_camellia gcry_crc gcry_dsa gcry_md4 gcry_rfc2268 gcry_rmd160 gcry_seed gcry_sha1 gcry_sha512 gcry_twofish gcry_blowfish gcry_cast5 gcry_des gcry_idea gcry_md5 gcry_rijndael gcry_rsa gcry_serpent gcry_sha256 gcry_tiger gcry_whirlpool</s></li>
+ <li>Added GNUtoo's list of GRUB modules (includes all of the gcry_* modules above), cryptomount should be working now.</li>
+ <li>Removed builddeb-bucts and builddeb-flashrom, merged them with builddeb (../docs/index.html updated accordingly)</li>
+ <li>Removed buildpac-bucts and buildpac-flashrom, merged them with buildpac (../docs/index.html updated accordingly)</li>
+ <li>Renamed builddeb to deps-trisquel (../docs/index.html updated accordingly)</li>
+ <li>Renamed buildpac to deps-parabola (../docs/index.html updated accordingly)</li>
+ <li>Documentation: removed all parts talking about build dependencies, replaced them with links to ../docs/index.html#build_dependencies</li>
+ <li>Documentation: emphasized more strongly on the documentation, the need to re-build bucts and/or flashrom before flashing a ROM image.</li>
+ <li>build-release: flashrom, nvramtool, cbfstool and bucts are no longer provided pre-compiled in binary archives, and are now in source form only. (to maximize distro compatibility).</li>
+ <li>Documentation: added ../docs/howtos/encrypted_trisquel.html showing how to setup a fully encrypted Trisquel installation (including /boot) and boot it from the GRUB payload.</li>
+ <li>'build' script: replaced grub.elf assembly instructons, it's now handled by a utility added under resources/utilities/grub-assemble</li>
+ <li>Moved resources/grub/keymap to resources/utilities/grub-assemble/keymap, and updated that utility to use it</li>
+ <li>Documentation: removed useless links to pictures of keyboard layouts and unmodified layouts.</li>
+ <li>Removed all unused fonts from dejavu-fonts-ttf-2.34/ directory</li>
+ <li>'buildrom-withgrub' script: updated it to create 2 sets of ROM's for each machine: one with text-mode, one with coreboot framebuffer.</li>
+ <li>Documentation: updated ../docs/index.html#rom to reflect the above</li>
+ <li>Deleted unused README and COPYING file from main directory</li>
+ <li>Removed some rm -rf .git* instructions from the get* scripts and moved them to build-release script</li>
+ <li>
+ Split up default grub.cfg into 6 parts: extra/{common.cfg,txtmode.cfg,vesafb.cfg} and menuentries/{common.cfg,txtmode.cfg,vesafb.cfg}
+ <ul>
+ <li>buildrom-withgrub script uses these to generate the correct grub.cfg for each type of configuration.</li>
+ </ul>
+ </li>
+ <li>grub_memdisk.cfg (used inside grub.elf) now only loads grub.cfg from cbfs. It no longer enables serial output or sets prefix. (menuentries/common.cfg does instead)</li>
+ <li>
+ resources/grub/config/extra/common.cfg, added:
+ <ul>
+ <li>insmod instructions to load those modules: nativedisk, ehci, ohci, uhci, usb, usbserial_pl2303, usbserial_ftdi, usbserial_usbdebug</li>
+ <li>set prefix=(memdisk)/boot/grub</li>
+ <li>
+ For native graphics (recommended by coreboot wiki):<br/>
+ gfxpayload=keep<br/>
+ terminal_output --append gfxterm
+ </li>
+ <li>
+ Play a beep on startup:<br/>
+ play 480 440 1
+ </li>
+ </ul>
+ </li>
+ <li>
+ Documentation: added note about 'fb=false' workaround for text-mode debian-installer (Trisquel net install) to
+ ../docs/howtos/grub_boot_installer.html
+ </li>
+ <li>
+ Documentation: updated ../docs/howtos/grub_cbfs.html to make it safer (and easier) to follow.
+ </li>
+ </ul>
+
<div class="important">
- <h2>
- Other tasks (to be completed before declaring the initial stable release)
+
+ <h2 id="critical_tasks">
+ Critical tasks (to be completed before declacing the initial stable release)
</h2>
<ul>
<li>
- <b><u><i>TODO:</i></u></b> Fix remaining incompatible LCD panels in native graphics on T60.
- (see <a href="../docs/future/index.html#lcd_i945_incompatibility">../docs/future/index.html#lcd_i945_incompatibility</a>) and <b>submit patches upstream</b>.
+ <b>GIT! GIT! GIT! Setup a git repository for libreboot_meta. (on dev.libreboot.org): git init, git add, git commit</b>
</li>
<li>
- <b><u><i>TODO:</i></u></b> Implement VBT on X60/T60/X60T (and macbook21?)
- (see <a href="../docs/future/index.html#i945_vbt">../docs/future/index.html#i945_vbt</a> and
- <a href="../docs/future/index.html#intelvbttool_results">../docs/future/index.html#intelvbttool_results</a>) and <b>submit changes upstream</b>.
+ <b>Look at notes and TODO's about untested changes from changelog in libreboot 6th release beta 6, and test them. include test results in next change log.
+ (and for those commits that become merged in coreboot, mention them)</b>
</li>
<li>
- <b><u><i>TODO:</i></u></b> Submit 3D fix (for X60/T60/macbook21/X60T on kernel 3.12+) upstream for 5320 changeset.
+ Keep an eye on these commits for next rebase:
+ <ul>
+ <li><a href="http://review.coreboot.org/#/c/6789/">http://review.coreboot.org/#/c/6789/</a> <b>(MERGED!!!)</b></li>
+ <li><a href="http://review.coreboot.org/#/c/6790/">http://review.coreboot.org/#/c/6790/</a> <b>(MERGED!!!)</b></li>
+ <li><a href="http://review.coreboot.org/#/c/6792/">http://review.coreboot.org/#/c/6792/</a></li>
+ <li><a href="http://review.coreboot.org/#/c/6793/">http://review.coreboot.org/#/c/6793/</a></li>
+ <li><a href="http://review.coreboot.org/#/c/6788/">http://review.coreboot.org/#/c/6788/</a> <b>(MERGED!!!)</b></li>
+ <li><a href="http://review.coreboot.org/#/c/6813/">http://review.coreboot.org/#/c/6813/</a></li>
+ <li><a href="http://review.coreboot.org/#/c/6804/">http://review.coreboot.org/#/c/6804/</a></li>
+ <li><a href="http://review.coreboot.org/#/c/6817/">http://review.coreboot.org/#/c/6817/</a> <b>(MERGED!!!)</b></li>
+ <li><a href="http://review.coreboot.org/#/c/6820/">http://review.coreboot.org/#/c/6820/</a></li>
+ </ul>
+ </li>
+ <li>
+ <b>Also keep an eye on these; they are not yet merged in coreboot (need to test) but included in libreboot:</b>
+ <ul>
+ <li>
+ <a href="http://review.coreboot.org/#/c/6725">http://review.coreboot.org/#/c/6725</a>
+ (text-mode patch, might enable memtest. x60. TEST IT! <b>(Disable 'Keep VESA Framebuffer' in menuconfig)</b>)
+ <ul>
+ <li>a patch for T60 should be created based on the above. See <b>resources/libreboot/patch/0000_t60_textmode.git.diff</b> (submit it upstream!!)</li>
+ </ul>
+ </li>
+ <li>
+ <s><a href="http://review.coreboot.org/#/c/6720">http://review.coreboot.org/#/c/6720/</a>
+ (ACPI backlight patch for X60. TEST IT!)</s>
+ <ul>
+ <li><s>a patch for T60 should be created based on the above.</s></li>
+ <li>see below</li>
+ </ul>
+ </li>
+ <li>
+ ACPI backlight controls for i945 <b>(TEST IT!)</b>:
+ <ul>
+ <li><a href="http://review.coreboot.org/#/c/6730">http://review.coreboot.org/#/c/6730</a> (MERGED (was just removing unused code))</li>
+ <li><a href="http://review.coreboot.org/#/c/6731/">http://review.coreboot.org/#/c/6731/</a> (has uneven backlight. fixed in libreboot. phcoder says he will re-write it)</li>
+ </ul>
+ </li>
+ <li>
+ <a href="http://review.coreboot.org/#/c/5345/">http://review.coreboot.org/#/c/5345/</a>
+ (already in libreboot. it still needs to be cherry picked because it's not merged yet, there are bugs that need fixing)
+ </li>
+ <li>
+ TODO: figure out how to add VGA output (external monitor) support in i945 native graphics.
+ <ul>
+ <li>Gnutoo says that the seabios page on coreboot wiki might give some hints</li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ <li>
+ PTE errors still exist with 6718 (which is merged). <a href="http://review.coreboot.org/#/c/6718/">http://review.coreboot.org/#/c/6718/</a>
+ <ul>
+ <li><a href="future/dumps/pte_x60_6718/dmesg">dmesg</a></li>
+ <li><a href="future/dumps/pte_x60_6718/kern.log">kern.log</a></li>
+ </ul>
+ </li>
+ <li>
+ ACPI brightness (tested on X60/T60): left half of screen is darker than the right side, when turning down brightness. Investigate.<br/>
+ mtjm: I'll send you my very hacky program for changing brightness and PWM frequency, it makes testing easier<br/>
+ mtjm: git://git.mtjm.eu/i945-pwm.git, exponent = 4, divisor = 0 is what 6731 would do<br/>
+ Setting exponent 9 and divisor 0 is what libreboot is doing currently (as a modification to 6731)
+ <ul>
+ <li>mtjm says: ACPI spec appendix B video extensions documents what IDs do, igd.asl doesn't use them correctly</li>
+ <li>phcoder says: igd.asl is so broken. Mismatching IDs, listing methods returning garbage, phantom devices. Any one of those is enough to break ACPI spec and windows. We have all 3. On all chipsets.</li>
+ <li>6731 (currently cherry picked in libreboot) is -2'd at this time of writing 20140824 while phcoder works on improving it. (worked in GNU/Linux, though).</li>
+ <li><b>A temporary fix (for uneven backlight) is provided in libreboot. Work in coreboot to fix it properly (phcoder says src/northbridge/intel/i945/acpi/igd.asl needs re-written)</b></li>
+ </ul>
+ </li>
+ <li>
+ There are issues with i945 text mode graphics initialization:<br/>
+ <b>This might not be a problem at all, but instead because there is no framebuffer available when using text-mode. A workaround for
+ the debian-installer issue below, detailed in docs/howtos/grub_boot_installer.html</b>
+ <a href="http://www.coreboot.org/pipermail/coreboot/2014-August/078468.html">http://www.coreboot.org/pipermail/coreboot/2014-August/078468.html</a>
+ look into it, follow up on that post and try to fix it.
+ <ul>
+ <li>Trisquel isolinux menu doesn't show up in seabios (seavgabios) with text-mode, it just says 'Error setting up gfxboot',
+ but it works in text-mode with the extract vbios. Looking at gma.c, it looks like this isn't setup in text-mode by native init,
+ but obviously when using the extracted vbios, it is setting everything up properly?</li>
+ <li>
+ Debian/Trisquel net-install shows graphical corruption (see mailing list link) when booting directly from GRUB in text-mode, but
+ works just fine when using the extracted vbios instead of seavgabios. Are these using text-mode or trying
+ to use graphics? <b>(graphical installers work just fine in native init or with
+ extracted vbios)</b>
+ </li>
+ <li>
+ Debian net-installer (graphical one) fails (trisquel graphical installer is ok) in native graphics and text-mode whether using
+ native graphics or extracted vbios (works fine in vesa/cbfb):
+ <ul>
+ <li>Scrolling/flickering text in a loop (segmentation fault):</li>
+ <li>Xorg (xorg_backtrace+0x49) [0xb7*******] <i>(numbers change)</i></li>
+ <li>Xorg (0xb75******) [0xb7*******] <i>(numbers change</i></li>
+ <li>(vdso) (__kernel_rt_sigreturn+0x0) [0xb7******] <i>(numbers change)</i></li>
+ <li>/lib/libc.so.6 (cfree+0x49) [0xb7******] <i>(numbers change)</i></li>
+ <li>Xorg (xf86DeleteMode+0x51) [0xb7******] <i>(numbers change)</i></li>
+ <li>Segmentation fault at address 0xb7200000</li>
+ <li>Fatal server error:</li>
+ <li>Caught signal 11 (Segmentation fault). Server aborting</li>
+ </ul>
+ </li>
+ <li>
+ An already-installed (on the HDD) Trisquel or Debian system boots and works just fine with native graphics + text mode.
+ </li>
+ <li>
+ phcoder says that there are limitations in native graphic: for example, he says native init doesn't provide int10h at all, and that it lacks VBT
+ (sometimes referred to as VBE).
+ Are there other issues? He says that there are also lots of ACPI issues in general.
+ </li>
+ <li><b>Right now it is recommended to use the vesa/cbfb ROM's (these do not use text-mode, they use coreboot's vesa framebuffer instead). MemTest86+
+ does work in text-mode, though.</b></li>
+ <li>
+ <b>Most (maybe all?) of the above are not a problem, I think.</b><br/>
+ mtjm: text mode is for payloads/OSes that use the 80x25 VGA text mode and do not change mode, or run KMS<br/>
+ mtjm: a more featureful VGA ROM is needed for payloads/OSes that use int10h interfaces to change modes (e.g. VESA drivers) (also, VBT and other fixes are needed)<br/>
+ Systems that have int10h (interrupt service) code available for reference:<br/>
+ Geode boards and QEMU (look in coreboot or seabios source code).
+ </li>
+ <li>
+ phcoder: paging will not help with mtrr granularity. This was already investigated<br/>
+ phcoder: interesting: coreboot exposed mistakes in fwts (firmware test suite). Like its mtrr check assumes that default=uncachable.<br/>
+ (might be related to those debian-installer issues in text-mode)
+ </li>
+ </ul>
+ </li>
+ <li>
+ About fixing remaining LCD panels on 5345:<br/>
+ 'polarity' is mentioned in coreboot log (cbmem -c). compare output (with working and non-working panel). (and see the other notes in docs/future/index.html)<br/>
+ phcoder says: hint for T60: it might be that failing panels are 8bpc<br/>
+ fchmmr: what does 8bpc mean? And what do you think the other (non-failing) panel are?<br/>
+ phcoder: 6bpc. bits per colour. May also be reffered as 18-bit vs 24-bit panels<br/>
+ phcoder: just collect EDIDs from failing and working panels<br/>
+ <b>phcoder gave me this for collecting EDID data: <a href="http://www.o2genum.com/2013/08/lp156wh2-tlaa-lcd-panel-edid.html">http://www.o2genum.com/2013/08/lp156wh2-tlaa-lcd-panel-edid.html</a></b>
+ </li>
+ <li>
+ <b><u><i>TODO:</i></u></b> Fix remaining incompatible LCD panels in native graphics on T60.
+ (see <a href="../docs/future/index.html#lcd_i945_incompatibility">../docs/future/index.html#lcd_i945_incompatibility</a>) and <b>submit patches upstream</b>.
</li>
- <li><b><u><i>TODO:</i></u></b> Re-tooled linux-libre deblob scripts for use with coreboot. <b>Deblobbing is already complete; completion of this additional task will simply make future deblobbing work easier.</b></li>
- <li><b><u><i>TODO:</i></u></b> Remove mention of blob/3rdparty repository in Kconfig</li>
<li>
<b><u><i>TODO:</i></u></b> Modified coreboot to make wifi and trackpoint be enabled by default on the ThinkPad X60 (so no need for nvramtool)
<ul>
@@ -516,14 +803,135 @@
</li>
</ul>
</li>
+ </ul>
+ <p>
+ Apparently, only 8MB VRAM is available on i945 GPU's (though it could do 64MB):<br/>
+ phcoder: No. Hardware default is 8 MiB. When I wanted to make it configurable, I saw that docs mention only one other alternative: 1MiB. Later isn't event enough for 1024x768 at 24bpp without any acceleration or double buffering. It's possible there are undocumented values. Which options do you have in vendor BIOS?
+ How to find out how much vram you have:<br/>
+ phcoder: TOM - BSM<br/>
+ phcoder: check what vendor BIOS offers as options<br/>
+ fchmmr: I thought it could do 64MB usually<br/>
+ phcoder: not accorging to doc.<br/>
+ phcoder: see mobile-945-express-chipset-datasheet page 93<br/>
+ phcoder: see also src/northbridge/intel/i945/{early_init,northbridge,gma}.c<br/>
+ fchmmr: "011 = DVMT (UMA) mode, 8 MB of memory pre-allocated for<br/>
+ fchmmr: frame buffer."<br/>
+ fchmmr: "Others - reserved"<br/>
+ phcoder: the easiest way is a loop at this position which tries different values and reads (and prints) BSM with them<br/>
+ stefanct: fchmmr: he suggest that you change the value and look how BSM reacts to that<br/>
+ stefanct: as he pointed out earlier vram size = TOM - BSM<br/>
+ stefanct: different values of GMS<br/>
+ stefanct: phcoder: hm... this could be a hint. look at the text description of TOLUD at page 103<br/>
+ stefanct: it mentions 64 MB in the text about BSM as well<br/>
+ stefanct: table 18...<br/>
+ phcoder: stefanct: I have a guess which value make is 64 but I will not tell to avoid skewing test results<br/>
+ stefanct: phcoder: sure... i assumed you were not sure if it supports it at all. testing it properly is of course a good idea :)<br/>
+ stefanct: test the various possible (but reserved) values of GMS and see what the resulting VRAM size is<br/>
+ fchmmr: so, TOM - BSM
+ </p>
+ </div>
+
+ <div class="important">
+ <h2 id="noncritical_tasks">
+ Other tasks (non-critical, but still important)
+ </h2>
+ <ul>
<li>
- <b><u><i>TODO:</i></u></b> make writing the cmos.layout to the rom default
+ Look into those machines:
+ <ul>
+ <li>
+ Acer CB5 (Chromebook 5) - I'm told there is still microcode in the GPU that needs RE'd, also the wifi
+ is soldered and requires non-free firmware (have to disable it in nvramtool and use usb wifi dongle)
+ </li>
+ <li>
+ ThinkPad X200 - I'm told the Roda RK9 (same chipset as X200) doesn't come with ME, so maybe X200 can have ME removed/disabled.
+ Also, we don't know if it can run without microcode updates yet.
+ </li>
+ <li>
+ Roda rk9? (see above)
+ </li>
+ <li>
+ ThinkPad R400 (if X200 experiment works). I'm told it's very similar to the X200 and could easily be ported.
+ </li>
+ <li>
+
+ TODO: f2a85m and e350m1 rom's (libreboot_*_headless.rom) for headless operation. find out which PCI-E graphics cards can run without
+ the video bios (have to patch seabios, or patch coreboot (if using grub payload), in either case to load but not execute video bios:
+ then find what the driver for that card still needs, and copy/disassemble(understand) the data and write code that places that in memory)
+ --> maybe this could fuel a side-project (libre graphics project, for many different cards)
+ </li>
+ <li>
+ ASUS F2A85-M and ASrock E350M1 (desktop motherboards)
+ <ul>
+ <li>
+ The onboard graphics on both of these boards requires non-free video bios. Find a PCI-E graphics card that can
+ be used without running it's VBIOS (might still require loading data from it, which could be extracted
+ and studied)
+ </li>
+ <li>
+ <a href="future/f2a85m_dmidecode">dmidecode output for f2a85m</a> (still waiting for e350m1 dmidecode output).
+ </li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ <li>
+ Add 'set -e' to the start of all relevant scripts, to make them quit if an error occurs (that a command exits with non zero status).
+ See 'help set' for info.
+ </li>
+ <li>
+ Re-write deps-parabola script (again based on deps-trisquel scripts), really make it install all correct dependencies for Parabola
+ (on a fresh install, with only the 'base' repository installed).
+ <ul>
+ <li>Find what other scripts need fixed for this.</li>
+ <li>Make libreboot build in parabola</li>
+ </ul>
+ </li>
+ <li>
+ Add those to seabios:
+ <ul>
+ add ipxe (executable from seabios)
+ </ul>
+ </li>
+ <li>
+ Re-write the "Parse USB" options based on the "Search local HDD for grub.cfg" menu entry (make it more intelligent).
</li>
+ <li>update info on x60/t60/macbook21 pages on coreboot wiki (not really a libreboot todo, but something that I should do anyway)</li>
+ <li>get all useful info from http://www.coreboot.org/GRUB2 and https://wiki.parabolagnulinux.org/User:GNUtoo/laptop and make it into a tutorial</li>
+ <li>
+ Test that commit and include it (maybe get it merged in coreboot):
+ <a href="http://review.coreboot.org/#/c/5242/17">http://review.coreboot.org/#/c/5242/17</a> (test this!)
+ </li>
+ <li>
+ Test that commit and include it (maybe get it merged in coreboot):
+ <a href="http://review.coreboot.org/#/c/5243/">http://review.coreboot.org/#/c/5243/</a> (test this!)
+ </li>
+ <li>
+ <s>Todo: (after rebase): include 6694 from review.coreboot.org (still some hanging issues). This is needed for reliable booting (for now) on macbook21</s> merged in master!<br/>
+ <b>work with phcoder to try and re-implement it properly (for example, ask him how to found those entries to add)</b><br/>
+ He says that the cst_arrays array was based on _CST object from vendor BIOS. Use acpidump and 'iasl -d' to find them.
+ </li>
+ <li>
+ Todo: test gnutoo's fallback patches: <a href="http://www.coreboot.org/Fallback_mechanism">http://www.coreboot.org/Fallback_mechanism</a>
+ (some parts use systemd. adapt for upstart, which is what trisquel uses)<br/>
+ see <a href="future/gnutoo_fallback_patch">this IRC log</a> (warning, not cleaned up)
+ </li>
+ <li>
+ are there known differences in /sys/class/power_supply between libreboot and vendor BIOS? or does the GNOME bug occur with vendor BIOS too?
+ (speaking about when battery is detected as "low" in Trisquel 6 / gnome when disconnecting AC/adapter)
+ </li>
+ <li>
+ <b><u><i>TODO:</i></u></b> Implement VBT on X60/T60/X60T (and macbook21?)
+ (see <a href="../docs/future/index.html#i945_vbt">../docs/future/index.html#i945_vbt</a> and
+ <a href="../docs/future/index.html#intelvbttool_results">../docs/future/index.html#intelvbttool_results</a>) and <b>submit changes upstream</b>.
+ </li>
+ <li><b><u><i>TODO:</i></u></b> Re-tooled linux-libre deblob scripts for use with coreboot. <b>Deblobbing is already complete; completion of this additional task will simply make future deblobbing work easier.</b></li>
+ <li><b>Alternatively, host actual libreboot deblobbed git tree. pehjota writes: If you want to permanently rewrite the Git history, see the "git filter-branch" command. Of course all commit IDs change with that, so it may not be ideal for you. But it can give you the full Git history, with no blobs anywhere (not even recoverable with "git reset" or "git checkout").</b></li>
+ <li><b><u><i>TODO:</i></u></b> Remove mention of blob/3rdparty repository in Kconfig</li>
<li>
<b><u><i>TODO:</i></u></b> T60: find (for rare buggy CPU's that are unstable without microcode updates)
if there is a workaround: see <a href="../docs/future/index.html#t60_cpu_microcode">../docs/future/index.html#t60_cpu_microcode</a>
</li>
- <li><b><u><i>TODO:</i></u></b> Modify coreboot so that tft_brightness is 0xff by default (for fixing the looping issue automatically)</li>
<li><b><u><i>TODO:</i></u></b> Modify the Kconfig options in coreboot so that the (non-existent, deleted) microcode is never loaded when building.</li>
<li><b><u><i>TODO:</i></u></b> Ask Mono what license he wants to use for his pages (see notes in docs/index.html#macbook21) and then include a copy in the relevant part of the documentation. (note: the backups are not included for now, for this exact reason)</li>
<li><b><u><i>TODO:</i></u></b> Retroactively GPG-sign the final revisions of each previous release. (SHA512 sums aswell).</li>
@@ -569,6 +977,12 @@
<b><u><i>TODO:</i></u></b><a href="https://wiki.archlinux.org/index.php/TLP">https://wiki.archlinux.org/index.php/TLP</a> (example article) a user
mentioned that this also removes the high-pitched noise (like powertop does). Must look into this.
</li>
+ <li>
+ <b><u><i>TODO:</i></u></b> For images that use foreign layouts, create translated grub menus aswell. (i18n!). Modify the build scripts to do this automatically.
+ </li>
+ <li>
+ Add tint payload to GRUB: <a href="http://www.coreboot.org/Tint">http://www.coreboot.org/Tint</a>
+ </li>
</ul>
</div>
@@ -876,8 +1290,15 @@
<hr/>
<p>
- Copyright &copy; 2014 Francis Rowe, All Rights Reserved.<br/>
- See <a href="license.html">license.html</a> for license conditions.
+ Copyright &copy; 2014 Francis Rowe &lt;info@gluglug.org.uk&gt;<br/>
+ This document is released under the Creative Commons Attribution-ShareAlike 4.0 International Public License and all future versions.
+ A copy of the license can be found at <a href="license.txt">license.txt</a>.
+ </p>
+
+ <p>
+ This document is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See <a href="license.txt">license.txt</a> for more information.
</p>
</body>
diff --git a/flash b/flash
index 0d5f762b..8220d00f 100755
--- a/flash
+++ b/flash
@@ -2,7 +2,7 @@
# flash script: uses flashrom to flash a new libreboot ROM image onto your machine
#
-# Copyright (C) 2014 Francis Rowe
+# Copyright (C) 2014 Francis Rowe <info@gluglug.org.uk>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/getall b/getall
index 4c82ff01..0db0f47c 100755
--- a/getall
+++ b/getall
@@ -2,7 +2,7 @@
# getall script: downloads everything extra for libreboot_src and patches to create libreboot_src archive from metadata
#
-# Copyright (C) 2014 Francis Rowe
+# Copyright (C) 2014 Francis Rowe <info@gluglug.org.uk>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -50,4 +50,14 @@ echo "Downloading dependencies for libreboot_src"
echo "Done. Full source is inside this existing libreboot_meta directory (rename it to libreboot_src before you continue). Now install the dependencies listed in 'builddeb' and then run 'builddeps' and then 'build' (or just use 'buildall')"
+# Download SeaBIOS
+# ---------------------------------------------------
+
+./getseabios
+
+# Download GRUB Invaders
+# ---------------------------------------------------
+
+./getgrubinvaders
+
# ------------------- DONE ----------------------
diff --git a/getbucts b/getbucts
index 3973f118..514fc7af 100755
--- a/getbucts
+++ b/getbucts
@@ -2,7 +2,7 @@
# getbucts script: downloads bucts and patches it
#
-# Copyright (C) 2014 Francis Rowe
+# Copyright (C) 2014 Francis Rowe <info@gluglug.org.uk>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -43,13 +43,6 @@ git reset --hard dc27919d7a66a6e8685ce07c71aefa4f03ef7c07
# no patches required
-# We don't need .git* (please submit all upstreamable changes directly to bucts upstream)
-# removing them, to reduce the size of the archive
-# rm -rf .git
-# rm -rf .gitignore
-# it was found to cause issues when deleting:
-# GIT_DISCOVERY_ACROSS_FILESYSTEM not set
-
# we're done
cd ../
diff --git a/getcb b/getcb
index 88ced5c7..032668b6 100755
--- a/getcb
+++ b/getcb
@@ -2,7 +2,7 @@
# getcb script: downloads coreboot and patches/deblobs it
#
-# Copyright (C) 2014 Francis Rowe
+# Copyright (C) 2014 Francis Rowe <info@gluglug.org.uk>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -23,41 +23,7 @@
# (the idea is that this script will reproduce the coreboot directory included with this version of libreboot)
-# You need the dependencies from ./builddeb to use this script.
-
-#
-# The deblobbing target (coreboot git revision) for coreboot-libre is
-# the following commit in the coreboot git repository named "master":
-#
-# commit 63acd22dc5366c72a7165138f5030df9523824dc
-# Author: Vladimir Serbinenko <phcoder@gmail.com>
-# Date: Sun Jun 1 00:26:48 2014 +0200
-#
-# lenovo: Make version look like something thinkpad_acpi would accept
-#
-# thinkpad_acpi checks that BIOS version matches some pattern.
-# Report version in this form.
-#
-# Not cleaned up as the idea of this patch seems to be met with resistance.
-# Can make it Thinkpad-specific if the idea is accepted.
-#
-# Change-Id: I15e33e87e7a7f42d6a06f12fb39b5172153af8a1
-# Signed-off-by: Vladimir Serbinenko <phcoder@gmail.com>
-# Reviewed-on: http://review.coreboot.org/4650
-# Tested-by: build bot (Jenkins)
-# Reviewed-by: Kyösti Mälkki <kyosti.malkki@gmail.com>
-#
-
-#
-# We do not need to do a "git reset --hard 63acd22dc5366c72a7165138f5030df9523824dc" here
-# because 5324/9 checkout (see below) eventually goes down to dependency 5320/9
-# which is checked out on top of 63acd22dc5366c72a7165138f5030df9523824dc
-#
-
-#
-# Use "git log" in coreboot after this is done, to see what was done.
-# Also use "git diff" to see uncommited changes (after the patch was applied by this script)
-#
+# You need the dependencies from ./builddeb or ./buildpac to use this script.
# Remove the old version that may exist
# ----------------------------------------------------------------------------------
@@ -75,78 +41,47 @@ git clone http://review.coreboot.org/coreboot
# there are modifications required
cd coreboot
-# Get patches for "native graphics initialization" on X60 and T60
+# reset to previously tested revision
+git reset --hard 23aad4a83c3390dc39f7d1c1f5422f7ac54a80f3
+
+# Get patches from review.coreboot.org
# ----------------------------------------------------------------------------------
-# CHECKOUT (the XXXX/Y numbers are gerrit/git):
-# Checks out the following from the gerrit site at http://review.coreboot.org/
-# 5324/9 review.coreboot.org (not merged in cb master on day 20140630) - apple/macbook21: Fix audio.
-# 5323/9 review.coreboot.org (not merged in cb master on day 20140630) - apple/macbook21: EC handline ACPI implementation.
-# 5321/14 review.coreboot.org (not merged in cb master on day 20140630) - A new port apple/macbook21. (new macbook21 port + native graphics)
-# 5320/9 review.coreboot.org (not merged in cb master on day 20140630) - i945: Replace video gfx init. (X60 native graphics)
-# 5320/9 is the end (locically). It's dependency 4650/29 was merged since day 20140601 (and included already in this libreboot tree, even).
-# 4650/29 (merged in cb master on 20140601) - lenovo: Make version look like something thinkpad_acpi would accept
-git fetch http://review.coreboot.org/coreboot refs/changes/24/5324/9 && git checkout FETCH_HEAD
-
-# CHERRY PICK (the XXXX/Y numbers are gerrit/git):
-# Cherry picks the following from the gerrit site at http://review.coreboot.org/
-# 5345/4 review.coreboot.org (not merged in cb master on day 20140630) - lenovo/t60: Enable native intel gfx init.
-# 5345//4 is the end (logically). It's dependency 5344/4, or rather 5344/5 was merged in cb master on 20140601 (and included in this libreboot tree, even)
-# Note: 5345/4 is based on the older 5344/4 before the merge so isn't rebased at the time of writing.
-git fetch http://review.coreboot.org/coreboot refs/changes/45/5345/4 && git cherry-pick FETCH_HEAD
-
-# Apply necessary patches
+# Text mode patch for X60 native graphics (main patch already merged in coreboot. See 6723 on coreboot gerrit)
+git fetch http://review.coreboot.org/coreboot refs/changes/25/6725/1 && git cherry-pick FETCH_HEAD
+
+# Backlight controls on i945 (X60/T60/macbook21)
+git fetch http://review.coreboot.org/coreboot refs/changes/31/6731/6 && git cherry-pick FETCH_HEAD
+
+# Enable T60 native graphics
+git fetch http://review.coreboot.org/coreboot refs/changes/45/5345/7 && git cherry-pick FETCH_HEAD
+
+# Apply necessary patches (from resources/libreboot/patch/)
# ---------------------------------------------------------------------------------
-mkdir src/drivers/lenovo
-
-touch src/drivers/lenovo/Kconfig
-touch src/drivers/lenovo/Makefile.inc
-touch src/drivers/lenovo/lenovo.h
-touch src/drivers/lenovo/wacom.c
-
-git add src/drivers/lenovo
-
-# The above 4 files were all that were added on those changesets (5243/17, 5242/17 and 5239/19 from review.coreboot.org)
-# I create empty versions of the files, and add them using "git add"
-# Now I add the content to those files and all other changes, they will show up in a "git diff" which
-# was used to create the "gitdiff" file used below. This is also required for applying the gitdiff.
-
-# THE ABOVE IS A HACK. "git add -N" I'm told can do the same thing as above, but that older versions of git do not have this.
-
-# The changes below are in a patch at resources/libreboot/patch/gitdiff
-# These were merged manually.
-# Reason for manual merge: cherry pick wouldn't work with this branch. Didn't want to rebase just to scrap it later. Manual was easier.
-# Also, some of the changes were for different code (eg the 3D fix was previously for the old native graphics code, not the new one).
-
-# apply fix for 3D on kernel 3.12+ for X60/T60 on the new native graphics code (5320/9),
-# based on manually merging 5927/11 and 5932/5 (which fix the 3D on kernel 3.12+ on X60 for the *old* replay code) from review.coreboot.org
-# apply fix for backlight controls for T60 and X60, based on docs/future/index.html#x60_native_notes and docs/future/index.html#t60_native_notes
-# apply fix for IR/digitizer on X60/T60 and X60 Tablet (respectively), based on manually merging 5243/17, 5242/17 and 5239/19 from review.coreboot.org
-# (see notes above)
-
-# the changes are in separate patches under resources/libreboot/patch/
-
-# copy the patches into coreboot directory
-cp ../resources/libreboot/patch/*.diff .
-
-# apply the "git diff" patches
-git apply 0000_x60t_digitizer_irda.git.diff
-git apply 0001_i945_3dfix.git.diff
-rm -rf 0000_x60t_digitizer_irda.git.diff
-rm -rf 0001_i945_3dfix.git.diff
-# apply non-git diff: X60 backlight controls
-mv 0002_x60_backlight.diff src/mainboard/lenovo/x60
-cd src/mainboard/lenovo/x60
-patch devicetree.cb < 0002_x60_backlight.diff
-rm -rf 0002_x60_backlight.diff
-cd ../../../../
-# apply non-git diff: T60 backlight controls
-mv 0003_t60_backlight.diff src/mainboard/lenovo/t60
-cd src/mainboard/lenovo/t60
-patch devicetree.cb < 0003_t60_backlight.diff
-rm -rf 0003_t60_backlight.diff
-cd ../../../../
+# look at resources/libreboot/patch/gitdiff to see what the whole patch looks like when all of these are applied.
+
+# copy all the patches here for this release
+cp ../resources/libreboot/patch/0000_t60_6723_and_6725_1_extension_textmode.git.diff .
+cp ../resources/libreboot/patch/0001_t60_6731_6_extension_acpi_brightness.git.diff .
+cp ../resources/libreboot/patch/0002_i945_6731_6_extension_fix_uneven_backlight.git.diff .
+
+# Add text-mode for T60 (enables text-mode payloads like memtest, seabios, grub invaders, etc)
+# Based on 6723 (merged) and 6725/1 from coreboot gerrit site (review.coreboot.org)
+git apply 0000_t60_6723_and_6725_1_extension_textmode.git.diff
+
+# Cleanup patch for T60 ACPI backlight controls, based on 6731/6 from coreboot gerrit site (review.coreboot.org)
+# Won't commit to coreboot for this release, since 6731 is currently -2'd in gerrit (on 20140824) and will be improved.
+git apply 0001_t60_6731_6_extension_acpi_brightness.git.diff
+
+# Fix uneven backlight (also removes accoustic noise from (most likely) the inverter board underneath lcd, when reducing brightness)
+# Won't commit to coreboot for this release, since 6731 is currently -2'd in gerrit (on 20140824) and will be improved.
+git apply 0002_i945_6731_6_extension_fix_uneven_backlight.git.diff
+
+# delete the copies of the patches (not needed anymore)
+rm -rf 0000_t60_6723_and_6725_1_extension_textmode.git.diff
+rm -rf 0001_t60_6731_6_extension_acpi_brightness.git.diff
+rm -rf 0002_i945_6731_6_extension_fix_uneven_backlight.git.diff
# Run coreboot-libre deblob scripts
# ---------------------------------------------------------------------------------
diff --git a/getflashrom b/getflashrom
index 8908dd46..ffe83d7a 100755
--- a/getflashrom
+++ b/getflashrom
@@ -2,7 +2,7 @@
# getflashrom script: downloads flashrom and patches it
#
-# Copyright (C) 2014 Francis Rowe
+# Copyright (C) 2014 Francis Rowe <info@gluglug.org.uk>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -31,21 +31,11 @@ rm -rf flashrom
# ---------------------------------------------------------------------
# download it using subversion
-svn co -r 1822 svn://flashrom.org/flashrom/trunk flashrom
-
-# r1822 2014-06-16 is the revision last tested/patched
+svn co -r 1846 svn://flashrom.org/flashrom/trunk flashrom
# there are no permanent patches needed to be applied here:
# the patches are applied selectively at build time (when running "builddeps-flashrom")
-# delete the .svn directory
-# (not needed to work with source code)
-# (reduces size of the archive)
-# flashrom development should be upstream!
-cd flashrom
-rm -rf .svn
-cd ../
-
echo "FINISHED DOWNLOADING FLASHROM"
# ------------------- DONE ----------------------
diff --git a/getgrub b/getgrub
index 5c560bce..cc2e6df6 100755
--- a/getgrub
+++ b/getgrub
@@ -2,7 +2,7 @@
# getgrub script: Downloads GRUB and patches it.
#
-# Copyright (C) 2014 Francis Rowe
+# Copyright (C) 2014 Francis Rowe <info@gluglug.org.uk>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -39,17 +39,15 @@ cd grub
# Reset to the last commit that was tested
# --------------------------------------------------------------------------------
-# Commit ID used (see "git log"):
#
-# commit 4b8b9135f1676924a8458da528d264bbc7bbb301
-# Author: Vladimir Serbinenko <phcoder@gmail.com>
-# Date: Sun Apr 20 16:12:41 2014 +0200
+# commit c291f47b2c003ef6daeafaedd458db838bad6fb8
+# Author: Andrey Borzenkov <arvidjaar@gmail.com>
+# Date: Thu Aug 14 21:02:31 2014 +0400
+#
+# Fix typo (gettext_print instead of gettext_printf)
#
-# * grub-core/kern/misc.c (__bzero): Don't compile in GRUB_UTIL.
-#
-# Reported by: Yves Blusseau <blusseau@zetam.org>.
-git reset --hard 4b8b9135f1676924a8458da528d264bbc7bbb301
+git reset --hard c291f47b2c003ef6daeafaedd458db838bad6fb8
# Apply patches
# --------------------------------------------------------------------------------
@@ -66,11 +64,6 @@ git apply gitdiff
# remove the copy (no longer needed)
rm -rf gitdiff
-# We don't need .git* (please submit all upstreamable changes directly to GRUB upstream)
-# removing them, to reduce the size of the archive
-rm -rf .git
-rm -rf .gitignore
-
# we're done
cd ../
diff --git a/getgrubinvaders b/getgrubinvaders
new file mode 100755
index 00000000..e082040a
--- /dev/null
+++ b/getgrubinvaders
@@ -0,0 +1,70 @@
+#!/bin/bash
+
+# getmt86: Downloads MemTest86+ and patches it
+#
+# Copyright (C) 2014 Francis Rowe <info@gluglug.org.uk>
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+
+# Get the last version of MemTest86+ used, apply patches, build it.
+
+# You need the dependencies from ./builddeb to use this script.
+
+# Remove the old version that may exist
+# ----------------------------------------------------------------------------------
+
+echo "DOWNLOADING GRUB INVADERS"
+
+rm -rf grubinvaders
+
+# Get latest memtest86+:
+# ----------------------------------------------------------------------------------
+
+# download it using wget
+wget http://www.erikyyy.de/invaders/invaders-1.0.0.tar.gz
+
+# extract it
+tar -xf "invaders-1.0.0.tar.gz"
+
+# delete the tar file (no longer needed)
+rm -rf "invaders-1.0.0.tar.gz"
+
+# rename directory (for consistency with script names)
+mv invaders grubinvaders
+
+# there are modifications required
+cd grubinvaders
+
+# Apply necessary patches
+# ---------------------------------------------------------------------------------
+
+# Apply patch mentioned on http://www.coreboot.org/GRUB_invaders
+cp ../resources/grubinvaders/patch/diff.patch .
+cp ../resources/grubinvaders/patch/compile.sh.patch .
+patch < diff.patch
+patch compile.sh < compile.sh.patch
+
+# delete the copy of the patch (no longer needed)
+rm -rf diff.patch
+rm -rf compile.sh.patch
+
+# we're done
+cd ../
+
+echo "FINISHED DOWNLOADING GRUB INVADERS"
+
+# ------------------- DONE ----------------------
+
+
diff --git a/getmt86 b/getmt86
index 95b59448..43bfc27a 100755
--- a/getmt86
+++ b/getmt86
@@ -2,7 +2,7 @@
# getmt86: Downloads MemTest86+ and patches it
#
-# Copyright (C) 2014 Francis Rowe
+# Copyright (C) 2014 Francis Rowe <info@gluglug.org.uk>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -50,21 +50,21 @@ cd "memtest86+-5.01"
# Remove the line in the Makefile (comment line 24) that makes memtest86+ connect to an scp server during build
# Set the following in config.h (to enable use of memtest86+ on serial port):
-# #define SERIAL_CONSOLE_DEFAULT 1
# #define SERIAL_TTY 0
# #define SERIAL_BAUD_RATE 115200
# /* BEEP_MODE - Beep on error. Default off, Change to 1 to enable */
# #define BEEP_MODE 1
-# copy the gitdiff into coreboot directory
-cp ../resources/memtest86/patch/diff .
+# place the right config
+rm -rf config.h
+cp ../resources/memtest86/patch/config.h .
-# see: libreboot_src/patch.html
-patch -p1 < diff
+# place the right Makefile
+rm -rf Makefile
+cp ../resources/memtest86/patch/Makefile .
-# remove the copy (not needed anymore)
-rm -rf diff
+# (diff them with defaults to see what changed)
# we're done
cd ../
diff --git a/getseabios b/getseabios
new file mode 100755
index 00000000..77bcd2c4
--- /dev/null
+++ b/getseabios
@@ -0,0 +1,61 @@
+#!/bin/bash
+
+# getgrub script: Downloads SeaBIOS and patches it.
+#
+# Copyright (C) 2014 Francis Rowe <info@gluglug.org.uk>
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+
+# Get GRUB, revert to commit last used and apply patches.
+
+# Remove the old version that may still exist
+# -------------------------------------------------------------------------------
+
+echo "DOWNLOADING GRUB"
+
+rm -rf seabios
+
+# Get latest GRUB
+# -------------------------------------------------------------------------------
+
+# download it using git
+git clone git://git.seabios.org/seabios.git seabios
+
+cd seabios
+
+# Reset to the last commit that was tested
+# --------------------------------------------------------------------------------
+
+#
+# commit 275672eb70efdf81c51b997d41a4409b404aa8f6
+# Author: Markus Armbruster <armbru@redhat.com>
+# Date: Fri Aug 15 08:58:17 2014 +0200
+#
+
+git reset --hard 275672eb70efdf81c51b997d41a4409b404aa8f6
+
+# Apply patches
+# --------------------------------------------------------------------------------
+
+# No patches needed for SeaBIOS at present.
+
+# we're done
+cd ../
+
+echo "FINISHED DOWNLOADING SEABIOS"
+
+# ------------------- DONE ----------------------
+
+
diff --git a/lenovobios_firstflash b/lenovobios_firstflash
index bcedaf85..a2a11a98 100755
--- a/lenovobios_firstflash
+++ b/lenovobios_firstflash
@@ -2,7 +2,7 @@
# lenovobios_firstflash: flashes libreboot on an X60/T60 while Lenovo BIOS is running
#
-# Copyright (C) 2014 Francis Rowe
+# Copyright (C) 2014 Francis Rowe <info@gluglug.org.uk>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/lenovobios_secondflash b/lenovobios_secondflash
index 79604e29..e336f98f 100755
--- a/lenovobios_secondflash
+++ b/lenovobios_secondflash
@@ -2,7 +2,7 @@
# lenovobios_secondflash: flashes libreboot during 2nd boot, after 1st initial overwrite of the lenovo bios on X60/T60
#
-# Copyright (C) 2014 Francis Rowe
+# Copyright (C) 2014 Francis Rowe <info@gluglug.org.uk>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/macbook21_firstflash b/macbook21_firstflash
index 1399d991..24bd5cf3 100755
--- a/macbook21_firstflash
+++ b/macbook21_firstflash
@@ -2,7 +2,7 @@
# flash script: uses flashrom to flash a new libreboot ROM image onto your machine
#
-# Copyright (C) 2014 Francis Rowe
+# Copyright (C) 2014 Francis Rowe <info@gluglug.org.uk>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/powertop.trisquel6 b/powertop.trisquel6
index ba9eacc0..44836736 100755
--- a/powertop.trisquel6
+++ b/powertop.trisquel6
@@ -2,7 +2,7 @@
# powertop.trisquel6: automatically sets up powertop --auto-tune on startup in trisquel 6
#
-# Copyright (C) 2014 Francis Rowe
+# Copyright (C) 2014 Francis Rowe <info@gluglug.org.uk>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -24,11 +24,13 @@
# powertop on Trisquel 6 is out of date. We will get it from git.
# We are using a specific git revision (one that I have tested)
+# RUN THIS AS ROOT
+
# Delete the one that is already installed from repo's (if it is installed)
-sudo apt-get -y purge powertop
+apt-get -y purge powertop
# Install dependencies:
-sudo apt-get -y install libpci-dev libncurses-dev libnl-dev build-essential git autoconf2.13 libtool autotools-dev autopoint pkg-config
+apt-get -y install libpci-dev libncurses-dev libnl-dev build-essential git autoconf2.13 libtool autotools-dev autopoint pkg-config
# remove previous git clone if it exists:
rm -rf powertop
@@ -47,26 +49,26 @@ git reset --hard e70c89eb5d7b6b8f898bb126adefcbf3202d5acf
make
# install it
-sudo make install
+make install
# Remove startup symlink if it exists
-sudo update-rc.d powertop remove
+update-rc.d powertop remove
# Remove previous file if it exists
-sudo rm -rf /etc/init.d/powertop
+rm -rf /etc/init.d/powertop
# write the correct commands there:
-sudo cp ../powertop.trisquel6.init /etc/init.d/powertop
+cp ../powertop.trisquel6.init /etc/init.d/powertop
# make it executable:
-sudo chmod +x /etc/init.d/powertop
+chmod +x /etc/init.d/powertop
# Add the service to make it run automatically at boot time:
-sudo update-rc.d powertop defaults
+update-rc.d powertop defaults
# Done.
# Run powertop now and tell the user
-sudo powertop --auto-tune
+powertop --auto-tune
echo "Done. Run 'powertop --auto-tune' now. This will also run automatically at boot time. Run it again at any time, if needed. This has also been done for you just now."
# Come out of powertop directory (we are done)
diff --git a/powertop.trisquel6.init b/powertop.trisquel6.init
index a6db1852..50d35b5f 100755
--- a/powertop.trisquel6.init
+++ b/powertop.trisquel6.init
@@ -2,7 +2,7 @@
# powertop.trisquel6.init: the powertop.trisquel6 setup script puts this script in /etc/init.d in Trisquel 6
#
-# Copyright (C) 2014 Francis Rowe
+# Copyright (C) 2014 Francis Rowe <info@gluglug.org.uk>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/resources/flashrom/patch/flashchips.c b/resources/flashrom/patch/flashchips.c
index bb24bdb1..36609455 100644
--- a/resources/flashrom/patch/flashchips.c
+++ b/resources/flashrom/patch/flashchips.c
@@ -1382,7 +1382,7 @@ const struct flashchip flashchips[] = {
.total_size = 512,
.page_size = 64 * 1024,
.feature_bits = FEATURE_REGISTERMAP | FEATURE_EITHER_RESET,
- .tested = TEST_OK_PREW,
+ .tested = TEST_OK_PR,
.probe = probe_jedec,
.probe_timing = TIMING_ZERO, /* routine is wrapper to probe_jedec (pm49fl00x.c) */
.block_erasers =
@@ -1395,7 +1395,7 @@ const struct flashchip flashchips[] = {
.block_erase = erase_chip_block_jedec,
}
},
- .unlock = unlock_49fl00x,
+ .unlock = unlock_regspace2_uniform_64k,
.write = write_jedec_1,
.read = read_memmapped,
.voltage = {3000, 3600},
@@ -1994,7 +1994,7 @@ const struct flashchip flashchips[] = {
.total_size = 512,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
- .tested = TEST_UNTESTED,
+ .tested = TEST_OK_PREW,
.probe = probe_spi_at25f,
.probe_timing = TIMING_ZERO,
.block_erasers =
@@ -2477,7 +2477,7 @@ const struct flashchip flashchips[] = {
/* does not support EWSR nor WREN and has no writable status register bits whatsoever */
/* OTP: 128B total, 64B pre-programmed; read 0x77; write 0x9B */
.feature_bits = FEATURE_OTP,
- .tested = TEST_UNTESTED,
+ .tested = TEST_OK_PREW,
.probe = probe_spi_at45db,
.probe_timing = TIMING_ZERO,
.block_erasers =
@@ -3049,10 +3049,10 @@ const struct flashchip flashchips[] = {
.model_id = ATMEL_AT49LH002,
.total_size = 256,
.page_size = 0, /* unused */
- .feature_bits = FEATURE_REGISTERMAP, /* TODO: LPC OK too? */
+ .feature_bits = FEATURE_REGISTERMAP,
.tested = TEST_UNTESTED,
- .probe = probe_82802ab, /* TODO: 0xff cmd not documented? */
- .probe_timing = TIMING_FIXME,
+ .probe = probe_82802ab,
+ .probe_timing = TIMING_ZERO,
.block_erasers =
{
{
@@ -3062,16 +3062,88 @@ const struct flashchip flashchips[] = {
{8 * 1024, 2},
{16 * 1024, 1},
},
- .block_erase = erase_block_82802ab,
+ .block_erase = NULL, /* TODO: Implement. */
}, {
.eraseblocks = {
{64 * 1024, 4},
},
+ .block_erase = erase_block_82802ab,
+ },
+ },
+ .printlock = printlock_regspace2_block_eraser_0,
+ .unlock = unlock_regspace2_block_eraser_0,
+ .write = write_82802ab,
+ .read = read_memmapped,
+ .voltage = {3000, 3600},
+ },
+
+ {
+ .vendor = "Atmel",
+ .name = "AT49LH00B4",
+ .bustype = BUS_LPC | BUS_FWH, /* A/A Mux */
+ .manufacture_id = ATMEL_ID,
+ .model_id = ATMEL_AT49LH00B4,
+ .total_size = 512,
+ .page_size = 0, /* unused */
+ .feature_bits = FEATURE_REGISTERMAP,
+ .tested = TEST_UNTESTED,
+ .probe = probe_82802ab,
+ .probe_timing = TIMING_ZERO,
+ .block_erasers =
+ {
+ {
+ .eraseblocks = {
+ {8 * 1024, 2},
+ {16 * 1024, 1},
+ {32 * 1024, 1},
+ {64 * 1024, 7},
+ },
+ .block_erase = NULL, /* TODO: Implement. */
+ }, {
+ .eraseblocks = {
+ {64 * 1024, 8},
+ },
+ .block_erase = erase_block_82802ab,
+ },
+ },
+ .printlock = printlock_regspace2_block_eraser_0,
+ .unlock = unlock_regspace2_block_eraser_0,
+ .write = write_82802ab,
+ .read = read_memmapped,
+ .voltage = {3000, 3600},
+ },
+
+ {
+ .vendor = "Atmel",
+ .name = "AT49LH004",
+ .bustype = BUS_LPC | BUS_FWH, /* A/A Mux */
+ .manufacture_id = ATMEL_ID,
+ .model_id = ATMEL_AT49LH004,
+ .total_size = 512,
+ .page_size = 0, /* unused */
+ .feature_bits = FEATURE_REGISTERMAP,
+ .tested = TEST_UNTESTED,
+ .probe = probe_82802ab,
+ .probe_timing = TIMING_ZERO,
+ .block_erasers =
+ {
+ {
+ .eraseblocks = {
+ {64 * 1024, 7},
+ {32 * 1024, 1},
+ {8 * 1024, 2},
+ {16 * 1024, 1},
+ },
+ .block_erase = erase_block_82802ab,
+ }, {
+ .eraseblocks = {
+ {64 * 1024, 8},
+ },
.block_erase = NULL, /* TODO: Implement. */
},
},
- .printlock = NULL, /* TODO */
- .unlock = NULL, /* unlock_82802ab() not correct(?) */
+ .printlock = printlock_regspace2_block_eraser_0,
+ .unlock = unlock_regspace2_block_eraser_0,
.write = write_82802ab,
.read = read_memmapped,
.voltage = {3000, 3600},
@@ -3086,7 +3158,7 @@ const struct flashchip flashchips[] = {
.total_size = 64,
.page_size = 0, /* unused */
.feature_bits = 0,
- .tested = TEST_OK_PR,
+ .tested = {.probe = OK, .read = OK, .erase = BAD, .write = BAD },
.probe = probe_jedec, /* FIXME! */
.probe_timing = TIMING_ZERO,
.block_erasers =
@@ -4797,7 +4869,7 @@ const struct flashchip flashchips[] = {
.model_id = EON_EN29LV640B,
.total_size = 8192,
.page_size = 8192,
- .feature_bits = 0,
+ .feature_bits = FEATURE_ADDR_SHIFTED,
.tested = TEST_OK_PREW,
.probe = probe_en29lv640b,
.probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */
@@ -4808,10 +4880,10 @@ const struct flashchip flashchips[] = {
{8 * 1024, 8},
{64 * 1024, 127},
},
- .block_erase = erase_block_shifted_jedec,
+ .block_erase = erase_block_jedec,
}, {
.eraseblocks = { {8 * 1024 * 1024, 1} },
- .block_erase = erase_chip_block_shifted_jedec,
+ .block_erase = erase_chip_block_jedec,
},
},
.write = write_en29lv640b,
@@ -4820,6 +4892,120 @@ const struct flashchip flashchips[] = {
},
{
+ .vendor = "Eon",
+ .name = "EN29GL064(A)B",
+ .bustype = BUS_PARALLEL,
+ .manufacture_id = EON_ID,
+ .model_id = EON_EN29GL064B,
+ .total_size = 8192,
+ .page_size = 128 * 1024, /* actual page size is 16 */
+ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
+ .tested = TEST_UNTESTED,
+ .probe = probe_jedec_29gl,
+ .probe_timing = TIMING_ZERO,
+ .block_erasers =
+ {
+ {
+ .eraseblocks = {
+ {8 * 1024, 8},
+ {64 * 1024, 127},
+ },
+ .block_erase = erase_sector_jedec,
+ }, {
+ .eraseblocks = { {8 * 1024 * 1024, 1} },
+ .block_erase = erase_chip_block_jedec,
+ },
+ },
+ .write = write_jedec_1,
+ .read = read_memmapped,
+ .voltage = {2700, 3600},
+ },
+
+ {
+ .vendor = "Eon",
+ .name = "EN29GL064(A)T",
+ .bustype = BUS_PARALLEL,
+ .manufacture_id = EON_ID,
+ .model_id = EON_EN29GL064T,
+ .total_size = 8192,
+ .page_size = 128 * 1024, /* actual page size is 16 */
+ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
+ .tested = TEST_UNTESTED,
+ .probe = probe_jedec_29gl,
+ .probe_timing = TIMING_ZERO,
+ .block_erasers =
+ {
+ {
+ .eraseblocks = {
+ {64 * 1024, 127},
+ {8 * 1024, 8},
+ },
+ .block_erase = erase_sector_jedec,
+ }, {
+ .eraseblocks = { {8 * 1024 * 1024, 1} },
+ .block_erase = erase_chip_block_jedec,
+ },
+ },
+ .write = write_jedec_1,
+ .read = read_memmapped,
+ .voltage = {2700, 3600},
+ },
+
+ {
+ .vendor = "Eon",
+ .name = "EN29GL064H/L",
+ .bustype = BUS_PARALLEL,
+ .manufacture_id = EON_ID,
+ .model_id = EON_EN29GL064HL,
+ .total_size = 8192,
+ .page_size = 128 * 1024, /* actual page size is 16 */
+ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
+ .tested = TEST_UNTESTED,
+ .probe = probe_jedec_29gl,
+ .probe_timing = TIMING_ZERO,
+ .block_erasers =
+ {
+ {
+ .eraseblocks = { {64 * 1024, 128} },
+ .block_erase = erase_sector_jedec,
+ }, {
+ .eraseblocks = { {8 * 1024 * 1024, 1} },
+ .block_erase = erase_chip_block_jedec,
+ },
+ },
+ .write = write_jedec_1,
+ .read = read_memmapped,
+ .voltage = {2700, 3600},
+ },
+
+ {
+ .vendor = "Eon",
+ .name = "EN29GL128",
+ .bustype = BUS_PARALLEL,
+ .manufacture_id = EON_ID,
+ .model_id = EON_EN29GL128HL,
+ .total_size = 16384,
+ .page_size = 128 * 1024, /* actual page size is 16 */
+ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
+ .tested = TEST_UNTESTED,
+ .probe = probe_jedec_29gl,
+ .probe_timing = TIMING_ZERO,
+ .block_erasers =
+ {
+ {
+ .eraseblocks = { {128 * 1024, 128} },
+ .block_erase = erase_sector_jedec,
+ }, {
+ .eraseblocks = { {16 * 1024 * 1024, 1} },
+ .block_erase = erase_chip_block_jedec,
+ },
+ },
+ .write = write_jedec_1,
+ .read = read_memmapped,
+ .voltage = {2700, 3600},
+ },
+
+ {
.vendor = "Fujitsu",
.name = "MBM29F004BC",
.bustype = BUS_PARALLEL,
@@ -4892,10 +5078,10 @@ const struct flashchip flashchips[] = {
.model_id = FUJITSU_MBM29F400BC,
.total_size = 512,
.page_size = 64 * 1024,
- .feature_bits = FEATURE_ADDR_SHIFTED | FEATURE_EITHER_RESET,
+ .feature_bits = FEATURE_ADDR_SHIFTED | FEATURE_ADDR_2AA | FEATURE_EITHER_RESET,
.tested = TEST_UNTESTED,
- .probe = probe_m29f400bt,
- .probe_timing = TIMING_IGNORED, /* routine doesn't use probe_timing (m29f400bt.c) */
+ .probe = probe_jedec,
+ .probe_timing = 10, // FIXME: check datasheet. Using the 10 us from probe_m29f400bt
.block_erasers =
{
{
@@ -4905,13 +5091,13 @@ const struct flashchip flashchips[] = {
{32 * 1024, 1},
{64 * 1024, 7},
},
- .block_erase = erase_block_shifted_jedec,
+ .block_erase = erase_sector_jedec,
}, {
.eraseblocks = { {512 * 1024, 1} },
- .block_erase = erase_chip_block_shifted_jedec,
+ .block_erase = erase_chip_block_jedec,
},
},
- .write = write_m29f400bt,
+ .write = write_jedec_1,
.read = read_memmapped,
.voltage = {4750, 5250}, /* 4.75-5.25V for type -55, others 4.5-5.5V */
},
@@ -4924,10 +5110,10 @@ const struct flashchip flashchips[] = {
.model_id = FUJITSU_MBM29F400TC,
.total_size = 512,
.page_size = 64 * 1024,
- .feature_bits = FEATURE_ADDR_SHIFTED | FEATURE_EITHER_RESET,
+ .feature_bits = FEATURE_ADDR_SHIFTED | FEATURE_ADDR_AAA | FEATURE_EITHER_RESET,
.tested = TEST_UNTESTED,
- .probe = probe_m29f400bt,
- .probe_timing = TIMING_IGNORED, /* routine doesn't use probe_timing (m29f400bt.c) */
+ .probe = probe_jedec,
+ .probe_timing = 10, // FIXME: check datasheet. Using the 10 us from probe_m29f400bt
.block_erasers =
{
{
@@ -4937,13 +5123,13 @@ const struct flashchip flashchips[] = {
{8 * 1024, 2},
{16 * 1024, 1},
},
- .block_erase = erase_block_shifted_jedec,
+ .block_erase = erase_sector_jedec,
}, {
.eraseblocks = { {512 * 1024, 1} },
- .block_erase = erase_chip_block_shifted_jedec,
+ .block_erase = erase_chip_block_jedec,
},
},
- .write = write_m29f400bt,
+ .write = write_jedec_1,
.read = read_memmapped,
.voltage = {4750, 5250}, /* 4.75-5.25V for type -55, others 4.5-5.5V */
},
@@ -4958,8 +5144,8 @@ const struct flashchip flashchips[] = {
.page_size = 0,
.feature_bits = FEATURE_ADDR_SHIFTED | FEATURE_SHORT_RESET,
.tested = TEST_UNTESTED,
- .probe = probe_m29f400bt,
- .probe_timing = TIMING_IGNORED,
+ .probe = probe_jedec,
+ .probe_timing = 10, // FIXME: check datasheet. Using the 10 us from probe_m29f400bt
.block_erasers =
{
{
@@ -4969,13 +5155,13 @@ const struct flashchip flashchips[] = {
{32 * 1024, 1},
{64 * 1024, 31},
},
- .block_erase = erase_block_shifted_jedec,
+ .block_erase = erase_block_jedec,
}, {
.eraseblocks = { {2048 * 1024, 1} },
- .block_erase = erase_chip_block_shifted_jedec,
+ .block_erase = erase_chip_block_jedec,
},
},
- .write = write_m29f400bt, /* Supports a fast mode too */
+ .write = write_jedec_1, /* Supports a fast mode too */
.read = read_memmapped,
.voltage = {3000, 3600}, /* 3.0-3.6V for type -70, others 2.7-3.6V */
},
@@ -4990,8 +5176,8 @@ const struct flashchip flashchips[] = {
.page_size = 0,
.feature_bits = FEATURE_ADDR_SHIFTED | FEATURE_SHORT_RESET,
.tested = TEST_UNTESTED,
- .probe = probe_m29f400bt,
- .probe_timing = TIMING_IGNORED,
+ .probe = probe_jedec,
+ .probe_timing = 10, // FIXME: check datasheet. Using the 10 us from probe_m29f400bt
.block_erasers =
{
{
@@ -5001,13 +5187,13 @@ const struct flashchip flashchips[] = {
{8 * 1024, 2},
{16 * 1024, 1},
},
- .block_erase = erase_block_shifted_jedec,
+ .block_erase = erase_block_jedec,
}, {
.eraseblocks = { {2048 * 1024, 1} },
- .block_erase = erase_chip_block_shifted_jedec,
+ .block_erase = erase_chip_block_jedec,
},
},
- .write = write_m29f400bt, /* Supports a fast mode too */
+ .write = write_jedec_1, /* Supports a fast mode too */
.read = read_memmapped,
.voltage = {3000, 3600}, /* 3.0-3.6V for type -70, others 2.7-3.6V */
},
@@ -5247,7 +5433,7 @@ const struct flashchip flashchips[] = {
.page_size = 256,
/* OTP: 1024B total, 256B reserved; read 0x48; write 0x42, erase 0x44 (B version only) */
.feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP,
- .tested = TEST_UNTESTED,
+ .tested = TEST_OK_PREW,
.probe = probe_spi_rdid,
.probe_timing = TIMING_ZERO,
.block_erasers =
@@ -5979,7 +6165,7 @@ const struct flashchip flashchips[] = {
.total_size = 512,
.page_size = 64 * 1024,
.feature_bits = FEATURE_REGISTERMAP,
- .tested = TEST_OK_PREW,
+ .tested = TEST_OK_PR,
.probe = probe_82802ab,
.probe_timing = TIMING_IGNORED, /* routine does not use probe_timing (82802ab.c) */
.block_erasers =
@@ -5989,7 +6175,7 @@ const struct flashchip flashchips[] = {
.block_erase = erase_block_82802ab,
},
},
- .unlock = unlock_82802ab,
+ .unlock = unlock_regspace2_uniform_64k,
.write = write_82802ab,
.read = read_memmapped,
.voltage = {3000, 3600},
@@ -6014,13 +6200,143 @@ const struct flashchip flashchips[] = {
.block_erase = erase_block_82802ab,
},
},
- .unlock = unlock_82802ab,
+ .unlock = unlock_regspace2_uniform_64k,
.write = write_82802ab,
.read = read_memmapped,
.voltage = {3000, 3600},
},
{
+ .vendor = "ISSI",
+ .name = "IS29GL064B",
+ .bustype = BUS_PARALLEL,
+ .manufacture_id = ISSI_ID,
+ .model_id = ISSI_PMC_IS29GL064B,
+ .total_size = 8192,
+ .page_size = 128 * 1024, /* actual page size is 16 */
+ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
+ .tested = TEST_UNTESTED,
+ .probe = probe_jedec_29gl,
+ .probe_timing = TIMING_ZERO,
+ .block_erasers =
+ {
+ {
+ .eraseblocks = {
+ {8 * 1024, 8},
+ {64 * 1024, 127},
+ },
+ .block_erase = erase_sector_jedec,
+ }, {
+ .eraseblocks = { {8 * 1024 * 1024, 1} },
+ .block_erase = erase_chip_block_jedec,
+ },
+ },
+ .write = write_jedec_1,
+ .read = read_memmapped,
+ .voltage = {2700, 3600},
+ },
+
+ {
+ .vendor = "ISSI",
+ .name = "IS29GL064T",
+ .bustype = BUS_PARALLEL,
+ .manufacture_id = ISSI_ID,
+ .model_id = ISSI_PMC_IS29GL064T,
+ .total_size = 8192,
+ .page_size = 128 * 1024, /* actual page size is 16 */
+ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
+ .tested = TEST_UNTESTED,
+ .probe = probe_jedec_29gl,
+ .probe_timing = TIMING_ZERO,
+ .block_erasers =
+ {
+ {
+ .eraseblocks = {
+ {64 * 1024, 127},
+ {8 * 1024, 8},
+ },
+ .block_erase = erase_sector_jedec,
+ }, {
+ .eraseblocks = { {8 * 1024 * 1024, 1} },
+ .block_erase = erase_chip_block_jedec,
+ },
+ },
+ .write = write_jedec_1,
+ .read = read_memmapped,
+ .voltage = {2700, 3600},
+ },
+
+ {
+ .vendor = "ISSI",
+ .name = "IS29GL064H/L",
+ .bustype = BUS_PARALLEL,
+ .manufacture_id = ISSI_ID,
+ .model_id = ISSI_PMC_IS29GL064HL,
+ .total_size = 8192,
+ .page_size = 128 * 1024, /* actual page size is 16 */
+ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
+ .tested = TEST_UNTESTED,
+ .probe = probe_jedec_29gl,
+ .probe_timing = TIMING_ZERO,
+ .block_erasers =
+ {
+ {
+ .eraseblocks = { {64 * 1024, 128} },
+ .block_erase = erase_sector_jedec,
+ }, {
+ .eraseblocks = { {8 * 1024 * 1024, 1} },
+ .block_erase = erase_chip_block_jedec,
+ },
+ },
+ .write = write_jedec_1,
+ .read = read_memmapped,
+ .voltage = {2700, 3600},
+ },
+
+ {
+ .vendor = "ISSI",
+ .name = "IS29GL128H/L",
+ .bustype = BUS_PARALLEL,
+ .manufacture_id = ISSI_ID,
+ .model_id = ISSI_PMC_IS29GL128HL,
+ .total_size = 16384,
+ .page_size = 128 * 1024, /* actual page size is 16 */
+ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
+ .tested = TEST_UNTESTED,
+ .probe = probe_jedec_29gl,
+ .probe_timing = TIMING_ZERO,
+ .block_erasers =
+ {
+ {
+ .eraseblocks = { {128 * 1024, 128} },
+ .block_erase = erase_sector_jedec,
+ }, {
+ .eraseblocks = { {16 * 1024 * 1024, 1} },
+ .block_erase = erase_chip_block_jedec,
+ },
+ },
+ .write = write_jedec_1,
+ .read = read_memmapped,
+ .voltage = {2700, 3600},
+ },
+
+ {
+ .vendor = "Macronix",
+ .name = "MX23L1654",
+ .bustype = BUS_SPI,
+ .manufacture_id = MACRONIX_ID,
+ .model_id = MACRONIX_MX23L1654,
+ .total_size = 2048,
+ .page_size = 256,
+ .tested = {.probe = NT, .read = NT, .erase = NA, .write = NA},
+ .probe = probe_spi_rdid,
+ .probe_timing = TIMING_ZERO,
+ .write = NULL, /* MX23L1654 is a mask ROM, so it is read-only */
+ .read = spi_chip_read, /* Fast read (0x0B) supported */
+ .voltage = {3000, 3600},
+ },
+
+ {
.vendor = "Macronix",
.name = "MX23L3254",
.bustype = BUS_SPI,
@@ -6038,6 +6354,38 @@ const struct flashchip flashchips[] = {
{
.vendor = "Macronix",
+ .name = "MX23L6454",
+ .bustype = BUS_SPI,
+ .manufacture_id = MACRONIX_ID,
+ .model_id = MACRONIX_MX23L6454,
+ .total_size = 8192,
+ .page_size = 256,
+ .tested = {.probe = NT, .read = NT, .erase = NA, .write = NA},
+ .probe = probe_spi_rdid,
+ .probe_timing = TIMING_ZERO,
+ .write = NULL, /* MX23L6454 is a mask ROM, so it is read-only */
+ .read = spi_chip_read, /* Fast read (0x0B) supported */
+ .voltage = {3000, 3600},
+ },
+
+ {
+ .vendor = "Macronix",
+ .name = "MX23L12854",
+ .bustype = BUS_SPI,
+ .manufacture_id = MACRONIX_ID,
+ .model_id = MACRONIX_MX23L12854,
+ .total_size = 16384,
+ .page_size = 256,
+ .tested = {.probe = NT, .read = NT, .erase = NA, .write = NA},
+ .probe = probe_spi_rdid,
+ .probe_timing = TIMING_ZERO,
+ .write = NULL, /* MX23L12854 is a mask ROM, so it is read-only */
+ .read = spi_chip_read, /* Fast read (0x0B) supported */
+ .voltage = {3000, 3600},
+ },
+
+ {
+ .vendor = "Macronix",
.name = "MX25L512(E)/MX25V512(C)",
.bustype = BUS_SPI,
.manufacture_id = MACRONIX_ID,
@@ -6253,7 +6601,7 @@ const struct flashchip flashchips[] = {
.block_erase = spi_block_erase_c7,
},
},
- .printlock = spi_prettyprint_status_register_bp3_srwd, /* bit6: Continously Program (CP) mode */
+ .printlock = spi_prettyprint_status_register_bp3_srwd, /* bit6: Continuously Program (CP) mode */
.unlock = spi_disable_blockprotect,
.write = spi_chip_write_256,
.read = spi_chip_read, /* Fast read (0x0B), dual I/O supported */
@@ -6792,6 +7140,46 @@ const struct flashchip flashchips[] = {
{
.vendor = "Macronix",
+ .name = "MX25U12835F",
+ .bustype = BUS_SPI,
+ .manufacture_id = MACRONIX_ID,
+ .model_id = MACRONIX_MX25U12835E,
+ .total_size = 16384,
+ .page_size = 256,
+ /* OTP: 512B total; enter 0xB1, exit 0xC1 */
+ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_QPI,
+ .tested = TEST_UNTESTED,
+ .probe = probe_spi_rdid,
+ .probe_timing = TIMING_ZERO,
+ .block_erasers =
+ {
+ {
+ .eraseblocks = { {4 * 1024, 4096} },
+ .block_erase = spi_block_erase_20,
+ }, {
+ .eraseblocks = { {32 * 1024, 512} },
+ .block_erase = spi_block_erase_52,
+ }, {
+ .eraseblocks = { {64 * 1024, 256} },
+ .block_erase = spi_block_erase_d8,
+ }, {
+ .eraseblocks = { {16 * 1024 * 1024, 1} },
+ .block_erase = spi_block_erase_60,
+ }, {
+ .eraseblocks = { {16 * 1024 * 1024, 1} },
+ .block_erase = spi_block_erase_c7,
+ }
+ },
+ /* TODO: security register */
+ .printlock = spi_prettyprint_status_register_bp3_srwd, /* bit6 is quad enable */
+ .unlock = spi_disable_blockprotect_bp3_srwd,
+ .write = spi_chip_write_256, /* Multi I/O supported */
+ .read = spi_chip_read, /* Fast read (0x0B) and multi I/O supported */
+ .voltage = {1650, 2000},
+ },
+
+ {
+ .vendor = "Macronix",
.name = "MX29F001B",
.bustype = BUS_PARALLEL,
.manufacture_id = MACRONIX_ID,
@@ -6922,6 +7310,70 @@ const struct flashchip flashchips[] = {
{
.vendor = "Macronix",
+ .name = "MX29F022(N)B",
+ .bustype = BUS_PARALLEL,
+ .manufacture_id = MACRONIX_ID,
+ .model_id = MACRONIX_MX29F022B,
+ .total_size = 256,
+ .page_size = 0, /* unused */
+ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
+ .tested = TEST_UNTESTED,
+ .probe = probe_jedec,
+ .probe_timing = TIMING_ZERO,
+ .block_erasers =
+ {
+ {
+ .eraseblocks = {
+ {16 * 1024, 1},
+ {8 * 1024, 2},
+ {32 * 1024, 1},
+ {64 * 1024, 3},
+ },
+ .block_erase = erase_sector_jedec,
+ }, {
+ .eraseblocks = { {256 * 1024, 1} },
+ .block_erase = erase_chip_block_jedec,
+ }
+ },
+ .write = write_jedec_1,
+ .read = read_memmapped,
+ .voltage = {4500, 5500},
+ },
+
+ {
+ .vendor = "Macronix",
+ .name = "MX29F022(N)T",
+ .bustype = BUS_PARALLEL,
+ .manufacture_id = MACRONIX_ID,
+ .model_id = MACRONIX_MX29F022T,
+ .total_size = 256,
+ .page_size = 0, /* unused */
+ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
+ .tested = TEST_OK_PREW,
+ .probe = probe_jedec,
+ .probe_timing = TIMING_ZERO,
+ .block_erasers =
+ {
+ {
+ .eraseblocks = {
+ {64 * 1024, 3},
+ {32 * 1024, 1},
+ {8 * 1024, 2},
+ {16 * 1024, 1},
+ },
+ .block_erase = erase_sector_jedec,
+ }, {
+ .eraseblocks = { {256 * 1024, 1} },
+ .block_erase = erase_chip_block_jedec,
+ }
+ },
+ .write = write_jedec_1,
+ .read = read_memmapped,
+ .voltage = {4500, 5500},
+ },
+
+ {
+ .vendor = "Macronix",
.name = "MX29F040",
.bustype = BUS_PARALLEL,
.manufacture_id = MACRONIX_ID,
@@ -6949,6 +7401,207 @@ const struct flashchip flashchips[] = {
{
.vendor = "Macronix",
+ .name = "MX29GL320EB",
+ .bustype = BUS_PARALLEL,
+ .manufacture_id = MACRONIX_ID,
+ .model_id = MACRONIX_MX29GL320EB,
+ .total_size = 4096,
+ .page_size = 128 * 1024, /* actual page size is 16 */
+ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
+ .tested = TEST_UNTESTED,
+ .probe = probe_jedec_29gl,
+ .probe_timing = TIMING_ZERO,
+ .block_erasers =
+ {
+ {
+ .eraseblocks = {
+ {8 * 1024, 8},
+ {64 * 1024, 63},
+ },
+ .block_erase = erase_sector_jedec,
+ }, {
+ .eraseblocks = { {4 * 1024 * 1024, 1} },
+ .block_erase = erase_chip_block_jedec,
+ },
+ },
+ .write = write_jedec_1,
+ .read = read_memmapped,
+ .voltage = {2700, 3600},
+ },
+
+ {
+ .vendor = "Macronix",
+ .name = "MX29GL320ET",
+ .bustype = BUS_PARALLEL,
+ .manufacture_id = MACRONIX_ID,
+ .model_id = MACRONIX_MX29GL320ET,
+ .total_size = 4096,
+ .page_size = 128 * 1024, /* actual page size is 16 */
+ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
+ .tested = TEST_UNTESTED,
+ .probe = probe_jedec_29gl,
+ .probe_timing = TIMING_ZERO,
+ .block_erasers =
+ {
+ {
+ .eraseblocks = {
+ {64 * 1024, 63},
+ {8 * 1024, 8},
+ },
+ .block_erase = erase_sector_jedec,
+ }, {
+ .eraseblocks = { {4 * 1024 * 1024, 1} },
+ .block_erase = erase_chip_block_jedec,
+ },
+ },
+ .write = write_jedec_1,
+ .read = read_memmapped,
+ .voltage = {2700, 3600},
+ },
+
+ {
+ .vendor = "Macronix",
+ .name = "MX29GL320EH/L",
+ .bustype = BUS_PARALLEL,
+ .manufacture_id = MACRONIX_ID,
+ .model_id = MACRONIX_MX29GL320EHL,
+ .total_size = 4096,
+ .page_size = 128 * 1024, /* actual page size is 16 */
+ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
+ .tested = TEST_UNTESTED,
+ .probe = probe_jedec_29gl,
+ .probe_timing = TIMING_ZERO,
+ .block_erasers =
+ {
+ {
+ .eraseblocks = { {64 * 1024, 64} },
+ .block_erase = erase_sector_jedec,
+ }, {
+ .eraseblocks = { {4 * 1024 * 1024, 1} },
+ .block_erase = erase_chip_block_jedec,
+ },
+ },
+ .write = write_jedec_1,
+ .read = read_memmapped,
+ .voltage = {2700, 3600},
+ },
+
+ {
+ .vendor = "Macronix",
+ .name = "MX29GL640EB",
+ .bustype = BUS_PARALLEL,
+ .manufacture_id = MACRONIX_ID,
+ .model_id = MACRONIX_MX29GL640EB,
+ .total_size = 8192,
+ .page_size = 128 * 1024, /* actual page size is 16 */
+ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
+ .tested = TEST_UNTESTED,
+ .probe = probe_jedec_29gl,
+ .probe_timing = TIMING_ZERO,
+ .block_erasers =
+ {
+ {
+ .eraseblocks = {
+ {8 * 1024, 8},
+ {64 * 1024, 127},
+ },
+ .block_erase = erase_sector_jedec,
+ }, {
+ .eraseblocks = { {8 * 1024 * 1024, 1} },
+ .block_erase = erase_chip_block_jedec,
+ },
+ },
+ .write = write_jedec_1,
+ .read = read_memmapped,
+ .voltage = {2700, 3600},
+ },
+
+ {
+ .vendor = "Macronix",
+ .name = "MX29GL640ET",
+ .bustype = BUS_PARALLEL,
+ .manufacture_id = MACRONIX_ID,
+ .model_id = MACRONIX_MX29GL640ET,
+ .total_size = 8192,
+ .page_size = 128 * 1024, /* actual page size is 16 */
+ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
+ .tested = TEST_UNTESTED,
+ .probe = probe_jedec_29gl,
+ .probe_timing = TIMING_ZERO,
+ .block_erasers =
+ {
+ {
+ .eraseblocks = {
+ {64 * 1024, 127},
+ {8 * 1024, 8},
+ },
+ .block_erase = erase_sector_jedec,
+ }, {
+ .eraseblocks = { {8 * 1024 * 1024, 1} },
+ .block_erase = erase_chip_block_jedec,
+ },
+ },
+ .write = write_jedec_1,
+ .read = read_memmapped,
+ .voltage = {2700, 3600},
+ },
+
+ {
+ .vendor = "Macronix",
+ .name = "MX29GL640EH/L",
+ .bustype = BUS_PARALLEL,
+ .manufacture_id = MACRONIX_ID,
+ .model_id = MACRONIX_MX29GL640EHL,
+ .total_size = 8192,
+ .page_size = 128 * 1024, /* actual page size is 16 */
+ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
+ .tested = TEST_UNTESTED,
+ .probe = probe_jedec_29gl,
+ .probe_timing = TIMING_ZERO,
+ .block_erasers =
+ {
+ {
+ .eraseblocks = { {64 * 1024, 128} },
+ .block_erase = erase_sector_jedec,
+ }, {
+ .eraseblocks = { {8 * 1024 * 1024, 1} },
+ .block_erase = erase_chip_block_jedec,
+ },
+ },
+ .write = write_jedec_1,
+ .read = read_memmapped,
+ .voltage = {2700, 3600},
+ },
+
+ {
+ .vendor = "Macronix",
+ .name = "MX29GL128F",
+ .bustype = BUS_PARALLEL,
+ .manufacture_id = MACRONIX_ID,
+ .model_id = MACRONIX_MX29GL128F,
+ .total_size = 16384,
+ .page_size = 128 * 1024, /* actual page size is 16 */
+ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
+ .tested = TEST_UNTESTED,
+ .probe = probe_jedec_29gl,
+ .probe_timing = TIMING_ZERO,
+ .block_erasers =
+ {
+ {
+ .eraseblocks = { {128 * 1024, 128} },
+ .block_erase = erase_sector_jedec,
+ }, {
+ .eraseblocks = { {16 * 1024 * 1024, 1} },
+ .block_erase = erase_chip_block_jedec,
+ },
+ },
+ .write = write_jedec_1,
+ .read = read_memmapped,
+ .voltage = {2700, 3600},
+ },
+
+ {
+ .vendor = "Macronix",
.name = "MX29LV040",
.bustype = BUS_PARALLEL,
.manufacture_id = MACRONIX_ID,
@@ -6962,7 +7615,7 @@ const struct flashchip flashchips[] = {
.block_erasers =
{
{
- .eraseblocks = { {64 * 1024, 8}, },
+ .eraseblocks = { {64 * 1024, 8} },
.block_erase = erase_sector_jedec,
}, {
.eraseblocks = { {512 * 1024, 1} },
@@ -9024,7 +9677,7 @@ const struct flashchip flashchips[] = {
.total_size = 256,
.page_size = 16 * 1024,
.feature_bits = FEATURE_REGISTERMAP | FEATURE_EITHER_RESET,
- .tested = TEST_OK_PREW,
+ .tested = TEST_OK_PR,
.probe = probe_jedec,
.probe_timing = TIMING_ZERO, /* routine is wrapper to probe_jedec (pm49fl00x.c) */
.block_erasers =
@@ -9040,7 +9693,7 @@ const struct flashchip flashchips[] = {
.block_erase = erase_chip_block_jedec,
}
},
- .unlock = unlock_49fl00x,
+ .unlock = unlock_regspace2_uniform_32k,
.write = write_jedec_1,
.read = read_memmapped,
.voltage = {3000, 3600},
@@ -9055,7 +9708,7 @@ const struct flashchip flashchips[] = {
.total_size = 512,
.page_size = 64 * 1024,
.feature_bits = FEATURE_REGISTERMAP | FEATURE_EITHER_RESET,
- .tested = TEST_OK_PREW,
+ .tested = TEST_OK_PR,
.probe = probe_jedec,
.probe_timing = TIMING_ZERO, /* routine is wrapper to probe_jedec (pm49fl00x.c) */
.block_erasers =
@@ -9071,7 +9724,7 @@ const struct flashchip flashchips[] = {
.block_erase = erase_chip_block_jedec,
}
},
- .unlock = unlock_49fl00x,
+ .unlock = unlock_regspace2_uniform_64k,
.write = write_jedec_1,
.read = read_memmapped,
.voltage = {3000, 3600},
@@ -9384,7 +10037,7 @@ const struct flashchip flashchips[] = {
.block_erase = NULL, /* 30 D0, only in A/A mux mode */
},
},
- .unlock = unlock_82802ab,
+ .unlock = unlock_regspace2_uniform_64k,
.write = write_82802ab,
.read = read_memmapped,
.voltage = {3000, 3600},
@@ -9563,9 +10216,9 @@ const struct flashchip flashchips[] = {
}
},
.printlock = spi_prettyprint_status_register_bp3_srwd,
- .unlock = spi_disable_blockprotect_bp3_srwd, /* #WP pin write-protects SRWP bit. */
+ .unlock = spi_disable_blockprotect_bp3_srwd, /* #WP pin write-protects SRWP bit. */
.write = spi_chip_write_256,
- .read = spi_chip_read, /* Fast read (0x0B), dual I/O (0x3B) supported */
+ .read = spi_chip_read, /* Fast read (0x0B) and dual I/O (0x3B) supported */
.voltage = {2700, 3600},
},
@@ -9597,15 +10250,15 @@ const struct flashchip flashchips[] = {
}
},
.printlock = spi_prettyprint_status_register_bp3_srwd,
- .unlock = spi_disable_blockprotect_bp3_srwd, /* #WP pin write-protects SRWP bit. */
+ .unlock = spi_disable_blockprotect_bp3_srwd, /* #WP pin write-protects SRWP bit. */
.write = spi_chip_write_256,
- .read = spi_chip_read, /* Fast read (0x0B), dual I/O (0x3B) supported */
+ .read = spi_chip_read, /* Fast read (0x0B) and dual I/O (0x3B) supported */
.voltage = {2700, 3600},
},
{
.vendor = "Spansion",
- .name = "S25FL116K/S25FL216K",
+ .name = "S25FL116K/S25FL216K", /* FIXME: separate them */
.bustype = BUS_SPI,
.manufacture_id = SPANSION_ID,
.model_id = SPANSION_S25FL216,
@@ -9632,9 +10285,9 @@ const struct flashchip flashchips[] = {
}
},
.printlock = spi_prettyprint_status_register_bp3_srwd,
- .unlock = spi_disable_blockprotect_bp3_srwd, /* #WP pin write-protects SRWP bit. */
+ .unlock = spi_disable_blockprotect_bp3_srwd, /* #WP pin write-protects SRWP bit. */
.write = spi_chip_write_256,
- .read = spi_chip_read, /* Fast read (0x0B), dual I/O (0x3B) supported */
+ .read = spi_chip_read, /* Fast read (0x0B) and dual I/O (0x3B) supported */
.voltage = {2700, 3600},
},
@@ -9710,7 +10363,69 @@ const struct flashchip flashchips[] = {
{
.vendor = "Spansion",
- .name = "S25FL128S......0", /* uniform 256kB sectors */
+ .name = "S25FL128P......0", /* uniform 64 kB sectors */
+ .bustype = BUS_SPI,
+ .manufacture_id = SPANSION_ID,
+ .model_id = SPANSION_S25FL128,
+ .total_size = 16384,
+ .page_size = 256,
+ .feature_bits = FEATURE_WRSR_WREN,
+ .tested = TEST_UNTESTED,
+ .probe = probe_spi_rdid,
+ .probe_timing = TIMING_ZERO,
+ .block_erasers = {
+ {
+ .eraseblocks = { {64 * 1024, 256} },
+ .block_erase = spi_block_erase_20,
+ }, {
+ .eraseblocks = { {64 * 1024, 256} },
+ .block_erase = spi_block_erase_d8,
+ }, {
+ .eraseblocks = { { 16384 * 1024, 1} },
+ .block_erase = spi_block_erase_60,
+ }, {
+ .eraseblocks = { { 16384 * 1024, 1} },
+ .block_erase = spi_block_erase_c7,
+ }
+ },
+ .printlock = spi_prettyprint_status_register_bp3_srwd,
+ .unlock = spi_disable_blockprotect_bp3_srwd,
+ .write = spi_chip_write_256,
+ .read = spi_chip_read, /* Fast read (0x0B) supported */
+ .voltage = {2700, 3600},
+ },
+
+ {
+ .vendor = "Spansion",
+ .name = "S25FL128P......1", /* uniform 256kB sectors */
+ .bustype = BUS_SPI,
+ .manufacture_id = SPANSION_ID,
+ .model_id = SPANSION_S25FL128,
+ .total_size = 16384,
+ .page_size = 256,
+ .feature_bits = FEATURE_WRSR_WREN,
+ .tested = TEST_UNTESTED,
+ .probe = probe_spi_rdid,
+ .probe_timing = TIMING_ZERO,
+ .block_erasers = {
+ {
+ .eraseblocks = { {256 * 1024, 64} },
+ .block_erase = spi_block_erase_d8,
+ }, {
+ .eraseblocks = { { 16384 * 1024, 1} },
+ .block_erase = spi_block_erase_c7,
+ }
+ },
+ .printlock = spi_prettyprint_status_register_bp2_srwd,
+ .unlock = spi_disable_blockprotect_bp2_srwd,
+ .write = spi_chip_write_256,
+ .read = spi_chip_read, /* Fast read (0x0B) supported */
+ .voltage = {2700, 3600},
+ },
+
+ {
+ .vendor = "Spansion",
+ .name = "S25FL128S......0", /* hybrid: 32 (top or bottom) 4 kB sub-sectors + 64 kB sectors */
.bustype = BUS_SPI,
.manufacture_id = SPANSION_ID,
.model_id = SPANSION_S25FL128,
@@ -9724,9 +10439,48 @@ const struct flashchip flashchips[] = {
.probe_timing = TIMING_ZERO,
.block_erasers = {
{
- .eraseblocks = { {4 * 1024, 4096} },
+ /* This chip supports erasing of the 32 so-called "parameter sectors" with
+ * opcode 0x20. Trying to access an address outside these 4kB blocks does
+ * have no effect on the memory contents, but sets a flag in the SR.
+ .eraseblocks = {
+ {4 * 1024, 32},
+ {64 * 1024, 254} // inaccessible
+ },
.block_erase = spi_block_erase_20,
+ }, { */
+ .eraseblocks = { { 64 * 1024, 256} },
+ .block_erase = spi_block_erase_d8,
+ }, {
+ .eraseblocks = { { 16384 * 1024, 1} },
+ .block_erase = spi_block_erase_60,
}, {
+ .eraseblocks = { { 16384 * 1024, 1} },
+ .block_erase = spi_block_erase_c7,
+ }
+ },
+ .printlock = spi_prettyprint_status_register_bp2_ep_srwd, /* TODO: SR2 and many others */
+ .unlock = spi_disable_blockprotect_bp2_srwd, /* TODO: various other locks */
+ .write = spi_chip_write_256, /* Multi I/O supported */
+ .read = spi_chip_read, /* Fast read (0x0B) and multi I/O supported */
+ .voltage = {2700, 3600},
+ },
+
+ {
+ .vendor = "Spansion",
+ .name = "S25FL128S......1", /* uniform 256 kB sectors */
+ .bustype = BUS_SPI,
+ .manufacture_id = SPANSION_ID,
+ .model_id = SPANSION_S25FL128,
+ .total_size = 16384,
+ .page_size = 512,
+ /* supports 4B addressing */
+ /* OTP: 1024B total, 32B reserved; read 0x4B; write 0x42 */
+ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP,
+ .tested = TEST_UNTESTED,
+ .probe = probe_spi_rdid,
+ .probe_timing = TIMING_ZERO,
+ .block_erasers = {
+ {
.eraseblocks = { {256 * 1024, 64} },
.block_erase = spi_block_erase_d8,
}, {
@@ -9745,6 +10499,86 @@ const struct flashchip flashchips[] = {
},
{
+ .vendor = "Spansion",
+ .name = "S25FL129P......0", /* hybrid: 32 (top or bottom) 4 kB sub-sectors + 64 kB sectors */
+ .bustype = BUS_SPI,
+ .manufacture_id = SPANSION_ID,
+ .model_id = SPANSION_S25FL128,
+ .total_size = 16384,
+ .page_size = 256,
+ /* OTP: 506B total, 16B reserved; read 0x4B; write 0x42 */
+ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP,
+ .tested = TEST_OK_PREW,
+ .probe = probe_spi_rdid,
+ .probe_timing = TIMING_ZERO,
+ .block_erasers = {
+ {
+ /* FIXME: This chip supports erasing of the 32 so-called "parameter sectors" with
+ * opcode 0x20. Trying to access an address outside these 4kB blocks does have no
+ * effect on the memory contents, but sets a flag in the SR.
+ .eraseblocks = {
+ {4 * 1024, 32},
+ {64 * 1024, 254} // inaccessible
+ },
+ .block_erase = spi_block_erase_20,
+ }, { */
+ /* FIXME: Additionally it also supports erase opcode 40h for the respective 2*4 kB pairs
+ .eraseblocks = {
+ {8 * 1024, 16},
+ {64 * 1024, 254} // inaccessible
+ },
+ .block_erase = spi_block_erase_40,
+ }, { */
+ .eraseblocks = { { 64 * 1024, 256} },
+ .block_erase = spi_block_erase_d8,
+ }, {
+ .eraseblocks = { { 16384 * 1024, 1} },
+ .block_erase = spi_block_erase_60,
+ }, {
+ .eraseblocks = { { 16384 * 1024, 1} },
+ .block_erase = spi_block_erase_c7,
+ }
+ },
+ .printlock = spi_prettyprint_status_register_bp2_ep_srwd, /* TODO: Configuration register */
+ .unlock = spi_disable_blockprotect_bp2_srwd,
+ .write = spi_chip_write_256, /* Multi I/O supported */
+ .read = spi_chip_read, /* Fast read (0x0B) and multi I/O supported */
+ .voltage = {2700, 3600},
+ },
+
+ {
+ .vendor = "Spansion",
+ .name = "S25FL129P......1", /* uniform 256 kB sectors */
+ .bustype = BUS_SPI,
+ .manufacture_id = SPANSION_ID,
+ .model_id = SPANSION_S25FL128,
+ .total_size = 16384,
+ .page_size = 512,
+ /* OTP: 506B total, 16B reserved; read 0x4B; write 0x42 */
+ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP,
+ .tested = TEST_UNTESTED,
+ .probe = probe_spi_rdid,
+ .probe_timing = TIMING_ZERO,
+ .block_erasers = {
+ {
+ .eraseblocks = { {256 * 1024, 64} },
+ .block_erase = spi_block_erase_d8,
+ }, {
+ .eraseblocks = { { 16384 * 1024, 1} },
+ .block_erase = spi_block_erase_60,
+ }, {
+ .eraseblocks = { { 16384 * 1024, 1} },
+ .block_erase = spi_block_erase_c7,
+ }
+ },
+ .printlock = spi_prettyprint_status_register_bp2_ep_srwd, /* TODO: Configuration register */
+ .unlock = spi_disable_blockprotect_bp2_srwd,
+ .write = spi_chip_write_256, /* Multi I/O supported */
+ .read = spi_chip_read, /* Fast read (0x0B) and multi I/O supported */
+ .voltage = {2700, 3600},
+ },
+
+ {
.vendor = "SST",
.name = "SST25LF020A",
.bustype = BUS_SPI,
@@ -9842,10 +10676,10 @@ const struct flashchip flashchips[] = {
{
.vendor = "SST",
- .name = "SST25VF512A",
+ .name = "SST25VF512(A)",
.bustype = BUS_SPI,
.manufacture_id = SST_ID,
- .model_id = SST_SST25VF512A_REMS,
+ .model_id = SST_SST25VF512_REMS,
.total_size = 64,
.page_size = 256,
.feature_bits = FEATURE_WRSR_EWSR,
@@ -9862,25 +10696,25 @@ const struct flashchip flashchips[] = {
.block_erase = spi_block_erase_52,
}, {
.eraseblocks = { {32 * 1024, 2} },
- .block_erase = spi_block_erase_d8,
+ .block_erase = spi_block_erase_d8, /* Supported by SST25VF512A only */
}, {
.eraseblocks = { {64 * 1024, 1} },
.block_erase = spi_block_erase_60,
}, {
.eraseblocks = { {64 * 1024, 1} },
- .block_erase = spi_block_erase_c7,
+ .block_erase = spi_block_erase_c7, /* Supported by SST25VF512A only */
},
},
.printlock = spi_prettyprint_status_register_sst25, /* FIXME: No BP2 & 3 */
.unlock = spi_disable_blockprotect,
.write = spi_chip_write_1, /* AAI supported, but opcode is 0xAF */
- .read = spi_chip_read, /* Fast read (0x0B) supported */
+ .read = spi_chip_read, /* Fast read (0x0B) supported by SST25VF512A only */
.voltage = {2700, 3600},
},
{
.vendor = "SST",
- .name = "SST25VF010",
+ .name = "SST25VF010(A)",
.bustype = BUS_SPI,
.manufacture_id = SST_ID,
.model_id = SST_SST25VF010_REMS,
@@ -9900,19 +10734,19 @@ const struct flashchip flashchips[] = {
.block_erase = spi_block_erase_52,
}, {
.eraseblocks = { {32 * 1024, 4} },
- .block_erase = spi_block_erase_d8,
+ .block_erase = spi_block_erase_d8, /* Supported by SST25VF010A only */
}, {
.eraseblocks = { {128 * 1024, 1} },
.block_erase = spi_block_erase_60,
}, {
.eraseblocks = { {128 * 1024, 1} },
- .block_erase = spi_block_erase_c7,
+ .block_erase = spi_block_erase_c7, /* Supported by SST25VF010A only */
},
},
.printlock = spi_prettyprint_status_register_sst25, /* FIXME: No BP2 & 3 */
.unlock = spi_disable_blockprotect,
.write = spi_chip_write_1, /* AAI supported, but opcode is 0xAF */
- .read = spi_chip_read, /* Fast read (0x0B) supported */
+ .read = spi_chip_read, /* Fast read (0x0B) supported by SST25VF010A only */
.voltage = {2700, 3600},
},
@@ -10926,7 +11760,8 @@ const struct flashchip flashchips[] = {
.block_erase = erase_block_82802ab,
}
},
- .unlock = unlock_49lfxxxc,
+ .printlock = printlock_regspace2_block_eraser_1,
+ .unlock = unlock_regspace2_block_eraser_1,
.write = write_82802ab,
.read = read_memmapped,
.voltage = {3000, 3600},
@@ -10991,7 +11826,8 @@ const struct flashchip flashchips[] = {
.block_erase = erase_block_82802ab,
}
},
- .unlock = unlock_49lfxxxc,
+ .printlock = printlock_regspace2_block_eraser_1,
+ .unlock = unlock_regspace2_block_eraser_1,
.write = write_82802ab,
.read = read_memmapped,
.voltage = {3000, 3600},
@@ -11006,7 +11842,7 @@ const struct flashchip flashchips[] = {
.total_size = 2048,
.page_size = 4 * 1024,
.feature_bits = FEATURE_REGISTERMAP,
- .tested = TEST_OK_PREW,
+ .tested = TEST_OK_PR,
.probe = probe_82802ab,
.probe_timing = TIMING_IGNORED, /* routine doesn't use probe_timing (sst49lfxxxc.c) */
.block_erasers =
@@ -11024,7 +11860,8 @@ const struct flashchip flashchips[] = {
.block_erase = erase_block_82802ab,
}
},
- .unlock = unlock_49lfxxxc,
+ .printlock = printlock_regspace2_block_eraser_1,
+ .unlock = unlock_regspace2_block_eraser_1,
.write = write_82802ab,
.read = read_memmapped,
.voltage = {3000, 3600},
@@ -11129,7 +11966,7 @@ const struct flashchip flashchips[] = {
.total_size = 512,
.page_size = 64 * 1024,
.feature_bits = FEATURE_EITHER_RESET | FEATURE_REGISTERMAP,
- .tested = TEST_OK_PREW,
+ .tested = TEST_OK_PR,
.probe = probe_jedec,
.probe_timing = 1, /* 150ns */
.block_erasers =
@@ -11145,7 +11982,7 @@ const struct flashchip flashchips[] = {
.block_erase = NULL,
}
},
- .unlock = unlock_82802ab,
+ .unlock = unlock_regspace2_uniform_64k,
.write = write_jedec_1,
.read = read_memmapped,
.voltage = {3000, 3600},
@@ -11190,7 +12027,7 @@ const struct flashchip flashchips[] = {
.total_size = 2048,
.page_size = 4 * 1024,
.feature_bits = FEATURE_REGISTERMAP,
- .tested = TEST_OK_PRE,
+ .tested = TEST_OK_PR,
.probe = probe_82802ab,
.probe_timing = TIMING_IGNORED, /* routine doesn't use probe_timing (sst49lfxxxc.c) */
.block_erasers =
@@ -11208,7 +12045,8 @@ const struct flashchip flashchips[] = {
.block_erase = erase_block_82802ab,
}
},
- .unlock = unlock_49lfxxxc,
+ .printlock = printlock_regspace2_block_eraser_1,
+ .unlock = unlock_regspace2_block_eraser_1,
.write = write_82802ab,
.read = read_memmapped,
.voltage = {3000, 3600},
@@ -11293,7 +12131,7 @@ const struct flashchip flashchips[] = {
.block_erasers =
{
{
- .eraseblocks = { {64 * 1024, 8}, },
+ .eraseblocks = { {64 * 1024, 8} },
.block_erase = erase_sector_jedec,
}, {
.eraseblocks = { {512 * 1024, 1} },
@@ -11314,10 +12152,10 @@ const struct flashchip flashchips[] = {
.model_id = ST_M29F400BB,
.total_size = 512,
.page_size = 64 * 1024,
- .feature_bits = FEATURE_ADDR_SHIFTED | FEATURE_EITHER_RESET,
+ .feature_bits = FEATURE_ADDR_SHIFTED | FEATURE_ADDR_2AA | FEATURE_EITHER_RESET,
.tested = TEST_UNTESTED,
- .probe = probe_m29f400bt,
- .probe_timing = TIMING_IGNORED, /* routine doesn't use probe_timing (m29f400bt.c) */
+ .probe = probe_jedec,
+ .probe_timing = 10, // FIXME: check datasheet. Using the 10 us from probe_m29f400bt
.block_erasers =
{
{
@@ -11327,13 +12165,13 @@ const struct flashchip flashchips[] = {
{32 * 1024, 1},
{64 * 1024, 7},
},
- .block_erase = erase_block_shifted_jedec,
+ .block_erase = erase_sector_jedec,
}, {
.eraseblocks = { {512 * 1024, 1} },
- .block_erase = erase_chip_block_shifted_jedec,
+ .block_erase = erase_chip_block_jedec,
}
},
- .write = write_m29f400bt,
+ .write = write_jedec_1,
.read = read_memmapped,
.voltage = {4500, 5500},
},
@@ -11346,10 +12184,10 @@ const struct flashchip flashchips[] = {
.model_id = ST_M29F400BT,
.total_size = 512,
.page_size = 64 * 1024,
- .feature_bits = FEATURE_ADDR_SHIFTED | FEATURE_EITHER_RESET,
+ .feature_bits = FEATURE_ADDR_SHIFTED | FEATURE_ADDR_2AA | FEATURE_EITHER_RESET,
.tested = TEST_UNTESTED,
- .probe = probe_m29f400bt,
- .probe_timing = TIMING_IGNORED, /* routine doesn't use probe_timing (m29f400bt.c) */
+ .probe = probe_jedec,
+ .probe_timing = 10, // FIXME: check datasheet. Using the 10 us from probe_m29f400bt
.block_erasers =
{
{
@@ -11359,13 +12197,13 @@ const struct flashchip flashchips[] = {
{8 * 1024, 2},
{16 * 1024, 1},
},
- .block_erase = erase_block_shifted_jedec,
+ .block_erase = erase_sector_jedec,
}, {
.eraseblocks = { {512 * 1024, 1} },
- .block_erase = erase_chip_block_shifted_jedec,
+ .block_erase = erase_chip_block_jedec,
}
},
- .write = write_m29f400bt,
+ .write = write_jedec_1,
.read = read_memmapped,
.voltage = {4500, 5500},
},
@@ -11385,7 +12223,7 @@ const struct flashchip flashchips[] = {
.block_erasers =
{
{
- .eraseblocks = { {16 * 1024, 8}, },
+ .eraseblocks = { {16 * 1024, 8} },
.block_erase = erase_sector_jedec,
}, {
.eraseblocks = { {128 * 1024, 1} },
@@ -11412,7 +12250,7 @@ const struct flashchip flashchips[] = {
.block_erasers =
{
{
- .eraseblocks = { {64 * 1024, 8}, },
+ .eraseblocks = { {64 * 1024, 8} },
.block_erase = erase_sector_jedec,
}, {
.eraseblocks = { {512 * 1024, 1} },
@@ -11471,12 +12309,12 @@ const struct flashchip flashchips[] = {
},
.block_erase = erase_sector_stm50,
}, {
- .eraseblocks = { {64 * 1024, 8}, },
+ .eraseblocks = { {64 * 1024, 8} },
.block_erase = erase_block_82802ab,
}
},
.write = write_82802ab,
- .unlock = unlock_stm50_uniform,
+ .unlock = unlock_regspace2_uniform_64k,
.read = read_memmapped,
.voltage = {3000, 3600}, /* Also has 12V fast program & erase */
},
@@ -11504,12 +12342,12 @@ const struct flashchip flashchips[] = {
},
.block_erase = erase_sector_stm50,
}, {
- .eraseblocks = { {64 * 1024, 8}, },
+ .eraseblocks = { {64 * 1024, 8} },
.block_erase = erase_block_82802ab,
}
},
.write = write_82802ab,
- .unlock = unlock_stm50_uniform,
+ .unlock = unlock_regspace2_uniform_64k,
.read = read_memmapped,
.voltage = {3000, 3600}, /* Also has 12V fast program & erase */
},
@@ -11523,7 +12361,7 @@ const struct flashchip flashchips[] = {
.total_size = 1024,
.page_size = 0,
.feature_bits = FEATURE_REGISTERMAP,
- .tested = TEST_OK_PRE,
+ .tested = TEST_OK_PR,
.probe = probe_82802ab,
.probe_timing = TIMING_FIXME,
.block_erasers =
@@ -11537,11 +12375,12 @@ const struct flashchip flashchips[] = {
},
.block_erase = erase_sector_stm50,
}, {
- .eraseblocks = { {64 * 1024, 16}, },
+ .eraseblocks = { {64 * 1024, 16} },
.block_erase = erase_block_82802ab,
}
},
- .unlock = unlock_stm50_nonuniform,
+ .printlock = printlock_regspace2_block_eraser_0,
+ .unlock = unlock_regspace2_block_eraser_0,
.write = write_82802ab,
.read = read_memmapped,
.voltage = {3000, 3600}, /* Also has 12V fast program & erase */
@@ -11570,11 +12409,12 @@ const struct flashchip flashchips[] = {
},
.block_erase = erase_sector_stm50,
}, {
- .eraseblocks = { {64 * 1024, 16}, },
+ .eraseblocks = { {64 * 1024, 16} },
.block_erase = erase_block_82802ab,
}
},
- .unlock = unlock_stm50_nonuniform,
+ .printlock = printlock_regspace2_block_eraser_0,
+ .unlock = unlock_regspace2_block_eraser_0,
.write = write_82802ab,
.read = read_memmapped,
.voltage = {3000, 3600}, /* Also has 12V fast program & erase */
@@ -11589,9 +12429,9 @@ const struct flashchip flashchips[] = {
.total_size = 256,
.page_size = 0,
.feature_bits = FEATURE_REGISTERMAP,
- .tested = TEST_UNTESTED,
+ .tested = TEST_OK_PR,
.probe = probe_82802ab,
- .probe_timing = TIMING_IGNORED, /* routine doesn't use probe_timing (sst49lfxxxc.c) */
+ .probe_timing = TIMING_IGNORED, /* routine doesn't use probe_timing (82802ab.c) */
.block_erasers =
{
{
@@ -11602,9 +12442,13 @@ const struct flashchip flashchips[] = {
{16 * 1024, 1},
},
.block_erase = erase_block_82802ab,
+ }, {
+ .eraseblocks = { {256 * 1024, 1}, },
+ .block_erase = NULL, /* Only in A/A mux mode */
}
},
- .unlock = unlock_stm50_nonuniform,
+ .printlock = printlock_regspace2_block_eraser_0,
+ .unlock = unlock_regspace2_block_eraser_0,
.write = write_82802ab,
.read = read_memmapped,
.voltage = {3000, 3600}, /* Also has 12V fast program & erase */
@@ -11625,11 +12469,11 @@ const struct flashchip flashchips[] = {
.block_erasers =
{
{
- .eraseblocks = { {64 * 1024, 32}, },
+ .eraseblocks = { {64 * 1024, 32} },
.block_erase = erase_block_82802ab,
}
},
- .unlock = unlock_stm50_uniform,
+ .unlock = unlock_regspace2_uniform_64k,
.write = write_82802ab,
.read = read_memmapped,
.voltage = {3000, 3600}, /* Also has 12V fast program & erase */
@@ -11650,11 +12494,11 @@ const struct flashchip flashchips[] = {
.block_erasers =
{
{
- .eraseblocks = { {64 * 1024, 8}, },
+ .eraseblocks = { {64 * 1024, 8} },
.block_erase = erase_block_82802ab,
}
},
- .unlock = unlock_stm50_uniform,
+ .unlock = unlock_regspace2_uniform_64k,
.write = write_82802ab,
.read = read_memmapped,
.voltage = {3000, 3600}, /* Also has 12V fast program & erase */
@@ -11669,17 +12513,17 @@ const struct flashchip flashchips[] = {
.total_size = 1024,
.page_size = 0,
.feature_bits = FEATURE_REGISTERMAP,
- .tested = TEST_OK_PREW,
+ .tested = TEST_OK_PR,
.probe = probe_82802ab,
.probe_timing = TIMING_IGNORED, /* routine doesn't use probe_timing (82802ab.c) */
.block_erasers =
{
{
- .eraseblocks = { {64 * 1024, 16}, },
+ .eraseblocks = { {64 * 1024, 16} },
.block_erase = erase_block_82802ab,
}
},
- .unlock = unlock_stm50_uniform,
+ .unlock = unlock_regspace2_uniform_64k,
.write = write_82802ab,
.read = read_memmapped,
.voltage = {3000, 3600}, /* Also has 12V fast program & erase */
@@ -11700,11 +12544,11 @@ const struct flashchip flashchips[] = {
.block_erasers =
{
{
- .eraseblocks = { {64 * 1024, 16}, },
+ .eraseblocks = { {64 * 1024, 16} },
.block_erase = erase_block_82802ab,
}
},
- .unlock = unlock_stm50_uniform,
+ .unlock = unlock_regspace2_uniform_64k,
.write = write_82802ab,
.read = read_memmapped,
.voltage = {3000, 3600}, /* Also has 12V fast program & erase */
@@ -11735,7 +12579,8 @@ const struct flashchip flashchips[] = {
.block_erase = erase_block_82802ab,
}
},
- .unlock = unlock_stm50_nonuniform,
+ .printlock = printlock_regspace2_block_eraser_0,
+ .unlock = unlock_regspace2_block_eraser_0,
.write = write_82802ab,
.read = read_memmapped,
.voltage = {3000, 3600}, /* Also has 12V fast program & erase */
@@ -12794,6 +13639,207 @@ const struct flashchip flashchips[] = {
{
.vendor = "Winbond",
+ .name = "W29GL032CB",
+ .bustype = BUS_PARALLEL,
+ .manufacture_id = AMD_ID, /* WTF: "Industry Standard compatible Manufacturer ID code of 01h" */
+ .model_id = WINBOND_W29GL032CB,
+ .total_size = 4096,
+ .page_size = 128 * 1024, /* actual page size is 16 */
+ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
+ .tested = TEST_UNTESTED,
+ .probe = probe_jedec_29gl,
+ .probe_timing = TIMING_ZERO,
+ .block_erasers =
+ {
+ {
+ .eraseblocks = {
+ {8 * 1024, 8},
+ {64 * 1024, 63},
+ },
+ .block_erase = erase_sector_jedec,
+ }, {
+ .eraseblocks = { {4 * 1024 * 1024, 1} },
+ .block_erase = erase_chip_block_jedec,
+ },
+ },
+ .write = write_jedec_1,
+ .read = read_memmapped,
+ .voltage = {2700, 3600},
+ },
+
+ {
+ .vendor = "Winbond",
+ .name = "W29GL032CT",
+ .bustype = BUS_PARALLEL,
+ .manufacture_id = AMD_ID, /* WTF: "Industry Standard compatible Manufacturer ID code of 01h" */
+ .model_id = WINBOND_W29GL032CT,
+ .total_size = 4096,
+ .page_size = 128 * 1024, /* actual page size is 16 */
+ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
+ .tested = TEST_UNTESTED,
+ .probe = probe_jedec_29gl,
+ .probe_timing = TIMING_ZERO,
+ .block_erasers =
+ {
+ {
+ .eraseblocks = {
+ {64 * 1024, 63},
+ {8 * 1024, 8},
+ },
+ .block_erase = erase_sector_jedec,
+ }, {
+ .eraseblocks = { {4 * 1024 * 1024, 1} },
+ .block_erase = erase_chip_block_jedec,
+ },
+ },
+ .write = write_jedec_1,
+ .read = read_memmapped,
+ .voltage = {2700, 3600},
+ },
+
+ {
+ .vendor = "Winbond",
+ .name = "W29GL032CH/L",
+ .bustype = BUS_PARALLEL,
+ .manufacture_id = AMD_ID, /* WTF: "Industry Standard compatible Manufacturer ID code of 01h" */
+ .model_id = WINBOND_W29GL032CHL,
+ .total_size = 4096,
+ .page_size = 128 * 1024, /* actual page size is 16 */
+ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
+ .tested = TEST_UNTESTED,
+ .probe = probe_jedec_29gl,
+ .probe_timing = TIMING_ZERO,
+ .block_erasers =
+ {
+ {
+ .eraseblocks = { {64 * 1024, 64} },
+ .block_erase = erase_sector_jedec,
+ }, {
+ .eraseblocks = { {4 * 1024 * 1024, 1} },
+ .block_erase = erase_chip_block_jedec,
+ },
+ },
+ .write = write_jedec_1,
+ .read = read_memmapped,
+ .voltage = {2700, 3600},
+ },
+
+ {
+ .vendor = "Winbond",
+ .name = "W29GL064CB",
+ .bustype = BUS_PARALLEL,
+ .manufacture_id = AMD_ID, /* WTF: "Industry Standard compatible Manufacturer ID code of 01h" */
+ .model_id = WINBOND_W29GL064CB,
+ .total_size = 8192,
+ .page_size = 128 * 1024, /* actual page size is 16 */
+ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
+ .tested = TEST_UNTESTED,
+ .probe = probe_jedec_29gl,
+ .probe_timing = TIMING_ZERO,
+ .block_erasers =
+ {
+ {
+ .eraseblocks = {
+ {8 * 1024, 8},
+ {64 * 1024, 127},
+ },
+ .block_erase = erase_sector_jedec,
+ }, {
+ .eraseblocks = { {8 * 1024 * 1024, 1} },
+ .block_erase = erase_chip_block_jedec,
+ },
+ },
+ .write = write_jedec_1,
+ .read = read_memmapped,
+ .voltage = {2700, 3600},
+ },
+
+ {
+ .vendor = "Winbond",
+ .name = "W29GL064CT",
+ .bustype = BUS_PARALLEL,
+ .manufacture_id = AMD_ID, /* WTF: "Industry Standard compatible Manufacturer ID code of 01h" */
+ .model_id = WINBOND_W29GL064CT,
+ .total_size = 8192,
+ .page_size = 128 * 1024, /* actual page size is 16 */
+ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
+ .tested = TEST_UNTESTED,
+ .probe = probe_jedec_29gl,
+ .probe_timing = TIMING_ZERO,
+ .block_erasers =
+ {
+ {
+ .eraseblocks = {
+ {64 * 1024, 127},
+ {8 * 1024, 8},
+ },
+ .block_erase = erase_sector_jedec,
+ }, {
+ .eraseblocks = { {8 * 1024 * 1024, 1} },
+ .block_erase = erase_chip_block_jedec,
+ },
+ },
+ .write = write_jedec_1,
+ .read = read_memmapped,
+ .voltage = {2700, 3600},
+ },
+
+ {
+ .vendor = "Winbond",
+ .name = "W29GL064CH/L",
+ .bustype = BUS_PARALLEL,
+ .manufacture_id = AMD_ID, /* WTF: "Industry Standard compatible Manufacturer ID code of 01h" */
+ .model_id = WINBOND_W29GL064CHL,
+ .total_size = 8192,
+ .page_size = 128 * 1024, /* actual page size is 16 */
+ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
+ .tested = TEST_UNTESTED,
+ .probe = probe_jedec_29gl,
+ .probe_timing = TIMING_ZERO,
+ .block_erasers =
+ {
+ {
+ .eraseblocks = { {64 * 1024, 128} },
+ .block_erase = erase_sector_jedec,
+ }, {
+ .eraseblocks = { {8 * 1024 * 1024, 1} },
+ .block_erase = erase_chip_block_jedec,
+ },
+ },
+ .write = write_jedec_1,
+ .read = read_memmapped,
+ .voltage = {2700, 3600},
+ },
+
+ {
+ .vendor = "Winbond",
+ .name = "W29GL128C",
+ .bustype = BUS_PARALLEL,
+ .manufacture_id = AMD_ID, /* WTF: "Industry Standard compatible Manufacturer ID code of 01h" */
+ .model_id = WINBOND_W29GL128CHL,
+ .total_size = 16384,
+ .page_size = 128 * 1024, /* actual page size is 16 */
+ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
+ .tested = TEST_UNTESTED,
+ .probe = probe_jedec_29gl,
+ .probe_timing = TIMING_ZERO,
+ .block_erasers =
+ {
+ {
+ .eraseblocks = { {128 * 1024, 128} },
+ .block_erase = erase_sector_jedec,
+ }, {
+ .eraseblocks = { {16 * 1024 * 1024, 1} },
+ .block_erase = erase_chip_block_jedec,
+ },
+ },
+ .write = write_jedec_1,
+ .read = read_memmapped,
+ .voltage = {2700, 3600},
+ },
+
+ {
+ .vendor = "Winbond",
.name = "W39F010",
.bustype = BUS_PARALLEL,
.manufacture_id = WINBOND_ID,
@@ -13003,7 +14049,7 @@ const struct flashchip flashchips[] = {
.total_size = 512,
.page_size = 64 * 1024,
.feature_bits = FEATURE_REGISTERMAP | FEATURE_EITHER_RESET,
- .tested = TEST_OK_PREW,
+ .tested = TEST_OK_PR,
.probe = probe_jedec,
.probe_timing = 10,
.block_erasers =
@@ -13020,7 +14066,7 @@ const struct flashchip flashchips[] = {
}
},
.printlock = printlock_w39v040fa,
- .unlock = unlock_sst_fwhub,
+ .unlock = unlock_regspace2_uniform_64k,
.write = write_jedec_1,
.read = read_memmapped,
.voltage = {3000, 3600},
@@ -13035,7 +14081,7 @@ const struct flashchip flashchips[] = {
.total_size = 512,
.page_size = 64 * 1024,
.feature_bits = FEATURE_REGISTERMAP | FEATURE_EITHER_RESET,
- .tested = TEST_OK_PREW,
+ .tested = TEST_OK_PR,
.probe = probe_jedec,
.probe_timing = 10,
.block_erasers =
@@ -13049,7 +14095,7 @@ const struct flashchip flashchips[] = {
}
},
.printlock = printlock_w39v040fb,
- .unlock = unlock_w39v040fb,
+ .unlock = unlock_regspace2_uniform_64k,
.write = write_jedec_1,
.read = read_memmapped,
.voltage = {3000, 3600}, /* Also has 12V fast program */
@@ -13240,13 +14286,13 @@ const struct flashchip flashchips[] = {
.total_size = 1024,
.page_size = 64 * 1024,
.feature_bits = FEATURE_REGISTERMAP | FEATURE_EITHER_RESET,
- .tested = TEST_OK_PREW,
+ .tested = TEST_OK_PR,
.probe = probe_jedec,
.probe_timing = 10,
.block_erasers =
{
{
- .eraseblocks = { {64 * 1024, 16}, },
+ .eraseblocks = { {64 * 1024, 16} },
.block_erase = erase_sector_jedec,
}, {
.eraseblocks = { {1024 * 1024, 1} },
@@ -13254,7 +14300,7 @@ const struct flashchip flashchips[] = {
}
},
.printlock = printlock_w39v080fa,
- .unlock = unlock_w39v080fa,
+ .unlock = unlock_regspace2_uniform_64k,
.write = write_jedec_1,
.read = read_memmapped,
.voltage = {3000, 3600}, /* Also has 12V fast program */
@@ -13275,7 +14321,7 @@ const struct flashchip flashchips[] = {
.block_erasers =
{
{
- .eraseblocks = { {64 * 1024, 8}, },
+ .eraseblocks = { {64 * 1024, 8} },
.block_erase = erase_sector_jedec,
}, {
.eraseblocks = { {512 * 1024, 1} },
diff --git a/resources/flashrom/patch/flashchips.c_lenovobios_macronix b/resources/flashrom/patch/flashchips.c_lenovobios_macronix
index 9a7ec328..b614d7af 100644
--- a/resources/flashrom/patch/flashchips.c_lenovobios_macronix
+++ b/resources/flashrom/patch/flashchips.c_lenovobios_macronix
@@ -1382,7 +1382,7 @@ const struct flashchip flashchips[] = {
.total_size = 512,
.page_size = 64 * 1024,
.feature_bits = FEATURE_REGISTERMAP | FEATURE_EITHER_RESET,
- .tested = TEST_OK_PREW,
+ .tested = TEST_OK_PR,
.probe = probe_jedec,
.probe_timing = TIMING_ZERO, /* routine is wrapper to probe_jedec (pm49fl00x.c) */
.block_erasers =
@@ -1395,7 +1395,7 @@ const struct flashchip flashchips[] = {
.block_erase = erase_chip_block_jedec,
}
},
- .unlock = unlock_49fl00x,
+ .unlock = unlock_regspace2_uniform_64k,
.write = write_jedec_1,
.read = read_memmapped,
.voltage = {3000, 3600},
@@ -1994,7 +1994,7 @@ const struct flashchip flashchips[] = {
.total_size = 512,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
- .tested = TEST_UNTESTED,
+ .tested = TEST_OK_PREW,
.probe = probe_spi_at25f,
.probe_timing = TIMING_ZERO,
.block_erasers =
@@ -2477,7 +2477,7 @@ const struct flashchip flashchips[] = {
/* does not support EWSR nor WREN and has no writable status register bits whatsoever */
/* OTP: 128B total, 64B pre-programmed; read 0x77; write 0x9B */
.feature_bits = FEATURE_OTP,
- .tested = TEST_UNTESTED,
+ .tested = TEST_OK_PREW,
.probe = probe_spi_at45db,
.probe_timing = TIMING_ZERO,
.block_erasers =
@@ -3049,10 +3049,10 @@ const struct flashchip flashchips[] = {
.model_id = ATMEL_AT49LH002,
.total_size = 256,
.page_size = 0, /* unused */
- .feature_bits = FEATURE_REGISTERMAP, /* TODO: LPC OK too? */
+ .feature_bits = FEATURE_REGISTERMAP,
.tested = TEST_UNTESTED,
- .probe = probe_82802ab, /* TODO: 0xff cmd not documented? */
- .probe_timing = TIMING_FIXME,
+ .probe = probe_82802ab,
+ .probe_timing = TIMING_ZERO,
.block_erasers =
{
{
@@ -3062,16 +3062,88 @@ const struct flashchip flashchips[] = {
{8 * 1024, 2},
{16 * 1024, 1},
},
- .block_erase = erase_block_82802ab,
+ .block_erase = NULL, /* TODO: Implement. */
}, {
.eraseblocks = {
{64 * 1024, 4},
},
+ .block_erase = erase_block_82802ab,
+ },
+ },
+ .printlock = printlock_regspace2_block_eraser_0,
+ .unlock = unlock_regspace2_block_eraser_0,
+ .write = write_82802ab,
+ .read = read_memmapped,
+ .voltage = {3000, 3600},
+ },
+
+ {
+ .vendor = "Atmel",
+ .name = "AT49LH00B4",
+ .bustype = BUS_LPC | BUS_FWH, /* A/A Mux */
+ .manufacture_id = ATMEL_ID,
+ .model_id = ATMEL_AT49LH00B4,
+ .total_size = 512,
+ .page_size = 0, /* unused */
+ .feature_bits = FEATURE_REGISTERMAP,
+ .tested = TEST_UNTESTED,
+ .probe = probe_82802ab,
+ .probe_timing = TIMING_ZERO,
+ .block_erasers =
+ {
+ {
+ .eraseblocks = {
+ {8 * 1024, 2},
+ {16 * 1024, 1},
+ {32 * 1024, 1},
+ {64 * 1024, 7},
+ },
+ .block_erase = NULL, /* TODO: Implement. */
+ }, {
+ .eraseblocks = {
+ {64 * 1024, 8},
+ },
+ .block_erase = erase_block_82802ab,
+ },
+ },
+ .printlock = printlock_regspace2_block_eraser_0,
+ .unlock = unlock_regspace2_block_eraser_0,
+ .write = write_82802ab,
+ .read = read_memmapped,
+ .voltage = {3000, 3600},
+ },
+
+ {
+ .vendor = "Atmel",
+ .name = "AT49LH004",
+ .bustype = BUS_LPC | BUS_FWH, /* A/A Mux */
+ .manufacture_id = ATMEL_ID,
+ .model_id = ATMEL_AT49LH004,
+ .total_size = 512,
+ .page_size = 0, /* unused */
+ .feature_bits = FEATURE_REGISTERMAP,
+ .tested = TEST_UNTESTED,
+ .probe = probe_82802ab,
+ .probe_timing = TIMING_ZERO,
+ .block_erasers =
+ {
+ {
+ .eraseblocks = {
+ {64 * 1024, 7},
+ {32 * 1024, 1},
+ {8 * 1024, 2},
+ {16 * 1024, 1},
+ },
+ .block_erase = erase_block_82802ab,
+ }, {
+ .eraseblocks = {
+ {64 * 1024, 8},
+ },
.block_erase = NULL, /* TODO: Implement. */
},
},
- .printlock = NULL, /* TODO */
- .unlock = NULL, /* unlock_82802ab() not correct(?) */
+ .printlock = printlock_regspace2_block_eraser_0,
+ .unlock = unlock_regspace2_block_eraser_0,
.write = write_82802ab,
.read = read_memmapped,
.voltage = {3000, 3600},
@@ -3086,7 +3158,7 @@ const struct flashchip flashchips[] = {
.total_size = 64,
.page_size = 0, /* unused */
.feature_bits = 0,
- .tested = TEST_OK_PR,
+ .tested = {.probe = OK, .read = OK, .erase = BAD, .write = BAD },
.probe = probe_jedec, /* FIXME! */
.probe_timing = TIMING_ZERO,
.block_erasers =
@@ -4797,7 +4869,7 @@ const struct flashchip flashchips[] = {
.model_id = EON_EN29LV640B,
.total_size = 8192,
.page_size = 8192,
- .feature_bits = 0,
+ .feature_bits = FEATURE_ADDR_SHIFTED,
.tested = TEST_OK_PREW,
.probe = probe_en29lv640b,
.probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */
@@ -4808,10 +4880,10 @@ const struct flashchip flashchips[] = {
{8 * 1024, 8},
{64 * 1024, 127},
},
- .block_erase = erase_block_shifted_jedec,
+ .block_erase = erase_block_jedec,
}, {
.eraseblocks = { {8 * 1024 * 1024, 1} },
- .block_erase = erase_chip_block_shifted_jedec,
+ .block_erase = erase_chip_block_jedec,
},
},
.write = write_en29lv640b,
@@ -4820,6 +4892,120 @@ const struct flashchip flashchips[] = {
},
{
+ .vendor = "Eon",
+ .name = "EN29GL064(A)B",
+ .bustype = BUS_PARALLEL,
+ .manufacture_id = EON_ID,
+ .model_id = EON_EN29GL064B,
+ .total_size = 8192,
+ .page_size = 128 * 1024, /* actual page size is 16 */
+ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
+ .tested = TEST_UNTESTED,
+ .probe = probe_jedec_29gl,
+ .probe_timing = TIMING_ZERO,
+ .block_erasers =
+ {
+ {
+ .eraseblocks = {
+ {8 * 1024, 8},
+ {64 * 1024, 127},
+ },
+ .block_erase = erase_sector_jedec,
+ }, {
+ .eraseblocks = { {8 * 1024 * 1024, 1} },
+ .block_erase = erase_chip_block_jedec,
+ },
+ },
+ .write = write_jedec_1,
+ .read = read_memmapped,
+ .voltage = {2700, 3600},
+ },
+
+ {
+ .vendor = "Eon",
+ .name = "EN29GL064(A)T",
+ .bustype = BUS_PARALLEL,
+ .manufacture_id = EON_ID,
+ .model_id = EON_EN29GL064T,
+ .total_size = 8192,
+ .page_size = 128 * 1024, /* actual page size is 16 */
+ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
+ .tested = TEST_UNTESTED,
+ .probe = probe_jedec_29gl,
+ .probe_timing = TIMING_ZERO,
+ .block_erasers =
+ {
+ {
+ .eraseblocks = {
+ {64 * 1024, 127},
+ {8 * 1024, 8},
+ },
+ .block_erase = erase_sector_jedec,
+ }, {
+ .eraseblocks = { {8 * 1024 * 1024, 1} },
+ .block_erase = erase_chip_block_jedec,
+ },
+ },
+ .write = write_jedec_1,
+ .read = read_memmapped,
+ .voltage = {2700, 3600},
+ },
+
+ {
+ .vendor = "Eon",
+ .name = "EN29GL064H/L",
+ .bustype = BUS_PARALLEL,
+ .manufacture_id = EON_ID,
+ .model_id = EON_EN29GL064HL,
+ .total_size = 8192,
+ .page_size = 128 * 1024, /* actual page size is 16 */
+ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
+ .tested = TEST_UNTESTED,
+ .probe = probe_jedec_29gl,
+ .probe_timing = TIMING_ZERO,
+ .block_erasers =
+ {
+ {
+ .eraseblocks = { {64 * 1024, 128} },
+ .block_erase = erase_sector_jedec,
+ }, {
+ .eraseblocks = { {8 * 1024 * 1024, 1} },
+ .block_erase = erase_chip_block_jedec,
+ },
+ },
+ .write = write_jedec_1,
+ .read = read_memmapped,
+ .voltage = {2700, 3600},
+ },
+
+ {
+ .vendor = "Eon",
+ .name = "EN29GL128",
+ .bustype = BUS_PARALLEL,
+ .manufacture_id = EON_ID,
+ .model_id = EON_EN29GL128HL,
+ .total_size = 16384,
+ .page_size = 128 * 1024, /* actual page size is 16 */
+ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
+ .tested = TEST_UNTESTED,
+ .probe = probe_jedec_29gl,
+ .probe_timing = TIMING_ZERO,
+ .block_erasers =
+ {
+ {
+ .eraseblocks = { {128 * 1024, 128} },
+ .block_erase = erase_sector_jedec,
+ }, {
+ .eraseblocks = { {16 * 1024 * 1024, 1} },
+ .block_erase = erase_chip_block_jedec,
+ },
+ },
+ .write = write_jedec_1,
+ .read = read_memmapped,
+ .voltage = {2700, 3600},
+ },
+
+ {
.vendor = "Fujitsu",
.name = "MBM29F004BC",
.bustype = BUS_PARALLEL,
@@ -4892,10 +5078,10 @@ const struct flashchip flashchips[] = {
.model_id = FUJITSU_MBM29F400BC,
.total_size = 512,
.page_size = 64 * 1024,
- .feature_bits = FEATURE_ADDR_SHIFTED | FEATURE_EITHER_RESET,
+ .feature_bits = FEATURE_ADDR_SHIFTED | FEATURE_ADDR_2AA | FEATURE_EITHER_RESET,
.tested = TEST_UNTESTED,
- .probe = probe_m29f400bt,
- .probe_timing = TIMING_IGNORED, /* routine doesn't use probe_timing (m29f400bt.c) */
+ .probe = probe_jedec,
+ .probe_timing = 10, // FIXME: check datasheet. Using the 10 us from probe_m29f400bt
.block_erasers =
{
{
@@ -4905,13 +5091,13 @@ const struct flashchip flashchips[] = {
{32 * 1024, 1},
{64 * 1024, 7},
},
- .block_erase = erase_block_shifted_jedec,
+ .block_erase = erase_sector_jedec,
}, {
.eraseblocks = { {512 * 1024, 1} },
- .block_erase = erase_chip_block_shifted_jedec,
+ .block_erase = erase_chip_block_jedec,
},
},
- .write = write_m29f400bt,
+ .write = write_jedec_1,
.read = read_memmapped,
.voltage = {4750, 5250}, /* 4.75-5.25V for type -55, others 4.5-5.5V */
},
@@ -4924,10 +5110,10 @@ const struct flashchip flashchips[] = {
.model_id = FUJITSU_MBM29F400TC,
.total_size = 512,
.page_size = 64 * 1024,
- .feature_bits = FEATURE_ADDR_SHIFTED | FEATURE_EITHER_RESET,
+ .feature_bits = FEATURE_ADDR_SHIFTED | FEATURE_ADDR_AAA | FEATURE_EITHER_RESET,
.tested = TEST_UNTESTED,
- .probe = probe_m29f400bt,
- .probe_timing = TIMING_IGNORED, /* routine doesn't use probe_timing (m29f400bt.c) */
+ .probe = probe_jedec,
+ .probe_timing = 10, // FIXME: check datasheet. Using the 10 us from probe_m29f400bt
.block_erasers =
{
{
@@ -4937,13 +5123,13 @@ const struct flashchip flashchips[] = {
{8 * 1024, 2},
{16 * 1024, 1},
},
- .block_erase = erase_block_shifted_jedec,
+ .block_erase = erase_sector_jedec,
}, {
.eraseblocks = { {512 * 1024, 1} },
- .block_erase = erase_chip_block_shifted_jedec,
+ .block_erase = erase_chip_block_jedec,
},
},
- .write = write_m29f400bt,
+ .write = write_jedec_1,
.read = read_memmapped,
.voltage = {4750, 5250}, /* 4.75-5.25V for type -55, others 4.5-5.5V */
},
@@ -4958,8 +5144,8 @@ const struct flashchip flashchips[] = {
.page_size = 0,
.feature_bits = FEATURE_ADDR_SHIFTED | FEATURE_SHORT_RESET,
.tested = TEST_UNTESTED,
- .probe = probe_m29f400bt,
- .probe_timing = TIMING_IGNORED,
+ .probe = probe_jedec,
+ .probe_timing = 10, // FIXME: check datasheet. Using the 10 us from probe_m29f400bt
.block_erasers =
{
{
@@ -4969,13 +5155,13 @@ const struct flashchip flashchips[] = {
{32 * 1024, 1},
{64 * 1024, 31},
},
- .block_erase = erase_block_shifted_jedec,
+ .block_erase = erase_block_jedec,
}, {
.eraseblocks = { {2048 * 1024, 1} },
- .block_erase = erase_chip_block_shifted_jedec,
+ .block_erase = erase_chip_block_jedec,
},
},
- .write = write_m29f400bt, /* Supports a fast mode too */
+ .write = write_jedec_1, /* Supports a fast mode too */
.read = read_memmapped,
.voltage = {3000, 3600}, /* 3.0-3.6V for type -70, others 2.7-3.6V */
},
@@ -4990,8 +5176,8 @@ const struct flashchip flashchips[] = {
.page_size = 0,
.feature_bits = FEATURE_ADDR_SHIFTED | FEATURE_SHORT_RESET,
.tested = TEST_UNTESTED,
- .probe = probe_m29f400bt,
- .probe_timing = TIMING_IGNORED,
+ .probe = probe_jedec,
+ .probe_timing = 10, // FIXME: check datasheet. Using the 10 us from probe_m29f400bt
.block_erasers =
{
{
@@ -5001,13 +5187,13 @@ const struct flashchip flashchips[] = {
{8 * 1024, 2},
{16 * 1024, 1},
},
- .block_erase = erase_block_shifted_jedec,
+ .block_erase = erase_block_jedec,
}, {
.eraseblocks = { {2048 * 1024, 1} },
- .block_erase = erase_chip_block_shifted_jedec,
+ .block_erase = erase_chip_block_jedec,
},
},
- .write = write_m29f400bt, /* Supports a fast mode too */
+ .write = write_jedec_1, /* Supports a fast mode too */
.read = read_memmapped,
.voltage = {3000, 3600}, /* 3.0-3.6V for type -70, others 2.7-3.6V */
},
@@ -5247,7 +5433,7 @@ const struct flashchip flashchips[] = {
.page_size = 256,
/* OTP: 1024B total, 256B reserved; read 0x48; write 0x42, erase 0x44 (B version only) */
.feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP,
- .tested = TEST_UNTESTED,
+ .tested = TEST_OK_PREW,
.probe = probe_spi_rdid,
.probe_timing = TIMING_ZERO,
.block_erasers =
@@ -5979,7 +6165,7 @@ const struct flashchip flashchips[] = {
.total_size = 512,
.page_size = 64 * 1024,
.feature_bits = FEATURE_REGISTERMAP,
- .tested = TEST_OK_PREW,
+ .tested = TEST_OK_PR,
.probe = probe_82802ab,
.probe_timing = TIMING_IGNORED, /* routine does not use probe_timing (82802ab.c) */
.block_erasers =
@@ -5989,7 +6175,7 @@ const struct flashchip flashchips[] = {
.block_erase = erase_block_82802ab,
},
},
- .unlock = unlock_82802ab,
+ .unlock = unlock_regspace2_uniform_64k,
.write = write_82802ab,
.read = read_memmapped,
.voltage = {3000, 3600},
@@ -6014,13 +6200,143 @@ const struct flashchip flashchips[] = {
.block_erase = erase_block_82802ab,
},
},
- .unlock = unlock_82802ab,
+ .unlock = unlock_regspace2_uniform_64k,
.write = write_82802ab,
.read = read_memmapped,
.voltage = {3000, 3600},
},
{
+ .vendor = "ISSI",
+ .name = "IS29GL064B",
+ .bustype = BUS_PARALLEL,
+ .manufacture_id = ISSI_ID,
+ .model_id = ISSI_PMC_IS29GL064B,
+ .total_size = 8192,
+ .page_size = 128 * 1024, /* actual page size is 16 */
+ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
+ .tested = TEST_UNTESTED,
+ .probe = probe_jedec_29gl,
+ .probe_timing = TIMING_ZERO,
+ .block_erasers =
+ {
+ {
+ .eraseblocks = {
+ {8 * 1024, 8},
+ {64 * 1024, 127},
+ },
+ .block_erase = erase_sector_jedec,
+ }, {
+ .eraseblocks = { {8 * 1024 * 1024, 1} },
+ .block_erase = erase_chip_block_jedec,
+ },
+ },
+ .write = write_jedec_1,
+ .read = read_memmapped,
+ .voltage = {2700, 3600},
+ },
+
+ {
+ .vendor = "ISSI",
+ .name = "IS29GL064T",
+ .bustype = BUS_PARALLEL,
+ .manufacture_id = ISSI_ID,
+ .model_id = ISSI_PMC_IS29GL064T,
+ .total_size = 8192,
+ .page_size = 128 * 1024, /* actual page size is 16 */
+ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
+ .tested = TEST_UNTESTED,
+ .probe = probe_jedec_29gl,
+ .probe_timing = TIMING_ZERO,
+ .block_erasers =
+ {
+ {
+ .eraseblocks = {
+ {64 * 1024, 127},
+ {8 * 1024, 8},
+ },
+ .block_erase = erase_sector_jedec,
+ }, {
+ .eraseblocks = { {8 * 1024 * 1024, 1} },
+ .block_erase = erase_chip_block_jedec,
+ },
+ },
+ .write = write_jedec_1,
+ .read = read_memmapped,
+ .voltage = {2700, 3600},
+ },
+
+ {
+ .vendor = "ISSI",
+ .name = "IS29GL064H/L",
+ .bustype = BUS_PARALLEL,
+ .manufacture_id = ISSI_ID,
+ .model_id = ISSI_PMC_IS29GL064HL,
+ .total_size = 8192,
+ .page_size = 128 * 1024, /* actual page size is 16 */
+ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
+ .tested = TEST_UNTESTED,
+ .probe = probe_jedec_29gl,
+ .probe_timing = TIMING_ZERO,
+ .block_erasers =
+ {
+ {
+ .eraseblocks = { {64 * 1024, 128} },
+ .block_erase = erase_sector_jedec,
+ }, {
+ .eraseblocks = { {8 * 1024 * 1024, 1} },
+ .block_erase = erase_chip_block_jedec,
+ },
+ },
+ .write = write_jedec_1,
+ .read = read_memmapped,
+ .voltage = {2700, 3600},
+ },
+
+ {
+ .vendor = "ISSI",
+ .name = "IS29GL128H/L",
+ .bustype = BUS_PARALLEL,
+ .manufacture_id = ISSI_ID,
+ .model_id = ISSI_PMC_IS29GL128HL,
+ .total_size = 16384,
+ .page_size = 128 * 1024, /* actual page size is 16 */
+ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
+ .tested = TEST_UNTESTED,
+ .probe = probe_jedec_29gl,
+ .probe_timing = TIMING_ZERO,
+ .block_erasers =
+ {
+ {
+ .eraseblocks = { {128 * 1024, 128} },
+ .block_erase = erase_sector_jedec,
+ }, {
+ .eraseblocks = { {16 * 1024 * 1024, 1} },
+ .block_erase = erase_chip_block_jedec,
+ },
+ },
+ .write = write_jedec_1,
+ .read = read_memmapped,
+ .voltage = {2700, 3600},
+ },
+
+ {
+ .vendor = "Macronix",
+ .name = "MX23L1654",
+ .bustype = BUS_SPI,
+ .manufacture_id = MACRONIX_ID,
+ .model_id = MACRONIX_MX23L1654,
+ .total_size = 2048,
+ .page_size = 256,
+ .tested = {.probe = NT, .read = NT, .erase = NA, .write = NA},
+ .probe = probe_spi_rdid,
+ .probe_timing = TIMING_ZERO,
+ .write = NULL, /* MX23L1654 is a mask ROM, so it is read-only */
+ .read = spi_chip_read, /* Fast read (0x0B) supported */
+ .voltage = {3000, 3600},
+ },
+
+ {
.vendor = "Macronix",
.name = "MX23L3254",
.bustype = BUS_SPI,
@@ -6038,6 +6354,38 @@ const struct flashchip flashchips[] = {
{
.vendor = "Macronix",
+ .name = "MX23L6454",
+ .bustype = BUS_SPI,
+ .manufacture_id = MACRONIX_ID,
+ .model_id = MACRONIX_MX23L6454,
+ .total_size = 8192,
+ .page_size = 256,
+ .tested = {.probe = NT, .read = NT, .erase = NA, .write = NA},
+ .probe = probe_spi_rdid,
+ .probe_timing = TIMING_ZERO,
+ .write = NULL, /* MX23L6454 is a mask ROM, so it is read-only */
+ .read = spi_chip_read, /* Fast read (0x0B) supported */
+ .voltage = {3000, 3600},
+ },
+
+ {
+ .vendor = "Macronix",
+ .name = "MX23L12854",
+ .bustype = BUS_SPI,
+ .manufacture_id = MACRONIX_ID,
+ .model_id = MACRONIX_MX23L12854,
+ .total_size = 16384,
+ .page_size = 256,
+ .tested = {.probe = NT, .read = NT, .erase = NA, .write = NA},
+ .probe = probe_spi_rdid,
+ .probe_timing = TIMING_ZERO,
+ .write = NULL, /* MX23L12854 is a mask ROM, so it is read-only */
+ .read = spi_chip_read, /* Fast read (0x0B) supported */
+ .voltage = {3000, 3600},
+ },
+
+ {
+ .vendor = "Macronix",
.name = "MX25L512(E)/MX25V512(C)",
.bustype = BUS_SPI,
.manufacture_id = MACRONIX_ID,
@@ -6327,7 +6675,7 @@ const struct flashchip flashchips[] = {
.block_erase = spi_block_erase_c7,
},
},
- .printlock = spi_prettyprint_status_register_bp3_srwd, /* bit6: Continously Program (CP) mode */
+ .printlock = spi_prettyprint_status_register_bp3_srwd, /* bit6: Continuously Program (CP) mode */
.unlock = spi_disable_blockprotect,
.write = spi_chip_write_1,
.read = spi_chip_read, /* Fast read (0x0B), dual I/O supported */
@@ -6866,6 +7214,46 @@ const struct flashchip flashchips[] = {
{
.vendor = "Macronix",
+ .name = "MX25U12835F",
+ .bustype = BUS_SPI,
+ .manufacture_id = MACRONIX_ID,
+ .model_id = MACRONIX_MX25U12835E,
+ .total_size = 16384,
+ .page_size = 256,
+ /* OTP: 512B total; enter 0xB1, exit 0xC1 */
+ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_QPI,
+ .tested = TEST_UNTESTED,
+ .probe = probe_spi_rdid,
+ .probe_timing = TIMING_ZERO,
+ .block_erasers =
+ {
+ {
+ .eraseblocks = { {4 * 1024, 4096} },
+ .block_erase = spi_block_erase_20,
+ }, {
+ .eraseblocks = { {32 * 1024, 512} },
+ .block_erase = spi_block_erase_52,
+ }, {
+ .eraseblocks = { {64 * 1024, 256} },
+ .block_erase = spi_block_erase_d8,
+ }, {
+ .eraseblocks = { {16 * 1024 * 1024, 1} },
+ .block_erase = spi_block_erase_60,
+ }, {
+ .eraseblocks = { {16 * 1024 * 1024, 1} },
+ .block_erase = spi_block_erase_c7,
+ }
+ },
+ /* TODO: security register */
+ .printlock = spi_prettyprint_status_register_bp3_srwd, /* bit6 is quad enable */
+ .unlock = spi_disable_blockprotect_bp3_srwd,
+ .write = spi_chip_write_256, /* Multi I/O supported */
+ .read = spi_chip_read, /* Fast read (0x0B) and multi I/O supported */
+ .voltage = {1650, 2000},
+ },
+
+ {
+ .vendor = "Macronix",
.name = "MX29F001B",
.bustype = BUS_PARALLEL,
.manufacture_id = MACRONIX_ID,
@@ -6996,6 +7384,70 @@ const struct flashchip flashchips[] = {
{
.vendor = "Macronix",
+ .name = "MX29F022(N)B",
+ .bustype = BUS_PARALLEL,
+ .manufacture_id = MACRONIX_ID,
+ .model_id = MACRONIX_MX29F022B,
+ .total_size = 256,
+ .page_size = 0, /* unused */
+ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
+ .tested = TEST_UNTESTED,
+ .probe = probe_jedec,
+ .probe_timing = TIMING_ZERO,
+ .block_erasers =
+ {
+ {
+ .eraseblocks = {
+ {16 * 1024, 1},
+ {8 * 1024, 2},
+ {32 * 1024, 1},
+ {64 * 1024, 3},
+ },
+ .block_erase = erase_sector_jedec,
+ }, {
+ .eraseblocks = { {256 * 1024, 1} },
+ .block_erase = erase_chip_block_jedec,
+ }
+ },
+ .write = write_jedec_1,
+ .read = read_memmapped,
+ .voltage = {4500, 5500},
+ },
+
+ {
+ .vendor = "Macronix",
+ .name = "MX29F022(N)T",
+ .bustype = BUS_PARALLEL,
+ .manufacture_id = MACRONIX_ID,
+ .model_id = MACRONIX_MX29F022T,
+ .total_size = 256,
+ .page_size = 0, /* unused */
+ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
+ .tested = TEST_OK_PREW,
+ .probe = probe_jedec,
+ .probe_timing = TIMING_ZERO,
+ .block_erasers =
+ {
+ {
+ .eraseblocks = {
+ {64 * 1024, 3},
+ {32 * 1024, 1},
+ {8 * 1024, 2},
+ {16 * 1024, 1},
+ },
+ .block_erase = erase_sector_jedec,
+ }, {
+ .eraseblocks = { {256 * 1024, 1} },
+ .block_erase = erase_chip_block_jedec,
+ }
+ },
+ .write = write_jedec_1,
+ .read = read_memmapped,
+ .voltage = {4500, 5500},
+ },
+
+ {
+ .vendor = "Macronix",
.name = "MX29F040",
.bustype = BUS_PARALLEL,
.manufacture_id = MACRONIX_ID,
@@ -7023,6 +7475,207 @@ const struct flashchip flashchips[] = {
{
.vendor = "Macronix",
+ .name = "MX29GL320EB",
+ .bustype = BUS_PARALLEL,
+ .manufacture_id = MACRONIX_ID,
+ .model_id = MACRONIX_MX29GL320EB,
+ .total_size = 4096,
+ .page_size = 128 * 1024, /* actual page size is 16 */
+ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
+ .tested = TEST_UNTESTED,
+ .probe = probe_jedec_29gl,
+ .probe_timing = TIMING_ZERO,
+ .block_erasers =
+ {
+ {
+ .eraseblocks = {
+ {8 * 1024, 8},
+ {64 * 1024, 63},
+ },
+ .block_erase = erase_sector_jedec,
+ }, {
+ .eraseblocks = { {4 * 1024 * 1024, 1} },
+ .block_erase = erase_chip_block_jedec,
+ },
+ },
+ .write = write_jedec_1,
+ .read = read_memmapped,
+ .voltage = {2700, 3600},
+ },
+
+ {
+ .vendor = "Macronix",
+ .name = "MX29GL320ET",
+ .bustype = BUS_PARALLEL,
+ .manufacture_id = MACRONIX_ID,
+ .model_id = MACRONIX_MX29GL320ET,
+ .total_size = 4096,
+ .page_size = 128 * 1024, /* actual page size is 16 */
+ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
+ .tested = TEST_UNTESTED,
+ .probe = probe_jedec_29gl,
+ .probe_timing = TIMING_ZERO,
+ .block_erasers =
+ {
+ {
+ .eraseblocks = {
+ {64 * 1024, 63},
+ {8 * 1024, 8},
+ },
+ .block_erase = erase_sector_jedec,
+ }, {
+ .eraseblocks = { {4 * 1024 * 1024, 1} },
+ .block_erase = erase_chip_block_jedec,
+ },
+ },
+ .write = write_jedec_1,
+ .read = read_memmapped,
+ .voltage = {2700, 3600},
+ },
+
+ {
+ .vendor = "Macronix",
+ .name = "MX29GL320EH/L",
+ .bustype = BUS_PARALLEL,
+ .manufacture_id = MACRONIX_ID,
+ .model_id = MACRONIX_MX29GL320EHL,
+ .total_size = 4096,
+ .page_size = 128 * 1024, /* actual page size is 16 */
+ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
+ .tested = TEST_UNTESTED,
+ .probe = probe_jedec_29gl,
+ .probe_timing = TIMING_ZERO,
+ .block_erasers =
+ {
+ {
+ .eraseblocks = { {64 * 1024, 64} },
+ .block_erase = erase_sector_jedec,
+ }, {
+ .eraseblocks = { {4 * 1024 * 1024, 1} },
+ .block_erase = erase_chip_block_jedec,
+ },
+ },
+ .write = write_jedec_1,
+ .read = read_memmapped,
+ .voltage = {2700, 3600},
+ },
+
+ {
+ .vendor = "Macronix",
+ .name = "MX29GL640EB",
+ .bustype = BUS_PARALLEL,
+ .manufacture_id = MACRONIX_ID,
+ .model_id = MACRONIX_MX29GL640EB,
+ .total_size = 8192,
+ .page_size = 128 * 1024, /* actual page size is 16 */
+ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
+ .tested = TEST_UNTESTED,
+ .probe = probe_jedec_29gl,
+ .probe_timing = TIMING_ZERO,
+ .block_erasers =
+ {
+ {
+ .eraseblocks = {
+ {8 * 1024, 8},
+ {64 * 1024, 127},
+ },
+ .block_erase = erase_sector_jedec,
+ }, {
+ .eraseblocks = { {8 * 1024 * 1024, 1} },
+ .block_erase = erase_chip_block_jedec,
+ },
+ },
+ .write = write_jedec_1,
+ .read = read_memmapped,
+ .voltage = {2700, 3600},
+ },
+
+ {
+ .vendor = "Macronix",
+ .name = "MX29GL640ET",
+ .bustype = BUS_PARALLEL,
+ .manufacture_id = MACRONIX_ID,
+ .model_id = MACRONIX_MX29GL640ET,
+ .total_size = 8192,
+ .page_size = 128 * 1024, /* actual page size is 16 */
+ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
+ .tested = TEST_UNTESTED,
+ .probe = probe_jedec_29gl,
+ .probe_timing = TIMING_ZERO,
+ .block_erasers =
+ {
+ {
+ .eraseblocks = {
+ {64 * 1024, 127},
+ {8 * 1024, 8},
+ },
+ .block_erase = erase_sector_jedec,
+ }, {
+ .eraseblocks = { {8 * 1024 * 1024, 1} },
+ .block_erase = erase_chip_block_jedec,
+ },
+ },
+ .write = write_jedec_1,
+ .read = read_memmapped,
+ .voltage = {2700, 3600},
+ },
+
+ {
+ .vendor = "Macronix",
+ .name = "MX29GL640EH/L",
+ .bustype = BUS_PARALLEL,
+ .manufacture_id = MACRONIX_ID,
+ .model_id = MACRONIX_MX29GL640EHL,
+ .total_size = 8192,
+ .page_size = 128 * 1024, /* actual page size is 16 */
+ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
+ .tested = TEST_UNTESTED,
+ .probe = probe_jedec_29gl,
+ .probe_timing = TIMING_ZERO,
+ .block_erasers =
+ {
+ {
+ .eraseblocks = { {64 * 1024, 128} },
+ .block_erase = erase_sector_jedec,
+ }, {
+ .eraseblocks = { {8 * 1024 * 1024, 1} },
+ .block_erase = erase_chip_block_jedec,
+ },
+ },
+ .write = write_jedec_1,
+ .read = read_memmapped,
+ .voltage = {2700, 3600},
+ },
+
+ {
+ .vendor = "Macronix",
+ .name = "MX29GL128F",
+ .bustype = BUS_PARALLEL,
+ .manufacture_id = MACRONIX_ID,
+ .model_id = MACRONIX_MX29GL128F,
+ .total_size = 16384,
+ .page_size = 128 * 1024, /* actual page size is 16 */
+ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
+ .tested = TEST_UNTESTED,
+ .probe = probe_jedec_29gl,
+ .probe_timing = TIMING_ZERO,
+ .block_erasers =
+ {
+ {
+ .eraseblocks = { {128 * 1024, 128} },
+ .block_erase = erase_sector_jedec,
+ }, {
+ .eraseblocks = { {16 * 1024 * 1024, 1} },
+ .block_erase = erase_chip_block_jedec,
+ },
+ },
+ .write = write_jedec_1,
+ .read = read_memmapped,
+ .voltage = {2700, 3600},
+ },
+
+ {
+ .vendor = "Macronix",
.name = "MX29LV040",
.bustype = BUS_PARALLEL,
.manufacture_id = MACRONIX_ID,
@@ -7036,7 +7689,7 @@ const struct flashchip flashchips[] = {
.block_erasers =
{
{
- .eraseblocks = { {64 * 1024, 8}, },
+ .eraseblocks = { {64 * 1024, 8} },
.block_erase = erase_sector_jedec,
}, {
.eraseblocks = { {512 * 1024, 1} },
@@ -9098,7 +9751,7 @@ const struct flashchip flashchips[] = {
.total_size = 256,
.page_size = 16 * 1024,
.feature_bits = FEATURE_REGISTERMAP | FEATURE_EITHER_RESET,
- .tested = TEST_OK_PREW,
+ .tested = TEST_OK_PR,
.probe = probe_jedec,
.probe_timing = TIMING_ZERO, /* routine is wrapper to probe_jedec (pm49fl00x.c) */
.block_erasers =
@@ -9114,7 +9767,7 @@ const struct flashchip flashchips[] = {
.block_erase = erase_chip_block_jedec,
}
},
- .unlock = unlock_49fl00x,
+ .unlock = unlock_regspace2_uniform_32k,
.write = write_jedec_1,
.read = read_memmapped,
.voltage = {3000, 3600},
@@ -9129,7 +9782,7 @@ const struct flashchip flashchips[] = {
.total_size = 512,
.page_size = 64 * 1024,
.feature_bits = FEATURE_REGISTERMAP | FEATURE_EITHER_RESET,
- .tested = TEST_OK_PREW,
+ .tested = TEST_OK_PR,
.probe = probe_jedec,
.probe_timing = TIMING_ZERO, /* routine is wrapper to probe_jedec (pm49fl00x.c) */
.block_erasers =
@@ -9145,7 +9798,7 @@ const struct flashchip flashchips[] = {
.block_erase = erase_chip_block_jedec,
}
},
- .unlock = unlock_49fl00x,
+ .unlock = unlock_regspace2_uniform_64k,
.write = write_jedec_1,
.read = read_memmapped,
.voltage = {3000, 3600},
@@ -9458,7 +10111,7 @@ const struct flashchip flashchips[] = {
.block_erase = NULL, /* 30 D0, only in A/A mux mode */
},
},
- .unlock = unlock_82802ab,
+ .unlock = unlock_regspace2_uniform_64k,
.write = write_82802ab,
.read = read_memmapped,
.voltage = {3000, 3600},
@@ -9637,9 +10290,9 @@ const struct flashchip flashchips[] = {
}
},
.printlock = spi_prettyprint_status_register_bp3_srwd,
- .unlock = spi_disable_blockprotect_bp3_srwd, /* #WP pin write-protects SRWP bit. */
+ .unlock = spi_disable_blockprotect_bp3_srwd, /* #WP pin write-protects SRWP bit. */
.write = spi_chip_write_256,
- .read = spi_chip_read, /* Fast read (0x0B), dual I/O (0x3B) supported */
+ .read = spi_chip_read, /* Fast read (0x0B) and dual I/O (0x3B) supported */
.voltage = {2700, 3600},
},
@@ -9671,15 +10324,15 @@ const struct flashchip flashchips[] = {
}
},
.printlock = spi_prettyprint_status_register_bp3_srwd,
- .unlock = spi_disable_blockprotect_bp3_srwd, /* #WP pin write-protects SRWP bit. */
+ .unlock = spi_disable_blockprotect_bp3_srwd, /* #WP pin write-protects SRWP bit. */
.write = spi_chip_write_256,
- .read = spi_chip_read, /* Fast read (0x0B), dual I/O (0x3B) supported */
+ .read = spi_chip_read, /* Fast read (0x0B) and dual I/O (0x3B) supported */
.voltage = {2700, 3600},
},
{
.vendor = "Spansion",
- .name = "S25FL116K/S25FL216K",
+ .name = "S25FL116K/S25FL216K", /* FIXME: separate them */
.bustype = BUS_SPI,
.manufacture_id = SPANSION_ID,
.model_id = SPANSION_S25FL216,
@@ -9706,9 +10359,9 @@ const struct flashchip flashchips[] = {
}
},
.printlock = spi_prettyprint_status_register_bp3_srwd,
- .unlock = spi_disable_blockprotect_bp3_srwd, /* #WP pin write-protects SRWP bit. */
+ .unlock = spi_disable_blockprotect_bp3_srwd, /* #WP pin write-protects SRWP bit. */
.write = spi_chip_write_256,
- .read = spi_chip_read, /* Fast read (0x0B), dual I/O (0x3B) supported */
+ .read = spi_chip_read, /* Fast read (0x0B) and dual I/O (0x3B) supported */
.voltage = {2700, 3600},
},
@@ -9784,7 +10437,69 @@ const struct flashchip flashchips[] = {
{
.vendor = "Spansion",
- .name = "S25FL128S......0", /* uniform 256kB sectors */
+ .name = "S25FL128P......0", /* uniform 64 kB sectors */
+ .bustype = BUS_SPI,
+ .manufacture_id = SPANSION_ID,
+ .model_id = SPANSION_S25FL128,
+ .total_size = 16384,
+ .page_size = 256,
+ .feature_bits = FEATURE_WRSR_WREN,
+ .tested = TEST_UNTESTED,
+ .probe = probe_spi_rdid,
+ .probe_timing = TIMING_ZERO,
+ .block_erasers = {
+ {
+ .eraseblocks = { {64 * 1024, 256} },
+ .block_erase = spi_block_erase_20,
+ }, {
+ .eraseblocks = { {64 * 1024, 256} },
+ .block_erase = spi_block_erase_d8,
+ }, {
+ .eraseblocks = { { 16384 * 1024, 1} },
+ .block_erase = spi_block_erase_60,
+ }, {
+ .eraseblocks = { { 16384 * 1024, 1} },
+ .block_erase = spi_block_erase_c7,
+ }
+ },
+ .printlock = spi_prettyprint_status_register_bp3_srwd,
+ .unlock = spi_disable_blockprotect_bp3_srwd,
+ .write = spi_chip_write_256,
+ .read = spi_chip_read, /* Fast read (0x0B) supported */
+ .voltage = {2700, 3600},
+ },
+
+ {
+ .vendor = "Spansion",
+ .name = "S25FL128P......1", /* uniform 256kB sectors */
+ .bustype = BUS_SPI,
+ .manufacture_id = SPANSION_ID,
+ .model_id = SPANSION_S25FL128,
+ .total_size = 16384,
+ .page_size = 256,
+ .feature_bits = FEATURE_WRSR_WREN,
+ .tested = TEST_UNTESTED,
+ .probe = probe_spi_rdid,
+ .probe_timing = TIMING_ZERO,
+ .block_erasers = {
+ {
+ .eraseblocks = { {256 * 1024, 64} },
+ .block_erase = spi_block_erase_d8,
+ }, {
+ .eraseblocks = { { 16384 * 1024, 1} },
+ .block_erase = spi_block_erase_c7,
+ }
+ },
+ .printlock = spi_prettyprint_status_register_bp2_srwd,
+ .unlock = spi_disable_blockprotect_bp2_srwd,
+ .write = spi_chip_write_256,
+ .read = spi_chip_read, /* Fast read (0x0B) supported */
+ .voltage = {2700, 3600},
+ },
+
+ {
+ .vendor = "Spansion",
+ .name = "S25FL128S......0", /* hybrid: 32 (top or bottom) 4 kB sub-sectors + 64 kB sectors */
.bustype = BUS_SPI,
.manufacture_id = SPANSION_ID,
.model_id = SPANSION_S25FL128,
@@ -9798,9 +10513,48 @@ const struct flashchip flashchips[] = {
.probe_timing = TIMING_ZERO,
.block_erasers = {
{
- .eraseblocks = { {4 * 1024, 4096} },
+ /* This chip supports erasing of the 32 so-called "parameter sectors" with
+ * opcode 0x20. Trying to access an address outside these 4kB blocks does
+ * have no effect on the memory contents, but sets a flag in the SR.
+ .eraseblocks = {
+ {4 * 1024, 32},
+ {64 * 1024, 254} // inaccessible
+ },
.block_erase = spi_block_erase_20,
+ }, { */
+ .eraseblocks = { { 64 * 1024, 256} },
+ .block_erase = spi_block_erase_d8,
+ }, {
+ .eraseblocks = { { 16384 * 1024, 1} },
+ .block_erase = spi_block_erase_60,
}, {
+ .eraseblocks = { { 16384 * 1024, 1} },
+ .block_erase = spi_block_erase_c7,
+ }
+ },
+ .printlock = spi_prettyprint_status_register_bp2_ep_srwd, /* TODO: SR2 and many others */
+ .unlock = spi_disable_blockprotect_bp2_srwd, /* TODO: various other locks */
+ .write = spi_chip_write_256, /* Multi I/O supported */
+ .read = spi_chip_read, /* Fast read (0x0B) and multi I/O supported */
+ .voltage = {2700, 3600},
+ },
+
+ {
+ .vendor = "Spansion",
+ .name = "S25FL128S......1", /* uniform 256 kB sectors */
+ .bustype = BUS_SPI,
+ .manufacture_id = SPANSION_ID,
+ .model_id = SPANSION_S25FL128,
+ .total_size = 16384,
+ .page_size = 512,
+ /* supports 4B addressing */
+ /* OTP: 1024B total, 32B reserved; read 0x4B; write 0x42 */
+ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP,
+ .tested = TEST_UNTESTED,
+ .probe = probe_spi_rdid,
+ .probe_timing = TIMING_ZERO,
+ .block_erasers = {
+ {
.eraseblocks = { {256 * 1024, 64} },
.block_erase = spi_block_erase_d8,
}, {
@@ -9819,6 +10573,86 @@ const struct flashchip flashchips[] = {
},
{
+ .vendor = "Spansion",
+ .name = "S25FL129P......0", /* hybrid: 32 (top or bottom) 4 kB sub-sectors + 64 kB sectors */
+ .bustype = BUS_SPI,
+ .manufacture_id = SPANSION_ID,
+ .model_id = SPANSION_S25FL128,
+ .total_size = 16384,
+ .page_size = 256,
+ /* OTP: 506B total, 16B reserved; read 0x4B; write 0x42 */
+ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP,
+ .tested = TEST_OK_PREW,
+ .probe = probe_spi_rdid,
+ .probe_timing = TIMING_ZERO,
+ .block_erasers = {
+ {
+ /* FIXME: This chip supports erasing of the 32 so-called "parameter sectors" with
+ * opcode 0x20. Trying to access an address outside these 4kB blocks does have no
+ * effect on the memory contents, but sets a flag in the SR.
+ .eraseblocks = {
+ {4 * 1024, 32},
+ {64 * 1024, 254} // inaccessible
+ },
+ .block_erase = spi_block_erase_20,
+ }, { */
+ /* FIXME: Additionally it also supports erase opcode 40h for the respective 2*4 kB pairs
+ .eraseblocks = {
+ {8 * 1024, 16},
+ {64 * 1024, 254} // inaccessible
+ },
+ .block_erase = spi_block_erase_40,
+ }, { */
+ .eraseblocks = { { 64 * 1024, 256} },
+ .block_erase = spi_block_erase_d8,
+ }, {
+ .eraseblocks = { { 16384 * 1024, 1} },
+ .block_erase = spi_block_erase_60,
+ }, {
+ .eraseblocks = { { 16384 * 1024, 1} },
+ .block_erase = spi_block_erase_c7,
+ }
+ },
+ .printlock = spi_prettyprint_status_register_bp2_ep_srwd, /* TODO: Configuration register */
+ .unlock = spi_disable_blockprotect_bp2_srwd,
+ .write = spi_chip_write_256, /* Multi I/O supported */
+ .read = spi_chip_read, /* Fast read (0x0B) and multi I/O supported */
+ .voltage = {2700, 3600},
+ },
+
+ {
+ .vendor = "Spansion",
+ .name = "S25FL129P......1", /* uniform 256 kB sectors */
+ .bustype = BUS_SPI,
+ .manufacture_id = SPANSION_ID,
+ .model_id = SPANSION_S25FL128,
+ .total_size = 16384,
+ .page_size = 512,
+ /* OTP: 506B total, 16B reserved; read 0x4B; write 0x42 */
+ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP,
+ .tested = TEST_UNTESTED,
+ .probe = probe_spi_rdid,
+ .probe_timing = TIMING_ZERO,
+ .block_erasers = {
+ {
+ .eraseblocks = { {256 * 1024, 64} },
+ .block_erase = spi_block_erase_d8,
+ }, {
+ .eraseblocks = { { 16384 * 1024, 1} },
+ .block_erase = spi_block_erase_60,
+ }, {
+ .eraseblocks = { { 16384 * 1024, 1} },
+ .block_erase = spi_block_erase_c7,
+ }
+ },
+ .printlock = spi_prettyprint_status_register_bp2_ep_srwd, /* TODO: Configuration register */
+ .unlock = spi_disable_blockprotect_bp2_srwd,
+ .write = spi_chip_write_256, /* Multi I/O supported */
+ .read = spi_chip_read, /* Fast read (0x0B) and multi I/O supported */
+ .voltage = {2700, 3600},
+ },
+
+ {
.vendor = "SST",
.name = "SST25LF020A",
.bustype = BUS_SPI,
@@ -9916,10 +10750,10 @@ const struct flashchip flashchips[] = {
{
.vendor = "SST",
- .name = "SST25VF512A",
+ .name = "SST25VF512(A)",
.bustype = BUS_SPI,
.manufacture_id = SST_ID,
- .model_id = SST_SST25VF512A_REMS,
+ .model_id = SST_SST25VF512_REMS,
.total_size = 64,
.page_size = 256,
.feature_bits = FEATURE_WRSR_EWSR,
@@ -9936,25 +10770,25 @@ const struct flashchip flashchips[] = {
.block_erase = spi_block_erase_52,
}, {
.eraseblocks = { {32 * 1024, 2} },
- .block_erase = spi_block_erase_d8,
+ .block_erase = spi_block_erase_d8, /* Supported by SST25VF512A only */
}, {
.eraseblocks = { {64 * 1024, 1} },
.block_erase = spi_block_erase_60,
}, {
.eraseblocks = { {64 * 1024, 1} },
- .block_erase = spi_block_erase_c7,
+ .block_erase = spi_block_erase_c7, /* Supported by SST25VF512A only */
},
},
.printlock = spi_prettyprint_status_register_sst25, /* FIXME: No BP2 & 3 */
.unlock = spi_disable_blockprotect,
.write = spi_chip_write_1, /* AAI supported, but opcode is 0xAF */
- .read = spi_chip_read, /* Fast read (0x0B) supported */
+ .read = spi_chip_read, /* Fast read (0x0B) supported by SST25VF512A only */
.voltage = {2700, 3600},
},
{
.vendor = "SST",
- .name = "SST25VF010",
+ .name = "SST25VF010(A)",
.bustype = BUS_SPI,
.manufacture_id = SST_ID,
.model_id = SST_SST25VF010_REMS,
@@ -9974,19 +10808,19 @@ const struct flashchip flashchips[] = {
.block_erase = spi_block_erase_52,
}, {
.eraseblocks = { {32 * 1024, 4} },
- .block_erase = spi_block_erase_d8,
+ .block_erase = spi_block_erase_d8, /* Supported by SST25VF010A only */
}, {
.eraseblocks = { {128 * 1024, 1} },
.block_erase = spi_block_erase_60,
}, {
.eraseblocks = { {128 * 1024, 1} },
- .block_erase = spi_block_erase_c7,
+ .block_erase = spi_block_erase_c7, /* Supported by SST25VF010A only */
},
},
.printlock = spi_prettyprint_status_register_sst25, /* FIXME: No BP2 & 3 */
.unlock = spi_disable_blockprotect,
.write = spi_chip_write_1, /* AAI supported, but opcode is 0xAF */
- .read = spi_chip_read, /* Fast read (0x0B) supported */
+ .read = spi_chip_read, /* Fast read (0x0B) supported by SST25VF010A only */
.voltage = {2700, 3600},
},
@@ -11000,7 +11834,8 @@ const struct flashchip flashchips[] = {
.block_erase = erase_block_82802ab,
}
},
- .unlock = unlock_49lfxxxc,
+ .printlock = printlock_regspace2_block_eraser_1,
+ .unlock = unlock_regspace2_block_eraser_1,
.write = write_82802ab,
.read = read_memmapped,
.voltage = {3000, 3600},
@@ -11065,7 +11900,8 @@ const struct flashchip flashchips[] = {
.block_erase = erase_block_82802ab,
}
},
- .unlock = unlock_49lfxxxc,
+ .printlock = printlock_regspace2_block_eraser_1,
+ .unlock = unlock_regspace2_block_eraser_1,
.write = write_82802ab,
.read = read_memmapped,
.voltage = {3000, 3600},
@@ -11080,7 +11916,7 @@ const struct flashchip flashchips[] = {
.total_size = 2048,
.page_size = 4 * 1024,
.feature_bits = FEATURE_REGISTERMAP,
- .tested = TEST_OK_PREW,
+ .tested = TEST_OK_PR,
.probe = probe_82802ab,
.probe_timing = TIMING_IGNORED, /* routine doesn't use probe_timing (sst49lfxxxc.c) */
.block_erasers =
@@ -11098,7 +11934,8 @@ const struct flashchip flashchips[] = {
.block_erase = erase_block_82802ab,
}
},
- .unlock = unlock_49lfxxxc,
+ .printlock = printlock_regspace2_block_eraser_1,
+ .unlock = unlock_regspace2_block_eraser_1,
.write = write_82802ab,
.read = read_memmapped,
.voltage = {3000, 3600},
@@ -11203,7 +12040,7 @@ const struct flashchip flashchips[] = {
.total_size = 512,
.page_size = 64 * 1024,
.feature_bits = FEATURE_EITHER_RESET | FEATURE_REGISTERMAP,
- .tested = TEST_OK_PREW,
+ .tested = TEST_OK_PR,
.probe = probe_jedec,
.probe_timing = 1, /* 150ns */
.block_erasers =
@@ -11219,7 +12056,7 @@ const struct flashchip flashchips[] = {
.block_erase = NULL,
}
},
- .unlock = unlock_82802ab,
+ .unlock = unlock_regspace2_uniform_64k,
.write = write_jedec_1,
.read = read_memmapped,
.voltage = {3000, 3600},
@@ -11264,7 +12101,7 @@ const struct flashchip flashchips[] = {
.total_size = 2048,
.page_size = 4 * 1024,
.feature_bits = FEATURE_REGISTERMAP,
- .tested = TEST_OK_PRE,
+ .tested = TEST_OK_PR,
.probe = probe_82802ab,
.probe_timing = TIMING_IGNORED, /* routine doesn't use probe_timing (sst49lfxxxc.c) */
.block_erasers =
@@ -11282,7 +12119,8 @@ const struct flashchip flashchips[] = {
.block_erase = erase_block_82802ab,
}
},
- .unlock = unlock_49lfxxxc,
+ .printlock = printlock_regspace2_block_eraser_1,
+ .unlock = unlock_regspace2_block_eraser_1,
.write = write_82802ab,
.read = read_memmapped,
.voltage = {3000, 3600},
@@ -11367,7 +12205,7 @@ const struct flashchip flashchips[] = {
.block_erasers =
{
{
- .eraseblocks = { {64 * 1024, 8}, },
+ .eraseblocks = { {64 * 1024, 8} },
.block_erase = erase_sector_jedec,
}, {
.eraseblocks = { {512 * 1024, 1} },
@@ -11388,10 +12226,10 @@ const struct flashchip flashchips[] = {
.model_id = ST_M29F400BB,
.total_size = 512,
.page_size = 64 * 1024,
- .feature_bits = FEATURE_ADDR_SHIFTED | FEATURE_EITHER_RESET,
+ .feature_bits = FEATURE_ADDR_SHIFTED | FEATURE_ADDR_2AA | FEATURE_EITHER_RESET,
.tested = TEST_UNTESTED,
- .probe = probe_m29f400bt,
- .probe_timing = TIMING_IGNORED, /* routine doesn't use probe_timing (m29f400bt.c) */
+ .probe = probe_jedec,
+ .probe_timing = 10, // FIXME: check datasheet. Using the 10 us from probe_m29f400bt
.block_erasers =
{
{
@@ -11401,13 +12239,13 @@ const struct flashchip flashchips[] = {
{32 * 1024, 1},
{64 * 1024, 7},
},
- .block_erase = erase_block_shifted_jedec,
+ .block_erase = erase_sector_jedec,
}, {
.eraseblocks = { {512 * 1024, 1} },
- .block_erase = erase_chip_block_shifted_jedec,
+ .block_erase = erase_chip_block_jedec,
}
},
- .write = write_m29f400bt,
+ .write = write_jedec_1,
.read = read_memmapped,
.voltage = {4500, 5500},
},
@@ -11420,10 +12258,10 @@ const struct flashchip flashchips[] = {
.model_id = ST_M29F400BT,
.total_size = 512,
.page_size = 64 * 1024,
- .feature_bits = FEATURE_ADDR_SHIFTED | FEATURE_EITHER_RESET,
+ .feature_bits = FEATURE_ADDR_SHIFTED | FEATURE_ADDR_2AA | FEATURE_EITHER_RESET,
.tested = TEST_UNTESTED,
- .probe = probe_m29f400bt,
- .probe_timing = TIMING_IGNORED, /* routine doesn't use probe_timing (m29f400bt.c) */
+ .probe = probe_jedec,
+ .probe_timing = 10, // FIXME: check datasheet. Using the 10 us from probe_m29f400bt
.block_erasers =
{
{
@@ -11433,13 +12271,13 @@ const struct flashchip flashchips[] = {
{8 * 1024, 2},
{16 * 1024, 1},
},
- .block_erase = erase_block_shifted_jedec,
+ .block_erase = erase_sector_jedec,
}, {
.eraseblocks = { {512 * 1024, 1} },
- .block_erase = erase_chip_block_shifted_jedec,
+ .block_erase = erase_chip_block_jedec,
}
},
- .write = write_m29f400bt,
+ .write = write_jedec_1,
.read = read_memmapped,
.voltage = {4500, 5500},
},
@@ -11459,7 +12297,7 @@ const struct flashchip flashchips[] = {
.block_erasers =
{
{
- .eraseblocks = { {16 * 1024, 8}, },
+ .eraseblocks = { {16 * 1024, 8} },
.block_erase = erase_sector_jedec,
}, {
.eraseblocks = { {128 * 1024, 1} },
@@ -11486,7 +12324,7 @@ const struct flashchip flashchips[] = {
.block_erasers =
{
{
- .eraseblocks = { {64 * 1024, 8}, },
+ .eraseblocks = { {64 * 1024, 8} },
.block_erase = erase_sector_jedec,
}, {
.eraseblocks = { {512 * 1024, 1} },
@@ -11545,12 +12383,12 @@ const struct flashchip flashchips[] = {
},
.block_erase = erase_sector_stm50,
}, {
- .eraseblocks = { {64 * 1024, 8}, },
+ .eraseblocks = { {64 * 1024, 8} },
.block_erase = erase_block_82802ab,
}
},
.write = write_82802ab,
- .unlock = unlock_stm50_uniform,
+ .unlock = unlock_regspace2_uniform_64k,
.read = read_memmapped,
.voltage = {3000, 3600}, /* Also has 12V fast program & erase */
},
@@ -11578,12 +12416,12 @@ const struct flashchip flashchips[] = {
},
.block_erase = erase_sector_stm50,
}, {
- .eraseblocks = { {64 * 1024, 8}, },
+ .eraseblocks = { {64 * 1024, 8} },
.block_erase = erase_block_82802ab,
}
},
.write = write_82802ab,
- .unlock = unlock_stm50_uniform,
+ .unlock = unlock_regspace2_uniform_64k,
.read = read_memmapped,
.voltage = {3000, 3600}, /* Also has 12V fast program & erase */
},
@@ -11597,7 +12435,7 @@ const struct flashchip flashchips[] = {
.total_size = 1024,
.page_size = 0,
.feature_bits = FEATURE_REGISTERMAP,
- .tested = TEST_OK_PRE,
+ .tested = TEST_OK_PR,
.probe = probe_82802ab,
.probe_timing = TIMING_FIXME,
.block_erasers =
@@ -11611,11 +12449,12 @@ const struct flashchip flashchips[] = {
},
.block_erase = erase_sector_stm50,
}, {
- .eraseblocks = { {64 * 1024, 16}, },
+ .eraseblocks = { {64 * 1024, 16} },
.block_erase = erase_block_82802ab,
}
},
- .unlock = unlock_stm50_nonuniform,
+ .printlock = printlock_regspace2_block_eraser_0,
+ .unlock = unlock_regspace2_block_eraser_0,
.write = write_82802ab,
.read = read_memmapped,
.voltage = {3000, 3600}, /* Also has 12V fast program & erase */
@@ -11644,11 +12483,12 @@ const struct flashchip flashchips[] = {
},
.block_erase = erase_sector_stm50,
}, {
- .eraseblocks = { {64 * 1024, 16}, },
+ .eraseblocks = { {64 * 1024, 16} },
.block_erase = erase_block_82802ab,
}
},
- .unlock = unlock_stm50_nonuniform,
+ .printlock = printlock_regspace2_block_eraser_0,
+ .unlock = unlock_regspace2_block_eraser_0,
.write = write_82802ab,
.read = read_memmapped,
.voltage = {3000, 3600}, /* Also has 12V fast program & erase */
@@ -11663,9 +12503,9 @@ const struct flashchip flashchips[] = {
.total_size = 256,
.page_size = 0,
.feature_bits = FEATURE_REGISTERMAP,
- .tested = TEST_UNTESTED,
+ .tested = TEST_OK_PR,
.probe = probe_82802ab,
- .probe_timing = TIMING_IGNORED, /* routine doesn't use probe_timing (sst49lfxxxc.c) */
+ .probe_timing = TIMING_IGNORED, /* routine doesn't use probe_timing (82802ab.c) */
.block_erasers =
{
{
@@ -11676,9 +12516,13 @@ const struct flashchip flashchips[] = {
{16 * 1024, 1},
},
.block_erase = erase_block_82802ab,
+ }, {
+ .eraseblocks = { {256 * 1024, 1}, },
+ .block_erase = NULL, /* Only in A/A mux mode */
}
},
- .unlock = unlock_stm50_nonuniform,
+ .printlock = printlock_regspace2_block_eraser_0,
+ .unlock = unlock_regspace2_block_eraser_0,
.write = write_82802ab,
.read = read_memmapped,
.voltage = {3000, 3600}, /* Also has 12V fast program & erase */
@@ -11699,11 +12543,11 @@ const struct flashchip flashchips[] = {
.block_erasers =
{
{
- .eraseblocks = { {64 * 1024, 32}, },
+ .eraseblocks = { {64 * 1024, 32} },
.block_erase = erase_block_82802ab,
}
},
- .unlock = unlock_stm50_uniform,
+ .unlock = unlock_regspace2_uniform_64k,
.write = write_82802ab,
.read = read_memmapped,
.voltage = {3000, 3600}, /* Also has 12V fast program & erase */
@@ -11724,11 +12568,11 @@ const struct flashchip flashchips[] = {
.block_erasers =
{
{
- .eraseblocks = { {64 * 1024, 8}, },
+ .eraseblocks = { {64 * 1024, 8} },
.block_erase = erase_block_82802ab,
}
},
- .unlock = unlock_stm50_uniform,
+ .unlock = unlock_regspace2_uniform_64k,
.write = write_82802ab,
.read = read_memmapped,
.voltage = {3000, 3600}, /* Also has 12V fast program & erase */
@@ -11743,17 +12587,17 @@ const struct flashchip flashchips[] = {
.total_size = 1024,
.page_size = 0,
.feature_bits = FEATURE_REGISTERMAP,
- .tested = TEST_OK_PREW,
+ .tested = TEST_OK_PR,
.probe = probe_82802ab,
.probe_timing = TIMING_IGNORED, /* routine doesn't use probe_timing (82802ab.c) */
.block_erasers =
{
{
- .eraseblocks = { {64 * 1024, 16}, },
+ .eraseblocks = { {64 * 1024, 16} },
.block_erase = erase_block_82802ab,
}
},
- .unlock = unlock_stm50_uniform,
+ .unlock = unlock_regspace2_uniform_64k,
.write = write_82802ab,
.read = read_memmapped,
.voltage = {3000, 3600}, /* Also has 12V fast program & erase */
@@ -11774,11 +12618,11 @@ const struct flashchip flashchips[] = {
.block_erasers =
{
{
- .eraseblocks = { {64 * 1024, 16}, },
+ .eraseblocks = { {64 * 1024, 16} },
.block_erase = erase_block_82802ab,
}
},
- .unlock = unlock_stm50_uniform,
+ .unlock = unlock_regspace2_uniform_64k,
.write = write_82802ab,
.read = read_memmapped,
.voltage = {3000, 3600}, /* Also has 12V fast program & erase */
@@ -11809,7 +12653,8 @@ const struct flashchip flashchips[] = {
.block_erase = erase_block_82802ab,
}
},
- .unlock = unlock_stm50_nonuniform,
+ .printlock = printlock_regspace2_block_eraser_0,
+ .unlock = unlock_regspace2_block_eraser_0,
.write = write_82802ab,
.read = read_memmapped,
.voltage = {3000, 3600}, /* Also has 12V fast program & erase */
@@ -12868,6 +13713,207 @@ const struct flashchip flashchips[] = {
{
.vendor = "Winbond",
+ .name = "W29GL032CB",
+ .bustype = BUS_PARALLEL,
+ .manufacture_id = AMD_ID, /* WTF: "Industry Standard compatible Manufacturer ID code of 01h" */
+ .model_id = WINBOND_W29GL032CB,
+ .total_size = 4096,
+ .page_size = 128 * 1024, /* actual page size is 16 */
+ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
+ .tested = TEST_UNTESTED,
+ .probe = probe_jedec_29gl,
+ .probe_timing = TIMING_ZERO,
+ .block_erasers =
+ {
+ {
+ .eraseblocks = {
+ {8 * 1024, 8},
+ {64 * 1024, 63},
+ },
+ .block_erase = erase_sector_jedec,
+ }, {
+ .eraseblocks = { {4 * 1024 * 1024, 1} },
+ .block_erase = erase_chip_block_jedec,
+ },
+ },
+ .write = write_jedec_1,
+ .read = read_memmapped,
+ .voltage = {2700, 3600},
+ },
+
+ {
+ .vendor = "Winbond",
+ .name = "W29GL032CT",
+ .bustype = BUS_PARALLEL,
+ .manufacture_id = AMD_ID, /* WTF: "Industry Standard compatible Manufacturer ID code of 01h" */
+ .model_id = WINBOND_W29GL032CT,
+ .total_size = 4096,
+ .page_size = 128 * 1024, /* actual page size is 16 */
+ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
+ .tested = TEST_UNTESTED,
+ .probe = probe_jedec_29gl,
+ .probe_timing = TIMING_ZERO,
+ .block_erasers =
+ {
+ {
+ .eraseblocks = {
+ {64 * 1024, 63},
+ {8 * 1024, 8},
+ },
+ .block_erase = erase_sector_jedec,
+ }, {
+ .eraseblocks = { {4 * 1024 * 1024, 1} },
+ .block_erase = erase_chip_block_jedec,
+ },
+ },
+ .write = write_jedec_1,
+ .read = read_memmapped,
+ .voltage = {2700, 3600},
+ },
+
+ {
+ .vendor = "Winbond",
+ .name = "W29GL032CH/L",
+ .bustype = BUS_PARALLEL,
+ .manufacture_id = AMD_ID, /* WTF: "Industry Standard compatible Manufacturer ID code of 01h" */
+ .model_id = WINBOND_W29GL032CHL,
+ .total_size = 4096,
+ .page_size = 128 * 1024, /* actual page size is 16 */
+ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
+ .tested = TEST_UNTESTED,
+ .probe = probe_jedec_29gl,
+ .probe_timing = TIMING_ZERO,
+ .block_erasers =
+ {
+ {
+ .eraseblocks = { {64 * 1024, 64} },
+ .block_erase = erase_sector_jedec,
+ }, {
+ .eraseblocks = { {4 * 1024 * 1024, 1} },
+ .block_erase = erase_chip_block_jedec,
+ },
+ },
+ .write = write_jedec_1,
+ .read = read_memmapped,
+ .voltage = {2700, 3600},
+ },
+
+ {
+ .vendor = "Winbond",
+ .name = "W29GL064CB",
+ .bustype = BUS_PARALLEL,
+ .manufacture_id = AMD_ID, /* WTF: "Industry Standard compatible Manufacturer ID code of 01h" */
+ .model_id = WINBOND_W29GL064CB,
+ .total_size = 8192,
+ .page_size = 128 * 1024, /* actual page size is 16 */
+ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
+ .tested = TEST_UNTESTED,
+ .probe = probe_jedec_29gl,
+ .probe_timing = TIMING_ZERO,
+ .block_erasers =
+ {
+ {
+ .eraseblocks = {
+ {8 * 1024, 8},
+ {64 * 1024, 127},
+ },
+ .block_erase = erase_sector_jedec,
+ }, {
+ .eraseblocks = { {8 * 1024 * 1024, 1} },
+ .block_erase = erase_chip_block_jedec,
+ },
+ },
+ .write = write_jedec_1,
+ .read = read_memmapped,
+ .voltage = {2700, 3600},
+ },
+
+ {
+ .vendor = "Winbond",
+ .name = "W29GL064CT",
+ .bustype = BUS_PARALLEL,
+ .manufacture_id = AMD_ID, /* WTF: "Industry Standard compatible Manufacturer ID code of 01h" */
+ .model_id = WINBOND_W29GL064CT,
+ .total_size = 8192,
+ .page_size = 128 * 1024, /* actual page size is 16 */
+ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
+ .tested = TEST_UNTESTED,
+ .probe = probe_jedec_29gl,
+ .probe_timing = TIMING_ZERO,
+ .block_erasers =
+ {
+ {
+ .eraseblocks = {
+ {64 * 1024, 127},
+ {8 * 1024, 8},
+ },
+ .block_erase = erase_sector_jedec,
+ }, {
+ .eraseblocks = { {8 * 1024 * 1024, 1} },
+ .block_erase = erase_chip_block_jedec,
+ },
+ },
+ .write = write_jedec_1,
+ .read = read_memmapped,
+ .voltage = {2700, 3600},
+ },
+
+ {
+ .vendor = "Winbond",
+ .name = "W29GL064CH/L",
+ .bustype = BUS_PARALLEL,
+ .manufacture_id = AMD_ID, /* WTF: "Industry Standard compatible Manufacturer ID code of 01h" */
+ .model_id = WINBOND_W29GL064CHL,
+ .total_size = 8192,
+ .page_size = 128 * 1024, /* actual page size is 16 */
+ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
+ .tested = TEST_UNTESTED,
+ .probe = probe_jedec_29gl,
+ .probe_timing = TIMING_ZERO,
+ .block_erasers =
+ {
+ {
+ .eraseblocks = { {64 * 1024, 128} },
+ .block_erase = erase_sector_jedec,
+ }, {
+ .eraseblocks = { {8 * 1024 * 1024, 1} },
+ .block_erase = erase_chip_block_jedec,
+ },
+ },
+ .write = write_jedec_1,
+ .read = read_memmapped,
+ .voltage = {2700, 3600},
+ },
+
+ {
+ .vendor = "Winbond",
+ .name = "W29GL128C",
+ .bustype = BUS_PARALLEL,
+ .manufacture_id = AMD_ID, /* WTF: "Industry Standard compatible Manufacturer ID code of 01h" */
+ .model_id = WINBOND_W29GL128CHL,
+ .total_size = 16384,
+ .page_size = 128 * 1024, /* actual page size is 16 */
+ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
+ .tested = TEST_UNTESTED,
+ .probe = probe_jedec_29gl,
+ .probe_timing = TIMING_ZERO,
+ .block_erasers =
+ {
+ {
+ .eraseblocks = { {128 * 1024, 128} },
+ .block_erase = erase_sector_jedec,
+ }, {
+ .eraseblocks = { {16 * 1024 * 1024, 1} },
+ .block_erase = erase_chip_block_jedec,
+ },
+ },
+ .write = write_jedec_1,
+ .read = read_memmapped,
+ .voltage = {2700, 3600},
+ },
+
+ {
+ .vendor = "Winbond",
.name = "W39F010",
.bustype = BUS_PARALLEL,
.manufacture_id = WINBOND_ID,
@@ -13077,7 +14123,7 @@ const struct flashchip flashchips[] = {
.total_size = 512,
.page_size = 64 * 1024,
.feature_bits = FEATURE_REGISTERMAP | FEATURE_EITHER_RESET,
- .tested = TEST_OK_PREW,
+ .tested = TEST_OK_PR,
.probe = probe_jedec,
.probe_timing = 10,
.block_erasers =
@@ -13094,7 +14140,7 @@ const struct flashchip flashchips[] = {
}
},
.printlock = printlock_w39v040fa,
- .unlock = unlock_sst_fwhub,
+ .unlock = unlock_regspace2_uniform_64k,
.write = write_jedec_1,
.read = read_memmapped,
.voltage = {3000, 3600},
@@ -13109,7 +14155,7 @@ const struct flashchip flashchips[] = {
.total_size = 512,
.page_size = 64 * 1024,
.feature_bits = FEATURE_REGISTERMAP | FEATURE_EITHER_RESET,
- .tested = TEST_OK_PREW,
+ .tested = TEST_OK_PR,
.probe = probe_jedec,
.probe_timing = 10,
.block_erasers =
@@ -13123,7 +14169,7 @@ const struct flashchip flashchips[] = {
}
},
.printlock = printlock_w39v040fb,
- .unlock = unlock_w39v040fb,
+ .unlock = unlock_regspace2_uniform_64k,
.write = write_jedec_1,
.read = read_memmapped,
.voltage = {3000, 3600}, /* Also has 12V fast program */
@@ -13314,13 +14360,13 @@ const struct flashchip flashchips[] = {
.total_size = 1024,
.page_size = 64 * 1024,
.feature_bits = FEATURE_REGISTERMAP | FEATURE_EITHER_RESET,
- .tested = TEST_OK_PREW,
+ .tested = TEST_OK_PR,
.probe = probe_jedec,
.probe_timing = 10,
.block_erasers =
{
{
- .eraseblocks = { {64 * 1024, 16}, },
+ .eraseblocks = { {64 * 1024, 16} },
.block_erase = erase_sector_jedec,
}, {
.eraseblocks = { {1024 * 1024, 1} },
@@ -13328,7 +14374,7 @@ const struct flashchip flashchips[] = {
}
},
.printlock = printlock_w39v080fa,
- .unlock = unlock_w39v080fa,
+ .unlock = unlock_regspace2_uniform_64k,
.write = write_jedec_1,
.read = read_memmapped,
.voltage = {3000, 3600}, /* Also has 12V fast program */
@@ -13349,7 +14395,7 @@ const struct flashchip flashchips[] = {
.block_erasers =
{
{
- .eraseblocks = { {64 * 1024, 8}, },
+ .eraseblocks = { {64 * 1024, 8} },
.block_erase = erase_sector_jedec,
}, {
.eraseblocks = { {512 * 1024, 1} },
diff --git a/resources/flashrom/patch/flashchips.c_lenovobios_sst b/resources/flashrom/patch/flashchips.c_lenovobios_sst
index cdb65f1d..df3c8537 100644
--- a/resources/flashrom/patch/flashchips.c_lenovobios_sst
+++ b/resources/flashrom/patch/flashchips.c_lenovobios_sst
@@ -1382,7 +1382,7 @@ const struct flashchip flashchips[] = {
.total_size = 512,
.page_size = 64 * 1024,
.feature_bits = FEATURE_REGISTERMAP | FEATURE_EITHER_RESET,
- .tested = TEST_OK_PREW,
+ .tested = TEST_OK_PR,
.probe = probe_jedec,
.probe_timing = TIMING_ZERO, /* routine is wrapper to probe_jedec (pm49fl00x.c) */
.block_erasers =
@@ -1395,7 +1395,7 @@ const struct flashchip flashchips[] = {
.block_erase = erase_chip_block_jedec,
}
},
- .unlock = unlock_49fl00x,
+ .unlock = unlock_regspace2_uniform_64k,
.write = write_jedec_1,
.read = read_memmapped,
.voltage = {3000, 3600},
@@ -1994,7 +1994,7 @@ const struct flashchip flashchips[] = {
.total_size = 512,
.page_size = 256,
.feature_bits = FEATURE_WRSR_WREN,
- .tested = TEST_UNTESTED,
+ .tested = TEST_OK_PREW,
.probe = probe_spi_at25f,
.probe_timing = TIMING_ZERO,
.block_erasers =
@@ -2477,7 +2477,7 @@ const struct flashchip flashchips[] = {
/* does not support EWSR nor WREN and has no writable status register bits whatsoever */
/* OTP: 128B total, 64B pre-programmed; read 0x77; write 0x9B */
.feature_bits = FEATURE_OTP,
- .tested = TEST_UNTESTED,
+ .tested = TEST_OK_PREW,
.probe = probe_spi_at45db,
.probe_timing = TIMING_ZERO,
.block_erasers =
@@ -3049,10 +3049,10 @@ const struct flashchip flashchips[] = {
.model_id = ATMEL_AT49LH002,
.total_size = 256,
.page_size = 0, /* unused */
- .feature_bits = FEATURE_REGISTERMAP, /* TODO: LPC OK too? */
+ .feature_bits = FEATURE_REGISTERMAP,
.tested = TEST_UNTESTED,
- .probe = probe_82802ab, /* TODO: 0xff cmd not documented? */
- .probe_timing = TIMING_FIXME,
+ .probe = probe_82802ab,
+ .probe_timing = TIMING_ZERO,
.block_erasers =
{
{
@@ -3062,16 +3062,88 @@ const struct flashchip flashchips[] = {
{8 * 1024, 2},
{16 * 1024, 1},
},
- .block_erase = erase_block_82802ab,
+ .block_erase = NULL, /* TODO: Implement. */
}, {
.eraseblocks = {
{64 * 1024, 4},
},
+ .block_erase = erase_block_82802ab,
+ },
+ },
+ .printlock = printlock_regspace2_block_eraser_0,
+ .unlock = unlock_regspace2_block_eraser_0,
+ .write = write_82802ab,
+ .read = read_memmapped,
+ .voltage = {3000, 3600},
+ },
+
+ {
+ .vendor = "Atmel",
+ .name = "AT49LH00B4",
+ .bustype = BUS_LPC | BUS_FWH, /* A/A Mux */
+ .manufacture_id = ATMEL_ID,
+ .model_id = ATMEL_AT49LH00B4,
+ .total_size = 512,
+ .page_size = 0, /* unused */
+ .feature_bits = FEATURE_REGISTERMAP,
+ .tested = TEST_UNTESTED,
+ .probe = probe_82802ab,
+ .probe_timing = TIMING_ZERO,
+ .block_erasers =
+ {
+ {
+ .eraseblocks = {
+ {8 * 1024, 2},
+ {16 * 1024, 1},
+ {32 * 1024, 1},
+ {64 * 1024, 7},
+ },
+ .block_erase = NULL, /* TODO: Implement. */
+ }, {
+ .eraseblocks = {
+ {64 * 1024, 8},
+ },
+ .block_erase = erase_block_82802ab,
+ },
+ },
+ .printlock = printlock_regspace2_block_eraser_0,
+ .unlock = unlock_regspace2_block_eraser_0,
+ .write = write_82802ab,
+ .read = read_memmapped,
+ .voltage = {3000, 3600},
+ },
+
+ {
+ .vendor = "Atmel",
+ .name = "AT49LH004",
+ .bustype = BUS_LPC | BUS_FWH, /* A/A Mux */
+ .manufacture_id = ATMEL_ID,
+ .model_id = ATMEL_AT49LH004,
+ .total_size = 512,
+ .page_size = 0, /* unused */
+ .feature_bits = FEATURE_REGISTERMAP,
+ .tested = TEST_UNTESTED,
+ .probe = probe_82802ab,
+ .probe_timing = TIMING_ZERO,
+ .block_erasers =
+ {
+ {
+ .eraseblocks = {
+ {64 * 1024, 7},
+ {32 * 1024, 1},
+ {8 * 1024, 2},
+ {16 * 1024, 1},
+ },
+ .block_erase = erase_block_82802ab,
+ }, {
+ .eraseblocks = {
+ {64 * 1024, 8},
+ },
.block_erase = NULL, /* TODO: Implement. */
},
},
- .printlock = NULL, /* TODO */
- .unlock = NULL, /* unlock_82802ab() not correct(?) */
+ .printlock = printlock_regspace2_block_eraser_0,
+ .unlock = unlock_regspace2_block_eraser_0,
.write = write_82802ab,
.read = read_memmapped,
.voltage = {3000, 3600},
@@ -3086,7 +3158,7 @@ const struct flashchip flashchips[] = {
.total_size = 64,
.page_size = 0, /* unused */
.feature_bits = 0,
- .tested = TEST_OK_PR,
+ .tested = {.probe = OK, .read = OK, .erase = BAD, .write = BAD },
.probe = probe_jedec, /* FIXME! */
.probe_timing = TIMING_ZERO,
.block_erasers =
@@ -4797,7 +4869,7 @@ const struct flashchip flashchips[] = {
.model_id = EON_EN29LV640B,
.total_size = 8192,
.page_size = 8192,
- .feature_bits = 0,
+ .feature_bits = FEATURE_ADDR_SHIFTED,
.tested = TEST_OK_PREW,
.probe = probe_en29lv640b,
.probe_timing = TIMING_ZERO, /* Datasheet has no timing info specified */
@@ -4808,10 +4880,10 @@ const struct flashchip flashchips[] = {
{8 * 1024, 8},
{64 * 1024, 127},
},
- .block_erase = erase_block_shifted_jedec,
+ .block_erase = erase_block_jedec,
}, {
.eraseblocks = { {8 * 1024 * 1024, 1} },
- .block_erase = erase_chip_block_shifted_jedec,
+ .block_erase = erase_chip_block_jedec,
},
},
.write = write_en29lv640b,
@@ -4820,6 +4892,120 @@ const struct flashchip flashchips[] = {
},
{
+ .vendor = "Eon",
+ .name = "EN29GL064(A)B",
+ .bustype = BUS_PARALLEL,
+ .manufacture_id = EON_ID,
+ .model_id = EON_EN29GL064B,
+ .total_size = 8192,
+ .page_size = 128 * 1024, /* actual page size is 16 */
+ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
+ .tested = TEST_UNTESTED,
+ .probe = probe_jedec_29gl,
+ .probe_timing = TIMING_ZERO,
+ .block_erasers =
+ {
+ {
+ .eraseblocks = {
+ {8 * 1024, 8},
+ {64 * 1024, 127},
+ },
+ .block_erase = erase_sector_jedec,
+ }, {
+ .eraseblocks = { {8 * 1024 * 1024, 1} },
+ .block_erase = erase_chip_block_jedec,
+ },
+ },
+ .write = write_jedec_1,
+ .read = read_memmapped,
+ .voltage = {2700, 3600},
+ },
+
+ {
+ .vendor = "Eon",
+ .name = "EN29GL064(A)T",
+ .bustype = BUS_PARALLEL,
+ .manufacture_id = EON_ID,
+ .model_id = EON_EN29GL064T,
+ .total_size = 8192,
+ .page_size = 128 * 1024, /* actual page size is 16 */
+ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
+ .tested = TEST_UNTESTED,
+ .probe = probe_jedec_29gl,
+ .probe_timing = TIMING_ZERO,
+ .block_erasers =
+ {
+ {
+ .eraseblocks = {
+ {64 * 1024, 127},
+ {8 * 1024, 8},
+ },
+ .block_erase = erase_sector_jedec,
+ }, {
+ .eraseblocks = { {8 * 1024 * 1024, 1} },
+ .block_erase = erase_chip_block_jedec,
+ },
+ },
+ .write = write_jedec_1,
+ .read = read_memmapped,
+ .voltage = {2700, 3600},
+ },
+
+ {
+ .vendor = "Eon",
+ .name = "EN29GL064H/L",
+ .bustype = BUS_PARALLEL,
+ .manufacture_id = EON_ID,
+ .model_id = EON_EN29GL064HL,
+ .total_size = 8192,
+ .page_size = 128 * 1024, /* actual page size is 16 */
+ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
+ .tested = TEST_UNTESTED,
+ .probe = probe_jedec_29gl,
+ .probe_timing = TIMING_ZERO,
+ .block_erasers =
+ {
+ {
+ .eraseblocks = { {64 * 1024, 128} },
+ .block_erase = erase_sector_jedec,
+ }, {
+ .eraseblocks = { {8 * 1024 * 1024, 1} },
+ .block_erase = erase_chip_block_jedec,
+ },
+ },
+ .write = write_jedec_1,
+ .read = read_memmapped,
+ .voltage = {2700, 3600},
+ },
+
+ {
+ .vendor = "Eon",
+ .name = "EN29GL128",
+ .bustype = BUS_PARALLEL,
+ .manufacture_id = EON_ID,
+ .model_id = EON_EN29GL128HL,
+ .total_size = 16384,
+ .page_size = 128 * 1024, /* actual page size is 16 */
+ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
+ .tested = TEST_UNTESTED,
+ .probe = probe_jedec_29gl,
+ .probe_timing = TIMING_ZERO,
+ .block_erasers =
+ {
+ {
+ .eraseblocks = { {128 * 1024, 128} },
+ .block_erase = erase_sector_jedec,
+ }, {
+ .eraseblocks = { {16 * 1024 * 1024, 1} },
+ .block_erase = erase_chip_block_jedec,
+ },
+ },
+ .write = write_jedec_1,
+ .read = read_memmapped,
+ .voltage = {2700, 3600},
+ },
+
+ {
.vendor = "Fujitsu",
.name = "MBM29F004BC",
.bustype = BUS_PARALLEL,
@@ -4892,10 +5078,10 @@ const struct flashchip flashchips[] = {
.model_id = FUJITSU_MBM29F400BC,
.total_size = 512,
.page_size = 64 * 1024,
- .feature_bits = FEATURE_ADDR_SHIFTED | FEATURE_EITHER_RESET,
+ .feature_bits = FEATURE_ADDR_SHIFTED | FEATURE_ADDR_2AA | FEATURE_EITHER_RESET,
.tested = TEST_UNTESTED,
- .probe = probe_m29f400bt,
- .probe_timing = TIMING_IGNORED, /* routine doesn't use probe_timing (m29f400bt.c) */
+ .probe = probe_jedec,
+ .probe_timing = 10, // FIXME: check datasheet. Using the 10 us from probe_m29f400bt
.block_erasers =
{
{
@@ -4905,13 +5091,13 @@ const struct flashchip flashchips[] = {
{32 * 1024, 1},
{64 * 1024, 7},
},
- .block_erase = erase_block_shifted_jedec,
+ .block_erase = erase_sector_jedec,
}, {
.eraseblocks = { {512 * 1024, 1} },
- .block_erase = erase_chip_block_shifted_jedec,
+ .block_erase = erase_chip_block_jedec,
},
},
- .write = write_m29f400bt,
+ .write = write_jedec_1,
.read = read_memmapped,
.voltage = {4750, 5250}, /* 4.75-5.25V for type -55, others 4.5-5.5V */
},
@@ -4924,10 +5110,10 @@ const struct flashchip flashchips[] = {
.model_id = FUJITSU_MBM29F400TC,
.total_size = 512,
.page_size = 64 * 1024,
- .feature_bits = FEATURE_ADDR_SHIFTED | FEATURE_EITHER_RESET,
+ .feature_bits = FEATURE_ADDR_SHIFTED | FEATURE_ADDR_AAA | FEATURE_EITHER_RESET,
.tested = TEST_UNTESTED,
- .probe = probe_m29f400bt,
- .probe_timing = TIMING_IGNORED, /* routine doesn't use probe_timing (m29f400bt.c) */
+ .probe = probe_jedec,
+ .probe_timing = 10, // FIXME: check datasheet. Using the 10 us from probe_m29f400bt
.block_erasers =
{
{
@@ -4937,13 +5123,13 @@ const struct flashchip flashchips[] = {
{8 * 1024, 2},
{16 * 1024, 1},
},
- .block_erase = erase_block_shifted_jedec,
+ .block_erase = erase_sector_jedec,
}, {
.eraseblocks = { {512 * 1024, 1} },
- .block_erase = erase_chip_block_shifted_jedec,
+ .block_erase = erase_chip_block_jedec,
},
},
- .write = write_m29f400bt,
+ .write = write_jedec_1,
.read = read_memmapped,
.voltage = {4750, 5250}, /* 4.75-5.25V for type -55, others 4.5-5.5V */
},
@@ -4958,8 +5144,8 @@ const struct flashchip flashchips[] = {
.page_size = 0,
.feature_bits = FEATURE_ADDR_SHIFTED | FEATURE_SHORT_RESET,
.tested = TEST_UNTESTED,
- .probe = probe_m29f400bt,
- .probe_timing = TIMING_IGNORED,
+ .probe = probe_jedec,
+ .probe_timing = 10, // FIXME: check datasheet. Using the 10 us from probe_m29f400bt
.block_erasers =
{
{
@@ -4969,13 +5155,13 @@ const struct flashchip flashchips[] = {
{32 * 1024, 1},
{64 * 1024, 31},
},
- .block_erase = erase_block_shifted_jedec,
+ .block_erase = erase_block_jedec,
}, {
.eraseblocks = { {2048 * 1024, 1} },
- .block_erase = erase_chip_block_shifted_jedec,
+ .block_erase = erase_chip_block_jedec,
},
},
- .write = write_m29f400bt, /* Supports a fast mode too */
+ .write = write_jedec_1, /* Supports a fast mode too */
.read = read_memmapped,
.voltage = {3000, 3600}, /* 3.0-3.6V for type -70, others 2.7-3.6V */
},
@@ -4990,8 +5176,8 @@ const struct flashchip flashchips[] = {
.page_size = 0,
.feature_bits = FEATURE_ADDR_SHIFTED | FEATURE_SHORT_RESET,
.tested = TEST_UNTESTED,
- .probe = probe_m29f400bt,
- .probe_timing = TIMING_IGNORED,
+ .probe = probe_jedec,
+ .probe_timing = 10, // FIXME: check datasheet. Using the 10 us from probe_m29f400bt
.block_erasers =
{
{
@@ -5001,13 +5187,13 @@ const struct flashchip flashchips[] = {
{8 * 1024, 2},
{16 * 1024, 1},
},
- .block_erase = erase_block_shifted_jedec,
+ .block_erase = erase_block_jedec,
}, {
.eraseblocks = { {2048 * 1024, 1} },
- .block_erase = erase_chip_block_shifted_jedec,
+ .block_erase = erase_chip_block_jedec,
},
},
- .write = write_m29f400bt, /* Supports a fast mode too */
+ .write = write_jedec_1, /* Supports a fast mode too */
.read = read_memmapped,
.voltage = {3000, 3600}, /* 3.0-3.6V for type -70, others 2.7-3.6V */
},
@@ -5247,7 +5433,7 @@ const struct flashchip flashchips[] = {
.page_size = 256,
/* OTP: 1024B total, 256B reserved; read 0x48; write 0x42, erase 0x44 (B version only) */
.feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP,
- .tested = TEST_UNTESTED,
+ .tested = TEST_OK_PREW,
.probe = probe_spi_rdid,
.probe_timing = TIMING_ZERO,
.block_erasers =
@@ -5979,7 +6165,7 @@ const struct flashchip flashchips[] = {
.total_size = 512,
.page_size = 64 * 1024,
.feature_bits = FEATURE_REGISTERMAP,
- .tested = TEST_OK_PREW,
+ .tested = TEST_OK_PR,
.probe = probe_82802ab,
.probe_timing = TIMING_IGNORED, /* routine does not use probe_timing (82802ab.c) */
.block_erasers =
@@ -5989,7 +6175,7 @@ const struct flashchip flashchips[] = {
.block_erase = erase_block_82802ab,
},
},
- .unlock = unlock_82802ab,
+ .unlock = unlock_regspace2_uniform_64k,
.write = write_82802ab,
.read = read_memmapped,
.voltage = {3000, 3600},
@@ -6014,13 +6200,143 @@ const struct flashchip flashchips[] = {
.block_erase = erase_block_82802ab,
},
},
- .unlock = unlock_82802ab,
+ .unlock = unlock_regspace2_uniform_64k,
.write = write_82802ab,
.read = read_memmapped,
.voltage = {3000, 3600},
},
{
+ .vendor = "ISSI",
+ .name = "IS29GL064B",
+ .bustype = BUS_PARALLEL,
+ .manufacture_id = ISSI_ID,
+ .model_id = ISSI_PMC_IS29GL064B,
+ .total_size = 8192,
+ .page_size = 128 * 1024, /* actual page size is 16 */
+ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
+ .tested = TEST_UNTESTED,
+ .probe = probe_jedec_29gl,
+ .probe_timing = TIMING_ZERO,
+ .block_erasers =
+ {
+ {
+ .eraseblocks = {
+ {8 * 1024, 8},
+ {64 * 1024, 127},
+ },
+ .block_erase = erase_sector_jedec,
+ }, {
+ .eraseblocks = { {8 * 1024 * 1024, 1} },
+ .block_erase = erase_chip_block_jedec,
+ },
+ },
+ .write = write_jedec_1,
+ .read = read_memmapped,
+ .voltage = {2700, 3600},
+ },
+
+ {
+ .vendor = "ISSI",
+ .name = "IS29GL064T",
+ .bustype = BUS_PARALLEL,
+ .manufacture_id = ISSI_ID,
+ .model_id = ISSI_PMC_IS29GL064T,
+ .total_size = 8192,
+ .page_size = 128 * 1024, /* actual page size is 16 */
+ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
+ .tested = TEST_UNTESTED,
+ .probe = probe_jedec_29gl,
+ .probe_timing = TIMING_ZERO,
+ .block_erasers =
+ {
+ {
+ .eraseblocks = {
+ {64 * 1024, 127},
+ {8 * 1024, 8},
+ },
+ .block_erase = erase_sector_jedec,
+ }, {
+ .eraseblocks = { {8 * 1024 * 1024, 1} },
+ .block_erase = erase_chip_block_jedec,
+ },
+ },
+ .write = write_jedec_1,
+ .read = read_memmapped,
+ .voltage = {2700, 3600},
+ },
+
+ {
+ .vendor = "ISSI",
+ .name = "IS29GL064H/L",
+ .bustype = BUS_PARALLEL,
+ .manufacture_id = ISSI_ID,
+ .model_id = ISSI_PMC_IS29GL064HL,
+ .total_size = 8192,
+ .page_size = 128 * 1024, /* actual page size is 16 */
+ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
+ .tested = TEST_UNTESTED,
+ .probe = probe_jedec_29gl,
+ .probe_timing = TIMING_ZERO,
+ .block_erasers =
+ {
+ {
+ .eraseblocks = { {64 * 1024, 128} },
+ .block_erase = erase_sector_jedec,
+ }, {
+ .eraseblocks = { {8 * 1024 * 1024, 1} },
+ .block_erase = erase_chip_block_jedec,
+ },
+ },
+ .write = write_jedec_1,
+ .read = read_memmapped,
+ .voltage = {2700, 3600},
+ },
+
+ {
+ .vendor = "ISSI",
+ .name = "IS29GL128H/L",
+ .bustype = BUS_PARALLEL,
+ .manufacture_id = ISSI_ID,
+ .model_id = ISSI_PMC_IS29GL128HL,
+ .total_size = 16384,
+ .page_size = 128 * 1024, /* actual page size is 16 */
+ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
+ .tested = TEST_UNTESTED,
+ .probe = probe_jedec_29gl,
+ .probe_timing = TIMING_ZERO,
+ .block_erasers =
+ {
+ {
+ .eraseblocks = { {128 * 1024, 128} },
+ .block_erase = erase_sector_jedec,
+ }, {
+ .eraseblocks = { {16 * 1024 * 1024, 1} },
+ .block_erase = erase_chip_block_jedec,
+ },
+ },
+ .write = write_jedec_1,
+ .read = read_memmapped,
+ .voltage = {2700, 3600},
+ },
+
+ {
+ .vendor = "Macronix",
+ .name = "MX23L1654",
+ .bustype = BUS_SPI,
+ .manufacture_id = MACRONIX_ID,
+ .model_id = MACRONIX_MX23L1654,
+ .total_size = 2048,
+ .page_size = 256,
+ .tested = {.probe = NT, .read = NT, .erase = NA, .write = NA},
+ .probe = probe_spi_rdid,
+ .probe_timing = TIMING_ZERO,
+ .write = NULL, /* MX23L1654 is a mask ROM, so it is read-only */
+ .read = spi_chip_read, /* Fast read (0x0B) supported */
+ .voltage = {3000, 3600},
+ },
+
+ {
.vendor = "Macronix",
.name = "MX23L3254",
.bustype = BUS_SPI,
@@ -6038,6 +6354,38 @@ const struct flashchip flashchips[] = {
{
.vendor = "Macronix",
+ .name = "MX23L6454",
+ .bustype = BUS_SPI,
+ .manufacture_id = MACRONIX_ID,
+ .model_id = MACRONIX_MX23L6454,
+ .total_size = 8192,
+ .page_size = 256,
+ .tested = {.probe = NT, .read = NT, .erase = NA, .write = NA},
+ .probe = probe_spi_rdid,
+ .probe_timing = TIMING_ZERO,
+ .write = NULL, /* MX23L6454 is a mask ROM, so it is read-only */
+ .read = spi_chip_read, /* Fast read (0x0B) supported */
+ .voltage = {3000, 3600},
+ },
+
+ {
+ .vendor = "Macronix",
+ .name = "MX23L12854",
+ .bustype = BUS_SPI,
+ .manufacture_id = MACRONIX_ID,
+ .model_id = MACRONIX_MX23L12854,
+ .total_size = 16384,
+ .page_size = 256,
+ .tested = {.probe = NT, .read = NT, .erase = NA, .write = NA},
+ .probe = probe_spi_rdid,
+ .probe_timing = TIMING_ZERO,
+ .write = NULL, /* MX23L12854 is a mask ROM, so it is read-only */
+ .read = spi_chip_read, /* Fast read (0x0B) supported */
+ .voltage = {3000, 3600},
+ },
+
+ {
+ .vendor = "Macronix",
.name = "MX25L512(E)/MX25V512(C)",
.bustype = BUS_SPI,
.manufacture_id = MACRONIX_ID,
@@ -6327,7 +6675,7 @@ const struct flashchip flashchips[] = {
.block_erase = spi_block_erase_c7,
},
},
- .printlock = spi_prettyprint_status_register_bp3_srwd, /* bit6: Continously Program (CP) mode */
+ .printlock = spi_prettyprint_status_register_bp3_srwd, /* bit6: Continuously Program (CP) mode */
.unlock = spi_disable_blockprotect,
.write = spi_chip_write_256,
.read = spi_chip_read, /* Fast read (0x0B), dual I/O supported */
@@ -6866,6 +7214,46 @@ const struct flashchip flashchips[] = {
{
.vendor = "Macronix",
+ .name = "MX25U12835F",
+ .bustype = BUS_SPI,
+ .manufacture_id = MACRONIX_ID,
+ .model_id = MACRONIX_MX25U12835E,
+ .total_size = 16384,
+ .page_size = 256,
+ /* OTP: 512B total; enter 0xB1, exit 0xC1 */
+ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP | FEATURE_QPI,
+ .tested = TEST_UNTESTED,
+ .probe = probe_spi_rdid,
+ .probe_timing = TIMING_ZERO,
+ .block_erasers =
+ {
+ {
+ .eraseblocks = { {4 * 1024, 4096} },
+ .block_erase = spi_block_erase_20,
+ }, {
+ .eraseblocks = { {32 * 1024, 512} },
+ .block_erase = spi_block_erase_52,
+ }, {
+ .eraseblocks = { {64 * 1024, 256} },
+ .block_erase = spi_block_erase_d8,
+ }, {
+ .eraseblocks = { {16 * 1024 * 1024, 1} },
+ .block_erase = spi_block_erase_60,
+ }, {
+ .eraseblocks = { {16 * 1024 * 1024, 1} },
+ .block_erase = spi_block_erase_c7,
+ }
+ },
+ /* TODO: security register */
+ .printlock = spi_prettyprint_status_register_bp3_srwd, /* bit6 is quad enable */
+ .unlock = spi_disable_blockprotect_bp3_srwd,
+ .write = spi_chip_write_256, /* Multi I/O supported */
+ .read = spi_chip_read, /* Fast read (0x0B) and multi I/O supported */
+ .voltage = {1650, 2000},
+ },
+
+ {
+ .vendor = "Macronix",
.name = "MX29F001B",
.bustype = BUS_PARALLEL,
.manufacture_id = MACRONIX_ID,
@@ -6996,6 +7384,70 @@ const struct flashchip flashchips[] = {
{
.vendor = "Macronix",
+ .name = "MX29F022(N)B",
+ .bustype = BUS_PARALLEL,
+ .manufacture_id = MACRONIX_ID,
+ .model_id = MACRONIX_MX29F022B,
+ .total_size = 256,
+ .page_size = 0, /* unused */
+ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
+ .tested = TEST_UNTESTED,
+ .probe = probe_jedec,
+ .probe_timing = TIMING_ZERO,
+ .block_erasers =
+ {
+ {
+ .eraseblocks = {
+ {16 * 1024, 1},
+ {8 * 1024, 2},
+ {32 * 1024, 1},
+ {64 * 1024, 3},
+ },
+ .block_erase = erase_sector_jedec,
+ }, {
+ .eraseblocks = { {256 * 1024, 1} },
+ .block_erase = erase_chip_block_jedec,
+ }
+ },
+ .write = write_jedec_1,
+ .read = read_memmapped,
+ .voltage = {4500, 5500},
+ },
+
+ {
+ .vendor = "Macronix",
+ .name = "MX29F022(N)T",
+ .bustype = BUS_PARALLEL,
+ .manufacture_id = MACRONIX_ID,
+ .model_id = MACRONIX_MX29F022T,
+ .total_size = 256,
+ .page_size = 0, /* unused */
+ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
+ .tested = TEST_OK_PREW,
+ .probe = probe_jedec,
+ .probe_timing = TIMING_ZERO,
+ .block_erasers =
+ {
+ {
+ .eraseblocks = {
+ {64 * 1024, 3},
+ {32 * 1024, 1},
+ {8 * 1024, 2},
+ {16 * 1024, 1},
+ },
+ .block_erase = erase_sector_jedec,
+ }, {
+ .eraseblocks = { {256 * 1024, 1} },
+ .block_erase = erase_chip_block_jedec,
+ }
+ },
+ .write = write_jedec_1,
+ .read = read_memmapped,
+ .voltage = {4500, 5500},
+ },
+
+ {
+ .vendor = "Macronix",
.name = "MX29F040",
.bustype = BUS_PARALLEL,
.manufacture_id = MACRONIX_ID,
@@ -7023,6 +7475,207 @@ const struct flashchip flashchips[] = {
{
.vendor = "Macronix",
+ .name = "MX29GL320EB",
+ .bustype = BUS_PARALLEL,
+ .manufacture_id = MACRONIX_ID,
+ .model_id = MACRONIX_MX29GL320EB,
+ .total_size = 4096,
+ .page_size = 128 * 1024, /* actual page size is 16 */
+ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
+ .tested = TEST_UNTESTED,
+ .probe = probe_jedec_29gl,
+ .probe_timing = TIMING_ZERO,
+ .block_erasers =
+ {
+ {
+ .eraseblocks = {
+ {8 * 1024, 8},
+ {64 * 1024, 63},
+ },
+ .block_erase = erase_sector_jedec,
+ }, {
+ .eraseblocks = { {4 * 1024 * 1024, 1} },
+ .block_erase = erase_chip_block_jedec,
+ },
+ },
+ .write = write_jedec_1,
+ .read = read_memmapped,
+ .voltage = {2700, 3600},
+ },
+
+ {
+ .vendor = "Macronix",
+ .name = "MX29GL320ET",
+ .bustype = BUS_PARALLEL,
+ .manufacture_id = MACRONIX_ID,
+ .model_id = MACRONIX_MX29GL320ET,
+ .total_size = 4096,
+ .page_size = 128 * 1024, /* actual page size is 16 */
+ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
+ .tested = TEST_UNTESTED,
+ .probe = probe_jedec_29gl,
+ .probe_timing = TIMING_ZERO,
+ .block_erasers =
+ {
+ {
+ .eraseblocks = {
+ {64 * 1024, 63},
+ {8 * 1024, 8},
+ },
+ .block_erase = erase_sector_jedec,
+ }, {
+ .eraseblocks = { {4 * 1024 * 1024, 1} },
+ .block_erase = erase_chip_block_jedec,
+ },
+ },
+ .write = write_jedec_1,
+ .read = read_memmapped,
+ .voltage = {2700, 3600},
+ },
+
+ {
+ .vendor = "Macronix",
+ .name = "MX29GL320EH/L",
+ .bustype = BUS_PARALLEL,
+ .manufacture_id = MACRONIX_ID,
+ .model_id = MACRONIX_MX29GL320EHL,
+ .total_size = 4096,
+ .page_size = 128 * 1024, /* actual page size is 16 */
+ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
+ .tested = TEST_UNTESTED,
+ .probe = probe_jedec_29gl,
+ .probe_timing = TIMING_ZERO,
+ .block_erasers =
+ {
+ {
+ .eraseblocks = { {64 * 1024, 64} },
+ .block_erase = erase_sector_jedec,
+ }, {
+ .eraseblocks = { {4 * 1024 * 1024, 1} },
+ .block_erase = erase_chip_block_jedec,
+ },
+ },
+ .write = write_jedec_1,
+ .read = read_memmapped,
+ .voltage = {2700, 3600},
+ },
+
+ {
+ .vendor = "Macronix",
+ .name = "MX29GL640EB",
+ .bustype = BUS_PARALLEL,
+ .manufacture_id = MACRONIX_ID,
+ .model_id = MACRONIX_MX29GL640EB,
+ .total_size = 8192,
+ .page_size = 128 * 1024, /* actual page size is 16 */
+ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
+ .tested = TEST_UNTESTED,
+ .probe = probe_jedec_29gl,
+ .probe_timing = TIMING_ZERO,
+ .block_erasers =
+ {
+ {
+ .eraseblocks = {
+ {8 * 1024, 8},
+ {64 * 1024, 127},
+ },
+ .block_erase = erase_sector_jedec,
+ }, {
+ .eraseblocks = { {8 * 1024 * 1024, 1} },
+ .block_erase = erase_chip_block_jedec,
+ },
+ },
+ .write = write_jedec_1,
+ .read = read_memmapped,
+ .voltage = {2700, 3600},
+ },
+
+ {
+ .vendor = "Macronix",
+ .name = "MX29GL640ET",
+ .bustype = BUS_PARALLEL,
+ .manufacture_id = MACRONIX_ID,
+ .model_id = MACRONIX_MX29GL640ET,
+ .total_size = 8192,
+ .page_size = 128 * 1024, /* actual page size is 16 */
+ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
+ .tested = TEST_UNTESTED,
+ .probe = probe_jedec_29gl,
+ .probe_timing = TIMING_ZERO,
+ .block_erasers =
+ {
+ {
+ .eraseblocks = {
+ {64 * 1024, 127},
+ {8 * 1024, 8},
+ },
+ .block_erase = erase_sector_jedec,
+ }, {
+ .eraseblocks = { {8 * 1024 * 1024, 1} },
+ .block_erase = erase_chip_block_jedec,
+ },
+ },
+ .write = write_jedec_1,
+ .read = read_memmapped,
+ .voltage = {2700, 3600},
+ },
+
+ {
+ .vendor = "Macronix",
+ .name = "MX29GL640EH/L",
+ .bustype = BUS_PARALLEL,
+ .manufacture_id = MACRONIX_ID,
+ .model_id = MACRONIX_MX29GL640EHL,
+ .total_size = 8192,
+ .page_size = 128 * 1024, /* actual page size is 16 */
+ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
+ .tested = TEST_UNTESTED,
+ .probe = probe_jedec_29gl,
+ .probe_timing = TIMING_ZERO,
+ .block_erasers =
+ {
+ {
+ .eraseblocks = { {64 * 1024, 128} },
+ .block_erase = erase_sector_jedec,
+ }, {
+ .eraseblocks = { {8 * 1024 * 1024, 1} },
+ .block_erase = erase_chip_block_jedec,
+ },
+ },
+ .write = write_jedec_1,
+ .read = read_memmapped,
+ .voltage = {2700, 3600},
+ },
+
+ {
+ .vendor = "Macronix",
+ .name = "MX29GL128F",
+ .bustype = BUS_PARALLEL,
+ .manufacture_id = MACRONIX_ID,
+ .model_id = MACRONIX_MX29GL128F,
+ .total_size = 16384,
+ .page_size = 128 * 1024, /* actual page size is 16 */
+ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
+ .tested = TEST_UNTESTED,
+ .probe = probe_jedec_29gl,
+ .probe_timing = TIMING_ZERO,
+ .block_erasers =
+ {
+ {
+ .eraseblocks = { {128 * 1024, 128} },
+ .block_erase = erase_sector_jedec,
+ }, {
+ .eraseblocks = { {16 * 1024 * 1024, 1} },
+ .block_erase = erase_chip_block_jedec,
+ },
+ },
+ .write = write_jedec_1,
+ .read = read_memmapped,
+ .voltage = {2700, 3600},
+ },
+
+ {
+ .vendor = "Macronix",
.name = "MX29LV040",
.bustype = BUS_PARALLEL,
.manufacture_id = MACRONIX_ID,
@@ -7036,7 +7689,7 @@ const struct flashchip flashchips[] = {
.block_erasers =
{
{
- .eraseblocks = { {64 * 1024, 8}, },
+ .eraseblocks = { {64 * 1024, 8} },
.block_erase = erase_sector_jedec,
}, {
.eraseblocks = { {512 * 1024, 1} },
@@ -9098,7 +9751,7 @@ const struct flashchip flashchips[] = {
.total_size = 256,
.page_size = 16 * 1024,
.feature_bits = FEATURE_REGISTERMAP | FEATURE_EITHER_RESET,
- .tested = TEST_OK_PREW,
+ .tested = TEST_OK_PR,
.probe = probe_jedec,
.probe_timing = TIMING_ZERO, /* routine is wrapper to probe_jedec (pm49fl00x.c) */
.block_erasers =
@@ -9114,7 +9767,7 @@ const struct flashchip flashchips[] = {
.block_erase = erase_chip_block_jedec,
}
},
- .unlock = unlock_49fl00x,
+ .unlock = unlock_regspace2_uniform_32k,
.write = write_jedec_1,
.read = read_memmapped,
.voltage = {3000, 3600},
@@ -9129,7 +9782,7 @@ const struct flashchip flashchips[] = {
.total_size = 512,
.page_size = 64 * 1024,
.feature_bits = FEATURE_REGISTERMAP | FEATURE_EITHER_RESET,
- .tested = TEST_OK_PREW,
+ .tested = TEST_OK_PR,
.probe = probe_jedec,
.probe_timing = TIMING_ZERO, /* routine is wrapper to probe_jedec (pm49fl00x.c) */
.block_erasers =
@@ -9145,7 +9798,7 @@ const struct flashchip flashchips[] = {
.block_erase = erase_chip_block_jedec,
}
},
- .unlock = unlock_49fl00x,
+ .unlock = unlock_regspace2_uniform_64k,
.write = write_jedec_1,
.read = read_memmapped,
.voltage = {3000, 3600},
@@ -9458,7 +10111,7 @@ const struct flashchip flashchips[] = {
.block_erase = NULL, /* 30 D0, only in A/A mux mode */
},
},
- .unlock = unlock_82802ab,
+ .unlock = unlock_regspace2_uniform_64k,
.write = write_82802ab,
.read = read_memmapped,
.voltage = {3000, 3600},
@@ -9637,9 +10290,9 @@ const struct flashchip flashchips[] = {
}
},
.printlock = spi_prettyprint_status_register_bp3_srwd,
- .unlock = spi_disable_blockprotect_bp3_srwd, /* #WP pin write-protects SRWP bit. */
+ .unlock = spi_disable_blockprotect_bp3_srwd, /* #WP pin write-protects SRWP bit. */
.write = spi_chip_write_256,
- .read = spi_chip_read, /* Fast read (0x0B), dual I/O (0x3B) supported */
+ .read = spi_chip_read, /* Fast read (0x0B) and dual I/O (0x3B) supported */
.voltage = {2700, 3600},
},
@@ -9671,15 +10324,15 @@ const struct flashchip flashchips[] = {
}
},
.printlock = spi_prettyprint_status_register_bp3_srwd,
- .unlock = spi_disable_blockprotect_bp3_srwd, /* #WP pin write-protects SRWP bit. */
+ .unlock = spi_disable_blockprotect_bp3_srwd, /* #WP pin write-protects SRWP bit. */
.write = spi_chip_write_256,
- .read = spi_chip_read, /* Fast read (0x0B), dual I/O (0x3B) supported */
+ .read = spi_chip_read, /* Fast read (0x0B) and dual I/O (0x3B) supported */
.voltage = {2700, 3600},
},
{
.vendor = "Spansion",
- .name = "S25FL116K/S25FL216K",
+ .name = "S25FL116K/S25FL216K", /* FIXME: separate them */
.bustype = BUS_SPI,
.manufacture_id = SPANSION_ID,
.model_id = SPANSION_S25FL216,
@@ -9706,9 +10359,9 @@ const struct flashchip flashchips[] = {
}
},
.printlock = spi_prettyprint_status_register_bp3_srwd,
- .unlock = spi_disable_blockprotect_bp3_srwd, /* #WP pin write-protects SRWP bit. */
+ .unlock = spi_disable_blockprotect_bp3_srwd, /* #WP pin write-protects SRWP bit. */
.write = spi_chip_write_256,
- .read = spi_chip_read, /* Fast read (0x0B), dual I/O (0x3B) supported */
+ .read = spi_chip_read, /* Fast read (0x0B) and dual I/O (0x3B) supported */
.voltage = {2700, 3600},
},
@@ -9784,7 +10437,69 @@ const struct flashchip flashchips[] = {
{
.vendor = "Spansion",
- .name = "S25FL128S......0", /* uniform 256kB sectors */
+ .name = "S25FL128P......0", /* uniform 64 kB sectors */
+ .bustype = BUS_SPI,
+ .manufacture_id = SPANSION_ID,
+ .model_id = SPANSION_S25FL128,
+ .total_size = 16384,
+ .page_size = 256,
+ .feature_bits = FEATURE_WRSR_WREN,
+ .tested = TEST_UNTESTED,
+ .probe = probe_spi_rdid,
+ .probe_timing = TIMING_ZERO,
+ .block_erasers = {
+ {
+ .eraseblocks = { {64 * 1024, 256} },
+ .block_erase = spi_block_erase_20,
+ }, {
+ .eraseblocks = { {64 * 1024, 256} },
+ .block_erase = spi_block_erase_d8,
+ }, {
+ .eraseblocks = { { 16384 * 1024, 1} },
+ .block_erase = spi_block_erase_60,
+ }, {
+ .eraseblocks = { { 16384 * 1024, 1} },
+ .block_erase = spi_block_erase_c7,
+ }
+ },
+ .printlock = spi_prettyprint_status_register_bp3_srwd,
+ .unlock = spi_disable_blockprotect_bp3_srwd,
+ .write = spi_chip_write_256,
+ .read = spi_chip_read, /* Fast read (0x0B) supported */
+ .voltage = {2700, 3600},
+ },
+
+ {
+ .vendor = "Spansion",
+ .name = "S25FL128P......1", /* uniform 256kB sectors */
+ .bustype = BUS_SPI,
+ .manufacture_id = SPANSION_ID,
+ .model_id = SPANSION_S25FL128,
+ .total_size = 16384,
+ .page_size = 256,
+ .feature_bits = FEATURE_WRSR_WREN,
+ .tested = TEST_UNTESTED,
+ .probe = probe_spi_rdid,
+ .probe_timing = TIMING_ZERO,
+ .block_erasers = {
+ {
+ .eraseblocks = { {256 * 1024, 64} },
+ .block_erase = spi_block_erase_d8,
+ }, {
+ .eraseblocks = { { 16384 * 1024, 1} },
+ .block_erase = spi_block_erase_c7,
+ }
+ },
+ .printlock = spi_prettyprint_status_register_bp2_srwd,
+ .unlock = spi_disable_blockprotect_bp2_srwd,
+ .write = spi_chip_write_256,
+ .read = spi_chip_read, /* Fast read (0x0B) supported */
+ .voltage = {2700, 3600},
+ },
+
+ {
+ .vendor = "Spansion",
+ .name = "S25FL128S......0", /* hybrid: 32 (top or bottom) 4 kB sub-sectors + 64 kB sectors */
.bustype = BUS_SPI,
.manufacture_id = SPANSION_ID,
.model_id = SPANSION_S25FL128,
@@ -9798,9 +10513,48 @@ const struct flashchip flashchips[] = {
.probe_timing = TIMING_ZERO,
.block_erasers = {
{
- .eraseblocks = { {4 * 1024, 4096} },
+ /* This chip supports erasing of the 32 so-called "parameter sectors" with
+ * opcode 0x20. Trying to access an address outside these 4kB blocks does
+ * have no effect on the memory contents, but sets a flag in the SR.
+ .eraseblocks = {
+ {4 * 1024, 32},
+ {64 * 1024, 254} // inaccessible
+ },
.block_erase = spi_block_erase_20,
+ }, { */
+ .eraseblocks = { { 64 * 1024, 256} },
+ .block_erase = spi_block_erase_d8,
+ }, {
+ .eraseblocks = { { 16384 * 1024, 1} },
+ .block_erase = spi_block_erase_60,
}, {
+ .eraseblocks = { { 16384 * 1024, 1} },
+ .block_erase = spi_block_erase_c7,
+ }
+ },
+ .printlock = spi_prettyprint_status_register_bp2_ep_srwd, /* TODO: SR2 and many others */
+ .unlock = spi_disable_blockprotect_bp2_srwd, /* TODO: various other locks */
+ .write = spi_chip_write_256, /* Multi I/O supported */
+ .read = spi_chip_read, /* Fast read (0x0B) and multi I/O supported */
+ .voltage = {2700, 3600},
+ },
+
+ {
+ .vendor = "Spansion",
+ .name = "S25FL128S......1", /* uniform 256 kB sectors */
+ .bustype = BUS_SPI,
+ .manufacture_id = SPANSION_ID,
+ .model_id = SPANSION_S25FL128,
+ .total_size = 16384,
+ .page_size = 512,
+ /* supports 4B addressing */
+ /* OTP: 1024B total, 32B reserved; read 0x4B; write 0x42 */
+ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP,
+ .tested = TEST_UNTESTED,
+ .probe = probe_spi_rdid,
+ .probe_timing = TIMING_ZERO,
+ .block_erasers = {
+ {
.eraseblocks = { {256 * 1024, 64} },
.block_erase = spi_block_erase_d8,
}, {
@@ -9819,6 +10573,86 @@ const struct flashchip flashchips[] = {
},
{
+ .vendor = "Spansion",
+ .name = "S25FL129P......0", /* hybrid: 32 (top or bottom) 4 kB sub-sectors + 64 kB sectors */
+ .bustype = BUS_SPI,
+ .manufacture_id = SPANSION_ID,
+ .model_id = SPANSION_S25FL128,
+ .total_size = 16384,
+ .page_size = 256,
+ /* OTP: 506B total, 16B reserved; read 0x4B; write 0x42 */
+ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP,
+ .tested = TEST_OK_PREW,
+ .probe = probe_spi_rdid,
+ .probe_timing = TIMING_ZERO,
+ .block_erasers = {
+ {
+ /* FIXME: This chip supports erasing of the 32 so-called "parameter sectors" with
+ * opcode 0x20. Trying to access an address outside these 4kB blocks does have no
+ * effect on the memory contents, but sets a flag in the SR.
+ .eraseblocks = {
+ {4 * 1024, 32},
+ {64 * 1024, 254} // inaccessible
+ },
+ .block_erase = spi_block_erase_20,
+ }, { */
+ /* FIXME: Additionally it also supports erase opcode 40h for the respective 2*4 kB pairs
+ .eraseblocks = {
+ {8 * 1024, 16},
+ {64 * 1024, 254} // inaccessible
+ },
+ .block_erase = spi_block_erase_40,
+ }, { */
+ .eraseblocks = { { 64 * 1024, 256} },
+ .block_erase = spi_block_erase_d8,
+ }, {
+ .eraseblocks = { { 16384 * 1024, 1} },
+ .block_erase = spi_block_erase_60,
+ }, {
+ .eraseblocks = { { 16384 * 1024, 1} },
+ .block_erase = spi_block_erase_c7,
+ }
+ },
+ .printlock = spi_prettyprint_status_register_bp2_ep_srwd, /* TODO: Configuration register */
+ .unlock = spi_disable_blockprotect_bp2_srwd,
+ .write = spi_chip_write_256, /* Multi I/O supported */
+ .read = spi_chip_read, /* Fast read (0x0B) and multi I/O supported */
+ .voltage = {2700, 3600},
+ },
+
+ {
+ .vendor = "Spansion",
+ .name = "S25FL129P......1", /* uniform 256 kB sectors */
+ .bustype = BUS_SPI,
+ .manufacture_id = SPANSION_ID,
+ .model_id = SPANSION_S25FL128,
+ .total_size = 16384,
+ .page_size = 512,
+ /* OTP: 506B total, 16B reserved; read 0x4B; write 0x42 */
+ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP,
+ .tested = TEST_UNTESTED,
+ .probe = probe_spi_rdid,
+ .probe_timing = TIMING_ZERO,
+ .block_erasers = {
+ {
+ .eraseblocks = { {256 * 1024, 64} },
+ .block_erase = spi_block_erase_d8,
+ }, {
+ .eraseblocks = { { 16384 * 1024, 1} },
+ .block_erase = spi_block_erase_60,
+ }, {
+ .eraseblocks = { { 16384 * 1024, 1} },
+ .block_erase = spi_block_erase_c7,
+ }
+ },
+ .printlock = spi_prettyprint_status_register_bp2_ep_srwd, /* TODO: Configuration register */
+ .unlock = spi_disable_blockprotect_bp2_srwd,
+ .write = spi_chip_write_256, /* Multi I/O supported */
+ .read = spi_chip_read, /* Fast read (0x0B) and multi I/O supported */
+ .voltage = {2700, 3600},
+ },
+
+ {
.vendor = "SST",
.name = "SST25LF020A",
.bustype = BUS_SPI,
@@ -9916,10 +10750,10 @@ const struct flashchip flashchips[] = {
{
.vendor = "SST",
- .name = "SST25VF512A",
+ .name = "SST25VF512(A)",
.bustype = BUS_SPI,
.manufacture_id = SST_ID,
- .model_id = SST_SST25VF512A_REMS,
+ .model_id = SST_SST25VF512_REMS,
.total_size = 64,
.page_size = 256,
.feature_bits = FEATURE_WRSR_EWSR,
@@ -9936,25 +10770,25 @@ const struct flashchip flashchips[] = {
.block_erase = spi_block_erase_52,
}, {
.eraseblocks = { {32 * 1024, 2} },
- .block_erase = spi_block_erase_d8,
+ .block_erase = spi_block_erase_d8, /* Supported by SST25VF512A only */
}, {
.eraseblocks = { {64 * 1024, 1} },
.block_erase = spi_block_erase_60,
}, {
.eraseblocks = { {64 * 1024, 1} },
- .block_erase = spi_block_erase_c7,
+ .block_erase = spi_block_erase_c7, /* Supported by SST25VF512A only */
},
},
.printlock = spi_prettyprint_status_register_sst25, /* FIXME: No BP2 & 3 */
.unlock = spi_disable_blockprotect,
.write = spi_chip_write_1, /* AAI supported, but opcode is 0xAF */
- .read = spi_chip_read, /* Fast read (0x0B) supported */
+ .read = spi_chip_read, /* Fast read (0x0B) supported by SST25VF512A only */
.voltage = {2700, 3600},
},
{
.vendor = "SST",
- .name = "SST25VF010",
+ .name = "SST25VF010(A)",
.bustype = BUS_SPI,
.manufacture_id = SST_ID,
.model_id = SST_SST25VF010_REMS,
@@ -9974,19 +10808,19 @@ const struct flashchip flashchips[] = {
.block_erase = spi_block_erase_52,
}, {
.eraseblocks = { {32 * 1024, 4} },
- .block_erase = spi_block_erase_d8,
+ .block_erase = spi_block_erase_d8, /* Supported by SST25VF010A only */
}, {
.eraseblocks = { {128 * 1024, 1} },
.block_erase = spi_block_erase_60,
}, {
.eraseblocks = { {128 * 1024, 1} },
- .block_erase = spi_block_erase_c7,
+ .block_erase = spi_block_erase_c7, /* Supported by SST25VF010A only */
},
},
.printlock = spi_prettyprint_status_register_sst25, /* FIXME: No BP2 & 3 */
.unlock = spi_disable_blockprotect,
.write = spi_chip_write_1, /* AAI supported, but opcode is 0xAF */
- .read = spi_chip_read, /* Fast read (0x0B) supported */
+ .read = spi_chip_read, /* Fast read (0x0B) supported by SST25VF010A only */
.voltage = {2700, 3600},
},
@@ -11000,7 +11834,8 @@ const struct flashchip flashchips[] = {
.block_erase = erase_block_82802ab,
}
},
- .unlock = unlock_49lfxxxc,
+ .printlock = printlock_regspace2_block_eraser_1,
+ .unlock = unlock_regspace2_block_eraser_1,
.write = write_82802ab,
.read = read_memmapped,
.voltage = {3000, 3600},
@@ -11065,7 +11900,8 @@ const struct flashchip flashchips[] = {
.block_erase = erase_block_82802ab,
}
},
- .unlock = unlock_49lfxxxc,
+ .printlock = printlock_regspace2_block_eraser_1,
+ .unlock = unlock_regspace2_block_eraser_1,
.write = write_82802ab,
.read = read_memmapped,
.voltage = {3000, 3600},
@@ -11080,7 +11916,7 @@ const struct flashchip flashchips[] = {
.total_size = 2048,
.page_size = 4 * 1024,
.feature_bits = FEATURE_REGISTERMAP,
- .tested = TEST_OK_PREW,
+ .tested = TEST_OK_PR,
.probe = probe_82802ab,
.probe_timing = TIMING_IGNORED, /* routine doesn't use probe_timing (sst49lfxxxc.c) */
.block_erasers =
@@ -11098,7 +11934,8 @@ const struct flashchip flashchips[] = {
.block_erase = erase_block_82802ab,
}
},
- .unlock = unlock_49lfxxxc,
+ .printlock = printlock_regspace2_block_eraser_1,
+ .unlock = unlock_regspace2_block_eraser_1,
.write = write_82802ab,
.read = read_memmapped,
.voltage = {3000, 3600},
@@ -11203,7 +12040,7 @@ const struct flashchip flashchips[] = {
.total_size = 512,
.page_size = 64 * 1024,
.feature_bits = FEATURE_EITHER_RESET | FEATURE_REGISTERMAP,
- .tested = TEST_OK_PREW,
+ .tested = TEST_OK_PR,
.probe = probe_jedec,
.probe_timing = 1, /* 150ns */
.block_erasers =
@@ -11219,7 +12056,7 @@ const struct flashchip flashchips[] = {
.block_erase = NULL,
}
},
- .unlock = unlock_82802ab,
+ .unlock = unlock_regspace2_uniform_64k,
.write = write_jedec_1,
.read = read_memmapped,
.voltage = {3000, 3600},
@@ -11264,7 +12101,7 @@ const struct flashchip flashchips[] = {
.total_size = 2048,
.page_size = 4 * 1024,
.feature_bits = FEATURE_REGISTERMAP,
- .tested = TEST_OK_PRE,
+ .tested = TEST_OK_PR,
.probe = probe_82802ab,
.probe_timing = TIMING_IGNORED, /* routine doesn't use probe_timing (sst49lfxxxc.c) */
.block_erasers =
@@ -11282,7 +12119,8 @@ const struct flashchip flashchips[] = {
.block_erase = erase_block_82802ab,
}
},
- .unlock = unlock_49lfxxxc,
+ .printlock = printlock_regspace2_block_eraser_1,
+ .unlock = unlock_regspace2_block_eraser_1,
.write = write_82802ab,
.read = read_memmapped,
.voltage = {3000, 3600},
@@ -11367,7 +12205,7 @@ const struct flashchip flashchips[] = {
.block_erasers =
{
{
- .eraseblocks = { {64 * 1024, 8}, },
+ .eraseblocks = { {64 * 1024, 8} },
.block_erase = erase_sector_jedec,
}, {
.eraseblocks = { {512 * 1024, 1} },
@@ -11388,10 +12226,10 @@ const struct flashchip flashchips[] = {
.model_id = ST_M29F400BB,
.total_size = 512,
.page_size = 64 * 1024,
- .feature_bits = FEATURE_ADDR_SHIFTED | FEATURE_EITHER_RESET,
+ .feature_bits = FEATURE_ADDR_SHIFTED | FEATURE_ADDR_2AA | FEATURE_EITHER_RESET,
.tested = TEST_UNTESTED,
- .probe = probe_m29f400bt,
- .probe_timing = TIMING_IGNORED, /* routine doesn't use probe_timing (m29f400bt.c) */
+ .probe = probe_jedec,
+ .probe_timing = 10, // FIXME: check datasheet. Using the 10 us from probe_m29f400bt
.block_erasers =
{
{
@@ -11401,13 +12239,13 @@ const struct flashchip flashchips[] = {
{32 * 1024, 1},
{64 * 1024, 7},
},
- .block_erase = erase_block_shifted_jedec,
+ .block_erase = erase_sector_jedec,
}, {
.eraseblocks = { {512 * 1024, 1} },
- .block_erase = erase_chip_block_shifted_jedec,
+ .block_erase = erase_chip_block_jedec,
}
},
- .write = write_m29f400bt,
+ .write = write_jedec_1,
.read = read_memmapped,
.voltage = {4500, 5500},
},
@@ -11420,10 +12258,10 @@ const struct flashchip flashchips[] = {
.model_id = ST_M29F400BT,
.total_size = 512,
.page_size = 64 * 1024,
- .feature_bits = FEATURE_ADDR_SHIFTED | FEATURE_EITHER_RESET,
+ .feature_bits = FEATURE_ADDR_SHIFTED | FEATURE_ADDR_2AA | FEATURE_EITHER_RESET,
.tested = TEST_UNTESTED,
- .probe = probe_m29f400bt,
- .probe_timing = TIMING_IGNORED, /* routine doesn't use probe_timing (m29f400bt.c) */
+ .probe = probe_jedec,
+ .probe_timing = 10, // FIXME: check datasheet. Using the 10 us from probe_m29f400bt
.block_erasers =
{
{
@@ -11433,13 +12271,13 @@ const struct flashchip flashchips[] = {
{8 * 1024, 2},
{16 * 1024, 1},
},
- .block_erase = erase_block_shifted_jedec,
+ .block_erase = erase_sector_jedec,
}, {
.eraseblocks = { {512 * 1024, 1} },
- .block_erase = erase_chip_block_shifted_jedec,
+ .block_erase = erase_chip_block_jedec,
}
},
- .write = write_m29f400bt,
+ .write = write_jedec_1,
.read = read_memmapped,
.voltage = {4500, 5500},
},
@@ -11459,7 +12297,7 @@ const struct flashchip flashchips[] = {
.block_erasers =
{
{
- .eraseblocks = { {16 * 1024, 8}, },
+ .eraseblocks = { {16 * 1024, 8} },
.block_erase = erase_sector_jedec,
}, {
.eraseblocks = { {128 * 1024, 1} },
@@ -11486,7 +12324,7 @@ const struct flashchip flashchips[] = {
.block_erasers =
{
{
- .eraseblocks = { {64 * 1024, 8}, },
+ .eraseblocks = { {64 * 1024, 8} },
.block_erase = erase_sector_jedec,
}, {
.eraseblocks = { {512 * 1024, 1} },
@@ -11545,12 +12383,12 @@ const struct flashchip flashchips[] = {
},
.block_erase = erase_sector_stm50,
}, {
- .eraseblocks = { {64 * 1024, 8}, },
+ .eraseblocks = { {64 * 1024, 8} },
.block_erase = erase_block_82802ab,
}
},
.write = write_82802ab,
- .unlock = unlock_stm50_uniform,
+ .unlock = unlock_regspace2_uniform_64k,
.read = read_memmapped,
.voltage = {3000, 3600}, /* Also has 12V fast program & erase */
},
@@ -11578,12 +12416,12 @@ const struct flashchip flashchips[] = {
},
.block_erase = erase_sector_stm50,
}, {
- .eraseblocks = { {64 * 1024, 8}, },
+ .eraseblocks = { {64 * 1024, 8} },
.block_erase = erase_block_82802ab,
}
},
.write = write_82802ab,
- .unlock = unlock_stm50_uniform,
+ .unlock = unlock_regspace2_uniform_64k,
.read = read_memmapped,
.voltage = {3000, 3600}, /* Also has 12V fast program & erase */
},
@@ -11597,7 +12435,7 @@ const struct flashchip flashchips[] = {
.total_size = 1024,
.page_size = 0,
.feature_bits = FEATURE_REGISTERMAP,
- .tested = TEST_OK_PRE,
+ .tested = TEST_OK_PR,
.probe = probe_82802ab,
.probe_timing = TIMING_FIXME,
.block_erasers =
@@ -11611,11 +12449,12 @@ const struct flashchip flashchips[] = {
},
.block_erase = erase_sector_stm50,
}, {
- .eraseblocks = { {64 * 1024, 16}, },
+ .eraseblocks = { {64 * 1024, 16} },
.block_erase = erase_block_82802ab,
}
},
- .unlock = unlock_stm50_nonuniform,
+ .printlock = printlock_regspace2_block_eraser_0,
+ .unlock = unlock_regspace2_block_eraser_0,
.write = write_82802ab,
.read = read_memmapped,
.voltage = {3000, 3600}, /* Also has 12V fast program & erase */
@@ -11644,11 +12483,12 @@ const struct flashchip flashchips[] = {
},
.block_erase = erase_sector_stm50,
}, {
- .eraseblocks = { {64 * 1024, 16}, },
+ .eraseblocks = { {64 * 1024, 16} },
.block_erase = erase_block_82802ab,
}
},
- .unlock = unlock_stm50_nonuniform,
+ .printlock = printlock_regspace2_block_eraser_0,
+ .unlock = unlock_regspace2_block_eraser_0,
.write = write_82802ab,
.read = read_memmapped,
.voltage = {3000, 3600}, /* Also has 12V fast program & erase */
@@ -11663,9 +12503,9 @@ const struct flashchip flashchips[] = {
.total_size = 256,
.page_size = 0,
.feature_bits = FEATURE_REGISTERMAP,
- .tested = TEST_UNTESTED,
+ .tested = TEST_OK_PR,
.probe = probe_82802ab,
- .probe_timing = TIMING_IGNORED, /* routine doesn't use probe_timing (sst49lfxxxc.c) */
+ .probe_timing = TIMING_IGNORED, /* routine doesn't use probe_timing (82802ab.c) */
.block_erasers =
{
{
@@ -11676,9 +12516,13 @@ const struct flashchip flashchips[] = {
{16 * 1024, 1},
},
.block_erase = erase_block_82802ab,
+ }, {
+ .eraseblocks = { {256 * 1024, 1}, },
+ .block_erase = NULL, /* Only in A/A mux mode */
}
},
- .unlock = unlock_stm50_nonuniform,
+ .printlock = printlock_regspace2_block_eraser_0,
+ .unlock = unlock_regspace2_block_eraser_0,
.write = write_82802ab,
.read = read_memmapped,
.voltage = {3000, 3600}, /* Also has 12V fast program & erase */
@@ -11699,11 +12543,11 @@ const struct flashchip flashchips[] = {
.block_erasers =
{
{
- .eraseblocks = { {64 * 1024, 32}, },
+ .eraseblocks = { {64 * 1024, 32} },
.block_erase = erase_block_82802ab,
}
},
- .unlock = unlock_stm50_uniform,
+ .unlock = unlock_regspace2_uniform_64k,
.write = write_82802ab,
.read = read_memmapped,
.voltage = {3000, 3600}, /* Also has 12V fast program & erase */
@@ -11724,11 +12568,11 @@ const struct flashchip flashchips[] = {
.block_erasers =
{
{
- .eraseblocks = { {64 * 1024, 8}, },
+ .eraseblocks = { {64 * 1024, 8} },
.block_erase = erase_block_82802ab,
}
},
- .unlock = unlock_stm50_uniform,
+ .unlock = unlock_regspace2_uniform_64k,
.write = write_82802ab,
.read = read_memmapped,
.voltage = {3000, 3600}, /* Also has 12V fast program & erase */
@@ -11743,17 +12587,17 @@ const struct flashchip flashchips[] = {
.total_size = 1024,
.page_size = 0,
.feature_bits = FEATURE_REGISTERMAP,
- .tested = TEST_OK_PREW,
+ .tested = TEST_OK_PR,
.probe = probe_82802ab,
.probe_timing = TIMING_IGNORED, /* routine doesn't use probe_timing (82802ab.c) */
.block_erasers =
{
{
- .eraseblocks = { {64 * 1024, 16}, },
+ .eraseblocks = { {64 * 1024, 16} },
.block_erase = erase_block_82802ab,
}
},
- .unlock = unlock_stm50_uniform,
+ .unlock = unlock_regspace2_uniform_64k,
.write = write_82802ab,
.read = read_memmapped,
.voltage = {3000, 3600}, /* Also has 12V fast program & erase */
@@ -11774,11 +12618,11 @@ const struct flashchip flashchips[] = {
.block_erasers =
{
{
- .eraseblocks = { {64 * 1024, 16}, },
+ .eraseblocks = { {64 * 1024, 16} },
.block_erase = erase_block_82802ab,
}
},
- .unlock = unlock_stm50_uniform,
+ .unlock = unlock_regspace2_uniform_64k,
.write = write_82802ab,
.read = read_memmapped,
.voltage = {3000, 3600}, /* Also has 12V fast program & erase */
@@ -11809,7 +12653,8 @@ const struct flashchip flashchips[] = {
.block_erase = erase_block_82802ab,
}
},
- .unlock = unlock_stm50_nonuniform,
+ .printlock = printlock_regspace2_block_eraser_0,
+ .unlock = unlock_regspace2_block_eraser_0,
.write = write_82802ab,
.read = read_memmapped,
.voltage = {3000, 3600}, /* Also has 12V fast program & erase */
@@ -12868,6 +13713,207 @@ const struct flashchip flashchips[] = {
{
.vendor = "Winbond",
+ .name = "W29GL032CB",
+ .bustype = BUS_PARALLEL,
+ .manufacture_id = AMD_ID, /* WTF: "Industry Standard compatible Manufacturer ID code of 01h" */
+ .model_id = WINBOND_W29GL032CB,
+ .total_size = 4096,
+ .page_size = 128 * 1024, /* actual page size is 16 */
+ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
+ .tested = TEST_UNTESTED,
+ .probe = probe_jedec_29gl,
+ .probe_timing = TIMING_ZERO,
+ .block_erasers =
+ {
+ {
+ .eraseblocks = {
+ {8 * 1024, 8},
+ {64 * 1024, 63},
+ },
+ .block_erase = erase_sector_jedec,
+ }, {
+ .eraseblocks = { {4 * 1024 * 1024, 1} },
+ .block_erase = erase_chip_block_jedec,
+ },
+ },
+ .write = write_jedec_1,
+ .read = read_memmapped,
+ .voltage = {2700, 3600},
+ },
+
+ {
+ .vendor = "Winbond",
+ .name = "W29GL032CT",
+ .bustype = BUS_PARALLEL,
+ .manufacture_id = AMD_ID, /* WTF: "Industry Standard compatible Manufacturer ID code of 01h" */
+ .model_id = WINBOND_W29GL032CT,
+ .total_size = 4096,
+ .page_size = 128 * 1024, /* actual page size is 16 */
+ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
+ .tested = TEST_UNTESTED,
+ .probe = probe_jedec_29gl,
+ .probe_timing = TIMING_ZERO,
+ .block_erasers =
+ {
+ {
+ .eraseblocks = {
+ {64 * 1024, 63},
+ {8 * 1024, 8},
+ },
+ .block_erase = erase_sector_jedec,
+ }, {
+ .eraseblocks = { {4 * 1024 * 1024, 1} },
+ .block_erase = erase_chip_block_jedec,
+ },
+ },
+ .write = write_jedec_1,
+ .read = read_memmapped,
+ .voltage = {2700, 3600},
+ },
+
+ {
+ .vendor = "Winbond",
+ .name = "W29GL032CH/L",
+ .bustype = BUS_PARALLEL,
+ .manufacture_id = AMD_ID, /* WTF: "Industry Standard compatible Manufacturer ID code of 01h" */
+ .model_id = WINBOND_W29GL032CHL,
+ .total_size = 4096,
+ .page_size = 128 * 1024, /* actual page size is 16 */
+ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
+ .tested = TEST_UNTESTED,
+ .probe = probe_jedec_29gl,
+ .probe_timing = TIMING_ZERO,
+ .block_erasers =
+ {
+ {
+ .eraseblocks = { {64 * 1024, 64} },
+ .block_erase = erase_sector_jedec,
+ }, {
+ .eraseblocks = { {4 * 1024 * 1024, 1} },
+ .block_erase = erase_chip_block_jedec,
+ },
+ },
+ .write = write_jedec_1,
+ .read = read_memmapped,
+ .voltage = {2700, 3600},
+ },
+
+ {
+ .vendor = "Winbond",
+ .name = "W29GL064CB",
+ .bustype = BUS_PARALLEL,
+ .manufacture_id = AMD_ID, /* WTF: "Industry Standard compatible Manufacturer ID code of 01h" */
+ .model_id = WINBOND_W29GL064CB,
+ .total_size = 8192,
+ .page_size = 128 * 1024, /* actual page size is 16 */
+ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
+ .tested = TEST_UNTESTED,
+ .probe = probe_jedec_29gl,
+ .probe_timing = TIMING_ZERO,
+ .block_erasers =
+ {
+ {
+ .eraseblocks = {
+ {8 * 1024, 8},
+ {64 * 1024, 127},
+ },
+ .block_erase = erase_sector_jedec,
+ }, {
+ .eraseblocks = { {8 * 1024 * 1024, 1} },
+ .block_erase = erase_chip_block_jedec,
+ },
+ },
+ .write = write_jedec_1,
+ .read = read_memmapped,
+ .voltage = {2700, 3600},
+ },
+
+ {
+ .vendor = "Winbond",
+ .name = "W29GL064CT",
+ .bustype = BUS_PARALLEL,
+ .manufacture_id = AMD_ID, /* WTF: "Industry Standard compatible Manufacturer ID code of 01h" */
+ .model_id = WINBOND_W29GL064CT,
+ .total_size = 8192,
+ .page_size = 128 * 1024, /* actual page size is 16 */
+ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
+ .tested = TEST_UNTESTED,
+ .probe = probe_jedec_29gl,
+ .probe_timing = TIMING_ZERO,
+ .block_erasers =
+ {
+ {
+ .eraseblocks = {
+ {64 * 1024, 127},
+ {8 * 1024, 8},
+ },
+ .block_erase = erase_sector_jedec,
+ }, {
+ .eraseblocks = { {8 * 1024 * 1024, 1} },
+ .block_erase = erase_chip_block_jedec,
+ },
+ },
+ .write = write_jedec_1,
+ .read = read_memmapped,
+ .voltage = {2700, 3600},
+ },
+
+ {
+ .vendor = "Winbond",
+ .name = "W29GL064CH/L",
+ .bustype = BUS_PARALLEL,
+ .manufacture_id = AMD_ID, /* WTF: "Industry Standard compatible Manufacturer ID code of 01h" */
+ .model_id = WINBOND_W29GL064CHL,
+ .total_size = 8192,
+ .page_size = 128 * 1024, /* actual page size is 16 */
+ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
+ .tested = TEST_UNTESTED,
+ .probe = probe_jedec_29gl,
+ .probe_timing = TIMING_ZERO,
+ .block_erasers =
+ {
+ {
+ .eraseblocks = { {64 * 1024, 128} },
+ .block_erase = erase_sector_jedec,
+ }, {
+ .eraseblocks = { {8 * 1024 * 1024, 1} },
+ .block_erase = erase_chip_block_jedec,
+ },
+ },
+ .write = write_jedec_1,
+ .read = read_memmapped,
+ .voltage = {2700, 3600},
+ },
+
+ {
+ .vendor = "Winbond",
+ .name = "W29GL128C",
+ .bustype = BUS_PARALLEL,
+ .manufacture_id = AMD_ID, /* WTF: "Industry Standard compatible Manufacturer ID code of 01h" */
+ .model_id = WINBOND_W29GL128CHL,
+ .total_size = 16384,
+ .page_size = 128 * 1024, /* actual page size is 16 */
+ .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
+ .tested = TEST_UNTESTED,
+ .probe = probe_jedec_29gl,
+ .probe_timing = TIMING_ZERO,
+ .block_erasers =
+ {
+ {
+ .eraseblocks = { {128 * 1024, 128} },
+ .block_erase = erase_sector_jedec,
+ }, {
+ .eraseblocks = { {16 * 1024 * 1024, 1} },
+ .block_erase = erase_chip_block_jedec,
+ },
+ },
+ .write = write_jedec_1,
+ .read = read_memmapped,
+ .voltage = {2700, 3600},
+ },
+
+ {
+ .vendor = "Winbond",
.name = "W39F010",
.bustype = BUS_PARALLEL,
.manufacture_id = WINBOND_ID,
@@ -13077,7 +14123,7 @@ const struct flashchip flashchips[] = {
.total_size = 512,
.page_size = 64 * 1024,
.feature_bits = FEATURE_REGISTERMAP | FEATURE_EITHER_RESET,
- .tested = TEST_OK_PREW,
+ .tested = TEST_OK_PR,
.probe = probe_jedec,
.probe_timing = 10,
.block_erasers =
@@ -13094,7 +14140,7 @@ const struct flashchip flashchips[] = {
}
},
.printlock = printlock_w39v040fa,
- .unlock = unlock_sst_fwhub,
+ .unlock = unlock_regspace2_uniform_64k,
.write = write_jedec_1,
.read = read_memmapped,
.voltage = {3000, 3600},
@@ -13109,7 +14155,7 @@ const struct flashchip flashchips[] = {
.total_size = 512,
.page_size = 64 * 1024,
.feature_bits = FEATURE_REGISTERMAP | FEATURE_EITHER_RESET,
- .tested = TEST_OK_PREW,
+ .tested = TEST_OK_PR,
.probe = probe_jedec,
.probe_timing = 10,
.block_erasers =
@@ -13123,7 +14169,7 @@ const struct flashchip flashchips[] = {
}
},
.printlock = printlock_w39v040fb,
- .unlock = unlock_w39v040fb,
+ .unlock = unlock_regspace2_uniform_64k,
.write = write_jedec_1,
.read = read_memmapped,
.voltage = {3000, 3600}, /* Also has 12V fast program */
@@ -13314,13 +14360,13 @@ const struct flashchip flashchips[] = {
.total_size = 1024,
.page_size = 64 * 1024,
.feature_bits = FEATURE_REGISTERMAP | FEATURE_EITHER_RESET,
- .tested = TEST_OK_PREW,
+ .tested = TEST_OK_PR,
.probe = probe_jedec,
.probe_timing = 10,
.block_erasers =
{
{
- .eraseblocks = { {64 * 1024, 16}, },
+ .eraseblocks = { {64 * 1024, 16} },
.block_erase = erase_sector_jedec,
}, {
.eraseblocks = { {1024 * 1024, 1} },
@@ -13328,7 +14374,7 @@ const struct flashchip flashchips[] = {
}
},
.printlock = printlock_w39v080fa,
- .unlock = unlock_w39v080fa,
+ .unlock = unlock_regspace2_uniform_64k,
.write = write_jedec_1,
.read = read_memmapped,
.voltage = {3000, 3600}, /* Also has 12V fast program */
@@ -13349,7 +14395,7 @@ const struct flashchip flashchips[] = {
.block_erasers =
{
{
- .eraseblocks = { {64 * 1024, 8}, },
+ .eraseblocks = { {64 * 1024, 8} },
.block_erase = erase_sector_jedec,
}, {
.eraseblocks = { {512 * 1024, 1} },
diff --git a/resources/grub/config/COPYING b/resources/grub/config/COPYING
index 624c22d0..05827f3e 100644
--- a/resources/grub/config/COPYING
+++ b/resources/grub/config/COPYING
@@ -1,33 +1,18 @@
-The following files inside this directory:
+# GRUB configuration files under resources/grub/config/
- * grub_memdisk.cfg
- * macbook21/grub.cfg
- * macbook21/grub_dvorak.cfg
- * macbook21/grub_ukdvorak.cfg
- * macbook21/grub_ukqwerty.cfg
- * t60/grub.cfg
- * t60/grub_dvorak.cfg
- * t60/grub_ukdvorak.cfg
- * t60/grub_ukqwerty.cfg
- * t60/grub_serial.cfg
- * t60/grub_serial_dvorak.cfg
- * t60/grub_serial_ukdvorak.cfg
- * t60/grub_serial_ukqwerty.cfg
- * x60/grub.cfg
- * x60/grub_dvorak.cfg
- * x60/grub_ukdvorak.cfg
- * x60/grub_ukqwerty.cfg
- * x60/grub_serial.cfg
- * x60/grub_serial_dvorak.cfg
- * x60/grub_serial_ukdvorak.cfg
- * x60/grub_serial_ukqwerty.cfg
- * x60t/grub.cfg
- * x60t/grub_dvorak.cfg
- * x60t/grub_ukdvorak.cfg
- * x60t/grub_ukqwerty.cfg
- * x60t/grub_serial.cfg
- * x60t/grub_serial_dvorak.cfg
- * x60t/grub_serial_ukdvorak.cfg
- * x60t/grub_serial_ukqwerty.cfg
-
-Look inside each file for copyright information
+#
+# Copyright (C) 2014 Francis Rowe
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+#
diff --git a/resources/grub/config/extra/common.cfg b/resources/grub/config/extra/common.cfg
new file mode 100644
index 00000000..09bd20aa
--- /dev/null
+++ b/resources/grub/config/extra/common.cfg
@@ -0,0 +1,29 @@
+set prefix=(memdisk)/boot/grub
+
+insmod nativedisk
+insmod ehci
+insmod ohci
+insmod uhci
+insmod usb
+insmod usbserial_pl2303
+insmod usbserial_ftdi
+insmod usbserial_usbdebug
+
+# Serial and keyboard configuration, very important.
+serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1
+terminal_input --append serial
+terminal_output --append serial
+terminal_input --append at_keyboard
+
+gfxpayload=keep
+terminal_output --append gfxterm
+
+# Default to first option, automatically boot after 1 second
+set default="0"
+set timeout=1
+
+# This is useful when using 'cat' on long files on GRUB terminal
+set pager=1
+
+# Play a beep on startup
+play 480 440 1
diff --git a/docs/future/dumps/index.html b/resources/grub/config/extra/txtmode.cfg
index e69de29b..e69de29b 100644
--- a/docs/future/dumps/index.html
+++ b/resources/grub/config/extra/txtmode.cfg
diff --git a/resources/grub/config/extra/vesafb.cfg b/resources/grub/config/extra/vesafb.cfg
new file mode 100644
index 00000000..bcad5cbc
--- /dev/null
+++ b/resources/grub/config/extra/vesafb.cfg
@@ -0,0 +1,5 @@
+insmod jpeg
+
+background_image (cbfsdisk)/background.jpg
+loadfont (cbfsdisk)/dejavusansmono.pf2
+
diff --git a/resources/grub/config/grub_memdisk.cfg b/resources/grub/config/grub_memdisk.cfg
index fbac6876..c9f22ff1 100644
--- a/resources/grub/config/grub_memdisk.cfg
+++ b/resources/grub/config/grub_memdisk.cfg
@@ -1,28 +1,3 @@
-#
-# configuration file for GRUB memdisk which sits inside the grub.elf payload included inside the ROM image
-#
-# Copyright (C) 2014 Francis Rowe
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-#
-
-# Serial and keyboard configuration, very important.
-serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1
-terminal_input --append serial
-terminal_output --append serial
-terminal_input --append at_keyboard #add keyboard support.
-
set prefix=(memdisk)/boot/grub
set root='cbfsdisk'
diff --git a/resources/grub/config/macbook21/grub_usqwerty.cfg b/resources/grub/config/macbook21/grub_usqwerty.cfg
deleted file mode 100644
index 5f523846..00000000
--- a/resources/grub/config/macbook21/grub_usqwerty.cfg
+++ /dev/null
@@ -1,56 +0,0 @@
-#
-# GRUB configuration file which sits inside the root CBFS (coreboot filesystem)
-#
-# Copyright (C) 2014 Francis Rowe
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-#
-
-set default="0"
-set timeout=1
-set pager=1
-
-background_image (cbfsdisk)/gnulove.jpg
-loadfont (cbfsdisk)/dejavusansmono.pf2
-
-menuentry 'Load Operating System' {
- linux (ahci0,1)/vmlinuz root=/dev/sda1
- initrd (ahci0,1)/initrd.img
-}
-menuentry 'Parse ISOLINUX menu (USB)' {
- set root='usb0'
- syslinux_configfile -i (usb0)/isolinux/isolinux.cfg
-}
-menuentry 'Search for GRUB configuration on internal storage' {
- insmod regexp
- insmod ahci
- insmod part_msdos
- for x in (ahci0,*) ; do
- if [ -f "$x/grub/grub.cfg" ] ; then
- submenu "Load Config from $x" $x {
- root=$2
- source /grub/grub.cfg
- unset superusers
- }
- fi
- if [ -f "$x/boot/grub/grub.cfg" ] ; then
- submenu "Load Config from $x" $x {
- root=$2
- source /boot/grub/grub.cfg
- unset superusers
- }
- fi
- done
-}
-
diff --git a/resources/grub/config/menuentries/common.cfg b/resources/grub/config/menuentries/common.cfg
new file mode 100644
index 00000000..ec476fdd
--- /dev/null
+++ b/resources/grub/config/menuentries/common.cfg
@@ -0,0 +1,43 @@
+menuentry 'Load Operating System' {
+ set root='ahci0,msdos1'
+ linux /vmlinuz root=/dev/sda1
+ initrd /initrd.img
+}
+menuentry 'Parse ISOLINUX menu (USB)' {
+ set root='usb0'
+ syslinux_configfile -i (usb0)/isolinux/isolinux.cfg
+}
+menuentry 'Parse ISOLINUX menu (CD)' {
+ set root='ata0'
+ syslinux_configfile -i (ata0)/isolinux/isolinux.cfg
+}
+menuentry 'Load SeaBIOS' {
+ set root='cbfsdisk'
+ chainloader /bios.bin.elf
+}
+menuentry 'Switch to grubtest.cfg' {
+ set root='cbfsdisk'
+ configfile (cbfsdisk)/grubtest.cfg
+}
+menuentry 'Search for GRUB configuration on internal storage' {
+ insmod regexp
+ insmod ahci
+ insmod part_msdos
+ for x in (ahci0,*) ; do
+ if [ -f "$x/grub/grub.cfg" ] ; then
+ submenu "Load Config from $x" $x {
+ root=$2
+ source /grub/grub.cfg
+ unset superusers
+ }
+ fi
+ if [ -f "$x/boot/grub/grub.cfg" ] ; then
+ submenu "Load Config from $x" $x {
+ root=$2
+ source /boot/grub/grub.cfg
+ unset superusers
+ }
+ fi
+ done
+}
+
diff --git a/resources/grub/config/menuentries/txtmode.cfg b/resources/grub/config/menuentries/txtmode.cfg
new file mode 100644
index 00000000..087886ef
--- /dev/null
+++ b/resources/grub/config/menuentries/txtmode.cfg
@@ -0,0 +1,9 @@
+menuentry 'Load GRUB Invaders' {
+ set root='cbfsdisk'
+ chainloader /invaders.exec
+}
+menuentry 'Load MemTest86+' {
+ set root='cbfsdisk'
+ chainloader /memtest
+}
+
diff --git a/resources/grub/config/menuentries/vesafb.cfg b/resources/grub/config/menuentries/vesafb.cfg
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/resources/grub/config/menuentries/vesafb.cfg
diff --git a/resources/grub/config/t60/grub_serial_usqwerty.cfg b/resources/grub/config/t60/grub_serial_usqwerty.cfg
deleted file mode 100644
index 34ce1983..00000000
--- a/resources/grub/config/t60/grub_serial_usqwerty.cfg
+++ /dev/null
@@ -1,70 +0,0 @@
-#
-# GRUB configuration file which sits inside the root CBFS (coreboot filesystem)
-#
-# Copyright (C) 2014 Francis Rowe
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-#
-
-# Serial and keyboard configuration, very important.
-serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1
-terminal_input --append serial
-terminal_output --append serial
-terminal_input --append at_keyboard #add keyboard support.
-
-set default="0"
-set timeout=1
-set pager=1
-
-background_image (cbfsdisk)/background.jpg
-loadfont (cbfsdisk)/dejavusansmono.pf2
-
-menuentry 'Load Operating System' {
- linux (ahci0,1)/vmlinuz root=/dev/sda1
- initrd (ahci0,1)/initrd.img
-}
-menuentry 'Parse ISOLINUX menu (USB)' {
- set root='usb0'
- syslinux_configfile -i (usb0)/isolinux/isolinux.cfg
-}
-menuentry 'Parse ISOLINUX menu (CD)' {
- set root='ata0'
- syslinux_configfile -i (ata0)/isolinux/isolinux.cfg
-}
-menuentry 'Load MemTest86+ (serial port, baud 115200)' {
- set root='cbfsdisk'
- chainloader /memtest
-}
-menuentry 'Search for GRUB configuration on internal storage' {
- insmod regexp
- insmod ahci
- insmod part_msdos
- for x in (ahci0,*) ; do
- if [ -f "$x/grub/grub.cfg" ] ; then
- submenu "Load Config from $x" $x {
- root=$2
- source /grub/grub.cfg
- unset superusers
- }
- fi
- if [ -f "$x/boot/grub/grub.cfg" ] ; then
- submenu "Load Config from $x" $x {
- root=$2
- source /boot/grub/grub.cfg
- unset superusers
- }
- fi
- done
-}
-
diff --git a/resources/grub/config/t60/grub_usqwerty.cfg b/resources/grub/config/t60/grub_usqwerty.cfg
deleted file mode 100644
index 4fa2e43d..00000000
--- a/resources/grub/config/t60/grub_usqwerty.cfg
+++ /dev/null
@@ -1,60 +0,0 @@
-#
-# GRUB configuration file which sits inside the root CBFS (coreboot filesystem)
-#
-# Copyright (C) 2014 Francis Rowe
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-#
-
-set default="0"
-set timeout=1
-set pager=1
-
-background_image (cbfsdisk)/background.jpg
-loadfont (cbfsdisk)/dejavusansmono.pf2
-
-menuentry 'Load Operating System' {
- linux (ahci0,1)/vmlinuz root=/dev/sda1
- initrd (ahci0,1)/initrd.img
-}
-menuentry 'Parse ISOLINUX menu (USB)' {
- set root='usb0'
- syslinux_configfile -i (usb0)/isolinux/isolinux.cfg
-}
-menuentry 'Parse ISOLINUX menu (CD)' {
- set root='ata0'
- syslinux_configfile -i (ata0)/isolinux/isolinux.cfg
-}
-menuentry 'Search for GRUB configuration on internal storage' {
- insmod regexp
- insmod ahci
- insmod part_msdos
- for x in (ahci0,*) ; do
- if [ -f "$x/grub/grub.cfg" ] ; then
- submenu "Load Config from $x" $x {
- root=$2
- source /grub/grub.cfg
- unset superusers
- }
- fi
- if [ -f "$x/boot/grub/grub.cfg" ] ; then
- submenu "Load Config from $x" $x {
- root=$2
- source /boot/grub/grub.cfg
- unset superusers
- }
- fi
- done
-}
-
diff --git a/resources/grub/config/x60/grub_serial_usqwerty.cfg b/resources/grub/config/x60/grub_serial_usqwerty.cfg
deleted file mode 100644
index 34ce1983..00000000
--- a/resources/grub/config/x60/grub_serial_usqwerty.cfg
+++ /dev/null
@@ -1,70 +0,0 @@
-#
-# GRUB configuration file which sits inside the root CBFS (coreboot filesystem)
-#
-# Copyright (C) 2014 Francis Rowe
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-#
-
-# Serial and keyboard configuration, very important.
-serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1
-terminal_input --append serial
-terminal_output --append serial
-terminal_input --append at_keyboard #add keyboard support.
-
-set default="0"
-set timeout=1
-set pager=1
-
-background_image (cbfsdisk)/background.jpg
-loadfont (cbfsdisk)/dejavusansmono.pf2
-
-menuentry 'Load Operating System' {
- linux (ahci0,1)/vmlinuz root=/dev/sda1
- initrd (ahci0,1)/initrd.img
-}
-menuentry 'Parse ISOLINUX menu (USB)' {
- set root='usb0'
- syslinux_configfile -i (usb0)/isolinux/isolinux.cfg
-}
-menuentry 'Parse ISOLINUX menu (CD)' {
- set root='ata0'
- syslinux_configfile -i (ata0)/isolinux/isolinux.cfg
-}
-menuentry 'Load MemTest86+ (serial port, baud 115200)' {
- set root='cbfsdisk'
- chainloader /memtest
-}
-menuentry 'Search for GRUB configuration on internal storage' {
- insmod regexp
- insmod ahci
- insmod part_msdos
- for x in (ahci0,*) ; do
- if [ -f "$x/grub/grub.cfg" ] ; then
- submenu "Load Config from $x" $x {
- root=$2
- source /grub/grub.cfg
- unset superusers
- }
- fi
- if [ -f "$x/boot/grub/grub.cfg" ] ; then
- submenu "Load Config from $x" $x {
- root=$2
- source /boot/grub/grub.cfg
- unset superusers
- }
- fi
- done
-}
-
diff --git a/resources/grub/config/x60/grub_usqwerty.cfg b/resources/grub/config/x60/grub_usqwerty.cfg
deleted file mode 100644
index cce7a44b..00000000
--- a/resources/grub/config/x60/grub_usqwerty.cfg
+++ /dev/null
@@ -1,56 +0,0 @@
-#
-# GRUB configuration file which sits inside the root CBFS (coreboot filesystem)
-#
-# Copyright (C) 2014 Francis Rowe
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-#
-
-set default="0"
-set timeout=1
-set pager=1
-
-background_image (cbfsdisk)/background.jpg
-loadfont (cbfsdisk)/dejavusansmono.pf2
-
-menuentry 'Load Operating System' {
- linux (ahci0,1)/vmlinuz root=/dev/sda1
- initrd (ahci0,1)/initrd.img
-}
-menuentry 'Parse ISOLINUX menu (USB)' {
- set root='usb0'
- syslinux_configfile -i (usb0)/isolinux/isolinux.cfg
-}
-menuentry 'Search for GRUB configuration on internal storage' {
- insmod regexp
- insmod ahci
- insmod part_msdos
- for x in (ahci0,*) ; do
- if [ -f "$x/grub/grub.cfg" ] ; then
- submenu "Load Config from $x" $x {
- root=$2
- source /grub/grub.cfg
- unset superusers
- }
- fi
- if [ -f "$x/boot/grub/grub.cfg" ] ; then
- submenu "Load Config from $x" $x {
- root=$2
- source /boot/grub/grub.cfg
- unset superusers
- }
- fi
- done
-}
-
diff --git a/resources/grub/config/x60t/grub_serial_usqwerty.cfg b/resources/grub/config/x60t/grub_serial_usqwerty.cfg
deleted file mode 100644
index 34ce1983..00000000
--- a/resources/grub/config/x60t/grub_serial_usqwerty.cfg
+++ /dev/null
@@ -1,70 +0,0 @@
-#
-# GRUB configuration file which sits inside the root CBFS (coreboot filesystem)
-#
-# Copyright (C) 2014 Francis Rowe
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-#
-
-# Serial and keyboard configuration, very important.
-serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1
-terminal_input --append serial
-terminal_output --append serial
-terminal_input --append at_keyboard #add keyboard support.
-
-set default="0"
-set timeout=1
-set pager=1
-
-background_image (cbfsdisk)/background.jpg
-loadfont (cbfsdisk)/dejavusansmono.pf2
-
-menuentry 'Load Operating System' {
- linux (ahci0,1)/vmlinuz root=/dev/sda1
- initrd (ahci0,1)/initrd.img
-}
-menuentry 'Parse ISOLINUX menu (USB)' {
- set root='usb0'
- syslinux_configfile -i (usb0)/isolinux/isolinux.cfg
-}
-menuentry 'Parse ISOLINUX menu (CD)' {
- set root='ata0'
- syslinux_configfile -i (ata0)/isolinux/isolinux.cfg
-}
-menuentry 'Load MemTest86+ (serial port, baud 115200)' {
- set root='cbfsdisk'
- chainloader /memtest
-}
-menuentry 'Search for GRUB configuration on internal storage' {
- insmod regexp
- insmod ahci
- insmod part_msdos
- for x in (ahci0,*) ; do
- if [ -f "$x/grub/grub.cfg" ] ; then
- submenu "Load Config from $x" $x {
- root=$2
- source /grub/grub.cfg
- unset superusers
- }
- fi
- if [ -f "$x/boot/grub/grub.cfg" ] ; then
- submenu "Load Config from $x" $x {
- root=$2
- source /boot/grub/grub.cfg
- unset superusers
- }
- fi
- done
-}
-
diff --git a/resources/grub/config/x60t/grub_usqwerty.cfg b/resources/grub/config/x60t/grub_usqwerty.cfg
deleted file mode 100644
index cce7a44b..00000000
--- a/resources/grub/config/x60t/grub_usqwerty.cfg
+++ /dev/null
@@ -1,56 +0,0 @@
-#
-# GRUB configuration file which sits inside the root CBFS (coreboot filesystem)
-#
-# Copyright (C) 2014 Francis Rowe
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-#
-
-set default="0"
-set timeout=1
-set pager=1
-
-background_image (cbfsdisk)/background.jpg
-loadfont (cbfsdisk)/dejavusansmono.pf2
-
-menuentry 'Load Operating System' {
- linux (ahci0,1)/vmlinuz root=/dev/sda1
- initrd (ahci0,1)/initrd.img
-}
-menuentry 'Parse ISOLINUX menu (USB)' {
- set root='usb0'
- syslinux_configfile -i (usb0)/isolinux/isolinux.cfg
-}
-menuentry 'Search for GRUB configuration on internal storage' {
- insmod regexp
- insmod ahci
- insmod part_msdos
- for x in (ahci0,*) ; do
- if [ -f "$x/grub/grub.cfg" ] ; then
- submenu "Load Config from $x" $x {
- root=$2
- source /grub/grub.cfg
- unset superusers
- }
- fi
- if [ -f "$x/boot/grub/grub.cfg" ] ; then
- submenu "Load Config from $x" $x {
- root=$2
- source /boot/grub/grub.cfg
- unset superusers
- }
- fi
- done
-}
-
diff --git a/resources/grubinvaders/patch/compile.sh.patch b/resources/grubinvaders/patch/compile.sh.patch
new file mode 100644
index 00000000..0e7c3b85
--- /dev/null
+++ b/resources/grubinvaders/patch/compile.sh.patch
@@ -0,0 +1,4 @@
+6c6
+< CFLAGS="-fno-builtin -nostdinc -O2 -I. -Wall -Werror"
+---
+> CFLAGS="-fno-builtin -nostdinc -O2 -I. -Wall -Werror -fno-stack-protector"
diff --git a/resources/grubinvaders/patch/diff.patch b/resources/grubinvaders/patch/diff.patch
new file mode 100644
index 00000000..2867dea7
--- /dev/null
+++ b/resources/grubinvaders/patch/diff.patch
@@ -0,0 +1,45 @@
+diff -ur invaders/clean.sh invaders-fixed/clean.sh
+--- invaders/clean.sh 2001-05-21 22:43:13.000000000 +0200
++++ invaders-fixed/clean.sh 2009-04-13 17:03:14.000000000 +0200
+@@ -2,4 +2,4 @@
+
+ set -e
+ set -v
+-rm -f *.o *~ invaders.exec
++rm -f *.o *~ invaders.exec invaders
+diff -ur invaders/compile.sh invaders-fixed/compile.sh
+--- invaders/compile.sh 2001-05-21 22:26:46.000000000 +0200
++++ invaders-fixed/compile.sh 2009-04-13 16:59:44.000000000 +0200
+@@ -4,7 +4,7 @@
+ set -v
+
+ CFLAGS="-fno-builtin -nostdinc -O2 -I. -Wall -Werror"
+-LDFLAGS="-nostdlib -Wl,-N -Wl,-Ttext -Wl,100000"
++LDFLAGS="-nostdlib -Wl,-N -Wl,-Ttext -Wl,100000 -Wl,--build-id=none"
+ gcc $CFLAGS -c keyboard.c
+ gcc $CFLAGS -c delay.c
+ gcc $CFLAGS -c common.c
+diff -ur invaders/video.c invaders-fixed/video.c
+--- invaders/video.c 2001-05-13 15:56:33.000000000 +0200
++++ invaders-fixed/video.c 2009-04-13 17:01:22.000000000 +0200
+@@ -36,7 +36,7 @@
+ video_putchar(x+1,y,hextab[hex&15]);
+ };
+
+-void video_putstring(int32 x, int32 y, uint8 *str)
++void video_putstring(int32 x, int32 y, char *str)
+ {
+ while (*str) video_putchar(x++,y,*(str++));
+ };
+diff -ur invaders/video.h invaders-fixed/video.h
+--- invaders/video.h 2001-05-13 15:56:33.000000000 +0200
++++ invaders-fixed/video.h 2009-04-13 17:01:05.000000000 +0200
+@@ -8,7 +8,7 @@
+ void video_putchar(int32 x, int32 y, uint8 code);
+ void video_fill(int32 x, int32 y, int32 width, int32 height, uint8 code);
+ void video_puthex8(int32 x, int32 y, uint8 hex);
+-void video_putstring(int32 x, int32 y, uint8 *str);
++void video_putstring(int32 x, int32 y, char *str);
+
+ // immediate effect
+ void video_update();
diff --git a/resources/libreboot/config/libpayload/config b/resources/libreboot/config/libpayload/config
new file mode 100644
index 00000000..28e1b8b8
--- /dev/null
+++ b/resources/libreboot/config/libpayload/config
@@ -0,0 +1,71 @@
+#
+# Automatically generated make config: don't edit
+# libpayload version: 0.2.0
+# Sun Aug 24 05:04:19 2014
+#
+
+#
+# Generic Options
+#
+# CONFIG_LP_EXPERIMENTAL is not set
+# CONFIG_LP_OBSOLETE is not set
+# CONFIG_LP_DEVELOPER is not set
+# CONFIG_LP_CHROMEOS is not set
+
+#
+# Architecture Options
+#
+# CONFIG_LP_ARCH_ARMV7 is not set
+CONFIG_LP_ARCH_X86=y
+# CONFIG_LP_MEMMAP_RAM_ONLY is not set
+CONFIG_LP_MULTIBOOT=y
+
+#
+# Standard Libraries
+#
+CONFIG_LP_LIBC=y
+CONFIG_LP_CURSES=y
+CONFIG_LP_TINYCURSES=y
+# CONFIG_LP_PDCURSES is not set
+CONFIG_LP_CBFS=y
+CONFIG_LP_LZMA=y
+
+#
+# Console Options
+#
+# CONFIG_LP_SKIP_CONSOLE_INIT is not set
+CONFIG_LP_CBMEM_CONSOLE=y
+CONFIG_LP_SERIAL_CONSOLE=y
+CONFIG_LP_X86_SERIAL_CONSOLE=y
+CONFIG_LP_SERIAL_IOBASE=0x3f8
+# CONFIG_LP_SERIAL_SET_SPEED is not set
+# CONFIG_LP_SERIAL_ACS_FALLBACK is not set
+CONFIG_LP_VIDEO_CONSOLE=y
+CONFIG_LP_VGA_VIDEO_CONSOLE=y
+# CONFIG_LP_GEODELX_VIDEO_CONSOLE is not set
+# CONFIG_LP_COREBOOT_VIDEO_CONSOLE is not set
+CONFIG_LP_PC_KEYBOARD=y
+CONFIG_LP_PC_KEYBOARD_LAYOUT_US=y
+# CONFIG_LP_PC_KEYBOARD_LAYOUT_DE is not set
+
+#
+# Drivers
+#
+CONFIG_LP_PCI=y
+CONFIG_LP_NVRAM=y
+# CONFIG_LP_RTC_PORT_EXTENDED_VIA is not set
+CONFIG_LP_SPEAKER=y
+CONFIG_LP_STORAGE=y
+# CONFIG_LP_STORAGE_64BIT_LBA is not set
+CONFIG_LP_STORAGE_ATA=y
+CONFIG_LP_STORAGE_ATAPI=y
+CONFIG_LP_STORAGE_AHCI=y
+CONFIG_LP_STORAGE_AHCI_ONLY_TESTED=y
+# CONFIG_LP_USB is not set
+# CONFIG_LP_USB_GEN_HUB is not set
+CONFIG_LP_USB_PCI=y
+# CONFIG_LP_USB_MEMORY is not set
+# CONFIG_LP_BIG_ENDIAN is not set
+CONFIG_LP_LITTLE_ENDIAN=y
+CONFIG_LP_IO_ADDRESS_SPACE=y
+CONFIG_LP_ARCH_SPECIFIC_OPTIONS=y
diff --git a/resources/libreboot/config/macbook21/config b/resources/libreboot/config/macbook21/config
index 63af0356..2bb0cb7c 100644
--- a/resources/libreboot/config/macbook21/config
+++ b/resources/libreboot/config/macbook21/config
@@ -19,7 +19,7 @@ CONFIG_COMPRESS_RAMSTAGE=y
CONFIG_INCLUDE_CONFIG_FILE=y
CONFIG_EARLY_CBMEM_INIT=y
# CONFIG_BROKEN_CAR_MIGRATE is not set
-# CONFIG_DYNAMIC_CBMEM is not set
+CONFIG_DYNAMIC_CBMEM=y
# CONFIG_COLLECT_TIMESTAMPS is not set
# CONFIG_USE_BLOBS is not set
# CONFIG_COVERAGE is not set
@@ -111,14 +111,15 @@ CONFIG_VGA_BIOS_ID="8086,27a2"
CONFIG_DRIVERS_PS2_KEYBOARD=y
# CONFIG_ONBOARD_VGA_IS_PRIMARY is not set
# CONFIG_VGA_BIOS is not set
+# CONFIG_CONSOLE_POST is not set
# CONFIG_UDELAY_IO is not set
CONFIG_DCACHE_RAM_BASE=0xffdf8000
CONFIG_DCACHE_RAM_SIZE=0x8000
CONFIG_ACPI_SSDTX_NUM=0
+# CONFIG_BOARD_APPLE_MACBOOK11 is not set
CONFIG_BOARD_APPLE_MACBOOK21=y
CONFIG_MMCONF_BASE_ADDRESS=0xf0000000
CONFIG_MAINBOARD_SMBIOS_MANUFACTURER="Apple Inc."
-CONFIG_SEABIOS_PS2_TIMEOUT=3000
# CONFIG_PCI_64BIT_PREF_MEM is not set
CONFIG_UART_FOR_CONSOLE=0
CONFIG_ID_SECTION_OFFSET=0x80
@@ -128,8 +129,11 @@ CONFIG_ID_SECTION_OFFSET=0x80
CONFIG_STACK_SIZE=0x1000
CONFIG_CACHE_ROM_SIZE_OVERRIDE=0
CONFIG_CBFS_SIZE=0x200000
+CONFIG_POST_IO=y
+CONFIG_POST_DEVICE=y
+CONFIG_SEABIOS_PS2_TIMEOUT=0
CONFIG_MAINBOARD_VERSION="1.0"
-CONFIG_CPU_ADDR_BITS=32
+CONFIG_CPU_ADDR_BITS=36
CONFIG_DEFAULT_CONSOLE_LOGLEVEL=8
# CONFIG_USBDEBUG is not set
CONFIG_MAXIMUM_SUPPORTED_FREQUENCY=0
@@ -168,6 +172,8 @@ CONFIG_HPET_ADDRESS=0xfed00000
# CONFIG_ARCH_BOOTBLOCK_ARMV7 is not set
# CONFIG_ARCH_ROMSTAGE_ARMV7 is not set
# CONFIG_ARCH_RAMSTAGE_ARMV7 is not set
+# CONFIG_CPU_HAS_BOOTBLOCK_INIT is not set
+# CONFIG_MAINBOARD_HAS_BOOTBLOCK_INIT is not set
# CONFIG_MAINBOARD_HAS_CHROMEOS is not set
CONFIG_BOOTBLOCK_SIMPLE=y
# CONFIG_BOOTBLOCK_NORMAL is not set
@@ -189,7 +195,6 @@ CONFIG_BOOTBLOCK_SOURCE="bootblock_simple.c"
CONFIG_SOCKET_SPECIFIC_OPTIONS=y
CONFIG_XIP_ROM_SIZE=0x10000
# CONFIG_CPU_AMD_AGESA is not set
-CONFIG_HIGH_SCRATCH_MEMORY_SIZE=0x0
CONFIG_CPU_INTEL_MODEL_6EX=y
CONFIG_CPU_INTEL_MODEL_6FX=y
CONFIG_SMM_TSEG_SIZE=0
@@ -261,18 +266,20 @@ CONFIG_SOUTHBRIDGE_INTEL_I82801GX=y
#
# SoC
#
+# CONFIG_SOC_NVIDIA_TEGRA124 is not set
#
# Devices
#
CONFIG_MAINBOARD_HAS_NATIVE_VGA_INIT=y
-# CONFIG_MAINBOARD_HAS_NATIVE_VGA_INIT_TEXTMODECFG is not set
+CONFIG_MAINBOARD_HAS_NATIVE_VGA_INIT_TEXTMODECFG=y
CONFIG_MAINBOARD_DO_NATIVE_VGA_INIT=y
# CONFIG_VGA_ROM_RUN is not set
# CONFIG_ON_DEVICE_ROM_RUN is not set
# CONFIG_PCI_OPTION_ROM_RUN_REALMODE is not set
# CONFIG_PCI_OPTION_ROM_RUN_YABEL is not set
# CONFIG_MULTIPLE_VGA_ADAPTERS is not set
+# CONFIG_SPD_CACHE is not set
CONFIG_PCI=y
# CONFIG_HYPERTRANSPORT_PLUGIN_SUPPORT is not set
CONFIG_PCIX_PLUGIN_SUPPORT=y
@@ -292,6 +299,7 @@ CONFIG_PCI_BUS_SEGN_BITS=0
#
# Display
#
+# CONFIG_FRAMEBUFFER_KEEP_VESA_MODE is not set
#
# PXE ROM
@@ -304,6 +312,7 @@ CONFIG_SUBSYSTEM_DEVICE_ID=0x0000
# Generic Drivers
#
# CONFIG_DRIVERS_I2C_RTD2132 is not set
+# CONFIG_I2C_TPM is not set
# CONFIG_INTEL_DP is not set
# CONFIG_INTEL_DDI is not set
CONFIG_INTEL_EDID=y
@@ -311,7 +320,7 @@ CONFIG_INTEL_EDID=y
# CONFIG_DRIVERS_LENOVO_WACOM is not set
# CONFIG_DRIVER_MAXIM_MAX77686 is not set
# CONFIG_DRIVER_PARADE_PS8625 is not set
-# CONFIG_TPM is not set
+# CONFIG_LPC_TPM is not set
# CONFIG_DRIVERS_SIL_3114 is not set
# CONFIG_SPI_FLASH is not set
# CONFIG_DRIVER_TI_TPS65090 is not set
@@ -325,6 +334,7 @@ CONFIG_DRIVERS_UART_8250IO=y
CONFIG_HAVE_USBDEBUG=y
# CONFIG_HAVE_USBDEBUG_OPTIONS is not set
# CONFIG_DRIVER_XPOWERS_AXP209 is not set
+# CONFIG_TPM is not set
CONFIG_MMCONF_SUPPORT_DEFAULT=y
CONFIG_MMCONF_SUPPORT=y
# CONFIG_BOOTMODE_STRAPS is not set
@@ -362,11 +372,10 @@ CONFIG_DEFAULT_CONSOLE_LOGLEVEL_8=y
# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_0 is not set
# CONFIG_NO_POST is not set
# CONFIG_CMOS_POST is not set
-# CONFIG_POST_IO is not set
-CONFIG_POST_DEVICE=y
CONFIG_POST_DEVICE_NONE=y
# CONFIG_POST_DEVICE_LPC is not set
# CONFIG_POST_DEVICE_PCI_PCIE is not set
+CONFIG_POST_IO_PORT=0x80
CONFIG_HAVE_ACPI_RESUME=y
# CONFIG_HAVE_ACPI_SLIC is not set
CONFIG_HAVE_HARD_RESET=y
@@ -378,10 +387,9 @@ CONFIG_HAVE_SMI_HANDLER=y
# CONFIG_PCI_IO_CFG_EXT is not set
CONFIG_IOAPIC=y
CONFIG_USE_WATCHDOG_ON_BOOT=y
-# CONFIG_VGA is not set
+CONFIG_VGA=y
# CONFIG_GFXUMA is not set
# CONFIG_RELOCATABLE_MODULES is not set
-# CONFIG_HAVE_REFCODE_BLOB is not set
CONFIG_HAVE_ACPI_TABLES=y
CONFIG_HAVE_MP_TABLE=y
CONFIG_HAVE_PIRQ_TABLE=y
diff --git a/resources/libreboot/config/t60/config b/resources/libreboot/config/t60/config
index d5754ffc..395d555a 100644
--- a/resources/libreboot/config/t60/config
+++ b/resources/libreboot/config/t60/config
@@ -19,7 +19,7 @@ CONFIG_COMPRESS_RAMSTAGE=y
CONFIG_INCLUDE_CONFIG_FILE=y
CONFIG_EARLY_CBMEM_INIT=y
# CONFIG_BROKEN_CAR_MIGRATE is not set
-# CONFIG_DYNAMIC_CBMEM is not set
+CONFIG_DYNAMIC_CBMEM=y
# CONFIG_COLLECT_TIMESTAMPS is not set
# CONFIG_USE_BLOBS is not set
# CONFIG_COVERAGE is not set
@@ -111,13 +111,13 @@ CONFIG_VGA_BIOS_ID="8086,27a2"
CONFIG_DRIVERS_PS2_KEYBOARD=y
# CONFIG_ONBOARD_VGA_IS_PRIMARY is not set
# CONFIG_VGA_BIOS is not set
+# CONFIG_CONSOLE_POST is not set
# CONFIG_UDELAY_IO is not set
CONFIG_DCACHE_RAM_BASE=0xffdf8000
CONFIG_DCACHE_RAM_SIZE=0x8000
CONFIG_ACPI_SSDTX_NUM=0
CONFIG_MMCONF_BASE_ADDRESS=0xf0000000
CONFIG_MAINBOARD_SMBIOS_MANUFACTURER="LENOVO"
-CONFIG_SEABIOS_PS2_TIMEOUT=3000
# CONFIG_PCI_64BIT_PREF_MEM is not set
CONFIG_UART_FOR_CONSOLE=0
CONFIG_ID_SECTION_OFFSET=0x80
@@ -127,14 +127,18 @@ CONFIG_ID_SECTION_OFFSET=0x80
CONFIG_STACK_SIZE=0x1000
CONFIG_CACHE_ROM_SIZE_OVERRIDE=0
CONFIG_CBFS_SIZE=0x200000
+CONFIG_POST_IO=y
+CONFIG_POST_DEVICE=y
# CONFIG_BOARD_LENOVO_X60 is not set
+# CONFIG_BOARD_LENOVO_X200 is not set
# CONFIG_BOARD_LENOVO_X201 is not set
# CONFIG_BOARD_LENOVO_X230 is not set
# CONFIG_BOARD_LENOVO_T520 is not set
# CONFIG_BOARD_LENOVO_T530 is not set
CONFIG_BOARD_LENOVO_T60=y
+CONFIG_SEABIOS_PS2_TIMEOUT=3000
CONFIG_MAINBOARD_VERSION="ThinkPad T60"
-CONFIG_CPU_ADDR_BITS=32
+CONFIG_CPU_ADDR_BITS=36
CONFIG_DEFAULT_CONSOLE_LOGLEVEL=8
# CONFIG_USBDEBUG is not set
CONFIG_MAXIMUM_SUPPORTED_FREQUENCY=0
@@ -173,6 +177,8 @@ CONFIG_HPET_ADDRESS=0xfed00000
# CONFIG_ARCH_BOOTBLOCK_ARMV7 is not set
# CONFIG_ARCH_ROMSTAGE_ARMV7 is not set
# CONFIG_ARCH_RAMSTAGE_ARMV7 is not set
+# CONFIG_CPU_HAS_BOOTBLOCK_INIT is not set
+# CONFIG_MAINBOARD_HAS_BOOTBLOCK_INIT is not set
# CONFIG_MAINBOARD_HAS_CHROMEOS is not set
CONFIG_BOOTBLOCK_SIMPLE=y
# CONFIG_BOOTBLOCK_NORMAL is not set
@@ -194,7 +200,6 @@ CONFIG_BOOTBLOCK_SOURCE="bootblock_simple.c"
CONFIG_SOCKET_SPECIFIC_OPTIONS=y
CONFIG_XIP_ROM_SIZE=0x10000
# CONFIG_CPU_AMD_AGESA is not set
-CONFIG_HIGH_SCRATCH_MEMORY_SIZE=0x0
CONFIG_CPU_INTEL_MODEL_6EX=y
CONFIG_CPU_INTEL_MODEL_6FX=y
CONFIG_SMM_TSEG_SIZE=0
@@ -273,18 +278,20 @@ CONFIG_EC_LENOVO_PMH7=y
#
# SoC
#
+# CONFIG_SOC_NVIDIA_TEGRA124 is not set
#
# Devices
#
CONFIG_MAINBOARD_HAS_NATIVE_VGA_INIT=y
-# CONFIG_MAINBOARD_HAS_NATIVE_VGA_INIT_TEXTMODECFG is not set
+CONFIG_MAINBOARD_HAS_NATIVE_VGA_INIT_TEXTMODECFG=y
CONFIG_MAINBOARD_DO_NATIVE_VGA_INIT=y
# CONFIG_VGA_ROM_RUN is not set
# CONFIG_ON_DEVICE_ROM_RUN is not set
# CONFIG_PCI_OPTION_ROM_RUN_REALMODE is not set
# CONFIG_PCI_OPTION_ROM_RUN_YABEL is not set
# CONFIG_MULTIPLE_VGA_ADAPTERS is not set
+# CONFIG_SPD_CACHE is not set
CONFIG_PCI=y
# CONFIG_HYPERTRANSPORT_PLUGIN_SUPPORT is not set
CONFIG_PCIX_PLUGIN_SUPPORT=y
@@ -304,6 +311,7 @@ CONFIG_PCI_BUS_SEGN_BITS=0
#
# Display
#
+# CONFIG_FRAMEBUFFER_KEEP_VESA_MODE is not set
#
# PXE ROM
@@ -316,6 +324,7 @@ CONFIG_SUBSYSTEM_DEVICE_ID=0x0000
# Generic Drivers
#
# CONFIG_DRIVERS_I2C_RTD2132 is not set
+# CONFIG_I2C_TPM is not set
CONFIG_DRIVERS_ICS_954309=y
# CONFIG_INTEL_DP is not set
# CONFIG_INTEL_DDI is not set
@@ -324,7 +333,7 @@ CONFIG_INTEL_EDID=y
# CONFIG_DRIVERS_LENOVO_WACOM is not set
# CONFIG_DRIVER_MAXIM_MAX77686 is not set
# CONFIG_DRIVER_PARADE_PS8625 is not set
-# CONFIG_TPM is not set
+# CONFIG_LPC_TPM is not set
# CONFIG_DRIVERS_SIL_3114 is not set
# CONFIG_SPI_FLASH is not set
# CONFIG_DRIVER_TI_TPS65090 is not set
@@ -338,6 +347,7 @@ CONFIG_DRIVERS_UART_8250IO=y
CONFIG_HAVE_USBDEBUG=y
# CONFIG_HAVE_USBDEBUG_OPTIONS is not set
# CONFIG_DRIVER_XPOWERS_AXP209 is not set
+# CONFIG_TPM is not set
CONFIG_MMCONF_SUPPORT_DEFAULT=y
CONFIG_MMCONF_SUPPORT=y
# CONFIG_BOOTMODE_STRAPS is not set
@@ -375,11 +385,10 @@ CONFIG_DEFAULT_CONSOLE_LOGLEVEL_8=y
# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_0 is not set
# CONFIG_NO_POST is not set
# CONFIG_CMOS_POST is not set
-# CONFIG_POST_IO is not set
-CONFIG_POST_DEVICE=y
CONFIG_POST_DEVICE_NONE=y
# CONFIG_POST_DEVICE_LPC is not set
# CONFIG_POST_DEVICE_PCI_PCIE is not set
+CONFIG_POST_IO_PORT=0x80
CONFIG_HAVE_ACPI_RESUME=y
# CONFIG_HAVE_ACPI_SLIC is not set
CONFIG_HAVE_HARD_RESET=y
@@ -391,10 +400,9 @@ CONFIG_HAVE_SMI_HANDLER=y
# CONFIG_PCI_IO_CFG_EXT is not set
CONFIG_IOAPIC=y
CONFIG_USE_WATCHDOG_ON_BOOT=y
-# CONFIG_VGA is not set
+CONFIG_VGA=y
# CONFIG_GFXUMA is not set
# CONFIG_RELOCATABLE_MODULES is not set
-# CONFIG_HAVE_REFCODE_BLOB is not set
CONFIG_HAVE_ACPI_TABLES=y
CONFIG_HAVE_MP_TABLE=y
CONFIG_HAVE_PIRQ_TABLE=y
diff --git a/resources/libreboot/config/x60/config b/resources/libreboot/config/x60/config
index fe56ceba..374a4c23 100644
--- a/resources/libreboot/config/x60/config
+++ b/resources/libreboot/config/x60/config
@@ -19,7 +19,7 @@ CONFIG_COMPRESS_RAMSTAGE=y
CONFIG_INCLUDE_CONFIG_FILE=y
CONFIG_EARLY_CBMEM_INIT=y
# CONFIG_BROKEN_CAR_MIGRATE is not set
-# CONFIG_DYNAMIC_CBMEM is not set
+CONFIG_DYNAMIC_CBMEM=y
# CONFIG_COLLECT_TIMESTAMPS is not set
# CONFIG_USE_BLOBS is not set
# CONFIG_COVERAGE is not set
@@ -111,13 +111,13 @@ CONFIG_VGA_BIOS_ID="8086,27a2"
CONFIG_DRIVERS_PS2_KEYBOARD=y
# CONFIG_ONBOARD_VGA_IS_PRIMARY is not set
# CONFIG_VGA_BIOS is not set
+# CONFIG_CONSOLE_POST is not set
# CONFIG_UDELAY_IO is not set
CONFIG_DCACHE_RAM_BASE=0xffdf8000
CONFIG_DCACHE_RAM_SIZE=0x8000
CONFIG_ACPI_SSDTX_NUM=0
CONFIG_MMCONF_BASE_ADDRESS=0xf0000000
CONFIG_MAINBOARD_SMBIOS_MANUFACTURER="LENOVO"
-CONFIG_SEABIOS_PS2_TIMEOUT=3000
# CONFIG_PCI_64BIT_PREF_MEM is not set
CONFIG_UART_FOR_CONSOLE=0
CONFIG_ID_SECTION_OFFSET=0x80
@@ -127,14 +127,18 @@ CONFIG_ID_SECTION_OFFSET=0x80
CONFIG_STACK_SIZE=0x1000
CONFIG_CACHE_ROM_SIZE_OVERRIDE=0
CONFIG_CBFS_SIZE=0x200000
+CONFIG_POST_IO=y
+CONFIG_POST_DEVICE=y
CONFIG_BOARD_LENOVO_X60=y
+# CONFIG_BOARD_LENOVO_X200 is not set
# CONFIG_BOARD_LENOVO_X201 is not set
# CONFIG_BOARD_LENOVO_X230 is not set
# CONFIG_BOARD_LENOVO_T520 is not set
# CONFIG_BOARD_LENOVO_T530 is not set
# CONFIG_BOARD_LENOVO_T60 is not set
+CONFIG_SEABIOS_PS2_TIMEOUT=3000
CONFIG_MAINBOARD_VERSION="ThinkPad X60s"
-CONFIG_CPU_ADDR_BITS=32
+CONFIG_CPU_ADDR_BITS=36
CONFIG_DEFAULT_CONSOLE_LOGLEVEL=8
# CONFIG_USBDEBUG is not set
CONFIG_MAXIMUM_SUPPORTED_FREQUENCY=0
@@ -173,6 +177,8 @@ CONFIG_HPET_ADDRESS=0xfed00000
# CONFIG_ARCH_BOOTBLOCK_ARMV7 is not set
# CONFIG_ARCH_ROMSTAGE_ARMV7 is not set
# CONFIG_ARCH_RAMSTAGE_ARMV7 is not set
+# CONFIG_CPU_HAS_BOOTBLOCK_INIT is not set
+# CONFIG_MAINBOARD_HAS_BOOTBLOCK_INIT is not set
# CONFIG_MAINBOARD_HAS_CHROMEOS is not set
CONFIG_BOOTBLOCK_SIMPLE=y
# CONFIG_BOOTBLOCK_NORMAL is not set
@@ -194,7 +200,6 @@ CONFIG_BOOTBLOCK_SOURCE="bootblock_simple.c"
CONFIG_SOCKET_SPECIFIC_OPTIONS=y
CONFIG_XIP_ROM_SIZE=0x10000
# CONFIG_CPU_AMD_AGESA is not set
-CONFIG_HIGH_SCRATCH_MEMORY_SIZE=0x0
CONFIG_CPU_INTEL_MODEL_6EX=y
CONFIG_CPU_INTEL_MODEL_6FX=y
CONFIG_SMM_TSEG_SIZE=0
@@ -273,18 +278,20 @@ CONFIG_EC_LENOVO_PMH7=y
#
# SoC
#
+# CONFIG_SOC_NVIDIA_TEGRA124 is not set
#
# Devices
#
CONFIG_MAINBOARD_HAS_NATIVE_VGA_INIT=y
-# CONFIG_MAINBOARD_HAS_NATIVE_VGA_INIT_TEXTMODECFG is not set
+CONFIG_MAINBOARD_HAS_NATIVE_VGA_INIT_TEXTMODECFG=y
CONFIG_MAINBOARD_DO_NATIVE_VGA_INIT=y
# CONFIG_VGA_ROM_RUN is not set
# CONFIG_ON_DEVICE_ROM_RUN is not set
# CONFIG_PCI_OPTION_ROM_RUN_REALMODE is not set
# CONFIG_PCI_OPTION_ROM_RUN_YABEL is not set
# CONFIG_MULTIPLE_VGA_ADAPTERS is not set
+# CONFIG_SPD_CACHE is not set
CONFIG_PCI=y
# CONFIG_HYPERTRANSPORT_PLUGIN_SUPPORT is not set
CONFIG_PCIX_PLUGIN_SUPPORT=y
@@ -304,6 +311,7 @@ CONFIG_PCI_BUS_SEGN_BITS=0
#
# Display
#
+# CONFIG_FRAMEBUFFER_KEEP_VESA_MODE is not set
#
# PXE ROM
@@ -316,6 +324,7 @@ CONFIG_SUBSYSTEM_DEVICE_ID=0x0000
# Generic Drivers
#
# CONFIG_DRIVERS_I2C_RTD2132 is not set
+# CONFIG_I2C_TPM is not set
CONFIG_DRIVERS_ICS_954309=y
# CONFIG_INTEL_DP is not set
# CONFIG_INTEL_DDI is not set
@@ -327,7 +336,7 @@ CONFIG_DIGITIZER_AUTODETECT=y
# CONFIG_DIGITIZER_ABSENT is not set
# CONFIG_DRIVER_MAXIM_MAX77686 is not set
# CONFIG_DRIVER_PARADE_PS8625 is not set
-# CONFIG_TPM is not set
+# CONFIG_LPC_TPM is not set
# CONFIG_DRIVERS_SIL_3114 is not set
# CONFIG_SPI_FLASH is not set
# CONFIG_DRIVER_TI_TPS65090 is not set
@@ -341,6 +350,7 @@ CONFIG_DRIVERS_UART_8250IO=y
CONFIG_HAVE_USBDEBUG=y
# CONFIG_HAVE_USBDEBUG_OPTIONS is not set
# CONFIG_DRIVER_XPOWERS_AXP209 is not set
+# CONFIG_TPM is not set
CONFIG_MMCONF_SUPPORT_DEFAULT=y
CONFIG_MMCONF_SUPPORT=y
# CONFIG_BOOTMODE_STRAPS is not set
@@ -378,11 +388,10 @@ CONFIG_DEFAULT_CONSOLE_LOGLEVEL_8=y
# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_0 is not set
# CONFIG_NO_POST is not set
# CONFIG_CMOS_POST is not set
-# CONFIG_POST_IO is not set
-CONFIG_POST_DEVICE=y
CONFIG_POST_DEVICE_NONE=y
# CONFIG_POST_DEVICE_LPC is not set
# CONFIG_POST_DEVICE_PCI_PCIE is not set
+CONFIG_POST_IO_PORT=0x80
CONFIG_HAVE_ACPI_RESUME=y
# CONFIG_HAVE_ACPI_SLIC is not set
CONFIG_HAVE_HARD_RESET=y
@@ -394,10 +403,9 @@ CONFIG_HAVE_SMI_HANDLER=y
# CONFIG_PCI_IO_CFG_EXT is not set
CONFIG_IOAPIC=y
CONFIG_USE_WATCHDOG_ON_BOOT=y
-# CONFIG_VGA is not set
+CONFIG_VGA=y
# CONFIG_GFXUMA is not set
# CONFIG_RELOCATABLE_MODULES is not set
-# CONFIG_HAVE_REFCODE_BLOB is not set
CONFIG_HAVE_ACPI_TABLES=y
CONFIG_HAVE_MP_TABLE=y
CONFIG_HAVE_PIRQ_TABLE=y
diff --git a/resources/libreboot/config/x60t/config b/resources/libreboot/config/x60t/config
index f698057f..46213436 100644
--- a/resources/libreboot/config/x60t/config
+++ b/resources/libreboot/config/x60t/config
@@ -19,7 +19,7 @@ CONFIG_COMPRESS_RAMSTAGE=y
CONFIG_INCLUDE_CONFIG_FILE=y
CONFIG_EARLY_CBMEM_INIT=y
# CONFIG_BROKEN_CAR_MIGRATE is not set
-# CONFIG_DYNAMIC_CBMEM is not set
+CONFIG_DYNAMIC_CBMEM=y
# CONFIG_COLLECT_TIMESTAMPS is not set
# CONFIG_USE_BLOBS is not set
# CONFIG_COVERAGE is not set
@@ -111,30 +111,31 @@ CONFIG_VGA_BIOS_ID="8086,27a2"
CONFIG_DRIVERS_PS2_KEYBOARD=y
# CONFIG_ONBOARD_VGA_IS_PRIMARY is not set
# CONFIG_VGA_BIOS is not set
+# CONFIG_CONSOLE_POST is not set
# CONFIG_UDELAY_IO is not set
CONFIG_DCACHE_RAM_BASE=0xffdf8000
CONFIG_DCACHE_RAM_SIZE=0x8000
CONFIG_ACPI_SSDTX_NUM=0
CONFIG_MMCONF_BASE_ADDRESS=0xf0000000
CONFIG_MAINBOARD_SMBIOS_MANUFACTURER="LENOVO"
-CONFIG_SEABIOS_PS2_TIMEOUT=3000
# CONFIG_PCI_64BIT_PREF_MEM is not set
CONFIG_UART_FOR_CONSOLE=0
CONFIG_ID_SECTION_OFFSET=0x80
-# CONFIG_BOARD_EMULATION_QEMU_X86_I440FX is not set
-# CONFIG_BOARD_EMULATION_QEMU_X86_Q35 is not set
-# CONFIG_BOARD_EMULATION_QEMU_ARMV7 is not set
CONFIG_STACK_SIZE=0x1000
CONFIG_CACHE_ROM_SIZE_OVERRIDE=0
CONFIG_CBFS_SIZE=0x200000
+CONFIG_POST_IO=y
+CONFIG_POST_DEVICE=y
CONFIG_BOARD_LENOVO_X60=y
+# CONFIG_BOARD_LENOVO_X200 is not set
# CONFIG_BOARD_LENOVO_X201 is not set
# CONFIG_BOARD_LENOVO_X230 is not set
# CONFIG_BOARD_LENOVO_T520 is not set
# CONFIG_BOARD_LENOVO_T530 is not set
# CONFIG_BOARD_LENOVO_T60 is not set
+CONFIG_SEABIOS_PS2_TIMEOUT=3000
CONFIG_MAINBOARD_VERSION="ThinkPad X60 Tablet"
-CONFIG_CPU_ADDR_BITS=32
+CONFIG_CPU_ADDR_BITS=36
CONFIG_DEFAULT_CONSOLE_LOGLEVEL=8
# CONFIG_USBDEBUG is not set
CONFIG_MAXIMUM_SUPPORTED_FREQUENCY=0
@@ -173,6 +174,8 @@ CONFIG_HPET_ADDRESS=0xfed00000
# CONFIG_ARCH_BOOTBLOCK_ARMV7 is not set
# CONFIG_ARCH_ROMSTAGE_ARMV7 is not set
# CONFIG_ARCH_RAMSTAGE_ARMV7 is not set
+# CONFIG_CPU_HAS_BOOTBLOCK_INIT is not set
+# CONFIG_MAINBOARD_HAS_BOOTBLOCK_INIT is not set
# CONFIG_MAINBOARD_HAS_CHROMEOS is not set
CONFIG_BOOTBLOCK_SIMPLE=y
# CONFIG_BOOTBLOCK_NORMAL is not set
@@ -194,7 +197,6 @@ CONFIG_BOOTBLOCK_SOURCE="bootblock_simple.c"
CONFIG_SOCKET_SPECIFIC_OPTIONS=y
CONFIG_XIP_ROM_SIZE=0x10000
# CONFIG_CPU_AMD_AGESA is not set
-CONFIG_HIGH_SCRATCH_MEMORY_SIZE=0x0
CONFIG_CPU_INTEL_MODEL_6EX=y
CONFIG_CPU_INTEL_MODEL_6FX=y
CONFIG_SMM_TSEG_SIZE=0
@@ -273,18 +275,18 @@ CONFIG_EC_LENOVO_PMH7=y
#
# SoC
#
+# CONFIG_SOC_NVIDIA_TEGRA124 is not set
#
# Devices
#
CONFIG_MAINBOARD_HAS_NATIVE_VGA_INIT=y
-# CONFIG_MAINBOARD_HAS_NATIVE_VGA_INIT_TEXTMODECFG is not set
+CONFIG_MAINBOARD_HAS_NATIVE_VGA_INIT_TEXTMODECFG=y
CONFIG_MAINBOARD_DO_NATIVE_VGA_INIT=y
# CONFIG_VGA_ROM_RUN is not set
# CONFIG_ON_DEVICE_ROM_RUN is not set
-# CONFIG_PCI_OPTION_ROM_RUN_REALMODE is not set
-# CONFIG_PCI_OPTION_ROM_RUN_YABEL is not set
# CONFIG_MULTIPLE_VGA_ADAPTERS is not set
+# CONFIG_SPD_CACHE is not set
CONFIG_PCI=y
# CONFIG_HYPERTRANSPORT_PLUGIN_SUPPORT is not set
CONFIG_PCIX_PLUGIN_SUPPORT=y
@@ -304,6 +306,7 @@ CONFIG_PCI_BUS_SEGN_BITS=0
#
# Display
#
+# CONFIG_FRAMEBUFFER_KEEP_VESA_MODE is not set
#
# PXE ROM
@@ -316,6 +319,7 @@ CONFIG_SUBSYSTEM_DEVICE_ID=0x0000
# Generic Drivers
#
# CONFIG_DRIVERS_I2C_RTD2132 is not set
+# CONFIG_I2C_TPM is not set
CONFIG_DRIVERS_ICS_954309=y
# CONFIG_INTEL_DP is not set
# CONFIG_INTEL_DDI is not set
@@ -327,7 +331,7 @@ CONFIG_DIGITIZER_PRESENT=y
# CONFIG_DIGITIZER_ABSENT is not set
# CONFIG_DRIVER_MAXIM_MAX77686 is not set
# CONFIG_DRIVER_PARADE_PS8625 is not set
-# CONFIG_TPM is not set
+# CONFIG_LPC_TPM is not set
# CONFIG_DRIVERS_SIL_3114 is not set
# CONFIG_SPI_FLASH is not set
# CONFIG_DRIVER_TI_TPS65090 is not set
@@ -341,6 +345,7 @@ CONFIG_DRIVERS_UART_8250IO=y
CONFIG_HAVE_USBDEBUG=y
# CONFIG_HAVE_USBDEBUG_OPTIONS is not set
# CONFIG_DRIVER_XPOWERS_AXP209 is not set
+# CONFIG_TPM is not set
CONFIG_MMCONF_SUPPORT_DEFAULT=y
CONFIG_MMCONF_SUPPORT=y
# CONFIG_BOOTMODE_STRAPS is not set
@@ -378,11 +383,10 @@ CONFIG_DEFAULT_CONSOLE_LOGLEVEL_8=y
# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_0 is not set
# CONFIG_NO_POST is not set
# CONFIG_CMOS_POST is not set
-# CONFIG_POST_IO is not set
-CONFIG_POST_DEVICE=y
CONFIG_POST_DEVICE_NONE=y
# CONFIG_POST_DEVICE_LPC is not set
# CONFIG_POST_DEVICE_PCI_PCIE is not set
+CONFIG_POST_IO_PORT=0x80
CONFIG_HAVE_ACPI_RESUME=y
# CONFIG_HAVE_ACPI_SLIC is not set
CONFIG_HAVE_HARD_RESET=y
@@ -394,10 +398,9 @@ CONFIG_HAVE_SMI_HANDLER=y
# CONFIG_PCI_IO_CFG_EXT is not set
CONFIG_IOAPIC=y
CONFIG_USE_WATCHDOG_ON_BOOT=y
-# CONFIG_VGA is not set
+CONFIG_VGA=y
# CONFIG_GFXUMA is not set
# CONFIG_RELOCATABLE_MODULES is not set
-# CONFIG_HAVE_REFCODE_BLOB is not set
CONFIG_HAVE_ACPI_TABLES=y
CONFIG_HAVE_MP_TABLE=y
CONFIG_HAVE_PIRQ_TABLE=y
@@ -420,8 +423,6 @@ CONFIG_PAYLOAD_ELF=y
# CONFIG_PAYLOAD_FILO is not set
# CONFIG_PAYLOAD_GRUB2 is not set
# CONFIG_PAYLOAD_TIANOCORE is not set
-# CONFIG_SEABIOS_STABLE is not set
-# CONFIG_SEABIOS_MASTER is not set
# CONFIG_SEABIOS_THREAD_OPTIONROMS is not set
CONFIG_PAYLOAD_FILE="grub.elf"
CONFIG_COMPRESSED_PAYLOAD_LZMA=y
diff --git a/resources/libreboot/patch/0000_t60_6723_and_6725_1_extension_textmode.git.diff b/resources/libreboot/patch/0000_t60_6723_and_6725_1_extension_textmode.git.diff
new file mode 100644
index 00000000..7f20c1f1
--- /dev/null
+++ b/resources/libreboot/patch/0000_t60_6723_and_6725_1_extension_textmode.git.diff
@@ -0,0 +1,12 @@
+diff --git a/src/mainboard/lenovo/t60/Kconfig b/src/mainboard/lenovo/t60/Kconfig
+index 5903c8b..e2638d8 100644
+--- a/src/mainboard/lenovo/t60/Kconfig
++++ b/src/mainboard/lenovo/t60/Kconfig
+@@ -20,6 +20,7 @@ config BOARD_SPECIFIC_OPTIONS # dummy
+ select HAVE_ACPI_TABLES
+ select HAVE_ACPI_RESUME
+ select MAINBOARD_HAS_NATIVE_VGA_INIT
++ select MAINBOARD_HAS_NATIVE_VGA_INIT_TEXTMODECFG
+ select H8_DOCK_EARLY_INIT
+ select HAVE_CMOS_DEFAULT
+ select INTEL_EDID
diff --git a/resources/libreboot/patch/0000_x60t_digitizer_irda.git.diff b/resources/libreboot/patch/0000_x60t_digitizer_irda.git.diff
deleted file mode 100644
index 11010d54..00000000
--- a/resources/libreboot/patch/0000_x60t_digitizer_irda.git.diff
+++ /dev/null
@@ -1,525 +0,0 @@
-diff --git a/src/drivers/Kconfig b/src/drivers/Kconfig
-index 874ec75..42d1583 100644
---- a/src/drivers/Kconfig
-+++ b/src/drivers/Kconfig
-@@ -26,6 +26,7 @@ source src/drivers/i2c/Kconfig
- source src/drivers/ics/Kconfig
- source src/drivers/intel/Kconfig
- source src/drivers/ipmi/Kconfig
-+source src/drivers/lenovo/Kconfig
- source src/drivers/maxim/Kconfig
- source src/drivers/parade/Kconfig
- if PC80_SYSTEM
-diff --git a/src/drivers/Makefile.inc b/src/drivers/Makefile.inc
-index 66fe7b8..cb26643 100644
---- a/src/drivers/Makefile.inc
-+++ b/src/drivers/Makefile.inc
-@@ -23,6 +23,7 @@ subdirs-y += emulation
- subdirs-y += generic
- subdirs-y += i2c
- subdirs-y += intel
-+subdirs-y += lenovo
- subdirs-y += maxim
- subdirs-y += net
- subdirs-y += parade
-diff --git a/src/drivers/lenovo/Kconfig b/src/drivers/lenovo/Kconfig
-index e69de29..30bacb9 100644
---- a/src/drivers/lenovo/Kconfig
-+++ b/src/drivers/lenovo/Kconfig
-@@ -0,0 +1,29 @@
-+config DRIVERS_LENOVO_WACOM
-+ bool
-+ default n
-+
-+if DRIVERS_LENOVO_WACOM
-+
-+choice
-+ prompt "Digitizer"
-+ default DIGITIZER_AUTODETECT
-+
-+config DIGITIZER_AUTODETECT
-+ bool "Autodetect"
-+ help
-+ The presence of digitizer is inferred from model number stored in
-+ AT24RF chip.
-+
-+config DIGITIZER_PRESENT
-+ bool "Present"
-+ help
-+ The digitizer is assumed to be present.
-+
-+config DIGITIZER_ABSENT
-+ bool "Absent"
-+ help
-+ The digitizer is assumed to be absent.
-+
-+endchoice
-+
-+endif
-diff --git a/src/drivers/lenovo/Makefile.inc b/src/drivers/lenovo/Makefile.inc
-index e69de29..c50db5b 100644
---- a/src/drivers/lenovo/Makefile.inc
-+++ b/src/drivers/lenovo/Makefile.inc
-@@ -0,0 +1 @@
-+ramstage-$(CONFIG_DRIVERS_LENOVO_WACOM) += wacom.c
-diff --git a/src/drivers/lenovo/lenovo.h b/src/drivers/lenovo/lenovo.h
-index e69de29..06b52e5 100644
---- a/src/drivers/lenovo/lenovo.h
-+++ b/src/drivers/lenovo/lenovo.h
-@@ -0,0 +1,4 @@
-+int drivers_lenovo_is_wacom_present(void);
-+void drivers_lenovo_serial_ports_ssdt_generate(const char *scope,
-+ int have_dock_serial,
-+ int have_infrared);
-diff --git a/src/drivers/lenovo/wacom.c b/src/drivers/lenovo/wacom.c
-index e69de29..ccccefd 100644
---- a/src/drivers/lenovo/wacom.c
-+++ b/src/drivers/lenovo/wacom.c
-@@ -0,0 +1,218 @@
-+/*
-+ * This file is part of the coreboot project.
-+ *
-+ * Copyright (C) 2014 Vladimir Serbinenko
-+ *
-+ * This program is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public License as
-+ * published by the Free Software Foundation; version 2, or (at your
-+ * option) any later version, of the License.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+ * GNU General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-+ * MA 02110-1301 USA
-+ */
-+
-+#include <types.h>
-+#include <console/console.h>
-+#include <arch/acpi.h>
-+#include <arch/acpigen.h>
-+#include <device/device.h>
-+#include <device/pnp.h>
-+#include <string.h>
-+#include "lenovo.h"
-+#include "drivers/i2c/at24rf08c/lenovo.h"
-+
-+static const char tablet_numbers[][5] = {
-+ /* X60t. */
-+ "6363", "6364", "6365", "6366",
-+ "6367", "6368", "7762", "7763",
-+ "7764", "7767", "7768", "7769",
-+ /* X201t. */
-+ "0053", "0831", "2985", "3093",
-+ "3113", "3144", "3239", "4184",
-+ "7448", "7449", "7450", "7453",
-+ "2263", "2266",
-+};
-+
-+int
-+drivers_lenovo_is_wacom_present(void)
-+{
-+ const char *pn;
-+ int i;
-+ static int result = -1;
-+ device_t superio;
-+ u8 sioid;
-+
-+ if (result != -1)
-+ return result;
-+
-+ if (IS_ENABLED(CONFIG_DIGITIZER_PRESENT)) {
-+ printk (BIOS_INFO, "Digitizer state forced as present\n");
-+ return (result = 1);
-+ }
-+
-+ if (IS_ENABLED(CONFIG_DIGITIZER_ABSENT)) {
-+ printk (BIOS_INFO, "Digitizer state forced as absent\n");
-+ return (result = 0);
-+ }
-+
-+ superio = dev_find_slot_pnp (0x164e, 3);
-+ if (!superio) {
-+ printk (BIOS_INFO, "No Super I/O, skipping wacom\n");
-+ return (result = 0);
-+ }
-+
-+ /* Probe ID. */
-+ sioid = pnp_read_config(superio, 0x20);
-+ if (sioid == 0xff) {
-+ printk (BIOS_INFO, "Super I/O probe failed, skipping wacom\n");
-+ return (result = 0);
-+ }
-+
-+ pn = lenovo_mainboard_partnumber();
-+ if (!pn)
-+ return (result = 0);
-+ printk (BIOS_DEBUG, "Lenovo P/N is %s\n", pn);
-+ for (i = 0; i < ARRAY_SIZE (tablet_numbers); i++)
-+ if (memcmp (tablet_numbers[i], pn, 4) == 0) {
-+ printk (BIOS_DEBUG, "Lenovo P/N %s is a tablet\n", pn);
-+ return (result = 1);
-+ }
-+ printk (BIOS_DEBUG, "Lenovo P/N %s is not a tablet\n", pn);
-+ return (result = 0);
-+}
-+
-+void
-+drivers_lenovo_serial_ports_ssdt_generate(const char *scope,
-+ int have_dock_serial,
-+ int have_infrared)
-+{
-+ int scopelen, devicelen, reslen, methodlen;
-+
-+ scopelen = acpigen_write_scope(scope);
-+
-+ if (drivers_lenovo_is_wacom_present()) {
-+ /* Device op. */
-+ scopelen += acpigen_emit_byte(0x5b);
-+ scopelen += acpigen_emit_byte(0x82);
-+ devicelen = acpigen_write_len_f();
-+ devicelen += acpigen_emit_namestring("DTR");
-+
-+ devicelen += acpigen_write_name("_HID");
-+ devicelen += acpigen_emit_eisaid("WACF004");
-+
-+ devicelen += acpigen_write_name("_CRS");
-+
-+ reslen = acpigen_write_resourcetemplate_header();
-+ reslen += acpigen_write_io16(0x200, 0x200, 1, 8, 1);
-+ reslen += acpigen_write_irq((1 << 5));
-+
-+ devicelen += reslen;
-+ devicelen += acpigen_write_resourcetemplate_footer(reslen);
-+
-+ /* method op */
-+ devicelen += acpigen_emit_byte(0x14);
-+ methodlen = acpigen_write_len_f();
-+ methodlen += acpigen_emit_namestring("_STA");
-+ /* no fnarg */
-+ methodlen += acpigen_emit_byte(0x00);
-+ /* return */
-+ methodlen += acpigen_emit_byte(0xa4);
-+ methodlen += acpigen_write_byte(0xf);
-+
-+ acpigen_patch_len(methodlen);
-+ devicelen += methodlen;
-+
-+ acpigen_patch_len(devicelen - 1);
-+ scopelen += devicelen;
-+ }
-+
-+ if (have_infrared) {
-+ /* Device op. */
-+ scopelen += acpigen_emit_byte(0x5b);
-+ scopelen += acpigen_emit_byte(0x82);
-+ devicelen = acpigen_write_len_f();
-+ devicelen += acpigen_emit_namestring("FIR");
-+
-+ devicelen += acpigen_write_name("_HID");
-+ devicelen += acpigen_emit_eisaid("IBM0071");
-+ devicelen += acpigen_write_name("_CID");
-+ devicelen += acpigen_emit_eisaid("PNP0511");
-+ devicelen += acpigen_write_name("_UID");
-+
-+ /* One */
-+ devicelen += acpigen_write_byte(0x1);
-+ devicelen += acpigen_write_name("_CRS");
-+
-+ reslen = acpigen_write_resourcetemplate_header();
-+ reslen += acpigen_write_io16(0x2f8, 0x2f8, 1, 8, 1);
-+ reslen += acpigen_write_irq(0x08);
-+
-+ devicelen += reslen;
-+ devicelen += acpigen_write_resourcetemplate_footer(reslen);
-+
-+ /* method op */
-+ devicelen += acpigen_emit_byte(0x14);
-+ methodlen = acpigen_write_len_f();
-+ methodlen += acpigen_emit_namestring("_STA");
-+ /* no fnarg */
-+ methodlen += acpigen_emit_byte(0x00);
-+ /* return */
-+ methodlen += acpigen_emit_byte(0xa4);
-+ methodlen += acpigen_write_byte(0xf);
-+ acpigen_patch_len(methodlen);
-+
-+ devicelen += methodlen;
-+
-+ acpigen_patch_len(devicelen - 1);
-+ scopelen += devicelen;
-+ }
-+
-+ if (have_dock_serial) {
-+ /* Device op. */
-+ scopelen += acpigen_emit_byte(0x5b);
-+ scopelen += acpigen_emit_byte(0x82);
-+ devicelen = acpigen_write_len_f();
-+ devicelen += acpigen_emit_namestring("COMA");
-+
-+ devicelen += acpigen_write_name("_HID");
-+ devicelen += acpigen_emit_eisaid("PNP0501");
-+ devicelen += acpigen_write_name("_UID");
-+ /* Byte */
-+ devicelen += acpigen_write_byte(0x2);
-+
-+ devicelen += acpigen_write_name("_CRS");
-+
-+ reslen = acpigen_write_resourcetemplate_header();
-+ reslen += acpigen_write_io16(0x3f8, 0x3f8, 1, 8, 1);
-+ reslen += acpigen_write_irq(1 << 4);
-+
-+ devicelen += reslen;
-+ devicelen += acpigen_write_resourcetemplate_footer(reslen);
-+
-+ /* method op */
-+ devicelen += acpigen_emit_byte(0x14);
-+ methodlen = acpigen_write_len_f();
-+ methodlen += acpigen_emit_namestring("_STA");
-+ /* no fnarg */
-+ methodlen += acpigen_emit_byte(0x00);
-+ /* return */
-+ methodlen += acpigen_emit_byte(0xa4);
-+ methodlen += acpigen_write_byte(0xf);
-+ acpigen_patch_len(methodlen);
-+
-+ devicelen += methodlen;
-+
-+ acpigen_patch_len(devicelen - 1);
-+ scopelen += devicelen;
-+ }
-+
-+ acpigen_patch_len(scopelen - 1);
-+}
-diff --git a/src/mainboard/lenovo/Kconfig b/src/mainboard/lenovo/Kconfig
-index c1dec85..583efc8 100644
---- a/src/mainboard/lenovo/Kconfig
-+++ b/src/mainboard/lenovo/Kconfig
-@@ -4,7 +4,7 @@ choice
- prompt "Mainboard model"
-
- config BOARD_LENOVO_X60
-- bool "ThinkPad X60 / X60s"
-+ bool "ThinkPad X60 / X60s / X60t"
- help
- The following X60 series ThinkPad machines have been verified to
- work correctly:
-@@ -13,7 +13,7 @@ config BOARD_LENOVO_X60
- ThinkPad X60 (Model 1709)
-
- config BOARD_LENOVO_X201
-- bool "ThinkPad X201"
-+ bool "ThinkPad X201 / X201s / X201t"
- help
- Lenovo X201 laptop. Consult wiki for details.
-
-diff --git a/src/mainboard/lenovo/t60/acpi/superio.asl b/src/mainboard/lenovo/t60/acpi/superio.asl
-index e69de29..41137ce 100644
---- a/src/mainboard/lenovo/t60/acpi/superio.asl
-+++ b/src/mainboard/lenovo/t60/acpi/superio.asl
-@@ -0,0 +1,16 @@
-+ Device (FIR) // Infrared
-+ {
-+ Name(_HID, EISAID("IBM0071"))
-+ Name(_CID, EISAID("PNP0511"))
-+
-+ Name(_CRS, ResourceTemplate()
-+ {
-+ IO (Decode16, 0x2f8, 0x2f8, 0x01, 0x08)
-+ IRQNoFlags () {3}
-+ })
-+
-+ Method (_STA, 0)
-+ {
-+ Return (0xf)
-+ }
-+ }
-diff --git a/src/mainboard/lenovo/t60/devicetree.cb b/src/mainboard/lenovo/t60/devicetree.cb
-index 54b7da3..f13cb3a 100644
---- a/src/mainboard/lenovo/t60/devicetree.cb
-+++ b/src/mainboard/lenovo/t60/devicetree.cb
-@@ -153,6 +153,10 @@ chip northbridge/intel/i945
- chip superio/nsc/pc87382
- device pnp 164e.2 on # IR
- io 0x60 = 0x2f8
-+ irq 0x29 = 0xb0
-+ irq 0x70 = 0x3
-+ drq 0x74 = 0x1
-+ irq 0xf0 = 0x82
- end
-
- device pnp 164e.3 off # Serial Port
-diff --git a/src/mainboard/lenovo/t60/romstage.c b/src/mainboard/lenovo/t60/romstage.c
-index dae917c..237e967 100644
---- a/src/mainboard/lenovo/t60/romstage.c
-+++ b/src/mainboard/lenovo/t60/romstage.c
-@@ -79,7 +79,7 @@ static void ich7_enable_lpc(void)
- // decode range
- pci_write_config16(PCI_DEV(0, 0x1f, 0), 0x80, 0x0210);
- // decode range
-- pci_write_config16(PCI_DEV(0, 0x1f, 0), 0x82, 0x1f0d);
-+ pci_write_config16(PCI_DEV(0, 0x1f, 0), 0x82, 0x1f0f);
-
- /* range 0x1600 - 0x167f */
- pci_write_config16(PCI_DEV(0, 0x1f, 0), 0x84, 0x1601);
-diff --git a/src/mainboard/lenovo/x201/Kconfig b/src/mainboard/lenovo/x201/Kconfig
-index 50df47b..61038c4 100644
---- a/src/mainboard/lenovo/x201/Kconfig
-+++ b/src/mainboard/lenovo/x201/Kconfig
-@@ -17,6 +17,8 @@ config BOARD_SPECIFIC_OPTIONS # dummy
- select EARLY_CBMEM_INIT
- select MAINBOARD_HAS_NATIVE_VGA_INIT
- select MAINBOARD_HAS_NATIVE_VGA_INIT_TEXTMODECFG
-+ select SUPERIO_NSC_PC87382
-+ select DRIVERS_LENOVO_WACOM
-
- config MAINBOARD_DIR
- string
-@@ -28,7 +30,7 @@ config MAINBOARD_PART_NUMBER
-
- config MAINBOARD_VERSION
- string
-- default "ThinkPad X201"
-+ default "ThinkPad X201 / X201s / X201t"
-
- config MAINBOARD_VENDOR
- string
-diff --git a/src/mainboard/lenovo/x201/acpi_tables.c b/src/mainboard/lenovo/x201/acpi_tables.c
-index 165de0d..710e369 100644
---- a/src/mainboard/lenovo/x201/acpi_tables.c
-+++ b/src/mainboard/lenovo/x201/acpi_tables.c
-@@ -31,6 +31,7 @@
- #include <device/pci.h>
- #include <device/pci_ids.h>
- #include "southbridge/intel/ibexpeak/nvs.h"
-+#include "drivers/lenovo/lenovo.h"
-
- extern const unsigned char AmlCode[];
- #if CONFIG_HAVE_ACPI_SLIC
-@@ -93,6 +94,7 @@ unsigned long acpi_fill_ssdt_generator(unsigned long current,
- const char *oem_table_id)
- {
- generate_cpu_entries();
-+ drivers_lenovo_serial_ports_ssdt_generate("\\_SB.PCI0.LPCB", 0, 0);
- return (unsigned long)(acpigen_get_current());
- }
-
-diff --git a/src/mainboard/lenovo/x201/devicetree.cb b/src/mainboard/lenovo/x201/devicetree.cb
-index 9053f89..1db5bf0 100644
---- a/src/mainboard/lenovo/x201/devicetree.cb
-+++ b/src/mainboard/lenovo/x201/devicetree.cb
-@@ -143,6 +143,20 @@ chip northbridge/intel/nehalem
- end
- device pci 1f.0 on # PCI-LPC bridge
- subsystemid 0x17aa 0x2166
-+ chip superio/nsc/pc87382
-+ device pnp 164e.3 on # Digitizer
-+ io 0x60 = 0x200
-+ irq 0x29 = 0xb0
-+ irq 0x70 = 0x5
-+ irq 0xf0 = 0x82
-+ end
-+ # IR, not connected
-+ device pnp 164e.2 off end
-+ # GPIO, not connected
-+ device pnp 164e.7 off end
-+ # DLPC, not connected
-+ device pnp 164e.19 off end
-+ end
- end
- device pci 1f.2 on # IDE/SATA
- subsystemid 0x17aa 0x2168
-diff --git a/src/mainboard/lenovo/x201/romstage.c b/src/mainboard/lenovo/x201/romstage.c
-index 1237a5c..f74b441 100644
---- a/src/mainboard/lenovo/x201/romstage.c
-+++ b/src/mainboard/lenovo/x201/romstage.c
-@@ -53,7 +53,7 @@ static void pch_enable_lpc(void)
- /* Enable EC, PS/2 Keyboard/Mouse */
- pci_write_config16(PCH_LPC_DEV, LPC_EN,
- CNF2_LPC_EN | CNF1_LPC_EN | MC_LPC_EN | KBC_LPC_EN |
-- COMA_LPC_EN);
-+ COMA_LPC_EN | GAMEL_LPC_EN);
-
- pci_write_config32(PCH_LPC_DEV, LPC_GEN1_DEC, 0x7c1601);
- pci_write_config32(PCH_LPC_DEV, LPC_GEN2_DEC, 0xc15e1);
-diff --git a/src/mainboard/lenovo/x60/Kconfig b/src/mainboard/lenovo/x60/Kconfig
-index b0d7a06..3c708cd 100644
---- a/src/mainboard/lenovo/x60/Kconfig
-+++ b/src/mainboard/lenovo/x60/Kconfig
-@@ -24,6 +24,7 @@ config BOARD_SPECIFIC_OPTIONS # dummy
- select MAINBOARD_HAS_NATIVE_VGA_INIT
- select EARLY_CBMEM_INIT
- select H8_DOCK_EARLY_INIT
-+ select DRIVERS_LENOVO_WACOM
- select INTEL_EDID
-
- config MAINBOARD_DIR
-@@ -40,7 +41,7 @@ config DCACHE_RAM_SIZE
-
- config MAINBOARD_PART_NUMBER
- string
-- default "ThinkPad X60 / X60s"
-+ default "ThinkPad X60 / X60s / X60t"
-
- config MMCONF_BASE_ADDRESS
- hex
-diff --git a/src/mainboard/lenovo/x60/acpi_tables.c b/src/mainboard/lenovo/x60/acpi_tables.c
-index f6ed4ae..c8fce7f 100644
---- a/src/mainboard/lenovo/x60/acpi_tables.c
-+++ b/src/mainboard/lenovo/x60/acpi_tables.c
-@@ -29,6 +29,7 @@
- #include <device/device.h>
- #include <device/pci.h>
- #include <device/pci_ids.h>
-+#include "drivers/lenovo/lenovo.h"
-
- extern const unsigned char AmlCode[];
- #if CONFIG_HAVE_ACPI_SLIC
-@@ -86,6 +87,7 @@ unsigned long acpi_fill_madt(unsigned long current)
- unsigned long acpi_fill_ssdt_generator(unsigned long current, const char *oem_table_id)
- {
- generate_cpu_entries();
-+ drivers_lenovo_serial_ports_ssdt_generate("\\_SB.PCI0.LPCB", 1, 1);
- return (unsigned long) (acpigen_get_current());
- }
-
-diff --git a/src/mainboard/lenovo/x60/devicetree.cb b/src/mainboard/lenovo/x60/devicetree.cb
-index dc1c5da..6f9d5d9 100644
---- a/src/mainboard/lenovo/x60/devicetree.cb
-+++ b/src/mainboard/lenovo/x60/devicetree.cb
-@@ -130,10 +130,17 @@ chip northbridge/intel/i945
- chip superio/nsc/pc87382
- device pnp 164e.2 on # IR
- io 0x60 = 0x2f8
-+ irq 0x29 = 0xb0
-+ irq 0x70 = 0x3
-+ drq 0x74 = 0x1
-+ irq 0xf0 = 0x82
- end
-
-- device pnp 164e.3 off # Serial Port
-- io 0x60 = 0x3f8
-+ device pnp 164e.3 on # Digitizer
-+ io 0x60 = 0x200
-+ irq 0x29 = 0xb0
-+ irq 0x70 = 0x5
-+ irq 0xf0 = 0x82
- end
-
- device pnp 164e.7 on # GPIO
-diff --git a/src/mainboard/lenovo/x60/romstage.c b/src/mainboard/lenovo/x60/romstage.c
-index 1198fb2..8eca464 100644
---- a/src/mainboard/lenovo/x60/romstage.c
-+++ b/src/mainboard/lenovo/x60/romstage.c
-@@ -86,7 +86,7 @@ static void ich7_enable_lpc(void)
- // decode range
- pci_write_config16(PCI_DEV(0, 0x1f, 0), 0x80, 0x0210);
- // decode range
-- pci_write_config16(PCI_DEV(0, 0x1f, 0), 0x82, 0x1f0d);
-+ pci_write_config16(PCI_DEV(0, 0x1f, 0), 0x82, 0x1f0f);
-
- /* range 0x1600 - 0x167f */
- pci_write_config16(PCI_DEV(0, 0x1f, 0), 0x84, 0x1601);
diff --git a/resources/libreboot/patch/0001_i945_3dfix.git.diff b/resources/libreboot/patch/0001_i945_3dfix.git.diff
deleted file mode 100644
index f4173397..00000000
--- a/resources/libreboot/patch/0001_i945_3dfix.git.diff
+++ /dev/null
@@ -1,37 +0,0 @@
-diff --git a/src/northbridge/intel/i945/gma.c b/src/northbridge/intel/i945/gma.c
-index 4dd2ccf..5dbaff3 100644
---- a/src/northbridge/intel/i945/gma.c
-+++ b/src/northbridge/intel/i945/gma.c
-@@ -33,6 +33,8 @@
-
- #define GDRST 0xc0
-
-+#define BSM 0x5c
-+
- #define LVDS_CLOCK_A_POWERUP_ALL (3 << 8)
- #define LVDS_CLOCK_B_POWERUP_ALL (3 << 4)
- #define LVDS_CLOCK_BOTH_POWERUP_ALL (3 << 2)
-@@ -51,11 +53,19 @@
- static int gtt_setup(unsigned int mmiobase)
- {
- unsigned long PGETBL_save;
--
-- PGETBL_save = read32(mmiobase + PGETBL_CTL) & ~PGETBL_ENABLED;
-+ unsigned long tom; // top of memory
-+
-+ /*
-+ * The Video BIOS places the GTT right below top of memory.
-+ * It is not documented in the Intel 945 datasheet, but the Intel
-+ * developers said that it is normally placed there.
-+ *
-+ * TODO: Add option to make the GTT size runtime
-+ * configurable
-+ */
-+ tom = pci_read_config8(dev_find_slot(0, PCI_DEVFN(0, 0)), TOLUD) << 24;
-+ PGETBL_save = tom - 256 * KiB;
- PGETBL_save |= PGETBL_ENABLED;
--
-- PGETBL_save |= pci_read_config32(dev_find_slot(0, PCI_DEVFN(2,0)), 0x5c) & 0xfffff000;
- PGETBL_save |= 2; /* set GTT to 256kb */
-
- write32(mmiobase + GFX_FLSH_CNTL, 0);
diff --git a/resources/libreboot/patch/0001_t60_6731_6_extension_acpi_brightness.git.diff b/resources/libreboot/patch/0001_t60_6731_6_extension_acpi_brightness.git.diff
new file mode 100644
index 00000000..4e36a6c7
--- /dev/null
+++ b/resources/libreboot/patch/0001_t60_6731_6_extension_acpi_brightness.git.diff
@@ -0,0 +1,12 @@
+diff --git a/src/mainboard/lenovo/t60/devicetree.cb b/src/mainboard/lenovo/t60/devicetree.cb
+index 54b7da3..f187bfb 100644
+--- a/src/mainboard/lenovo/t60/devicetree.cb
++++ b/src/mainboard/lenovo/t60/devicetree.cb
+@@ -25,7 +25,6 @@ chip northbridge/intel/i945
+ register "gpu_hotplug" = "0x00000220"
+ register "gpu_lvds_use_spread_spectrum_clock" = "1"
+ register "gpu_lvds_is_dual_channel" = "1"
+- register "gpu_backlight" = "0x1280128"
+
+ device cpu_cluster 0 on
+ chip cpu/intel/socket_mFCPGA478
diff --git a/resources/libreboot/patch/0002_i945_6731_6_extension_fix_uneven_backlight.git.diff b/resources/libreboot/patch/0002_i945_6731_6_extension_fix_uneven_backlight.git.diff
new file mode 100644
index 00000000..eb8936ec
--- /dev/null
+++ b/resources/libreboot/patch/0002_i945_6731_6_extension_fix_uneven_backlight.git.diff
@@ -0,0 +1,22 @@
+diff --git a/src/northbridge/intel/i945/acpi/igd.asl b/src/northbridge/intel/i945/acpi/igd.asl
+index 47b66a7..f9c8ef4 100644
+--- a/src/northbridge/intel/i945/acpi/igd.asl
++++ b/src/northbridge/intel/i945/acpi/igd.asl
+@@ -216,14 +216,14 @@ Device (GFX0)
+
+ Method (_BCM, 1, NotSerialized)
+ {
+- Store (ShiftLeft (Arg0, 4), ^^BCLV)
++ Store (ShiftLeft (Arg0, 9), ^^BCLV)
+ Store (0x80000000, ^^CR1)
+- Store (ShiftLeft (0x61, 4), ^^BCLM)
++ Store (ShiftLeft (0x61, 9), ^^BCLM)
+ }
+ Method (_BQC, 0, NotSerialized)
+ {
+ Store (^^BCLV, Local0)
+- ShiftRight (Local0, 4, Local0)
++ ShiftRight (Local0, 9, Local0)
+ Return (Local0)
+ }
+
diff --git a/resources/libreboot/patch/0002_x60_backlight.diff b/resources/libreboot/patch/0002_x60_backlight.diff
deleted file mode 100644
index d787db54..00000000
--- a/resources/libreboot/patch/0002_x60_backlight.diff
+++ /dev/null
@@ -1,4 +0,0 @@
-28c28
-< register "gpu_backlight" = "0x1280128"
----
-> register "gpu_backlight" = "0x879F879E"
diff --git a/resources/libreboot/patch/0003_t60_backlight.diff b/resources/libreboot/patch/0003_t60_backlight.diff
deleted file mode 100644
index 2d1a396d..00000000
--- a/resources/libreboot/patch/0003_t60_backlight.diff
+++ /dev/null
@@ -1,4 +0,0 @@
-28c28
-< register "gpu_backlight" = "0x1280128"
----
-> register "gpu_backlight" = "0x58BF58BE"
diff --git a/resources/libreboot/patch/gitdiff b/resources/libreboot/patch/gitdiff
new file mode 100644
index 00000000..db3218d3
--- /dev/null
+++ b/resources/libreboot/patch/gitdiff
@@ -0,0 +1,46 @@
+diff --git a/src/mainboard/lenovo/t60/Kconfig b/src/mainboard/lenovo/t60/Kconfig
+index 5903c8b..e2638d8 100644
+--- a/src/mainboard/lenovo/t60/Kconfig
++++ b/src/mainboard/lenovo/t60/Kconfig
+@@ -20,6 +20,7 @@ config BOARD_SPECIFIC_OPTIONS # dummy
+ select HAVE_ACPI_TABLES
+ select HAVE_ACPI_RESUME
+ select MAINBOARD_HAS_NATIVE_VGA_INIT
++ select MAINBOARD_HAS_NATIVE_VGA_INIT_TEXTMODECFG
+ select H8_DOCK_EARLY_INIT
+ select HAVE_CMOS_DEFAULT
+ select INTEL_EDID
+diff --git a/src/mainboard/lenovo/t60/devicetree.cb b/src/mainboard/lenovo/t60/devicetree.cb
+index 54b7da3..f187bfb 100644
+--- a/src/mainboard/lenovo/t60/devicetree.cb
++++ b/src/mainboard/lenovo/t60/devicetree.cb
+@@ -25,7 +25,6 @@ chip northbridge/intel/i945
+ register "gpu_hotplug" = "0x00000220"
+ register "gpu_lvds_use_spread_spectrum_clock" = "1"
+ register "gpu_lvds_is_dual_channel" = "1"
+- register "gpu_backlight" = "0x1280128"
+
+ device cpu_cluster 0 on
+ chip cpu/intel/socket_mFCPGA478
+diff --git a/src/northbridge/intel/i945/acpi/igd.asl b/src/northbridge/intel/i945/acpi/igd.asl
+index 47b66a7..f9c8ef4 100644
+--- a/src/northbridge/intel/i945/acpi/igd.asl
++++ b/src/northbridge/intel/i945/acpi/igd.asl
+@@ -216,14 +216,14 @@ Device (GFX0)
+
+ Method (_BCM, 1, NotSerialized)
+ {
+- Store (ShiftLeft (Arg0, 4), ^^BCLV)
++ Store (ShiftLeft (Arg0, 9), ^^BCLV)
+ Store (0x80000000, ^^CR1)
+- Store (ShiftLeft (0x61, 4), ^^BCLM)
++ Store (ShiftLeft (0x61, 9), ^^BCLM)
+ }
+ Method (_BQC, 0, NotSerialized)
+ {
+ Store (^^BCLV, Local0)
+- ShiftRight (Local0, 4, Local0)
++ ShiftRight (Local0, 9, Local0)
+ Return (Local0)
+ }
+
diff --git a/resources/memtest86/patch/Makefile b/resources/memtest86/patch/Makefile
new file mode 100644
index 00000000..1a187b62
--- /dev/null
+++ b/resources/memtest86/patch/Makefile
@@ -0,0 +1,81 @@
+# Makefile for MemTest86+
+#
+# Author: Chris Brady
+# Created: January 1, 1996
+
+
+#
+# Path for the floppy disk device
+#
+FDISK=/dev/fd0
+
+AS=as -32
+CC=gcc
+
+CFLAGS= -Wall -march=i486 -m32 -O1 -fomit-frame-pointer -fno-builtin \
+ -ffreestanding -fPIC $(SMP_FL) -fno-stack-protector
+
+OBJS= head.o reloc.o main.o test.o init.o lib.o patn.o screen_buffer.o \
+ config.o cpuid.o linuxbios.o pci.o memsize.o spd.o error.o dmi.o controller.o \
+ smp.o vmem.o random.o
+
+
+all: clean memtest.bin memtest
+# scp memtest.bin root@192.168.0.12:/srv/tftp/mt86plus
+
+# Link it statically once so I know I don't have undefined
+# symbols and then link it dynamically so I have full
+# relocation information
+memtest_shared: $(OBJS) memtest_shared.lds Makefile
+ $(LD) --warn-constructors --warn-common -static -T memtest_shared.lds \
+ -o $@ $(OBJS) && \
+ $(LD) -shared -Bsymbolic -T memtest_shared.lds -o $@ $(OBJS)
+
+memtest_shared.bin: memtest_shared
+ objcopy -O binary $< memtest_shared.bin
+
+memtest: memtest_shared.bin memtest.lds
+ $(LD) -s -T memtest.lds -b binary memtest_shared.bin -o $@
+
+head.s: head.S config.h defs.h test.h
+ $(CC) -E -traditional $< -o $@
+
+bootsect.s: bootsect.S config.h defs.h
+ $(CC) -E -traditional $< -o $@
+
+setup.s: setup.S config.h defs.h
+ $(CC) -E -traditional $< -o $@
+
+memtest.bin: memtest_shared.bin bootsect.o setup.o memtest.bin.lds
+ $(LD) -T memtest.bin.lds bootsect.o setup.o -b binary \
+ memtest_shared.bin -o memtest.bin
+
+reloc.o: reloc.c
+ $(CC) -c $(CFLAGS) -fno-strict-aliasing reloc.c
+
+test.o: test.c
+ $(CC) -c -Wall -march=i486 -m32 -O0 -fomit-frame-pointer -fno-builtin -ffreestanding test.c
+
+random.o: random.c
+ $(CC) -c -Wall -march=i486 -m32 -O3 -fomit-frame-pointer -fno-builtin -ffreestanding random.c
+
+# rule for build number generation
+build_number:
+ sh make_buildnum.sh
+
+clean:
+ rm -f *.o *.s *.iso memtest.bin memtest memtest_shared \
+ memtest_shared.bin memtest.iso
+
+iso:
+ make all
+ ./makeiso.sh
+
+install: all
+ dd <memtest.bin >$(FDISK) bs=8192
+
+install-precomp:
+ dd <precomp.bin >$(FDISK) bs=8192
+
+dos: all
+ cat mt86+_loader memtest.bin > memtest.exe
diff --git a/resources/memtest86/patch/config.h b/resources/memtest86/patch/config.h
new file mode 100644
index 00000000..10ac525a
--- /dev/null
+++ b/resources/memtest86/patch/config.h
@@ -0,0 +1,52 @@
+/*
+ * MemTest86+ V5 Specific code (GPL V2.0)
+ * By Samuel DEMEULEMEESTER, sdemeule@memtest.org
+ * http://www.canardpc.com - http://www.memtest.org
+ * ------------------------------------------------
+ * config.h - MemTest-86 Version 3.3
+ *
+ * Compile time configuration options
+ *
+ * Released under version 2 of the Gnu Public License.
+ * By Chris Brady
+ */
+
+/* CONSERVATIVE_SMP - If set to 0, SMP will be enabled by default */
+/* Might be enabled in future revision after extensive testing */
+/* In all cases, SMP is disabled by defaut on server platform */
+#define CONSERVATIVE_SMP 1
+
+/* BEEP_MODE - Beep on error. Default off, Change to 1 to enable */
+#define BEEP_MODE 1
+
+/* BEEP_END_NO_ERROR - Beep at end of each pass without error. Default off, Change to 1 to enable */
+#define BEEP_END_NO_ERROR 0
+
+/* PARITY_MEM - Enables support for reporting memory parity errors */
+/* Experimental, normally enabled */
+#define PARITY_MEM
+
+/* SERIAL_CONSOLE_DEFAULT - The default state of the serial console. */
+/* This is normally off since it slows down testing. Change to a 1 */
+/* to enable. */
+#define SERIAL_CONSOLE_DEFAULT 0
+
+/* SERIAL_TTY - The default serial port to use. 0=ttyS0, 1=ttyS1 */
+#define SERIAL_TTY 0
+
+/* SERIAL_BAUD_RATE - Baud rate for the serial console */
+#define SERIAL_BAUD_RATE 115200
+
+/* SCRN_DEBUG - extra check for SCREEN_BUFFER
+ */
+/* #define SCRN_DEBUG */
+
+/* APM - Turns off APM at boot time to avoid blanking the screen */
+/* Normally enabled */
+#define APM_OFF
+
+/* USB_WAR - Enables a workaround for errors caused by BIOS USB keyboard */
+/* and mouse support*/
+/* Normally enabled */
+#define USB_WAR
+
diff --git a/resources/memtest86/patch/diff b/resources/memtest86/patch/diff
deleted file mode 100644
index 0abd8d06..00000000
--- a/resources/memtest86/patch/diff
+++ /dev/null
@@ -1,40 +0,0 @@
-diff -rupN memtest86+-5.01_/config.h memtest86+-5.01/config.h
---- memtest86+-5.01_/config.h 2014-06-25 22:57:47.893476783 +0100
-+++ memtest86+-5.01/config.h 2014-06-25 22:59:01.269840630 +0100
-@@ -17,7 +17,7 @@
- #define CONSERVATIVE_SMP 1
-
- /* BEEP_MODE - Beep on error. Default off, Change to 1 to enable */
--#define BEEP_MODE 0
-+#define BEEP_MODE 1
-
- /* BEEP_END_NO_ERROR - Beep at end of each pass without error. Default off, Change to 1 to enable */
- #define BEEP_END_NO_ERROR 0
-@@ -29,13 +29,13 @@
- /* SERIAL_CONSOLE_DEFAULT - The default state of the serial console. */
- /* This is normally off since it slows down testing. Change to a 1 */
- /* to enable. */
--#define SERIAL_CONSOLE_DEFAULT 0
-+#define SERIAL_CONSOLE_DEFAULT 1
-
- /* SERIAL_TTY - The default serial port to use. 0=ttyS0, 1=ttyS1 */
- #define SERIAL_TTY 0
-
- /* SERIAL_BAUD_RATE - Baud rate for the serial console */
--#define SERIAL_BAUD_RATE 9600
-+#define SERIAL_BAUD_RATE 115200
-
- /* SCRN_DEBUG - extra check for SCREEN_BUFFER
- */
-diff -rupN memtest86+-5.01_/Makefile memtest86+-5.01/Makefile
---- memtest86+-5.01_/Makefile 2014-06-25 22:57:47.893476783 +0100
-+++ memtest86+-5.01/Makefile 2014-06-25 22:59:19.237929751 +0100
-@@ -21,7 +21,7 @@ OBJS= head.o reloc.o main.o test.o init.
-
-
- all: clean memtest.bin memtest
-- scp memtest.bin root@192.168.0.12:/srv/tftp/mt86plus
-+# scp memtest.bin root@192.168.0.12:/srv/tftp/mt86plus
-
- # Link it statically once so I know I don't have undefined
- # symbols and then link it dynamically so I have full
diff --git a/resources/seabios/config/config b/resources/seabios/config/config
new file mode 100644
index 00000000..4ef81379
--- /dev/null
+++ b/resources/seabios/config/config
@@ -0,0 +1,87 @@
+#
+# Automatically generated file; DO NOT EDIT.
+# SeaBIOS Configuration
+#
+
+#
+# General Features
+#
+CONFIG_COREBOOT=y
+# CONFIG_QEMU is not set
+# CONFIG_CSM is not set
+# CONFIG_QEMU_HARDWARE is not set
+CONFIG_THREADS=y
+CONFIG_RELOCATE_INIT=y
+CONFIG_BOOTMENU=y
+CONFIG_BOOTSPLASH=y
+CONFIG_BOOTORDER=y
+CONFIG_COREBOOT_FLASH=y
+CONFIG_LZMA=y
+CONFIG_CBFS_LOCATION=0
+CONFIG_FLASH_FLOPPY=y
+CONFIG_ENTRY_EXTRASTACK=y
+CONFIG_MALLOC_UPPERMEMORY=y
+CONFIG_ROM_SIZE=0
+
+#
+# Hardware support
+#
+CONFIG_ATA=y
+# CONFIG_ATA_DMA is not set
+# CONFIG_ATA_PIO32 is not set
+CONFIG_AHCI=y
+CONFIG_MEGASAS=y
+CONFIG_FLOPPY=y
+CONFIG_PS2PORT=y
+CONFIG_USB=y
+CONFIG_USB_UHCI=y
+CONFIG_USB_OHCI=y
+CONFIG_USB_EHCI=y
+CONFIG_USB_XHCI=y
+CONFIG_USB_MSC=y
+CONFIG_USB_UAS=y
+CONFIG_USB_HUB=y
+CONFIG_USB_KEYBOARD=y
+CONFIG_USB_MOUSE=y
+CONFIG_SERIAL=y
+CONFIG_LPT=y
+CONFIG_PMTIMER=y
+
+#
+# BIOS interfaces
+#
+CONFIG_DRIVES=y
+CONFIG_CDROM_BOOT=y
+CONFIG_CDROM_EMU=y
+CONFIG_PCIBIOS=y
+CONFIG_APMBIOS=y
+CONFIG_PNPBIOS=y
+CONFIG_OPTIONROMS=y
+CONFIG_PMM=y
+CONFIG_BOOT=y
+CONFIG_KEYBOARD=y
+CONFIG_KBD_CALL_INT15_4F=y
+CONFIG_MOUSE=y
+CONFIG_S3_RESUME=y
+CONFIG_VGAHOOKS=y
+# CONFIG_DISABLE_A20 is not set
+
+#
+# VGA ROM
+#
+# CONFIG_NO_VGABIOS is not set
+# CONFIG_VGA_STANDARD_VGA is not set
+# CONFIG_VGA_CIRRUS is not set
+# CONFIG_VGA_BOCHS is not set
+# CONFIG_VGA_GEODEGX2 is not set
+# CONFIG_VGA_GEODELX is not set
+CONFIG_VGA_COREBOOT=y
+CONFIG_BUILD_VGABIOS=y
+CONFIG_VGA_ALLOCATE_EXTRA_STACK=y
+CONFIG_VGA_EXTRA_STACK_SIZE=512
+CONFIG_VGA_VBE=y
+
+#
+# Debugging
+#
+CONFIG_DEBUG_LEVEL=0
diff --git a/resources/utilities/README-i945-pwm b/resources/utilities/README-i945-pwm
new file mode 100644
index 00000000..4098635a
--- /dev/null
+++ b/resources/utilities/README-i945-pwm
@@ -0,0 +1,4 @@
+git clone git://git.mtjm.eu/i945-pwm.git
+^ is where i945-pwm came from.
+
+The usual git commands apply.
diff --git a/resources/utilities/grub-assemble/gen.sh b/resources/utilities/grub-assemble/gen.sh
new file mode 100755
index 00000000..4f2b36ab
--- /dev/null
+++ b/resources/utilities/grub-assemble/gen.sh
@@ -0,0 +1,30 @@
+#!/bin/sh
+# Copying and distribution of this file, with or without modification,
+# are permitted in any medium without royalty provided the copyright
+# notice and this notice are preserved. This file is offered as-is,
+# without any warranty.
+
+# TODO: Fail (and clean up) if GRUB isn't actually built. Error checking.
+
+# This is where GRUB is expected to be (outside of the grub-assemble, instead in main checkout)
+grubdir="../../../grub"
+
+# Modules
+# Unused. If wanting to add, put after --modules: --install-modules="$grub_install_modules" \
+# Added 'pata' because otherwise, error would appear on X60 saying 'error: no device connected'
+grub_install_modules="adler32 all_video archelp ata backtrace bitmap bitmap_scale cmp cpio_be cpio cpuid crc64 cs5536 div_test efiemu elf eval exfat extcmd file fshelp gettext gfxmenu gfxterm_background gfxterm_menu gptsync gzio hashsum hexdump http jpeg linux16 loadenv lzopio mda_text mmap mpi msdospart multiboot2 multiboot nativedisk net newc ntfscomp ntfs odc offsetio parttool png priority_queue procfs progress read relocator scsi search_fs_file search_fs_uuid search_label search setjmp setpci sleep squash4 tar terminfo testload testspeed tftp tga time trig tr true udf ufs1_be ufs1 ufs2 usbserial_common usbserial_ftdi usbserial_pl2303 usbserial_usbdebug usbtest video_colors videotest_checksum xzio"
+
+# More modules
+grub_modules="acpi ahci at_keyboard boot cat cbfs cbls cbtime chain cmosdump cmostest cbmemc crypto cryptodisk configfile datehook date datetime diskfilter disk echo ext2 ehci fat halt help iorw iso9660 keystatus linux loopback ls lsacpi lsmmap lspci luks lvm memdisk minicmd memrw morse normal ohci part_gpt part_msdos password password_pbkdf2 pbkdf2 pcidump pci play probe reboot serial terminal test usb_keyboard usbms uhci gcry_arcfour gcry_blowfish gcry_camellia gcry_cast5 gcry_crc gcry_des gcry_dsa gcry_idea gcry_md4 gcry_md5 gcry_rfc2268 gcry_rijndael gcry_rmd160 gcry_rsa gcry_seed gcry_serpent gcry_sha1 gcry_sha256 gcry_sha512 gcry_tiger gcry_twofish gcry_whirlpool hdparm regexp spkmodem syslinuxcfg usb verify videoinfo videotest xfs btrfs zfs sfs romfs reiserfs nilfs2 minix_be minix3_be minix3 minix2_be minix2 minix jfs hfsplus hfs bfs afs affs"
+
+# Generate the grub.elf
+$grubdir/grub-mkstandalone \
+ --grub-mkimage=$grubdir/grub-mkimage \
+ -O i386-coreboot \
+ -o grub.elf \
+ -d $grubdir/grub-core/ \
+ --fonts= --themes= --locales= \
+ --modules="$grub_modules" \
+ --install-modules="$grub_install_modules" \
+ /boot/grub/grub.cfg=../../../resources/grub/config/grub_memdisk.cfg \
+ $(./grub_memdisk_keymap) \
diff --git a/grub_memdisk_keymap b/resources/utilities/grub-assemble/grub_memdisk_keymap
index 09ae4c5d..98bf3e0b 100755
--- a/grub_memdisk_keymap
+++ b/resources/utilities/grub-assemble/grub_memdisk_keymap
@@ -3,7 +3,7 @@
#
# lists keymaps
#
-# Copyright (C) 2014 Francis Rowe
+# Copyright (C) 2014 Francis Rowe <info@gluglug.org.uk>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -19,7 +19,7 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
-for keymap in $(ls ../resources/grub/keymap/original)
+for keymap in $(ls keymap/original)
do
- printf "/boot/grub/layouts/$keymap.gkb=../resources/grub/keymap/$keymap.gkb "
+ printf "/boot/grub/layouts/$keymap.gkb=keymap/$keymap.gkb "
done
diff --git a/resources/grub/keymap/COPYING b/resources/utilities/grub-assemble/keymap/COPYING
index 1a47bfa4..1a47bfa4 100644
--- a/resources/grub/keymap/COPYING
+++ b/resources/utilities/grub-assemble/keymap/COPYING
diff --git a/resources/grub/keymap/frazerty.gkb b/resources/utilities/grub-assemble/keymap/frazerty.gkb
index c048cec5..c048cec5 100644
--- a/resources/grub/keymap/frazerty.gkb
+++ b/resources/utilities/grub-assemble/keymap/frazerty.gkb
Binary files differ
diff --git a/resources/grub/keymap/itqwerty.gkb b/resources/utilities/grub-assemble/keymap/itqwerty.gkb
index f247cd17..f247cd17 100644
--- a/resources/grub/keymap/itqwerty.gkb
+++ b/resources/utilities/grub-assemble/keymap/itqwerty.gkb
Binary files differ
diff --git a/resources/grub/keymap/original/frazerty b/resources/utilities/grub-assemble/keymap/original/frazerty
index ad7147af..ad7147af 100644
--- a/resources/grub/keymap/original/frazerty
+++ b/resources/utilities/grub-assemble/keymap/original/frazerty
diff --git a/resources/grub/keymap/original/itqwerty b/resources/utilities/grub-assemble/keymap/original/itqwerty
index 6c53aac3..6c53aac3 100644
--- a/resources/grub/keymap/original/itqwerty
+++ b/resources/utilities/grub-assemble/keymap/original/itqwerty
diff --git a/resources/utilities/grub-assemble/keymap/original/svenska b/resources/utilities/grub-assemble/keymap/original/svenska
new file mode 100644
index 00000000..3ee5bc96
--- /dev/null
+++ b/resources/utilities/grub-assemble/keymap/original/svenska
@@ -0,0 +1,130 @@
+keymaps 0-127
+keycode 1 = Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape
+keycode 2 = U+0031 U+0021 U+00a1 U+00b9 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_one Meta_exclam Meta_one Meta_exclam VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0031 U+0021 U+00a1 U+00b9 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_one Meta_exclam Meta_one Meta_exclam VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0031 U+0021 U+00a1 U+00b9 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_one Meta_exclam Meta_one Meta_exclam VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0031 U+0021 U+00a1 U+00b9 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_one Meta_exclam Meta_one Meta_exclam VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0031 U+0021 U+00a1 U+00b9 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_one Meta_exclam Meta_one Meta_exclam VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0031 U+0021 U+00a1 U+00b9 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_one Meta_exclam Meta_one Meta_exclam VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0031 U+0021 U+00a1 U+00b9 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_one Meta_exclam Meta_one Meta_exclam VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0031 U+0021 U+00a1 U+00b9 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_one Meta_exclam Meta_one Meta_exclam VoidSymbol VoidSymbol VoidSymbol VoidSymbol
+keycode 3 = U+0032 U+0022 U+0040 U+00b2 nul nul nul nul Meta_two Meta_quotedbl Meta_at Meta_at Meta_nul Meta_nul Meta_nul Meta_nul U+0032 U+0022 U+0040 U+00b2 nul nul nul nul Meta_two Meta_quotedbl Meta_at Meta_at Meta_nul Meta_nul Meta_nul Meta_nul U+0032 U+0022 U+0040 U+00b2 nul nul nul nul Meta_two Meta_quotedbl Meta_at Meta_at Meta_nul Meta_nul Meta_nul Meta_nul U+0032 U+0022 U+0040 U+00b2 nul nul nul nul Meta_two Meta_quotedbl Meta_at Meta_at Meta_nul Meta_nul Meta_nul Meta_nul U+0032 U+0022 U+0040 U+00b2 nul nul nul nul Meta_two Meta_quotedbl Meta_at Meta_at Meta_nul Meta_nul Meta_nul Meta_nul U+0032 U+0022 U+0040 U+00b2 nul nul nul nul Meta_two Meta_quotedbl Meta_at Meta_at Meta_nul Meta_nul Meta_nul Meta_nul U+0032 U+0022 U+0040 U+00b2 nul nul nul nul Meta_two Meta_quotedbl Meta_at Meta_at Meta_nul Meta_nul Meta_nul Meta_nul U+0032 U+0022 U+0040 U+00b2 nul nul nul nul Meta_two Meta_quotedbl Meta_at Meta_at Meta_nul Meta_nul Meta_nul Meta_nul
+keycode 4 = U+0033 U+0023 U+00a3 U+00b3 Escape Escape Escape Escape Meta_three Meta_numbersign Meta_three Meta_numbersign Meta_Escape Meta_Escape Meta_Escape Meta_Escape U+0033 U+0023 U+00a3 U+00b3 Escape Escape Escape Escape Meta_three Meta_numbersign Meta_three Meta_numbersign Meta_Escape Meta_Escape Meta_Escape Meta_Escape U+0033 U+0023 U+00a3 U+00b3 Escape Escape Escape Escape Meta_three Meta_numbersign Meta_three Meta_numbersign Meta_Escape Meta_Escape Meta_Escape Meta_Escape U+0033 U+0023 U+00a3 U+00b3 Escape Escape Escape Escape Meta_three Meta_numbersign Meta_three Meta_numbersign Meta_Escape Meta_Escape Meta_Escape Meta_Escape U+0033 U+0023 U+00a3 U+00b3 Escape Escape Escape Escape Meta_three Meta_numbersign Meta_three Meta_numbersign Meta_Escape Meta_Escape Meta_Escape Meta_Escape U+0033 U+0023 U+00a3 U+00b3 Escape Escape Escape Escape Meta_three Meta_numbersign Meta_three Meta_numbersign Meta_Escape Meta_Escape Meta_Escape Meta_Escape U+0033 U+0023 U+00a3 U+00b3 Escape Escape Escape Escape Meta_three Meta_numbersign Meta_three Meta_numbersign Meta_Escape Meta_Escape Meta_Escape Meta_Escape U+0033 U+0023 U+00a3 U+00b3 Escape Escape Escape Escape Meta_three Meta_numbersign Meta_three Meta_numbersign Meta_Escape Meta_Escape Meta_Escape Meta_Escape
+keycode 5 = U+0034 U+00a4 U+0024 U+00bc Control_backslash Control_backslash Control_backslash Control_backslash Meta_four Meta_four Meta_dollar Meta_dollar Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+0034 U+00a4 U+0024 U+00bc Control_backslash Control_backslash Control_backslash Control_backslash Meta_four Meta_four Meta_dollar Meta_dollar Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+0034 U+00a4 U+0024 U+00bc Control_backslash Control_backslash Control_backslash Control_backslash Meta_four Meta_four Meta_dollar Meta_dollar Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+0034 U+00a4 U+0024 U+00bc Control_backslash Control_backslash Control_backslash Control_backslash Meta_four Meta_four Meta_dollar Meta_dollar Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+0034 U+00a4 U+0024 U+00bc Control_backslash Control_backslash Control_backslash Control_backslash Meta_four Meta_four Meta_dollar Meta_dollar Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+0034 U+00a4 U+0024 U+00bc Control_backslash Control_backslash Control_backslash Control_backslash Meta_four Meta_four Meta_dollar Meta_dollar Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+0034 U+00a4 U+0024 U+00bc Control_backslash Control_backslash Control_backslash Control_backslash Meta_four Meta_four Meta_dollar Meta_dollar Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+0034 U+00a4 U+0024 U+00bc Control_backslash Control_backslash Control_backslash Control_backslash Meta_four Meta_four Meta_dollar Meta_dollar Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash
+keycode 6 = U+0035 U+0025 U+20ac U+00a2 Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_five Meta_percent Meta_five Meta_percent Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0035 U+0025 U+20ac U+00a2 Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_five Meta_percent Meta_five Meta_percent Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0035 U+0025 U+20ac U+00a2 Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_five Meta_percent Meta_five Meta_percent Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0035 U+0025 U+20ac U+00a2 Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_five Meta_percent Meta_five Meta_percent Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0035 U+0025 U+20ac U+00a2 Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_five Meta_percent Meta_five Meta_percent Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0035 U+0025 U+20ac U+00a2 Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_five Meta_percent Meta_five Meta_percent Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0035 U+0025 U+20ac U+00a2 Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_five Meta_percent Meta_five Meta_percent Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0035 U+0025 U+20ac U+00a2 Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_five Meta_percent Meta_five Meta_percent Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright
+keycode 7 = U+0036 U+0026 U+00a5 U+215d Control_asciicircum Control_asciicircum Control_asciicircum Control_asciicircum Meta_six Meta_ampersand Meta_six Meta_ampersand Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum U+0036 U+0026 U+00a5 U+215d Control_asciicircum Control_asciicircum Control_asciicircum Control_asciicircum Meta_six Meta_ampersand Meta_six Meta_ampersand Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum U+0036 U+0026 U+00a5 U+215d Control_asciicircum Control_asciicircum Control_asciicircum Control_asciicircum Meta_six Meta_ampersand Meta_six Meta_ampersand Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum U+0036 U+0026 U+00a5 U+215d Control_asciicircum Control_asciicircum Control_asciicircum Control_asciicircum Meta_six Meta_ampersand Meta_six Meta_ampersand Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum U+0036 U+0026 U+00a5 U+215d Control_asciicircum Control_asciicircum Control_asciicircum Control_asciicircum Meta_six Meta_ampersand Meta_six Meta_ampersand Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum U+0036 U+0026 U+00a5 U+215d Control_asciicircum Control_asciicircum Control_asciicircum Control_asciicircum Meta_six Meta_ampersand Meta_six Meta_ampersand Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum U+0036 U+0026 U+00a5 U+215d Control_asciicircum Control_asciicircum Control_asciicircum Control_asciicircum Meta_six Meta_ampersand Meta_six Meta_ampersand Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum U+0036 U+0026 U+00a5 U+215d Control_asciicircum Control_asciicircum Control_asciicircum Control_asciicircum Meta_six Meta_ampersand Meta_six Meta_ampersand Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum
+keycode 8 = U+0037 U+002f U+007b U+00f7 Control_underscore Control_underscore Control_underscore Control_underscore Meta_seven Meta_slash Meta_braceleft Meta_braceleft Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+0037 U+002f U+007b U+00f7 Control_underscore Control_underscore Control_underscore Control_underscore Meta_seven Meta_slash Meta_braceleft Meta_braceleft Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+0037 U+002f U+007b U+00f7 Control_underscore Control_underscore Control_underscore Control_underscore Meta_seven Meta_slash Meta_braceleft Meta_braceleft Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+0037 U+002f U+007b U+00f7 Control_underscore Control_underscore Control_underscore Control_underscore Meta_seven Meta_slash Meta_braceleft Meta_braceleft Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+0037 U+002f U+007b U+00f7 Control_underscore Control_underscore Control_underscore Control_underscore Meta_seven Meta_slash Meta_braceleft Meta_braceleft Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+0037 U+002f U+007b U+00f7 Control_underscore Control_underscore Control_underscore Control_underscore Meta_seven Meta_slash Meta_braceleft Meta_braceleft Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+0037 U+002f U+007b U+00f7 Control_underscore Control_underscore Control_underscore Control_underscore Meta_seven Meta_slash Meta_braceleft Meta_braceleft Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+0037 U+002f U+007b U+00f7 Control_underscore Control_underscore Control_underscore Control_underscore Meta_seven Meta_slash Meta_braceleft Meta_braceleft Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore
+keycode 9 = U+0038 U+0028 U+005b U+00ab Delete Delete Escape Escape Meta_eight Meta_parenleft Meta_bracketleft Meta_bracketleft Meta_Delete Meta_Delete Meta_Escape Meta_Escape U+0038 U+0028 U+005b U+00ab Delete Delete Escape Escape Meta_eight Meta_parenleft Meta_bracketleft Meta_bracketleft Meta_Delete Meta_Delete Meta_Escape Meta_Escape U+0038 U+0028 U+005b U+00ab Delete Delete Escape Escape Meta_eight Meta_parenleft Meta_bracketleft Meta_bracketleft Meta_Delete Meta_Delete Meta_Escape Meta_Escape U+0038 U+0028 U+005b U+00ab Delete Delete Escape Escape Meta_eight Meta_parenleft Meta_bracketleft Meta_bracketleft Meta_Delete Meta_Delete Meta_Escape Meta_Escape U+0038 U+0028 U+005b U+00ab Delete Delete Escape Escape Meta_eight Meta_parenleft Meta_bracketleft Meta_bracketleft Meta_Delete Meta_Delete Meta_Escape Meta_Escape U+0038 U+0028 U+005b U+00ab Delete Delete Escape Escape Meta_eight Meta_parenleft Meta_bracketleft Meta_bracketleft Meta_Delete Meta_Delete Meta_Escape Meta_Escape U+0038 U+0028 U+005b U+00ab Delete Delete Escape Escape Meta_eight Meta_parenleft Meta_bracketleft Meta_bracketleft Meta_Delete Meta_Delete Meta_Escape Meta_Escape U+0038 U+0028 U+005b U+00ab Delete Delete Escape Escape Meta_eight Meta_parenleft Meta_bracketleft Meta_bracketleft Meta_Delete Meta_Delete Meta_Escape Meta_Escape
+keycode 10 = U+0039 U+0029 U+005d U+00bb Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_nine Meta_parenright Meta_bracketright Meta_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0039 U+0029 U+005d U+00bb Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_nine Meta_parenright Meta_bracketright Meta_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0039 U+0029 U+005d U+00bb Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_nine Meta_parenright Meta_bracketright Meta_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0039 U+0029 U+005d U+00bb Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_nine Meta_parenright Meta_bracketright Meta_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0039 U+0029 U+005d U+00bb Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_nine Meta_parenright Meta_bracketright Meta_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0039 U+0029 U+005d U+00bb Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_nine Meta_parenright Meta_bracketright Meta_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0039 U+0029 U+005d U+00bb Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_nine Meta_parenright Meta_bracketright Meta_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0039 U+0029 U+005d U+00bb Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_nine Meta_parenright Meta_bracketright Meta_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright
+keycode 11 = U+0030 U+003d U+007d U+00b0 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_zero Meta_equal Meta_braceright Meta_braceright VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0030 U+003d U+007d U+00b0 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_zero Meta_equal Meta_braceright Meta_braceright VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0030 U+003d U+007d U+00b0 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_zero Meta_equal Meta_braceright Meta_braceright VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0030 U+003d U+007d U+00b0 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_zero Meta_equal Meta_braceright Meta_braceright VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0030 U+003d U+007d U+00b0 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_zero Meta_equal Meta_braceright Meta_braceright VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0030 U+003d U+007d U+00b0 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_zero Meta_equal Meta_braceright Meta_braceright VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0030 U+003d U+007d U+00b0 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_zero Meta_equal Meta_braceright Meta_braceright VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0030 U+003d U+007d U+00b0 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_zero Meta_equal Meta_braceright Meta_braceright VoidSymbol VoidSymbol VoidSymbol VoidSymbol
+keycode 12 = U+002b U+003f U+005c U+00bf Delete Delete Control_backslash Control_backslash Meta_plus Meta_question Meta_backslash Meta_backslash Meta_Delete Meta_Delete Meta_Control_backslash Meta_Control_backslash U+002b U+003f U+005c U+00bf Delete Delete Control_backslash Control_backslash Meta_plus Meta_question Meta_backslash Meta_backslash Meta_Delete Meta_Delete Meta_Control_backslash Meta_Control_backslash U+002b U+003f U+005c U+00bf Delete Delete Control_backslash Control_backslash Meta_plus Meta_question Meta_backslash Meta_backslash Meta_Delete Meta_Delete Meta_Control_backslash Meta_Control_backslash U+002b U+003f U+005c U+00bf Delete Delete Control_backslash Control_backslash Meta_plus Meta_question Meta_backslash Meta_backslash Meta_Delete Meta_Delete Meta_Control_backslash Meta_Control_backslash U+002b U+003f U+005c U+00bf Delete Delete Control_backslash Control_backslash Meta_plus Meta_question Meta_backslash Meta_backslash Meta_Delete Meta_Delete Meta_Control_backslash Meta_Control_backslash U+002b U+003f U+005c U+00bf Delete Delete Control_backslash Control_backslash Meta_plus Meta_question Meta_backslash Meta_backslash Meta_Delete Meta_Delete Meta_Control_backslash Meta_Control_backslash U+002b U+003f U+005c U+00bf Delete Delete Control_backslash Control_backslash Meta_plus Meta_question Meta_backslash Meta_backslash Meta_Delete Meta_Delete Meta_Control_backslash Meta_Control_backslash U+002b U+003f U+005c U+00bf Delete Delete Control_backslash Control_backslash Meta_plus Meta_question Meta_backslash Meta_backslash Meta_Delete Meta_Delete Meta_Control_backslash Meta_Control_backslash
+keycode 13 = dead_acute dead_grave U+00b1 U+00ac dead_acute dead_grave dead_acute dead_grave dead_acute dead_grave dead_acute dead_grave dead_acute dead_grave dead_acute dead_grave dead_acute dead_grave U+00b1 U+00ac dead_acute dead_grave dead_acute dead_grave dead_acute dead_grave dead_acute dead_grave dead_acute dead_grave dead_acute dead_grave dead_acute dead_grave U+00b1 U+00ac dead_acute dead_grave dead_acute dead_grave dead_acute dead_grave dead_acute dead_grave dead_acute dead_grave dead_acute dead_grave dead_acute dead_grave U+00b1 U+00ac dead_acute dead_grave dead_acute dead_grave dead_acute dead_grave dead_acute dead_grave dead_acute dead_grave dead_acute dead_grave dead_acute dead_grave U+00b1 U+00ac dead_acute dead_grave dead_acute dead_grave dead_acute dead_grave dead_acute dead_grave dead_acute dead_grave dead_acute dead_grave dead_acute dead_grave U+00b1 U+00ac dead_acute dead_grave dead_acute dead_grave dead_acute dead_grave dead_acute dead_grave dead_acute dead_grave dead_acute dead_grave dead_acute dead_grave U+00b1 U+00ac dead_acute dead_grave dead_acute dead_grave dead_acute dead_grave dead_acute dead_grave dead_acute dead_grave dead_acute dead_grave dead_acute dead_grave U+00b1 U+00ac dead_acute dead_grave dead_acute dead_grave dead_acute dead_grave dead_acute dead_grave dead_acute dead_grave dead_acute dead_grave
+keycode 14 = Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace
+keycode 15 = Tab Tab Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Tab Tab Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Tab Tab Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Tab Tab Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Tab Tab Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Tab Tab Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Tab Tab Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Tab Tab Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab
+keycode 16 = +U+0071 +U+0051 U+0040 +U+03a9 Control_q Control_q nul nul Meta_q Meta_Q Meta_at Meta_at Meta_Control_q Meta_Control_q Meta_nul Meta_nul +U+0071 +U+0051 U+0040 +U+03a9 Control_q Control_q nul nul Meta_q Meta_Q Meta_at Meta_at Meta_Control_q Meta_Control_q Meta_nul Meta_nul +U+0071 +U+0051 U+0040 +U+03a9 Control_q Control_q nul nul Meta_q Meta_Q Meta_at Meta_at Meta_Control_q Meta_Control_q Meta_nul Meta_nul +U+0071 +U+0051 U+0040 +U+03a9 Control_q Control_q nul nul Meta_q Meta_Q Meta_at Meta_at Meta_Control_q Meta_Control_q Meta_nul Meta_nul +U+0051 +U+0071 U+0040 +U+03c9 Control_q Control_q nul nul Meta_q Meta_Q Meta_at Meta_at Meta_Control_q Meta_Control_q Meta_nul Meta_nul +U+0051 +U+0071 U+0040 +U+03c9 Control_q Control_q nul nul Meta_q Meta_Q Meta_at Meta_at Meta_Control_q Meta_Control_q Meta_nul Meta_nul +U+0051 +U+0071 U+0040 +U+03c9 Control_q Control_q nul nul Meta_q Meta_Q Meta_at Meta_at Meta_Control_q Meta_Control_q Meta_nul Meta_nul +U+0051 +U+0071 U+0040 +U+03c9 Control_q Control_q nul nul Meta_q Meta_Q Meta_at Meta_at Meta_Control_q Meta_Control_q Meta_nul Meta_nul
+keycode 17 = +U+0077 +U+0057 +U+0142 +U+0141 Control_w Control_w Control_w Control_w Meta_w Meta_W Meta_w Meta_W Meta_Control_w Meta_Control_w Meta_Control_w Meta_Control_w +U+0077 +U+0057 +U+0142 +U+0141 Control_w Control_w Control_w Control_w Meta_w Meta_W Meta_w Meta_W Meta_Control_w Meta_Control_w Meta_Control_w Meta_Control_w +U+0077 +U+0057 +U+0142 +U+0141 Control_w Control_w Control_w Control_w Meta_w Meta_W Meta_w Meta_W Meta_Control_w Meta_Control_w Meta_Control_w Meta_Control_w +U+0077 +U+0057 +U+0142 +U+0141 Control_w Control_w Control_w Control_w Meta_w Meta_W Meta_w Meta_W Meta_Control_w Meta_Control_w Meta_Control_w Meta_Control_w +U+0057 +U+0077 +U+0141 +U+0142 Control_w Control_w Control_w Control_w Meta_w Meta_W Meta_w Meta_W Meta_Control_w Meta_Control_w Meta_Control_w Meta_Control_w +U+0057 +U+0077 +U+0141 +U+0142 Control_w Control_w Control_w Control_w Meta_w Meta_W Meta_w Meta_W Meta_Control_w Meta_Control_w Meta_Control_w Meta_Control_w +U+0057 +U+0077 +U+0141 +U+0142 Control_w Control_w Control_w Control_w Meta_w Meta_W Meta_w Meta_W Meta_Control_w Meta_Control_w Meta_Control_w Meta_Control_w +U+0057 +U+0077 +U+0141 +U+0142 Control_w Control_w Control_w Control_w Meta_w Meta_W Meta_w Meta_W Meta_Control_w Meta_Control_w Meta_Control_w Meta_Control_w
+keycode 18 = +U+0065 +U+0045 U+20ac U+00a2 Control_e Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_E Meta_Control_e Meta_Control_e Meta_Control_e Meta_Control_e +U+0065 +U+0045 U+20ac U+00a2 Control_e Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_E Meta_Control_e Meta_Control_e Meta_Control_e Meta_Control_e +U+0065 +U+0045 U+20ac U+00a2 Control_e Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_E Meta_Control_e Meta_Control_e Meta_Control_e Meta_Control_e +U+0065 +U+0045 U+20ac U+00a2 Control_e Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_E Meta_Control_e Meta_Control_e Meta_Control_e Meta_Control_e +U+0045 +U+0065 U+20ac U+00a2 Control_e Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_E Meta_Control_e Meta_Control_e Meta_Control_e Meta_Control_e +U+0045 +U+0065 U+20ac U+00a2 Control_e Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_E Meta_Control_e Meta_Control_e Meta_Control_e Meta_Control_e +U+0045 +U+0065 U+20ac U+00a2 Control_e Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_E Meta_Control_e Meta_Control_e Meta_Control_e Meta_Control_e +U+0045 +U+0065 U+20ac U+00a2 Control_e Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_E Meta_Control_e Meta_Control_e Meta_Control_e Meta_Control_e
+keycode 19 = +U+0072 +U+0052 U+00ae U+00ae Control_r Control_r Control_r Control_r Meta_r Meta_R Meta_r Meta_R Meta_Control_r Meta_Control_r Meta_Control_r Meta_Control_r +U+0072 +U+0052 U+00ae U+00ae Control_r Control_r Control_r Control_r Meta_r Meta_R Meta_r Meta_R Meta_Control_r Meta_Control_r Meta_Control_r Meta_Control_r +U+0072 +U+0052 U+00ae U+00ae Control_r Control_r Control_r Control_r Meta_r Meta_R Meta_r Meta_R Meta_Control_r Meta_Control_r Meta_Control_r Meta_Control_r +U+0072 +U+0052 U+00ae U+00ae Control_r Control_r Control_r Control_r Meta_r Meta_R Meta_r Meta_R Meta_Control_r Meta_Control_r Meta_Control_r Meta_Control_r +U+0052 +U+0072 U+00ae U+00ae Control_r Control_r Control_r Control_r Meta_r Meta_R Meta_r Meta_R Meta_Control_r Meta_Control_r Meta_Control_r Meta_Control_r +U+0052 +U+0072 U+00ae U+00ae Control_r Control_r Control_r Control_r Meta_r Meta_R Meta_r Meta_R Meta_Control_r Meta_Control_r Meta_Control_r Meta_Control_r +U+0052 +U+0072 U+00ae U+00ae Control_r Control_r Control_r Control_r Meta_r Meta_R Meta_r Meta_R Meta_Control_r Meta_Control_r Meta_Control_r Meta_Control_r +U+0052 +U+0072 U+00ae U+00ae Control_r Control_r Control_r Control_r Meta_r Meta_R Meta_r Meta_R Meta_Control_r Meta_Control_r Meta_Control_r Meta_Control_r
+keycode 20 = +U+0074 +U+0054 +U+00fe +U+00de Control_t Control_t Control_t Control_t Meta_t Meta_T Meta_t Meta_T Meta_Control_t Meta_Control_t Meta_Control_t Meta_Control_t +U+0074 +U+0054 +U+00fe +U+00de Control_t Control_t Control_t Control_t Meta_t Meta_T Meta_t Meta_T Meta_Control_t Meta_Control_t Meta_Control_t Meta_Control_t +U+0074 +U+0054 +U+00fe +U+00de Control_t Control_t Control_t Control_t Meta_t Meta_T Meta_t Meta_T Meta_Control_t Meta_Control_t Meta_Control_t Meta_Control_t +U+0074 +U+0054 +U+00fe +U+00de Control_t Control_t Control_t Control_t Meta_t Meta_T Meta_t Meta_T Meta_Control_t Meta_Control_t Meta_Control_t Meta_Control_t +U+0054 +U+0074 +U+00de +U+00fe Control_t Control_t Control_t Control_t Meta_t Meta_T Meta_t Meta_T Meta_Control_t Meta_Control_t Meta_Control_t Meta_Control_t +U+0054 +U+0074 +U+00de +U+00fe Control_t Control_t Control_t Control_t Meta_t Meta_T Meta_t Meta_T Meta_Control_t Meta_Control_t Meta_Control_t Meta_Control_t +U+0054 +U+0074 +U+00de +U+00fe Control_t Control_t Control_t Control_t Meta_t Meta_T Meta_t Meta_T Meta_Control_t Meta_Control_t Meta_Control_t Meta_Control_t +U+0054 +U+0074 +U+00de +U+00fe Control_t Control_t Control_t Control_t Meta_t Meta_T Meta_t Meta_T Meta_Control_t Meta_Control_t Meta_Control_t Meta_Control_t
+keycode 21 = +U+0079 +U+0059 U+2190 U+00a5 Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_Y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0079 +U+0059 U+2190 U+00a5 Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_Y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0079 +U+0059 U+2190 U+00a5 Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_Y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0079 +U+0059 U+2190 U+00a5 Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_Y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0059 +U+0079 U+2190 U+00a5 Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_Y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0059 +U+0079 U+2190 U+00a5 Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_Y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0059 +U+0079 U+2190 U+00a5 Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_Y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0059 +U+0079 U+2190 U+00a5 Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_Y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y
+keycode 22 = +U+0075 +U+0055 U+2193 U+2191 Control_u Control_u Control_u Control_u Meta_u Meta_U Meta_u Meta_U Meta_Control_u Meta_Control_u Meta_Control_u Meta_Control_u +U+0075 +U+0055 U+2193 U+2191 Control_u Control_u Control_u Control_u Meta_u Meta_U Meta_u Meta_U Meta_Control_u Meta_Control_u Meta_Control_u Meta_Control_u +U+0075 +U+0055 U+2193 U+2191 Control_u Control_u Control_u Control_u Meta_u Meta_U Meta_u Meta_U Meta_Control_u Meta_Control_u Meta_Control_u Meta_Control_u +U+0075 +U+0055 U+2193 U+2191 Control_u Control_u Control_u Control_u Meta_u Meta_U Meta_u Meta_U Meta_Control_u Meta_Control_u Meta_Control_u Meta_Control_u +U+0055 +U+0075 U+2193 U+2191 Control_u Control_u Control_u Control_u Meta_u Meta_U Meta_u Meta_U Meta_Control_u Meta_Control_u Meta_Control_u Meta_Control_u +U+0055 +U+0075 U+2193 U+2191 Control_u Control_u Control_u Control_u Meta_u Meta_U Meta_u Meta_U Meta_Control_u Meta_Control_u Meta_Control_u Meta_Control_u +U+0055 +U+0075 U+2193 U+2191 Control_u Control_u Control_u Control_u Meta_u Meta_U Meta_u Meta_U Meta_Control_u Meta_Control_u Meta_Control_u Meta_Control_u +U+0055 +U+0075 U+2193 U+2191 Control_u Control_u Control_u Control_u Meta_u Meta_U Meta_u Meta_U Meta_Control_u Meta_Control_u Meta_Control_u Meta_Control_u
+keycode 23 = +U+0069 +U+0049 U+2192 +U+0131 Tab Tab Tab Tab Meta_i Meta_I Meta_i Meta_I Meta_Tab Meta_Tab Meta_Tab Meta_Tab +U+0069 +U+0049 U+2192 +U+0131 Tab Tab Tab Tab Meta_i Meta_I Meta_i Meta_I Meta_Tab Meta_Tab Meta_Tab Meta_Tab +U+0069 +U+0049 U+2192 +U+0131 Tab Tab Tab Tab Meta_i Meta_I Meta_i Meta_I Meta_Tab Meta_Tab Meta_Tab Meta_Tab +U+0069 +U+0049 U+2192 +U+0131 Tab Tab Tab Tab Meta_i Meta_I Meta_i Meta_I Meta_Tab Meta_Tab Meta_Tab Meta_Tab +U+0049 +U+0069 U+2192 +U+0049 Tab Tab Tab Tab Meta_i Meta_I Meta_i Meta_I Meta_Tab Meta_Tab Meta_Tab Meta_Tab +U+0049 +U+0069 U+2192 +U+0049 Tab Tab Tab Tab Meta_i Meta_I Meta_i Meta_I Meta_Tab Meta_Tab Meta_Tab Meta_Tab +U+0049 +U+0069 U+2192 +U+0049 Tab Tab Tab Tab Meta_i Meta_I Meta_i Meta_I Meta_Tab Meta_Tab Meta_Tab Meta_Tab +U+0049 +U+0069 U+2192 +U+0049 Tab Tab Tab Tab Meta_i Meta_I Meta_i Meta_I Meta_Tab Meta_Tab Meta_Tab Meta_Tab
+keycode 24 = +U+006f +U+004f +U+0153 +U+0152 Control_o Control_o Control_o Control_o Meta_o Meta_O Meta_o Meta_O Meta_Control_o Meta_Control_o Meta_Control_o Meta_Control_o +U+006f +U+004f +U+0153 +U+0152 Control_o Control_o Control_o Control_o Meta_o Meta_O Meta_o Meta_O Meta_Control_o Meta_Control_o Meta_Control_o Meta_Control_o +U+006f +U+004f +U+0153 +U+0152 Control_o Control_o Control_o Control_o Meta_o Meta_O Meta_o Meta_O Meta_Control_o Meta_Control_o Meta_Control_o Meta_Control_o +U+006f +U+004f +U+0153 +U+0152 Control_o Control_o Control_o Control_o Meta_o Meta_O Meta_o Meta_O Meta_Control_o Meta_Control_o Meta_Control_o Meta_Control_o +U+004f +U+006f +U+0152 +U+0153 Control_o Control_o Control_o Control_o Meta_o Meta_O Meta_o Meta_O Meta_Control_o Meta_Control_o Meta_Control_o Meta_Control_o +U+004f +U+006f +U+0152 +U+0153 Control_o Control_o Control_o Control_o Meta_o Meta_O Meta_o Meta_O Meta_Control_o Meta_Control_o Meta_Control_o Meta_Control_o +U+004f +U+006f +U+0152 +U+0153 Control_o Control_o Control_o Control_o Meta_o Meta_O Meta_o Meta_O Meta_Control_o Meta_Control_o Meta_Control_o Meta_Control_o +U+004f +U+006f +U+0152 +U+0153 Control_o Control_o Control_o Control_o Meta_o Meta_O Meta_o Meta_O Meta_Control_o Meta_Control_o Meta_Control_o Meta_Control_o
+keycode 25 = +U+0070 +U+0050 +U+00fe +U+00de Control_p Control_p Control_p Control_p Meta_p Meta_P Meta_p Meta_P Meta_Control_p Meta_Control_p Meta_Control_p Meta_Control_p +U+0070 +U+0050 +U+00fe +U+00de Control_p Control_p Control_p Control_p Meta_p Meta_P Meta_p Meta_P Meta_Control_p Meta_Control_p Meta_Control_p Meta_Control_p +U+0070 +U+0050 +U+00fe +U+00de Control_p Control_p Control_p Control_p Meta_p Meta_P Meta_p Meta_P Meta_Control_p Meta_Control_p Meta_Control_p Meta_Control_p +U+0070 +U+0050 +U+00fe +U+00de Control_p Control_p Control_p Control_p Meta_p Meta_P Meta_p Meta_P Meta_Control_p Meta_Control_p Meta_Control_p Meta_Control_p +U+0050 +U+0070 +U+00de +U+00fe Control_p Control_p Control_p Control_p Meta_p Meta_P Meta_p Meta_P Meta_Control_p Meta_Control_p Meta_Control_p Meta_Control_p +U+0050 +U+0070 +U+00de +U+00fe Control_p Control_p Control_p Control_p Meta_p Meta_P Meta_p Meta_P Meta_Control_p Meta_Control_p Meta_Control_p Meta_Control_p +U+0050 +U+0070 +U+00de +U+00fe Control_p Control_p Control_p Control_p Meta_p Meta_P Meta_p Meta_P Meta_Control_p Meta_Control_p Meta_Control_p Meta_Control_p +U+0050 +U+0070 +U+00de +U+00fe Control_p Control_p Control_p Control_p Meta_p Meta_P Meta_p Meta_P Meta_Control_p Meta_Control_p Meta_Control_p Meta_Control_p
+keycode 26 = +U+00e5 +U+00c5 dead_diaeresis U+002a dead_diaeresis dead_diaeresis dead_diaeresis dead_diaeresis dead_diaeresis Meta_asterisk dead_diaeresis Meta_asterisk dead_diaeresis dead_diaeresis dead_diaeresis dead_diaeresis +U+00e5 +U+00c5 dead_diaeresis U+002a dead_diaeresis dead_diaeresis dead_diaeresis dead_diaeresis dead_diaeresis Meta_asterisk dead_diaeresis Meta_asterisk dead_diaeresis dead_diaeresis dead_diaeresis dead_diaeresis +U+00e5 +U+00c5 dead_diaeresis U+002a dead_diaeresis dead_diaeresis dead_diaeresis dead_diaeresis dead_diaeresis Meta_asterisk dead_diaeresis Meta_asterisk dead_diaeresis dead_diaeresis dead_diaeresis dead_diaeresis +U+00e5 +U+00c5 dead_diaeresis U+002a dead_diaeresis dead_diaeresis dead_diaeresis dead_diaeresis dead_diaeresis Meta_asterisk dead_diaeresis Meta_asterisk dead_diaeresis dead_diaeresis dead_diaeresis dead_diaeresis +U+00c5 +U+00e5 dead_diaeresis U+002a dead_diaeresis dead_diaeresis dead_diaeresis dead_diaeresis dead_diaeresis Meta_asterisk dead_diaeresis Meta_asterisk dead_diaeresis dead_diaeresis dead_diaeresis dead_diaeresis +U+00c5 +U+00e5 dead_diaeresis U+002a dead_diaeresis dead_diaeresis dead_diaeresis dead_diaeresis dead_diaeresis Meta_asterisk dead_diaeresis Meta_asterisk dead_diaeresis dead_diaeresis dead_diaeresis dead_diaeresis +U+00c5 +U+00e5 dead_diaeresis U+002a dead_diaeresis dead_diaeresis dead_diaeresis dead_diaeresis dead_diaeresis Meta_asterisk dead_diaeresis Meta_asterisk dead_diaeresis dead_diaeresis dead_diaeresis dead_diaeresis +U+00c5 +U+00e5 dead_diaeresis U+002a dead_diaeresis dead_diaeresis dead_diaeresis dead_diaeresis dead_diaeresis Meta_asterisk dead_diaeresis Meta_asterisk dead_diaeresis dead_diaeresis dead_diaeresis dead_diaeresis
+keycode 27 = dead_diaeresis dead_circumflex dead_tilde dead_caron dead_diaeresis dead_circumflex dead_tilde dead_caron dead_diaeresis dead_circumflex dead_tilde dead_caron dead_diaeresis dead_circumflex dead_tilde dead_caron dead_diaeresis dead_circumflex dead_tilde dead_caron dead_diaeresis dead_circumflex dead_tilde dead_caron dead_diaeresis dead_circumflex dead_tilde dead_caron dead_diaeresis dead_circumflex dead_tilde dead_caron dead_diaeresis dead_circumflex dead_tilde dead_caron dead_diaeresis dead_circumflex dead_tilde dead_caron dead_diaeresis dead_circumflex dead_tilde dead_caron dead_diaeresis dead_circumflex dead_tilde dead_caron dead_diaeresis dead_circumflex dead_tilde dead_caron dead_diaeresis dead_circumflex dead_tilde dead_caron dead_diaeresis dead_circumflex dead_tilde dead_caron dead_diaeresis dead_circumflex dead_tilde dead_caron dead_diaeresis dead_circumflex dead_tilde dead_caron dead_diaeresis dead_circumflex dead_tilde dead_caron dead_diaeresis dead_circumflex dead_tilde dead_caron dead_diaeresis dead_circumflex dead_tilde dead_caron dead_diaeresis dead_circumflex dead_tilde dead_caron dead_diaeresis dead_circumflex dead_tilde dead_caron dead_diaeresis dead_circumflex dead_tilde dead_caron dead_diaeresis dead_circumflex dead_tilde dead_caron dead_diaeresis dead_circumflex dead_tilde dead_caron dead_diaeresis dead_circumflex dead_tilde dead_caron dead_diaeresis dead_circumflex dead_tilde dead_caron dead_diaeresis dead_circumflex dead_tilde dead_caron dead_diaeresis dead_circumflex dead_tilde dead_caron dead_diaeresis dead_circumflex dead_tilde dead_caron dead_diaeresis dead_circumflex dead_tilde dead_caron dead_diaeresis dead_circumflex dead_tilde dead_caron
+keycode 28 = Return Return Return Return Control_m Control_m Control_m Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Return Return Return Return Control_m Control_m Control_m Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Return Return Return Return Control_m Control_m Control_m Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Return Return Return Return Control_m Control_m Control_m Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Return Return Return Return Control_m Control_m Control_m Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Return Return Return Return Control_m Control_m Control_m Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Return Return Return Return Control_m Control_m Control_m Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Return Return Return Return Control_m Control_m Control_m Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m
+keycode 29 = Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control
+keycode 30 = +U+0061 +U+0041 +U+00aa +U+00ba Control_a Control_a Control_a Control_a Meta_a Meta_A Meta_a Meta_A Meta_Control_a Meta_Control_a Meta_Control_a Meta_Control_a +U+0061 +U+0041 +U+00aa +U+00ba Control_a Control_a Control_a Control_a Meta_a Meta_A Meta_a Meta_A Meta_Control_a Meta_Control_a Meta_Control_a Meta_Control_a +U+0061 +U+0041 +U+00aa +U+00ba Control_a Control_a Control_a Control_a Meta_a Meta_A Meta_a Meta_A Meta_Control_a Meta_Control_a Meta_Control_a Meta_Control_a +U+0061 +U+0041 +U+00aa +U+00ba Control_a Control_a Control_a Control_a Meta_a Meta_A Meta_a Meta_A Meta_Control_a Meta_Control_a Meta_Control_a Meta_Control_a +U+0041 +U+0061 +U+00aa +U+00ba Control_a Control_a Control_a Control_a Meta_a Meta_A Meta_a Meta_A Meta_Control_a Meta_Control_a Meta_Control_a Meta_Control_a +U+0041 +U+0061 +U+00aa +U+00ba Control_a Control_a Control_a Control_a Meta_a Meta_A Meta_a Meta_A Meta_Control_a Meta_Control_a Meta_Control_a Meta_Control_a +U+0041 +U+0061 +U+00aa +U+00ba Control_a Control_a Control_a Control_a Meta_a Meta_A Meta_a Meta_A Meta_Control_a Meta_Control_a Meta_Control_a Meta_Control_a +U+0041 +U+0061 +U+00aa +U+00ba Control_a Control_a Control_a Control_a Meta_a Meta_A Meta_a Meta_A Meta_Control_a Meta_Control_a Meta_Control_a Meta_Control_a
+keycode 31 = +U+0073 +U+0053 +U+00df U+00a7 Control_s Control_s Control_s Control_s Meta_s Meta_S Meta_s Meta_S Meta_Control_s Meta_Control_s Meta_Control_s Meta_Control_s +U+0073 +U+0053 +U+00df U+00a7 Control_s Control_s Control_s Control_s Meta_s Meta_S Meta_s Meta_S Meta_Control_s Meta_Control_s Meta_Control_s Meta_Control_s +U+0073 +U+0053 +U+00df U+00a7 Control_s Control_s Control_s Control_s Meta_s Meta_S Meta_s Meta_S Meta_Control_s Meta_Control_s Meta_Control_s Meta_Control_s +U+0073 +U+0053 +U+00df U+00a7 Control_s Control_s Control_s Control_s Meta_s Meta_S Meta_s Meta_S Meta_Control_s Meta_Control_s Meta_Control_s Meta_Control_s +U+0053 +U+0073 +U+0053 U+00a7 Control_s Control_s Control_s Control_s Meta_s Meta_S Meta_s Meta_S Meta_Control_s Meta_Control_s Meta_Control_s Meta_Control_s +U+0053 +U+0073 +U+0053 U+00a7 Control_s Control_s Control_s Control_s Meta_s Meta_S Meta_s Meta_S Meta_Control_s Meta_Control_s Meta_Control_s Meta_Control_s +U+0053 +U+0073 +U+0053 U+00a7 Control_s Control_s Control_s Control_s Meta_s Meta_S Meta_s Meta_S Meta_Control_s Meta_Control_s Meta_Control_s Meta_Control_s +U+0053 +U+0073 +U+0053 U+00a7 Control_s Control_s Control_s Control_s Meta_s Meta_S Meta_s Meta_S Meta_Control_s Meta_Control_s Meta_Control_s Meta_Control_s
+keycode 32 = +U+0064 +U+0044 +U+00f0 +U+00d0 Control_d Control_d Control_d Control_d Meta_d Meta_D Meta_d Meta_D Meta_Control_d Meta_Control_d Meta_Control_d Meta_Control_d +U+0064 +U+0044 +U+00f0 +U+00d0 Control_d Control_d Control_d Control_d Meta_d Meta_D Meta_d Meta_D Meta_Control_d Meta_Control_d Meta_Control_d Meta_Control_d +U+0064 +U+0044 +U+00f0 +U+00d0 Control_d Control_d Control_d Control_d Meta_d Meta_D Meta_d Meta_D Meta_Control_d Meta_Control_d Meta_Control_d Meta_Control_d +U+0064 +U+0044 +U+00f0 +U+00d0 Control_d Control_d Control_d Control_d Meta_d Meta_D Meta_d Meta_D Meta_Control_d Meta_Control_d Meta_Control_d Meta_Control_d +U+0044 +U+0064 +U+00d0 +U+00f0 Control_d Control_d Control_d Control_d Meta_d Meta_D Meta_d Meta_D Meta_Control_d Meta_Control_d Meta_Control_d Meta_Control_d +U+0044 +U+0064 +U+00d0 +U+00f0 Control_d Control_d Control_d Control_d Meta_d Meta_D Meta_d Meta_D Meta_Control_d Meta_Control_d Meta_Control_d Meta_Control_d +U+0044 +U+0064 +U+00d0 +U+00f0 Control_d Control_d Control_d Control_d Meta_d Meta_D Meta_d Meta_D Meta_Control_d Meta_Control_d Meta_Control_d Meta_Control_d +U+0044 +U+0064 +U+00d0 +U+00f0 Control_d Control_d Control_d Control_d Meta_d Meta_D Meta_d Meta_D Meta_Control_d Meta_Control_d Meta_Control_d Meta_Control_d
+keycode 33 = +U+0066 +U+0046 +U+0111 +U+00aa Control_f Control_f Control_f Control_f Meta_f Meta_F Meta_f Meta_F Meta_Control_f Meta_Control_f Meta_Control_f Meta_Control_f +U+0066 +U+0046 +U+0111 +U+00aa Control_f Control_f Control_f Control_f Meta_f Meta_F Meta_f Meta_F Meta_Control_f Meta_Control_f Meta_Control_f Meta_Control_f +U+0066 +U+0046 +U+0111 +U+00aa Control_f Control_f Control_f Control_f Meta_f Meta_F Meta_f Meta_F Meta_Control_f Meta_Control_f Meta_Control_f Meta_Control_f +U+0066 +U+0046 +U+0111 +U+00aa Control_f Control_f Control_f Control_f Meta_f Meta_F Meta_f Meta_F Meta_Control_f Meta_Control_f Meta_Control_f Meta_Control_f +U+0046 +U+0066 +U+0110 +U+00aa Control_f Control_f Control_f Control_f Meta_f Meta_F Meta_f Meta_F Meta_Control_f Meta_Control_f Meta_Control_f Meta_Control_f +U+0046 +U+0066 +U+0110 +U+00aa Control_f Control_f Control_f Control_f Meta_f Meta_F Meta_f Meta_F Meta_Control_f Meta_Control_f Meta_Control_f Meta_Control_f +U+0046 +U+0066 +U+0110 +U+00aa Control_f Control_f Control_f Control_f Meta_f Meta_F Meta_f Meta_F Meta_Control_f Meta_Control_f Meta_Control_f Meta_Control_f +U+0046 +U+0066 +U+0110 +U+00aa Control_f Control_f Control_f Control_f Meta_f Meta_F Meta_f Meta_F Meta_Control_f Meta_Control_f Meta_Control_f Meta_Control_f
+keycode 34 = +U+0067 +U+0047 +U+014b +U+014a Control_g Control_g Control_g Control_g Meta_g Meta_G Meta_g Meta_G Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g +U+0067 +U+0047 +U+014b +U+014a Control_g Control_g Control_g Control_g Meta_g Meta_G Meta_g Meta_G Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g +U+0067 +U+0047 +U+014b +U+014a Control_g Control_g Control_g Control_g Meta_g Meta_G Meta_g Meta_G Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g +U+0067 +U+0047 +U+014b +U+014a Control_g Control_g Control_g Control_g Meta_g Meta_G Meta_g Meta_G Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g +U+0047 +U+0067 +U+014a +U+014b Control_g Control_g Control_g Control_g Meta_g Meta_G Meta_g Meta_G Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g +U+0047 +U+0067 +U+014a +U+014b Control_g Control_g Control_g Control_g Meta_g Meta_G Meta_g Meta_G Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g +U+0047 +U+0067 +U+014a +U+014b Control_g Control_g Control_g Control_g Meta_g Meta_G Meta_g Meta_G Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g +U+0047 +U+0067 +U+014a +U+014b Control_g Control_g Control_g Control_g Meta_g Meta_G Meta_g Meta_G Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g
+keycode 35 = +U+0068 +U+0048 +U+0127 +U+0126 BackSpace BackSpace BackSpace BackSpace Meta_h Meta_H Meta_h Meta_H Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +U+0068 +U+0048 +U+0127 +U+0126 BackSpace BackSpace BackSpace BackSpace Meta_h Meta_H Meta_h Meta_H Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +U+0068 +U+0048 +U+0127 +U+0126 BackSpace BackSpace BackSpace BackSpace Meta_h Meta_H Meta_h Meta_H Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +U+0068 +U+0048 +U+0127 +U+0126 BackSpace BackSpace BackSpace BackSpace Meta_h Meta_H Meta_h Meta_H Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +U+0048 +U+0068 +U+0126 +U+0127 BackSpace BackSpace BackSpace BackSpace Meta_h Meta_H Meta_h Meta_H Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +U+0048 +U+0068 +U+0126 +U+0127 BackSpace BackSpace BackSpace BackSpace Meta_h Meta_H Meta_h Meta_H Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +U+0048 +U+0068 +U+0126 +U+0127 BackSpace BackSpace BackSpace BackSpace Meta_h Meta_H Meta_h Meta_H Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +U+0048 +U+0068 +U+0126 +U+0127 BackSpace BackSpace BackSpace BackSpace Meta_h Meta_H Meta_h Meta_H Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace
+keycode 36 = +U+006a +U+004a U+0309 U+031b Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_j Meta_J Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+006a +U+004a U+0309 U+031b Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_j Meta_J Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+006a +U+004a U+0309 U+031b Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_j Meta_J Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+006a +U+004a U+0309 U+031b Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_j Meta_J Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+004a +U+006a U+0309 U+031b Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_j Meta_J Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+004a +U+006a U+0309 U+031b Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_j Meta_J Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+004a +U+006a U+0309 U+031b Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_j Meta_J Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+004a +U+006a U+0309 U+031b Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_j Meta_J Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed
+keycode 37 = +U+006b +U+004b +U+0138 U+0026 Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_k Meta_ampersand Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +U+006b +U+004b +U+0138 U+0026 Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_k Meta_ampersand Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +U+006b +U+004b +U+0138 U+0026 Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_k Meta_ampersand Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +U+006b +U+004b +U+0138 U+0026 Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_k Meta_ampersand Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +U+004b +U+006b +U+0138 U+0026 Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_k Meta_ampersand Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +U+004b +U+006b +U+0138 U+0026 Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_k Meta_ampersand Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +U+004b +U+006b +U+0138 U+0026 Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_k Meta_ampersand Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +U+004b +U+006b +U+0138 U+0026 Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_k Meta_ampersand Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k
+keycode 38 = +U+006c +U+004c +U+0142 +U+0141 Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_L Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+006c +U+004c +U+0142 +U+0141 Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_L Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+006c +U+004c +U+0142 +U+0141 Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_L Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+006c +U+004c +U+0142 +U+0141 Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_L Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+004c +U+006c +U+0141 +U+0142 Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_L Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+004c +U+006c +U+0141 +U+0142 Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_L Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+004c +U+006c +U+0141 +U+0142 Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_L Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+004c +U+006c +U+0141 +U+0142 Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_L Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l
+keycode 39 = +U+00f6 +U+00d6 +U+00f8 +U+00d8 VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol +U+00f6 +U+00d6 +U+00f8 +U+00d8 VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol +U+00f6 +U+00d6 +U+00f8 +U+00d8 VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol +U+00f6 +U+00d6 +U+00f8 +U+00d8 VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol +U+00d6 +U+00f6 +U+00d8 +U+00f8 VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol +U+00d6 +U+00f6 +U+00d8 +U+00f8 VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol +U+00d6 +U+00f6 +U+00d8 +U+00f8 VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol +U+00d6 +U+00f6 +U+00d8 +U+00f8 VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol
+keycode 40 = +U+00e4 +U+00c4 +U+00e6 +U+00c6 VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol +U+00e4 +U+00c4 +U+00e6 +U+00c6 VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol +U+00e4 +U+00c4 +U+00e6 +U+00c6 VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol +U+00e4 +U+00c4 +U+00e6 +U+00c6 VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol +U+00c4 +U+00e4 +U+00c6 +U+00e6 VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol +U+00c4 +U+00e4 +U+00c6 +U+00e6 VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol +U+00c4 +U+00e4 +U+00c6 +U+00e6 VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol +U+00c4 +U+00e4 +U+00c6 +U+00e6 VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol
+keycode 41 = U+00a7 U+00bd U+00b6 U+00be VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+00a7 U+00bd U+00b6 U+00be VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+00a7 U+00bd U+00b6 U+00be VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+00a7 U+00bd U+00b6 U+00be VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+00a7 U+00bd U+00b6 U+00be VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+00a7 U+00bd U+00b6 U+00be VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+00a7 U+00bd U+00b6 U+00be VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+00a7 U+00bd U+00b6 U+00be VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol
+keycode 42 = Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift
+keycode 43 = U+0027 U+002a U+0027 U+00d7 Control_g Control_g Control_g Control_g Meta_apostrophe Meta_asterisk Meta_apostrophe Meta_apostrophe Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g U+0027 U+002a U+0027 U+00d7 Control_g Control_g Control_g Control_g Meta_apostrophe Meta_asterisk Meta_apostrophe Meta_apostrophe Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g U+0027 U+002a U+0027 U+00d7 Control_g Control_g Control_g Control_g Meta_apostrophe Meta_asterisk Meta_apostrophe Meta_apostrophe Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g U+0027 U+002a U+0027 U+00d7 Control_g Control_g Control_g Control_g Meta_apostrophe Meta_asterisk Meta_apostrophe Meta_apostrophe Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g U+0027 U+002a U+0027 U+00d7 Control_g Control_g Control_g Control_g Meta_apostrophe Meta_asterisk Meta_apostrophe Meta_apostrophe Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g U+0027 U+002a U+0027 U+00d7 Control_g Control_g Control_g Control_g Meta_apostrophe Meta_asterisk Meta_apostrophe Meta_apostrophe Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g U+0027 U+002a U+0027 U+00d7 Control_g Control_g Control_g Control_g Meta_apostrophe Meta_asterisk Meta_apostrophe Meta_apostrophe Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g U+0027 U+002a U+0027 U+00d7 Control_g Control_g Control_g Control_g Meta_apostrophe Meta_asterisk Meta_apostrophe Meta_apostrophe Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g
+keycode 44 = +U+007a +U+005a U+00ab U+003c Control_z Control_z Control_z Control_z Meta_z Meta_Z Meta_z Meta_less Meta_Control_z Meta_Control_z Meta_Control_z Meta_Control_z +U+007a +U+005a U+00ab U+003c Control_z Control_z Control_z Control_z Meta_z Meta_Z Meta_z Meta_less Meta_Control_z Meta_Control_z Meta_Control_z Meta_Control_z +U+007a +U+005a U+00ab U+003c Control_z Control_z Control_z Control_z Meta_z Meta_Z Meta_z Meta_less Meta_Control_z Meta_Control_z Meta_Control_z Meta_Control_z +U+007a +U+005a U+00ab U+003c Control_z Control_z Control_z Control_z Meta_z Meta_Z Meta_z Meta_less Meta_Control_z Meta_Control_z Meta_Control_z Meta_Control_z +U+005a +U+007a U+00ab U+003c Control_z Control_z Control_z Control_z Meta_z Meta_Z Meta_z Meta_less Meta_Control_z Meta_Control_z Meta_Control_z Meta_Control_z +U+005a +U+007a U+00ab U+003c Control_z Control_z Control_z Control_z Meta_z Meta_Z Meta_z Meta_less Meta_Control_z Meta_Control_z Meta_Control_z Meta_Control_z +U+005a +U+007a U+00ab U+003c Control_z Control_z Control_z Control_z Meta_z Meta_Z Meta_z Meta_less Meta_Control_z Meta_Control_z Meta_Control_z Meta_Control_z +U+005a +U+007a U+00ab U+003c Control_z Control_z Control_z Control_z Meta_z Meta_Z Meta_z Meta_less Meta_Control_z Meta_Control_z Meta_Control_z Meta_Control_z
+keycode 45 = +U+0078 +U+0058 U+00bb U+003e Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_x Meta_greater Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0078 +U+0058 U+00bb U+003e Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_x Meta_greater Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0078 +U+0058 U+00bb U+003e Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_x Meta_greater Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0078 +U+0058 U+00bb U+003e Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_x Meta_greater Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0058 +U+0078 U+00bb U+003e Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_x Meta_greater Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0058 +U+0078 U+00bb U+003e Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_x Meta_greater Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0058 +U+0078 U+00bb U+003e Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_x Meta_greater Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0058 +U+0078 U+00bb U+003e Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_x Meta_greater Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x
+keycode 46 = +U+0063 +U+0043 U+00a9 U+00a9 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_C Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +U+0063 +U+0043 U+00a9 U+00a9 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_C Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +U+0063 +U+0043 U+00a9 U+00a9 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_C Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +U+0063 +U+0043 U+00a9 U+00a9 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_C Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +U+0043 +U+0063 U+00a9 U+00a9 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_C Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +U+0043 +U+0063 U+00a9 U+00a9 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_C Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +U+0043 +U+0063 U+00a9 U+00a9 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_C Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +U+0043 +U+0063 U+00a9 U+00a9 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_C Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c
+keycode 47 = +U+0076 +U+0056 U+201c U+2018 Control_v Control_v Control_v Control_v Meta_v Meta_V Meta_v Meta_V Meta_Control_v Meta_Control_v Meta_Control_v Meta_Control_v +U+0076 +U+0056 U+201c U+2018 Control_v Control_v Control_v Control_v Meta_v Meta_V Meta_v Meta_V Meta_Control_v Meta_Control_v Meta_Control_v Meta_Control_v +U+0076 +U+0056 U+201c U+2018 Control_v Control_v Control_v Control_v Meta_v Meta_V Meta_v Meta_V Meta_Control_v Meta_Control_v Meta_Control_v Meta_Control_v +U+0076 +U+0056 U+201c U+2018 Control_v Control_v Control_v Control_v Meta_v Meta_V Meta_v Meta_V Meta_Control_v Meta_Control_v Meta_Control_v Meta_Control_v +U+0056 +U+0076 U+201c U+2018 Control_v Control_v Control_v Control_v Meta_v Meta_V Meta_v Meta_V Meta_Control_v Meta_Control_v Meta_Control_v Meta_Control_v +U+0056 +U+0076 U+201c U+2018 Control_v Control_v Control_v Control_v Meta_v Meta_V Meta_v Meta_V Meta_Control_v Meta_Control_v Meta_Control_v Meta_Control_v +U+0056 +U+0076 U+201c U+2018 Control_v Control_v Control_v Control_v Meta_v Meta_V Meta_v Meta_V Meta_Control_v Meta_Control_v Meta_Control_v Meta_Control_v +U+0056 +U+0076 U+201c U+2018 Control_v Control_v Control_v Control_v Meta_v Meta_V Meta_v Meta_V Meta_Control_v Meta_Control_v Meta_Control_v Meta_Control_v
+keycode 48 = +U+0062 +U+0042 U+201d U+2019 Control_b Control_b Control_b Control_b Meta_b Meta_B Meta_b Meta_B Meta_Control_b Meta_Control_b Meta_Control_b Meta_Control_b +U+0062 +U+0042 U+201d U+2019 Control_b Control_b Control_b Control_b Meta_b Meta_B Meta_b Meta_B Meta_Control_b Meta_Control_b Meta_Control_b Meta_Control_b +U+0062 +U+0042 U+201d U+2019 Control_b Control_b Control_b Control_b Meta_b Meta_B Meta_b Meta_B Meta_Control_b Meta_Control_b Meta_Control_b Meta_Control_b +U+0062 +U+0042 U+201d U+2019 Control_b Control_b Control_b Control_b Meta_b Meta_B Meta_b Meta_B Meta_Control_b Meta_Control_b Meta_Control_b Meta_Control_b +U+0042 +U+0062 U+201d U+2019 Control_b Control_b Control_b Control_b Meta_b Meta_B Meta_b Meta_B Meta_Control_b Meta_Control_b Meta_Control_b Meta_Control_b +U+0042 +U+0062 U+201d U+2019 Control_b Control_b Control_b Control_b Meta_b Meta_B Meta_b Meta_B Meta_Control_b Meta_Control_b Meta_Control_b Meta_Control_b +U+0042 +U+0062 U+201d U+2019 Control_b Control_b Control_b Control_b Meta_b Meta_B Meta_b Meta_B Meta_Control_b Meta_Control_b Meta_Control_b Meta_Control_b +U+0042 +U+0062 U+201d U+2019 Control_b Control_b Control_b Control_b Meta_b Meta_B Meta_b Meta_B Meta_Control_b Meta_Control_b Meta_Control_b Meta_Control_b
+keycode 49 = +U+006e +U+004e +U+006e +U+004e Control_n Control_n Control_n Control_n Meta_n Meta_N Meta_n Meta_N Meta_Control_n Meta_Control_n Meta_Control_n Meta_Control_n +U+006e +U+004e +U+006e +U+004e Control_n Control_n Control_n Control_n Meta_n Meta_N Meta_n Meta_N Meta_Control_n Meta_Control_n Meta_Control_n Meta_Control_n +U+006e +U+004e +U+006e +U+004e Control_n Control_n Control_n Control_n Meta_n Meta_N Meta_n Meta_N Meta_Control_n Meta_Control_n Meta_Control_n Meta_Control_n +U+006e +U+004e +U+006e +U+004e Control_n Control_n Control_n Control_n Meta_n Meta_N Meta_n Meta_N Meta_Control_n Meta_Control_n Meta_Control_n Meta_Control_n +U+004e +U+006e +U+004e +U+006e Control_n Control_n Control_n Control_n Meta_n Meta_N Meta_n Meta_N Meta_Control_n Meta_Control_n Meta_Control_n Meta_Control_n +U+004e +U+006e +U+004e +U+006e Control_n Control_n Control_n Control_n Meta_n Meta_N Meta_n Meta_N Meta_Control_n Meta_Control_n Meta_Control_n Meta_Control_n +U+004e +U+006e +U+004e +U+006e Control_n Control_n Control_n Control_n Meta_n Meta_N Meta_n Meta_N Meta_Control_n Meta_Control_n Meta_Control_n Meta_Control_n +U+004e +U+006e +U+004e +U+006e Control_n Control_n Control_n Control_n Meta_n Meta_N Meta_n Meta_N Meta_Control_n Meta_Control_n Meta_Control_n Meta_Control_n
+keycode 50 = +U+006d +U+004d +U+00b5 +U+00ba Control_m Control_m Control_m Control_m Meta_m Meta_M Meta_m Meta_M Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m +U+006d +U+004d +U+00b5 +U+00ba Control_m Control_m Control_m Control_m Meta_m Meta_M Meta_m Meta_M Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m +U+006d +U+004d +U+00b5 +U+00ba Control_m Control_m Control_m Control_m Meta_m Meta_M Meta_m Meta_M Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m +U+006d +U+004d +U+00b5 +U+00ba Control_m Control_m Control_m Control_m Meta_m Meta_M Meta_m Meta_M Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m +U+004d +U+006d +U+039c +U+00ba Control_m Control_m Control_m Control_m Meta_m Meta_M Meta_m Meta_M Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m +U+004d +U+006d +U+039c +U+00ba Control_m Control_m Control_m Control_m Meta_m Meta_M Meta_m Meta_M Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m +U+004d +U+006d +U+039c +U+00ba Control_m Control_m Control_m Control_m Meta_m Meta_M Meta_m Meta_M Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m +U+004d +U+006d +U+039c +U+00ba Control_m Control_m Control_m Control_m Meta_m Meta_M Meta_m Meta_M Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m
+keycode 51 = U+002c U+003b dead_cedilla dead_ogonek dead_cedilla dead_ogonek dead_cedilla dead_ogonek Meta_comma Meta_semicolon dead_cedilla dead_ogonek dead_cedilla dead_ogonek dead_cedilla dead_ogonek U+002c U+003b dead_cedilla dead_ogonek dead_cedilla dead_ogonek dead_cedilla dead_ogonek Meta_comma Meta_semicolon dead_cedilla dead_ogonek dead_cedilla dead_ogonek dead_cedilla dead_ogonek U+002c U+003b dead_cedilla dead_ogonek dead_cedilla dead_ogonek dead_cedilla dead_ogonek Meta_comma Meta_semicolon dead_cedilla dead_ogonek dead_cedilla dead_ogonek dead_cedilla dead_ogonek U+002c U+003b dead_cedilla dead_ogonek dead_cedilla dead_ogonek dead_cedilla dead_ogonek Meta_comma Meta_semicolon dead_cedilla dead_ogonek dead_cedilla dead_ogonek dead_cedilla dead_ogonek U+002c U+003b dead_cedilla dead_ogonek dead_cedilla dead_ogonek dead_cedilla dead_ogonek Meta_comma Meta_semicolon dead_cedilla dead_ogonek dead_cedilla dead_ogonek dead_cedilla dead_ogonek U+002c U+003b dead_cedilla dead_ogonek dead_cedilla dead_ogonek dead_cedilla dead_ogonek Meta_comma Meta_semicolon dead_cedilla dead_ogonek dead_cedilla dead_ogonek dead_cedilla dead_ogonek U+002c U+003b dead_cedilla dead_ogonek dead_cedilla dead_ogonek dead_cedilla dead_ogonek Meta_comma Meta_semicolon dead_cedilla dead_ogonek dead_cedilla dead_ogonek dead_cedilla dead_ogonek U+002c U+003b dead_cedilla dead_ogonek dead_cedilla dead_ogonek dead_cedilla dead_ogonek Meta_comma Meta_semicolon dead_cedilla dead_ogonek dead_cedilla dead_ogonek dead_cedilla dead_ogonek
+keycode 52 = U+002e U+003a U+00b7 U+002e Compose Compose Compose Compose Meta_period Meta_colon Meta_period Meta_period Compose Compose Compose Compose U+002e U+003a U+00b7 U+002e Compose Compose Compose Compose Meta_period Meta_colon Meta_period Meta_period Compose Compose Compose Compose U+002e U+003a U+00b7 U+002e Compose Compose Compose Compose Meta_period Meta_colon Meta_period Meta_period Compose Compose Compose Compose U+002e U+003a U+00b7 U+002e Compose Compose Compose Compose Meta_period Meta_colon Meta_period Meta_period Compose Compose Compose Compose U+002e U+003a U+00b7 U+002e Compose Compose Compose Compose Meta_period Meta_colon Meta_period Meta_period Compose Compose Compose Compose U+002e U+003a U+00b7 U+002e Compose Compose Compose Compose Meta_period Meta_colon Meta_period Meta_period Compose Compose Compose Compose U+002e U+003a U+00b7 U+002e Compose Compose Compose Compose Meta_period Meta_colon Meta_period Meta_period Compose Compose Compose Compose U+002e U+003a U+00b7 U+002e Compose Compose Compose Compose Meta_period Meta_colon Meta_period Meta_period Compose Compose Compose Compose
+keycode 53 = U+002d U+005f U+0323 U+002e Control_underscore Control_underscore Compose Compose Meta_minus Meta_underscore Meta_minus Meta_period Meta_Control_underscore Meta_Control_underscore Compose Compose U+002d U+005f U+0323 U+002e Control_underscore Control_underscore Compose Compose Meta_minus Meta_underscore Meta_minus Meta_period Meta_Control_underscore Meta_Control_underscore Compose Compose U+002d U+005f U+0323 U+002e Control_underscore Control_underscore Compose Compose Meta_minus Meta_underscore Meta_minus Meta_period Meta_Control_underscore Meta_Control_underscore Compose Compose U+002d U+005f U+0323 U+002e Control_underscore Control_underscore Compose Compose Meta_minus Meta_underscore Meta_minus Meta_period Meta_Control_underscore Meta_Control_underscore Compose Compose U+002d U+005f U+0323 U+002e Control_underscore Control_underscore Compose Compose Meta_minus Meta_underscore Meta_minus Meta_period Meta_Control_underscore Meta_Control_underscore Compose Compose U+002d U+005f U+0323 U+002e Control_underscore Control_underscore Compose Compose Meta_minus Meta_underscore Meta_minus Meta_period Meta_Control_underscore Meta_Control_underscore Compose Compose U+002d U+005f U+0323 U+002e Control_underscore Control_underscore Compose Compose Meta_minus Meta_underscore Meta_minus Meta_period Meta_Control_underscore Meta_Control_underscore Compose Compose U+002d U+005f U+0323 U+002e Control_underscore Control_underscore Compose Compose Meta_minus Meta_underscore Meta_minus Meta_period Meta_Control_underscore Meta_Control_underscore Compose Compose
+keycode 54 = Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift
+keycode 55 = KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply
+keycode 56 = Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt
+keycode 57 = U+0020 U+0020 U+0020 U+00a0 nul nul nul nul Meta_space Meta_space Meta_space Meta_space Meta_nul Meta_nul Meta_nul Meta_nul U+0020 U+0020 U+0020 U+00a0 nul nul nul nul Meta_space Meta_space Meta_space Meta_space Meta_nul Meta_nul Meta_nul Meta_nul U+0020 U+0020 U+0020 U+00a0 nul nul nul nul Meta_space Meta_space Meta_space Meta_space Meta_nul Meta_nul Meta_nul Meta_nul U+0020 U+0020 U+0020 U+00a0 nul nul nul nul Meta_space Meta_space Meta_space Meta_space Meta_nul Meta_nul Meta_nul Meta_nul U+0020 U+0020 U+0020 U+00a0 nul nul nul nul Meta_space Meta_space Meta_space Meta_space Meta_nul Meta_nul Meta_nul Meta_nul U+0020 U+0020 U+0020 U+00a0 nul nul nul nul Meta_space Meta_space Meta_space Meta_space Meta_nul Meta_nul Meta_nul Meta_nul U+0020 U+0020 U+0020 U+00a0 nul nul nul nul Meta_space Meta_space Meta_space Meta_space Meta_nul Meta_nul Meta_nul Meta_nul U+0020 U+0020 U+0020 U+00a0 nul nul nul nul Meta_space Meta_space Meta_space Meta_space Meta_nul Meta_nul Meta_nul Meta_nul
+keycode 58 = CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock
+keycode 59 = F1 F13 Console_13 Console_25 F25 F37 Console_13 Console_25 Console_1 Console_13 F1 F1 Console_1 Console_13 F1 F1 F1 F13 Console_13 Console_25 F25 F37 Console_13 Console_25 Console_1 Console_13 F1 F1 Console_1 Console_13 F1 F1 F1 F13 Console_13 Console_25 F25 F37 Console_13 Console_25 Console_1 Console_13 F1 F1 Console_1 Console_13 F1 F1 F1 F13 Console_13 Console_25 F25 F37 Console_13 Console_25 Console_1 Console_13 F1 F1 Console_1 Console_13 F1 F1 F1 F13 Console_13 Console_25 F25 F37 Console_13 Console_25 Console_1 Console_13 F1 F1 Console_1 Console_13 F1 F1 F1 F13 Console_13 Console_25 F25 F37 Console_13 Console_25 Console_1 Console_13 F1 F1 Console_1 Console_13 F1 F1 F1 F13 Console_13 Console_25 F25 F37 Console_13 Console_25 Console_1 Console_13 F1 F1 Console_1 Console_13 F1 F1 F1 F13 Console_13 Console_25 F25 F37 Console_13 Console_25 Console_1 Console_13 F1 F1 Console_1 Console_13 F1 F1
+keycode 60 = F2 F14 Console_14 Console_26 F26 F38 Console_14 Console_26 Console_2 Console_14 F2 F2 Console_2 Console_14 F2 F2 F2 F14 Console_14 Console_26 F26 F38 Console_14 Console_26 Console_2 Console_14 F2 F2 Console_2 Console_14 F2 F2 F2 F14 Console_14 Console_26 F26 F38 Console_14 Console_26 Console_2 Console_14 F2 F2 Console_2 Console_14 F2 F2 F2 F14 Console_14 Console_26 F26 F38 Console_14 Console_26 Console_2 Console_14 F2 F2 Console_2 Console_14 F2 F2 F2 F14 Console_14 Console_26 F26 F38 Console_14 Console_26 Console_2 Console_14 F2 F2 Console_2 Console_14 F2 F2 F2 F14 Console_14 Console_26 F26 F38 Console_14 Console_26 Console_2 Console_14 F2 F2 Console_2 Console_14 F2 F2 F2 F14 Console_14 Console_26 F26 F38 Console_14 Console_26 Console_2 Console_14 F2 F2 Console_2 Console_14 F2 F2 F2 F14 Console_14 Console_26 F26 F38 Console_14 Console_26 Console_2 Console_14 F2 F2 Console_2 Console_14 F2 F2
+keycode 61 = F3 F15 Console_15 Console_27 F27 F39 Console_15 Console_27 Console_3 Console_15 F3 F3 Console_3 Console_15 F3 F3 F3 F15 Console_15 Console_27 F27 F39 Console_15 Console_27 Console_3 Console_15 F3 F3 Console_3 Console_15 F3 F3 F3 F15 Console_15 Console_27 F27 F39 Console_15 Console_27 Console_3 Console_15 F3 F3 Console_3 Console_15 F3 F3 F3 F15 Console_15 Console_27 F27 F39 Console_15 Console_27 Console_3 Console_15 F3 F3 Console_3 Console_15 F3 F3 F3 F15 Console_15 Console_27 F27 F39 Console_15 Console_27 Console_3 Console_15 F3 F3 Console_3 Console_15 F3 F3 F3 F15 Console_15 Console_27 F27 F39 Console_15 Console_27 Console_3 Console_15 F3 F3 Console_3 Console_15 F3 F3 F3 F15 Console_15 Console_27 F27 F39 Console_15 Console_27 Console_3 Console_15 F3 F3 Console_3 Console_15 F3 F3 F3 F15 Console_15 Console_27 F27 F39 Console_15 Console_27 Console_3 Console_15 F3 F3 Console_3 Console_15 F3 F3
+keycode 62 = F4 F16 Console_16 Console_28 F28 F40 Console_16 Console_28 Console_4 Console_16 F4 F4 Console_4 Console_16 F4 F4 F4 F16 Console_16 Console_28 F28 F40 Console_16 Console_28 Console_4 Console_16 F4 F4 Console_4 Console_16 F4 F4 F4 F16 Console_16 Console_28 F28 F40 Console_16 Console_28 Console_4 Console_16 F4 F4 Console_4 Console_16 F4 F4 F4 F16 Console_16 Console_28 F28 F40 Console_16 Console_28 Console_4 Console_16 F4 F4 Console_4 Console_16 F4 F4 F4 F16 Console_16 Console_28 F28 F40 Console_16 Console_28 Console_4 Console_16 F4 F4 Console_4 Console_16 F4 F4 F4 F16 Console_16 Console_28 F28 F40 Console_16 Console_28 Console_4 Console_16 F4 F4 Console_4 Console_16 F4 F4 F4 F16 Console_16 Console_28 F28 F40 Console_16 Console_28 Console_4 Console_16 F4 F4 Console_4 Console_16 F4 F4 F4 F16 Console_16 Console_28 F28 F40 Console_16 Console_28 Console_4 Console_16 F4 F4 Console_4 Console_16 F4 F4
+keycode 63 = F5 F17 Console_17 Console_29 F29 F41 Console_17 Console_29 Console_5 Console_17 F5 F5 Console_5 Console_17 F5 F5 F5 F17 Console_17 Console_29 F29 F41 Console_17 Console_29 Console_5 Console_17 F5 F5 Console_5 Console_17 F5 F5 F5 F17 Console_17 Console_29 F29 F41 Console_17 Console_29 Console_5 Console_17 F5 F5 Console_5 Console_17 F5 F5 F5 F17 Console_17 Console_29 F29 F41 Console_17 Console_29 Console_5 Console_17 F5 F5 Console_5 Console_17 F5 F5 F5 F17 Console_17 Console_29 F29 F41 Console_17 Console_29 Console_5 Console_17 F5 F5 Console_5 Console_17 F5 F5 F5 F17 Console_17 Console_29 F29 F41 Console_17 Console_29 Console_5 Console_17 F5 F5 Console_5 Console_17 F5 F5 F5 F17 Console_17 Console_29 F29 F41 Console_17 Console_29 Console_5 Console_17 F5 F5 Console_5 Console_17 F5 F5 F5 F17 Console_17 Console_29 F29 F41 Console_17 Console_29 Console_5 Console_17 F5 F5 Console_5 Console_17 F5 F5
+keycode 64 = F6 F18 Console_18 Console_30 F30 F42 Console_18 Console_30 Console_6 Console_18 F6 F6 Console_6 Console_18 F6 F6 F6 F18 Console_18 Console_30 F30 F42 Console_18 Console_30 Console_6 Console_18 F6 F6 Console_6 Console_18 F6 F6 F6 F18 Console_18 Console_30 F30 F42 Console_18 Console_30 Console_6 Console_18 F6 F6 Console_6 Console_18 F6 F6 F6 F18 Console_18 Console_30 F30 F42 Console_18 Console_30 Console_6 Console_18 F6 F6 Console_6 Console_18 F6 F6 F6 F18 Console_18 Console_30 F30 F42 Console_18 Console_30 Console_6 Console_18 F6 F6 Console_6 Console_18 F6 F6 F6 F18 Console_18 Console_30 F30 F42 Console_18 Console_30 Console_6 Console_18 F6 F6 Console_6 Console_18 F6 F6 F6 F18 Console_18 Console_30 F30 F42 Console_18 Console_30 Console_6 Console_18 F6 F6 Console_6 Console_18 F6 F6 F6 F18 Console_18 Console_30 F30 F42 Console_18 Console_30 Console_6 Console_18 F6 F6 Console_6 Console_18 F6 F6
+keycode 65 = F7 F19 Console_19 Console_31 F31 F43 Console_19 Console_31 Console_7 Console_19 F7 F7 Console_7 Console_19 F7 F7 F7 F19 Console_19 Console_31 F31 F43 Console_19 Console_31 Console_7 Console_19 F7 F7 Console_7 Console_19 F7 F7 F7 F19 Console_19 Console_31 F31 F43 Console_19 Console_31 Console_7 Console_19 F7 F7 Console_7 Console_19 F7 F7 F7 F19 Console_19 Console_31 F31 F43 Console_19 Console_31 Console_7 Console_19 F7 F7 Console_7 Console_19 F7 F7 F7 F19 Console_19 Console_31 F31 F43 Console_19 Console_31 Console_7 Console_19 F7 F7 Console_7 Console_19 F7 F7 F7 F19 Console_19 Console_31 F31 F43 Console_19 Console_31 Console_7 Console_19 F7 F7 Console_7 Console_19 F7 F7 F7 F19 Console_19 Console_31 F31 F43 Console_19 Console_31 Console_7 Console_19 F7 F7 Console_7 Console_19 F7 F7 F7 F19 Console_19 Console_31 F31 F43 Console_19 Console_31 Console_7 Console_19 F7 F7 Console_7 Console_19 F7 F7
+keycode 66 = F8 F20 Console_20 Console_32 F32 F44 Console_20 Console_32 Console_8 Console_20 F8 F8 Console_8 Console_20 F8 F8 F8 F20 Console_20 Console_32 F32 F44 Console_20 Console_32 Console_8 Console_20 F8 F8 Console_8 Console_20 F8 F8 F8 F20 Console_20 Console_32 F32 F44 Console_20 Console_32 Console_8 Console_20 F8 F8 Console_8 Console_20 F8 F8 F8 F20 Console_20 Console_32 F32 F44 Console_20 Console_32 Console_8 Console_20 F8 F8 Console_8 Console_20 F8 F8 F8 F20 Console_20 Console_32 F32 F44 Console_20 Console_32 Console_8 Console_20 F8 F8 Console_8 Console_20 F8 F8 F8 F20 Console_20 Console_32 F32 F44 Console_20 Console_32 Console_8 Console_20 F8 F8 Console_8 Console_20 F8 F8 F8 F20 Console_20 Console_32 F32 F44 Console_20 Console_32 Console_8 Console_20 F8 F8 Console_8 Console_20 F8 F8 F8 F20 Console_20 Console_32 F32 F44 Console_20 Console_32 Console_8 Console_20 F8 F8 Console_8 Console_20 F8 F8
+keycode 67 = F9 F21 Console_21 Console_33 F33 F45 Console_21 Console_33 Console_9 Console_21 F9 F9 Console_9 Console_21 F9 F9 F9 F21 Console_21 Console_33 F33 F45 Console_21 Console_33 Console_9 Console_21 F9 F9 Console_9 Console_21 F9 F9 F9 F21 Console_21 Console_33 F33 F45 Console_21 Console_33 Console_9 Console_21 F9 F9 Console_9 Console_21 F9 F9 F9 F21 Console_21 Console_33 F33 F45 Console_21 Console_33 Console_9 Console_21 F9 F9 Console_9 Console_21 F9 F9 F9 F21 Console_21 Console_33 F33 F45 Console_21 Console_33 Console_9 Console_21 F9 F9 Console_9 Console_21 F9 F9 F9 F21 Console_21 Console_33 F33 F45 Console_21 Console_33 Console_9 Console_21 F9 F9 Console_9 Console_21 F9 F9 F9 F21 Console_21 Console_33 F33 F45 Console_21 Console_33 Console_9 Console_21 F9 F9 Console_9 Console_21 F9 F9 F9 F21 Console_21 Console_33 F33 F45 Console_21 Console_33 Console_9 Console_21 F9 F9 Console_9 Console_21 F9 F9
+keycode 68 = F10 F22 Console_22 Console_34 F34 F46 Console_22 Console_34 Console_10 Console_22 F10 F10 Console_10 Console_22 F10 F10 F10 F22 Console_22 Console_34 F34 F46 Console_22 Console_34 Console_10 Console_22 F10 F10 Console_10 Console_22 F10 F10 F10 F22 Console_22 Console_34 F34 F46 Console_22 Console_34 Console_10 Console_22 F10 F10 Console_10 Console_22 F10 F10 F10 F22 Console_22 Console_34 F34 F46 Console_22 Console_34 Console_10 Console_22 F10 F10 Console_10 Console_22 F10 F10 F10 F22 Console_22 Console_34 F34 F46 Console_22 Console_34 Console_10 Console_22 F10 F10 Console_10 Console_22 F10 F10 F10 F22 Console_22 Console_34 F34 F46 Console_22 Console_34 Console_10 Console_22 F10 F10 Console_10 Console_22 F10 F10 F10 F22 Console_22 Console_34 F34 F46 Console_22 Console_34 Console_10 Console_22 F10 F10 Console_10 Console_22 F10 F10 F10 F22 Console_22 Console_34 F34 F46 Console_22 Console_34 Console_10 Console_22 F10 F10 Console_10 Console_22 F10 F10
+keycode 69 = Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock
+keycode 70 = Scroll_Lock Show_Memory Show_Registers Scroll_Lock Show_State Scroll_Lock Scroll_Lock Scroll_Lock Show_Registers Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Show_Memory Show_Registers Scroll_Lock Show_State Scroll_Lock Scroll_Lock Scroll_Lock Show_Registers Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Show_Memory Show_Registers Scroll_Lock Show_State Scroll_Lock Scroll_Lock Scroll_Lock Show_Registers Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Show_Memory Show_Registers Scroll_Lock Show_State Scroll_Lock Scroll_Lock Scroll_Lock Show_Registers Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Show_Memory Show_Registers Scroll_Lock Show_State Scroll_Lock Scroll_Lock Scroll_Lock Show_Registers Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Show_Memory Show_Registers Scroll_Lock Show_State Scroll_Lock Scroll_Lock Scroll_Lock Show_Registers Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Show_Memory Show_Registers Scroll_Lock Show_State Scroll_Lock Scroll_Lock Scroll_Lock Show_Registers Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Show_Memory Show_Registers Scroll_Lock Show_State Scroll_Lock Scroll_Lock Scroll_Lock Show_Registers Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock
+keycode 71 = KP_7 KP_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 Ascii_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 Ascii_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 Ascii_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 Ascii_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 Ascii_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 Ascii_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 Ascii_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 Ascii_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7
+keycode 72 = KP_8 KP_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 Ascii_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 Ascii_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 Ascii_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 Ascii_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 Ascii_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 Ascii_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 Ascii_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 Ascii_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8
+keycode 73 = KP_9 KP_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 Ascii_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 Ascii_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 Ascii_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 Ascii_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 Ascii_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 Ascii_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 Ascii_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 Ascii_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9
+keycode 74 = KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract
+keycode 75 = KP_4 KP_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 Ascii_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 Ascii_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 Ascii_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 Ascii_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 Ascii_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 Ascii_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 Ascii_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 Ascii_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4
+keycode 76 = KP_5 KP_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 Ascii_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 Ascii_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 Ascii_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 Ascii_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 Ascii_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 Ascii_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 Ascii_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 Ascii_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5
+keycode 77 = KP_6 KP_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 Ascii_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 Ascii_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 Ascii_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 Ascii_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 Ascii_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 Ascii_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 Ascii_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 Ascii_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6
+keycode 78 = KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add
+keycode 79 = KP_1 KP_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 Ascii_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 Ascii_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 Ascii_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 Ascii_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 Ascii_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 Ascii_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 Ascii_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 Ascii_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1
+keycode 80 = KP_2 KP_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 Ascii_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 Ascii_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 Ascii_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 Ascii_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 Ascii_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 Ascii_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 Ascii_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 Ascii_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2
+keycode 81 = KP_3 KP_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 Ascii_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 Ascii_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 Ascii_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 Ascii_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 Ascii_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 Ascii_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 Ascii_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 Ascii_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3
+keycode 82 = KP_0 KP_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 Ascii_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 Ascii_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 Ascii_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 Ascii_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 Ascii_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 Ascii_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 Ascii_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 Ascii_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0
+keycode 83 = KP_Comma KP_Comma KP_Comma KP_Comma KP_Comma KP_Comma Boot KP_Comma KP_Comma KP_Comma KP_Comma KP_Comma Boot KP_Comma Boot KP_Comma KP_Comma KP_Comma KP_Comma KP_Comma KP_Comma KP_Comma Boot KP_Comma KP_Comma KP_Comma KP_Comma KP_Comma Boot KP_Comma Boot KP_Comma KP_Comma KP_Comma KP_Comma KP_Comma KP_Comma KP_Comma Boot KP_Comma KP_Comma KP_Comma KP_Comma KP_Comma Boot KP_Comma Boot KP_Comma KP_Comma KP_Comma KP_Comma KP_Comma KP_Comma KP_Comma Boot KP_Comma KP_Comma KP_Comma KP_Comma KP_Comma Boot KP_Comma Boot KP_Comma KP_Comma KP_Comma KP_Comma KP_Comma KP_Comma KP_Comma Boot KP_Comma KP_Comma KP_Comma KP_Comma KP_Comma Boot KP_Comma Boot KP_Comma KP_Comma KP_Comma KP_Comma KP_Comma KP_Comma KP_Comma Boot KP_Comma KP_Comma KP_Comma KP_Comma KP_Comma Boot KP_Comma Boot KP_Comma KP_Comma KP_Comma KP_Comma KP_Comma KP_Comma KP_Comma Boot KP_Comma KP_Comma KP_Comma KP_Comma KP_Comma Boot KP_Comma Boot KP_Comma KP_Comma KP_Comma KP_Comma KP_Comma KP_Comma KP_Comma Boot KP_Comma KP_Comma KP_Comma KP_Comma KP_Comma Boot KP_Comma Boot KP_Comma
+keycode 86 = U+003c U+003e U+007c U+00a6 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_less Meta_greater Meta_bar Meta_bar VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003c U+003e U+007c U+00a6 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_less Meta_greater Meta_bar Meta_bar VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003c U+003e U+007c U+00a6 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_less Meta_greater Meta_bar Meta_bar VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003c U+003e U+007c U+00a6 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_less Meta_greater Meta_bar Meta_bar VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003c U+003e U+007c U+00a6 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_less Meta_greater Meta_bar Meta_bar VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003c U+003e U+007c U+00a6 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_less Meta_greater Meta_bar Meta_bar VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003c U+003e U+007c U+00a6 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_less Meta_greater Meta_bar Meta_bar VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003c U+003e U+007c U+00a6 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_less Meta_greater Meta_bar Meta_bar VoidSymbol VoidSymbol VoidSymbol VoidSymbol
+keycode 87 = F11 F23 Console_23 Console_35 F35 F47 Console_23 Console_35 Console_11 Console_23 F11 F11 Console_11 Console_23 F11 F11 F11 F23 Console_23 Console_35 F35 F47 Console_23 Console_35 Console_11 Console_23 F11 F11 Console_11 Console_23 F11 F11 F11 F23 Console_23 Console_35 F35 F47 Console_23 Console_35 Console_11 Console_23 F11 F11 Console_11 Console_23 F11 F11 F11 F23 Console_23 Console_35 F35 F47 Console_23 Console_35 Console_11 Console_23 F11 F11 Console_11 Console_23 F11 F11 F11 F23 Console_23 Console_35 F35 F47 Console_23 Console_35 Console_11 Console_23 F11 F11 Console_11 Console_23 F11 F11 F11 F23 Console_23 Console_35 F35 F47 Console_23 Console_35 Console_11 Console_23 F11 F11 Console_11 Console_23 F11 F11 F11 F23 Console_23 Console_35 F35 F47 Console_23 Console_35 Console_11 Console_23 F11 F11 Console_11 Console_23 F11 F11 F11 F23 Console_23 Console_35 F35 F47 Console_23 Console_35 Console_11 Console_23 F11 F11 Console_11 Console_23 F11 F11
+keycode 88 = F12 F24 Console_24 Console_36 F36 F48 Console_24 Console_36 Console_12 Console_24 F12 F12 Console_12 Console_24 F12 F12 F12 F24 Console_24 Console_36 F36 F48 Console_24 Console_36 Console_12 Console_24 F12 F12 Console_12 Console_24 F12 F12 F12 F24 Console_24 Console_36 F36 F48 Console_24 Console_36 Console_12 Console_24 F12 F12 Console_12 Console_24 F12 F12 F12 F24 Console_24 Console_36 F36 F48 Console_24 Console_36 Console_12 Console_24 F12 F12 Console_12 Console_24 F12 F12 F12 F24 Console_24 Console_36 F36 F48 Console_24 Console_36 Console_12 Console_24 F12 F12 Console_12 Console_24 F12 F12 F12 F24 Console_24 Console_36 F36 F48 Console_24 Console_36 Console_12 Console_24 F12 F12 Console_12 Console_24 F12 F12 F12 F24 Console_24 Console_36 F36 F48 Console_24 Console_36 Console_12 Console_24 F12 F12 Console_12 Console_24 F12 F12 F12 F24 Console_24 Console_36 F36 F48 Console_24 Console_36 Console_12 Console_24 F12 F12 Console_12 Console_24 F12 F12
+keycode 102 = Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home
+keycode 103 = Up Up Up Up Up Up Up Up KeyboardSignal Up Up Up Up Up Up Up Up Up Up Up Up Up Up Up KeyboardSignal Up Up Up Up Up Up Up Up Up Up Up Up Up Up Up KeyboardSignal Up Up Up Up Up Up Up Up Up Up Up Up Up Up Up KeyboardSignal Up Up Up Up Up Up Up Up Up Up Up Up Up Up Up KeyboardSignal Up Up Up Up Up Up Up Up Up Up Up Up Up Up Up KeyboardSignal Up Up Up Up Up Up Up Up Up Up Up Up Up Up Up KeyboardSignal Up Up Up Up Up Up Up Up Up Up Up Up Up Up Up KeyboardSignal Up Up Up Up Up Up Up
+keycode 104 = Prior Scroll_Backward Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Scroll_Backward Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Scroll_Backward Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Scroll_Backward Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Scroll_Backward Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Scroll_Backward Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Scroll_Backward Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Scroll_Backward Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior
+keycode 105 = Left Left Left Left Left Left Left Left Decr_Console Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Decr_Console Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Decr_Console Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Decr_Console Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Decr_Console Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Decr_Console Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Decr_Console Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Decr_Console Left Left Left Left Left Left Left
+keycode 106 = Right Right Right Right Right Right Right Right Incr_Console Right Right Right Right Right Right Right Right Right Right Right Right Right Right Right Incr_Console Right Right Right Right Right Right Right Right Right Right Right Right Right Right Right Incr_Console Right Right Right Right Right Right Right Right Right Right Right Right Right Right Right Incr_Console Right Right Right Right Right Right Right Right Right Right Right Right Right Right Right Incr_Console Right Right Right Right Right Right Right Right Right Right Right Right Right Right Right Incr_Console Right Right Right Right Right Right Right Right Right Right Right Right Right Right Right Incr_Console Right Right Right Right Right Right Right Right Right Right Right Right Right Right Right Incr_Console Right Right Right Right Right Right Right
+keycode 107 = End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End
+keycode 108 = Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down
+keycode 109 = Next Scroll_Forward Next Next Next Next Next Next Next Next Next Next Next Next Next Next Next Scroll_Forward Next Next Next Next Next Next Next Next Next Next Next Next Next Next Next Scroll_Forward Next Next Next Next Next Next Next Next Next Next Next Next Next Next Next Scroll_Forward Next Next Next Next Next Next Next Next Next Next Next Next Next Next Next Scroll_Forward Next Next Next Next Next Next Next Next Next Next Next Next Next Next Next Scroll_Forward Next Next Next Next Next Next Next Next Next Next Next Next Next Next Next Scroll_Forward Next Next Next Next Next Next Next Next Next Next Next Next Next Next Next Scroll_Forward Next Next Next Next Next Next Next Next Next Next Next Next Next Next
+keycode 110 = Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert
+keycode 111 = Remove Remove Remove Remove Remove Remove Boot Remove Remove Remove Remove Remove Boot Remove Boot Remove Remove Remove Remove Remove Remove Remove Boot Remove Remove Remove Remove Remove Boot Remove Boot Remove Remove Remove Remove Remove Remove Remove Boot Remove Remove Remove Remove Remove Boot Remove Boot Remove Remove Remove Remove Remove Remove Remove Boot Remove Remove Remove Remove Remove Boot Remove Boot Remove Remove Remove Remove Remove Remove Remove Boot Remove Remove Remove Remove Remove Boot Remove Boot Remove Remove Remove Remove Remove Remove Remove Boot Remove Remove Remove Remove Remove Boot Remove Boot Remove Remove Remove Remove Remove Remove Remove Boot Remove Remove Remove Remove Remove Boot Remove Boot Remove Remove Remove Remove Remove Remove Remove Boot Remove Remove Remove Remove Remove Boot Remove Boot Remove
+keycode 96 = KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter
+keycode 97 = Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control
+keycode 119 = Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause
+keycode 99 = VoidSymbol VoidSymbol Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash VoidSymbol VoidSymbol Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash VoidSymbol VoidSymbol Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash VoidSymbol VoidSymbol Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash VoidSymbol VoidSymbol Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash VoidSymbol VoidSymbol Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash VoidSymbol VoidSymbol Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash VoidSymbol VoidSymbol Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash
+keycode 98 = KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide
+keycode 100 = AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr
+keycode 125 = Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt
+keycode 126 = Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt
+keycode 121 = KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period
+strings as usual
+# The content of this file will be appended to the keyboard layout.
+# For example if you uncomment the following lines Alt+j can be used
+# to go to the next console and Alt+k can be used to go to the
+# previous console:
+
+# alt keycode 36 = Incr_Console
+# shiftl alt keycode 36 = Incr_Console
+# shiftr alt keycode 36 = Incr_Console
+# shiftr shiftl alt keycode 36 = Incr_Console
+# ctrll alt keycode 36 = Incr_Console
+# ctrll shiftl alt keycode 36 = Incr_Console
+# ctrll shiftr alt keycode 36 = Incr_Console
+# ctrll shiftr shiftl alt keycode 36 = Incr_Console
+
+# alt keycode 37 = Decr_Console
+# shiftl alt keycode 37 = Decr_Console
+# shiftr alt keycode 37 = Decr_Console
+# shiftr shiftl alt keycode 37 = Decr_Console
+# ctrll alt keycode 37 = Decr_Console
+# ctrll shiftl alt keycode 37 = Decr_Console
+# ctrll shiftr alt keycode 37 = Decr_Console
+# ctrll shiftr shiftl alt keycode 37 = Decr_Console
+
diff --git a/resources/grub/keymap/original/ukdvorak b/resources/utilities/grub-assemble/keymap/original/ukdvorak
index d41b8735..d41b8735 100644
--- a/resources/grub/keymap/original/ukdvorak
+++ b/resources/utilities/grub-assemble/keymap/original/ukdvorak
diff --git a/resources/grub/keymap/original/ukqwerty b/resources/utilities/grub-assemble/keymap/original/ukqwerty
index 94e5a456..94e5a456 100644
--- a/resources/grub/keymap/original/ukqwerty
+++ b/resources/utilities/grub-assemble/keymap/original/ukqwerty
diff --git a/resources/grub/keymap/original/usdvorak b/resources/utilities/grub-assemble/keymap/original/usdvorak
index b99b6a06..b99b6a06 100644
--- a/resources/grub/keymap/original/usdvorak
+++ b/resources/utilities/grub-assemble/keymap/original/usdvorak
diff --git a/resources/grub/keymap/original/usqwerty b/resources/utilities/grub-assemble/keymap/original/usqwerty
index 51103234..51103234 100644
--- a/resources/grub/keymap/original/usqwerty
+++ b/resources/utilities/grub-assemble/keymap/original/usqwerty
diff --git a/resources/utilities/grub-assemble/keymap/svenska.gkb b/resources/utilities/grub-assemble/keymap/svenska.gkb
new file mode 100644
index 00000000..ec627db2
--- /dev/null
+++ b/resources/utilities/grub-assemble/keymap/svenska.gkb
Binary files differ
diff --git a/resources/grub/keymap/ukdvorak.gkb b/resources/utilities/grub-assemble/keymap/ukdvorak.gkb
index c793cae8..c793cae8 100644
--- a/resources/grub/keymap/ukdvorak.gkb
+++ b/resources/utilities/grub-assemble/keymap/ukdvorak.gkb
Binary files differ
diff --git a/resources/grub/keymap/ukqwerty.gkb b/resources/utilities/grub-assemble/keymap/ukqwerty.gkb
index 8e5ff299..8e5ff299 100644
--- a/resources/grub/keymap/ukqwerty.gkb
+++ b/resources/utilities/grub-assemble/keymap/ukqwerty.gkb
Binary files differ
diff --git a/resources/grub/keymap/usdvorak.gkb b/resources/utilities/grub-assemble/keymap/usdvorak.gkb
index 41301efd..41301efd 100644
--- a/resources/grub/keymap/usdvorak.gkb
+++ b/resources/utilities/grub-assemble/keymap/usdvorak.gkb
Binary files differ
diff --git a/resources/grub/keymap/usqwerty.gkb b/resources/utilities/grub-assemble/keymap/usqwerty.gkb
index 5fb78d33..5fb78d33 100644
--- a/resources/grub/keymap/usqwerty.gkb
+++ b/resources/utilities/grub-assemble/keymap/usqwerty.gkb
Binary files differ
diff --git a/resources/utilities/i945-pwm b/resources/utilities/i945-pwm
new file mode 160000
+Subproject d88c8b290b9473e071d24cd3b97f4a091ee398c
diff --git a/resources/utilities/i945gpu/intel-regs.py b/resources/utilities/i945gpu/intel-regs.py
index f16a8d75..5767d4a5 100755
--- a/resources/utilities/i945gpu/intel-regs.py
+++ b/resources/utilities/i945gpu/intel-regs.py
@@ -27,17 +27,31 @@ _MEMORY = re.compile(r"^\s+Memory\s+at\s+([0-9a-f]+)\s+\(32-bit, non-prefetchabl
def get_pci_data():
# lspci has a machine readable format, but it doesn't have the needed data.
- for devid in "8086:27a2", "8086:27a6":
+ for devid in ("8086:27a2",):
lspci = subprocess.Popen(("lspci", "-vn", "-d", devid),
stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
+ address = None
+ memory = None
for line in lspci.communicate()[0].split("\n"):
+ if line and line[0] == "0":
+ address = line.split()[0]
match = _MEMORY.match(line)
if match is not None:
- yield int(match.group(1), 16)
+ memory = int(match.group(1), 16)
break
+ yield (address, memory)
-func0, func1 = list(get_pci_data())
+
+def config_byte(address, offset):
+ """Return byte at specified offset in PCI config space of device
+ identified by address."""
+ with open("/sys/bus/pci/devices/0000:%s/config" % address, "rb") as f:
+ f.seek(offset)
+ return struct.unpack("=B", f.read(1))
+
+
+addr0, func0 = list(get_pci_data())[0]
def read32(fo, base, offset):
@@ -91,3 +105,4 @@ if __name__ == "__main__":
print "backlight modulation frequency = %f Hz" % mod_freq
print "duty cycle = %d%%" % (100.0 * (backlight & 0xffff)
/ (backlight >> 16))
+ print "legacy backlight brightness = 0x%02x" % config_byte(addr0, 0xf4)