linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
* The question about the high memory support on MPC8360?
@ 2007-11-26  3:58 郭劲
  2007-11-26  6:11 ` vijay baskar
  0 siblings, 1 reply; 12+ messages in thread
From: 郭劲 @ 2007-11-26  3:58 UTC (permalink / raw)
  To: linuxppc-embedded

Hi,friends, 
  I plug in 1GB DDR-1 on my MPC8360 board, the u-boot-1.2.0 found the DDR storage
is 1GB, but the linux just found  773504k. please see follow information.
   I think I need to config the kernel to support the high memory. but if I config
the kernel to select the "high memory support" under the "platform options" on
"linux kernel configuration" during compile, the kernel is not to boot. if I
cancel this options, the kernel is ok to run.
   why? how to deal with this problem? there are two DIMM-184 slots on my MPC8360
board, I want to support total 2GB DDR-1 storage. now I want to try 1GB on one of 
DIMM-184 slots firstly.
    please see follow information. Thanks.


~ # dmesg                                                                       
Linux version 2.6.11 (olivia@bamboo) (gcc version 3.4.3) #1 Thu Jul 12 14:29:297
On node 0 totalpages: 196608                                                    
  DMA zone: 196608 pages, LIFO batch:16                                         
  Normal zone: 0 pages, LIFO batch:1                                            
  HighMem zone: 0 pages, LIFO batch:1                                           
Built 1 zonelists                                                               
Kernel command line: console=ttyS0,115200 root=/dev/ram0                        
IPIC (128 IRQ sources, 8 External IRQs) at fe000700                             
QE IC (64 IRQ sources) at fe100080                                              
PID hash table entries: 4096 (order: 12, 65536 bytes)                           
Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)                
Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)                  
Memory: 773504k available (1724k kernel code, 432k data, 100k init, 0k highmem) 
Calibrating delay loop... 351.23 BogoMIPS (lpj=175616)                          
Mount-cache hash table entries: 512 (order: 0, 4096 bytes)                      
checking if image is initramfs...it isn't (no cpio magic); looks like an initrd 
Freeing initrd memory: 3120k freed                                              
NET: Registered protocol family 16                                              
Registering ipic with sysfs...                                                  
SCSI subsystem initialized                                                      
JFFS2 version 2.2. (C) 2001-2003 Red Hat, Inc.                                  
Generic RTC Driver v1.07                                                        
Serial: 8250/16550 driver $Revision: 1.90 $ 2 ports, IRQ sharing disabled       
ttyS0 at MMIO 0xe0004500 (irq = 9) is a 16550A                                  
ttyS1 at MMIO 0xe0004600 (irq = 10) is a 16550A                                 
io scheduler noop registered                                                    
io scheduler anticipatory registered                                            
io scheduler deadline registered                                                
io scheduler cfq registered                                                     
RAMDISK driver initialized: 16 RAM disks of 16384K size 1024 blocksize          
loop: loaded (max 8 devices)                                                    
MPC8360E PB flash device: 2000000 at fe000000 Partition number 6                
MPC8360E PB Flash Map Info: Found 1 x16 devices at 0x0 in 16-bit bank           
MPC8360E PB Flash Map Info: Found an alias at 0x1000000 for the chip at 0x0     
Support for command set 0001 not present                                        
gen_probe: No supported Vendor Command Set found                                
i2c /dev entries driver                                                         
eth0: Running with NAPI disabled                                                
eth1: Running with NAPI disabled                                                
NET: Registered protocol family 2                                               
IP: routing cache hash table of 8192 buckets, 64Kbytes                          
TCP established hash table entries: 131072 (order: 8, 1048576 bytes)            
TCP bind hash table entries: 65536 (order: 6, 262144 bytes)                     
TCP: Hash tables configured (established 131072 bind 65536)                     
NET: Registered protocol family 1                                               
NET: Registered protocol family 17                                              
RAMDISK: Compressed image found at block 0                                      
VFS: Mounted root (ext2 filesystem) readonly.                                   
Freeing unused kernel memory: 100k init                                         
eth0: PHY is Marvell 88E11x1 (1410cc1)                                          
eth0: Full Duplex                                                               
eth0: Speed 1000BT                                                              
eth0: Link is up


U-Boot 1.2.0 (Nov 21 2007 - 16:05:15) MPC83XX                                   
                                                                                
CPU:   e300c1, MPC8360E, Rev: 20 at 528 MHz, CSB:  264 MHz                      
Board: Freescale MPC8360EMDS                                                    
I2C:   ready                                                                    
DRAM:                                                                           
DIMM type:                                                                      
SPD size:        128                                                            
EEPROM size:     256                                                            
Memory type:     7                                                              
Row addr:        13                                                             
Column addr:     11                                                             
# of rows:       2                                                              
Row density:     128                                                            
# of banks:      4                                                              
Data width:      64                                                             
Chip width:      8                                                              
Refresh rate:    82                                                             
CAS latencies:   1C                                                             
Write latencies: 02                                                             
tRP:             60                                                             
tRCD:            60                                                             
                                                                                
                                                                                
   DDR DIMM: data bus width is 64 bit without ECC                               
   DDRC ECC mode: OFF                                                           
                                                                                
   SDRAM on Local Bus: 64 MB                                                    
   DDR RAM: 1024 MB                                                             
FLASH: 16 MB                                                                    
PCI clock is 66MHz                                                              
PCI 32bit bus on PMC1 & PMC2 & PMC3                                             
In:    serial                                                                   
Out:   serial                                                                   
Err:   serial                                                                   
Net:   UEC: PHY is Marvell 88E11x1 (1410cc1)                                    
FSL UEC0: Full Duplex                                                           
FSL UEC0: Speed 1000BT                                                          
FSL UEC0: Link is up                                                            
FSL UEC0                                                                        
Hit any key to stop autoboot:  0                                                
=> bootm fed00000 fe900000                                                      
## Booting image at fed00000 ...                                                
   Image Name:   Linux-2.6.11                                                   
   Image Type:   PowerPC Linux Kernel Image (gzip compressed)                   
   Data Size:    1054435 Bytes =  1 MB                                          
   Load Address: 00000000                                                       
   Entry Point:  00000000                                                       
   Verifying Checksum ... OK                                                    
   Uncompressing Kernel Image ... OK                                            
## Loading RAMDisk Image at fe900000 ...                                        
   Image Name:   uboot ext2 ramdisk rootfs                                      
   Image Type:   PowerPC Linux RAMDisk Image (gzip compressed)                  
   Data Size:    3195657 Bytes =  3 MB                                          
   Load Address: 00000000                                                       
   Entry Point:  00000000                                                       
   Verifying Checksum ... OK                                                    
   Loading Ramdisk to 0fc9a000, end 0ffa6309 ... OK

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: The question about the high memory support on MPC8360?
  2007-11-26  3:58 The question about the high memory support on MPC8360? 郭劲
@ 2007-11-26  6:11 ` vijay baskar
  2007-11-26 16:57   ` Scott Wood
  0 siblings, 1 reply; 12+ messages in thread
From: vijay baskar @ 2007-11-26  6:11 UTC (permalink / raw)
  To: 郭劲; +Cc: linuxppc-embedded

Hi friends,

Kernel virtual space is divided into 3 different zones namely ZONE_DMA,=20
ZONE_NORMAL, ZONE_HIGHMEM.Remember that the kernel follows the 3GB/1GB=20
split ie 3 GB for user space and 1  GB for kernel space. Since your ram=20
is 1 GB, 896 MB will be mapped one to one with the kernel virtual space.=20
This one to one mapping will be done in the ZONE_NORMAL and ZONE_DMA of=20
kernel virtual space.Remaining 128 MB of kernel virtual address space=20
will be used for setting up kernel  data structures and for ioremaps and=20
vmallocs that  the kernel will need to perform during boot up.  If  u=20
configure high memory this 128 MB will be used for accessing unmapped=20
memory regions in the ram and there wont be sufficient  virtual=20
addresses for ioremaps and vmallocs. Thats why your kernel did not boot=20
when high mem is configured.

                   Since u want to have 1 GB of ram an alternative to=20
this is that u can try 2 GB/ 2 GB split which is configurable ie 2 GB=20
for user space and 2 GB for kernel space in your kernel.

Thanks and Regards,
vijai



=E9=83=AD=E5=8A=B2 wrote:

>Hi,friends,=20
>  I plug in 1GB DDR-1 on my MPC8360 board, the u-boot-1.2.0 found the DD=
R storage
>is 1GB, but the linux just found  773504k. please see follow information=
.
>   I think I need to config the kernel to support the high memory. but i=
f I config
>the kernel to select the "high memory support" under the "platform optio=
ns" on
>"linux kernel configuration" during compile, the kernel is not to boot. =
if I
>cancel this options, the kernel is ok to run.
>   why? how to deal with this problem? there are two DIMM-184 slots on m=
y MPC8360
>board, I want to support total 2GB DDR-1 storage. now I want to try 1GB =
on one of=20
>DIMM-184 slots firstly.
>    please see follow information. Thanks.
>
>
>~ # dmesg                                                               =
       =20
>Linux version 2.6.11 (olivia@bamboo) (gcc version 3.4.3) #1 Thu Jul 12 1=
4:29:297
>On node 0 totalpages: 196608                                            =
       =20
>  DMA zone: 196608 pages, LIFO batch:16                                 =
       =20
>  Normal zone: 0 pages, LIFO batch:1                                    =
       =20
>  HighMem zone: 0 pages, LIFO batch:1                                   =
       =20
>Built 1 zonelists                                                       =
       =20
>Kernel command line: console=3DttyS0,115200 root=3D/dev/ram0            =
           =20
>IPIC (128 IRQ sources, 8 External IRQs) at fe000700                     =
       =20
>QE IC (64 IRQ sources) at fe100080                                      =
       =20
>PID hash table entries: 4096 (order: 12, 65536 bytes)                   =
       =20
>Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)        =
       =20
>Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)          =
       =20
>Memory: 773504k available (1724k kernel code, 432k data, 100k init, 0k h=
ighmem)=20
>Calibrating delay loop... 351.23 BogoMIPS (lpj=3D175616)                =
         =20
>Mount-cache hash table entries: 512 (order: 0, 4096 bytes)              =
       =20
>checking if image is initramfs...it isn't (no cpio magic); looks like an=
 initrd=20
>Freeing initrd memory: 3120k freed                                      =
       =20
>NET: Registered protocol family 16                                      =
       =20
>Registering ipic with sysfs...                                          =
       =20
>SCSI subsystem initialized                                              =
       =20
>JFFS2 version 2.2. (C) 2001-2003 Red Hat, Inc.                          =
       =20
>Generic RTC Driver v1.07                                                =
       =20
>Serial: 8250/16550 driver $Revision: 1.90 $ 2 ports, IRQ sharing disable=
d      =20
>ttyS0 at MMIO 0xe0004500 (irq =3D 9) is a 16550A                        =
         =20
>ttyS1 at MMIO 0xe0004600 (irq =3D 10) is a 16550A                       =
         =20
>io scheduler noop registered                                            =
       =20
>io scheduler anticipatory registered                                    =
       =20
>io scheduler deadline registered                                        =
       =20
>io scheduler cfq registered                                             =
       =20
>RAMDISK driver initialized: 16 RAM disks of 16384K size 1024 blocksize  =
       =20
>loop: loaded (max 8 devices)                                            =
       =20
>MPC8360E PB flash device: 2000000 at fe000000 Partition number 6        =
       =20
>MPC8360E PB Flash Map Info: Found 1 x16 devices at 0x0 in 16-bit bank   =
       =20
>MPC8360E PB Flash Map Info: Found an alias at 0x1000000 for the chip at =
0x0    =20
>Support for command set 0001 not present                                =
       =20
>gen_probe: No supported Vendor Command Set found                        =
       =20
>i2c /dev entries driver                                                 =
       =20
>eth0: Running with NAPI disabled                                        =
       =20
>eth1: Running with NAPI disabled                                        =
       =20
>NET: Registered protocol family 2                                       =
       =20
>IP: routing cache hash table of 8192 buckets, 64Kbytes                  =
       =20
>TCP established hash table entries: 131072 (order: 8, 1048576 bytes)    =
       =20
>TCP bind hash table entries: 65536 (order: 6, 262144 bytes)             =
       =20
>TCP: Hash tables configured (established 131072 bind 65536)             =
       =20
>NET: Registered protocol family 1                                       =
       =20
>NET: Registered protocol family 17                                      =
       =20
>RAMDISK: Compressed image found at block 0                              =
       =20
>VFS: Mounted root (ext2 filesystem) readonly.                           =
       =20
>Freeing unused kernel memory: 100k init                                 =
       =20
>eth0: PHY is Marvell 88E11x1 (1410cc1)                                  =
       =20
>eth0: Full Duplex                                                       =
       =20
>eth0: Speed 1000BT                                                      =
       =20
>eth0: Link is up
>
>
>U-Boot 1.2.0 (Nov 21 2007 - 16:05:15) MPC83XX                           =
       =20
>                                                                        =
       =20
>CPU:   e300c1, MPC8360E, Rev: 20 at 528 MHz, CSB:  264 MHz              =
       =20
>Board: Freescale MPC8360EMDS                                            =
       =20
>I2C:   ready                                                            =
       =20
>DRAM:                                                                   =
       =20
>DIMM type:                                                              =
       =20
>SPD size:        128                                                    =
       =20
>EEPROM size:     256                                                    =
       =20
>Memory type:     7                                                      =
       =20
>Row addr:        13                                                     =
       =20
>Column addr:     11                                                     =
       =20
># of rows:       2                                                      =
       =20
>Row density:     128                                                    =
       =20
># of banks:      4                                                      =
       =20
>Data width:      64                                                     =
       =20
>Chip width:      8                                                      =
       =20
>Refresh rate:    82                                                     =
       =20
>CAS latencies:   1C                                                     =
       =20
>Write latencies: 02                                                     =
       =20
>tRP:             60                                                     =
       =20
>tRCD:            60                                                     =
       =20
>                                                                        =
       =20
>                                                                        =
       =20
>   DDR DIMM: data bus width is 64 bit without ECC                       =
       =20
>   DDRC ECC mode: OFF                                                   =
       =20
>                                                                        =
       =20
>   SDRAM on Local Bus: 64 MB                                            =
       =20
>   DDR RAM: 1024 MB                                                     =
       =20
>FLASH: 16 MB                                                            =
       =20
>PCI clock is 66MHz                                                      =
       =20
>PCI 32bit bus on PMC1 & PMC2 & PMC3                                     =
       =20
>In:    serial                                                           =
       =20
>Out:   serial                                                           =
       =20
>Err:   serial                                                           =
       =20
>Net:   UEC: PHY is Marvell 88E11x1 (1410cc1)                            =
       =20
>FSL UEC0: Full Duplex                                                   =
       =20
>FSL UEC0: Speed 1000BT                                                  =
       =20
>FSL UEC0: Link is up                                                    =
       =20
>FSL UEC0                                                                =
       =20
>Hit any key to stop autoboot:  0                                        =
       =20
>=3D> bootm fed00000 fe900000                                            =
         =20
>## Booting image at fed00000 ...                                        =
       =20
>   Image Name:   Linux-2.6.11                                           =
       =20
>   Image Type:   PowerPC Linux Kernel Image (gzip compressed)           =
       =20
>   Data Size:    1054435 Bytes =3D  1 MB                                =
         =20
>   Load Address: 00000000                                               =
       =20
>   Entry Point:  00000000                                               =
       =20
>   Verifying Checksum ... OK                                            =
       =20
>   Uncompressing Kernel Image ... OK                                    =
       =20
>## Loading RAMDisk Image at fe900000 ...                                =
       =20
>   Image Name:   uboot ext2 ramdisk rootfs                              =
       =20
>   Image Type:   PowerPC Linux RAMDisk Image (gzip compressed)          =
       =20
>   Data Size:    3195657 Bytes =3D  3 MB                                =
         =20
>   Load Address: 00000000                                               =
       =20
>   Entry Point:  00000000                                               =
       =20
>   Verifying Checksum ... OK                                            =
       =20
>   Loading Ramdisk to 0fc9a000, end 0ffa6309 ... OK
>
>
>_______________________________________________
>Linuxppc-embedded mailing list
>Linuxppc-embedded@ozlabs.org
>https://ozlabs.org/mailman/listinfo/linuxppc-embedded
>
>
> =20
>

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: The question about the high memory support on MPC8360?
  2007-11-26  6:11 ` vijay baskar
