ポーティングについて

おせわになります。いっとうです。

 

APRZA0AとLCD-KIT-B01の組み合わせで、アメリカサイトのBSPv1.3にて動作させようとしています。

buildrootの先のアドバイスのお陰でU-bootは動くようになりましたが、kernelの方が手こずっております。

APRZA0AのBSPはかなり古いため(linux3.8.13)、まずはここにあるboard-rskrza1.cとBSPv1.3(linux3.14)のboard-rskrza1.cの差分を

把握しようとしていますが、前者は446行、後者は2311行とかなり増えていて、何が変わったのか把握出来ず困っています。

まずはlogin画面まで行きたいと思っているのですが、1ヶ月やってみたもののStarting kernel …で止まったままでお手上げになりました。

 

このバージョン間の履歴みたいなものを調べる方法は無いものでしょうか。https://github.com/renesas-rz を見ても、linux3.14以前のデータを見つけることが出来ません。

Parents
  • RZ/A1 に対しては、

    (1) 最初に GENMAI ボードに Linux 3.8 が、
    (2) 
    次いで RSK ボードに Linux 3.8 が、
    (3) 
    その後、RSK ボードに Linux 3.14 が、

    この順序で移植されました。現在、ここ(Japanese community サイトの "サンプルプログラム等")には、(1) が、
    English community サイトの "RZ Forum" の "Files - Linux" には、(3) が、それぞれ登録されています。
    ですから、RZ/A1 Linux BSP に 3.8 と 3.14 の間の履歴は、存在しません。

    また、(1) の board-rskrza1.c と (3) の board-rskrza1.c の差分を調査されているようですが、(1) の board-rskrza1.c は、
    GENMAI ボード用、
    (3) の board-rskrza1.c は RSK ボード用です。(1) の board-rskrza1.c と (3) の board-genmai.c が
    正しい組み合わせです。
    諸般の事情でこのようになっていますが、混乱されたかもしれません。お詫び致します。

    移植については、最初は、RZ/A1 Linux BSP Porting Guide などを参考にして、(3) の BSP を APRZA0A に新規に移植
    するつもりで作業された方が速いかもしれません。"Starting kernel …" で止まってしまうということですから、
    Porting Guide の "12. Kernel: Enable (Early) Low Level Debugging for Linux Booting" の early_printk が役に立つ
    かもしれません。 

  • 返信ありがとうございます。

    XIPが理解出来ていないので、通常のuImageにて動作させようとしています。古いBSPのブートログはこんな感じです。
    U-Boot 2013.04 (Apr 17 2017 - 16:21:18)

    I2C: ready
    DRAM: 32 MiB
    Using default environment

    In: serial
    Out: serial
    Err: serial
    Net: sh_eth
    Hit any key to stop autoboot: 0
    (Re)start USB...
    USB0: scanning bus 0 for devices... 2 USB Device(s) found
    scanning usb for storage devices... 1 Storage Device(s) found
    2808968 bytes read in 2712 ms (1010.7 KiB/s)
    308 bytes read in 72 ms (3.9 KiB/s)
    ## Booting kernel from Legacy Image at 0c100000 ...
    Image Name: Linux-3.8.13-aprza0a-1.0
    Created: 2017-04-17 7:29:45 UTC
    Image Type: ARM Linux Kernel Image (uncompressed)
    Data Size: 2808904 Bytes = 2.7 MiB
    Load Address: 0c008000
    Entry Point: 0c008000
    Verifying Checksum ... OK
    ## Flattened Device Tree blob at 0c000000
    Booting using the fdt blob at 0x0c000000
    Loading Kernel Image ... OK
    OK
    Loading Device Tree to 0def1000, end 0def4133 ... OK

    Starting kernel ...

    console [ttySC4] enabled, bootconsole disabled
    sh-sci.5: ttySC5 at MMIO 0xe8009800 (irq = 243) is a scif
    sh-sci.6: ttySC6 at MMIO 0xe800a000 (irq = 247) is a scif
    sh-sci.7: ttySC7 at MMIO 0xe800a800 (irq = 251) is a scif
    rspi rspi.0: master is unqueued, this is deprecated
    rspi rspi.0: probed
    rspi rspi.1: master is unqueued, this is deprecated
    rspi rspi.1: probed
    rspi rspi.2: master is unqueued, this is deprecated
    rspi rspi.2: probed
    rspi rspi.3: master is unqueued, this is deprecated
    rspi rspi.3: probed
    rspi rspi.4: master is unqueued, this is deprecated
    rspi rspi.4: probed
    Info : OTP bit = 1 (CR1 = 0xff, SR1 = 0x00)
    m25p80 spi5.0: found n25q128a13, expected s25fl512s
    m25p80 spi5.0: n25q128a13 (16384 Kbytes)
    Creating 4 MTD partitions on "m25p80":
    0x000000000000-0x000000080000 : "spibsc0_loader"
    0x000000080000-0x0000000c0000 : "spibsc0_bootenv"
    0x0000000c0000-0x0000004c0000 : "spibsc0_kernel"
    0x0000004c0000-0x000001000000 : "spibsc0_rootfs"
    spibsc spibsc.0: probed
    CAN device driver interface
    libphy: sh_mii: probed
    Base address at 0xe8203000, 00:0c:7b:38:02:22, IRQ 359.
    r8a66597_hcd r8a66597_hcd.0: USB Host Controller
    r8a66597_hcd r8a66597_hcd.0: new USB bus registered, assigned bus number 1
    r8a66597_hcd r8a66597_hcd.0: irq 73, io base 0xe8010000
    usb usb1: default language 0x0409
    usb usb1: udev 1, busnum 1, minor = 0
    usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
    usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
    usb usb1: Product: USB Host Controller
    usb usb1: Manufacturer: Linux 3.8.13-aprza0a-1.0 r8a66597_hcd
    usb usb1: SerialNumber: r8a66597_hcd
    usb usb1: usb_probe_device
    usb usb1: configuration #1 chosen from 1 choice
    usb usb1: adding 1-0:1.0 (config #1, interface 0)
    ・・・以下略

    U-bootをv1.3で作成してカーネルとルートファイルシステムは古いままでも起動は確認できました。
    =>usb start
    =>ext2load usb 0 0x0c100000 /uImage
    =>ext2load usb 0 0x0c000000 /hoge.dtb
    =>bootm 0x0c100000 - 0x0c000000

    printkを組み込む為にmenuconfigを設定し、上記bootに対してPortingGuideのxargsを反映させようとしていますが、mtdblock0の部分はsda1に置き換えてみましたがエラーが出ます。USBメモリにuImage,rootfsを作成しています。シリアルはSC4と読み替えています。

    => set xargs 'console=ttySC4,115200 console=tty0 ignore_loglevel root=/dev/sda1 earlyprintk'
    => bootm 0x0c100000 - 0x0c000000
    Wrong Image Format for bootm command
    ERROR: can't get kernel image!

    この部分、デバイスはどのような指定になるでしょうか。
  • お世話になります。
    なんとかU-bootの起動までは復帰することが出来ました。
    LowLevelDebugも有効になって、Starting kernel以降に以下が表示されるようになりました。

    I2C: ready
    DRAM: 10 MiB
    Using default environment

    In: serial
    Out: serial
    Err: serial
    Net: sh_eth
    => usb start
    (Re)start USB...
    USB0: scanning bus 0 for devices... 2 USB Device(s) found
    scanning usb for storage devices... 1 Storage Device(s) found
    => ext2load usb 0 0x0d000000 /uImage
    2637472 bytes read in 2258 ms (1.1 MiB/s)
    => ext2load usb 0 0x0d800000 /r7s72100-aprza0a.dtb
    7633 bytes read in 75 ms (98.6 KiB/s)
    => set bootargs ‘console=ttySC4,115200 console=tty0 ignore_loglevel root=/dev/sda1 rootwait earlyprintk’
    => bootm 0x0d000000 - 0x0d800000
    ## Booting kernel from Legacy Image at 0d000000 ...
    Image Name: Linux-3.14.79-ltsi+
    Created: 2017-07-03 0:45:11 UTC
    Image Type: ARM Linux Kernel Image (uncompressed)
    Data Size: 2637408 Bytes = 2.5 MiB
    Load Address: 08008000
    Entry Point: 08008000
    Verifying Checksum ... OK
    ## Flattened Device Tree blob at 0d800000
    Booting using the fdt blob at 0xd800000
    Loading Kernel Image ... OK
    Loading Device Tree to 208e7000, end 208ebdd0 ... OK

    Starting kernel ...

    data abort
    pc : [<0800800c>] lr : [<2096e860>]
    sp : 208edcf0 ip : 0000000c fp : 00000000
    r10: 208ef224 r9 : 208edf08 r8 : 00000000
    r7 : 00000000 r6 : 08008000 r5 : 209a61fc r4 : 00000000
    r3 : 00001dd1 r2 : 208e7000 r1 : 00000dd1 r0 : 00000dd1
    Flags: nZCv IRQs off FIQs off Mode SVC_32
    Resetting CPU ...

    resetting ...


    pcが0x0800800cということで、起動早々にこけているということでしょうか。
  • > pcが0x0800800cということで、起動早々にこけているということでしょうか。

    メッセージを見る限り、u-boot が Linux を起動した直後(未だ Linux が例外を処理する準備が出来る前) に例外を
    起こし、u-boot の例外ルーチンが呼び出されているように見えます。

    以前のカーネルは、どうされたのですか?

  • お世話になります。

    先の実行結果ですが、カーネルとデバイスファイルのアドレスが逆になっていました。

    旧BSPで動作したkernelとユーザランドは有りますので、現行U-bootを使って起動させようとしたところ、
    ロードするアドレスが0c000000-0x0c8000000の場合、0d000000-0d800000の場合共に、starting kernelで
    止まってしまいます。

    => usb start
    (Re)start USB...
    USB0: scanning bus 0 for devices... 2 USB Device(s) found
    scanning usb for storage devices... 1 Storage Device(s) found
    => ext2load usb 0 0x0d000000 /uImage
    2827952 bytes read in 2392 ms (1.1 MiB/s)
    => ext2load usb 0 0x0d800000 /rza1-aprza0a.dtb
    308 bytes read in 58 ms (4.9 KiB/s)
    => set bootargs 'console=ttySC4,115200 console=tty0 ignore_loglevel root=/dev/sda1 rootwait earlyprintk'
    => bootm 0x0d000000 - 0x0d800000
    ## Booting kernel from Legacy Image at 0d000000 ...
    Image Name: Linux-3.8.13-aprza0a-1.0
    Created: 2017-06-05 8:37:48 UTC
    Image Type: ARM Linux Kernel Image (uncompressed)
    Data Size: 2827888 Bytes = 2.7 MiB
    Load Address: 0c008000
    Entry Point: 0c008000
    Verifying Checksum ... OK
    ## Flattened Device Tree blob at 0d800000
    Booting using the fdt blob at 0xd800000
    Loading Kernel Image ... OK
    Loading Device Tree to 208e9000, end 208ec133 ... OK

    Starting kernel ...

    => usb start
    (Re)start USB...
    USB0: scanning bus 0 for devices... 2 USB Device(s) found
    scanning usb for storage devices... 1 Storage Device(s) found
    => ext2load usb 0 0x0c000000 /uImage
    2827952 bytes read in 2392 ms (1.1 MiB/s)
    => ext2load usb 0 0x0c800000 /rza1-aprza0a.dtb
    308 bytes read in 58 ms (4.9 KiB/s)
    => set bootargs 'console=ttySC4,115200 console=tty0 ignore_loglevel root=/dev/sda1 rootwait earlyprintk'
    => bootm 0x0c000000 - 0x0c800000
    ## Booting kernel from Legacy Image at 0c000000 ...
    Image Name: Linux-3.8.13-aprza0a-1.0
    Created: 2017-06-05 8:37:48 UTC
    Image Type: ARM Linux Kernel Image (uncompressed)
    Data Size: 2827888 Bytes = 2.7 MiB
    Load Address: 0c008000
    Entry Point: 0c008000
    Verifying Checksum ... OK
    ## Flattened Device Tree blob at 0c800000
    Booting using the fdt blob at 0xc800000
    Loading Kernel Image ... OK
    Loading Device Tree to 208e9000, end 208ec133 ... OK

    Starting kernel ...

    これはU-bootのPIN初期設定が上手く出来ていないということでしょうか。
  • > 先の実行結果ですが、カーネルとデバイスファイルのアドレスが逆になっていました。

    新旧の実行結果を比較して、古いカーネルと間違ったデバイスツリーをロードして実行した、と理解しました。

    > 旧BSPで動作したkernelとユーザランドは有りますので、現行U-bootを使って起動させようとしたところ、
    > ロードするアドレスが0c000000-0x0c8000000の場合、0d000000-0d800000の場合共に、starting kernelで
    > 止まってしまいます。

    ロードするアドレスが 0x0c000000-0x0c800000 の場合は、以前にご説明した通り、カーネルをロードした領域と
    カーネルの実行領域が、一部、オーバラップしますから、正常に動作しません。

    ロードするアドレスが 0x0d000000-0x0d800000 の場合は、bootargs に earlyprintk が指定されていますから、
    通常、何らかの表示があります。以前にご説明した通り、まず、earlyprintk を有効にしてみてください。

    > これはU-bootのPIN初期設定が上手く出来ていないということでしょうか。

    ご質問が解りません。
    u-boot の端子設定が (完璧ではないにせよ、それなりに)出来ているから、上のように u-boot が動いているの
    だと思いますが...

     

  • お世話になります。
    説明不足で申し訳有りません。

    旧U-bootと旧kernel→動作OK
    新U-bootと新kernrl→動作NG(earlyprintk有り)
    新U-bootと旧kernel→動作NG
    以上の結果と、アドバイス頂いた、
    > メッセージを見る限り、u-boot が Linux を起動した直後(未だ Linux が例外を処理する準備が出来る前) に例外を
    > 起こし、u-boot の例外ルーチンが呼び出されているように見えます。
    から、新U-bootがおかしいと考えました。
    旧BSPで.configを見るとerarlyprintkが有効になっていて、その上で何も表示されないと思っていたのですが、
    再度ビルドして以下を試してみます。
    旧U-bootと旧kernel(earlyprintk有り)
    新U-bootと旧kernel(earlyprintk有り)
  • お世話になります。
    旧U-bootと旧kernel(earlyprintk有り)は動き、新U-bootと旧kernel(earlyprintk有り)はStarting kernelで止まって
    何も表示されませんでした。printkが効いていないのかと旧+旧のブートログをearlyprintk無しの時のログと
    比較してみましたが、情報量が増えているのでprintkは効いているように見えます。
    旧旧<earlyprintk無し>
    Starting kernel …

    console [ttySC4] enabled, bootconsole disabled
    sh-sci.5: ttySC5 at MMIO 0xe8009800 (irq = 243) is a scif
    sh-sci.6: ttySC6 at MMIO 0xe800a000 (irq = 247) is a scif
    sh-sci.7: ttySC7 at MMIO 0xe800a800 (irq = 251) is a scif
    rspi rspi.0: master is unqueued, this is deprecated
    rspi rspi.0: probed
    rspi rspi.1: master is unqueued, this is deprecated
    rspi rspi.1: probed
    rspi rspi.2: master is unqueued, this is deprecated
    rspi rspi.2: probed
    rspi rspi.3: master is unqueued, this is deprecated
    rspi rspi.3: probed
    rspi rspi.4: master is unqueued, this is deprecated
    rspi rspi.4: probed
    Info : OTP bit = 1 (CR1 = 0xff, SR1 = 0x00)

    旧旧<earlyprintk有り>
    Starting kernel ...

    Booting Linux on physical CPU 0x0
    Linux version 3.8.13-aprza0a-1.0 (ampere@ampere-Ubuntu12) (gcc version 4.7.3 20130102 (prerelease) (crosstool-NG linaro-1.13.1-4.7-2013.01-20130125 - Linaro GCC 2013.01) ) #13 PREEMPT Tue Jul 4 14:49:30 JST 2017
    CPU: ARMv7 Processor [413fc090] revision 0 (ARMv7), cr=18c53c7d
    CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
    Machine: aprza0a, model: APRZA0A
    debug: ignoring loglevel setting.
    Memory policy: ECC disabled, Data cache writeback
    On node 0 totalpages: 8192
    free_area_init_node: node 0, pgdat c0553e2c, node_mem_map c0582000
    Normal zone: 64 pages used for memmap
    Normal zone: 0 pages reserved
    Normal zone: 8128 pages, LIFO batch:0
    bootconsole [early_ttySC4] enabled
    pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768
    pcpu-alloc: [0] 0
    Built 1 zonelists in Zone order, mobility grouping on. Total pages: 8128
    Kernel command line: console=ttySC4,115200 root=/dev/sda1 rw rootdelay=3 ignore_loglevel earlyprintk=sh-sci.4,115200
    PID hash table entries: 128 (order: -3, 512 bytes)
    Dentry cache hash table entries: 4096 (order: 2, 16384 bytes)
    Inode-cache hash table entries: 2048 (order: 1, 8192 bytes)
    __ex_table already sorted, skipping sort
    Memory: 32MB = 32MB total
    Memory: 26780k/26780k available, 5988k reserved, 0K highmem
    Virtual kernel memory layout:
    vector : 0xffff0000 - 0xffff1000 ( 4 kB)
    fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB)
    vmalloc : 0xc2800000 - 0xff000000 ( 968 MB)
    lowmem : 0xc0000000 - 0xc2000000 ( 32 MB)
    pkmap : 0xbfe00000 - 0xc0000000 ( 2 MB)
    modules : 0xbf000000 - 0xbfe00000 ( 14 MB)
    .text : 0xc0008000 - 0xc05033a0 (5101 kB)
    .init : 0xc0504000 - 0xc0526324 ( 137 kB)
    .data : 0xc0528000 - 0xc0554960 ( 179 kB)
    .bss : 0xc0554960 - 0xc0581648 ( 180 kB)

    U-bootに問題が有ると考えたのですが、間違っているでしょうか。
  • > 旧U-bootと旧kernel(earlyprintk有り)は動き、新U-bootと旧kernel(earlyprintk有り)はStarting kernelで止まって
    > 何も表示されませんでした。
          (中略)
    > U-bootに問題が有ると考えたのですが、間違っているでしょうか。

    新旧が自由に入れ替えて組み合わせられる前提での経験則のようですが、前提が正しいことを確認しましたか?
    u-boot とカーネルの間にもインタフェースがあります。単にジャンプすれば良いという訳ではありません。

    確認ですが、いっとうさんは、3.14 のカーネルを最初にコンフィギュレーションする際、3.8 のカーネルの
    コンフィギュレーションファイルを使用しませんでしたか?

    また、7/3のいっとうさんの書き込みですが、

    > なんとかU-bootの起動までは復帰することが出来ました。
    > LowLevelDebugも有効になって、Starting kernel以降に以下が表示されるようになりました。

    > I2C: ready
    > DRAM: 10 MiB
    > Using default environment
        (中略)
    > r7 : 00000000 r6 : 08008000 r5 : 209a61fc r4 : 00000000
    > r3 : 00001dd1 r2 : 208e7000 r1 : 00000dd1 r0 : 00000dd1
    > Flags: nZCv IRQs off FIQs off Mode SVC_32
    > Resetting CPU ...

    > resetting ...

    Starting kernel 以降に表示されているメッセージは、全て u-boot のコードが出しています。
    ですから、earlyprintk が有効になっているかは不明です。

    同じ日の私の書き込みで

    > 以前のカーネルは、どうされたのですか?

    これは、5/22 のいっとうさんの書き込みに出てくる 3.14 のカーネルです。
    途中で "bootconsole [earlycon0] disabled" と表示してそのままになるようですが
    それでOKです(その後、UART の端子設定を見直しているなら更にOK)。
    そのカーネルと新 u-boot を組み合わせて実行したログを見せてください。ログには、
    u-boot での操作も含めたフルのログをください。

  • いっとうです。時間が随分経ってしまい、申し訳有りません。

    何ヶ月か格闘していたのですが、もうソースの何処を改変したか分からなくなってしまい、
    改めてgitからBSPの作成を再開しました。
    過去のここのアドバイスを見ながらU-bootから作り直しをしました。U-bootはプロンプト
    が返ってきましたが、bootmでWrong Image Format for bootm commandが出てしまいます。
    以下は作ったU-bootとアルファさんの旧カーネルでの動作です(U-bootは使い回し出来ない点
    は承知しております。)

    U-Boot 2015.01-00077-g8680056-dirty (Dec 01 2017 - 15:27:30)

    I2C: ready
    DRAM: 10 MiB
    Using default environment

    In: serial
    Out: serial
    Err: serial
    SPI Flash Memory Map
    ------------------------------------
    Start Size SPI
    u-boot: 0x00000000 0x080000 0
    env: 0x00080000 0x040000 0
    DT: 0x000C0000 0x040000 0
    Kernel: 0x00100000 0x280000 0+1 (size*=2)
    rootfs: 0x00400000 0x1C00000 0+1 (size*=2)
    Net: sh_eth
    >> usb start
    (Re)start USB...
    USB0: scanning bus 0 for devices... 2 USB Device(s) found
    scanning usb for storage devices... 1 Storage Device(s) found
    => ext2load usb 0 0x0d000000 /uImage
    2827952 bytes read in 2392 ms (1.1 MiB/s)
    >>ext2load usb 0 0x0d800000 /rza1-aprza0a.dtb
    308 bytes read in 57 ms (4.9 KiB/s)
    => set bootargs ‘console=ttySC4,115200 console=tty0
    =>
    => bootm 0x0d000000 - 0x0d800000
    Wrong Image Format for bootm command
    ERROR: can't get kernel image!
    =>
    Wrong Image Format for bootm command
    ERROR: can't get kernel image!
    =>

    自分で作ったカーネル、アルファさんの旧カーネルでbootmを試しましたがどちらもWrong
    Imageで止まってしまいます。

    U-bootの問題と認識したのですが、formatを左右するような部分をboardファイルから見つけ出す
    ことが出来ず試行錯誤しております。

    今まで色々とアドバイス頂いたことが咀嚼出来ず申し訳有りませんが、何か「ここを見直したら」
    等有りましたら教えて頂けないでしょうか。
  • お世話になります。
    再度過去のアドバイスを確認して、問題はU-bootでは無くKernelにあると認識しました。
    boardファイルを追いかけます。
  • お世話になります。いっとうです。

    どうしてもエラーから抜け出せません。
    => usb start
    (Re)start USB...
    USB0: scanning bus 0 for devices... 2 USB Device(s) found
    scanning usb for storage devices... 1 Storage Device(s) found
    => ext2load usb 0 0x0d000000 /uImage
    2637008 bytes read in 2258 ms (1.1 MiB/s)
    => ext2load usb 0 0x0d800000 /r7s72100-aprza0a.dtb
    7633 bytes read in 76 ms (97.7 KiB/s)
    => set bootargs 'console=ttySC4,115200 console=tty0 ignore_loglevel root=/dev/sda1 rootwait earlyprintk'
    =>
    => bootm 0x0d000000 - 0x0d800000
    Wrong Image Format for bootm command
    ERROR: can't get kernel image!
    =>
    Wrong Image Format for bootm command
    ERROR: can't get kernel image!

    以前に教えて頂いた.configの内容チェックは以下の通りです。
    $grep -e CONFIG_DEBUG_LL -e CONFIG_EARLY_PRINTK -e CONFIG_DEBUG_R7S72100_SCIF .config
    CONFIG_DEBUG_LL=y
    CONFIG_DEBUG_R7S72100_SCIF4=y
    # CONFIG_DEBUG_LL_UART_NONE is not set
    # CONFIG_DEBUG_LL_UART_8250 is not set
    # CONFIG_DEBUG_LL_UART_PL01X is not set
    CONFIG_DEBUG_LL_INCLUDE="debug/renesas-scif.S"
    CONFIG_EARLY_PRINTK=y

    $grep -R "CONFIG_DEBUG_R7S72100_SCIF" .
    ./.config:CONFIG_DEBUG_R7S72100_SCIF4=y
    ./include/config/auto.conf:CONFIG_DEBUG_R7S72100_SCIF4=y
    ./include/generated/autoconf.h:#define CONFIG_DEBUG_R7S72100_SCIF4 1

    $make menuconfig
    $make uImage LOADADDR=0x08008000
    $make dtbs

    上記設定で何かおかしいところは有るでしょうか。
