qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Hervé Poussineau" <hpoussin@reactos.org>
To: John Snow <jsnow@redhat.com>, qemu-devel@nongnu.org
Cc: Kevin Wolf <kwolf@redhat.com>,
	Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>,
	Stefan Hajnoczi <stefanha@redhat.com>,
	qemu-block@nongnu.org
Subject: Re: [Qemu-devel] [PATCH] fdc: remove sparc sun4m mutations
Date: Tue, 17 Mar 2015 07:43:55 +0100	[thread overview]
Message-ID: <5507CD2B.9060007@reactos.org> (raw)
In-Reply-To: <55074FA1.3010204@redhat.com>

Hi,

Le 16/03/2015 22:48, John Snow a écrit :
> On 03/14/2015 12:50 PM, Hervé Poussineau wrote:
>> They were introduced in 6f7e9aec5eb5bdfa57a9e458e391b785c283a007 and
>> 82407d1a4035e5bfefb53ffdcb270872f813b34c and lots of bug fixes were done after that.
>>
>> This fixes (at least) the detection of the floppy controller on Debian 4.0r9/SPARC,
>> and SS-5's OBP initialization routine still works.
>>
>
> Removing workaround code from six years ago in a device we hardly touch seems sane to me if it doesn't appear to break the machine it was originally architected for (SS-5, from 82407d1a's commit
> message), but I am not well versed in SPARC configurations, unfortunately for us :)
>
> It appears this quirk is active for a wide number of machine configurations (basically all that appear under sun4m_machine_init) -- What's the risk of us breaking one of those configurations?
>
> How did you test SS-5? (Can we test the others similarly? Is there a justification for not doing so?)

According to 82407d1a4035e5bfefb53ffdcb270872f813b34c, there was probably a hang when SS-5 OBP firmware was initializing the floppy. I checked my change with the OBP SS-5 firmware 2.15, which doesn't 
hang and goes up to firmware prompt. I also tested SS-4, SS-10 (OBP v3.45) and SS-20 (OBP 2.25) which also go up to firmware prompt. I was unable to test the other platforms with OBP.
Then, I tested SS-5 with Debian 4.0r9, and boot messages now detect the floppy controller with "Floppy drive(s): fd0 is 1.44M" and "FDC 0 is a S82078B"

However, in 82407d1a4035e5bfefb53ffdcb270872f813b34c, floppy was probably not working, and is still broken after this commit. This may be due to a missing DMA controller on sparc platform.

Regards,

Hervé

>
> Thanks,
> --js
>
>> Signed-off-by: Hervé Poussineau <hpoussin@reactos.org>
>> ---
>>   hw/block/fdc.c |   17 -----------------
>>   1 file changed, 17 deletions(-)
>>
>> diff --git a/hw/block/fdc.c b/hw/block/fdc.c
>> index 2bf87c9..f72a392 100644
>> --- a/hw/block/fdc.c
>> +++ b/hw/block/fdc.c
>> @@ -535,8 +535,6 @@ struct FDCtrl {
>>       uint8_t pwrd;
>>       /* Floppy drives */
>>       uint8_t num_floppies;
>> -    /* Sun4m quirks? */
>> -    int sun4m;
>>       FDrive drives[MAX_FD];
>>       int reset_sensei;
>>       uint32_t check_media_rate;
>> @@ -885,13 +883,6 @@ static void fdctrl_reset_irq(FDCtrl *fdctrl)
>>
>>   static void fdctrl_raise_irq(FDCtrl *fdctrl)
>>   {
>> -    /* Sparc mutation */
>> -    if (fdctrl->sun4m && (fdctrl->msr & FD_MSR_CMDBUSY)) {
>> -        /* XXX: not sure */
>> -        fdctrl->msr &= ~FD_MSR_CMDBUSY;
>> -        fdctrl->msr |= FD_MSR_RQM | FD_MSR_DIO;
>> -        return;
>> -    }
>>       if (!(fdctrl->sra & FD_SRA_INTPEND)) {
>>           qemu_set_irq(fdctrl->irq, 1);
>>           fdctrl->sra |= FD_SRA_INTPEND;
>> @@ -1080,12 +1071,6 @@ static uint32_t fdctrl_read_main_status(FDCtrl *fdctrl)
>>       fdctrl->dsr &= ~FD_DSR_PWRDOWN;
>>       fdctrl->dor |= FD_DOR_nRESET;
>>
>> -    /* Sparc mutation */
>> -    if (fdctrl->sun4m) {
>> -        retval |= FD_MSR_DIO;
>> -        fdctrl_reset_irq(fdctrl);
>> -    };
>> -
>>       FLOPPY_DPRINTF("main status register: 0x%02x\n", retval);
>>
>>       return retval;
>> @@ -2241,8 +2226,6 @@ static void sun4m_fdc_initfn(Object *obj)
>>       FDCtrlSysBus *sys = SYSBUS_FDC(obj);
>>       FDCtrl *fdctrl = &sys->state;
>>
>> -    fdctrl->sun4m = 1;
>> -
>>       memory_region_init_io(&fdctrl->iomem, obj, &fdctrl_mem_strict_ops,
>>                             fdctrl, "fdctrl", 0x08);
>>       sysbus_init_mmio(sbd, &fdctrl->iomem);
>>
>

  reply	other threads:[~2015-03-17  6:47 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-03-14 16:50 [Qemu-devel] [PATCH] fdc: remove sparc sun4m mutations Hervé Poussineau
2015-03-16 21:48 ` John Snow
2015-03-17  6:43   ` Hervé Poussineau [this message]
2015-03-19 14:25     ` Mark Cave-Ayland
2015-03-19 17:57       ` John Snow
2015-03-19 14:17 ` Mark Cave-Ayland

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=5507CD2B.9060007@reactos.org \
    --to=hpoussin@reactos.org \
    --cc=jsnow@redhat.com \
    --cc=kwolf@redhat.com \
    --cc=mark.cave-ayland@ilande.co.uk \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=stefanha@redhat.com \
    /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).