@ 2007-11-26 16:57   ` Scott Wood
  2007-11-27  4:27     ` vijay baskar
  0 siblings, 1 reply; 12+ messages in thread
From: Scott Wood @ 2007-11-26 16:57 UTC (permalink / raw)
  To: vijay baskar; +Cc: 郭劲, linuxppc-embedded

On Mon, Nov 26, 2007 at 11:41:38AM +0530, vijay baskar wrote:
> Hi friends,
> 
> Kernel virtual space is divided into 3 different zones namely ZONE_DMA, 
> ZONE_NORMAL, ZONE_HIGHMEM.Remember that the kernel follows the 3GB/1GB 
> split ie 3 GB for user space and 1  GB for kernel space. Since your ram 
> is 1 GB, 896 MB will be mapped one to one with the kernel virtual space. 
> This one to one mapping will be done in the ZONE_NORMAL and ZONE_DMA of 
> kernel virtual space.Remaining 128 MB of kernel virtual address space 
> will be used for setting up kernel  data structures and for ioremaps and 
> vmallocs that  the kernel will need to perform during boot up.  If  u 
> configure high memory this 128 MB will be used for accessing unmapped 
> memory regions in the ram and there wont be sufficient  virtual 
> addresses for ioremaps and vmallocs. Thats why your kernel did not boot 
> when high mem is configured.

