ひでみのアイデア帳

くだらないことなんだけど、忘れないために・・・

DeviceTree

ZedBoard用のlinaro最新版が出来上がったけど、肝心なDeviceTreeであたふたしている。

linaroで作り上げたDTBファイルを見てみると、アドレスとか全然、合っていない。

ん?

って、感じです。

ほかも、ADIのADV7511周辺のDTSファイルを見たけど、ちゃんと書けてないような感じだし。

今日、最新版で立ち上げられるかと思ったけど、どうも難しそう。

ーーーー以下、起動ログーーーー

zynq-uboot> boot

Device: zynq_sdhci

Manufacturer ID: 27

OEM: 5048

Name: SD04G

Tran Speed: 50000000

Rd Block Len: 512

SD version 2.0

High Capacity: Yes

Capacity: 3.7 GiB

Bus Width: 4-bit

reading autorun.scr

Unable to read file autorun.scr

Copying Linux from SD to RAM...

Device: zynq_sdhci

Manufacturer ID: 27

OEM: 5048

Name: SD04G

Tran Speed: 50000000

Rd Block Len: 512

SD version 2.0

High Capacity: Yes

Capacity: 3.7 GiB

Bus Width: 4-bit

reading uImage

3213696 bytes read in 439 ms (7 MiB/s)

reading devicetree.dtb

11953 bytes read in 19 ms (614.3 KiB/s)

Booting kernel from Legacy Image at 000079c0 ...

   Image Name:   Linux-3.10.0-xilinx

   Image Type:   ARM Linux Kernel Image (uncompressed)

   Data Size:    3213632 Bytes = 3.1 MiB

   Load Address: 00008000

   Entry Point:  00008000

   Verifying Checksum ... OK

Flattened Device Tree blob at 02a00000

   Booting using the fdt blob at 0x02a00000

   Loading Kernel Image ... OK

OK

   Loading Device Tree to 1fb60000, end 1fb65eb0 ... OK

Unable to update property /amba@0/ps7-ethernet@e000b000:mac-address, err=FDT_ERR_NOTFOUND

Unable to update property /amba@0/ps7-ethernet@e000b000:local-mac-address, err=FDT_ERR_NOTFOUND

Starting kernel ...

Uncompressing Linux... done, booting the kernel.

Booting Linux on physical CPU 0x0

Linux version 3.10.0-xilinx (hidemi@saturn) (gcc version 4.8.1 (GCC) ) #1 SMP PREEMPT Tue Oct 8 01:17:26 JST 2013

CPU: ARMv7 Processor [413fc090] revision 0 (ARMv7), cr=18c5387d

CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache

Machine: Xilinx Zynq Platform, model: ZedBoard

bootconsole [earlycon0] enabled

cma: CMA: reserved 16 MiB at 1e800000

Memory policy: ECC disabled, Data cache writealloc

PERCPU: Embedded 8 pages/cpu @c0a64000 s8256 r8192 d16320 u32768

Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 130048

Kernel command line: console=ttyPS0,115200 root=/dev/mmcblk0p2 ro earlyprintk

PID hash table entries: 2048 (order: 1, 8192 bytes)

Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)

Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)

Memory: 512MB = 512MB total

Memory: 496720k/496720k available, 27568k reserved, 0K highmem

Virtual kernel memory layout:

    vector  : 0xffff0000 - 0xffff1000   (   4 kB)

    fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)

    vmalloc : 0xe0800000 - 0xff000000   ( 488 MB)

    lowmem  : 0xc0000000 - 0xe0000000   ( 512 MB)

    pkmap   : 0xbfe00000 - 0xc0000000   (   2 MB)

    modules : 0xbf000000 - 0xbfe00000   (  14 MB)

      .text : 0xc0008000 - 0xc05bf548   (5854 kB)

      .init : 0xc05c0000 - 0xc05ec040   ( 177 kB)

      .data : 0xc05ee000 - 0xc062d7e0   ( 254 kB)

       .bss : 0xc062d7e0 - 0xc065adb4   ( 182 kB)

Preemptible hierarchical RCU implementation.

    Dump stacks of tasks blocking RCU-preempt GP.

    RCU restricting CPUs from NR_CPUS=4 to nr_cpu_ids=2.

NR_IRQS:16 nr_irqs:16 16

ps7-slcr mapped to e0802000

smp_twd: clock not found -2

ERROR: timer input clock not found

------------[ cut here ]------------

Kernel BUG at c05d8ed0 [verbose debug info unavailable]

Internal error: Oops - BUG: 0 [#1] PREEMPT SMP ARM

Modules linked in:

CPU: 0 PID: 0 Comm: swapper/0 Not tainted 3.10.0-xilinx #1

task: c05f9408 ti: c05ee000 task.ti: c05ee000

PC is at ttc_timer_init+0x54/0x384

LR is at ttc_timer_init+0x54/0x384

pc : [<c05d8ed0>]    lr : [<c05d8ed0>]    psr: 200001d3

sp : c05eff78  ip : 00000000  fp : 00000000

r10: c0653820  r9 : 413fc090  r8 : 0000002b

r7 : c0a5f56c  r6 : fffffffe  r5 : 00000001  r4 : e0804000

r3 : 00000000  r2 : 600001d3  r1 : 600001d3  r0 : 00000022

Flags: nzCv  IRQs off  FIQs off  Mode SVC_32  ISA ARM  Segment kernel

Control: 18c5387d  Table: 0000404a  DAC: 00000015

Process swapper/0 (pid: 0, stack limit = 0xc05ee238)

Stack: (0xc05eff78 to 0xc05f0000)

ff60:                                                       c0a5f56c c034bca4

ff80: c0a5f56c c05effb4 c0653854 c0a5f56c c062d800 ffffffff c05e3660 c0a61240

ffa0: 413fc090 00000000 00000000 c05d8dd0 00000000 c05e882c c05ee000 c05c3cdc

ffc0: 00000000 c05c06b8 ffffffff ffffffff c05c02e0 00000000 00000000 c05e3660

ffe0: 18c5387d c05f63f4 c05e3658 c05fa1fc 0000406a 00008074 00000000 00000000

[<c05d8ed0>] (ttc_timer_init+0x54/0x384) from [<c05d8dd0>] (clocksource_of_init+0x30/0x44)

[<c05d8dd0>] (clocksource_of_init+0x30/0x44) from [<c05c3cdc>] (time_init+0x1c/0x30)

[<c05c3cdc>] (time_init+0x1c/0x30) from [<c05c06b8>] (start_kernel+0x1b8/0x300)

[<c05c06b8>] (start_kernel+0x1b8/0x300) from [<00008074>] (0x8074)

Code: e2508000 1a000002 e59f02ec ebf90472 (e7f001f2)

---[ end trace 1b75b31a2719ed1c ]---

ーーーーここまで、起動ログーーーー

ちなみに"ERROR: timer input clock not found"は、drivers/clocksource/cadence_ttc_timer.cが出力している。

ttc=Triple Timer Counter

関数は下記でタイマーの初期化でエラーになった様子だ。

static void __init ttc_timer_init(struct device_node *timer)

今日はここで断念。