Dear coreboot folks,
first of all I wish everyone a happy new year!
On the i945 based Lenovo X60, running `cbmem -l` (or any other option) works fine. Suspending and resuming the system, running any `cbmem` commands does *not* work anymore.
$ sudo pm-suspend $ sudo cbmem -l Failed to mmap /dev/mem: Operation not permitted $ dmesg | tail -1 [ 2834.560179] Program cbmem tried to access /dev/mem between f0000->1f0000.
I think in Prague, it could also be reproduced on Vladimir’s Lenovo X230(?).
Do you have any idea, why this happens? Is that a Linux error?
It’d be great if you Intel device owners, could try to reproduce it.
Thanks,
Paul
$ sudo cbmem -l CBMEM table of contents: ID START LENGTH 0. CBMEM ROOT 7f7ff000 00001000 1. CAR GLOBALS 7f7fe000 00001000 2. CONSOLE 7f7de000 00020000 3. TIME STAMP 7f7dd000 00001000 4. ROMSTAGE 7f7dc000 00001000 5. GDT 7f7db000 00001000 6. IRQ TABLE 7f7da000 00001000 7. SMP TABLE 7f7d9000 00001000 8. ACPI 7f7cd000 0000c000 9. SMBIOS 7f7cc000 00001000 10. ACPI RESUME 7f6cc000 00100000 11. COREBOOT 7f6c4000 00008000 $ more /proc/iomem 00000000-00000fff : reserved 00001000-0009fbff : System RAM 0009fc00-0009ffff : reserved 000a0000-000bffff : PCI Bus 0000:00 000a0000-000bffff : Video RAM area 000c0000-000c7fff : Video ROM 000c0000-000c3fff : PCI Bus 0000:00 000c4000-000c7fff : PCI Bus 0000:00 000c8000-000cbfff : PCI Bus 0000:00 000cc000-000cffff : PCI Bus 0000:00 000d0000-000d3fff : PCI Bus 0000:00 000d4000-000d7fff : PCI Bus 0000:00 000d8000-000dbfff : PCI Bus 0000:00 000dc000-000dffff : PCI Bus 0000:00 000e0000-000e3fff : PCI Bus 0000:00 000e4000-000e7fff : PCI Bus 0000:00 000e8000-000ebfff : PCI Bus 0000:00 000ec000-000effff : PCI Bus 0000:00 000f0000-000fffff : PCI Bus 0000:00 000f0000-000fffff : reserved 000f0000-000fffff : System ROM 00100000-7f6c2fff : System RAM 01000000-01490f89 : Kernel code 01490f8a-0167c73f : Kernel data 0172d000-017a1fff : Kernel bss 7f6c3000-7fffffff : reserved 7f800000-7ffbffff : Graphics Stolen Memory 80000000-febfffff : PCI Bus 0000:00 80000000-801fffff : PCI Bus 0000:01 84000000-87ffffff : PCI CardBus 0000:06 88000000-8bffffff : PCI CardBus 0000:06 d0000000-dfffffff : 0000:00:02.0 e0000000-e20fffff : PCI Bus 0000:05 e2000000-e2000fff : 0000:05:00.0 e2000000-e2000fff : yenta_socket e2001000-e20017ff : 0000:05:00.1 e2001000-e20017ff : firewire_ohci e2001800-e20018ff : 0000:05:00.2 e2001800-e20018ff : mmc0 e2100000-e40fffff : PCI Bus 0000:05 e4100000-e41fffff : PCI Bus 0000:01 e4100000-e411ffff : 0000:01:00.0 e4100000-e411ffff : e1000e e4200000-e42fffff : PCI Bus 0000:02 e4200000-e4200fff : 0000:02:00.0 e4200000-e4200fff : iwl3945 e4300000-e437ffff : 0000:00:02.0 e4380000-e43fffff : 0000:00:02.1 e4400000-e443ffff : 0000:00:02.0 e4440000-e4443fff : 0000:00:1b.0 e4440000-e4443fff : ICH HD audio e4444000-e44443ff : 0000:00:1d.7 e4444000-e44443ff : ehci_hcd e4444400-e44447ff : 0000:00:1f.2 e4444400-e44447ff : ahci f0000000-f3ffffff : PCI MMCONFIG 0000 [bus 00-3f] f0000000-f3ffffff : reserved f0000000-f3ffffff : pnp 00:00 fec00000-fec003ff : IOAPIC 0 fed00000-fed003ff : HPET 0 fed00000-fed003ff : pnp 00:01 fed14000-fed17fff : pnp 00:00 fed18000-fed18fff : pnp 00:00 fed19000-fed19fff : pnp 00:00 fed1c000-fed1ffff : pnp 00:00 fed1f410-fed1f414 : iTCO_wdt fed1f410-fed1f414 : iTCO_wdt fed20000-fed3ffff : pnp 00:00 fed40000-fed44fff : PCI Bus 0000:00 fed40000-fed44fff : pnp 00:00 fed45000-fed8ffff : pnp 00:00 fee00000-fee00fff : Local APIC ff000000-ffffffff : INT0800:00 $ sudo pm-suspend $ sudo cbmem -l Failed to mmap /dev/mem: Operation not permitted $ dmesg | tail -1 [ 2834.560179] Program cbmem tried to access /dev/mem between f0000->1f0000. $ sudo strace cbmem -l […] open("/lib/i386-linux-gnu/i686/cmov/libc.so.6", O_RDONLY|O_CLOEXEC) = 3 read(3, "\177ELF\1\1\1\3\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\300\233\1\0004\0\0\0"..., 512) = 512 fstat64(3, {st_mode=S_IFREG|0755, st_size=1742588, ...}) = 0 mmap2(NULL, 1747580, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb756e000 mmap2(0xb7713000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1a5000) = 0xb7713000 mmap2(0xb7716000, 10876, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb7716000 close(3) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb756d000 set_thread_area({entry_number:-1, base_addr:0xb756d940, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}) = 0 (entry_number:6) mprotect(0xb7713000, 8192, PROT_READ) = 0 mprotect(0xb775e000, 4096, PROT_READ) = 0 munmap(0xb7719000, 130429) = 0 open("/dev/mem", O_RDONLY) = 3 mmap2(NULL, 1048576, PROT_READ, MAP_SHARED, 3, 0) = 0xb746d000 munmap(0xb746d000, 1048576) = 0 mmap2(NULL, 1048576, PROT_READ, MAP_SHARED, 3, 0xf0000) = -1 EPERM (Operation not permitted) write(2, "Failed to mmap /dev/mem: Operati"..., 49Failed to mmap /dev/mem: Operation not permitted ) = 49 exit_group(1) = ? +++ exited with 1 +++