[coreboot] Accessing "high tables" from coreboot from Linux

Philip Prindeville philipp_subx at redfish-solutions.com
Fri Aug 12 01:11:43 CEST 2011

I see the following when I boot up below, and when I go looking for the coreboot tables I find it at 0x500... with the first entry at 0x518 being a FORWARD record pointing to 0x1f7d1400.

However, when I try to access that pointer, the system panics.

How do I get at the RAM in this region here?

 BIOS-e820: 000000001f7cf000 - 000000001f7e0000 (reserved)

and where is Linux remapping it to?  I tried to call phys_to_virt() on that address, but it panics the system when I do a read access.

How do I access that window of memory?

==== console output

root    (hd0,0)
 Filesystem type is ext2fs, partition type 0x83
kernel  /boot/vmlinuz block2mtd.block2mtd=/dev/sda2,65536,rootfs root=/dev/mtdb
lock0 rootfstype=squashfs rootwait console=ttyS0,115200n8 noinitrd reboot=bios
   [Linux-bzImage, setup=0x3000, size=0x174e00]
Linux version (philipp at builder) (gcc version 4.5.4 20110526 (prerelease) (Linaro GCC 4.5-2011.06-0) ) #1 Thu Aug 11 16:29:25 MDT 2011
KERNEL supported cpus:
  AMD AuthenticAMD
BIOS-provided physical RAM map:
 BIOS-e820: 0000000000000000 - 000000000009fc00 (usable)
 BIOS-e820: 000000000009fc00 - 00000000000a0000 (reserved)
 BIOS-e820: 00000000000f0000 - 0000000000100000 (reserved)
 BIOS-e820: 0000000000100000 - 000000001f7cf000 (usable)
 BIOS-e820: 000000001f7cf000 - 000000001f7e0000 (reserved)
Notice: NX (Execute Disable) protection missing in CPU!
DMI 2.4 present.
last_pfn = 0x1f7cf max_arch_pfn = 0x100000
init_memory_mapping: 0000000000000000-000000001f7cf000
503MB LOWMEM available.
  mapped low ram: 0 - 1f7cf000
  low ram: 0 - 1f7cf000
Zone PFN ranges:
  DMA      0x00000010 -> 0x00001000
  Normal   0x00001000 -> 0x0001f7cf
Movable zone start PFN for each node
early_node_map[2] active PFN ranges
    0: 0x00000010 -> 0x0000009f
    0: 0x00000100 -> 0x0001f7cf
Using APIC driver default
No local APIC present or hardware disabled
APIC: disable apic facility
APIC: switched to apic NOOP
Allocating PCI resources starting at 1f7e0000 (gap: 1f7e0000:e0820000)
Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 127854
Kernel command line: block2mtd.block2mtd=/dev/sda2,65536,rootfs root=/dev/mtdblock0 rootfstype=squashfs rootwait console=ttyS0,115200n8 noinitrd reboot=bios
PID hash table entries: 2048 (order: 1, 8192 bytes)
Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
Initializing CPU#0
Memory: 508036k/515900k available (1839k kernel code, 7412k reserved, 742k data, 204k init, 0k highmem)
virtual kernel memory layout:
    fixmap  : 0xfffa4000 - 0xfffff000   ( 364 kB)
    vmalloc : 0xdffcf000 - 0xfffa2000   ( 511 MB)
    lowmem  : 0xc0000000 - 0xdf7cf000   ( 503 MB)
      .init : 0xc1286000 - 0xc12b9000   ( 204 kB)
      .data : 0xc11cbef7 - 0xc1285800   ( 742 kB)
      .text : 0xc1000000 - 0xc11cbef7   (1839 kB)
Checking if this processor honours the WP bit even in supervisor mode...Ok.
SLUB: Genslabs=15, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
console [ttyS0] enabled
Fast TSC calibration using PIT
Detected 498.058 MHz processor.
Calibrating delay loop (skipped), value calculated using timer frequency.. 996.11 BogoMIPS (lpj=4980580)
pid_max: default: 32768 minimum: 301
Mount-cache hash table entries: 512
CPU: Geode(TM) Integrated Processor by AMD PCS stepping 02
Performance Events: no PMU driver, software events only.
NET: Registered protocol family 16
PCI: PCI BIOS revision 2.10 entry at 0xfc8b7, last bus=0
PCI: Using configuration type 1 for base access
bio: create slab <bio-0> at 0
SCSI subsystem initialized
PCI: Probing PCI hardware
Switching to clocksource pit
NET: Registered protocol family 2
IP route cache hash table entries: 4096 (order: 2, 16384 bytes)
TCP established hash table entries: 16384 (order: 5, 131072 bytes)
TCP bind hash table entries: 16384 (order: 4, 65536 bytes)
TCP: Hash tables configured (established 16384 bind 16384)
TCP reno registered
UDP hash table entries: 256 (order: 0, 4096 bytes)
UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
NET: Registered protocol family 1
platform rtc_cmos: registered platform RTC device (no PNP device found)

More information about the coreboot mailing list