PrPMC800 NON-MONARCH Patch

Anders Blomdell anders.blomdell at control.lth.se
Tue Mar 4 03:34:30 EST 2003


Finally I have a working PrPMC800 Linux for NON-MONARCH operations. The
attached patch is what is needed.

The content of the patch falls in three categories:

   1. PrPMC800 specific stuff (in files prpmc*, harrier*)
   2. Discontigous memory support (various files) and a gross hack in
      numa.c
   3. Making all network and PCI memory DMA-able, I did the changes at
      this low level since I found numerous places where GFP_DMA should
      be added to get things working, and on most systems all (or much)
      of the memory is DMA-able, thus nobody has experienced any problems
      before (arch/ppc/kernel/pci-dma.c, net/core/skbuff.c)


IMHO, supporting systems where DMA-able memory is small and not starting in
low memory is harder than it needs to be (and wastes memory, since memory
zones needs to be 2MB aligned). I think it would be easier to describe
memory layout with something like:

   typedef struct {
     void *start;
     unsigned long size;
     gfp_type kind;
   } memory_layout_t;

   memory_layout_t the_memory_layout = {
     { 0,         0x4000000, GFP_NORMAL },
     { 0x4000000, 0x100000,  GFP_DMA },
     ...

than it is to describe it as a number of memory nodes, each consisting of
GFP_NORMAL, GFP_DMA and GFP_HIGHMEM memory, and their associated holes to
make everything align to 2 MB (1 << PAGE_SHIFT << (MAX_ORDER -1))

Patch is available as:
   http://www.control.lth.se/~andersb/prpmc800/2003-03-03.patch

and something somewhat like ChangeLog entries is available as:
   http://www.control.lth.se/~andersb/prpmc800/patch_2003-03-03_description.
txt

Regards

Anders Blomdell

------------------------------------------------------------------------------
  Anders Blomdell
  Department of Automatic Control        Email: anders.blomdell at control.lth.
se
  Lund Institute of Technology           Phone: +46 46 222 4625
  Box 118, S-221 00 Lund, Sweden         Fax:   +46 46 138118


** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/





More information about the Linuxppc-embedded mailing list