1. The split is 768/256 on powerpc, not 896/128.
2. Why do you think this is insufficient?

>                    Since u want to have 1 GB of ram an alternative to 
> this is that u can try 2 GB/ 2 GB split which is configurable ie 2 GB 
> for user space and 2 GB for kernel space in your kernel.

1. He said he wanted 2GB of RAM, not 1.
2. I don't think this mode of operation has been tested very well on
powerpc.

> >=> bootm fed00000 fe900000                                                      
> >## Booting image at fed00000 ...                                                
> >   Image Name:   Linux-2.6.11                                                   
> >   Image Type:   PowerPC Linux Kernel Image (gzip compressed)                   
> >   Data Size:    1054435 Bytes =  1 MB                                          
> >   Load Address: 00000000                                                       
> >   Entry Point:  00000000                                                       
> >   Verifying Checksum ... OK                                                    
> >   Uncompressing Kernel Image ... OK                                            
> >## Loading RAMDisk Image at fe900000 ...                                        
> >   Image Name:   uboot ext2 ramdisk rootfs                                      
> >   Image Type:   PowerPC Linux RAMDisk Image (gzip compressed)                  
> >   Data Size:    3195657 Bytes =  3 MB                                          
> >   Load Address: 00000000                                                       
> >   Entry Point:  00000000                                                       
> >   Verifying Checksum ... OK                                                    
> >   Loading Ramdisk to 0fc9a000, end 0ffa6309 ... OK

