Port-bebox archive

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

Re: SCSI driver

In <m37ly1f9ns.fsf%trantor.cosmic.com@localhost>,
mirian%xensei.com@localhost wrote:

 > > I'm testing ncr.c of OpenBSD at NetBSD/bebox.
 > Is this a different ncr.c from what is on netbsd-current, in
 > /usr/src/sys/dev/pci?

OpenBSD's ncr.c supports big-endian CPU.
OpenBSD/powerpc has configuration for ncr.

 > > There are some problems. First, endian.
 > I assume because the code originally came from an i386, correct?

Yes. And, it is a problem to work in different endian with CPU(big)
and 53C810(little).

 > > Second, the address of main memory which saw from PCI master.
 > > 
 > > PCI/ISA view         +------------+ 0x00000000
 > >                      | PCI/ISA    |
 > >                      |  memory(2G)|
 > >                      +------------+ 0x80000000
 > >               =====> | main       |
 > >                      |  memory(2G)| script for 53C810.
 > >                      +------------+
 > Okay, I must confess to some ignorance here.  I'm not sure in your
 > diagram what is supposed to be happening with the memory, versus what
 > is actually happening.  Would you mind explaining it a bit more in
 > depth?

CPU puts SCRIPT on the main memory for 53C810. 53C810 runs SCRIPT
in the main memory. Therefore, SCRIPT must be little-endian.
And, address must be changed in SCRIPT, because memory map of PCI master
is different from memory map of CPU.

See MPC105 PCI Bridge/Memory Controller User's manual, 3.1 Address Maps.
Table 3-1 versus Figure 3-4.

I am sorry that I can't explain well.

Kazuki Sakamoto

Home | Main Index | Thread Index | Old Index