linux-mips
[Top] [All Lists]

weekly O2 patches ;)

To: linux-mips@oss.sgi.com
Subject: weekly O2 patches ;)
From: Vivien Chappelier <vivien.chappelier@enst-bretagne.fr>
Date: Sat, 22 Dec 2001 19:28:44 +0100 (CET)
Sender: owner-linux-mips@oss.sgi.com
---------- Forwarded message ----------
Date: Sat, 22 Dec 2001 17:39:48 +0100 (CET)
From: Vivien Chappelier <glaurung@melkor.maisel.enst-bretagne.fr>
To: Ralf Baechle <ralf@oss.sgi.com>
Cc: ilya@theIlya.com, mips-linux@oss.sgi.com
Subject: weekly O2 patches ;)

Hi!

        Here are two patches, a general one to get ip32 and probably ip27
booting with the new 2.5.1 kernel, the other one for ip32 level 1 cache.
        The first one fixes a call to NULL upon initialization of the
timer.
        The second one fixes a couple of things:
                - the second level cache was not enabled (just
checked if present or not) resulting in incorrect cache size
detection and incorrect cache flushing functions. This is fixed
(i.e. size is ok now), but secondary cache is disabled as it still didn't
work with it (i.e. functions are for l1 cache flushing, sprobe_cache
returns no second cache)
                - on pci_unmap_single, pci_unmap_sg, cache was not
flushed, this resulted in content of DMAd memory not being seen by the CPU
when reading DMA buffers from device.
                - with 2.5.1, some calls to pci_map_sg/pci_unmap_sg use
pages instead of adresses. This was not supported (by both ip27 and ip32)
                - the aic7xxx SCSI controller didn't use DMA for reading
disk info, the flag unchecked_isa_dma was set to one to force using
DMAable memory for this.

        Note that I'm still using the IP22 PAGE_OFFSET, and this works
well, as the firmware is 32bit and loads the kernel at that address, this
leaves 512Mb of addressable memory, I think we should leave PAGE_OFFSET to
this value for now. If we need to address more memory, we'll have to write
some code to remap the kernel elsewhere (maybe something like when setting
CONFIG_MAPPED_KERNEL on IP27?). The problem still happens in
reserve_bootmem, even with kernel 2.5.1 where code seems to have changed a
lot there: when using 0x98000.. PAGE_OFFSET, the bootmem code sees no
available memory.
        There are still bugs with IP32, both running cache or uncached
that these patches don't fix (especially when doing cat /dev/sda >
/dev/null or trying to boot nfsroot).
        Finally, when fixing ip32 for 2.5.1 (i.e. cacheing with pages and
timer setup) I've tried to apply the same changes for the ip27 but I could
not test them of course.. so please do :)

regards,
Vivien.

Attachment: linux-O2-l1cache.diff
Description: Text document

Attachment: linux-mips-timer.diff
Description: Text document

<Prev in Thread] Current Thread [Next in Thread>