Could you try with a more recent, arch/powerpc kernel?

-Scott

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: The question about the high memory support on MPC8360?
  2007-11-26 16:57   ` Scott Wood
@ 2007-11-27  4:27     ` vijay baskar
  2007-11-27 17:02       ` Scott Wood
  0 siblings, 1 reply; 12+ messages in thread
From: vijay baskar @ 2007-11-27  4:27 UTC (permalink / raw)
  To: Scott Wood; +Cc: 郭劲, linuxppc-embedded

[-- Attachment #1: Type: text/html, Size: 4592 bytes --]

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: The question about the high memory support on MPC8360?
  2007-11-27  4:27     ` vijay baskar
@ 2007-11-27 17:02       ` Scott Wood
  2007-11-28  4:02         ` vijay baskar
  0 siblings, 1 reply; 12+ messages in thread
From: Scott Wood @ 2007-11-27 17:02 UTC (permalink / raw)
  To: vijay baskar; +Cc: 郭劲, linuxppc-embedded

vijay baskar wrote:
> The kernel maps the last 1 GB of the virtual address space one to one
> to the physical memory.

No, it maps 768MB of RAM in this manner.

> This is called the kernel space. After the one
> to one mapping is done for the available physical memory, the
> remaining virtual addresses are used for vmalloc and ioremap.

