Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 31 Jan 2008 16:51:43 +0000 (UTC)
From:      John Baldwin <jhb@FreeBSD.org>
To:        src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   cvs commit: src/sys/amd64/acpica madt.c src/sys/i386/acpica madt.c
Message-ID:  <200801311651.m0VGphTX073883@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200801311651.m0VGphTX073883>