Re: Atari ROM port ISA

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Apr 16, 2012 at 07:50:33PM +1200, Michael Schmitz wrote:
arch/m68k/include/asm/io_mm.h:

| #define enec_isa_read_base  0xfffa0000
| #define enec_isa_write_base 0xfffb0000
|
| #define ENEC_ISA_IO_B(ioaddr)   (enec_isa_read_base+((((unsigned long)(ioaddr))&0x1F)<<9))
| #define ENEC_ISA_IO_W(ioaddr)   (enec_isa_read_base+((((unsigned long)(ioaddr))&0x1F)<<9))
| #define ENEC_ISA_MEM_B(madr)    (enec_isa_read_base+((((unsigned long)(madr))&0x1F)<<9))
| #define ENEC_ISA_MEM_W(madr)    (enec_isa_read_base+((((unsigned long)(madr))&0x1F)<<9))

So ISA memory space accesses (isa_readX()) are implemented the same as ISA I/O
space accesses? That can't work. Or are they not supported?

There's no distinct 'IO' or 'memory' space on the ROM port adapter,
it's all memory mapped on ROM port addresses. How does access to ISA
card mem regions work on ix86? Different address range, or different
instructions?

The real x86 instruction set has separate instructions to access any
ports in the IO space (in and out). The instruction also has an access
width field, which most assemblers encode into the instruction (leading
to the inb,inw,outb,outw in assembly listings). This carried forward
into PCI as well, which allows for separate IO and memory access.

Most non-x86 implementations of ISA (and PCI) just map the IO ports
onto some otherwise unused address range in the normal memory space.

	Brad Boyer
	flar@xxxxxxxxxxxxx

--
To unsubscribe from this list: send the line "unsubscribe linux-m68k" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Video for Linux]     [Yosemite News]     [Linux S/390]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux