Project

General

Profile

Actions

Bug #267

open

Lenovo T60: Hang when decompression payload with resource allocator v4

Added by Paul Menzel almost 4 years ago. Updated about 2 years ago.

Status:
New
Priority:
Normal
Assignee:
-
Category:
-
Target version:
-
Start date:
06/28/2020
Due date:
% Done:

0%

Estimated time:
Affected versions:
Needs backport to:
Affected hardware:
Affected OS:

Description

With coreboot 4.12-406-g87e36c442e and normal bootblock, coreboot hangs when decompressing the – still fallback – SeaBIOS payload. The exact same payload was decompressed successfully in #266.

coreboot-4.12-406-g87e36c442e Mon Jun  1 19:06:28 UTC 2020 bootblock starting (log level: 8)...
[…]
CBFS: Locating 'fallback/payload'
CBFS: Found @ offset 4d3c0 size 11109
Checking segment from ROM address 0xffe4d5f8
Checking segment from ROM address 0xffe4d614
Loading segment from ROM address 0xffe4d5f8
  code (compression=1)
  New segment dstaddr 0x000dfac0 memsize 0x20540 srcaddr 0xffe4d630 filesize 0x110d1
Loading Segment: addr: 0x000dfac0 memsz: 0x0000000000020540 filesz: 0x00000000000110d1
using LZMA

Please find the serial logs, and coreboot.rom attached.


Files

coreboot_console-4.12-406-g87e36c442e-serial-spew-hang-in-using-lzma.txt (35.7 KB) coreboot_console-4.12-406-g87e36c442e-serial-spew-hang-in-using-lzma.txt Serial console output with log level SPEW Paul Menzel, 06/28/2020 09:23 AM
coreboot.rom.gz (469 KB) coreboot.rom.gz Compressed coreboot image Paul Menzel, 06/28/2020 09:32 AM
coreboot_console-4.12-406-g87e36c442e-with-resource-allocator-v3-serial-spew-hang-in-using-lzma.txt (28.9 KB) coreboot_console-4.12-406-g87e36c442e-with-resource-allocator-v3-serial-spew-hang-in-using-lzma.txt Serial console output with resource allocator v3 Paul Menzel, 07/19/2020 10:22 AM
coreboot_console-4.12-1535-g4aac953665-serial-debug-memtest86+-1gib-dimm.txt (31.1 KB) coreboot_console-4.12-1535-g4aac953665-serial-debug-memtest86+-1gib-dimm.txt Serial console output with resource allocator v3 and just 1 GiB DIMM Paul Menzel, 07/19/2020 08:27 PM
coreboot_console-4.12-1535-g4aac953665-serial-debug-memtest86+-1gib-and-2gib-dimm.txt (31.3 KB) coreboot_console-4.12-1535-g4aac953665-serial-debug-memtest86+-1gib-and-2gib-dimm.txt Serial console output with resource allocator v3 and just 1 GiB + 2 GiB DIMMs Paul Menzel, 07/19/2020 08:34 PM
Actions #2

Updated by Paul Menzel almost 4 years ago

Commit nb/intel/i945: Switch back from V4 to V3 resource allocator to fix hangs reverts devices with northbridge Intel 945 back to version 3 of the resource allocator.

Actions #3

Updated by Paul Menzel almost 4 years ago

The same happens with the SeaBIOS payload.

CBFS: Found @ offset 4cdc0 size 1124b
Checking segment from ROM address 0xffe4cff8
Checking segment from ROM address 0xffe4d014
Loading segment from ROM address 0xffe4cff8
  code (compression=1)
  New segment dstaddr 0x000df9e0 memsize 0x20620 srcaddr 0xffe4d030 filesize 0x11213
Loading Segment: addr: 0x000df9e0 memsz: 0x0000000000020620 filesz: 0x0000000000011213
using LZMA
build/util/cbfstool/cbfstool build/coreboot.rom print -r COREBOOT
FMAP REGION: COREBOOT
Name                           Offset     Type           Size   Comp
cbfs master header             0x0        cbfs header        32 none
fallback/romstage              0x80       stage           49212 none
cpu_microcode_blob.bin         0xc140     microcode       86016 none
fallback/ramstage              0x211c0    stage           80126 none
config                         0x34b00    raw               338 none
revision                       0x34cc0    raw               675 none
fallback/dsdt.aml              0x34fc0    raw             12600 none
cmos_layout.bin                0x38140    cmos_layout      1664 none
pci1002,7149.rom               0x38800    optionrom       64512 none
fallback/postcar               0x48480    stage           18676 none
(empty)                        0x4cdc0    null          1748952 none
bootblock                      0x1f7dc0   bootblock       32768 none
Actions #4

Updated by Paul Menzel almost 4 years ago

Reverting commit 7cf96aeeb7 (northbridge/intel/i945: Mark legacy VGA memory as reserved) 1 seems to also help to get the payload executed. GRUB hangs due to some EHCI issue, which the commit in question fixed. SeaBIOS didn’t show issues.

