[Top] [All Lists]

HIGHMEM not working.

To: "" <>
Subject: HIGHMEM not working.
From: "Ramgopal Kota" <>
Date: Tue, 16 Mar 2010 23:04:49 -0700
Accept-language: en-US
Acceptlanguage: en-US
In-reply-to: <>
Original-recipient: rfc822;
References: <> <>
Thread-index: AcrBK3wkk2FBNl+9TaOxNHDqJxz80AEZusdwAAEpc2A=
Thread-topic: HIGHMEM not working.

I need help in running CPU with HIGH_MEM.
Below is the processor memory map .. It is base on MIPS64K Core.

0x0000_0000  -- 0x07FF_FFFF   -> RAM (Region 1)
0x0800_0000  -- 0x0FFF_FFFF   -> PCI BUS 1
0x2000_0000  -- 0x2FFF_FFFF   -> Flash Region
0x4000_0000  -- 0x47FF_FFFF   -> PCI BUS 2
0x8000_0000  -- 0xCFFF_FFFF   -> RAM (Region 2) the first 128MB is remapped 
into 0x8000_0000 .. 

The system has 256MB of PHYSICAL RAM .. 

I configured TLB's and added memory regions. The system boots up correctly ..
If I show cat /proc/meminfo it shows 256MB , it could allocate memory ( I 
verified with a simple program allocating the memory and writing some data)

There is a PCI MAC device on PCI BUS 2. The CPU is not able to perform DMA 
to/from device.
The MAC driver is allocating DMA buffers using the following code ..
    phy = virt_to_bus(high_memory);  << Resulting in 0xa000_0000; 
    virt = ioremap(pbase);    
The Linux configuration has no ZONE_DMA configuration ..

Few questions ..
  A) HIGH_MEMORY START Address is configured to 0x2000_0000 , is it correct 
  B) Are there any data which can be dumped to know more information ?
  C) Do I need to enable MEMORY Discontinuous Config also ?  ( As I did not see 
a reason to enable this as memory in Region 2 is contiguous)
  D) I read in some articles on internet that if HIGH_MEM is used,PCI bounce 
buffers needs to be used ? Can some body point me how to set this up ?

Thanks & Regards,
Ramgopal Kota

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