cvs commit: src/sys/dev/uart uart_core.c

Marcel Moolenaar marcel at FreeBSD.org
Wed Mar 28 18:26:13 UTC 2007


marcel      2007-03-28 18:26:12 UTC

  FreeBSD src repository

  Modified files:
    sys/dev/uart         uart_core.c 
  Log:
  When we match UARTs found during bus-enumeration with UARTs used for
  system devices (i.e. console, debug port or keyboard), don't stop
  after the first match. Find them all and keep track of the last.
  The reason for this change is that the low-level console is always
  added to the list of system devices first, with other devices added
  later. Since new devices are added to the list at the head, we have
  the console always at the end. When a debug port is using the same
  UART as the console, we would previously mark the "newbus" UART as
  a debug port instead of as a console. This would later result in a
  panic because no "newbus" device was associated with the console.
  By matching all possible system devices we would mark the "newbus"
  UART as a console and not as a debug port.
  While it is arguably better to be able to mark a "newbus" UART as
  both console and debug port, this fix is lightweight and allows
  a single UART to be used as the console as well as a debug port
  with only the aesthetic bug of not telling the user about it also
  being a debug port.
  
  Now that we match all possible system devices, update the rclk of
  the system devices with the rclk that was obtained through the
  bus attachment. It is generally true that clock information is
  more reliable when obtained from the parent bus than by means of
  some hardcoded or assumed value used early in the boot. This by
  virtue of having more context information.
  
  MFC after: 1 month
  
  Revision  Changes    Path
  1.21      +1 -1      src/sys/dev/uart/uart_core.c


More information about the cvs-src mailing list