Reply
  • お世話になります。いっとうです。

    どうしてもエラーから抜け出せません。
    => usb start
    (Re)start USB...
    USB0: scanning bus 0 for devices... 2 USB Device(s) found
    scanning usb for storage devices... 1 Storage Device(s) found
    => ext2load usb 0 0x0d000000 /uImage
    2637008 bytes read in 2258 ms (1.1 MiB/s)
    => ext2load usb 0 0x0d800000 /r7s72100-aprza0a.dtb
    7633 bytes read in 76 ms (97.7 KiB/s)
    => set bootargs 'console=ttySC4,115200 console=tty0 ignore_loglevel root=/dev/sda1 rootwait earlyprintk'
    =>
    => bootm 0x0d000000 - 0x0d800000
    Wrong Image Format for bootm command
    ERROR: can't get kernel image!
    =>
    Wrong Image Format for bootm command
    ERROR: can't get kernel image!

    以前に教えて頂いた.configの内容チェックは以下の通りです。
    $grep -e CONFIG_DEBUG_LL -e CONFIG_EARLY_PRINTK -e CONFIG_DEBUG_R7S72100_SCIF .config
    CONFIG_DEBUG_LL=y
    CONFIG_DEBUG_R7S72100_SCIF4=y
    # CONFIG_DEBUG_LL_UART_NONE is not set
    # CONFIG_DEBUG_LL_UART_8250 is not set
    # CONFIG_DEBUG_LL_UART_PL01X is not set
    CONFIG_DEBUG_LL_INCLUDE="debug/renesas-scif.S"
    CONFIG_EARLY_PRINTK=y

    $grep -R "CONFIG_DEBUG_R7S72100_SCIF" .
    ./.config:CONFIG_DEBUG_R7S72100_SCIF4=y
    ./include/config/auto.conf:CONFIG_DEBUG_R7S72100_SCIF4=y
    ./include/generated/autoconf.h:#define CONFIG_DEBUG_R7S72100_SCIF4 1

    $make menuconfig
    $make uImage LOADADDR=0x08008000
    $make dtbs

    上記設定で何かおかしいところは有るでしょうか。
