Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 19 Oct 2009 20:58:10 +0000 (UTC)
From:      Jung-uk Kim <jkim@FreeBSD.org>
To:        cvs-src-old@freebsd.org
Subject:   cvs commit: src/sys/compat/x86bios x86bios.c x86bios.h x86bios_alloc.c src/sys/conf files.amd64 files.i386 src/sys/contrib/x86emu x86emu_util.c src/sys/dev/atkbdc atkbd.c src/sys/dev/dpms dpms.c src/sys/dev/fb vesa.c src/sys/dev/pci ...
Message-ID:  <200910192059.n9JKx6Sq022605@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
jkim        2009-10-19 20:58:10 UTC

  FreeBSD src repository

  Modified files:
    sys/compat/x86bios   x86bios.c x86bios.h 
    sys/conf             files.amd64 files.i386 
    sys/dev/atkbdc       atkbd.c 
    sys/dev/dpms         dpms.c 
    sys/dev/fb           vesa.c 
    sys/dev/pci          vga_pci.c 
    sys/modules/dpms     Makefile 
    sys/modules/vesa     Makefile 
    sys/modules/x86bios  Makefile 
  Removed files:
    sys/compat/x86bios   x86bios_alloc.c 
    sys/contrib/x86emu   x86emu_util.c 
  Log:
  SVN rev 198251 on 2009-10-19 20:58:10Z by jkim
  
  Rewrite x86bios and update its dependent drivers.
  
  - Do not map entire real mode memory (1MB).  Instead, we map IVT/BDA and
  ROM area separately.  Most notably, ROM area is mapped as device memory
  (uncacheable) as it should be.  User memory is dynamically allocated and
  free'ed with contigmalloc(9) and contigfree(9).  Remove now redundant and
  potentially dangerous x86bios_alloc.c.  If this emulator ever grows to
  support non-PC hardware, we may implement it with rman(9) later.
  - Move all host-specific initializations from x86emu_util.c to x86bios.c and
  remove now unnecessary x86emu_util.c.  Currently, non-PC hardware is not
  supported.  We may use bus_space(9) later when the KPI is fixed.
  - Replace all bzero() calls for emulated registers with more obviously named
  x86bios_init_regs().  This function also initializes DS and SS properly.
  - Add x86bios_get_intr().  This function checks if the interrupt vector is
  available for the platform.  It is not necessary for PC-compatible hardware
  but it may be needed later. ;-)
  - Do not try turning off monitor if DPMS does not support the state.
  - Allocate stable memory for VESA OEM strings instead of just holding
  pointers to them.  They may or may not be accessible always.  Fix a memory
  leak of video mode table while I am here.
  - Add (experimental) BIOS POST call for vesa(4).  This function calls VGA
  BIOS POST code from the current VGA option ROM.  Some video controllers
  cannot save and restore the state properly even if it is claimed to be
  supported.  Usually the symptom is blank display after resuming from suspend
  state.  If the video mode does not match the previous mode after restoring,
  we try BIOS POST and force the known good initial state.  Some magic was
  taken from NetBSD (and it was taken from vbetool, I believe.)
  - Add a loader tunable for vgapci(4) to give a hint to dpms(4) and vesa(4)
  to identify who owns the VESA BIOS.  This is very useful for multi-display
  adapter setup.  By default, the POST video controller is automatically
  probed and the tunable "hw.pci.default_vgapci_unit" is set to corresponding
  vgapci unit number.  You may override it from loader but it is very unlikely
  to be necessary.  Unfortunately only AGP/PCI/PCI-E controllers can be
  matched because ISA controller does not have necessary device IDs.
  - Fix a long standing bug in state save/restore function.  The state buffer
  pointer should be ES:BX, not ES:DI according to VBE 3.0.  If it ever worked,
  that's because BX was always zero. :-)
  - Clean up register initializations more clearer per VBE 3.0.
  - Fix a lot of style issues with vesa(4).
  
  Revision  Changes    Path
  1.6       +348 -31   src/sys/compat/x86bios/x86bios.c
  1.5       +56 -57    src/sys/compat/x86bios/x86bios.h
  1.3       +0 -81     src/sys/compat/x86bios/x86bios_alloc.c (dead)
  1.149     +0 -2      src/sys/conf/files.amd64
  1.635     +0 -2      src/sys/conf/files.i386
  1.4       +0 -211    src/sys/contrib/x86emu/x86emu_util.c (dead)
  1.61      +9 -6      src/sys/dev/atkbdc/atkbd.c
  1.7       +16 -12    src/sys/dev/dpms/dpms.c
  1.12      +489 -303  src/sys/dev/fb/vesa.c
  1.9       +21 -0     src/sys/dev/pci/vga_pci.c
  1.3       +1 -1      src/sys/modules/dpms/Makefile
  1.16      +1 -0      src/sys/modules/vesa/Makefile
  1.3       +2 -1      src/sys/modules/x86bios/Makefile



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