* 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 The question about the high memory support on MPC8360? 郭劲
@ 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
* 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 郭劲
@ 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
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-29 3:11 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
-- strict thread matches above, loose matches on Subject: below --
2007-11-26 3:58 郭劲
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
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).