qemu-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-commits] [qemu/qemu] e3355a: m68k: Add NeXTcube framebuffer device


From: Peter Maydell
Subject: [Qemu-commits] [qemu/qemu] e3355a: m68k: Add NeXTcube framebuffer device emulation
Date: Mon, 09 Sep 2019 07:43:50 -0700

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: e3355a0ca2d82acc1d65e370284b503e178fa41a
      
https://github.com/qemu/qemu/commit/e3355a0ca2d82acc1d65e370284b503e178fa41a
  Author: Thomas Huth <address@hidden>
  Date:   2019-09-07 (Sat, 07 Sep 2019)

  Changed paths:
    M default-configs/m68k-softmmu.mak
    M hw/display/Makefile.objs
    A hw/display/next-fb.c
    M hw/m68k/Kconfig
    A include/hw/m68k/next-cube.h

  Log Message:
  -----------
  m68k: Add NeXTcube framebuffer device emulation

The NeXTcube uses a linear framebuffer with 4 greyscale colors and
a fixed resolution of 1120 * 832.
This code has been taken from Bryce Lanham's GSoC 2011 NeXT branch at

 https://github.com/blanham/qemu-NeXT/blob/next-cube/hw/next-fb.c

and altered to fit the latest interface of the current QEMU (e.g.
the device has been "qdev"-ified etc.).

Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Tested-by: Philippe Mathieu-Daudé <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Thomas Huth <address@hidden>


  Commit: c8e8bc85a6ba106ad4fd92468f6ef726200ab1ca
      
https://github.com/qemu/qemu/commit/c8e8bc85a6ba106ad4fd92468f6ef726200ab1ca
  Author: Thomas Huth <address@hidden>
  Date:   2019-09-07 (Sat, 07 Sep 2019)

  Changed paths:
    M hw/m68k/Makefile.objs
    A hw/m68k/next-kbd.c
    M include/hw/m68k/next-cube.h

  Log Message:
  -----------
  m68k: Add NeXTcube keyboard device

It is likely still quite incomplete (e.g. mouse and interrupts are not
implemented yet), but it is good enough for keyboard input at the firmware
monitor.
This code has been taken from Bryce Lanham's GSoC 2011 NeXT branch at

 https://github.com/blanham/qemu-NeXT/blob/next-cube/hw/next-kbd.c

and altered to fit the latest interface of the current QEMU (e.g. to use
memory_region_init_io() instead of cpu_register_physical_memory()).

Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Tested-by: Philippe Mathieu-Daudé <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Thomas Huth <address@hidden>


  Commit: 956a78118bfc7fa512b03cbe8a77b9384c6d89f4
      
https://github.com/qemu/qemu/commit/956a78118bfc7fa512b03cbe8a77b9384c6d89f4
  Author: Thomas Huth <address@hidden>
  Date:   2019-09-07 (Sat, 07 Sep 2019)

  Changed paths:
    M hw/m68k/Makefile.objs
    A hw/m68k/next-cube.c
    M include/hw/m68k/next-cube.h

  Log Message:
  -----------
  m68k: Add NeXTcube machine

It is still quite incomplete (no SCSI, no floppy emulation, no network,
etc.), but the firmware already shows up the debug monitor prompt in the
framebuffer display, so at least the very basics are already working.

This code has been taken from Bryce Lanham's GSoC 2011 NeXT branch at

 https://github.com/blanham/qemu-NeXT/blob/next-cube/hw/next-cube.c

and altered quite a bit to fit the latest interface and coding conventions
of the current QEMU.

Tested-by: Philippe Mathieu-Daudé <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Thomas Huth <address@hidden>


  Commit: b43047a20feba0ff1eaf6a49007e2d5402df3d46
      
https://github.com/qemu/qemu/commit/b43047a20feba0ff1eaf6a49007e2d5402df3d46
  Author: Laurent Vivier <address@hidden>
  Date:   2019-09-07 (Sat, 07 Sep 2019)

  Changed paths:
    M hw/char/escc.c
    M include/hw/char/escc.h

  Log Message:
  -----------
  escc: introduce a selector for the register bit