And highmem mappings.

> The kernel also allows hardcoded mapping
> of IO regions into its virtual address space through the
> io_block_mapping interface.

Not in current arch/powerpc kernels.

> Many boards use the block IO mapping to
> map the CCSRBAR/IMMR into the kernel address space, such that the
> physical address and the virutal address is the same. Virtual
> addresses beyond these hardcoded mappings cannot be used by
> vmalloc/ioremap.

And this is why.

> Now as more and more memory is added to the system the addresses
> available for vmalloc and ioremap gets reduced, and memory allocations
> start to fail, due to the lack of availability of virtual addresses.

How so?  The size of lowmem is constant once you reach the threshold, as 
is the size of the highmem mapping area.

What *does* start to fail eventually, if you have a *lot* of highmem, is 
that you run out of lowmem for pagetables and such.

-Scott

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: The question about the high memory support on MPC8360?
  2007-11-27 17:02       ` Scott Wood
@ 2007-11-28  4:02         ` vijay baskar
  2007-11-28 16:57           ` Scott Wood
  0 siblings, 1 reply; 12+ messages in thread
From: vijay baskar @ 2007-11-28  4:02 UTC (permalink / raw)
  To: Scott Wood; +Cc: 郭劲, linuxppc-embedded

Hi,
"The kernel also allows hardcoded mapping
of IO regions into its virtual address space through the
io_block_mapping interface."

Can u tell me how this is in current arch/powerpc. Also does it mean 
that whatever be the size of the ram > 768 MB there is not going to be 
much improvement in performance in kernel space irrespective of invoking 
CONFIG_HIGHMEM or not?

Also do you think this low mem be enough if i have lots of kernel space 
processes each invoking lots of kmallocs. Will there be bottle necks?? 
Also what alternative do we have if  low mem of 768 MB is not enough??

Scott Wood wrote:

> vijay baskar wrote:
>
>> The kernel maps the last 1 GB of the virtual address space one to one
>> to the physical memory.
>
>
> No, it maps 768MB of RAM in this manner.
>
>> This is called the kernel space. After the one
>> to one mapping is done for the available physical memory, the
>> remaining virtual addresses are used for vmalloc and ioremap.
>
>
> And highmem mappings.
>
>> The kernel also allows hardcoded mapping
>> of IO regions into its virtual address space through the
>> io_block_mapping interface.
>
>
> Not in current arch/powerpc kernels.
>
>> Many boards use the block IO mapping to
>> map the CCSRBAR/IMMR into the kernel address space, such that the
>> physical address and the virutal address is the same. Virtual
>> addresses beyond these hardcoded mappings cannot be used by
>> vmalloc/ioremap.
>
>
> And this is why.
>
>> Now as more and more memory is added to the system the addresses
>> available for vmalloc and ioremap gets reduced, and memory allocations
>> start to fail, due to the lack of availability of virtual addresses.
>
>
> How so?  The size of lowmem is constant once you reach the threshold, 
> as is the size of the highmem mapping area.
>
> What *does* start to fail eventually, if you have a *lot* of highmem, 
> is that you run out of lowmem for pagetables and such.
>
> -Scott
>
>

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: The question about the high memory support on MPC8360?
  2007-11-28  4:02         ` vijay baskar
