From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1JjdEG-0001C6-1r for qemu-devel@nongnu.org; Wed, 09 Apr 2008 12:32:56 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1JjdEF-0001BD-Aa for qemu-devel@nongnu.org; Wed, 09 Apr 2008 12:32:55 -0400 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1JjdEF-0001BA-4V for qemu-devel@nongnu.org; Wed, 09 Apr 2008 12:32:55 -0400 Received: from savannah.gnu.org ([199.232.41.3] helo=sv.gnu.org) by monty-python.gnu.org with esmtps (TLS-1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1JjdEE-0005Hv-A3 for qemu-devel@nongnu.org; Wed, 09 Apr 2008 12:32:54 -0400 Received: from cvs.savannah.gnu.org ([199.232.41.69]) by sv.gnu.org with esmtp (Exim 4.63) (envelope-from ) id 1JjdE9-00035s-RS for qemu-devel@nongnu.org; Wed, 09 Apr 2008 16:32:49 +0000 Received: from blueswir1 by cvs.savannah.gnu.org with local (Exim 4.63) (envelope-from ) id 1JjdE9-000357-HH for qemu-devel@nongnu.org; Wed, 09 Apr 2008 16:32:49 +0000 MIME-Version: 1.0 Errors-To: blueswir1 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit From: Blue Swirl Message-Id: Date: Wed, 09 Apr 2008 16:32:49 +0000 Subject: [Qemu-devel] [4186] ESP: Add it_shift parameter (Herv?\195?\169 Poussineau) Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org 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);