On Sparc and PowerMac, the bit 0 of the address selects the register
type (control or data) and bit 1 selects the channel (B or A).

On m68k Macintosh and NeXTcube, the bit 0 selects the channel and
bit 1 the register type.

This patch introduces a new parameter (bit_swap) to the device interface
to indicate bits usage must be swapped between registers and channels.

For the moment all the machines use the bit 0, but this change will be
needed to emulate the Quadra 800 or NeXTcube machine.

Signed-off-by: Laurent Vivier <address@hidden>
Reviewed-by: Hervé Poussineau <address@hidden>
[thh: added NeXTcube to the patch description]
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Tested-by: Philippe Mathieu-Daudé <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Thomas Huth <address@hidden>


  Commit: b17bed5b1727e3aa9e37fc8e8c3222130ceab22f
      
https://github.com/qemu/qemu/commit/b17bed5b1727e3aa9e37fc8e8c3222130ceab22f
  Author: Thomas Huth <address@hidden>
  Date:   2019-09-07 (Sat, 07 Sep 2019)

  Changed paths:
    M hw/m68k/Kconfig
    M hw/m68k/next-cube.c
    M tests/boot-serial-test.c

  Log Message:
  -----------
  m68k: Add serial controller to the NeXTcube machine

The NeXTcube uses a normal 8530 serial controller, so we can simply use
our normal "escc" device here.
While we're at it, also add a boot-serial-test for the next-cube machine,
now that the serial output works.

Tested-by: Philippe Mathieu-Daudé <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Thomas Huth <address@hidden>


  Commit: 1810b8150195f85b389462a0cbb4ab7337920ba7
      
https://github.com/qemu/qemu/commit/1810b8150195f85b389462a0cbb4ab7337920ba7
  Author: Thomas Huth <address@hidden>
  Date:   2019-09-07 (Sat, 07 Sep 2019)

  Changed paths:
    M MAINTAINERS

  Log Message:
  -----------
  m68k: Add an entry for the NeXTcube machine to the MAINTAINERS file

I don't have much clue about the NeXT hardware, but at least I know now
the source files a little bit, so I volunteer to pick up patches and send
PULL requests for them until someone else with more knowledge steps up
to do this job instead.

Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Thomas Huth <address@hidden>


  Commit: ca2e7e463fda794c44e76838824eb40945226c64
      
https://github.com/qemu/qemu/commit/ca2e7e463fda794c44e76838824eb40945226c64
  Author: Philippe Mathieu-Daudé <address@hidden>
  Date:   2019-09-07 (Sat, 07 Sep 2019)

  Changed paths:
    A tests/acceptance/machine_m68k_nextcube.py

  Log Message:
  -----------
  tests/acceptance: Add test of NeXTcube framebuffer using OCR

Add a test of the NeXTcube framebuffer using the Tesseract OCR
engine on a screenshot of the framebuffer device.

The test is very quick:

  $ avocado --show=app,console run tests/acceptance/machine_m68k_nextcube.py
  JOB ID     : 78844a92424cc495bd068c3874d542d1e20f24bc
  JOB LOG    : 
/home/phil/avocado/job-results/job-2019-08-13T13.16-78844a9/job.log
   (1/3) 
tests/acceptance/machine_m68k_nextcube.py:NextCubeMachine.test_bootrom_framebuffer_size:
 PASS (2.16 s)
   (2/3) 
tests/acceptance/machine_m68k_nextcube.py:NextCubeMachine.test_bootrom_framebuffer_ocr_with_tesseract_v3:
 -
  ue r pun Honl'flx ; 5‘ 55‘
  avg ncaaaaa 25 MHZ, memary jag m
  Backplane slat «a
  Ethernet address a a r a r3 2
  Memgry sackets aea canflqured far 16MB Darlly page made stMs but have 16MB 
page made stMs )nstalled
  Memgry sackets a and 1 canflqured far 16MB Darlly page made stMs but have 
