Hi,
> Yes. I did that, and the driver still isn't working, so I must have
> done something wrong.
>
> : Also, make sure that you have a correct map0_table in kernel/head.S
> : for the RPC44. Without a correct initial mapping nothing will work!
>
> That's the problem, I think. What is supposed to be mapped where?
> I've stumbled around a bit trying to find it all, but more keeps
> popping up.
The mappings for the Tyne should be almost right for your purposes. Just
adjust the physical addresses for the rPC44. The mappings should be
as follows:
table entry virtual address -> physical address
#1 0xe0000000 0x0, uncached
#2 0xe2000000 0x10000000, uncached
The ENTRYLO1 field of both mappings is unused.
> Also, when MILO boots, is it in translated (using virtual addresses)
> or untranslated mode? Does the MIPS even have an untranslated mode?
Depending of the system Milo either uses KSEG0 or KSEG1. Both are
mapped. Both KSEG0 and KSEG1 map a 512mb segment from 0x80000000/
0xa0000000 to physical address 0x0. There is no real untranslated mode
as on 68k when you switch off the address translation.
> I know that in MILO the addresses 0x8000000 and 0xa0000000 start the
> range of memory and the ISA bus is "overmapped" from 0xn00a0000 to
> 0xn00fffff. And that I/O ports start at 0xB0000000.
With a bit of luck this might be all you have to know about your machine's
hardware!
If your I/O ports start at 0xb0000000, which is physical address 0x10000000,
you just need to map them to virtual address 0xe2000000 and port accesses
using in/out macros should work. If you didn't do this right, the kernel
probably crashed with an invalid (tlbl) exception when it first tried to
use in/out.
You should probably try to do something like
lw t0,0xe2000061
xori t0,3
sw t0,0xe2000061
after setting up the wired mappings - just to verify that your mappings are
right. This code tries to access port 0x61 which controls a certain buzzing
sound device on normal PCs.
Or even easier for you - post your map0 mapping table.
> Hmmm, just got mail from Ralf suggesting I use tlbdump to see where
> these guys are mapped and then put that into the map statement. Hmmm,
> I'll see if that works, but I thought I had this down :-(.
Well, I thought this more as a verification that your initial mappings have
been installed right.
We also used an additional primitive console driver for debugging output. It
is being used in Milo's dummy vmlinux if I remember right and was quite
usefull for initial debugging. Just in case ...
Ralf
|