1. 15 11月, 2012 1 次提交
  2. 28 3月, 2012 1 次提交
  3. 20 9月, 2011 2 次提交
  4. 24 8月, 2011 1 次提交
    • T
      tty/powerpc: introduce the ePAPR embedded hypervisor byte channel driver · dcd83aaf
      Timur Tabi 提交于
      The ePAPR embedded hypervisor specification provides an API for "byte
      channels", which are serial-like virtual devices for sending and receiving
      streams of bytes.  This driver provides Linux kernel support for byte
      channels via three distinct interfaces:
      
      1) An early-console (udbg) driver.  This provides early console output
      through a byte channel.  The byte channel handle must be specified in a
      Kconfig option.
      
      2) A normal console driver.  Output is sent to the byte channel designated
      for stdout in the device tree.  The console driver is for handling kernel
      printk calls.
      
      3) A tty driver, which is used to handle user-space input and output.  The
      byte channel used for the console is designated as the default tty.
      Signed-off-by: NTimur Tabi <timur@freescale.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      dcd83aaf
  5. 29 6月, 2011 2 次提交
    • B
      powerpc/pseries: Re-implement HVSI as part of hvc_vio · 4d2bb3f5
      Benjamin Herrenschmidt 提交于
      On pseries machines, consoles are provided by the hypervisor using
      a low level get_chars/put_chars type interface. However, this is
      really just a transport to the service processor which implements
      them either as "raw" console (networked consoles, HMC, ...) or as
      "hvsi" serial ports.
      
      The later is a simple packet protocol on top of the raw character
      interface that is supposed to convey additional "serial port" style
      semantics. In practice however, all it does is provide a way to
      read the CD line and set/clear our DTR line, that's it.
      
      We currently implement the "raw" protocol as an hvc console backend
      (/dev/hvcN) and the "hvsi" protocol using a separate tty driver
      (/dev/hvsi0).
      
      However this is quite impractical. The arbitrary difference between
      the two type of devices has been a major source of user (and distro)
      confusion. Additionally, there's an additional mini -hvsi implementation
      in the pseries platform code for our low level debug console and early
      boot kernel messages, which means code duplication, though that low
      level variant is impractical as it's incapable of doing the initial
      protocol negociation to establish the link to the FSP.
      
      This essentially replaces the dedicated hvsi driver and the platform
      udbg code completely by extending the existing hvc_vio backend used
      in "raw" mode so that:
      
       - It now supports HVSI as well
       - We add support for hvc backend providing tiocm{get,set}
       - It also provides a udbg interface for early debug and boot console
      
      This is overall less code, though this will only be obvious once we
      remove the old "hvsi" driver, which is still available for now. When
      the old driver is enabled, the new code still kicks in for the low
      level udbg console, replacing the old mini implementation in the platform
      code, it just doesn't provide the higher level "hvc" interface.
      
      In addition to producing generally simler code, this has several benefits
      over our current situation:
      
       - The user/distro only has to deal with /dev/hvcN for the hypervisor
      console, avoiding all sort of confusion that has plagued us in the past
      
       - The tty, kernel and low level debug console all use the same code
      base which supports the full protocol establishment process, thus the
      console is now available much earlier than it used to be with the
      old HVSI driver. The kernel console works much earlier and udbg is
      available much earlier too. Hackers can enable a hard coded very-early
      debug console as well that works with HVSI (previously that was only
      supported for the "raw" mode).
      
      I've tried to keep the same semantics as hvsi relative to how I react
      to things like CD changes, with some subtle differences though:
      
       - I clear DTR on close if HUPCL is set
      
       - Current hvsi triggers a hangup if it detects a up->down transition
         on CD (you can still open a console with CD down). My new implementation
         triggers a hangup if the link to the FSP is severed, and severs it upon
         detecting a up->down transition on CD.
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      4d2bb3f5
    • B
      powerpc/udbg: Register udbg console generically · dd2e356a
      Benjamin Herrenschmidt 提交于
      When CONFIG_PPC_EARLY_DEBUG is set, call register_early_udbg_console()
      early from generic code.
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      dd2e356a
  6. 06 5月, 2011 1 次提交
  7. 13 12月, 2009 1 次提交
  8. 11 3月, 2009 1 次提交
    • A
      powerpc/udbg: Fix lost byte during console handover; change LFCR to CRLF · af9c7249
      Andrew Klossner 提交于
      When the console is on a serial port to be driven by serial8250, a
      character can be lost from the end of the first line in the two-line
      sequence
      
      	serial8250.0: ttyS0 at MMIO 0xe0004500 (irq = 42) is a 16550A
      	console handover: boot [udbg0] -> real [ttyS0]
      
      This happens because udbg_puts or udbg_write stuff the last byte of
      the line into the Tx FIFO and return, whereupon the serial8250
      initialization code immediately empties that FIFO.  The fix: udbg_puts
      and udbg_write now wait for the Tx FIFO to clear before returning.
      This delays the system by one additional serial frame time for each
      line written by udbg, but the effect is not noticeable, a cumulative
      17 milliseconds for 200 lines of early printk output at 115200 baud.
      
      Also, the routines in udbg_16550.c now emit CRLF instead of LFCR.
      Linux makes a point of emitting CRLF because, when serial output is
      captured to a file, LFCR sequences can confuse text editors.  See
      http://lkml.org/lkml/2006/2/4/50 for some history.
      Signed-off-by: NAndrew Klossner <andrew@cesa.opbu.xerox.com>
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      af9c7249
  9. 24 4月, 2008 2 次提交
  10. 24 12月, 2007 1 次提交
  11. 11 12月, 2007 1 次提交
  12. 04 10月, 2007 1 次提交
  13. 26 7月, 2007 1 次提交
    • K
      [POWREPC] Fixup a number of modpost warnings on ppc32 · 282045b4
      Kumar Gala 提交于
      Fixed the following warnings:
      
      WARNING: vmlinux.o(.text+0x2934): Section mismatch: reference to .init.text:__alloc_bootmem (between 'irq_alloc_host' and 'irq_set_default_host')
      WARNING: vmlinux.o(.text+0xb2aa): Section mismatch: reference to .init.data:boot_command_line (between 'register_early_udbg_console' and 'udbg_printf')
      WARNING: vmlinux.o(.text+0xb2b2): Section mismatch: reference to .init.data:boot_command_line (between 'register_early_udbg_console' and 'udbg_printf')
      WARNING: vmlinux.o(.text+0xe354): Section mismatch: reference to .init.text:__alloc_bootmem (between 'pcibios_alloc_controller' and 'pci_domain_nr')
      WARNING: vmlinux.o(.text+0x12768): Section mismatch: reference to .init.text:update_bridge_resource (between 'quirk_fsl_pcie_transparent' and 'indirect_read_config')
      WARNING: vmlinux.o(.text+0x127a8): Section mismatch: reference to .init.text:update_bridge_resource (between 'quirk_fsl_pcie_transparent' and 'indirect_read_config')
      WARNING: vmlinux.o(.text+0x17566c): Section mismatch: reference to .init.text:pcibios_fixup_bus (between 'pci_scan_child_bus' and 'pci_scan_bus_parented')
      Signed-off-by: NKumar Gala <galak@kernel.crashing.org>
      282045b4
  14. 14 6月, 2007 1 次提交
  15. 09 5月, 2007 1 次提交
    • G
      Fixes and cleanups for earlyprintk aka boot console · 69331af7
      Gerd Hoffmann 提交于
      The console subsystem already has an idea of a boot console, using the
      CON_BOOT flag.  The implementation has some flaws though.  The major
      problem is that presence of a boot console makes register_console() ignore
      any other console devices (unless explicitly specified on the kernel
      command line).
      
      This patch fixes the console selection code to *not* consider a boot
      console a full-featured one, so the first non-boot console registering will
      become the default console instead.  This way the unregister call for the
      boot console in the register_console() function actually triggers and the
      handover from the boot console to the real console device works smoothly.
      Added a printk for the handover, so you know which console device the
      output goes to when the boot console stops printing messages.
      
      The disable_early_printk() call is obsolete with that patch, explicitly
      disabling the early console isn't needed any more as it works automagically
      with that patch.
      
      I've walked through the tree, dropped all disable_early_printk() instances
      found below arch/ and tagged the consoles with CON_BOOT if needed.  The
      code is tested on x86, sh (thanks to Paul) and mips (thanks to Ralf).
      
      Changes to last version: Rediffed against -rc3, adapted to mips cleanups by
      Ralf, fixed "udbg-immortal" cmd line arg on powerpc.
      Signed-off-by: NGerd Hoffmann <kraxel@exsuse.de>
      Acked-by: NPaul Mundt <lethal@linux-sh.org>
      Acked-by: NRalf Baechle <ralf@linux-mips.org>
      Cc: Andi Kleen <ak@suse.de>
      Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
      Cc: Richard Henderson <rth@twiddle.net>
      Cc: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Jeremy Fitzhardinge <jeremy@goop.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      69331af7
  16. 08 5月, 2007 1 次提交
  17. 14 2月, 2007 1 次提交
    • D
      [POWERPC] Use udbg_early_init() on ppc32 · 719c91cc
      David Gibson 提交于
      udbg_early_init() is a function used on 64 bit systems, which
      initializes whichever early udbg backend is configured.  This function
      is not called on 32-bit, however if btext early debug is enabled it
      does have an explicit, inline, #ifdef-ed assignment performing
      analagous initialization.
      
      This patch makes things more uniform by folding the btext
      initialization as an option into udbg_early_init() and calling that
      from the 32-bit setup path.
      Signed-off-by: NDavid Gibson <dwg@au1.ibm.com>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      719c91cc
  18. 13 2月, 2007 1 次提交
  19. 07 2月, 2007 2 次提交
  20. 01 7月, 2006 1 次提交
  21. 28 6月, 2006 1 次提交
  22. 09 6月, 2006 1 次提交
  23. 11 1月, 2006 1 次提交
  24. 09 1月, 2006 5 次提交
  25. 11 11月, 2005 1 次提交
    • D
      [PATCH] powerpc: Move udbg code to arch/powerpc · 35cd8785
      David Gibson 提交于
      Since the udbg code in ppc64 has no ppc32 equivalent, move it straight
      over into arch/powerpc (and include/asm-powerpc for udbg.h).  In time,
      we probably want to meld the various bits and pieces of 32-bit early
      debugging code into udbg, but for now only include it on
      CONFIG_PPC64=y builds.  The only change during the move is to
      standardise the protecting #ifdef/#define in udbg.h, and move its
      banner comment above the initial #ifdef (which seems to be normal
      practice).
      
      Built and booted on POWER5 LPAR (ARCH=powerpc and ARCH=ppc64).  Built
      for 32bit multiplatform (ARCH=powerpc).
      Signed-off-by: NDavid Gibson <david@gibson.dropbear.id.au>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      35cd8785
  26. 07 11月, 2005 1 次提交
    • D
      [PATCH] powerpc: Kill ppcdebug · dcad47fc
      David Gibson 提交于
      The ancient ppcdebug/PPCDBG mechanism is now only used in two places.
      First, in the hash setup code, one of the bits allows the size of the
      hash table to be reduced by a factor of 8 - which would be better
      accomplished with a command line option for that purpose.  The other
      was a bunch of bus walking related messages in the iSeries code, which
      would seem to be insufficient reason to keep the mechanism.
      
      This patch removes the last traces of this mechanism.
      
      Built and booted on iSeries and pSeries POWER5 LPAR (ARCH=powerpc).
      Signed-off-by: NDavid Gibson <dwg@au1.ibm.com>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      dcad47fc
  27. 09 9月, 2005 1 次提交
  28. 06 9月, 2005 5 次提交