[coreboot] USB data write failure

Autoboot contact at autoboot.org
Tue Aug 11 15:53:50 CET 2015


Hello,

running autoboot with coreboot as of commit
a3e41c089602c58409e8dfd4aceecbdd7d4f4a5b being the latest not breaking
USB and PCI-E on my ThinkPad X201.

Writing data to USB storage appears bugged.

I tested this using different disks on three different machines:

	- ThinkPad X201, autoboot, latest Parabola
	- ThinkPad T43, stock firmware, Debian 8
	- Asus EeePC 901, stock firmware, latest Arch

In all combinations, I created a btrfs filesystem inside a LUKS
container on the whole disk, using both USB and internal SATA (except
for the 901):

	$ crytpsetup luksFormat /dev/sdb
	$ cryptsetup open /dev/sdb test
	$ mkfs.btrfs /dev/mapper/test
	$ mount -o compress=lzo /dev/mapper/test /mnt
	$ dd if=/dev/urandom of=/mnt/20M bs=1M count=20 iflag=fullblock
	$ umount /mnt
	$ btrfs check /dev/mapper/test

Only when using my X201 *with coreboot and USB*, this procedure resulted
in the following error:

	$ btrfs check /dev/mapper/test
	Checking filesystem on /dev/mapper/test
	UUID: 33c88ec2-2c4e-4844-905f-c0fbebc00a1f
	checking extents
	bad metadata [29605888, 29622272) crossing stripe boundary
	bad metadata [29736960, 29753344) crossing stripe boundary
	Errors found in extent allocation tree or chunk allocation
	checking free space cache
	checking fs roots
	checking csums
	checking root refs
	found 21135362 bytes used err is 0
	total csum bytes: 20480
	total tree bytes: 163840
	total fs tree bytes: 32768
	total extent tree bytes: 16384
	btree space waste bytes: 129312
	file data blocks allocated: 21495808
	 referenced 21495808
	btrfs-progs v4.1.2-32-g6054018

Using the same disk with my internal SATA port and testing from a live
USB stick showed no errors at all.

Every other setup worked fine and didn't show any error either. I also
tested this with ext4, but as expected, with ext4 everything seems to be
ok since it doesn't even provide this type of error detection.

This clearly seems to be a coreboot related issue. I used to run the
latest coreboot with autoboot, but booting from USB somehow didn't work
and someone in #coreboot told me USB an PCI-E was broken as of commit
456f495d, so I reset to the above mentioned. USB boot worked again, but
then I noticed this faulty behaviour.

I attached the coreboot config used to build my current autoboot image with.

Hopefully this report is useful to find the bug and eventually fix it asap.
-------------- next part --------------

CONFIG_EXPERT=y
CONFIG_LOCALVERSION=""
CONFIG_CBFS_PREFIX="fallback"
CONFIG_COMPILER_GCC=y
CONFIG_CCACHE=y
CONFIG_COMPRESS_RAMSTAGE=y
CONFIG_INCLUDE_CONFIG_FILE=y
CONFIG_EARLY_CBMEM_INIT=y
CONFIG_COLLECT_TIMESTAMPS=y
CONFIG_RELOCATABLE_MODULES=y
CONFIG_FLASHMAP_OFFSET=0
CONFIG_BOOTBLOCK_SIMPLE=y
CONFIG_BOOTBLOCK_SOURCE="bootblock_simple.c"
CONFIG_SKIP_MAX_REBOOT_CNT_CLEAR=y