Children
  • いっとうさん

    アルファプロジェクトの APRZA0A のマニュアルを見る限り、外付け SDRAM は 0x0C000000~0x0DFFFFFF に
    32MB 実装されているようです。であれば、少なくとも、

    $ make menuconfig
    $ make uImage LOADADDR=0x08008000
    $ make dtbs

    指定しているアドレスがおかしいと思いませんか?

  • お世話になります。

    LOADADDRを理解出来ておりませんでした。申し訳有りません。
    uImageを0c008000で
    $ make uImage LOADADDR=0x0c008000
    Image Name: Linux-3.14.79-ltsi+
    Created: Mon Dec 4 20:32:25 2017
    Image Type: ARM Linux Kernel Image (uncompressed)
    Data Size: 2636944 Bytes = 2575.14 kB = 2.51 MB
    Load Address: 0c008000
    Entry Point: 0c008000
    Image arch/arm/boot/uImage is ready
    $ make dtbs

    -----------------------------------------------------------------------------------------
    => usb start
    (Re)start USB...
    USB0: scanning bus 0 for devices... 2 USB Device(s) found
    scanning usb for storage devices... 1 Storage Device(s) found
    => ext2load usb 0 0x0d000000 /uImage
    2637008 bytes read in 2258 ms (1.1 MiB/s)
    => ext2load usb 0 0x0d800000 /r7s72100-aprza0a.dtb
    7633 bytes read in 76 ms (97.7 KiB/s)
    => set bootargs 'console=ttySC4,115200 console=tty0 ignore_loglevel root=/dev/sda1 rootwait earlyprintk'
    =>
    => bootm 0x0d000000 - 0x0d800000
    Wrong Image Format for bootm command
    ERROR: can't get kernel image!
    =>
    Wrong Image Format for bootm command
    ERROR: can't get kernel image!

    SCIF4はP5_0,P5_1にアサインしています。U-bootでは指定していますが、kernelの方はP5_0,P5_1を
    どこにも使っておりません。kernelの方でSCIFのpin_assignは元のrskrza1でも記載されていなかった
    為、kernelでは以下の指定だけです。
    829 //R7S72100_SCIF(2, 0xe8008000, gic_iid(229));
    830 //R7S72100_SCIF(3, 0xe8008800, gic_iid(233)); /* Not used */
    831 R7S72100_SCIF(4, 0xe8009000, gic_iid(237)); /* Not used */
    832 //R7S72100_SCIF(5, 0xe8009800, gic_iid(241)); /* Not used */

    1707 // r7s72100_register_scif(0); /* SCIF ch0 */ /* Not used */
    1708 // r7s72100_register_scif(1); /* SCIF ch1 */ /* Not used */
    1709 // r7s72100_register_scif(2); /* SCIF ch2 */
    1710 // r7s72100_register_scif(3); /* SCIF ch3 */ /* Not used */
    1711 r7s72100_register_scif(4); /* SCIF ch4 */ /* Not used */
    1712 // r7s72100_register_scif(5); /* SCIF ch5 */ /* Not used */
    1713 // r7s72100_register_scif(6); /* SCIF ch6 */ /* Not used */
    1714 // r7s72100_register_scif(7); /* SCIF ch7 */ /* Not used */

    明日改めてU-bootも見直してみます。
  • いっとうさん
    はじめまして。Hiroです。
    当方も昨年度末、苦戦しましたのでお察しします。

    >$ make uImage LOADADDR=0x0c008000
    で、uImageを0x0c008000に読み込んでいるのに、
    >=> bootm 0x0d000000 - 0x0d800000
    では、0x0d000000からuImageを読み込もうとしていませんか。
    setenvを見直されてはいかがでしょうか。

    1年近く前の知識を絞り出していますので、とんちんかんな回答でしたら申し訳ありません。
  • お世話になります。いっとうです。

    アドバイスありがとうございます。

    LOADADDRとext2loadの処理がはっきりと分かっていないのですが、LOADADDRにて一旦RAM等にロードした後、起動の為にext2loadに再配置して、再配置したところから起動するのかなと想像しております。
    試しにext2loadをLOADADDRと同じにして実行してみました。やはり、WrongImageFormatと出て
    先に進めません。

    U-Boot 2015.01-00077-g8680056-dirty (Dec 05 2017 - 15:41:31)

    I2C: ready
    DRAM: 10 MiB
    Using default environment

    In: serial
    Out: serial
    Err: serial
    SPI Flash Memory Map
    ------------------------------------
    Start Size SPI
    u-boot: 0x00000000 0x080000 0
    env: 0x00080000 0x040000 0
    DT: 0x000C0000 0x040000 0
    Kernel: 0x00100000 0x280000 0+1 (size*=2)
    rootfs: 0x00400000 0x1C00000 0+1 (size*=2)
    Net: sh_eth
    => usb start
    (Re)start USB...
    USB0: scanning bus 0 for devices... 2 USB Device(s) found
    scanning usb for storage devices... 1 Storage Device(s) found
    => ext2load usb 0 0x0c008000 /uImage
    2637008 bytes read in 2258 ms (1.1 MiB/s)
    => ext2load usb 0 0x0d800000 /r7s72100-aprza0a.dtb
    7633 bytes read in 76 ms (97.7 KiB/s)
    => set bootargs ‘console=ttySC4,115200 console=tty0 ignore_loglevel root=/dev/sda1 rootwait earlyprintk
    =>
    => bootm 0x0c008000 - 0x0d800000
    Wrong Image Format for bootm command
    ERROR: can't get kernel image!
    =>
    Wrong Image Format for bootm command
    ERROR: can't get kernel image!

    SDRAMの初期化に失敗しているのでは?とU-bootを見直しているのですが、今のところ原因が
    見つかっていません。

    PINの初期化を再度見直してみます。何とか切り分けしたいのですが、このエラーメッセージで
    検索しても情報が得られない状況です。

    お客がRZA1を気に入っておられるので、何とかして使えるようにしたいのですが、半年
    くらい前進しなくてとても焦っています。。
  • uImage は、mkimage コマンドを使って、

    (a) 単純なメモリイメージのカーネル Image から、
    (b) Image を Z/BZ2 圧縮したカーネル zImage/bzImage から、
    (c) (b) の先頭に自己解凍用のルーチンを付加して、

    などの方法で作成され、LOADADDR は、無圧縮の(解凍された)カーネルの
    最終ロードアドレス (及び、エントリポイント) を指定します。
    # ですから、修正した LOADADDR は、正しいだろうと思います。

    2つ上の、いっとうさんの書き込みだと、

    $ make uImage LOADADDR=0x0c008000
    Image Name: Linux-3.14.79-ltsi+
    Created: Mon Dec 4 20:32:25 2017
    Image Type: ARM Linux Kernel Image (uncompressed)
    Data Size: 2636944 Bytes = 2575.14 kB = 2.51 MB
    Load Address: 0c008000
    Entry Point: 0c008000
    Image arch/arm/boot/uImage is ready

    と、uImage のサイズが 2.6MB 程度しかなので、多分、(b) か (c)、また、
    無圧縮(uncompressed) と表示されていますから、多分、(c) だろうと推測
    出来ます(RZ/A1 Linux BSP は、その形式で作成しますし)。

    ですから、

    => ext2load usb 0 0x0d000000 /uImage
    2637008 bytes read in 2258 ms (1.1 MiB/s)
    => ext2load usb 0 0x0d800000 /r7s72100-aprza0a.dtb
    7633 bytes read in 76 ms (97.7 KiB/s)
    => set bootargs 'console=ttySC4,115200 console=tty0 ignore_loglevel root=/dev/sda1 rootwait earlyprintk'
    =>
    => bootm 0x0d000000 - 0x0d800000
    Wrong Image Format for bootm command
    ERROR: can't get kernel image!

    は、本来であれば、

    自己解凍形式の uImage を 0x0d000000 にロード、DTB を 0x0d800000 にロード、
    その後、bootm で uImage の実行を開始すると、uImage 自身が圧縮を解凍しつつ、
    カーネルを最終ロードアドレスの LOADADDR に配置し直してから、エントリ
    ポイント LOADADDR にジャンプすることでカーネルの実行が始まる、

    のですが、実際には、

    自己解凍形式の uImage を 0x0d000000 にロード、DTB を 0x0d800000 にロード、
    その後、bootm がロードした uImage の先頭に付いているヘッダ情報を確認し、
    不正あるいは未サポート、と判断して「Wrong Image Format for bootm command」
    を表示しています。

    当該のメッセージは、common/bootm.c の boot_get_kernel が出力しており、
    u-boot で、CONFIG_IMAGE_FORMAT_LEGACY が未定義なコンフィギュレーションを
    するか、mkimage が不正な(u-boot が未サポートの)ファイルを作成すれば出力
    されますが、実際の所、考えにくいです。

    現状、u-boot は、内蔵 RAM で実行されますし、USB は、端子固定ですから、
    UART(SCIF) の初期化や設定を間違えない限り、何もしなくても、普通は動作しますが、
    ボードを正しく初期化出来ているとは限りません。

    以前にも申し上げましたが、
    > 出力されたエラーメッセージを素直に解釈すると、uImage が正しく作れていない、
    > (RZ/A1 の BSC が正しく初期化出来ていない、何かの領域とオーバラップしている、
    > などの理由で) USB からのロード後に壊れた/壊された、と思われますが、

    u-boot がボード(特に BSC)を正しく初期化出来ているか、確認してください。

  • いっとうさん

    現状、次の手順でブートしていると思いますが、

    => usb start
    => ext2load usb 0 0x0d000000 /uImage
    => ext2load usb 0 0x0d800000 /r7s72100-aprza0a.dtb
    => set bootargs 'console=ttySC4,115200 console=tty0 ignore_loglevel root=/dev/sda1 rootwait earlyprintk'
    => bootm 0x0d000000 - 0x0d800000

    次の手順にして、ブートしてみてください。

    => usb start
    => ext2load usb 0 0x0d000000 /uImage
    => ext2load usb 0 0x0d800000 /r7s72100-aprza0a.dtb
    => set bootargs 'console=ttySC4,115200 console=tty0 ignore_loglevel root=/dev/sda1 rootwait earlyprintk'
    => bootm start 0x0d000000 - 0x0d800000
    => bootm loados
    => fdt memory 0x0c000000 0x02000000
    => fdt chosen
    => bootm go

    どうなりますか?

  • お世話になっております。いっとうです。
    アドバイス頂いた手順で起動させたところ、bootm start 0x0d000000 - 0x0d800000のところでWrongImageFormatが出てしまいました。

    u-bootは立ち上がっているので、メモリアクセスのテストくらいは出来ると考え、md,mwコマンドにて読み書きしてみたところ、内蔵RAMはアクセスできましたが、SDRAM領域は読み値がFFFFで書込みも出来ませんでした。SDRAMの初期設定が上手く行ってないように思います。
    SDRAMに関しては、旧BSPだとu-bootのlowlevel.sにて処理しているのですが、新しいBSPはboard-aprza0a.cの方に移動していて、旧の設定を見ながら以下のように書き換えています(rskの方だとCS2を使っていますが、本ボードはCS3を使っています)。
    board_early_init_f内
    /* SDRAM */
    for(i=0;i<=15;i++)
    pfc_set_pin_function(6, i, ALT1, 0, 1); /* P6_0~15 = D0-D15 (bi dir) */
    pfc_set_pin_function(7, 1, ALT1, 0, 0); /* P7_1 = CS3 */
    pfc_set_pin_function(7, 2, ALT1, 0, 0); /* P7_2 = RAS */
    pfc_set_pin_function(7, 3, ALT1, 0, 0); /* P7_3 = CAS */
    pfc_set_pin_function(7, 4, ALT1, 0, 0); /* P7_4 = CKE */
    pfc_set_pin_function(7, 5, ALT1, 0, 0); /* P7_5 = RD/WR */
    pfc_set_pin_function(7, 6, ALT1, 0, 0); /* P7_6 = WE0/DQMLL */
    pfc_set_pin_function(7, 7, ALT1, 0, 0); /* P7_7 = WE1/DQMLU */
    for(i=9;i<=15;i++)
    pfc_set_pin_function(7, i, ALT1, 0, 0); /* P7_9~15: A1-A7 */
    for(i=0;i<=7;i++)
    pfc_set_pin_function(8, i, ALT1, 0, 0); /* P8_0~7 = A8-A15 */
    #define CS3BCR_D 0x00004C00 /* Type=SDRAM, 16-bit memory */
    #define CS3WCR_D 0x0000488A /* CAS Latency = 2 */
    #define SDCR_D 0x00000811 /* 13-bit row, 9-bit col, auto-refresh */
    #define RTCOR_D 0xA55A000F
    #define RTCSR_D 0xA55A0018
    *(u32 *)CS3BCR = CS3BCR_D;
    *(u32 *)CS3WCR = CS3WCR_D;
    *(u32 *)SDCR = SDCR_D;
    *(u32 *)RTCOR = RTCOR_D;
    *(u32 *)RTCSR = RTCSR_D;
    /* wait */
    #define REPEAT_D 0x000033F1
    for (i=0;i<REPEAT_D;i++) {
    asm("nop");
    }
    #define SDRAM_MODE_CS3 0x3FFFE040 /* CS3: CAS=2, burst write, 16bit bus */
    *(u32 *)SDRAM_MODE_CS3 = 0;


    u-boot起動後、SDRAMが有効になっていないのは、問題があるということで良いでしょうか。
  • お世話になります。いっとうです。

    boardファイルのSDRAM初期化の部分を新BSPに倣ってburst writeで設定していたのですが、これをsingle write に変更したところ、SDRAMが有効になりました。旧BSPではsingle writeとなっていました。

    // #define SDRAM_MODE_CS2 0x3FFFD040 /* CS2: CAS=2, burst write, 16bit bus */
    #define SDRAM_MODE_CS3 0x3FFFE440 /* CS3: CAS=2, single write, 16bit bus */
    // *(u32 *)SDRAM_MODE_CS2 = 0;
    *(u32 *)SDRAM_MODE_CS3 = 0;

    アドバイス頂いた方法で起動を確かめました。今までの手順では途中でPANICになりますが、新しく教えて頂いた方法だとLoginまでたどり着きました。
    FDTで色々調べているのですが、dtbファイルの問題ということでしょうか。
    <旧手順>
    => usb start
    (Re)start USB...
    USB0: scanning bus 0 for devices... 2 USB Device(s) found
    scanning usb for storage devices... 1 Storage Device(s) found
    => ext2load usb 0 0x0d000000 /uImage
    2637008 bytes read in 2258 ms (1.1 MiB/s)
    => ext2load usb 0 0x0d800000 /r7s72100-aprza0a.dtb
    7633 bytes read in 76 ms (97.7 KiB/s)
    => set bootargs 'console=ttySC4,115200 console=tty0 ignore_loglevel root=/dev/sda1 rootwait earlyprintk'
    => bootm 0x0d000000 - 0x0d800000
    ## Booting kernel from Legacy Image at 0d000000 ...
    Image Name: Linux-3.14.79-ltsi+
    Created: 2017-12-04 11:32:25 UTC
    Image Type: ARM Linux Kernel Image (uncompressed)
    Data Size: 2636944 Bytes = 2.5 MiB
    Load Address: 0c008000
    Entry Point: 0c008000
    Verifying Checksum ... OK
    ## Flattened Device Tree blob at 0d800000
    Booting using the fdt blob at 0xd800000
    Loading Kernel Image ... OK
    Loading Device Tree to 208e7000, end 208ebdd0 ... OK

    Starting kernel ...

    [ 0.000000] Booting Linux on physical CPU 0x0
    [ 0.000000] Linux version 3.14.79-ltsi+ (ampere@ampere-Ubuntu16) (gcc version 5.3.1 20160113 (Linaro GCC 5.3-2016.02) ) #12 Mon Dec 4 17:07:34 JST 2017
    [ 0.000000] CPU: ARMv7 Processor [413fc090] revision 0 (ARMv7), cr=18c53c7d
    [ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
    [ 0.000000] Machine model: APRZA0A
    [ 0.000000] debug: ignoring loglevel setting.
    [ 0.000000] bootconsole [earlycon0] enabled
    [ 0.000000] Memory policy: Data cache writeback
    [ 0.000000] On node 0 totalpages: 2560
    [ 0.000000] free_area_init_node: node 0, pgdat c04f8380, node_mem_map d49d9000
    [ 0.000000] Normal zone: 20 pages used for memmap
    [ 0.000000] Normal zone: 0 pages reserved
    [ 0.000000] Normal zone: 2560 pages, LIFO batch:0
    [ 0.000000] Unable to handle kernel paging request at virtual address d4c59000
    [ 0.000000] pgd = c0004000
    [ 0.000000] [d4c59000] *pgd=00000000
    [ 0.000000] Internal error: Oops: 5 [#1] ARM
    [ 0.000000] Modules linked in:
    [ 0.000000] CPU: 0 PID: 0 Comm: swapper Not tainted 3.14.79-ltsi+ #12
    [ 0.000000] task: c04d8760 ti: c04ce000 task.ti: c04ce000
    [ 0.000000] PC is at memmap_init_zone+0x50/0xf0
    [ 0.000000] LR is at free_area_init_node+0x29c/0x310
    [ 0.000000] pc : [<c04c1250>] lr : [<c04afb08>] psr: 800001d3
    [ 0.000000] sp : c04cfea0 ip : 00000000 fp : c04f8380
    [ 0.000000] r10: c0515350 r9 : 00000000 r8 : c04d8480
    [ 0.000000] r7 : 00000000 r6 : 00020a00 r5 : c04f8380 r4 : 00020000
    [ 0.000000] r3 : d49d9000 r2 : 000209ff r1 : 00014000 r0 : 00000a00
    [ 0.000000] Flags: Nzcv IRQs off FIQs off Mode SVC_32 ISA ARM Segment kernel
    [ 0.000000] Control: 18c53c7d Table: 0c004059 DAC: 00000015
    [ 0.000000] Process swapper (pid: 0, stack limit = 0xc04ce230)
    [ 0.000000] Stack: (0xc04cfea0 to 0xc04d0000)
    [ 0.000000] fea0: 00020000 c04f8600 c04f8380 00000000 00000a00 c04cff10 00000a00 000009e
    c
    [ 0.000000] fec0: 00020a00 c04afb08 00000000 209f9000 00001000 c04cff08 00000000 c04ca4f8
    [ 0.000000] fee0: ffe00000 00020a00 00020000 00020a00 c04cff08 c05159bc ffe00000 fffee000
    [ 0.000000] ff00: 20a00000 c04a9ef4 00000a00 00000000 00000000 00000000 00000000 d49f9000
    [ 0.000000] ff20: c04da648 c04ff068 c04da668 c04ab6bc 00000000 0000c000 0000c500 c04c2608
    [ 0.000000] ff40: c0000000 c0500000 ffff1000 000209ff 00001000 00000007 c04c4550 c0008000
    [ 0.000000] ff60: c04c2608 c0527383 c04feff8 c04a5813 c041cf5f 80000200 c04dc284 c04a8b94
    [ 0.000000] ff80: 00000000 18c53c7d 413fc090 00000000 00000000 c03654fc c041b93a c04fedc0
    [ 0.000000] ffa0: 00000001 c04d6000 ffffffff 0c004059 413fc090 00000000 00000000 c04a67a8
    [ 0.000000] ffc0: 00000000 00000000 00000000 00000000 00000000 c04c3720 00000000 18c53c7d
    [ 0.000000] ffe0: c04d6040 c04c371c c04d987c 0c004059 413fc090 0c008070 00000000 00000000
    [ 0.000000] [<c04c1250>] (memmap_init_zone) from [<c04afb08>] (free_area_init_node+0x29c/0x310)
    [ 0.000000] [<c04afb08>] (free_area_init_node) from [<c04a9ef4>] (bootmem_init+0x108/0x13c)
    [ 0.000000] [<c04a9ef4>] (bootmem_init) from [<c04ab6bc>] (paging_init+0x75c/0x7f8)
    [ 0.000000] [<c04ab6bc>] (paging_init) from [<c04a8b94>] (setup_arch+0x3f0/0x740)
    [ 0.000000] [<c04a8b94>] (setup_arch) from [<c04a67a8>] (start_kernel+0x68/0x330)
    [ 0.000000] [<c04a67a8>] (start_kernel) from [<0c008070>] (0xc008070)
    [ 0.000000] Code: e1a01621 e1811a03 e59a3000 e0441001 (e7932281)
    [ 0.000000] ---[ end trace 3406ff24bd97382e ]---
    [ 0.000000] Kernel panic - not syncing: Attempted to kill the idle task!
    -----------------------------------------------------------------------------------------
    <新手順>
    => usb start
    (Re)start USB...
    USB0: scanning bus 0 for devices... 2 USB Device(s) found
    scanning usb for storage devices... 1 Storage Device(s) found
    => ext2load usb 0 0x0d000000 /uImage
    2637008 bytes read in 2258 ms (1.1 MiB/s)
    => ext2load usb 0 0x0d800000 /r7s72100-aprza0a.dtb
    7633 bytes read in 76 ms (97.7 KiB/s)
    => set bootargs 'console=ttySC4,115200 console=tty0 ignore_loglevel root=/dev/sda1 rootwait earlyprintk'
    => bootm start 0x0d000000 - 0x0d800000
    ## Booting kernel from Legacy Image at 0d000000 ...
    Image Name: Linux-3.14.79-ltsi+
    Created: 2017-12-04 11:32:25 UTC
    Image Type: ARM Linux Kernel Image (uncompressed)
    Data Size: 2636944 Bytes = 2.5 MiB
    Load Address: 0c008000
    Entry Point: 0c008000
    Verifying Checksum ... OK
    ## Flattened Device Tree blob at 0d800000
    Booting using the fdt blob at 0xd800000
    => bootm loados
    Loading Kernel Image ... OK
    => fdt memory 0x0c000000 0x02000000
    => fdt chosen
    => bootm go

    Starting kernel ...

    [ 0.000000] Booting Linux on physical CPU 0x0
    [ 0.000000] Linux version 3.14.79-ltsi+ (ampere@ampere-Ubuntu16) (gcc version 5.3.1 20160113 (Linaro GCC 5.3-2016.02) ) #12 Mon Dec 4 17:07:34 JST 2017
    [ 0.000000] CPU: ARMv7 Processor [413fc090] revision 0 (ARMv7), cr=18c53c7d
    [ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
    [ 0.000000] Machine model: APRZA0A
    [ 0.000000] debug: ignoring loglevel setting.
    [ 0.000000] bootconsole [earlycon0] enabled
    [ 0.000000] Memory policy: Data cache writeback
    [ 0.000000] On node 0 totalpages: 8192
    [ 0.000000] free_area_init_node: node 0, pgdat c04f8380, node_mem_map c1fb9000
    [ 0.000000] Normal zone: 64 pages used for memmap
    [ 0.000000] Normal zone: 0 pages reserved
    [ 0.000000] Normal zone: 8192 pages, LIFO batch:0
    [ 0.000000] CPU: All CPU(s) started in SVC mode.
    [ 0.000000] pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768
    [ 0.000000] pcpu-alloc: [0] 0
    [ 0.000000] Built 1 zonelists in Zone order, mobility grouping off. Total pages: 8128
    [ 0.000000] Kernel command line: console=ttySC4,115200 console=tty0 ignore_loglevel root=/dev/sda1 rootwait earlyprintk
    [ 0.000000] PID hash table entries: 128 (order: -3, 512 bytes)
    [ 0.000000] Dentry cache hash table entries: 4096 (order: 2, 16384 bytes)
    [ 0.000000] Inode-cache hash table entries: 2048 (order: 1, 8192 bytes)
    [ 0.000000] Memory: 27140K/32768K available (3585K kernel code, 195K rwdata, 1140K rodata, 153K init, 161K bss, 5628K reserved)
    [ 0.000000] Virtual kernel memory layout:
    [ 0.000000] vector : 0xffff0000 - 0xffff1000 ( 4 kB)
    [ 0.000000] fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB)
    [ 0.000000] vmalloc : 0xc2800000 - 0xff000000 ( 968 MB)
    [ 0.000000] lowmem : 0xc0000000 - 0xc2000000 ( 32 MB)
    [ 0.000000] modules : 0xbf000000 - 0xc0000000 ( 16 MB)
    [ 0.000000] .text : 0xc0008000 - 0xc04a5814 (4727 kB)
    [ 0.000000] .init : 0xc04a6000 - 0xc04cc5f4 ( 154 kB)
    [ 0.000000] .data : 0xc04ce000 - 0xc04fed98 ( 196 kB)
    [ 0.000000] .bss : 0xc04fed98 - 0xc0527384 ( 162 kB)
    [ 0.000000] NR_IRQS:16 nr_irqs:16 16
    [ 0.000000] sched_clock: 32 bits at 128 Hz, resolution 7812500ns, wraps every 16777216000000000ns
    [ 0.000000] Console: colour dummy device 80x30
    [ 0.000000] console [tty0] enabled
    [ 0.000000] bootconsole [earlycon0] disabled
    [ 0.000000] Booting Linux on physical CPU 0x0
    [ 0.000000] Linux version 3.14.79-ltsi+ (ampere@ampere-Ubuntu16) (gcc version 5.3.1 20160113 (Linaro GCC 5.3-2016.02) ) #12 Mon Dec 4 17:07:34 JST 2017
    [ 0.000000] CPU: ARMv7 Processor [413fc090] revision 0 (ARMv7), cr=18c53c7d
    [ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
    [ 0.000000] Machine model: APRZA0A
    [ 0.000000] debug: ignoring loglevel setting.
    [ 0.000000] bootconsole [earlycon0] enabled
    [ 0.000000] Memory policy: Data cache writeback
    [ 0.000000] On node 0 totalpages: 8192
    [ 0.000000] free_area_init_node: node 0, pgdat c04f8380, node_mem_map c1fb9000
    [ 0.000000] Normal zone: 64 pages used for memmap
    [ 0.000000] Normal zone: 0 pages reserved
    [ 0.000000] Normal zone: 8192 pages, LIFO batch:0
    [ 0.000000] CPU: All CPU(s) started in SVC mode.
    [ 0.000000] pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768
    [ 0.000000] pcpu-alloc: [0] 0
    [ 0.000000] Built 1 zonelists in Zone order, mobility grouping off. Total pages: 8128
    [ 0.000000] Kernel command line: console=ttySC4,115200 console=tty0 ignore_loglevel root=/dev/sda1 rootwait earlyprintk
    [ 0.000000] PID hash table entries: 128 (order: -3, 512 bytes)
    [ 0.000000] Dentry cache hash table entries: 4096 (order: 2, 16384 bytes)
    [ 0.000000] Inode-cache hash table entries: 2048 (order: 1, 8192 bytes)
    [ 0.000000] Memory: 27140K/32768K available (3585K kernel code, 195K rwdata, 1140K rodata, 153K init, 161K bss, 5628K reserved)
    [ 0.000000] Virtual kernel memory layout:
    [ 0.000000] vector : 0xffff0000 - 0xffff1000 ( 4 kB)
    [ 0.000000] fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB)
    [ 0.000000] vmalloc : 0xc2800000 - 0xff000000 ( 968 MB)
    [ 0.000000] lowmem : 0xc0000000 - 0xc2000000 ( 32 MB)
    [ 0.000000] modules : 0xbf000000 - 0xc0000000 ( 16 MB)
    [ 0.000000] .text : 0xc0008000 - 0xc04a5814 (4727 kB)
    [ 0.000000] .init : 0xc04a6000 - 0xc04cc5f4 ( 154 kB)
    [ 0.000000] .data : 0xc04ce000 - 0xc04fed98 ( 196 kB)
    [ 0.000000] .bss : 0xc04fed98 - 0xc0527384 ( 162 kB)
    [ 0.000000] NR_IRQS:16 nr_irqs:16 16
    [ 0.000000] sched_clock: 32 bits at 128 Hz, resolution 7812500ns, wraps every 16777216000000000ns
    [ 0.000000] Console: colour dummy device 80x30
    [ 0.000000] console [tty0] enabled
    [ 0.000000] bootconsole [earlycon0] disabled
    [ 0.000000] Calibrating delay loop (skipped) preset value.. 266.09 BogoMIPS (lpj=1041666)
    [ 0.000000] pid_max: default: 32768 minimum: 301
    [ 0.000000] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
    [ 0.000000] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
    [ 0.000000] CPU: Testing write buffer coherency: ok
    [ 0.000000] Setting up static identity map for 0xc369af0 - 0xc369b48
    [ 0.000000] devtmpfs: initialized
    [ 0.000000] VFP support v0.3: implementor 41 architecture 3 part 30 variant 9 rev 4
    [ 0.000000] pinctrl core: initialized pinctrl subsystem
    [ 0.000000] NET: Registered protocol family 16
    [ 0.000000] DMA: preallocated 256 KiB pool for atomic coherent allocations
    [ 0.000000] L310 cache controller enabled
    [ 0.000000] l2x0: 8 ways, CACHE_ID 0x410000c8, AUX_CTRL 0x42020000, Cache size: 128 kB
    [ 0.000000] No ATAGs?
    [ 0.000000] hw-breakpoint: found 5 (+1 reserved) breakpoint and 1 watchpoint registers.
    [ 0.000000] hw-breakpoint: maximum watchpoint size is 4 bytes.
    [ 0.000000] bio: create slab <bio-0> at 0
    [ 0.000000] SCSI subsystem initialized
    [ 0.000000] usbcore: registered new interface driver usbfs
    [ 0.000000] usbcore: registered new interface driver hub
    [ 0.000000] usbcore: registered new device driver usb
    [ 0.000000] sh_mtu2 sh-mtu2: ch0: used for clock events
    [ 0.000000] sh_mtu2 sh-mtu2: ch0: used for periodic clock events
    [ 0.000000] Advanced Linux Sound Architecture Driver Initialized.
    [ 0.125000] NET: Registered protocol family 2
    [ 0.125000] TCP established hash table entries: 1024 (order: 0, 4096 bytes)
    [ 0.125000] TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
    [ 0.125000] TCP: Hash tables configured (established 1024 bind 1024)
    [ 0.132812] TCP: reno registered
    [ 0.132812] UDP hash table entries: 256 (order: 0, 4096 bytes)
    [ 0.132812] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
    [ 0.132812] NET: Registered protocol family 1
    [ 0.132812] RPC: Registered named UNIX socket transport module.
    [ 0.132812] RPC: Registered udp transport module.
    [ 0.132812] RPC: Registered tcp transport module.
    [ 0.132812] RPC: Registered tcp NFSv4.1 backchannel transport module.
    [ 0.148437] futex hash table entries: 256 (order: -1, 3072 bytes)
    [ 0.156250] squashfs: version 4.0 (2009/01/31) Phillip Lougher
    [ 0.156250] NFS: Registering the id_resolver key type
    [ 0.156250] Key type id_resolver registered
    [ 0.156250] Key type id_legacy registered
    [ 0.156250] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
    [ 0.156250] jffs2: version 2.2. (NAND) (SUMMARY) c 2001-2006 Red Hat, Inc.
    [ 0.156250] msgmni has been set to 53
    [ 0.164062] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 252)
    [ 0.164062] io scheduler noop registered (default)
    [ 0.164062] io scheduler deadline registered
    [ 0.164062] io scheduler cfq registered
    [ 0.171875] vdc5fb vdc5fb.0: vdc5fb.0: [lcdkitb01] dotclock 33.325 MHz, dcdr 2
    [ 0.218750]
    [ 0.218750]
    [ 0.218750]
    [ 0.218750] vdc5fb_init_graphics: You need to define at least 1 'layer' to be used as /dev/fb0
    [ 0.218750]
    [ 0.218750]
    [ 0.437500] Console: switching to colour frame buffer device 100x30
    [ 0.460937] graphics fb0: registered vdc5fb.0 as 800x480 @ 64 Hz, 32 bpp.
    [ 0.484375] SuperH (H)SCI(F) driver initialized
    [ 0.492187] sh-sci.4: ttySC4 at MMIO 0xe8009000 (irq = 239, base_baud = 0) is a scif
    [ 0.960937] console [ttySC4] enabled
    [ 0.984375] physmap platform flash device: 04000000 at 18000000
    [ 1.000000] Creating 1 MTD partitions on "physmap-flash.0":
    [ 1.007812] 0x000000800000-0x000004000000 : "qspi_rootfs"
    [ 1.054687] libphy: sh_mii: probed
    [ 1.062500] sh-eth r7s72100-ether eth0: Base address at 0xe8203000, 00:0c:7b:38:02:22, IRQ 359.
    [ 1.203125] r8a66597_hcd r8a66597_hcd.0: USB Host Controller
    [ 1.210937] r8a66597_hcd r8a66597_hcd.0: new USB bus registered, assigned bus number 1
    [ 1.218750] r8a66597_hcd r8a66597_hcd.0: irq 73, io base 0xe8010000
    [ 1.289062] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
    [ 1.296875] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
    [ 1.304687] usb usb1: Product: USB Host Controller
    [ 1.312500] usb usb1: Manufacturer: Linux 3.14.79-ltsi+ r8a66597_hcd
    [ 1.320312] usb usb1: SerialNumber: r8a66597_hcd
    [ 1.328125] hub 1-0:1.0: USB hub found
    [ 1.343750] hub 1-0:1.0: 1 port detected
    [ 1.476562] r8a66597_hcd r8a66597_hcd.1: USB Host Controller
    [ 1.484375] r8a66597_hcd r8a66597_hcd.1: new USB bus registered, assigned bus number 2
    [ 1.492187] r8a66597_hcd r8a66597_hcd.1: irq 74, io base 0xe8207000
    [ 1.562500] usb usb2: New USB device found, idVendor=1d6b, idProduct=0002
    [ 1.570312] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
    [ 1.578125] usb usb2: Product: USB Host Controller
    [ 1.585937] usb usb2: Manufacturer: Linux 3.14.79-ltsi+ r8a66597_hcd
    [ 1.593750] usb usb2: SerialNumber: r8a66597_hcd
    [ 1.609375] hub 2-0:1.0: USB hub found
    [ 1.617187] hub 2-0:1.0: 1 port detected
    [ 1.625000] usbcore: registered new interface driver usb-storage
    [ 1.640625] mousedev: PS/2 mouse device common for all mice
    [ 1.656250] sh-rtc sh-rtc: rtc core: registered sh as rtc0
    [ 1.664062] i2c /dev entries driver
    [ 1.679687] at24 0-0050: 128 byte 24c01 EEPROM, writable, 1 bytes/write
    [ 1.687500] i2c-riic i2c-riic.0: version 2013-04-19: 100[kbps]
    [ 1.742187] usb 1-1: new high-speed USB device number 2 using r8a66597_hcd
    [ 1.875000] sh_mobile_sdhi sh_mobile_sdhi.0: mmc0 base at 0xe804e000 clock rate 66 MHz
    [ 1.890625] usbcore: registered new interface driver usbhid
    [ 1.898437] usbhid: USB HID core driver
    [ 1.914062] sh_adc sh_adc.0: version 2013-06-12
    [ 1.937500] TCP: cubic registered
    [ 1.945312] NET: Registered protocol family 17
    [ 1.953125] Key type dns_resolver registered
    [ 1.976562] sh-rtc sh-rtc: setting system clock to 1970-01-01 00:00:00 UTC (0)
    [ 1.984375] ALSA device list:
    [ 1.992187] No soundcards found.
    [ 2.007812] Waiting for root device /dev/sda1...
    [ 2.015625] usb 1-1: New USB device found, idVendor=090c, idProduct=1000
    [ 2.023437] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
    [ 2.039062] usb 1-1: Product: Silicon-Power
    [ 2.046875] usb 1-1: Manufacturer: UFD 2.0
    [ 2.054687] usb 1-1: SerialNumber: 16006930037000000031
    [ 2.070312] usb-storage 1-1:1.0: USB Mass Storage device detected
    [ 2.085937] scsi0 : usb-storage 1-1:1.0
    [ 2.359375] mmc0: new high speed SD card at address bbec
    [ 2.367187] mmcblk0: mmc0:bbec SD02G 1.83 GiB (ro)
    [ 2.382812] mmcblk0: unknown partition table
    [ 3.328125] scsi 0:0:0:0: Direct-Access UFD 2.0 Silicon-Power8G 1100 PQ: 0 ANSI: 4
    [ 3.343750] sd 0:0:0:0: [sda] 15730688 512-byte logical blocks: (8.05 GB/7.50 GiB)
    [ 3.351562] sd 0:0:0:0: [sda] Write Protect is off
    [ 3.359375] sd 0:0:0:0: [sda] Mode Sense: 43 00 00 00
    [ 3.367187] sd 0:0:0:0: [sda] No Caching mode page found
    [ 3.375000] sd 0:0:0:0: [sda] Assuming drive cache: write through
    [ 3.390625] sd 0:0:0:0: [sda] No Caching mode page found
    [ 3.398437] sd 0:0:0:0: [sda] Assuming drive cache: write through
    [ 3.406250] sda: sda1
    [ 3.421875] sd 0:0:0:0: [sda] No Caching mode page found
    [ 3.429687] sd 0:0:0:0: [sda] Assuming drive cache: write through
    [ 3.437500] sd 0:0:0:0: [sda] Attached SCSI removable disk
    [ 3.468750] VFS: Mounted root (ext2 filesystem) readonly on device 8:1.
    [ 3.484375] devtmpfs: mounted
    [ 3.492187] Freeing unused kernel memory: 152K (c04a6000 - c04cc000)
    [ 3.843750] EXT2-fs (sda1): warning: mounting unchecked fs, running e2fsck is recommended
    [ 4.406250] random: dd: uninitialized urandom read (512 bytes read, 101 bits of entropy available)
    [ 4.757812] Console: switching to colour dummy device 80x30
    [ 5.585937] random: nonblocking pool is initialized

    Welcome to Buildroot
    buildroot login:
  • お世話になります。いっとうです。

    SDRAM設定について間違いがありました。single writeでもSDRAMは有効にならず、初期設定無しで初めて有効になります。原因は不明です。。。
    // #define SDRAM_MODE_CS2 0x3FFFD040 /* CS2: CAS=2, burst write, 16bit bus */
    // #define SDRAM_MODE_CS3 0x3FFFE440 /* CS3: CAS=2, single write, 16bit bus */
    // *(u32 *)SDRAM_MODE_CS2 = 0;
    // *(u32 *)SDRAM_MODE_CS3 = 0;
  • 良く解りませんが、仮にいっとうさんの設定値が正しいとして、元のソース

    #define SDRAM_MODE_CS2 0x3FFFD040 /* CS2: CAS=2, burst write, 16bit bus */
    #define SDRAM_MODE_CS3 0x3FFFE040 /* CS3: CAS=2, burst write, 16bit bus */
    *(u16 *)SDRAM_MODE_CS2 = 0;
    *(u16 *)SDRAM_MODE_CS3 = 0;

    と、いっとうさんが書き換えたソース、

    // #define SDRAM_MODE_CS2 0x3FFFD040 /* CS2: CAS=2, burst write, 16bit bus */
    // #define SDRAM_MODE_CS3 0x3FFFE440 /* CS3: CAS=2, single write, 16bit bus */
    // *(u32 *)SDRAM_MODE_CS2 = 0;
    // *(u32 *)SDRAM_MODE_CS3 = 0;

    何か違っていませんか?