AT91SAM9G45でSPARSE_MEMで2つのメモリコントローラを使用する

AT91SAM9G45でSPARSE_MEMで2つのメモリコントローラを使用する

Googleにこの問題に関する多くの投稿がありますが、すべての回避策を試しましたが、解決されていないのでここに投稿します。

私はAT91BootStarp 3.5.9とLinuxカーネル3.6.9を使用しています。私の問題は、Linuxが2番目のメモリバンク(EBI_CS1の128MBが0x20000000にマップされている)を使用していないことです。

メモリマップは次のとおりです。

ATMEL評価(ユーザー)ボードに基づいています。

起動すると、「70000000-77ffffffでRAMを無視する(vmalloc領域のオーバーラップ)」というメッセージが表示されます。

SparseMemを有効にして、次の場所に公開されているパッチを試してみました。 http://blog.linuxconsulting.ro/2010/05/...-with.html

AT91BootstrapでDDR2の初期化を確認して検証しましたが、Bootstrapには何の問題もありません。 2つのメモリースティックをテストしたところ、問題は見つかりませんでした。

uBoot起動パラメータを次のように追加しました。

mem= mem=128M@0x20000000 mem=128M@0x70000000 console=ttyS0,115200 root=/dev/mmcblk0p2 rw rootdelay=2 rootwait=1

起動すると、次の警告が表示され、ボードは256 MBではなく128 MBで構成されます。

70000000-77ffffff(vmalloc領域が重複)でRAMを無視します。

CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177
CPU: VIVT data cache, VIVT instruction cache
Machine: Atmel AT91SAM9M10G45-EK
Ignoring RAM at 70000000-77ffffff (vmalloc region overlap).
Memory policy: ECC disabled, Data cache writeback
AT91: Detected soc type: at91sam9g45
AT91: Detected soc subtype: Unknown
AT91: sram at 0x300000 of 0x10000 mapped at 0xfef68000
Clocks: CPU 400 MHz, master 133 MHz, main 12.000 MHz
Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 32512
Kernel command line: mem=128M@0x20000000 mem=128M@0x70000000 console=ttyS0,115200 root=/dev/mmcblk0p2 rw rootdelay=2 rootwait=1
PID hash table entries: 512 (order: -1, 2048 bytes)
Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
Memory: 128MB = 128MB total
Memory: 124424k/124424k available, 6648k reserved, 0K highmem
Virtual kernel memory layout:
    vector  : 0xffff0000 - 0xffff1000   (   4 kB)
    fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)
    vmalloc : 0xc8800000 - 0xff000000   ( 872 MB)
    lowmem  : 0xc0000000 - 0xc8000000   ( 128 MB)
    modules : 0xbf000000 - 0xc0000000   (  16 MB)
      .text : 0xc0008000 - 0xc04d5f18   (4920 kB)
      .init : 0xc04d6000 - 0xc050022c   ( 169 kB)
      .data : 0xc0502000 - 0xc05345a0   ( 202 kB)
       .bss : 0xc05345c4 - 0xc055711c   ( 139 kB)
NR_IRQS:16 nr_irqs:16 16
AT91: 160 gpio irqs in 5 banks
sched_clock: 32 bits at 100 Hz, resolution 10000000ns, wraps every 4294967286ms
Console: colour dummy device 80x30

関連情報