I guess commit 7cf96aeeb7 (northbridge/intel/i945: Mark legacy VGA memory as reserved) 1 is tailored for devices with integrated Intel graphics devices. Devices with a dedicated/external graphics device need to be handled differently?

Actions #5

Updated by Paul Menzel almost 4 years ago

  • Subject changed from Lenovo T60p: Hang when decompression payload to Lenovo T60p: Hang when decompression payload with resource allocator v4
Actions #6

Updated by Paul Menzel almost 4 years ago

Paul Menzel wrote:

Reverting commit 7cf96aeeb7 (northbridge/intel/i945: Mark legacy VGA memory as reserved) seems to also help to get the payload executed. GRUB hangs due to some EHCI issue, which the commit in question fixed. SeaBIOS didn’t show issues.

I guess commit 7cf96aeeb7 (northbridge/intel/i945: Mark legacy VGA memory as reserved) is tailored for devices with integrated Intel graphics devices. Devices with a dedicated/external graphics device need to be handled differently?

Scratch that, I now got hangs too with just commit 7cf96aeeb7 (northbridge/intel/i945: Mark legacy VGA memory as reserved) reverted.

Actions #7

Updated by Paul Menzel almost 4 years ago

  • Subject changed from Lenovo T60p: Hang when decompression payload with resource allocator v4 to Lenovo T60: Hang when decompression payload with resource allocator v4

Updated by Paul Menzel almost 4 years ago

It also got hangs sometimes with resource allocator v3. Very confusing. Maybe I need to save the CBFS output too. I am currently at a loss.

Memtest86+ payload successfully run one pass on the 2 GiB and 1 GiB (separately, as it failed to boot with both). After putting both DIMMs back in, the system booted.

Here are the three commits on top of origin/master, which produced an image not booting and hanging when SeaBIOS executes the VGA Option ROM. Using just either the 1 GiB or 2 GiB module, the system booted (that log is attached).

4aac953665 (HEAD -> master) Revert "northbridge/intel/i945: Mark legacy VGA memory as reserved"
1866f5cb9d device: Default to V3 resource allocator
e2ef6a71ec device/cardbus: Add debug statements
75db8c8ea8 (origin/master, origin/HEAD) soc/intel/common/gpio_defs: Fix coding style
Actions #10

Updated by Paul Menzel almost 4 years ago

commit e2ef6a71ec0fbe8d5c9b5cc78549f68a792ab992
Author: Paul Menzel <pmenzel@molgen.mpg.de>
Date:   Sun Jul 19 20:22:25 2020 +0200

    device/cardbus: Add debug statements

    Signed-off-by: Paul Menzel <pmenzel@molgen.mpg.de>

diff --git a/src/device/cardbus_device.c b/src/device/cardbus_device.c
index cbe0c724fb..34b43e5f3c 100644
--- a/src/device/cardbus_device.c
+++ b/src/device/cardbus_device.c
@@ -78,6 +78,7 @@ void cardbus_read_resources(struct device *dev)

        pci_get_resource(dev, PCI_BASE_ADDRESS_0);

+       printk(BIOS_DEBUG, "read_res: after pci_get_resource: bridge_ctrl %04x\n", dev->link_list->bridge_ctrl);
        compact_resources(dev);

        /* See which bridge I/O resources are implemented. */
@@ -132,6 +133,7 @@ void cardbus_read_resources(struct device *dev)
        cardbus_size_bridge_resource(dev, PCI_CB_MEMORY_BASE_1);

        compact_resources(dev);
+       printk(BIOS_DEBUG, "read_res: after compact_resources: bridge_ctrl %04x\n", dev->link_list->bridge_ctrl);
 }

 void cardbus_enable_resources(struct device *dev)
@@ -148,6 +150,7 @@ void cardbus_enable_resources(struct device *dev)
        ctrl |= (PCI_CB_BRIDGE_CTL_PARITY | PCI_CB_BRIDGE_CTL_SERR);
        printk(BIOS_DEBUG, "%s bridge ctrl <- %04x\n", dev_path(dev), ctrl);
        pci_write_config16(dev, PCI_CB_BRIDGE_CONTROL, ctrl);
+       printk(BIOS_DEBUG, "bridge_ctrl %04x\n", dev->link_list->bridge_ctrl);

        pci_dev_enable_resources(dev);
 }
Actions #11

Updated by Paul Menzel almost 4 years ago

Memtest86+ also passed the 3 GiB twice, but hung after 2:20 hours – maybe a thermal issue, or some problem in Memtest86+.

Anyway, RAM seems working.

Actions #12

Updated by Winter Solstice about 2 years ago

My T60 does this as well.

While possibly unrelated...

What I do find curious to me after reading this that I do not recall having problems booting from hard drive in general until I swapped to 2x2GB of RAM which was never a problem before I swapped RAM -- while booting from USB or CD ROM works every time. Memtest doesn't seem to think anything is wrong with the RAM either. I do still have the (presumably) original RAM sticks that came with my T60. And this is from Coreboot built from a few days ago.

I won't have any time to test this for a few days, though. Stay tuned.

Actions

Also available in: Atom PDF