CONFIG_VENDOR_LENOVO=y
CONFIG_BOARD_SPECIFIC_OPTIONS=y
CONFIG_MAINBOARD_DIR="lenovo/x201"
CONFIG_MAINBOARD_PART_NUMBER="ThinkPad X201"
CONFIG_MAINBOARD_VENDOR="LENOVO"
CONFIG_MAX_CPUS=4
CONFIG_VGA_BIOS_ID="8086,0046"
CONFIG_MAINBOARD_SERIAL_NUMBER="123456789"
CONFIG_RAMTOP=0x200000
CONFIG_HEAP_SIZE=0x4000
CONFIG_RAMBASE=0x100000
CONFIG_DCACHE_RAM_BASE=0xff7f0000
CONFIG_DCACHE_RAM_SIZE=0x10000
CONFIG_MMCONF_BASE_ADDRESS=0xe0000000
CONFIG_MAINBOARD_SMBIOS_MANUFACTURER="LENOVO"
CONFIG_MAINBOARD_DO_NATIVE_VGA_INIT=y
CONFIG_ID_SECTION_OFFSET=0x80
CONFIG_DRAM_RESET_GATE_GPIO=10
CONFIG_USBDEBUG_HCD_INDEX=2
CONFIG_HAVE_ME_BIN=y
CONFIG_BOOT_MEDIA_SPI_BUS=0
CONFIG_CACHE_ROM_SIZE_OVERRIDE=0
CONFIG_CBFS_SIZE=0x100000
CONFIG_BOARD_LENOVO_X201=y
CONFIG_SEABIOS_PS2_TIMEOUT=0
CONFIG_CPU_ADDR_BITS=36
CONFIG_DEFAULT_CONSOLE_LOGLEVEL=8
CONFIG_MAINBOARD_VERSION="1.0"
CONFIG_BOARD_ROMSIZE_KB_8192=y
CONFIG_COREBOOT_ROMSIZE_KB_8192=y
CONFIG_COREBOOT_ROMSIZE_KB=8192
CONFIG_ROM_SIZE=0x800000
CONFIG_ARCH_X86=y
CONFIG_ARCH_BOOTBLOCK_X86_32=y
CONFIG_ARCH_VERSTAGE_X86_32=y
CONFIG_ARCH_ROMSTAGE_X86_32=y
CONFIG_ARCH_RAMSTAGE_X86_32=y
CONFIG_NUM_IPI_STARTS=2
CONFIG_PC80_SYSTEM=y
CONFIG_BOOTBLOCK_NORTHBRIDGE_INIT="northbridge/intel/nehalem/bootblock.c"
CONFIG_HAVE_CMOS_DEFAULT=y
CONFIG_CMOS_DEFAULT_FILE="src/mainboard/$(MAINBOARDDIR)/cmos.default"
CONFIG_BOOTBLOCK_SOUTHBRIDGE_INIT="southbridge/intel/bd82x6x/bootblock.c"
CONFIG_IOAPIC_INTERRUPTS_ON_FSB=y
CONFIG_HPET_ADDRESS=0xfed00000
CONFIG_SYSTEM_TYPE_LAPTOP=y


CONFIG_CPU_SPECIFIC_OPTIONS=y
CONFIG_XIP_ROM_SIZE=0x20000
CONFIG_BOOTBLOCK_CPU_INIT="cpu/intel/model_2065x/bootblock.c"
CONFIG_SMM_TSEG_SIZE=0x800000
CONFIG_ENABLE_VMX=y
CONFIG_CPU_INTEL_MODEL_2065X=y
CONFIG_SSE2=y
CONFIG_PARALLEL_CPU_INIT=y
CONFIG_LAPIC_MONOTONIC_TIMER=y
CONFIG_UDELAY_TSC=y
CONFIG_TSC_CONSTANT_RATE=y
CONFIG_TSC_MONOTONIC_TIMER=y
CONFIG_TSC_SYNC_MFENCE=y
CONFIG_LOGICAL_CPUS=y
CONFIG_SMM_TSEG=y
CONFIG_CACHE_AS_RAM=y
CONFIG_SMP=y
CONFIG_AP_SIPI_VECTOR=0xfffff000
CONFIG_SSE=y
CONFIG_SUPPORT_CPU_UCODE_IN_CBFS=y
CONFIG_CPU_MICROCODE_CBFS_NONE=y

CONFIG_VIDEO_MB=0
CONFIG_NORTHBRIDGE_INTEL_NEHALEM=y
CONFIG_TRAINING_CACHE_SIZE=0x10000
CONFIG_HPET_MIN_TICKS=0x80
CONFIG_MAX_PIRQ_LINKS=4

CONFIG_EHCI_BAR=0xfef00000
CONFIG_SOUTH_BRIDGE_OPTIONS=y
CONFIG_IFD_BIN_PATH="3rdparty/blobs/mainboard/$(MAINBOARDDIR)/descriptor.bin"
CONFIG_ME_BIN_PATH="3rdparty/blobs/mainboard/$(MAINBOARDDIR)/me.bin"
CONFIG_LOCK_SPI_ON_RESUME_NONE=y
CONFIG_SOUTHBRIDGE_INTEL_COMMON=y
CONFIG_SOUTHBRIDGE_INTEL_IBEXPEAK=y

