From: Denis Dmitriev <zealot351@gmail.com>
To: Paolo Bonzini <pbonzini@redhat.com>
Cc: qemu-devel@nongnu.org, Pavel Dovgaluk <pavel.dovgaluk@ispras.ru>
Subject: Re: [Qemu-devel] Implementation of BusLogic SCSI host adapter (BT-958)
Date: Thu, 1 Sep 2016 16:17:24 +0300 [thread overview]
Message-ID: <CAF3nGXdN4MUXMM9gKy5n77AA5RuC3oZ6YuGTAw6qaxydEKVH+g@mail.gmail.com> (raw)
In-Reply-To: <6961327b-897d-0c01-102f-22f299e0362c@redhat.com>
2016-09-01 14:11 GMT+03:00 Paolo Bonzini <pbonzini@redhat.com>:
>
>
>
> On 31/08/2016 15:48, Денис Дмитриев wrote:
> > uint64_t buslogicReadOutgoingMailbox(BuslogicState *s, BUSLOGICTASKSTATE
> > *TaskState)
> > {
> > uint64_t GCMailbox;
> > Mailbox24 Mbx24;
> > Mbx24.uCmdState = 0;
> > PCIDevice *pci_dev = PCI_DEVICE(s);
> > if (s->fMbxIs24Bit)
> > {
> > //try to calculate mailbox address
> > GCMailbox = s->GCPhysAddrMailboxOutgoingBase +
> > (s->uMailboxOutgoingPositionCurrent * sizeof(Mailbox24));
> > //try to read mailbox
> > pci_dma_read(pci_dev, GCMailbox, &Mbx24, sizeof(Mailbox24));
> > //after that i have empty buffer
> > TaskState->MailboxGuest.u32PhysAddrCCB =
> > ADDR_TO_U32(Mbx24.aPhysAddrCCB);
> > TaskState->MailboxGuest.u.out.uActionCode = Mbx24.uCmdState;
> > }
> > else
> > {
> > GCMailbox = s->GCPhysAddrMailboxOutgoingBase +
> > (s->uMailboxOutgoingPositionCurrent * sizeof(Mailbox32));
> > pci_dma_read(pci_dev, GCMailbox, &TaskState->MailboxGuest,
> > sizeof(Mailbox32));
> > }
> > return GCMailbox;
> > }
>
> This seems okay, so I am afraid you'll have to debug it. :(
I think that I am missing some initialization or something like that.
To work with the registers I create a memory region, and associate it
with the read and write handlers (as an example I used lsi53c895a.c).
Maybe work with memory in which mailboxes are located must be built
the same way?
To me, it looks like I'm trying to get the data to the right place but
I do not see them because there is something wrong with the mapping.
The basis of the initialization function I took from lsi53c895a.c.
Perhaps the root of evil in those lines, I commented out? If so, how
can I understand what parameters should be passed in
memory_region_init_io pci_register_bar and functions?
void buslogic_scsi_realize(PCIDevice *dev, Error **errp)
{
BuslogicState *s = BUSLOGIC_BT958(dev);
DeviceState *d = DEVICE(dev);
uint8_t *pci_conf;
pci_conf = dev->config;
/* PCI latency timer = 255 */
pci_conf[PCI_LATENCY_TIMER] = 0xff;
/* Interrupt pin A */
pci_conf[PCI_INTERRUPT_PIN] = 0x01;
memory_region_init_io(&s->port_io, OBJECT(s), &bl_port_ops, s,
"BusLogic", 0x4);
// memory_region_init_io(&s->ram_io, OBJECT(s), &bl_ram_ops, s,
// "BusLogic-ram", 0x2000);
// memory_region_init_io(&s->io_io, OBJECT(s), &bl_io_ops, s,
// "BusLogic-io", 256);
pci_register_bar(dev, 0, PCI_BASE_ADDRESS_SPACE_IO, &s->port_io);
// pci_register_bar(dev, 1, PCI_BASE_ADDRESS_SPACE_MEMORY, &s->mmio_io);
// pci_register_bar(dev, 2, PCI_BASE_ADDRESS_SPACE_MEMORY, &s->ram_io);
QTAILQ_INIT(&s->queue);
scsi_bus_new(&s->bus, sizeof(s->bus), d, &bl_scsi_info, NULL);
if (!d->hotplugged) {
scsi_bus_legacy_handle_cmdline(&s->bus, errp);
}
}
--
Sincerely, Denis Dmitriev.
next prev parent reply other threads:[~2016-09-01 13:17 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-08-31 13:48 [Qemu-devel] Implementation of BusLogic SCSI host adapter (BT-958) Денис Дмитриев
2016-09-01 11:11 ` Paolo Bonzini
2016-09-01 11:19 ` Peter Maydell
2016-09-01 12:59 ` Paolo Bonzini
2016-09-01 13:01 ` Peter Maydell
2016-09-01 13:17 ` Denis Dmitriev [this message]
2016-09-01 15:12 ` Paolo Bonzini
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=CAF3nGXdN4MUXMM9gKy5n77AA5RuC3oZ6YuGTAw6qaxydEKVH+g@mail.gmail.com \
--to=zealot351@gmail.com \
--cc=pavel.dovgaluk@ispras.ru \
--cc=pbonzini@redhat.com \
--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).