Hi,
> On Mar 12, 21:13, Systemkennung Linux wrote:
> > - illegal kernel paging request: this wasn't supposed to happen ...
>
> The exact message is
> "Unable to handle kernel paging request at virtual adress 000ddffe"
> ^^^^^^^^
> This actually happens in 3c503.c (el2_probe) where it does the following:
> for (addr = addrs; *addr; addr++) {
> int i;
> unsigned int base_bits = readb(*addr);
> .. ^^^^^
> addrs[] is declared as { 0xddffe, 0xd9ffe, 0xcdffe, 0xc9ffe, 0};
> ^^^^^^^
> Is maybe the 'readb' too PC/x86 oriented?
Mea culpa. You're right. The code assumes that MIPS boxes have the same
memory layout as Intel machines (code from include/asm-mips/io.h):
> /*
> * IO bus memory addresses are also 1:1 with the physical address
> * FIXME: This assumption is wrong for the Deskstation Tyne
> */
> #define virt_to_bus virt_to_phys
> #define bus_to_virt phys_to_virt
>
> /*
> * readX/writeX() are used to access memory mapped devices. On some
> * architectures the memory mapped IO stuff needs to be accessed
> * differently. On the x86 architecture, we just read/write the
> * memory location directly.
> */
> #define readb(addr) (*(volatile unsigned char *) (addr))
> #define readw(addr) (*(volatile unsigned short *) (addr))
> #define readl(addr) (*(volatile unsigned int *) (addr))
>
> #define writeb(b,addr) ((*(volatile unsigned char *) (addr)) = (b))
> #define writew(b,addr) ((*(volatile unsigned short *) (addr)) = (b))
> #define writel(b,addr) ((*(volatile unsigned int *) (addr)) = (b))
>
> #define memset_io(a,b,c) memset((void *)(a),(b),(c))
> #define memcpy_fromio(a,b,c) memcpy((a),(void *)(b),(c))
> #define memcpy_toio(a,b,c) memcpy((void *)(a),(b),(c))
>
> /*
> * Again, MIPS does not require mem IO specific function.
> */
>
> #define eth_io_copy_and_sum(a,b,c,d) eth_copy_and_sum((a),(void
> *)(b),(c),(d)
Acctually the address space where (E)ISA cards get mapped to is offseted
by 0xa0000000 for Deskstation Tyne and rPC44 and by 0xe2000000 for M700-10,
Magnum and Acer. So just adding this offset to the (E)ISA address in all
these macros should fix the thing.
Ralf
|