CONFIG_SUPERIO_NSC_PC87382=y

CONFIG_EC_ACPI=y
CONFIG_EC_LENOVO_H8=y
CONFIG_EC_LENOVO_PMH7=y


CONFIG_MAINBOARD_HAS_NATIVE_VGA_INIT=y
CONFIG_NATIVE_VGA_INIT_USE_EDID=y
CONFIG_MAINBOARD_HAS_NATIVE_VGA_INIT_TEXTMODECFG=y
CONFIG_PCI=y
CONFIG_PCIX_PLUGIN_SUPPORT=y
CONFIG_PCIEXP_PLUGIN_SUPPORT=y
CONFIG_CARDBUS_PLUGIN_SUPPORT=y
CONFIG_PCIEXP_COMMON_CLOCK=y
CONFIG_PCIEXP_ASPM=y
CONFIG_PCIEXP_CLK_PM=y
CONFIG_PCIEXP_L1_SUB_STATE=y
CONFIG_SUBSYSTEM_VENDOR_ID=0x0000
CONFIG_SUBSYSTEM_DEVICE_ID=0x0000


CONFIG_DRIVERS_ICS_954309=y

CONFIG_INTEL_EDID=y
CONFIG_INTEL_INT15=y
CONFIG_INTEL_GMA_ACPI=y
CONFIG_DRIVERS_LENOVO_WACOM=y
CONFIG_DIGITIZER_ABSENT=y
CONFIG_DRIVERS_MC146818=y
CONFIG_MAINBOARD_HAS_LPC_TPM=y
CONFIG_SPI_FLASH=y
CONFIG_SPI_ATOMIC_SEQUENCING=y
CONFIG_SPI_FLASH_MEMORY_MAPPED=y
CONFIG_SPI_FLASH_ADESTO=y
CONFIG_SPI_FLASH_AMIC=y
CONFIG_SPI_FLASH_ATMEL=y
CONFIG_SPI_FLASH_EON=y
CONFIG_SPI_FLASH_GIGADEVICE=y
CONFIG_SPI_FLASH_MACRONIX=y
CONFIG_SPI_FLASH_SPANSION=y
CONFIG_SPI_FLASH_SST=y
CONFIG_SPI_FLASH_STMICRO=y
CONFIG_SPI_FLASH_WINBOND=y
CONFIG_NO_UART_ON_SUPERIO=y
CONFIG_HAVE_USBDEBUG=y
CONFIG_HAVE_USBDEBUG_OPTIONS=y
CONFIG_RTC=y
CONFIG_STACK_SIZE=0x1000
CONFIG_MMCONF_SUPPORT_DEFAULT=y
CONFIG_MMCONF_SUPPORT=y

CONFIG_SQUELCH_EARLY_SMP=y
CONFIG_CONSOLE_CBMEM=y
CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000
CONFIG_DEFAULT_CONSOLE_LOGLEVEL_8=y
CONFIG_CONSOLE_POST=y
CONFIG_HAVE_ACPI_RESUME=y
CONFIG_HAVE_HARD_RESET=y
CONFIG_HAVE_MONOTONIC_TIMER=y
CONFIG_HAVE_OPTION_TABLE=y
CONFIG_HAVE_SMI_HANDLER=y
CONFIG_IOAPIC=y
CONFIG_USE_WATCHDOG_ON_BOOT=y
CONFIG_VGA=y
CONFIG_HAVE_ACPI_TABLES=y
CONFIG_COMMON_FADT=y

CONFIG_GENERATE_SMBIOS_TABLES=y
CONFIG_MAINBOARD_SMBIOS_PRODUCT_NAME="ThinkPad X201"

CONFIG_PAYLOAD_ELF=y
CONFIG_PAYLOAD_FILE="grub.elf"
CONFIG_COMPRESSED_PAYLOAD_LZMA=y

CONFIG_WARNINGS_ARE_ERRORS=y
CONFIG_MAX_REBOOT_CNT=3


More information about the coreboot mailing list