qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Alexander Graf <agraf@suse.de>
To: agraf@suse.de
Cc: i.am.cormac.obrien@gmail.com, mark.cave-ayland@ilande.co.uk,
	qemu-devel@nongnu.org
Subject: [Qemu-devel] GSoC 2015 (Mac OS 9 support) report, week 3
Date: Wed, 20 May 2015 02:24:06 +0200	[thread overview]
Message-ID: <1432081446-25210-1-git-send-email-agraf@suse.de> (raw)

[This Week]
  - Investigate MOL device tree further
    - <Mark> There is also an interesting dump of what seems to be a MOL tree
      at http://josejx.net/mol/mol-stable/mollib/oftrees/oftree.nw.old (which
      has a commented out entry for "AAPL,debug" set to -1). The interesting
      parts I see here are the "interrupt-controller" node in /chosen and
      various additional names in the "compatible" property for various
      devices.
    - The comparison will be done by tomorrow, at the moment I'm writing an
      FCode function to dump the entire tree along with properties.
    - The attached link has incomplete notes on the differences between the
      device trees; they will be completed this week.
  - Patch: Copyright string
  - Patch: RTAS node

[Next Week]
  - Remove extraneous "interrupts" property from /pci/mac-io
    - I'm having trouble tracking down where the property is actually being
      set. The mac-io devices are defined in drivers/pci_database.c, but the
      pci_dev_t struct (drivers/pci_database.h) doesn't appear to have an
      interrupts field. Much of the mac-io related functionality is defined in
      drivers/macio.c, but there's no mention of interrupts there so I'm kind
      of at a loss.
    - This originates from the PCI device's announcement of an IRQ pin which
      really shouldn't be there
  - Test and debug boot script loader
  - Progress past quiesce() client interface call
    - At the moment, this function simply closes all USB devices (`usb_exit()`)
      and sets the Instruction and Data Address Translation bits in the MSR
      (@agraf: does this cause any side effects?). The stack diagram shows no
      arguments or return values, and none of the other `ciface` functions make
      any modifications to the stack other than their arguments or return
      values.
    - Looks like `quiesce` either hangs on `mtmsr` or makes a jump out of the
      function.
    - MSR.IR and MSR.DR enable paging for instructions and data respectively.
      IIRC we disable paging when quiesce gets called because it's the last
      call that Linux runs before it executes non-OF aware code IIRC.
    - Try to run qemu with -d in_asm,cpu,int -D log and check where the code
      execution hangs :). There's a good chance we're already in the Mac OS 9
      kernel.
    - It would appear that execution has branched off into invalid memory.
      invalid/unsupported opcode: 00 - 00 - 00 (00000000) 00f03000 0     IN:
      0x00f03000:  .long 0x0
    - Awesome. What code gets executed before that? Maybe we shouldn't turn off
      IR/DR?
    - Actually looking at the code, the MSR IR/DR part is surround by a #if 0
      ... #endif pair... maybe something in usb_exit() is breaking things?
      Possibly try removing it temporarily?
    - usb_exit() doesn't appear to be causing any issues.

[Long Term]
  - Continue updating project log
  - Create and send patches
    - [ ] Patch: Boot script loader
    - [ ] ROM node
  - Enable debugging in MOL
    - The installation is now broken after a failed make. Tried reinstalling
      from Zypper but it couldn't find the config files -- do they have to be
      added manually?
    - The config files are at a different location when you compile manually,
      but I don't remember where everything was :). Just run mol with strace,
      it will tell you where it's looking for things. The current ones should
      be somewhere in /etc.

                 reply	other threads:[~2015-05-20  0:24 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1432081446-25210-1-git-send-email-agraf@suse.de \
    --to=agraf@suse.de \
    --cc=i.am.cormac.obrien@gmail.com \
    --cc=mark.cave-ayland@ilande.co.uk \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).