16MB page made stMs )nstalled
  [...]
  Yestlnq the rpu, 5::
  system test raneg Errar egge 51
  Egg: cammand
  Default pggc devlce nut fauna
  NEXY>I
  PASS (2.64 s)
   (3/3) 
tests/acceptance/machine_m68k_nextcube.py:NextCubeMachine.test_bootrom_framebuffer_ocr_with_tesseract_v4:
 SKIP: tesseract v4 OCR tool not available
  RESULTS    : PASS 2 | ERROR 0 | FAIL 0 | SKIP 1 | WARN 0 | INTERRUPT 0 | 
CANCEL 0
  JOB TIME   : 5.35 s

Documentation on how to install tesseract:
  https://github.com/tesseract-ocr/tesseract/wiki#installation

Signed-off-by: Philippe Mathieu-Daudé <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Thomas Huth <address@hidden>


  Commit: 25311649592f5584b1e1012d69c7327ef87473f4
      
https://github.com/qemu/qemu/commit/25311649592f5584b1e1012d69c7327ef87473f4
  Author: Philippe Mathieu-Daudé <address@hidden>
  Date:   2019-09-07 (Sat, 07 Sep 2019)

  Changed paths:
    M .travis.yml

  Log Message:
  -----------
  .travis.yml: Let the avocado job run the NeXTcube tests

Signed-off-by: Philippe Mathieu-Daudé <address@hidden>
Message-Id: <address@hidden>
[huth: Rebased patch to master branch]
Signed-off-by: Thomas Huth <address@hidden>


  Commit: 89ea03a7dc83ca36b670ba7f787802791fcb04b1
      
https://github.com/qemu/qemu/commit/89ea03a7dc83ca36b670ba7f787802791fcb04b1
  Author: Peter Maydell <address@hidden>
  Date:   2019-09-09 (Mon, 09 Sep 2019)

  Changed paths:
    M .travis.yml
    M MAINTAINERS
    M default-configs/m68k-softmmu.mak
    M hw/char/escc.c
    M hw/display/Makefile.objs
    A hw/display/next-fb.c
    M hw/m68k/Kconfig
    M hw/m68k/Makefile.objs
    A hw/m68k/next-cube.c
    A hw/m68k/next-kbd.c
    M include/hw/char/escc.h
    A include/hw/m68k/next-cube.h
    A tests/acceptance/machine_m68k_nextcube.py
    M tests/boot-serial-test.c

  Log Message:
  -----------
  Merge remote-tracking branch 'remotes/huth-gitlab/tags/m68k-pull-2019-09-07' 
into staging

Add the m68k next-cube machine

# gpg: Signature made Sat 07 Sep 2019 16:32:53 BST
# gpg:                using RSA key 27B88847EEE0250118F3EAB92ED9D774FE702DB5
# gpg:                issuer "address@hidden"
# gpg: Good signature from "Thomas Huth <address@hidden>" [full]
# gpg:                 aka "Thomas Huth <address@hidden>" [full]
# gpg:                 aka "Thomas Huth <address@hidden>" [full]
# gpg:                 aka "Thomas Huth <address@hidden>" [unknown]
# Primary key fingerprint: 27B8 8847 EEE0 2501 18F3  EAB9 2ED9 D774 FE70 2DB5

* remotes/huth-gitlab/tags/m68k-pull-2019-09-07:
  .travis.yml: Let the avocado job run the NeXTcube tests
  tests/acceptance: Add test of NeXTcube framebuffer using OCR
  m68k: Add an entry for the NeXTcube machine to the MAINTAINERS file
  m68k: Add serial controller to the NeXTcube machine
  escc: introduce a selector for the register bit
  m68k: Add NeXTcube machine
  m68k: Add NeXTcube keyboard device
  m68k: Add NeXTcube framebuffer device emulation

Signed-off-by: Peter Maydell <address@hidden>


Compare: https://github.com/qemu/qemu/compare/019217c3b34f...89ea03a7dc83



reply via email to

[Prev in Thread] Current Thread [Next in Thread]