@ 2007-11-28 16:57           ` Scott Wood
  0 siblings, 0 replies; 12+ messages in thread
From: Scott Wood @ 2007-11-28 16:57 UTC (permalink / raw)
  To: vijay baskar; +Cc: 郭劲, linuxppc-embedded

vijay baskar wrote:
> Hi, "The kernel also allows hardcoded mapping of IO regions into its 
> virtual address space through the io_block_mapping interface."
> 
> Can u tell me how this is in current arch/powerpc.

Everything is explicitly ioremapped.

> Also does it mean that whatever be the size of the ram > 768 MB there
>  is not going to be much improvement in performance in kernel space 
> irrespective of invoking CONFIG_HIGHMEM or not?

Well, the kernel can use highmem for cache...  I'm not sure what you
mean by "in kernel space".

> Also do you think this low mem be enough if i have lots of kernel 
> space processes each invoking lots of kmallocs.

That depends on what you mean by "lots". :-)

You'll have 768MB of lowmem, and kmallocs can only use lowmem.

> Will there be bottle necks?? Also what alternative do we have if  low
> mem of 768 MB is not enough??

You'll need to change the user/kernel split, and deal with anything that 
breaks in the process.

Or get a 64-bit chip. :-)

-Scott

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: The question about the high memory support on MPC8360?
@ 2007-11-29  3:11 郭劲
  2007-11-29  7:29 ` vijay baskar
  0 siblings, 1 reply; 12+ messages in thread
From: 郭劲 @ 2007-11-29  3:11 UTC (permalink / raw)
  To: Scott Wood, vijay baskar; +Cc: linuxppc-embedded

Hi,friends,

   I plug in 2GB DDR-1 in my MPC8360 board,there are two DIMM-184 slots,each
DIMM-184 slot hold 1GB.Could you tell me how to let the linux know about those
2GB?
   In uboot, I set up each DDR CS to visit 512MB, total 4 CS signal. DDR window
range is 2GB. I think the uboot has passed those DDR parameter to linux.
   I once did a test that config the bootargs with mem=512M, then the linux just
only find 512MB, but if I config the mem=2048M, the linux still find about 750MB.
   How to make the linux find the total 2GB memory?
   




