ポーティングについて

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

 

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以前のデータを見つけることが出来ません。

  • 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 が役に立つ
    かもしれません。 

  • In reply to pecteilis:

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

    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!

    この部分、デバイスはどのような指定になるでしょうか。
  • In reply to ittou:

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

    念のため、正しい手順で再度、カーネルを起動して結果をみてください。

    1. カーネルのコマンドラインを設定する環境変数は、xargs ではなく bootargs です。
    2. USB ブートの場合、コマンドラインに rootwait などを付けた方が確実です。
    3. カーネルを、一旦、USB から 0x0c100000~ に読み込んで起動していますが、
      最終的なカーネルのロードアドレスは、0x0c008000~ の様ですから、領域が一部、
      オーバラップしています。以前の uImage は、ログに出ているように uncompressed
      (無圧縮)でしたので、u-boot がカーネルを 0x0c100000 から 0x0c008000 に
      コピーしても(移動させても)問題ありませんでしたが、今回の uImage は、
      Z圧縮された自己解凍形式ですから、自己解凍中に自身を壊してしまい、正しく
      動作しません。
    4. 現在は、DTB のサイズも(多分)小さく、0x0c000000~ でも問題無いだろうと
      思いますが、より大きなサイズが扱える場所にロードする方が好ましい。

    とりあえず、次のように、この4点を修正して試してみてください。

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

     

  • In reply to pecteilis:

    お世話になります。
    アドバイス頂いた部分を反映してみましたが、状況は変わりませんでした。
    => 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
    2757344 bytes read in 2662 ms (1010.7 KiB/s)
    => ext2load usb 0 0x0d800000 r7s72100-aprza0a.dtb
    7633 bytes read in 69 ms (107.4 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-gf5fa661-dirt
    Created: 2017-05-19 0:03:24 UTC
    Image Type: ARM Linux Kernel Image (uncompressed)
    Data Size: 2757280 Bytes = 2.6 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 0deeb000, end 0deefdd0 ... OK

    Starting kernel ...

    デバイスツリーがまずいのかと見直しているのですが、元々のボードメーカのファイルにはほとんど何も書かれておらず、とりあえず

    <ボードメーカdts>
    /dts-v1/;
    /include/ "skeleton.dtsi"
    / {
    model = "APRZA0A";
    compatible = "alphaproject,aprza0a";
    memory {
    device_type = "memory";
    reg = <0x0C000000 0x02000000>;
    };
    };

    <r7s72100から作成したdts>
    /dts-v1/;
    #include "r7s72100.dtsi"
    / {
    model = "APRZA0A";
    compatible = "renesas,aprza0a", "renesas,r7s72100";
    aliases {
    serial4 = &scif4;
    };
    chosen {
    /* Add lots of white space so we have room to overwirte in u-boot */
    bootargs = "console=ttySC4,115200 ignore_loglevel rw root=/dev/sda1 ip=dhcp\
    ";
    };
    memory {
    device_type = "memory";
    reg = <0x0C000000 0x02000000>; /* 32MB @ 0x0x08000000 */
    };
    lbsc {
    #address-cells = <1>;
    #size-cells = <1>;
    };
    };
    &extal_clk {
    clock-frequency = <12800000>;
    };
    &usb_x1_clk {
    clock-frequency = <48000000>;
    };
    &scif2 {
    status = "okay";
    };

    boardファイルはv1.3のrskrza1とボードメーカのもので中身が全然違うので、とりあえずrskrza1のものをコピーして作りましたが、どこから手を付けたら良いのか分からずの状態です。LDC周りの数値だけ書き換えました。コメントや解説の資料が無いので、何をやっているのか全然追えない状況です。同じCPUでどうしてこんなに違うのかと感じています。

    boardファイルを完全に移植しないと、一切ブートしないものでしょうか。
  • In reply to ittou:

    > アドバイス頂いた部分を反映してみましたが、状況は変わりませんでした。

    何かが修正されたから、

    > => bootm 0x0c100000 - 0x0c000000
    > Wrong Image Format for bootm command
    > ERROR: can't get kernel image!

    > => bootm 0x0d000000 - 0x0d800000
    > ## Booting kernel from Legacy Image at 0d000000 ...
    (中略)
    > Starting kernel ...

    に変わったのだと考えられないと、暗闇の中を手探りで進むようなことも少なくない
    組み込みソフトのデバッグは、かなり厳しいと思いますよ。(笑)

    いっとうさんは、最初の書き込みで、

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

    とおっしゃっていましたが、今回、そこにたどり着いたということです。

    > boardファイルを完全に移植しないと、一切ブートしないものでしょうか。

    いっとうさんが、カーネルの Early Low Level Debugging 機能を正しく有効にした
    うえで、カーネルコマンドラインに earlyprintk を指定しているのであれば、
    この時点で、カーネルの起動メッセージ程度は、表示されるはずです。
    何も表示されないのは、Early Low Level Debugging 機能を有効にする作業にミスが
    あったのではないか、と考えられます。

    次のことを試して頂けますか?
    board ファイルの修正は、起動メッセージが表示出来てからにしましょう。

     (1) カーネルをビルドしたディレクトリの先頭で、

    $ grep -e CONFIG_DEBUG_LL -e CONFIG_EARLY_PRINTK \
    -e CONFIG_DEBUG_R7S72100_SCIF .config

    (2) カーネルのソースがあるディレクトリの先頭で、

    $ grep CONFIG_DEBUG_R7S72100_SCIF `find . -iname "KConfig*"`

    > デバイスツリーがまずいのかと見直しているのですが、

    デバイスツリーですが、現時点では、ご提示の <r7s72100から作成したdts> の内容で
    構いません。なお、上の書き込みでは確認できないので、念のためのご注意ですが、
    次のコメントにもある通り、bootargs の文字列の空白は、削除しないでください。
    /* Add lots of white space so we have room to overwirte in u-boot */

  • In reply to pecteilis:

    お世話になります。

    アドバイス頂いた点を見直して、何かしら表示されるようになりました。

    (1)grepの結果、CONFIG_EARLY_PRINTKがセットされていませんでしたので、menuconfigで該当部分を探してセットしました。結果以下の通りになりました。
    $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

    (2)grep CONFIG_DEBUG_R7S72100_SCIF `find . -iname "KConfig*"`ですが、linux-3.14以下で実行すると以下が返ってきます。
    grep: ./scripts/kconfig: ディレクトリです

    linux-3.14/archやlinux-3.14/arch/arm/mach-shmobile以下だと何も返ってきません。
    試しに再帰的に検索してみると、以下が返ってきます。
    $ grep -r "CONFIG_DEBUG_R7S72100_SCIF" .
    ./.config.old:CONFIG_DEBUG_R7S72100_SCIF4=y
    ./.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

    (1)を反映して出てきたログになります。
    => 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
    2757392 bytes read in 2662 ms (1010.7 KiB/s)
    => ext2load usb 0 0x0d800000 r7s72100-aprza0a.dtb
    7633 bytes read in 69 ms (107.4 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-gf5fa661-dirt
    Created: 2017-05-22 2:59:46 UTC
    Image Type: ARM Linux Kernel Image (uncompressed)
    Data Size: 2757328 Bytes = 2.6 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 0deeb000, end 0deefdd0 ... OK

    Starting kernel ...

    Booting Linux on physical CPU 0x0
    Linux version 3.14.79-ltsi-gf5fa661-dirty (ampere@ampere-Ubuntu16) (gcc version 4.9.4 (Buildroot 2016.08) ) #6 Mon May 22 11:59:44 JST 2017
    CPU: ARMv7 Processor [413fc090] revision 0 (ARMv7), cr=18c53c7d
    CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
    Machine model: APRZA0A
    debug: ignoring loglevel setting.
    bootconsole [earlycon0] enabled
    Memory policy: Data cache writeback
    On node 0 totalpages: 8192
    free_area_init_node: node 0, pgdat c052c0fc, node_mem_map c1fb8000
    Normal zone: 64 pages used for memmap
    Normal zone: 0 pages reserved
    Normal zone: 8192 pages, LIFO batch:0
    CPU: All CPU(s) started in SVC mode.
    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 console=tty0 ignore_loglevel root=/dev/sda1 rootwait earlyprintk
    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)
    Memory: 26940K/32768K available (3836K kernel code, 170K rwdata, 1120K rodata, 135K init, 174K bss, 5828K 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 - 0xc04df468 (4958 kB)
    .init : 0xc04e0000 - 0xc0501dac ( 136 kB)
    .data : 0xc0502000 - 0xc052cb60 ( 171 kB)
    .bss : 0xc052cb60 - 0xc05585d8 ( 175 kB)
    NR_IRQS:16 nr_irqs:16 16
    sched_clock: 32 bits at 128 Hz, resolution 7812500ns, wraps every 16777216000000000ns
    Console: colour dummy device 80x30
    console [tty0] enabled
    bootconsole [earlycon0] disabled


    またbootargs無しで起動すると、もう少し先まで進みました。

    Starting kernel ...

    Booting Linux on physical CPU 0x0
    Linux version 3.14.79-ltsi-gf5fa661-dirty (ampere@ampere-Ubuntu16) (gcc version 4.9.4 (Buildroot 2016.08) ) #6 Mon May 22 11:59:44 JST 2017
    CPU: ARMv7 Processor [413fc090] revision 0 (ARMv7), cr=18c53c7d
    CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
    Machine model: APRZA0A
    debug: ignoring loglevel setting.
    bootconsole [earlycon0] enabled
    Memory policy: Data cache writeback
    On node 0 totalpages: 8192
    free_area_init_node: node 0, pgdat c052c0fc, node_mem_map c1fb8000
    Normal zone: 64 pages used for memmap
    Normal zone: 0 pages reserved
    Normal zone: 8192 pages, LIFO batch:0
    CPU: All CPU(s) started in SVC mode.
    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.2,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)
    Memory: 26940K/32768K available (3836K kernel code, 170K rwdata, 1120K rodata, 135K init, 174K bss, 5828K 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 - 0xc04df468 (4958 kB)
    .init : 0xc04e0000 - 0xc0501dac ( 136 kB)
    .data : 0xc0502000 - 0xc052cb60 ( 171 kB)
    .bss : 0xc052cb60 - 0xc05585d8 ( 175 kB)
    NR_IRQS:16 nr_irqs:16 16
    sched_clock: 32 bits at 128 Hz, resolution 7812500ns, wraps every 16777216000000000ns
    Console: colour dummy device 80x30
    Calibrating delay loop (skipped) preset value.. 266.09 BogoMIPS (lpj=1041666)
    pid_max: default: 32768 minimum: 301
    Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
    Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
    CPU: Testing write buffer coherency: ok
    Setting up static identity map for 0xc3a2710 - 0xc3a2768
    VFP support v0.3: implementor 41 architecture 3 part 30 variant 9 rev 4
    pinctrl core: initialized pinctrl subsystem
    NET: Registered protocol family 16
    DMA: preallocated 256 KiB pool for atomic coherent allocations
    L310 cache controller enabled
    l2x0: 8 ways, CACHE_ID 0x410000c8, AUX_CTRL 0x42020000, Cache size: 128 kB
    hw-breakpoint: found 5 (+1 reserved) breakpoint and 1 watchpoint registers.
    hw-breakpoint: maximum watchpoint size is 4 bytes.
    bio: create slab <bio-0> at 0
    SCSI subsystem initialized
    usbcore: registered new interface driver usbfs
    usbcore: registered new interface driver hub
    usbcore: registered new device driver usb
    sh_mtu2 sh-mtu2: ch0: used for clock events
    sh_mtu2 sh-mtu2: ch0: used for periodic clock events
    Advanced Linux Sound Architecture Driver Initialized.
    NET: Registered protocol family 23
    NET: Registered protocol family 2
    TCP established hash table entries: 1024 (order: 0, 4096 bytes)
    TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
    TCP: Hash tables configured (established 1024 bind 1024)
    TCP: reno registered
    UDP hash table entries: 256 (order: 0, 4096 bytes)
    UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
    NET: Registered protocol family 1
    RPC: Registered named UNIX socket transport module.
    RPC: Registered udp transport module.
    RPC: Registered tcp transport module.
    RPC: Registered tcp NFSv4.1 backchannel transport module.
    futex hash table entries: 256 (order: -1, 3072 bytes)
    NFS: Registering the id_resolver key type
    Key type id_resolver registered
    Key type id_legacy registered
    nfs4filelayout_init: NFSv4 File Layout Driver Registering...
    fuse init (API version 7.22)
    msgmni has been set to 52
    Block layer SCSI generic (bsg) driver version 0.4 loaded (major 252)
    io scheduler noop registered (default)
    io scheduler deadline registered
    io scheduler cfq registered
    vdc5fb vdc5fb.0: vdc5fb.0: [LCD-KIT-B01] dotclock 33.325 MHz, dcdr 2



    vdc5fb_init_graphics: You need to define at least 1 'layer' to be used as /dev/fb0


    Console: switching to colour frame buffer device 100x30
    graphics fb0: registered vdc5fb.0 as 800x480 @ 64 Hz, 32 bpp.
    SuperH (H)SCI(F) driver initialized
    sh-sci.2: ttySC2 at MMIO 0xe8008000 (irq = 231, base_baud = 0) is a scif
    spibsc spibsc.0: JEDEC ID = 20BA18
    spibsc_setup: WARNING: This driver was not tested with this SPI Flash
    m25p80 spi5.0: found n25q128a13, expected s25fl512s
    m25p80 spi5.0: n25q128a13 (16384 Kbytes)
    Creating 5 MTD partitions on "m25p80":
    0x000000000000-0x000000080000 : "spibsc0_loader"
    0x000000080000-0x0000000c0000 : "spibsc0_bootenv"
    0x0000000c0000-0x000000100000 : "spibsc0_dtbs"
    0x000000100000-0x000000500000 : "spibsc0_kernel"
    0x000000500000-0x000001000000 : "spibsc0_rootfs"
    spibsc spibsc.0: probed
    CAN device driver interface
    libphy: sh_mii: probed
    sh-eth r7s72100-ether eth0: 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: 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.14.79-ltsi-gf5fa661-dirty r8a66597_hcd
    usb usb1: SerialNumber: r8a66597_hcd
    hub 1-0:1.0: USB hub found
    hub 1-0:1.0: 1 port detected
    r8a66597_hcd r8a66597_hcd.1: USB Host Controller
    r8a66597_hcd r8a66597_hcd.1: new USB bus registered, assigned bus number 2
    r8a66597_hcd r8a66597_hcd.1: irq 74, io base 0xe8207000
    usb usb2: New USB device found, idVendor=1d6b, idProduct=0002
    usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
    usb usb2: Product: USB Host Controller
    usb usb2: Manufacturer: Linux 3.14.79-ltsi-gf5fa661-dirty r8a66597_hcd
    usb usb2: SerialNumber: r8a66597_hcd
    hub 2-0:1.0: USB hub found
    hub 2-0:1.0: 1 port detected
    usbcore: registered new interface driver usb-storage
    mousedev: PS/2 mouse device common for all mice
    i2c /dev entries driver
    i2c-riic i2c-riic.0: version 2013-04-19: 100[kbps]
    at24 3-0050: 2048 byte at24 EEPROM, writable, 16 bytes/write
    i2c-riic i2c-riic.3: version 2013-04-19: 100[kbps]
    usb 1-1: new high-speed USB device number 2 using r8a66597_hcd
    sh_mobile_sdhi sh_mobile_sdhi.0: mmc0 base at 0xe804e000 clock rate 66 MHz
    usbcore: registered new interface driver usbhid
    usbhid: USB HID core driver
    sh_adc sh_adc.0: version 2013-06-12
    TCP: cubic registered
    NET: Registered protocol family 17
    can: controller area network core (rev 20120528 abi 9)
    NET: Registered protocol family 29
    can: raw protocol (rev 20120528)
    can: broadcast manager protocol (rev 20120528 t)
    can: netlink gateway (rev 20130117) max_hops=1
    Key type dns_resolver registered
    bootconsole [earlycon0] disabled



    旧カーネルのログと比較すると、USBストレージとI2Cの表示が減っているものの、明確なエラーを見つけられていません。I2CのEEPROMのサイズが違っているようなので、比較しながら直していこうと思います(Configには設定が無いようです)。
    旧:at24 0-0050: 128 byte 24c01 EEPROM, writable, 1 bytes/write
    新:at24 3-0050: 2048 byte at24 EEPROM, writable, 16 bytes/write
  • In reply to ittou:

    > アドバイス頂いた点を見直して、何かしら表示されるようになりました。

    earlyprintk が有効になったようですから、board ファイルの修正を始めましょう。

    > => bootm 0x0d000000 - 0x0d800000
    > ## Booting kernel from Legacy Image at 0d000000 ...
        (略)
    > Starting kernel ...
    >
    > Booting Linux on physical CPU 0x0
        (略)
    > Kernel command line: console=ttySC4,115200 root=/dev/sda1 rw rootdelay=3 ignore_loglevel earlyprintk=sh-sci.2,115200
        (略)
    > bootconsole [earlycon0] disabled

    bootargs 指定時、起動メッセージがここで途切れてしまうのは、bootargs で指定した
    ttySC4 のドライバが正しく初期化できていないからです。

    「BSP Porting Guide」の「13. Kernel: Editing Your Board File」に従って、
    最初に board ファイル(仮に board-aprza0a.c とします) を作成してください。
    RSKRZA1 ボードは、ttySC2 をコンソールにしていますから、これを ttySC4 に
    変更します。次の2か所を修正します。
    # 行番号は、Github の最新のソースのものです。

    ----
      1159 /* BOARD: To save on RAM usage, we are only declaring the SCIF
      1160           channels we plan on using. Modify if you plan on
      1161           using other channels */
      1162 //R7S72100_SCIF(0, 0xe8007000, gic_iid(221));   /* Not used */
      1163 //R7S72100_SCIF(1, 0xe8007800, gic_iid(225));   /* Not used */
    - 1164 R7S72100_SCIF(2, 0xe8008000, gic_iid(229));
    +      //R7S72100_SCIF(2, 0xe8008000, gic_iid(229));
      1165 //R7S72100_SCIF(3, 0xe8008800, gic_iid(233));   /* Not used */
    - 1166 //R7S72100_SCIF(4, 0xe8009000, gic_iid(237));   /* Not used */
    +      R7S72100_SCIF(4, 0xe8009000, gic_iid(237));     /* Not used */
      1167 //R7S72100_SCIF(5, 0xe8009800, gic_iid(241));   /* Not used */

    ----
      1879 static void __init rskrza1_add_standard_devices(void)
      1880 {
        (略)
      2041
      2042 //      r7s72100_register_scif(0);      /* SCIF ch0 */ /* Not used */
      2043 //      r7s72100_register_scif(1);      /* SCIF ch1 */ /* Not used */
    - 2044         r7s72100_register_scif(2);      /* SCIF ch2 */
    +      //      r7s72100_register_scif(2);      /* SCIF ch2 */
      2045 //      r7s72100_register_scif(3);      /* SCIF ch3 */ /* Not used */
    - 2046 //      r7s72100_register_scif(4);      /* SCIF ch4 */ /* Not used */
    +              r7s72100_register_scif(4);      /* SCIF ch4 */ /* Not used */
      2047 //      r7s72100_register_scif(5);      /* SCIF ch5 */ /* Not used */
      2048 //      r7s72100_register_scif(6);      /* SCIF ch6 */ /* Not used */
      2049 //      r7s72100_register_scif(7);      /* SCIF ch7 */ /* Not used */
      2050
        (略)
      2060 }

    私は、APRZA0A の場合、SCIF のチャネル 4 の信号 TXD4 や RXD4 がどの兼用端子に
    割り当てられているか知りません。兼用端子の設定は、u-boot が行ったものを
    引き継ぐので、上の修正だけで ttySC4 が有効となり、引き続き、起動メッセージが
    表示されるはずですが、board-aprza0a.c の他の場所で、その兼用端子を他の用途に
    使用してしまうと、表示出来なくなります。

    r7s72100_pfc_pin_assign 関数が、兼用端子の設定を行う関数ですから、そうした
    ことが無いようにしてください。また、もし、この時点で、全ての兼用端子の設定を
    見直して正しく修正できるなら、直してください。