From: Blue Swirl <blauwirbel@gmail.com>
To: qemu-devel@nongnu.org
Subject: [Qemu-devel] [6265] Fix APB
Date: Fri, 09 Jan 2009 20:53:30 +0000 [thread overview]
Message-ID: <E1LLOME-00019F-PR@cvs.savannah.gnu.org> (raw)
Revision: 6265
http://svn.sv.gnu.org/viewvc/?view=rev&root=qemu&revision=6265
Author: blueswir1
Date: 2009-01-09 20:53:30 +0000 (Fri, 09 Jan 2009)
Log Message:
-----------
Fix APB
Modified Paths:
--------------
trunk/hw/apb_pci.c
trunk/hw/sun4u.c
Modified: trunk/hw/apb_pci.c
===================================================================
--- trunk/hw/apb_pci.c 2009-01-09 20:06:44 UTC (rev 6264)
+++ trunk/hw/apb_pci.c 2009-01-09 20:53:30 UTC (rev 6265)
@@ -22,12 +22,23 @@
* THE SOFTWARE.
*/
-/* XXX This file and most of its contests are somewhat misnamed. The
+/* XXX This file and most of its contents are somewhat misnamed. The
Ultrasparc PCI host is called the PCI Bus Module (PBM). The APB is
the secondary PCI bridge. */
#include "hw.h"
#include "pci.h"
+
+/* debug APB */
+//#define DEBUG_APB
+
+#ifdef DEBUG_APB
+#define APB_DPRINTF(fmt, args...) \
+do { printf("APB: " fmt , ##args); } while (0)
+#else
+#define APB_DPRINTF(fmt, args...)
+#endif
+
typedef target_phys_addr_t pci_addr_t;
#include "pci_host.h"
@@ -37,13 +48,13 @@
uint32_t val)
{
APBState *s = opaque;
- int i;
- for (i = 11; i < 32; i++) {
- if ((val & (1 << i)) != 0)
- break;
- }
- s->config_reg = (1 << 16) | (val & 0x7FC) | (i << 11);
+#ifdef TARGET_WORDS_BIGENDIAN
+ val = bswap32(val);
+#endif
+ APB_DPRINTF("config_writel addr " TARGET_FMT_plx " val %x\n", addr,
+ val);
+ s->config_reg = val;
}
static uint32_t pci_apb_config_readl (void *opaque,
@@ -51,10 +62,13 @@
{
APBState *s = opaque;
uint32_t val;
- int devfn;
- devfn = (s->config_reg >> 8) & 0xFF;
- val = (1 << (devfn >> 3)) | ((devfn & 0x07) << 8) | (s->config_reg & 0xFC);
+ val = s->config_reg;
+#ifdef TARGET_WORDS_BIGENDIAN
+ val = bswap32(val);
+#endif
+ APB_DPRINTF("config_readl addr " TARGET_FMT_plx " val %x\n", addr,
+ val);
return val;
}
@@ -259,5 +273,5 @@
"Advanced PCI Bus secondary bridge 1");
pci_bridge_init(s->bus, 9, 0x108e5000, pci_apb_map_irq,
"Advanced PCI Bus secondary bridge 2");
- return secondary;
+ return s->bus;
}
Modified: trunk/hw/sun4u.c
===================================================================
--- trunk/hw/sun4u.c 2009-01-09 20:06:44 UTC (rev 6264)
+++ trunk/hw/sun4u.c 2009-01-09 20:53:30 UTC (rev 6265)
@@ -465,8 +465,9 @@
pci_bus = pci_apb_init(APB_SPECIAL_BASE, APB_MEM_BASE, NULL);
isa_mem_base = VGA_BASE;
vga_ram_offset = qemu_ram_alloc(vga_ram_size);
- pci_cirrus_vga_init(pci_bus, ds, phys_ram_base + vga_ram_offset,
- vga_ram_offset, vga_ram_size);
+ pci_vga_init(pci_bus, ds, phys_ram_base + vga_ram_offset,
+ vga_ram_offset, vga_ram_size,
+ 0, 0);
i = 0;
if (hwdef->console_serial_base) {
reply other threads:[~2009-01-09 20:53 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=E1LLOME-00019F-PR@cvs.savannah.gnu.org \
--to=blauwirbel@gmail.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.