>From: Scott Wood <scottwood@freescale.com>
>Reply-To: 
>To: vijay baskar <cn.vijaibaskar@gdatech.co.in>
>Subject: Re: The question about the high memory support on MPC8360?
>Date:Wed, 28 Nov 2007 10:57:38 -0600
>
>vijay baskar wrote:
>> Hi, "The kernel also allows hardcoded mapping of IO regions into its 
>> virtual address space through the io_block_mapping interface."
>> 
>> Can u tell me how this is in current arch/powerpc.
>
>Everything is explicitly ioremapped.
>
>> Also does it mean that whatever be the size of the ram > 768 MB there
>>  is not going to be much improvement in performance in kernel space 
>> irrespective of invoking CONFIG_HIGHMEM or not?
>
>Well, the kernel can use highmem for cache...  I'm not sure what you
>mean by "in kernel space".
>
>> Also do you think this low mem be enough if i have lots of kernel 
>> space processes each invoking lots of kmallocs.
>
>That depends on what you mean by "lots". :-)
>
>You'll have 768MB of lowmem, and kmallocs can only use lowmem.
>
>> Will there be bottle necks?? Also what alternative do we have if  low
>> mem of 768 MB is not enough??
>
>You'll need to change the user/kernel split, and deal with anything that 
>breaks in the process.
>
>Or get a 64-bit chip. :-)
>
>-Scott
> 

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: The question about the high memory support on MPC8360?
  2007-11-29  3:11 郭劲
@ 2007-11-29  7:29 ` vijay baskar
  2007-11-29 12:59   ` robert lazarski
  0 siblings, 1 reply; 12+ messages in thread
From: vijay baskar @ 2007-11-29  7:29 UTC (permalink / raw)
  To: 郭劲; +Cc: linuxppc-embedded

[-- Attachment #1: Type: text/html, Size: 3701 bytes --]

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: The question about the high memory support on MPC8360?
  2007-11-29  7:29 ` vijay baskar
@ 2007-11-29 12:59   ` robert lazarski
  2007-11-29 16:09     ` Dale Farnsworth
  2007-11-29 19:41     ` Rune Torgersen
  0 siblings, 2 replies; 12+ messages in thread
From: robert lazarski @ 2007-11-29 12:59 UTC (permalink / raw)
  Cc: linuxppc-embedded

On Nov 29, 2007 2:29 AM, vijay baskar <cn.vijaibaskar@gdatech.co.in> wrote:
>
>  How to make the linux find the total 2GB memory?
>
>
>         Hi Friend,
>
>  I hope u had tracked the conversion that has been going on. The max mem
> that the kernel can show is only 768 MB because only that of memory is
> directly mapped with your ram.. No matter how much ram > 768 MB (in
> powerpc.. it varies in other architectures) u have, the kernel will show
> only 768 MB.. This is called low mem..
>
>  How t o use high mem??
>
>  scott can probably guide us on this.. I also have lot of confusions about
> high mem.. Also i would suggest you a bit of reading on virtual memory
> management on linux to get a grasp about how things are done
>  Rest for scott
>
>  regards,
>  vijai
>

I also have a requirement to use more than 768MB and 0x30000000. I
have other problems at the moment, so I haven't tested this completely
yet. My limited understanding, though, is that to use more than 768MB
you have to change your kernel configuration, including shifting the
kernel start address. This is what I plan on testing for 1GB when I
have time:

CONFIG_ADVANCED_OPTIONS=y
CONFIG_LOWMEM_SIZE_BOOL=y
CONFIG_LOWMEM_SIZE=0x40000000
CONFIG_KERNEL_START_BOOL=y
CONFIG_KERNEL_START=0xa0000000
# CONFIG_CONSISTENT_START_BOOL is not set
# CONFIG_CONSISTENT_SIZE_BOOL is not set
# CONFIG_BOOT_LOAD_BOOL is not set

If that works for current kernels, please respond to the list ;-) .

