[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [4186] ESP: Add it_shift parameter (Herv?\195?\169 Poussine
From: |
Blue Swirl |
Subject: |
[Qemu-devel] [4186] ESP: Add it_shift parameter (Herv?\195?\169 Poussineau) |
Date: |
Wed, 09 Apr 2008 16:32:49 +0000 |
Revision: 4186
http://svn.sv.gnu.org/viewvc/?view=rev&root=qemu&revision=4186
Author: blueswir1
Date: 2008-04-09 16:32:48 +0000 (Wed, 09 Apr 2008)
Log Message:
-----------
ESP: Add it_shift parameter (Herv?\195?\169 Poussineau)
Modified Paths:
--------------
trunk/hw/esp.c
trunk/hw/mips_jazz.c
trunk/hw/scsi.h
trunk/hw/sun4m.c
Modified: trunk/hw/esp.c
===================================================================
--- trunk/hw/esp.c 2008-04-09 06:53:01 UTC (rev 4185)
+++ trunk/hw/esp.c 2008-04-09 16:32:48 UTC (rev 4186)
@@ -21,8 +21,8 @@
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
+
#include "hw.h"
-#include "block.h"
#include "scsi-disk.h"
#include "scsi.h"
@@ -44,14 +44,13 @@
#define DPRINTF(fmt, args...)
#endif
-#define ESP_MASK 0x3f
#define ESP_REGS 16
-#define ESP_SIZE (ESP_REGS * 4)
#define TI_BUFSZ 32
typedef struct ESPState ESPState;
struct ESPState {
+ uint32_t it_shift;
qemu_irq irq;
uint8_t rregs[ESP_REGS];
uint8_t wregs[ESP_REGS];
@@ -403,7 +402,7 @@
ESPState *s = opaque;
uint32_t saddr;
- saddr = (addr & ESP_MASK) >> 2;
+ saddr = (addr >> s->it_shift) & (ESP_REGS - 1);
DPRINTF("read reg[%d]: 0x%2.2x\n", saddr, s->rregs[saddr]);
switch (saddr) {
case ESP_FIFO:
@@ -439,7 +438,7 @@
ESPState *s = opaque;
uint32_t saddr;
- saddr = (addr & ESP_MASK) >> 2;
+ saddr = (addr >> s->it_shift) & (ESP_REGS - 1);
DPRINTF("write reg[%d]: 0x%2.2x -> 0x%2.2x\n", saddr, s->wregs[saddr],
val);
switch (saddr) {
@@ -621,7 +620,7 @@
s->scsi_dev[id] = scsi_disk_init(bd, 0, esp_command_complete, s);
}
-void *esp_init(target_phys_addr_t espaddr,
+void *esp_init(target_phys_addr_t espaddr, int it_shift,
espdma_memory_read_write dma_memory_read,
espdma_memory_read_write dma_memory_write,
void *dma_opaque, qemu_irq irq, qemu_irq *reset)
@@ -634,12 +633,13 @@
return NULL;
s->irq = irq;
+ s->it_shift = it_shift;
s->dma_memory_read = dma_memory_read;
s->dma_memory_write = dma_memory_write;
s->dma_opaque = dma_opaque;
esp_io_memory = cpu_register_io_memory(0, esp_mem_read, esp_mem_write, s);
- cpu_register_physical_memory(espaddr, ESP_SIZE, esp_io_memory);
+ cpu_register_physical_memory(espaddr, ESP_REGS << it_shift, esp_io_memory);
esp_reset(s);
Modified: trunk/hw/mips_jazz.c
===================================================================
--- trunk/hw/mips_jazz.c 2008-04-09 06:53:01 UTC (rev 4185)
+++ trunk/hw/mips_jazz.c 2008-04-09 16:32:48 UTC (rev 4186)
@@ -200,7 +200,7 @@
/* FIXME: missing NS SONIC DP83932 */
/* SCSI adapter */
- scsi_hba = esp_init(0x80002000,
+ scsi_hba = esp_init(0x80002000, 0,
espdma_memory_read, espdma_memory_write, NULL,
rc4030[5], &esp_reset);
for (n = 0; n < ESP_MAX_DEVS; n++) {
Modified: trunk/hw/scsi.h
===================================================================
--- trunk/hw/scsi.h 2008-04-09 06:53:01 UTC (rev 4185)
+++ trunk/hw/scsi.h 2008-04-09 16:32:48 UTC (rev 4186)
@@ -2,7 +2,7 @@
#define ESP_MAX_DEVS 7
typedef void (*espdma_memory_read_write)(void *opaque, uint8_t *buf, int len);
void esp_scsi_attach(void *opaque, BlockDriverState *bd, int id);
-void *esp_init(target_phys_addr_t espaddr,
+void *esp_init(target_phys_addr_t espaddr, int it_shift,
espdma_memory_read_write dma_memory_read,
espdma_memory_read_write dma_memory_write,
void *dma_opaque, qemu_irq irq, qemu_irq *reset);
Modified: trunk/hw/sun4m.c
===================================================================
--- trunk/hw/sun4m.c 2008-04-09 06:53:01 UTC (rev 4185)
+++ trunk/hw/sun4m.c 2008-04-09 16:32:48 UTC (rev 4186)
@@ -516,7 +516,7 @@
exit(1);
}
- main_esp = esp_init(hwdef->esp_base,
+ main_esp = esp_init(hwdef->esp_base, 2,
espdma_memory_read, espdma_memory_write,
espdma, *espdma_irq, esp_reset);
@@ -668,7 +668,7 @@
exit(1);
}
- main_esp = esp_init(hwdef->esp_base,
+ main_esp = esp_init(hwdef->esp_base, 2,
espdma_memory_read, espdma_memory_write,
espdma, *espdma_irq, esp_reset);
@@ -1460,7 +1460,7 @@
exit(1);
}
- main_esp = esp_init(hwdef->esp_base,
+ main_esp = esp_init(hwdef->esp_base, 2,
espdma_memory_read, espdma_memory_write,
espdma, *espdma_irq, esp_reset);
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Qemu-devel] [4186] ESP: Add it_shift parameter (Herv?\195?\169 Poussineau),
Blue Swirl <=