cvs commit: src/sys/amd64/acpica madt.c src/sys/i386/acpica madt.c

John Baldwin jhb at FreeBSD.org
Thu Jan 31 08:51:44 PST 2008


jhb         2008-01-31 16:51:43 UTC

  FreeBSD src repository

  Modified files:
    sys/amd64/acpica     madt.c 
    sys/i386/acpica      madt.c 
  Log:
  For no good reason I had assumed that ACPI table headers would be page
  aligned (or at least not cross a page boundary).  However, it turns out
  that on at least one machine one table header does cross a page boundary.
  This caused problems with the MADT early probe as it uses the crash dump
  map to load ACPI tables by loading the RSDT/XSDT into pages 1 ... N and
  loading the header of each ACPI table header into page 0 looking for the
  MADT.  However, if a table header crossed a page boundary, then page 1
  would get trashed resulting in a panic.  Fix this by reserving the first
  2 pages for ACPI table headers (headers are less than a page in size,
  so 2 pages will be sufficient) and use pages 2 .. N for the RSDT and XSDT.
  
  Note: amd64 should probably be simplified to just use pmap_mapbios()
  for all these tables which will use the direct map and not need the
  crash dump hack.
  
  MFC after:      5 days
  Tested on:      i386
  Reported by:    Pete French  petefrench of ticketswitch.com
  
  Revision  Changes    Path
  1.25      +7 -5      src/sys/amd64/acpica/madt.c
  1.29      +7 -5      src/sys/i386/acpica/madt.c


More information about the cvs-src mailing list