HTH,
Robert

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: The question about the high memory support on MPC8360?
  2007-11-29 12:59   ` robert lazarski
@ 2007-11-29 16:09     ` Dale Farnsworth
  2007-11-29 19:41     ` Rune Torgersen
  1 sibling, 0 replies; 12+ messages in thread
From: Dale Farnsworth @ 2007-11-29 16:09 UTC (permalink / raw)
  To: linuxppc-embedded

Robert lazarski wrote:
> On Nov 29, 2007 2:29 AM, vijay baskar <cn.vijaibaskar@gdatech.co.in> wrote:
> >
> >  How to make the linux find the total 2GB memory?
> >
> >         Hi Friend,
> >
> >  I hope u had tracked the conversion that has been going on. The max mem
> > that the kernel can show is only 768 MB because only that of memory is
> > directly mapped with your ram.. No matter how much ram > 768 MB (in
> > powerpc.. it varies in other architectures) u have, the kernel will show
> > only 768 MB.. This is called low mem..
> >
> >  How t o use high mem??
> >
> >  scott can probably guide us on this.. I also have lot of confusions about
> > high mem.. Also i would suggest you a bit of reading on virtual memory
> > management on linux to get a grasp about how things are done
> >  Rest for scott
> >
> >  regards,
> >  vijai
> 
> I also have a requirement to use more than 768MB and 0x30000000. I
> have other problems at the moment, so I haven't tested this completely
> yet. My limited understanding, though, is that to use more than 768MB
> you have to change your kernel configuration, including shifting the
> kernel start address. This is what I plan on testing for 1GB when I
> have time:
> 
> CONFIG_ADVANCED_OPTIONS=y
> CONFIG_LOWMEM_SIZE_BOOL=y
> CONFIG_LOWMEM_SIZE=0x40000000
> CONFIG_KERNEL_START_BOOL=y
> CONFIG_KERNEL_START=0xa0000000
> # CONFIG_CONSISTENT_START_BOOL is not set
> # CONFIG_CONSISTENT_SIZE_BOOL is not set
> # CONFIG_BOOT_LOAD_BOOL is not set
> 
> If that works for current kernels, please respond to the list ;-) .

Can't answer that question, but before trying that, have you tried
CONFIG_HIGHMEM=y ?

-Dale

^ permalink raw reply	[flat|nested] 12+ messages in thread

* RE: The question about the high memory support on MPC8360?
  2007-11-29 12:59   ` robert lazarski
  2007-11-29 16:09     ` Dale Farnsworth
@ 2007-11-29 19:41     ` Rune Torgersen
  1 sibling, 0 replies; 12+ messages in thread
From: Rune Torgersen @ 2007-11-29 19:41 UTC (permalink / raw)
  To: robert lazarski; +Cc: linuxppc-embedded

> From: robert lazarski
> Sent: Thursday, November 29, 2007 7:00 AM
> Subject: Re: The question about the high memory support on MPC8360?
> I also have a requirement to use more than 768MB and 0x30000000. I
> have other problems at the moment, so I haven't tested this completely
> yet. My limited understanding, though, is that to use more than 768MB
> you have to change your kernel configuration, including shifting the
> kernel start address. This is what I plan on testing for 1GB when I
> have time:
>=20
> CONFIG_ADVANCED_OPTIONS=3Dy
> CONFIG_LOWMEM_SIZE_BOOL=3Dy
> CONFIG_LOWMEM_SIZE=3D0x40000000
> CONFIG_KERNEL_START_BOOL=3Dy
> CONFIG_KERNEL_START=3D0xa0000000
> # CONFIG_CONSISTENT_START_BOOL is not set
> # CONFIG_CONSISTENT_SIZE_BOOL is not set
> # CONFIG_BOOT_LOAD_BOOL is not set
>=20
> If that works for current kernels, please respond to the list ;-) .

This is how I do 1G of mem on a /arch/ppc kernel. A short while (couple
of weeks ago) I commented about thei s on a thread about setting up the
TLB handlers on arch/powerpc, and asked if this was going to be possible
to do, and basically got a resouding NO as answer.

WHich means I'll be sticking to arch/ppc for a while yet.
It would be nice to have this also working on arch/powerpc though.

^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2007-11-29 19:41 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-11-26  3:58 The question about the high memory support on MPC8360? 郭劲
2007-11-26  6:11 ` vijay baskar
2007-11-26 16:57   ` Scott Wood
2007-11-27  4:27     ` vijay baskar
2007-11-27 17:02       ` Scott Wood
2007-11-28  4:02         ` vijay baskar
2007-11-28 16:57           ` Scott Wood
  -- strict thread matches above, loose matches on Subject: below --
2007-11-29  3:11 郭劲
2007-11-29  7:29 ` vijay baskar
2007-11-29 12:59   ` robert lazarski
2007-11-29 16:09     ` Dale Farnsworth
2007-11-29 19:41     ` Rune Torgersen

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).