แƒœแƒแƒฌแƒ˜แƒšแƒ˜ 4: แƒฏแƒ”แƒ  แƒ™แƒ˜แƒ“แƒ”แƒ• แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก Linux RocketChip RISC-V-แƒ–แƒ”

แƒœแƒแƒฌแƒ˜แƒšแƒ˜ 4: แƒฏแƒ”แƒ  แƒ™แƒ˜แƒ“แƒ”แƒ• แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก Linux RocketChip RISC-V-แƒ–แƒ” แƒกแƒฃแƒ แƒแƒ—แƒ–แƒ”, Linux-แƒ˜แƒก แƒ‘แƒ˜แƒ แƒ—แƒ•แƒ˜ แƒ’แƒ˜แƒ’แƒ–แƒแƒ•แƒœแƒ˜แƒ— แƒ›แƒ˜แƒกแƒแƒšแƒ›แƒ”แƒ‘แƒ”แƒ‘แƒก GPIO-แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒ˜แƒ—.

RISC-V RocketChip-แƒ˜แƒก แƒฉแƒ˜แƒœแƒฃแƒ  แƒ“แƒแƒคแƒแƒ–แƒ” Cyclone IV-แƒ˜แƒ— แƒžแƒแƒ แƒขแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก แƒกแƒ˜แƒฃแƒŸแƒ”แƒขแƒ˜แƒก แƒแƒ› แƒœแƒแƒฌแƒ˜แƒšแƒจแƒ˜, แƒฉแƒ•แƒ”แƒœ แƒ™แƒ•แƒšแƒแƒ• แƒ’แƒแƒ•แƒฃแƒจแƒ•แƒ˜แƒ— Linux-แƒก แƒ“แƒ แƒแƒกแƒ”แƒ•แƒ” แƒ•แƒ˜แƒกแƒฌแƒแƒ•แƒšแƒ˜แƒ— แƒ แƒแƒ’แƒแƒ  แƒ“แƒแƒ•แƒแƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒ˜แƒ แƒแƒ— IP Core แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒ˜แƒก แƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ”แƒ แƒ˜ แƒ“แƒ แƒแƒ“แƒœแƒแƒ• แƒจแƒ”แƒ•แƒชแƒ•แƒแƒšแƒแƒ— แƒแƒฆแƒญแƒฃแƒ แƒ•แƒ˜แƒšแƒแƒ‘แƒ˜แƒก DTS แƒแƒฆแƒฌแƒ”แƒ แƒ. แƒ”แƒก แƒกแƒขแƒแƒขแƒ˜แƒ แƒแƒ แƒ˜แƒก แƒ’แƒแƒ’แƒ แƒซแƒ”แƒšแƒ”แƒ‘แƒ แƒ›แƒ”แƒกแƒแƒ›แƒ” แƒœแƒแƒฌแƒ˜แƒšแƒ˜, แƒ›แƒแƒ’แƒ แƒแƒ›, แƒกแƒแƒ™แƒ›แƒแƒแƒ“ แƒ•แƒ แƒชแƒ”แƒšแƒ˜ แƒฌแƒ˜แƒœแƒแƒกแƒ’แƒแƒœ แƒ’แƒแƒœแƒกแƒฎแƒ•แƒแƒ•แƒ”แƒ‘แƒ˜แƒ—, แƒ˜แƒก แƒกแƒแƒ™แƒ›แƒแƒแƒ“ แƒ›แƒแƒ™แƒšแƒ” แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ.

โ€ฆ แฒ˜แƒ›แƒ˜แƒขแƒแƒ› แƒ แƒแƒ› setup_smp แƒ’แƒแƒ›แƒแƒ˜แƒซแƒแƒฎแƒ”แƒ‘แƒ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ˜แƒ› แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜, แƒ—แƒฃ แƒ‘แƒ˜แƒ แƒ—แƒ•แƒ˜ แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ SMP แƒ›แƒฎแƒแƒ แƒ“แƒแƒญแƒ”แƒ แƒ˜แƒ—, แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒกแƒชแƒแƒ“แƒแƒ— แƒ›แƒ แƒแƒ•แƒแƒšแƒ‘แƒ˜แƒ แƒ—แƒ•แƒ˜แƒแƒœแƒ˜แƒก แƒ’แƒแƒ›แƒแƒ แƒ—แƒ•แƒ. แƒฃแƒกแƒ˜แƒแƒ›แƒแƒ•แƒœแƒ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ, แƒ—แƒฃ แƒ›แƒ”แƒช แƒ“แƒแƒ›แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒ“แƒฃแƒšแƒจแƒ˜ แƒแƒขแƒแƒ›แƒฃแƒ แƒแƒ‘แƒ˜แƒก แƒ›แƒฎแƒแƒ แƒ“แƒแƒญแƒ”แƒ แƒ˜แƒก แƒ“แƒแƒœแƒ”แƒ แƒ’แƒ•แƒ (แƒ›แƒแƒ›แƒ”แƒฉแƒ•แƒ”แƒœแƒ, แƒ แƒแƒ› แƒฅแƒ”แƒจแƒ˜ แƒแƒ›แƒแƒก แƒ—แƒแƒ•แƒ˜แƒกแƒ—แƒแƒ•แƒแƒ“ แƒแƒคแƒ”แƒ แƒฎแƒ”แƒ‘แƒก), แƒ›แƒแƒ’แƒ แƒแƒ› แƒ”แƒ แƒ—แƒ‘แƒ˜แƒ แƒ—แƒ•แƒ˜แƒแƒœ แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜ แƒ”แƒก แƒแƒ  แƒฃแƒœแƒ“แƒ แƒจแƒ”แƒ’แƒ•แƒ”แƒจแƒแƒšแƒแƒก.

แƒ›แƒแƒ˜แƒœแƒช แƒแƒ  แƒแƒคแƒ แƒ˜แƒœแƒ“แƒ...

[    0.000000] OF: fdt: Ignoring memory range 0x80000000 - 0x80200000
[    0.000000] Linux version 4.19.0-sifive-1+ (trosinenko@trosinenko-pc) (gcc version 8.3.0 (Buildroot 2019.02-07449-g4eddd28f99)) #1 Thu Jul 4 18:38:10 MSK 2019
[    0.000000] bootconsole [early0] enabled
[    0.000000] Initial ramdisk at: 0x(____ptrval____) (16777216 bytes)
[    0.000000] Zone ranges:
[    0.000000]   DMA32    [mem 0x0000000080200000-0x00000000bfffffff]
[    0.000000]   Normal   [mem 0x00000000c0000000-0x00000bffffffffff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000080200000-0x00000000bfffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000080200000-0x00000000bfffffff]
[    0.000000] software IO TLB: mapped [mem 0xbb1fc000-0xbf1fc000] (64MB)
[    0.000000] Unable to find "cpu" devicetree entry
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 258055
[    0.000000] Kernel command line: debug console=ttySIF0,125200 root=/dev/mmcblk0p2 loglevel=7 rootwait
[    0.000000] Dentry cache hash table entries: 131072 (order: 8, 1048576 bytes)
[    0.000000] Inode-cache hash table entries: 65536 (order: 7, 524288 bytes)
[    0.000000] Sorting __ex_table...
[    0.000000] BUG: Bad page state in process swapper  pfn:80bf7
[    0.000000] page:ffffffe03f029e08 count:0 mapcount:-65280 mapping:0000000000000000 index:0x1
[    0.000000] flags: 0x0()
[    0.000000] raw: 0000000000000000 0000000000000100 0000000000000200 0000000000000000
[    0.000000] raw: 0000000000000001 0000000000000000 00000000ffff00ff
[    0.000000] page dumped because: nonzero mapcount
[    0.000000] Modules linked in:
[    0.000000] CPU: 0 PID: 0 Comm: swapper Not tainted 4.19.0-sifive-1+ #1
[    0.000000] Call Trace:
[    0.000000] [<ffffffe00002cfde>] walk_stackframe+0x0/0xa0
[    0.000000] [<ffffffe00002d1da>] show_stack+0x2a/0x34
[    0.000000] [<ffffffe00063c898>] chachachllachachachTradeonachachach_inachachipachachachachllachachachTradeonachachachdevachachachypachachachllachachachTradeona+0x20/0x28
[    0.000000] [<ffffffe00009499c>] bad_page+0xe4/0x102
[    0.000000] [<ffffffe0000949f2>] free_pages_check_bad+0x38/0x7a
[    0.000000] [<ffffffe000094bb0>] free_pcppages_bulk+0x106/0x36c
[    0.000000] [<ffffffe0000957be>] free_unref_page_commit.isra.23+0x86/0x8e
[    0.000000] [<ffffffe0000960bc>] free_unref_page+0x44/0x58
[    0.000000] [<ffffffe0000960de>] __free_pages.part.28+0xe/0x22
[    0.000000] [<ffffffe0000056da>] __free_pages_bootmem+0x86/0x90
[    0.000000] [<ffffffe000007c46>] free_all_bootmem+0x156/0x1ba
[    0.000000] [<ffffffe0000023f8>] mem_init+0x36/0x44
[    0.000000] [<ffffffe0000007a0>] start_kernel+0x1aa/0x328
[    0.000000] [<ffffffe000000058>] _sinittext+0x58/0x5c
[    0.000000] Disabling lock debugging due to kernel taint
[    0.000000] BUG: Bad page state in process swapper  pfn:80bf9
[    0.000000] page:ffffffe03f029e78 count:0 mapcount:-65280 mapping:0000000000000000 index:0x0
[    0.000000] flags: 0x0()
[    0.000000] raw: 0000000000000000 ffffffe03f020080 ffffffe03f020080 0000000000000000
[    0.000000] raw: 0000000000000000 0000000000000000 00000000ffff00ff
[    0.000000] page dumped because: nonzero mapcount
[    0.000000] Modules linked in:
[    0.000000] CPU: 0 PID: 0 Comm: swapper Tainted: G    B             4.19.0-sifive-1+ #1
[    0.000000] Call Trace:
[    0.000000] [<ffffffe00002cfde>] walk_stackframe+0x0/0xa0
[    0.000000] [<ffffffe00002d1da>] show_stack+0x2a/0x34
[    0.000000] [<ffffffe00063c898>] chachachllachachachTradeonachachach_inachachipachachachachllachachachTradeonachachachdevachachachypachachachllachachachTradeona+0x20/0x28
[    0.000000] [<ffffffe00009499c>] bad_page+0xe4/0x102
[    0.000000] [<ffffffe0000949f2>] free_pages_check_bad+0x38/0x7a
[    0.000000] [<ffffffe0000955c6>] __free_pages_ok+0x3fe/0x430
[    0.000000] [<ffffffe0000960ea>] __free_pages.part.28+0x1a/0x22
[    0.000000] [<ffffffe0000056da>] __free_pages_bootmem+0x86/0x90
[    0.000000] [<ffffffe000007c46>] free_all_bootmem+0x156/0x1ba
[    0.000000] [<ffffffe0000023f8>] mem_init+0x36/0x44
[    0.000000] [<ffffffe0000007a0>] start_kernel+0x1aa/0x328
[    0.000000] [<ffffffe000000058>] _sinittext+0x58/0x5c
[    0.000000] BUG: Bad page state in process swapper  pfn:80bfa
[    0.000000] page:ffffffe03f029eb0 count:0 mapcount:-65280 mapping:0000000000000000 index:0x0
[    0.000000] flags: 0x0()
[    0.000000] raw: 0000000000000000 ffffffe03f0200b8 ffffffe03f0200b8 0000000000000000
[    0.000000] raw: 0000000000000000 0000000000000000 00000000ffff00ff
[    0.000000] page dumped because: nonzero mapcount
[    0.000000] Modules linked in:
[    0.000000] CPU: 0 PID: 0 Comm: swapper Tainted: G    B             4.19.0-sifive-1+ #1
[    0.000000] Call Trace:
[    0.000000] [<ffffffe00002cfde>] walk_stackframe+0x0/0xa0
[    0.000000] [<ffffffe00002d1da>] show_stack+0x2a/0x34
[    0.000000] [<ffffffe00063c898>] chachachllachachachTradeonachachach_inachachipachachachachllachachachTradeonachachachdevachachachypachachachllachachachTradeona+0x20/0x28
[    0.000000] [<ffffffe00009499c>] bad_page+0xe4/0x102
[    0.000000] [<ffffffe0000949f2>] free_pages_check_bad+0x38/0x7a
[    0.000000] [<ffffffe0000955c6>] __free_pages_ok+0x3fe/0x430
[    0.000000] [<ffffffe0000960ea>] __free_pages.part.28+0x1a/0x22
[    0.000000] [<ffffffe0000056da>] __free_pages_bootmem+0x86/0x90
[    0.000000] [<ffffffe000007c46>] free_all_bootmem+0x156/0x1ba
[    0.000000] [<ffffffe0000023f8>] mem_init+0x36/0x44
[    0.000000] [<ffffffe0000007a0>] start_kernel+0x1aa/0x328
[    0.000000] [<ffffffe000000058>] _sinittext+0x58/0x5c
[    0.000000] BUG: Bad page state in process swapper  pfn:80bfb
[    0.000000] page:ffffffe03f029ee8 count:0 mapcount:-65280 mapping:0000000000000000 index:0x0
[    0.000000] flags: 0x0()
[    0.000000] raw: 0000000000000000 ffffffe03f0200f0 ffffffe03f0200f0 0000000000000000
[    0.000000] raw: 0000000000000000 0000000000000000 00000000ffff00ff
[    0.000000] page dumped because: nonzero mapcount
[    0.000000] Modules linked in:
[    0.000000] CPU: 0 PID: 0 Comm: swapper Tainted: G    B             4.19.0-sifive-1+ #1
[    0.000000] Call Trace:
[    0.000000] [<ffffffe00002cfde>] walk_stackframe+0x0/0xa0
[    0.000000] [<ffffffe00002d1da>] show_stack+0x2a/0x34
[    0.000000] [<ffffffe00063c898>] chachachllachachachTradeonachachach_inachachipachachachachllachachachTradeonachachachdevachachachypachachachllachachachTradeona+0x20/0x28
[    0.000000] [<ffffffe00009499c>] bad_page+0xe4/0x102
[    0.000000] [<ffffffe0000949f2>] free_pages_check_bad+0x38/0x7a
[    0.000000] [<ffffffe0000955c6>] __free_pages_ok+0x3fe/0x430
[    0.000000] [<ffffffe0000960ea>] __free_pages.part.28+0x1a/0x22
[    0.000000] [<ffffffe0000056da>] __free_pages_bootmem+0x86/0x90
[    0.000000] [<ffffffe000007c46>] free_all_bootmem+0x156/0x1ba
[    0.000000] [<ffffffe0000023f8>] mem_init+0x36/0x44
[    0.000000] [<ffffffe0000007a0>] start_kernel+0x1aa/0x328
[    0.000000] [<ffffffe000000058>] _sinittext+0x58/0x5c
[    0.000000] BUG: Bad page state in process swapper  pfn:80bfc
[    0.000000] page:ffffffe03f029f20 count:0 mapcount:-65280 mapping:0000000000000000 index:0x0
[    0.000000] flags: 0x0()
[    0.000000] raw: 0000000000000000 ffffffe03f020028 ffffffe03f020028 0000000000000000
[    0.000000] raw: 0000000000000000 0000000000000000 00000000ffff00ff
...

แƒกแƒแƒ˜แƒœแƒขแƒ”แƒ แƒ”แƒกแƒแƒ, แƒ แƒแƒ› แƒงแƒ•แƒ”แƒšแƒ แƒ’แƒแƒ›แƒแƒ แƒ—แƒ•แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ’แƒแƒ“แƒแƒ•แƒฌแƒงแƒ•แƒ˜แƒขแƒ” แƒ›แƒ”แƒœแƒแƒฎแƒ, แƒ แƒแƒ’แƒแƒ แƒ˜ แƒฃแƒœแƒ“แƒ แƒ˜แƒงแƒแƒก แƒ‘แƒ˜แƒ แƒ—แƒ•แƒ˜แƒก "แƒ›แƒ˜แƒœแƒ˜แƒจแƒœแƒ”แƒ‘แƒ" แƒ’แƒแƒ›แƒแƒ›แƒแƒ•แƒแƒšแƒ˜, แƒ—แƒฅแƒ•แƒ แƒ›แƒแƒœ. make qemuแƒ“แƒ แƒ“แƒแƒ˜แƒœแƒแƒฎแƒ แƒ›แƒกแƒ’แƒแƒ•แƒกแƒ˜ แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ.

แƒกแƒแƒ›แƒฌแƒฃแƒฎแƒแƒ แƒแƒ“, แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜ แƒ“แƒแƒœแƒ” (Linux-แƒ˜แƒก แƒ‘แƒ˜แƒ แƒ—แƒ•แƒ˜) แƒฃแƒคแƒ แƒ แƒ แƒ—แƒฃแƒšแƒ˜แƒ: GDB, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ“แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ JTAG-แƒ˜แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒ˜แƒ— RocketChip-แƒ—แƒแƒœ, แƒ แƒแƒ’แƒแƒ แƒช แƒฉแƒแƒœแƒก, แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก แƒคแƒ˜แƒ–แƒ˜แƒ™แƒฃแƒ  แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒ”แƒ‘แƒ—แƒแƒœ, แƒ›แƒ˜แƒฃแƒฎแƒ”แƒ“แƒแƒ•แƒแƒ“ แƒ˜แƒ›แƒ˜แƒกแƒ, แƒ—แƒฃ แƒ แƒแƒ’แƒแƒ  แƒแƒ แƒ˜แƒก แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ MMU, แƒ“แƒ แƒ‘แƒ˜แƒ แƒ—แƒ•แƒ˜ แƒ˜แƒ› แƒ›แƒแƒ›แƒ”แƒœแƒขแƒจแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒฉแƒ•แƒ”แƒœ แƒ“แƒแƒ˜แƒœแƒขแƒ”แƒ แƒ”แƒกแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ•แƒแƒ แƒ—, แƒฃแƒ™แƒ•แƒ” แƒแƒฅแƒ•แƒก แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ”แƒ™แƒ แƒแƒœแƒ˜. แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒ”แƒ‘แƒ˜, แƒแƒกแƒ” แƒ แƒแƒ› แƒแƒ“แƒ•แƒ˜แƒšแƒ˜ แƒกแƒแƒ—แƒฅแƒ›แƒ”แƒšแƒ˜แƒ display/10i $pc แƒ”แƒก แƒแƒ  แƒ’แƒแƒ›แƒแƒ•แƒ - แƒฉแƒ•แƒ”แƒœ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ‘แƒ”แƒ•แƒ แƒก แƒ•แƒœแƒแƒฎแƒแƒ•แƒ— unimp. แƒ›แƒแƒ’แƒ แƒแƒ› แƒ—แƒฃ แƒฉแƒ•แƒ”แƒœ แƒฃแƒ™แƒ•แƒ” แƒ’แƒแƒ•แƒแƒ แƒ™แƒ•แƒ˜แƒ”แƒ— แƒ™แƒแƒ›แƒžแƒ”แƒœแƒกแƒแƒชแƒ˜แƒ (แƒ แƒแƒ’แƒแƒ แƒช แƒฉแƒแƒœแƒก 0x80200000 -> 0xffffffe000000000), แƒ›แƒแƒจแƒ˜แƒœ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ›แƒแƒแƒขแƒงแƒฃแƒแƒ—:

1: x/10i $pc
=> 0xffffffe000002436 <setup_smp>:      unimp
   0xffffffe000002438 <setup_smp+2>:    unimp
   0xffffffe00000243a <setup_smp+4>:    unimp
   0xffffffe00000243c <setup_smp+6>:    unimp
   0xffffffe00000243e <setup_smp+8>:    unimp
   0xffffffe000002440 <setup_smp+10>:   unimp
   0xffffffe000002442 <setup_smp+12>:   unimp
   0xffffffe000002444 <setup_smp+14>:   unimp
   0xffffffe000002446 <setup_smp+16>:   unimp
   0xffffffe000002448 <setup_smp+18>:   unimp
(gdb) undisplay 1
(gdb) display/10i ($pc - 0xffffffe000002436 + 0x80202436)
2: x/10i ($pc - 0xffffffe000002436 + 0x80202436)
   0x80202436:  addi    sp,sp,-96
   0x80202438:  sd      s0,80(sp)
   0x8020243a:  sd      s1,72(sp)
   0x8020243c:  sd      s2,64(sp)
   0x8020243e:  sd      s3,56(sp)
   0x80202440:  sd      s4,48(sp)
   0x80202442:  sd      s5,40(sp)
   0x80202444:  sd      s6,32(sp)
   0x80202446:  sd      s7,24(sp)
   0x80202448:  sd      s8,16(sp)

แƒจแƒ”แƒกแƒ•แƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒฌแƒ”แƒ แƒขแƒ˜แƒšแƒ”แƒ‘แƒ˜ แƒ“แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒ˜แƒ›แƒแƒ•แƒ” แƒ’แƒ–แƒ˜แƒ—:

(gdb) p setup_smp
$1 = {<text variable, no debug info>} 0xffffffe000002436 <setup_smp>
(gdb) b *0x80202436
Breakpoint 1 at 0x80202436
(gdb) c
Continuing.

Program received signal SIGTRAP, Trace/breakpoint trap.
setup_smp () at /home/trosinenko/freedom-u-sdk/linux/arch/riscv/kernel/smpboot.c:58
58              while ((dn = of_find_node_by_type(dn, "cpu"))) {
(gdb) bt
#0  setup_smp () at /home/trosinenko/freedom-u-sdk/linux/arch/riscv/kernel/smpboot.c:58
#1  0xffffffe0000022a2 in setup_arch () at /home/trosinenko/freedom-u-sdk/linux/arch/riscv/kernel/setup.c:253
#2  0x0000000000000000 in ?? ()
Backtrace stopped: frame did not save the PC

แƒ›แƒแƒ’แƒ แƒแƒ› แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒ›แƒแƒแƒจแƒแƒ แƒแƒ— แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒฎแƒ”แƒšแƒ˜แƒ—, แƒ แƒแƒ—แƒ แƒ’แƒแƒ“แƒแƒฎแƒ•แƒ˜แƒ“แƒ”แƒ— - GDB-แƒกแƒ—แƒ•แƒ˜แƒก แƒ”แƒก แƒแƒ แƒ˜แƒก แƒ”แƒ แƒ—แƒ’แƒ•แƒแƒ แƒ˜ แƒกแƒ แƒฃแƒšแƒ˜แƒแƒ“ แƒ’แƒแƒฃแƒ’แƒ”แƒ‘แƒแƒ แƒ˜ แƒฎแƒแƒคแƒแƒœแƒ’แƒ˜. แƒแƒฐ, แƒ—แƒฃ แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒ˜แƒ— แƒ˜แƒขแƒงแƒ•แƒ˜ s แƒแƒœ n แƒœแƒแƒชแƒ•แƒšแƒแƒ“ si, gdb แƒจแƒ”แƒ”แƒชแƒ“แƒ”แƒ‘แƒ แƒฉแƒแƒกแƒ•แƒแƒก แƒ˜แƒ›แƒžแƒšแƒ˜แƒชแƒ˜แƒขแƒฃแƒ แƒ˜ แƒฌแƒงแƒ•แƒ”แƒขแƒ˜แƒก แƒฌแƒ”แƒ แƒขแƒ˜แƒšแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ’แƒแƒกแƒแƒ’แƒ”แƒ‘แƒ˜ แƒ›แƒ˜แƒ–แƒ”แƒ–แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒ แƒแƒ  แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒ“แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜, แƒ›แƒแƒ’แƒ แƒแƒ› GDB-แƒก แƒแƒชแƒ˜แƒšแƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒ แƒแƒ  แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก. แƒ›แƒแƒ’แƒ แƒแƒ› แƒœแƒฃ แƒ˜แƒฉแƒฅแƒแƒ แƒ”แƒ‘แƒ— แƒ“แƒแƒคแƒ˜แƒก แƒ’แƒแƒ“แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒแƒก - แƒฉแƒ”แƒ›แƒ˜ แƒ“แƒแƒ™แƒ•แƒ˜แƒ แƒ•แƒ”แƒ‘แƒ˜แƒ—, แƒกแƒแƒ™แƒ›แƒแƒ แƒ˜แƒกแƒ˜แƒ แƒ›แƒฎแƒแƒšแƒแƒ“ gdb-แƒ˜แƒก แƒ’แƒแƒ“แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ (แƒ’แƒแƒ˜แƒ—แƒ•แƒแƒšแƒ˜แƒกแƒฌแƒ˜แƒœแƒ”แƒ—, แƒ แƒแƒ› แƒซแƒ•แƒ”แƒšแƒ˜ แƒฌแƒงแƒ•แƒ”แƒขแƒ˜แƒก แƒฌแƒ”แƒ แƒขแƒ˜แƒšแƒ”แƒ‘แƒ˜ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒแƒ  แƒ’แƒแƒฅแƒ แƒ”แƒก).

แƒกแƒ˜แƒœแƒแƒ›แƒ“แƒ•แƒ˜แƒšแƒ”แƒจแƒ˜, แƒ—แƒฅแƒ•แƒ”แƒœ แƒ›แƒแƒ’แƒ˜แƒฌแƒ”แƒ•แƒ— แƒ’แƒแƒฃแƒ›แƒ™แƒšแƒแƒ•แƒ“แƒ”แƒ— แƒ—แƒแƒ•แƒ“แƒแƒžแƒ˜แƒ แƒ•แƒ”แƒš แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒแƒก: แƒ’แƒแƒ›แƒแƒ แƒ—แƒ•แƒ˜แƒก แƒ’แƒแƒœแƒ—แƒแƒ•แƒกแƒ”แƒ‘แƒแƒก printk แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒแƒจแƒ˜ of_find_node_by_type, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒฉแƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ˜แƒก แƒžแƒ แƒแƒชแƒ”แƒกแƒแƒ แƒ˜แƒก แƒ‘แƒ˜แƒ แƒ—แƒ•แƒ˜แƒก แƒกแƒแƒซแƒ˜แƒ”แƒ‘แƒ แƒ™แƒแƒ“แƒ˜แƒ—, แƒแƒฉแƒ•แƒ”แƒœแƒ”แƒ‘แƒก, แƒ แƒแƒ› แƒ˜แƒก แƒฎแƒ”แƒ“แƒแƒ•แƒก แƒ แƒแƒ˜แƒ›แƒ” แƒกแƒแƒฎแƒ˜แƒก แƒœแƒแƒ’แƒแƒ•แƒก แƒ›แƒแƒฌแƒงแƒแƒ‘แƒ˜แƒšแƒแƒ‘แƒ˜แƒก แƒขแƒ˜แƒžแƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ”แƒ‘แƒ˜แƒก แƒœแƒแƒชแƒ•แƒšแƒแƒ“. แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒ˜แƒก แƒ˜แƒฆแƒ”แƒ‘แƒก แƒฎแƒแƒ–แƒก "แƒกแƒ”แƒ แƒ˜แƒฃแƒšแƒ˜ แƒžแƒแƒ แƒขแƒ˜" แƒกแƒแƒ“แƒฆแƒแƒช, แƒ—แƒฃแƒ›แƒชแƒ แƒ”แƒก แƒแƒจแƒ™แƒแƒ แƒแƒ“ แƒแƒ  แƒแƒ แƒ˜แƒก dtb แƒ•แƒ”แƒšแƒจแƒ˜. device_type. แƒ‘แƒ˜แƒ แƒ—แƒ•แƒ˜แƒก แƒ’แƒแƒ›แƒแƒกแƒแƒฎแƒฃแƒšแƒ”แƒ‘แƒแƒจแƒ˜ แƒแƒ› แƒ‘แƒแƒ˜แƒขแƒ”แƒ‘แƒ˜แƒก แƒซแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’, แƒ›แƒ” แƒ•แƒ˜แƒžแƒแƒ•แƒ” แƒ˜แƒกแƒ˜แƒœแƒ˜, แƒ’แƒแƒ“แƒแƒ•แƒฎแƒ”แƒ“แƒ” แƒแƒคแƒกแƒ”แƒขแƒก แƒ“แƒ แƒ›แƒ˜แƒ•แƒฎแƒ•แƒ“แƒ˜ แƒแƒจแƒ™แƒแƒ แƒแƒ“: แƒ‘แƒ˜แƒ แƒ—แƒ•แƒ˜แƒก แƒ–แƒแƒ›แƒ แƒฉแƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ˜แƒก แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒจแƒ˜ แƒแƒจแƒ™แƒแƒ แƒแƒ“ แƒแƒ  แƒแƒ แƒ˜แƒก แƒจแƒ”แƒคแƒแƒกแƒ”แƒ‘แƒฃแƒšแƒ˜: แƒ›แƒแƒก แƒ’แƒแƒ›แƒแƒงแƒแƒคแƒ˜แƒšแƒ˜แƒ 8 แƒ›แƒ‘, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ˜แƒก แƒแƒ—แƒ–แƒ” แƒ›แƒ”แƒขแƒก แƒ˜แƒ™แƒแƒ•แƒ”แƒ‘แƒก. 16แƒ›แƒ‘ แƒ’แƒแƒ›แƒแƒ•แƒงแƒแƒ•แƒ˜, แƒ›แƒแƒ’แƒ แƒแƒ› แƒฃแƒชแƒœแƒแƒฃแƒ แƒแƒ‘แƒ แƒแƒ  แƒจแƒ”แƒ›แƒ˜แƒฌแƒงแƒ•แƒ”แƒขแƒ˜แƒ. แƒชแƒ”แƒ™แƒ•แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ FDT แƒฌแƒแƒ™แƒ˜แƒ—แƒฎแƒ•แƒ˜แƒ— แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒ˜แƒ“แƒแƒœ (แƒฉแƒ•แƒ”แƒฃแƒšแƒ”แƒ‘แƒ แƒ˜แƒ• แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒ˜ แƒ’แƒแƒ“แƒแƒ“แƒ˜แƒก แƒ แƒ”แƒ”แƒกแƒขแƒ แƒจแƒ˜ แƒแƒ แƒกแƒ”แƒ‘แƒฃแƒš แƒ‘แƒ˜แƒ แƒ—แƒ•แƒจแƒ˜ a1), แƒกแƒแƒ‘แƒแƒšแƒแƒแƒ“ แƒ’แƒแƒ“แƒแƒ•แƒฌแƒงแƒ•แƒ˜แƒขแƒ” แƒ™แƒ•แƒแƒšแƒ˜, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ แƒ ัะตะนั‡ะฐั แƒ˜แƒฅ แƒแƒ แƒ˜แƒก แƒ’แƒแƒแƒœแƒแƒšแƒ˜แƒ–แƒ”แƒ‘แƒฃแƒšแƒ˜. แƒกแƒแƒ‘แƒ”แƒ“แƒœแƒ˜แƒ”แƒ แƒแƒ“, แƒ˜แƒ›แƒ˜แƒก แƒœแƒแƒชแƒ•แƒšแƒแƒ“, แƒ แƒแƒ› แƒ˜แƒแƒ แƒแƒ— แƒ’แƒแƒ›แƒแƒ แƒ—แƒ•แƒ˜แƒ— (แƒ“แƒ แƒฉแƒ•แƒ”แƒœ แƒ’แƒ•แƒแƒฎแƒกแƒแƒ•แƒก, แƒ แƒแƒ› แƒแƒ แƒ˜แƒก แƒœแƒ˜แƒฃแƒแƒœแƒกแƒ”แƒ‘แƒ˜ แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒ”แƒ‘แƒ˜แƒก แƒ—แƒแƒ แƒ’แƒ›แƒœแƒแƒกแƒ—แƒแƒœ แƒ“แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒ—, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒฏแƒ”แƒ  แƒ™แƒ˜แƒ“แƒ”แƒ• แƒฃแƒœแƒ“แƒ แƒ’แƒแƒ“แƒแƒฌแƒงแƒ“แƒ”แƒก แƒแƒ›แƒ แƒ—แƒฃ แƒ˜แƒ› แƒ’แƒ–แƒ˜แƒ—), แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒ“แƒ แƒงแƒแƒ•แƒแƒ แƒฏแƒœแƒ”แƒ‘แƒ˜แƒ— แƒฉแƒแƒฌแƒ”แƒ แƒแƒ— แƒคแƒแƒ˜แƒšแƒ˜ drivers/of/fdt.c แƒ›แƒ˜แƒฃแƒ—แƒ˜แƒ—แƒ”แƒ— #define pr_debug printk. แƒจแƒ”แƒ“แƒ”แƒ’แƒ˜ แƒ˜แƒงแƒ:

แƒ’แƒแƒ›แƒแƒ แƒ—แƒ•แƒ˜แƒก แƒ’แƒแƒ›แƒแƒกแƒแƒ•แƒšแƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ

diff --git a/arch/riscv/kernel/setup.c b/arch/riscv/kernel/setup.c
index 3db0d71d128b..fac47df9d1db 100644
--- a/arch/riscv/kernel/setup.c
+++ b/arch/riscv/kernel/setup.c
@@ -173,6 +173,7 @@ asmlinkage void __init setup_vm(void)

 void __init parse_dtb(unsigned int hartid, void *dtb)
 {
+       printk("HART = %u DTB = %lxn", hartid, dtb);
        early_init_dt_scan(__va(dtb));
 }

diff --git a/drivers/of/base.c b/drivers/of/base.c
index 74eaedd5b860..c019e4158e1d 100644
--- a/drivers/of/base.c
+++ b/drivers/of/base.c
@@ -940,10 +940,12 @@ struct device_node *of_find_node_by_type(struct device_node *from,
        unsigned long flags;

        raw_spin_lock_irqsave(&devtree_lock, flags);
-       for_each_of_allnodes_from(from, np)
+       for_each_of_allnodes_from(from, np) {
+               printk("%lx %lx [%s] | [%s]n", from, np, np->type, type);
                if (np->type && (of_node_cmp(np->type, type) == 0)
                    && of_node_get(np))
                        break;
+       }
        of_node_put(from);
        raw_spin_unlock_irqrestore(&devtree_lock, flags);
        return np;
diff --git a/drivers/of/fdt.c b/drivers/of/fdt.c
index 800ad252cf9c..2b45870ebada 100644
--- a/drivers/of/fdt.c
+++ b/drivers/of/fdt.c
@@ -31,6 +31,8 @@

 #include "of_private.h"

+#define pr_debug printk
+
 /*
  * of_fdt_limit_memory - limit the number of regions in the /memory node
  * @limit: maximum entries
@@ -1253,6 +1255,7 @@ bool __init early_init_dt_scan(void *params)
  */
 void __init unflatten_device_tree(void)
 {
+       printk("INITIAL: %lxn", initial_boot_params);
        __unflatten_device_tree(initial_boot_params, NULL, &of_root,
                                early_init_dt_alloc_memory_arch, false);

แƒ’แƒแƒ›แƒแƒ›แƒแƒ•แƒแƒšแƒ˜ แƒแƒžแƒแƒ แƒแƒขแƒฃแƒ แƒแƒ–แƒ”

                SIFIVE, INC.

         5555555555555555555555555
        5555                   5555
       5555                     5555
      5555                       5555
     5555       5555555555555555555555
    5555       555555555555555555555555
   5555                             5555
  5555                               5555
 5555                                 5555
5555555555555555555555555555          55555
 55555           555555555           55555
   55555           55555           55555
     55555           5           55555
       55555                   55555
         55555               55555
           55555           55555
             55555       55555
               55555   55555
                 555555555
                   55555
                     5

           SiFive RISC-V Core IP
 {
  #address-cells = <0x00000001>;
  #size-cells = <0x00000001>;
  compatible = "freechips,rocketchip-unknown-dev";
  model = "freechips,rocketchip-unknown";
  chosen {
    linux,initrd-start = <0x82000000>;
    riscv,kernel-end = <0x81200000>;
    riscv,kernel-start = <0x80200000>;
    #address-cells = <0x00000001>;
    #size-cells = <0x00000000>;
    bootargs = <0x64656275 0x6720636f 0x6e736f6c 0x653d7474 0x79534946 0x302c3132 0x35323030 0x20726f6f 0x743d2f64 0x65762f6d 0x6d63626c 0x6b307032 0x206c6f67 0x6c657665 0x6c3d3720 0x726f6f74 0x77616974>;
  }
  firmware {
    sifive,uboot = "YYYY-MM-DD";
  }
  aliases {
    serial0 = <0x2f736f63 0x2f736572 0x69616c40 0x36343030 0x30303030>;
  }
  cpus {
    #address-cells = <0x00000001>;
    #size-cells = <0x00000000>;
    cpu@0 {
      device_type = "cpu";
      clock-frequency = <0x00000000>;
      compatible = "sifive,rocket0", "riscv";
      d-cache-block-size = <0x00000010>;
      d-cache-sets = <0x00000040>;
      d-cache-size = <0x00001000>;
      d-tlb-sets = <0x00000001>;
      d-tlb-size = <0x00000020>;
      i-cache-block-size = <0x00000010>;
      i-cache-sets = <0x00000040>;
      i-cache-size = <0x00001000>;
      i-tlb-sets = <0x00000001>;
      i-tlb-size = <0x00000020>;
      mmu-type = "riscv,sv39";
      next-level-cache = <0x00000001>;
      reg = <0x00000000>;
      riscv,isa = "rv64imafdc";
      status = "okay";
      timebase-frequency = <0x000f4240>;
      tlb-split;
      interrupt-controller {
        #interrupt-cells = <0x00000001>;
        compatible = "riscv,cpu-intc";
        interrupt-controller;
        phandle = <0x00000002>;
      }
    }
  }
  ram@80000000 {
    device_type = "memory";
    reg = <0x80000000 0x40000000>;
    reg-names = "mem";
    phandle = <0x00000001>;
  }
  soc {
    #address-cells = <0x00000001>;
    #size-cells = <0x00000001>;
    compatible = "freechips,rocketchip-unknown-soc", "simple-bus";
    ranges;
    clint@2000000 {
      compatible = "riscv,clint0";
      interrupts-extended = <0x00000002 0x00000003 0x00000002 0x00000007>;
      reg = <0x02000000 0x00010000>;
      reg-names = "control";
    }
    debug-controller@0 {
      compatible = "sifive,debug-013", "riscv,debug-013";
      interrupts-extended = <0x00000002 0x0000ffff>;
      reg = <0x00000000 0x00001000>;
      reg-names = "control";
    }
    gpio@64002000 {
      #gpio-cells = <0x00000002>;
      #interrupt-cells = <0x00000002>;
      compatible = "sifive,gpio0";
      gpio-controller;
      interrupt-controller;
      interrupt-parent = <0x00000003>;
      interrupts = <0x00000003 0x00000004 0x00000005 0x00000006 0x00000007 0x00000008>;
      reg = <0x64002000 0x00001000>;
      reg-names = "control";
    }
    interrupt-controller@c000000 {
      #interrupt-cells = <0x00000001>;
      compatible = "riscv,plic0";
      interrupt-controller;
      interrupts-extended = <0x00000002 0x0000000b 0x00000002 0x00000009>;
      reg = <0x0c000000 0x04000000>;
      reg-names = "control";
      riscv,max-priority = <0x00000007>;
      riscv,ndev = <0x00000008>;
      phandle = <0x00000003>;
    }
    rom@10000 {
      compatible = "sifive,maskrom0";
      reg = <0x00010000 0x00002000>;
      reg-names = "mem";
    }
    serial@64000000 {
      compatible = "sifive,uart0";
      interrupt-parent = <0x00000003>;
      interrupts = <0x00000002>;
      reg = <0x64000000 0x00001000>;
      reg-names = "control";
    }
    spi@64001000 {
      #address-cells = <0x00000001>;
      #size-cells = <0x00000000>;
      compatible = "sifive,spi0";
      interrupt-parent = <0x00000003>;
      interrupts = <0x00000001>;
      reg = <0x64001000 0x00001000>;
      reg-names = "control";
      mmc@0 {
        compatible = "mmc-spi-slot";
        disable-wp;
        reg = <0x00000000>;
        spi-max-frequency = <0x01312d00>;
        voltage-ranges = <0x00000ce4 0x00000ce4>;
      }
    }
    tlclk {
      #clock-cells = <0x00000000>;
      clock-frequency = <0x017d7840>;
      clock-output-names = "tlclk";
      compatible = "fixed-clock";
    }
  }
}
[    0.000000] HART = 0 DTB = 81200000
[    0.000000] search "chosen", depth: 0, uname:
[    0.000000] search "chosen", depth: 1, uname: chosen
[    0.000000] Looking for initrd properties...
[    0.000000] Command line is: debug console=ttySIF0,125200 root=/dev/mmcblk0p2 loglevel=7 rootwait
[    0.000000] dt_root_size_cells = 1
[    0.000000] dt_root_addr_cells = 1
[    0.000000] memory scan node ram@80000000, reg size 8,
[    0.000000]  - 80000000 ,  40000000
[    0.000000] OF: fdt: Ignoring memory range 0x80000000 - 0x80200000
[    0.000000] Linux version 4.19.0-sifive-1+ (trosinenko@trosinenko-pc) (gcc version 8.3.0 (Buildroot 2019.02-07449-g4eddd28f99)) #1 SMP Sat Jul 6 12:14:41 MSK 2019
[    0.000000] bootconsole [early0] enabled
[    0.000000] initrd not found or empty - disabling initrd
[    0.000000] Zone ranges:
[    0.000000]   DMA32    [mem 0x0000000080200000-0x00000000bfffffff]
[    0.000000]   Normal   [mem 0x00000000c0000000-0x00000bffffffffff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000080200000-0x00000000bfffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000080200000-0x00000000bfffffff]
[    0.000000] INITIAL: ffffffe001000000
[    0.000000]  -> unflatten_device_tree()
[    0.000000] Unflattening device tree:
[    0.000000] magic: d00dfeed
[    0.000000] size: 00001000
[    0.000000] version: 00000011
[    0.000000]   size is 13512, allocating...
[    0.000000]   unflattening (____ptrval____)...
[    0.000000] fixed up name for  ->
[    0.000000] fixed up name for chosen -> chosen
[    0.000000] fixed up name for firmware -> firmware
[    0.000000] fixed up name for aliases -> aliases
[    0.000000] fixed up name for cpus -> cpus
[    0.000000] fixed up name for cpu@0 -> cpu
[    0.000000] fixed up name for interrupt-controller -> interrupt-controller
[    0.000000] fixed up name for ram@80000000 -> ram
[    0.000000] fixed up name for soc -> soc
[    0.000000] fixed up name for clint@2000000 -> clint
[    0.000000] fixed up name for debug-controller@0 -> debug-controller
[    0.000000] fixed up name for gpio@64002000 -> gpio
[    0.000000] fixed up name for interrupt-controller@c000000 -> interrupt-controller
[    0.000000] fixed up name for rom@10000 -> rom
[    0.000000] fixed up name for serial@64000000 -> serial
[    0.000000] fixed up name for spi@64001000 -> spi
[    0.000000] fixed up name for mmc@0 -> mmc
[    0.000000] fixed up name for tlclk -> tlclk
[    0.000000]  <- unflatten_device_tree()
[    0.000000] software IO TLB: mapped [mem 0xbb1fc000-0xbf1fc000] (64MB)
[    0.000000] 0 ffffffe03effcab0 [attach() failed for %s with error %d
[    0.000000] ] | [cpu]
[    0.000000] 0 ffffffe03eff0020 [(null)] | [cpu]

แƒ’แƒแƒ›แƒแƒ›แƒแƒ•แƒแƒšแƒ˜ QEMU

                SIFIVE, INC.
5555555555555555555555555
5555                   5555
5555                     5555
5555                       5555
5555       5555555555555555555555
5555       555555555555555555555555
5555                             5555
5555                               5555
5555                                 5555
5555555555555555555555555555          55555
55555           555555555           55555
55555           55555           55555
55555           5           55555
55555                   55555
55555               55555
55555           55555
55555       55555
55555   55555
555555555
55555
5
SiFive RISC-V Core IP
{
#address-cells = <0x00000002>;
#size-cells = <0x00000002>;
compatible = "riscv-virtio";
model = "riscv-virtio,qemu";
chosen {
linux,initrd-start = <0x00000000 0x88000000>;
linux,initrd-end = <0x00000000 0x88442b86>;
riscv,kernel-start = <0x00000000 0x80200000>;
riscv,kernel-end = <0x00000000 0x80c482ac>;
bootargs = "";
stdout-path = <0x2f756172 0x74403130 0x30303030>;
}
uart@10000000 {
interrupts = <0x0000000a>;
interrupt-parent = <0x00000002>;
clock-frequency = <0x00384000>;
reg = <0x00000000 0x10000000 0x00000000 0x00000100>;
compatible = "ns16550a";
}
test@100000 {
reg = <0x00000000 0x00100000 0x00000000 0x00001000>;
compatible = "sifive,test0";
}
virtio_mmio@10008000 {
interrupts = <0x00000008>;
interrupt-parent = <0x00000002>;
reg = <0x00000000 0x10008000 0x00000000 0x00001000>;
compatible = "virtio,mmio";
}
virtio_mmio@10007000 {
interrupts = <0x00000007>;
interrupt-parent = <0x00000002>;
reg = <0x00000000 0x10007000 0x00000000 0x00001000>;
compatible = "virtio,mmio";
}
virtio_mmio@10006000 {
interrupts = <0x00000006>;
interrupt-parent = <0x00000002>;
reg = <0x00000000 0x10006000 0x00000000 0x00001000>;
compatible = "virtio,mmio";
}
virtio_mmio@10005000 {
interrupts = <0x00000005>;
interrupt-parent = <0x00000002>;
reg = <0x00000000 0x10005000 0x00000000 0x00001000>;
compatible = "virtio,mmio";
}
virtio_mmio@10004000 {
interrupts = <0x00000004>;
interrupt-parent = <0x00000002>;
reg = <0x00000000 0x10004000 0x00000000 0x00001000>;
compatible = "virtio,mmio";
}
virtio_mmio@10003000 {
interrupts = <0x00000003>;
interrupt-parent = <0x00000002>;
reg = <0x00000000 0x10003000 0x00000000 0x00001000>;
compatible = "virtio,mmio";
}
virtio_mmio@10002000 {
interrupts = <0x00000002>;
interrupt-parent = <0x00000002>;
reg = <0x00000000 0x10002000 0x00000000 0x00001000>;
compatible = "virtio,mmio";
}
virtio_mmio@10001000 {
interrupts = <0x00000001>;
interrupt-parent = <0x00000002>;
reg = <0x00000000 0x10001000 0x00000000 0x00001000>;
compatible = "virtio,mmio";
}
cpus {
#address-cells = <0x00000001>;
#size-cells = <0x00000000>;
timebase-frequency = <0x00989680>;
cpu@0 {
device_type = "cpu";
reg = <0x00000000>;
status = "okay";
compatible = "riscv";
riscv,isa = "rv64imafdcsu";
mmu-type = "riscv,sv48";
clock-frequency = <0x3b9aca00>;
interrupt-controller {
#interrupt-cells = <0x00000001>;
interrupt-controller;
compatible = "riscv,cpu-intc";
linux,phandle = <0x00000001>;
phandle = <0x00000001>;
}
}
}
memory@80000000 {
device_type = "memory";
reg = <0x00000000 0x80000000 0x00000000 0x40000000>;
}
soc {
#address-cells = <0x00000002>;
#size-cells = <0x00000002>;
compatible = "simple-bus";
ranges;
pci@30000000 {
interrupt-map-mask = <0x00001800 0x00000000 0x00000000 0x00000007>;
interrupt-map = <0x00000000 0x00000000 0x00000000 0x00000001 0x00000002 0x00000020 0x00000000 0x00000000 0x00000000 0x00000002 0x00000002 0x00000021 0x00000000 0x00000000 0x00000000 0x00000003 0x00000002 0x00000022 0x00000000 0x00000000 0x00000000 0x00000004 0x00000002 0x00000023 0x00000800 0x00000000 0x00000000 0x00000001 0x00000002 0x00000021 0x00000800 0x00000000 0x00000000 0x00000002 0x00000002 0x00000022 0x00000800 0x00000000 0x00000000 0x00000003 0x00000002 0x00000023 0x00000800 0x00000000 0x00000000 0x00000004 0x00000002 0x00000020 0x00001000 0x00000000 0x00000000 0x00000001 0x00000002 0x00000022 0x00001000 0x00000000 0x00000000 0x00000002 0x00000002 0x00000023 0x00001000 0x00000000 0x00000000 0x00000003 0x00000002 0x00000020 0x00001000 0x00000000 0x00000000 0x00000004 0x00000002 0x00000021 0x00001800 0x00000000 0x00000000 0x00000001 0x00000002 0x00000023 0x00001800 0x00000000 0x00000000 0x00000002 0x00000002 0x00000020 0x00001800 0x00000000 0x00000000 0x00000003 0x00000002 0x00000021 0x00001800 0x00000000 0x00000000 0x00000004 0x00000002 0x00000022>;
ranges = <0x01000000 0x00000000 0x00000000 0x00000000 0x03000000 0x00000000 0x00010000 0x02000000 0x00000000 0x40000000 0x00000000 0x40000000 0x00000000 0x40000000>;
reg = <0x00000000 0x30000000 0x00000000 0x10000000>;
dma-coherent;
bus-range = <0x00000000 0x000002ff>;
linux,pci-domain = <0x00000000>;
device_type = "pci";
compatible = "pci-host-ecam-generic";
#size-cells = <0x00000002>;
#interrupt-cells = <0x00000001>;
#address-cells = <0x00000003>;
}
interrupt-controller@c000000 {
linux,phandle = <0x00000002>;
phandle = <0x00000002>;
riscv,ndev = <0x00000035>;
riscv,max-priority = <0x00000007>;
reg-names = "control";
reg = <0x00000000 0x0c000000 0x00000000 0x04000000>;
interrupts-extended = <0x00000001 0x0000000b 0x00000001 0x00000009>;
interrupt-controller;
compatible = "riscv,plic0";
#interrupt-cells = <0x00000001>;
#address-cells = <0x00000000>;
}
clint@2000000 {
interrupts-extended = <0x00000001 0x00000003 0x00000001 0x00000007>;
reg = <0x00000000 0x02000000 0x00000000 0x00010000>;
compatible = "riscv,clint0";
}
}
}
[    0.000000] HART = 0 DTB = 80e00000
[    0.000000] search "chosen", depth: 0, uname:
[    0.000000] search "chosen", depth: 1, uname: chosen
[    0.000000] Looking for initrd properties...
[    0.000000] initrd_start=0x88000000  initrd_end=0x88442b86
[    0.000000] Command line is: earlyprintk
[    0.000000] dt_root_size_cells = 2
[    0.000000] dt_root_addr_cells = 2
[    0.000000] memory scan node memory@80000000, reg size 16,
[    0.000000]  - 80000000 ,  40000000
[    0.000000] OF: fdt: Ignoring memory range 0x80000000 - 0x80200000
[    0.000000] Linux version 4.19.0-sifive-1+ (trosinenko@trosinenko-pc) (gcc version 8.3.0 (Buildroot 2019.02-07449-g4eddd28f99)) #1 SMP Sat Jul 6 12:14:41 MSK 2019
[    0.000000] bootconsole [early0] enabled
[    0.000000] Initial ramdisk at: 0x(____ptrval____) (4467590 bytes)
[    0.000000] Zone ranges:
[    0.000000]   DMA32    [mem 0x0000000080200000-0x00000000bfffffff]
[    0.000000]   Normal   [mem 0x00000000c0000000-0x00000bffffffffff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000080200000-0x00000000bfffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000080200000-0x00000000bfffffff]
[    0.000000] INITIAL: ffffffe000c00000
[    0.000000]  -> unflatten_device_tree()
[    0.000000] Unflattening device tree:
[    0.000000] magic: d00dfeed
[    0.000000] size: 00000d56
[    0.000000] version: 00000011
[    0.000000]   size is 14192, allocating...
[    0.000000]   unflattening (____ptrval____)...
[    0.000000] fixed up name for  ->
[    0.000000] fixed up name for chosen -> chosen
[    0.000000] fixed up name for uart@10000000 -> uart
[    0.000000] fixed up name for test@100000 -> test
[    0.000000] fixed up name for virtio_mmio@10008000 -> virtio_mmio
[    0.000000] fixed up name for virtio_mmio@10007000 -> virtio_mmio
[    0.000000] fixed up name for virtio_mmio@10006000 -> virtio_mmio
[    0.000000] fixed up name for virtio_mmio@10005000 -> virtio_mmio
[    0.000000] fixed up name for virtio_mmio@10004000 -> virtio_mmio
[    0.000000] fixed up name for virtio_mmio@10003000 -> virtio_mmio
[    0.000000] fixed up name for virtio_mmio@10002000 -> virtio_mmio
[    0.000000] fixed up name for virtio_mmio@10001000 -> virtio_mmio
[    0.000000] fixed up name for cpus -> cpus
[    0.000000] fixed up name for cpu@0 -> cpu
[    0.000000] fixed up name for interrupt-controller -> interrupt-controller
[    0.000000] fixed up name for memory@80000000 -> memory
[    0.000000] fixed up name for soc -> soc
[    0.000000] fixed up name for pci@30000000 -> pci
[    0.000000] fixed up name for interrupt-controller@c000000 -> interrupt-controller
[    0.000000] fixed up name for clint@2000000 -> clint
[    0.000000]  <- unflatten_device_tree()
[    0.000000] software IO TLB: mapped [mem 0xbb1fc000-0xbf1fc000] (64MB)
[    0.000000] 0 ffffffe03effc808 [<NULL>] | [cpu]
[    0.000000] 0 ffffffe03effca78 [<NULL>] | [cpu]
[    0.000000] 0 ffffffe03effcd98 [<NULL>] | [cpu]
[    0.000000] 0 ffffffe03effd068 [<NULL>] | [cpu]
[    0.000000] 0 ffffffe03effd230 [<NULL>] | [cpu]
[    0.000000] 0 ffffffe03effd4b8 [<NULL>] | [cpu]
[    0.000000] 0 ffffffe03effd740 [<NULL>] | [cpu]
[    0.000000] 0 ffffffe03effd9c8 [<NULL>] | [cpu]
[    0.000000] 0 ffffffe03effdc50 [<NULL>] | [cpu]
[    0.000000] 0 ffffffe03effded8 [<NULL>] | [cpu]
[    0.000000] 0 ffffffe03effe160 [<NULL>] | [cpu]
[    0.000000] 0 ffffffe03effe3e8 [<NULL>] | [cpu]
[    0.000000] 0 ffffffe03effe670 [<NULL>] | [cpu]
[    0.000000] 0 ffffffe03effe888 [cpu] | [cpu]
[    0.000000] ffffffe03effe888 ffffffe03effec00 [<NULL>] | [cpu]
[    0.000000] ffffffe03effe888 ffffffe03effeee8 [memory] | [cpu]
[    0.000000] ffffffe03effe888 ffffffe03efff0b0 [<NULL>] | [cpu]
[    0.000000] ffffffe03effe888 ffffffe03efff320 [pci] | [cpu]
[    0.000000] ffffffe03effe888 ffffffe03efff858 [<NULL>] | [cpu]
[    0.000000] ffffffe03effe888 ffffffe03efffd58 [<NULL>] | [cpu]
[    0.000000] 0 ffffffe03effc808 [<NULL>] | [cpu]
[    0.000000] 0 ffffffe03effca78 [<NULL>] | [cpu]
[    0.000000] 0 ffffffe03effcd98 [<NULL>] | [cpu]
[    0.000000] 0 ffffffe03effd068 [<NULL>] | [cpu]
[    0.000000] 0 ffffffe03effd230 [<NULL>] | [cpu]
[    0.000000] 0 ffffffe03effd4b8 [<NULL>] | [cpu]
[    0.000000] 0 ffffffe03effd740 [<NULL>] | [cpu]
[    0.000000] 0 ffffffe03effd9c8 [<NULL>] | [cpu]
[    0.000000] 0 ffffffe03effdc50 [<NULL>] | [cpu]
[    0.000000] 0 ffffffe03effded8 [<NULL>] | [cpu]
[    0.000000] 0 ffffffe03effe160 [<NULL>] | [cpu]
[    0.000000] 0 ffffffe03effe3e8 [<NULL>] | [cpu]
[    0.000000] 0 ffffffe03effe670 [<NULL>] | [cpu]
[    0.000000] 0 ffffffe03effe888 [cpu] | [cpu]
[    0.000000] elf_hwcap is 0x112d
[    0.000000] percpu: Embedded 17 pages/cpu @(____ptrval____) s29400 r8192 d32040 u69632
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 258055
[    0.000000] Kernel command line: earlyprintk
[    0.000000] Dentry cache hash table entries: 131072 (order: 8, 1048576 bytes)
[    0.000000] Inode-cache hash table entries: 65536 (order: 7, 524288 bytes)
[    0.000000] Sorting __ex_table...
[    0.000000] Memory: 949716K/1046528K available (6565K kernel code, 342K rwdata, 2564K rodata, 208K init, 832K bss, 96812K reserved, 0K cma-reserved)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[    0.000000] rcu: Hierarchical RCU implementation.
[    0.000000] rcu:     RCU event tracing is enabled.
[    0.000000] rcu:     RCU restricting CPUs from NR_CPUS=8 to nr_cpu_ids=1.
[    0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=1
[    0.000000] NR_IRQS: 0, nr_irqs: 0, preallocated irqs: 0
[    0.000000] plic: mapped 53 interrupts to 2 (out of 2) handlers.
[    0.000000] clocksource: riscv_clocksource: mask: 0xffffffffffffffff max_cycles: 0x24e6a1710, max_idle_ns: 440795202120 ns
[    0.000000] Console: colour dummy device 80x25
[    0.000000] console [tty0] enabled
[    0.000000] bootconsole [early0] disabled
[    0.000000] HART = 0 DTB = 80e00000
[    0.000000] search "chosen", depth: 0, uname:
[    0.000000] search "chosen", depth: 1, uname: chosen
[    0.000000] Looking for initrd properties...
[    0.000000] initrd_start=0x88000000  initrd_end=0x88442b86
[    0.000000] Command line is: earlyprintk
[    0.000000] dt_root_size_cells = 2
[    0.000000] dt_root_addr_cells = 2
[    0.000000] memory scan node memory@80000000, reg size 16,
[    0.000000]  - 80000000 ,  40000000
[    0.000000] OF: fdt: Ignoring memory range 0x80000000 - 0x80200000
[    0.000000] Linux version 4.19.0-sifive-1+ (trosinenko@trosinenko-pc) (gcc version 8.3.0 (Buildroot 2019.02-07449-g4eddd28f99)) #1 SMP Sat Jul 6 12:14:41 MSK 2019
[    0.000000] bootconsole [early0] enabled
[    0.000000] Initial ramdisk at: 0x(____ptrval____) (4467590 bytes)
[    0.000000] Zone ranges:
[    0.000000]   DMA32    [mem 0x0000000080200000-0x00000000bfffffff]
[    0.000000]   Normal   [mem 0x00000000c0000000-0x00000bffffffffff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000080200000-0x00000000bfffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000080200000-0x00000000bfffffff]
[    0.000000] INITIAL: ffffffe000c00000
[    0.000000]  -> unflatten_device_tree()
[    0.000000] Unflattening device tree:
[    0.000000] magic: d00dfeed
[    0.000000] size: 00000d56
[    0.000000] version: 00000011
[    0.000000]   size is 14192, allocating...
[    0.000000]   unflattening (____ptrval____)...
[    0.000000] fixed up name for  ->
[    0.000000] fixed up name for chosen -> chosen
[    0.000000] fixed up name for uart@10000000 -> uart
[    0.000000] fixed up name for test@100000 -> test
[    0.000000] fixed up name for virtio_mmio@10008000 -> virtio_mmio
[    0.000000] fixed up name for virtio_mmio@10007000 -> virtio_mmio
[    0.000000] fixed up name for virtio_mmio@10006000 -> virtio_mmio
[    0.000000] fixed up name for virtio_mmio@10005000 -> virtio_mmio
[    0.000000] fixed up name for virtio_mmio@10004000 -> virtio_mmio
[    0.000000] fixed up name for virtio_mmio@10003000 -> virtio_mmio
[    0.000000] fixed up name for virtio_mmio@10002000 -> virtio_mmio
[    0.000000] fixed up name for virtio_mmio@10001000 -> virtio_mmio
[    0.000000] fixed up name for cpus -> cpus
[    0.000000] fixed up name for cpu@0 -> cpu
[    0.000000] fixed up name for interrupt-controller -> interrupt-controller
[    0.000000] fixed up name for memory@80000000 -> memory
[    0.000000] fixed up name for soc -> soc
[    0.000000] fixed up name for pci@30000000 -> pci
[    0.000000] fixed up name for interrupt-controller@c000000 -> interrupt-controller
[    0.000000] fixed up name for clint@2000000 -> clint
[    0.000000]  <- unflatten_device_tree()
[    0.000000] software IO TLB: mapped [mem 0xbb1fc000-0xbf1fc000] (64MB)
[    0.000000] 0 ffffffe03effc808 [<NULL>] | [cpu]
[    0.000000] 0 ffffffe03effca78 [<NULL>] | [cpu]
[    0.000000] 0 ffffffe03effcd98 [<NULL>] | [cpu]
[    0.000000] 0 ffffffe03effd068 [<NULL>] | [cpu]
[    0.000000] 0 ffffffe03effd230 [<NULL>] | [cpu]
[    0.000000] 0 ffffffe03effd4b8 [<NULL>] | [cpu]
[    0.000000] 0 ffffffe03effd740 [<NULL>] | [cpu]
[    0.000000] 0 ffffffe03effd9c8 [<NULL>] | [cpu]
[    0.000000] 0 ffffffe03effdc50 [<NULL>] | [cpu]
[    0.000000] 0 ffffffe03effded8 [<NULL>] | [cpu]
[    0.000000] 0 ffffffe03effe160 [<NULL>] | [cpu]
[    0.000000] 0 ffffffe03effe3e8 [<NULL>] | [cpu]
[    0.000000] 0 ffffffe03effe670 [<NULL>] | [cpu]
[    0.000000] 0 ffffffe03effe888 [cpu] | [cpu]
[    0.000000] ffffffe03effe888 ffffffe03effec00 [<NULL>] | [cpu]
[    0.000000] ffffffe03effe888 ffffffe03effeee8 [memory] | [cpu]
[    0.000000] ffffffe03effe888 ffffffe03efff0b0 [<NULL>] | [cpu]
[    0.000000] ffffffe03effe888 ffffffe03efff320 [pci] | [cpu]
[    0.000000] ffffffe03effe888 ffffffe03efff858 [<NULL>] | [cpu]
[    0.000000] ffffffe03effe888 ffffffe03efffd58 [<NULL>] | [cpu]
[    0.000000] 0 ffffffe03effc808 [<NULL>] | [cpu]
[    0.000000] 0 ffffffe03effca78 [<NULL>] | [cpu]
[    0.000000] 0 ffffffe03effcd98 [<NULL>] | [cpu]
[    0.000000] 0 ffffffe03effd068 [<NULL>] | [cpu]
[    0.000000] 0 ffffffe03effd230 [<NULL>] | [cpu]
[    0.000000] 0 ffffffe03effd4b8 [<NULL>] | [cpu]
[    0.000000] 0 ffffffe03effd740 [<NULL>] | [cpu]
[    0.000000] 0 ffffffe03effd9c8 [<NULL>] | [cpu]
[    0.000000] 0 ffffffe03effdc50 [<NULL>] | [cpu]
[    0.000000] 0 ffffffe03effded8 [<NULL>] | [cpu]
[    0.000000] 0 ffffffe03effe160 [<NULL>] | [cpu]
[    0.000000] 0 ffffffe03effe3e8 [<NULL>] | [cpu]
[    0.000000] 0 ffffffe03effe670 [<NULL>] | [cpu]
[    0.000000] 0 ffffffe03effe888 [cpu] | [cpu]
[    0.000000] elf_hwcap is 0x112d
[    0.000000] percpu: Embedded 17 pages/cpu @(____ptrval____) s29400 r8192 d32040 u69632
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 258055
[    0.000000] Kernel command line: earlyprintk
[    0.000000] Dentry cache hash table entries: 131072 (order: 8, 1048576 bytes)
[    0.000000] Inode-cache hash table entries: 65536 (order: 7, 524288 bytes)
[    0.000000] Sorting __ex_table...
[    0.000000] Memory: 949716K/1046528K available (6565K kernel code, 342K rwdata, 2564K rodata, 208K init, 832K bss, 96812K reserved, 0K cma-reserved)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[    0.000000] rcu: Hierarchical RCU implementation.
[    0.000000] rcu:     RCU event tracing is enabled.
[    0.000000] rcu:     RCU restricting CPUs from NR_CPUS=8 to nr_cpu_ids=1.
[    0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=1
[    0.000000] NR_IRQS: 0, nr_irqs: 0, preallocated irqs: 0
[    0.000000] plic: mapped 53 interrupts to 2 (out of 2) handlers.
[    0.000000] clocksource: riscv_clocksource: mask: 0xffffffffffffffff max_cycles: 0x24e6a1710, max_idle_ns: 440795202120 ns
[    0.000000] Console: colour dummy device 80x25
[    0.000000] console [tty0] enabled
[    0.000000] bootconsole [early0] disabled
[    0.000000] Calibrating delay loop (skipped), value calculated using timer frequency.. 20.00 BogoMIPS (lpj=100000)
[    0.000000] pid_max: default: 32768 minimum: 301
[    0.000000] Mount-cache hash table entries: 2048 (order: 2, 16384 bytes)
[    0.000000] Mountpoint-cache hash table entries: 2048 (order: 2, 16384 bytes)
[    0.020000] rcu: Hierarchical SRCU implementation.
[    0.020000] smp: Bringing up secondary CPUs ...
[    0.020000] smp: Brought up 1 node, 1 CPU
[    0.050000] devtmpfs: initialized
[    0.050000] 0 ffffffe03effc808 [<NULL>] | [cpu]
[    0.050000] 0 ffffffe03effca78 [<NULL>] | [cpu]
[    0.050000] 0 ffffffe03effcd98 [<NULL>] | [cpu]
[    0.050000] 0 ffffffe03effd068 [<NULL>] | [cpu]
[    0.050000] 0 ffffffe03effd230 [<NULL>] | [cpu]
[    0.050000] 0 ffffffe03effd4b8 [<NULL>] | [cpu]
[    0.050000] 0 ffffffe03effd740 [<NULL>] | [cpu]
[    0.050000] 0 ffffffe03effd9c8 [<NULL>] | [cpu]
[    0.050000] 0 ffffffe03effdc50 [<NULL>] | [cpu]
[    0.050000] 0 ffffffe03effded8 [<NULL>] | [cpu]
[    0.050000] 0 ffffffe03effe160 [<NULL>] | [cpu]
[    0.050000] 0 ffffffe03effe3e8 [<NULL>] | [cpu]
[    0.050000] 0 ffffffe03effe670 [<NULL>] | [cpu]
[    0.050000] 0 ffffffe03effe888 [cpu] | [cpu]
[    0.050000] random: get_random_u32 called from bucket_table_alloc+0x76/0x17a with crng_init=0
[    0.050000] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.050000] futex hash table entries: 256 (order: 2, 16384 bytes)
[    0.060000] NET: Registered protocol family 16
[    0.090000] vgaarb: loaded
[    0.090000] SCSI subsystem initialized
[    0.090000] usbcore: registered new interface driver usbfs
[    0.090000] usbcore: registered new interface driver hub
[    0.090000] usbcore: registered new device driver usb
[    0.090000] pps_core: LinuxPPS API ver. 1 registered
[    0.090000] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <[email protected]>
[    0.090000] PTP clock support registered
[    0.100000] Advanced Linux Sound Architecture Driver Initialized.
[    0.100000] clocksource: Switched to clocksource riscv_clocksource
[    0.110000] NET: Registered protocol family 2
[    0.110000] tcp_listen_portaddr_hash hash table entries: 512 (order: 1, 8192 bytes)
[    0.110000] TCP established hash table entries: 8192 (order: 4, 65536 bytes)
[    0.110000] TCP bind hash table entries: 8192 (order: 5, 131072 bytes)
[    0.110000] TCP: Hash tables configured (established 8192 bind 8192)
[    0.110000] UDP hash table entries: 512 (order: 2, 16384 bytes)
[    0.110000] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes)
[    0.110000] NET: Registered protocol family 1
[    0.120000] Unpacking initramfs...
[    0.590000] workingset: timestamp_bits=62 max_order=18 bucket_order=0
[    0.620000] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 251)
[    0.620000] io scheduler noop registered
[    0.620000] io scheduler deadline registered
[    0.620000] io scheduler cfq registered (default)
[    0.620000] io scheduler mq-deadline registered
[    0.620000] io scheduler kyber registered
[    0.620000] shpchp: Standard Hot Plug PCI Controller Driver version: 0.4
[    0.690000] Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
[    0.690000] 10000000.uart: ttyS0 at MMIO 0x10000000 (irq = 10, base_baud = 230400) is a 16550A
[    0.720000] console [ttyS0] enabled
[    0.720000] [drm] radeon kernel modesetting enabled.
[    0.720000] [drm] amdgpu kernel modesetting enabled.
[    0.730000] loop: module loaded
[    0.730000] libphy: Fixed MDIO Bus: probed
[    0.740000] e1000e: Intel(R) PRO/1000 Network Driver - 3.2.6-k
[    0.740000] e1000e: Copyright(c) 1999 - 2015 Intel Corporation.
[    0.740000] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    0.740000] ehci-pci: EHCI PCI platform driver
[    0.740000] ehci-platform: EHCI generic platform driver
[    0.740000] mousedev: PS/2 mouse device common for all mice
[    0.740000] usbcore: registered new interface driver usbhid
[    0.740000] usbhid: USB HID core driver
[    0.740000] usbcore: registered new interface driver snd-usb-audio
[    0.740000] NET: Registered protocol family 10
[    0.750000] Segment Routing with IPv6
[    0.750000] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
[    0.750000] NET: Registered protocol family 17
[    0.750000] Key type dns_resolver registered
[    0.760000] ALSA device list:
[    0.760000]   No soundcards found.
[    0.770000] Freeing unused kernel memory: 208K
[    0.770000] This architecture does not have kernel memory protection.
[    0.770000] Run /init as init process

(โ€žแƒ“แƒ แƒแƒ˜แƒ— แƒ“แƒแƒฌแƒ”แƒกแƒ”แƒ‘แƒฃแƒšแƒ˜โ€œ แƒฎแƒแƒ–แƒ”แƒ‘แƒ˜ แƒ’แƒแƒ›แƒแƒ“แƒ˜แƒก แƒ‘แƒ˜แƒ แƒ—แƒ•แƒ˜แƒ—, แƒ›แƒแƒ— แƒฌแƒ˜แƒœ แƒฎแƒ” แƒ’แƒแƒ›แƒแƒ“แƒ˜แƒก BBL-แƒ˜แƒ—) แƒ”แƒ แƒ—แƒ˜แƒก แƒ›แƒฎแƒ แƒ˜แƒ•, FDT แƒฌแƒแƒ แƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ— แƒ˜แƒ™แƒ˜แƒ—แƒฎแƒ”แƒ‘แƒ, แƒ›แƒ”แƒแƒ แƒ”แƒก แƒ›แƒฎแƒ แƒ˜แƒ•, แƒ แƒแƒฆแƒแƒช แƒกแƒ˜แƒกแƒฃแƒšแƒ”แƒšแƒ” แƒ›แƒ˜แƒ˜แƒฆแƒ”แƒ‘แƒ แƒแƒœแƒแƒšแƒ˜แƒ–แƒจแƒ˜. แƒแƒ‘แƒ˜แƒ”แƒฅแƒขแƒ˜แƒก แƒฎแƒ”.

แƒ’แƒแƒ›แƒแƒ แƒ—แƒ•แƒ˜แƒก แƒžแƒ แƒแƒชแƒ”แƒกแƒ˜แƒก แƒ“แƒ แƒแƒก แƒ›แƒ˜แƒ•แƒฎแƒ•แƒ“แƒ˜, แƒ แƒแƒ› BBL แƒ•แƒ”แƒ  แƒฌแƒแƒ˜แƒ™แƒ˜แƒ—แƒฎแƒ "แƒแƒ แƒ›แƒแƒ’แƒ˜" แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒ˜, แƒแƒ แƒ แƒ˜แƒ›แƒ˜แƒขแƒแƒ›, แƒ แƒแƒ› แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ แƒ˜แƒงแƒ แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒแƒจแƒ˜, แƒแƒ แƒแƒ›แƒ”แƒ“ แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒ˜แƒ›แƒ˜แƒขแƒแƒ›, แƒ แƒแƒ› root แƒ™แƒ•แƒแƒœแƒซแƒก แƒฐแƒฅแƒแƒœแƒ“แƒ #address-cells = <1>; #size-cells = <1>;.

แƒ’แƒแƒ›แƒแƒ แƒ—แƒ•แƒ˜แƒก แƒ’แƒแƒ›แƒแƒ›แƒแƒ•แƒแƒšแƒ˜ แƒ’แƒแƒคแƒแƒ แƒ—แƒแƒ”แƒ‘แƒ˜แƒ—, แƒ“แƒแƒ•แƒ˜แƒœแƒแƒฎแƒ”, แƒ แƒแƒ› แƒ›แƒ˜แƒ—แƒ˜แƒ—แƒ”แƒ‘แƒ”แƒ‘แƒ˜ type ะธ name "แƒœแƒแƒชแƒ”แƒ›แƒ˜" แƒ“แƒ แƒกแƒแƒ™แƒ›แƒแƒแƒ“ แƒฃแƒชแƒœแƒแƒฃแƒ แƒ˜ แƒ’แƒ–แƒ˜แƒ—: แƒ›แƒแƒ—แƒ˜ แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒ‘แƒแƒ˜แƒขแƒ˜ (แƒœแƒฃแƒšแƒ˜แƒ“แƒแƒœ แƒ“แƒแƒฌแƒงแƒ”แƒ‘แƒฃแƒšแƒ˜) แƒ’แƒแƒ“แƒแƒ™แƒ”แƒ—แƒ“แƒ แƒœแƒฃแƒšแƒแƒ›แƒ“แƒ”, แƒ แƒแƒฆแƒแƒช แƒ›แƒกแƒ’แƒแƒ•แƒกแƒ˜ 0xabcdef -> 0xab00ef. แƒœแƒแƒชแƒœแƒแƒ‘แƒ˜ แƒขแƒแƒฅแƒขแƒ˜แƒ™แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒ›แƒแƒ›แƒ˜แƒฌแƒ˜แƒ: แƒ˜แƒชแƒแƒ“แƒ” แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒ”แƒ‘แƒ˜, แƒกแƒแƒ“แƒแƒช แƒ“แƒแƒ–แƒ˜แƒแƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒแƒ, แƒ“แƒแƒ•แƒแƒ›แƒแƒขแƒ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒแƒจแƒ˜ printk แƒ“แƒแƒ‘แƒ”แƒญแƒ“แƒ”แƒ— แƒ”แƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜. แƒ™แƒแƒ แƒ’แƒแƒ“, แƒ—แƒแƒ•แƒแƒ“ แƒ’แƒแƒ›แƒแƒฌแƒ•แƒ”แƒ•แƒ”แƒ‘แƒ˜ printk แƒ’แƒแƒแƒคแƒแƒœแƒขแƒ”แƒ— แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒ˜แƒฅ, แƒกแƒแƒ“แƒแƒช แƒชแƒแƒขแƒแƒ. แƒกแƒแƒ›แƒฌแƒฃแƒฎแƒแƒ แƒแƒ“, แƒ”แƒก แƒแƒ  แƒ’แƒแƒฎแƒ“แƒ แƒ‘แƒ”แƒ•แƒ แƒแƒ“ แƒฃแƒคแƒ แƒ แƒœแƒแƒ—แƒ”แƒšแƒ˜. แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ“แƒแƒ•แƒ˜แƒฌแƒงแƒ” แƒ“แƒแƒจแƒšแƒ˜แƒšแƒ”แƒ‘แƒ—แƒแƒœ แƒ™แƒแƒœแƒกแƒฃแƒšแƒขแƒแƒชแƒ˜แƒ”แƒ‘แƒ˜ objdump แƒ•แƒ”แƒ แƒกแƒ˜แƒ, แƒฎแƒ”แƒšแƒ˜แƒ— แƒ“แƒแƒแƒงแƒ”แƒœแƒ”แƒ— แƒฌแƒงแƒ•แƒ”แƒขแƒ˜แƒก แƒฌแƒ”แƒ แƒขแƒ˜แƒšแƒ”แƒ‘แƒ˜ แƒ“แƒ แƒ’แƒแƒ˜แƒแƒ แƒ”แƒ— แƒ™แƒแƒ“แƒ˜แƒก แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒฃแƒ แƒ˜ แƒ’แƒแƒœแƒงแƒแƒคแƒ˜แƒšแƒ”แƒ‘แƒ แƒ”แƒขแƒแƒžแƒแƒ‘แƒ แƒ˜แƒ•แƒแƒ“. แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ™แƒ˜ แƒแƒฆแƒ›แƒแƒแƒฉแƒ˜แƒœแƒ แƒ˜แƒ“แƒฃแƒ›แƒแƒšแƒ˜ แƒ“แƒ แƒฃแƒกแƒ˜แƒแƒ›แƒแƒ•แƒœแƒ แƒ แƒแƒ›: แƒ—แƒฃ แƒ›แƒแƒจแƒ˜แƒœแƒ•แƒ” แƒ“แƒแƒ•แƒแƒงแƒ”แƒœแƒ”แƒ‘ แƒฌแƒงแƒ•แƒ”แƒขแƒ˜แƒก แƒฌแƒ”แƒ แƒขแƒ˜แƒšแƒก แƒกแƒแƒ“แƒ›แƒ” แƒจแƒ”แƒ“แƒแƒ แƒ”แƒ‘แƒ˜แƒ— แƒจแƒแƒ แƒก แƒชแƒœแƒแƒ‘แƒ˜แƒšแƒ˜-แƒ™แƒแƒ แƒ’แƒ˜ แƒ›แƒ“แƒ’แƒแƒ›แƒแƒ แƒ”แƒแƒ‘แƒ˜แƒ“แƒแƒœ, แƒ›แƒแƒจแƒ˜แƒœ, แƒ›แƒแƒกแƒ–แƒ” แƒ’แƒแƒฉแƒ”แƒ แƒ”แƒ‘แƒ˜แƒ—, แƒ“แƒแƒ•แƒ˜แƒœแƒแƒฎแƒแƒ• แƒฃแƒ™แƒ•แƒ” แƒ“แƒแƒ–แƒ˜แƒแƒœแƒ”แƒ‘แƒฃแƒš แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒแƒก. แƒ›แƒแƒ’แƒ แƒแƒ› แƒ—แƒฃ แƒ—แƒฅแƒ•แƒ”แƒœ แƒชแƒ“แƒ˜แƒšแƒแƒ‘แƒ— แƒฉแƒฃแƒ›แƒแƒ“ แƒ›แƒ˜แƒ˜แƒžแƒแƒ แƒแƒ— แƒ›แƒ˜แƒกแƒ™แƒ”แƒœ แƒ”แƒขแƒแƒžแƒแƒ‘แƒ แƒ˜แƒ•แƒแƒ“, แƒ‘แƒแƒ’แƒ˜ แƒแƒฎแƒ”แƒ แƒฎแƒ”แƒ‘แƒก แƒ“แƒแƒ›แƒแƒšแƒ•แƒแƒก! แƒ›แƒแƒก แƒแƒฅแƒ•แƒก แƒ’แƒแƒขแƒ”แƒฎแƒ˜แƒšแƒ˜ แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒ˜แƒก แƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ”แƒ แƒ˜ แƒ“แƒ แƒฅแƒ”แƒจแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ›แƒแƒšแƒแƒ•แƒก แƒจแƒ”แƒชแƒ“แƒแƒ›แƒแƒก, แƒ—แƒฃ แƒ›แƒฃแƒ“แƒ›แƒ˜แƒ•แƒแƒ“ แƒ˜แƒ—แƒฎแƒแƒ•แƒ— แƒกแƒแƒญแƒ˜แƒ แƒ แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒแƒก. แฒ แƒ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒ—แƒฃโ€ฆ

แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒ˜แƒก แƒฉแƒแƒœแƒแƒชแƒ•แƒšแƒ”แƒ‘แƒ

แƒ˜แƒ› แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ˜แƒก แƒ’แƒแƒ“แƒแƒญแƒ แƒ˜แƒก แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒšแƒแƒ‘แƒแƒก, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒฉแƒ”แƒ›แƒก แƒ›แƒฎแƒแƒ แƒ”แƒก แƒแƒ  แƒ˜แƒงแƒ, แƒ•แƒ˜แƒ•แƒแƒ แƒแƒฃแƒ“แƒ”, แƒ แƒแƒ› แƒจแƒ”แƒกแƒแƒซแƒšแƒแƒ แƒแƒฎแƒšแƒแƒฎแƒแƒœ แƒ›แƒ˜แƒ•แƒ˜แƒฆแƒ” แƒ’แƒแƒขแƒ”แƒฎแƒ˜แƒšแƒ˜ แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒ˜แƒก แƒฏแƒแƒฎแƒ˜. แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ’แƒแƒ›แƒแƒฎแƒกแƒ”แƒœแƒ“แƒ, แƒ แƒแƒ› แƒแƒ—แƒ˜ แƒฌแƒšแƒ˜แƒก แƒœแƒ”แƒขแƒ‘แƒฃแƒฅแƒ˜ แƒแƒ แƒ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒžแƒแƒ แƒขแƒแƒขแƒฃแƒšแƒ˜ แƒ™แƒแƒ›แƒžแƒ˜แƒฃแƒขแƒ”แƒ แƒ˜แƒ, แƒแƒ แƒแƒ›แƒ”แƒ“ DDR2 SO-DIMM-แƒ˜แƒก แƒฆแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒฌแƒงแƒแƒ แƒแƒช. แƒ‘แƒแƒœแƒฃแƒกแƒแƒ“ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒฉแƒแƒ“แƒแƒ— แƒ›แƒแƒกแƒจแƒ˜ แƒ“แƒแƒคแƒ˜แƒ“แƒแƒœ แƒแƒ›แƒแƒฆแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒ แƒ“แƒ แƒ“แƒแƒแƒงแƒ”แƒœแƒแƒ— Memtest แƒ—แƒ˜แƒ—แƒฅแƒ›แƒ˜แƒก แƒ›แƒงแƒ˜แƒกแƒ˜แƒ”แƒ แƒแƒ“ แƒฉแƒแƒ›แƒแƒ™แƒ˜แƒ“แƒ”แƒ‘แƒ (Linux, แƒกแƒฎแƒ•แƒแƒ—แƒ แƒจแƒแƒ แƒ˜แƒก, แƒ“แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒฃแƒšแƒ˜แƒ แƒ—แƒ˜แƒ—แƒฅแƒ›แƒ˜แƒก แƒ’แƒ แƒแƒคแƒ˜แƒ™แƒฃแƒš แƒ’แƒแƒ แƒกแƒ–แƒ”. แƒ›แƒแƒ’แƒ แƒแƒ› แƒฃแƒ›แƒฏแƒแƒ‘แƒ”แƒกแƒ˜แƒ แƒแƒ  แƒ’แƒแƒ˜แƒ›แƒ”แƒแƒ แƒแƒ— แƒ”แƒก แƒ”แƒฅแƒกแƒžแƒ”แƒ แƒ˜แƒ›แƒ”แƒœแƒขแƒ˜, แƒ—แƒฃ แƒแƒคแƒแƒกแƒ”แƒ‘แƒ— แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒแƒก แƒ“แƒแƒ›แƒแƒœแƒขแƒแƒŸแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ“แƒ˜แƒกแƒ™แƒ”แƒ‘แƒ–แƒ”...). แƒ”แƒ แƒ—แƒ˜แƒก แƒ›แƒฎแƒ แƒ˜แƒ•, แƒจแƒ”แƒ’แƒ•แƒ˜แƒซแƒšแƒ˜แƒ แƒ•แƒ˜แƒ•แƒแƒ แƒแƒฃแƒ“แƒแƒ—, แƒ แƒแƒ› แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒ แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒแƒ  แƒจแƒ”แƒ”แƒคแƒ”แƒ แƒ”แƒ‘แƒแƒ“แƒ แƒแƒ› แƒ™แƒแƒœแƒ™แƒ แƒ”แƒขแƒฃแƒš แƒœแƒ”แƒขแƒ‘แƒฃแƒ™แƒก. แƒ›แƒ”แƒแƒ แƒ” แƒ›แƒฎแƒ แƒ˜แƒ•, แƒ›แƒแƒœ แƒจแƒ”แƒซแƒšแƒ แƒฉแƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ! แƒ˜แƒงแƒ แƒ˜แƒ›แƒ”แƒ“แƒ˜, แƒ แƒแƒ› แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒ แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ "แƒ’แƒแƒขแƒ”แƒฎแƒ˜แƒšแƒ˜" แƒ˜แƒงแƒ แƒ“แƒ แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ แƒฉแƒ”แƒ›แƒก แƒจแƒ”แƒคแƒฃแƒ—แƒ•แƒแƒจแƒ˜ แƒแƒ  แƒ˜แƒงแƒ.

แƒ”แƒก แƒœแƒ˜แƒจแƒœแƒแƒ•แƒก, แƒ แƒแƒ› แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒกแƒชแƒแƒ“แƒแƒ— แƒ“แƒ แƒแƒ”แƒ‘แƒ˜แƒ— แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ netbook แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒ˜แƒ—. แƒกแƒแƒ›แƒฌแƒฃแƒฎแƒแƒ แƒแƒ“, Quartus 18-แƒ›แƒ แƒแƒ  แƒ˜แƒชแƒ˜แƒก แƒ แƒแƒ’แƒแƒ  แƒ’แƒแƒœแƒแƒแƒฎแƒšแƒแƒก แƒ”แƒก IP Core, แƒ แƒแƒ—แƒ แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜ แƒ˜แƒงแƒแƒก แƒ›แƒ˜แƒกแƒ˜ แƒ แƒ”แƒ“แƒแƒฅแƒขแƒ˜แƒ แƒ”แƒ‘แƒ. แƒ”แƒก แƒœแƒ˜แƒจแƒœแƒแƒ•แƒก, แƒ แƒแƒ› แƒกแƒแƒ‘แƒแƒšแƒแƒแƒ“ แƒ“แƒแƒ“แƒ’แƒ แƒ“แƒ แƒ, แƒ•แƒ˜แƒกแƒฌแƒแƒ•แƒšแƒแƒ— แƒ แƒแƒ’แƒแƒ  แƒจแƒ”แƒ•แƒฅแƒ›แƒœแƒแƒ— แƒแƒฎแƒแƒšแƒ˜ แƒ˜แƒœแƒกแƒขแƒแƒœแƒชแƒ˜แƒ”แƒ‘แƒ˜. แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒกแƒแƒ™แƒ›แƒแƒแƒ“ แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜ แƒแƒฆแƒ›แƒแƒฉแƒœแƒ“แƒ: IP แƒ™แƒแƒขแƒแƒšแƒแƒ’แƒจแƒ˜ แƒ•แƒ”แƒซแƒ”แƒ‘แƒ— แƒžแƒฃแƒœแƒฅแƒขแƒก DDR2 SDRAM Controller ALTMEMPHY Intel FPGA IP-แƒ˜แƒ— แƒ“แƒ แƒ•แƒ˜แƒฆแƒ”แƒ‘แƒ— แƒ‘แƒšแƒแƒ™แƒก แƒ˜แƒ’แƒ˜แƒ•แƒ” แƒ˜แƒœแƒขแƒ”แƒ แƒคแƒ”แƒ˜แƒกแƒ˜แƒ—, แƒ แƒแƒ’แƒแƒ แƒช แƒแƒ“แƒ แƒ”. แƒ”แƒ แƒ—แƒแƒ“แƒ”แƒ แƒ—แƒ˜ แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ แƒแƒ แƒ˜แƒก แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒ˜แƒก แƒกแƒฌแƒแƒ แƒ˜ แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ.

แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒ“แƒฃแƒšแƒ˜แƒก แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ˜แƒก แƒ›แƒ˜แƒฆแƒ”แƒ‘แƒ

แƒ›แƒแƒ“แƒฃแƒšแƒ˜แƒก แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ˜แƒก แƒจแƒ”แƒ“แƒแƒ แƒ”แƒ‘แƒ˜แƒ— แƒแƒจแƒ™แƒแƒ แƒ แƒ’แƒ–แƒ แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก: แƒฌแƒแƒ˜แƒ™แƒ˜แƒ—แƒฎแƒ”แƒ— แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ˜ SPD-แƒ“แƒแƒœ. แƒ›แƒแƒ แƒ—แƒšแƒแƒช, แƒ—แƒฃ แƒฉแƒ•แƒ”แƒฃแƒšแƒ”แƒ‘แƒ แƒ˜แƒ•แƒ˜ แƒ™แƒแƒ›แƒžแƒ˜แƒฃแƒขแƒ”แƒ แƒ˜ แƒ™แƒ˜แƒ—แƒฎแƒฃแƒšแƒแƒ‘แƒก SPD แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒก แƒ“แƒ แƒ›แƒแƒกแƒ–แƒ” แƒ“แƒแƒงแƒ แƒ“แƒœแƒแƒ‘แƒ˜แƒ— แƒแƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒ˜แƒ แƒ”แƒ‘แƒก แƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ”แƒ แƒก, แƒ›แƒแƒ“แƒ˜แƒ— แƒ’แƒแƒ›แƒแƒ•แƒแƒ™แƒšแƒแƒ— แƒ”แƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜ แƒแƒ แƒกแƒ”แƒ‘แƒฃแƒš แƒœแƒ”แƒขแƒ‘แƒฃแƒฅแƒ–แƒ” แƒ“แƒ แƒจแƒ”แƒ•แƒ˜แƒงแƒ•แƒแƒœแƒแƒ— แƒชแƒฎแƒ แƒ˜แƒšแƒจแƒ˜.

แƒ”แƒก แƒ™แƒ”แƒ—แƒ“แƒ”แƒ‘แƒ Ubuntu-แƒ–แƒ” แƒซแƒแƒšแƒ˜แƒแƒœ แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜: แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒ“แƒแƒแƒ˜แƒœแƒกแƒขแƒแƒšแƒ˜แƒ แƒแƒ— แƒžแƒแƒ™แƒ”แƒขแƒ˜ i2c-tools, แƒฉแƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ”แƒ— แƒ›แƒแƒ“แƒฃแƒšแƒ”แƒ‘แƒ˜ eeprom ะธ i2c-i801 (แƒ—แƒฃแƒ›แƒชแƒ แƒ“แƒแƒ แƒฌแƒ›แƒฃแƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒแƒ  แƒ•แƒแƒ , แƒ แƒแƒ› แƒ›แƒ”แƒแƒ แƒ” แƒ›แƒซแƒฆแƒแƒšแƒ˜ แƒงแƒ•แƒ”แƒšแƒ’แƒแƒœ แƒ˜แƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒก), แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ’แƒแƒ˜แƒฅแƒ”แƒชแƒ˜ decode-dimms:

แƒ“แƒ”แƒ™แƒแƒ“แƒ˜แƒ แƒ”แƒ‘แƒ-แƒแƒ›แƒชแƒ˜แƒ แƒ”แƒ‘แƒก แƒ’แƒแƒ›แƒแƒ›แƒแƒ•แƒแƒšแƒก

# decode-dimms version 6231 (2014-02-20 10:54:34 +0100)
Memory Serial Presence Detect Decoder
By Philip Edelbrock, Christian Zuckschwerdt, Burkart Lingner,
Jean Delvare, Trent Piepho and others
Decoding EEPROM: /sys/bus/i2c/drivers/eeprom/0-0050
Guessing DIMM is in                             bank 1
---=== SPD EEPROM Information ===---
EEPROM Checksum of bytes 0-62                   OK (0x00)
SPD Revision                                    Invalid
Fundamental Memory type                         Unknown (0x00)
---=== Manufacturing Information ===---
Manufacturer                                    Undefined
Part Number                                     Undefined
Decoding EEPROM: /sys/bus/i2c/drivers/eeprom/4-0050
Guessing DIMM is in                             bank 1
---=== SPD EEPROM Information ===---
EEPROM Checksum of bytes 0-62                   OK (0x00)
SPD Revision                                    Invalid
Fundamental Memory type                         Unknown (0x00)
---=== Manufacturing Information ===---
Manufacturer                                    Undefined
Part Number                                     Undefined
Decoding EEPROM: /sys/bus/i2c/drivers/eeprom/6-0050
Guessing DIMM is in                             bank 1
---=== SPD EEPROM Information ===---
EEPROM Checksum of bytes 0-62                   OK (0x76)
# of bytes written to SDRAM EEPROM              128
Total number of bytes in EEPROM                 256
Fundamental Memory type                         DDR2 SDRAM
SPD Revision                                    1.2
---=== Memory Characteristics ===---
Maximum module speed                            800 MHz (PC2-6400)
Size                                            1024 MB
Banks x Rows x Columns x Bits                   8 x 13 x 10 x 64
Ranks                                           2
SDRAM Device Width                              16 bits
Module Height                                   30.0 mm
Module Type                                     SO-DIMM (67.6 mm)
DRAM Package                                    Planar
Voltage Interface Level                         SSTL 1.8V
Module Configuration Type                       No Parity
Refresh Rate                                    Reduced (7.8 us) - Self Refresh
Supported Burst Lengths                         4, 8
tCL-tRCD-tRP-tRAS                               6-6-6-18
Supported CAS Latencies (tCL)                   6T, 5T, 4T
Minimum Cycle Time                              2.50 ns at CAS 6 (tCK min)
3.00 ns at CAS 5
3.75 ns at CAS 4
Maximum Access Time                             0.40 ns at CAS 6 (tAC)
0.45 ns at CAS 5
0.50 ns at CAS 4
Maximum Cycle Time (tCK max)                    8.00 ns
---=== Timing Parameters ===---
Address/Command Setup Time Before Clock (tIS)   0.17 ns
Address/Command Hold Time After Clock (tIH)     0.25 ns
Data Input Setup Time Before Strobe (tDS)       0.05 ns
Data Input Hold Time After Strobe (tDH)         0.12 ns
Minimum Row Precharge Delay (tRP)               15.00 ns
Minimum Row Active to Row Active Delay (tRRD)   10.00 ns
Minimum RAS# to CAS# Delay (tRCD)               15.00 ns
Minimum RAS# Pulse Width (tRAS)                 45.00 ns
Write Recovery Time (tWR)                       15.00 ns
Minimum Write to Read CMD Delay (tWTR)          7.50 ns
Minimum Read to Pre-charge CMD Delay (tRTP)     7.50 ns
Minimum Active to Auto-refresh Delay (tRC)      60.00 ns
Minimum Recovery Delay (tRFC)                   127.50 ns
Maximum DQS to DQ Skew (tDQSQ)                  0.20 ns
Maximum Read Data Hold Skew (tQHS)              0.30 ns
---=== Manufacturing Information ===---
Manufacturer                                    Samsung
Manufacturing Location Code                     0x02
Part Number                                     M4 70T2864QZ3-CF7
Revision Code                                   0x3351
Manufacturing Date                              2009-W34
Assembly Serial Number                          0x79C64E9A
Number of SDRAM DIMMs detected and decoded: 3

แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ แƒ˜แƒก แƒแƒ แƒ˜แƒก, แƒ แƒแƒ› แƒแƒฅ แƒ’แƒแƒ แƒ™แƒ•แƒ”แƒฃแƒšแƒ˜ แƒ“แƒ แƒ แƒแƒ  แƒแƒ แƒ˜แƒก แƒ›แƒ˜แƒ—แƒ˜แƒ—แƒ”แƒ‘แƒฃแƒšแƒ˜, แƒแƒ›แƒ˜แƒขแƒแƒ› แƒแƒ•แƒ˜แƒฆแƒแƒ— แƒ›แƒ”แƒแƒ แƒ” แƒ’แƒ–แƒ.

แƒ แƒ แƒฌแƒ”แƒ แƒ˜แƒ แƒฉแƒ•แƒ”แƒœแƒก แƒ›แƒแƒ“แƒฃแƒšแƒ”แƒ‘แƒ–แƒ”:

แƒœแƒแƒฌแƒ˜แƒšแƒ˜ 4: แƒฏแƒ”แƒ  แƒ™แƒ˜แƒ“แƒ”แƒ• แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก Linux RocketChip RISC-V-แƒ–แƒ”แƒœแƒแƒฌแƒ˜แƒšแƒ˜ 4: แƒฏแƒ”แƒ  แƒ™แƒ˜แƒ“แƒ”แƒ• แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก Linux RocketChip RISC-V-แƒ–แƒ”

แƒแƒ› แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜ แƒฃแƒคแƒ แƒ แƒกแƒแƒ˜แƒœแƒขแƒ”แƒ แƒ”แƒกแƒแƒ แƒฌแƒแƒ แƒฌแƒ”แƒ แƒ แƒ—แƒแƒ•แƒแƒ“ แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒ˜แƒก แƒฉแƒ˜แƒžแƒ”แƒ‘แƒ–แƒ”: K4T1G164QQ-HCF7. Google-แƒจแƒ˜ แƒแƒ› แƒกแƒขแƒ แƒ˜แƒฅแƒแƒœแƒ˜แƒก แƒแƒ™แƒ แƒ”แƒคแƒ˜แƒ—, แƒฉแƒ•แƒ”แƒœ แƒ•แƒ˜แƒฆแƒ”แƒ‘แƒ— แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒชแƒฎแƒ แƒ˜แƒšแƒก แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒแƒ—แƒ”แƒฃแƒšแƒ˜ แƒ’แƒ•แƒ”แƒ แƒ“แƒ˜แƒกแƒ’แƒแƒœ แƒงแƒ•แƒ”แƒšแƒ แƒกแƒแƒญแƒ˜แƒ แƒ แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ˜แƒ—, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒกแƒฌแƒแƒ แƒแƒ“ แƒ˜แƒงแƒแƒก แƒฉแƒแƒ แƒ—แƒฃแƒšแƒ˜ IP Core แƒ—แƒ•แƒ˜แƒกแƒ”แƒ‘แƒ”แƒ‘แƒจแƒ˜. แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒงแƒฃแƒ แƒแƒ“แƒฆแƒ”แƒ‘แƒ แƒ›แƒ˜แƒแƒฅแƒชแƒ˜แƒ”แƒ— แƒ’แƒแƒ–แƒแƒ›แƒ•แƒ˜แƒก แƒ”แƒ แƒ—แƒ”แƒฃแƒšแƒ”แƒ‘แƒก: แƒกแƒแƒ“แƒฆแƒแƒช nsแƒกแƒแƒ“แƒฆแƒแƒช - ps, แƒ–แƒแƒ’แƒฏแƒ”แƒ  แƒ™แƒ˜ แƒแƒ–แƒ˜แƒแƒ แƒ”แƒ‘แƒก tCK. แƒ›แƒ” แƒแƒ  แƒ’แƒแƒกแƒฌแƒแƒ•แƒšแƒ˜แƒ— แƒ แƒแƒก แƒฃแƒœแƒ“แƒ แƒ›แƒ˜แƒแƒฅแƒชแƒ˜แƒแƒ— แƒงแƒฃแƒ แƒแƒ“แƒฆแƒ”แƒ‘แƒ - แƒ›แƒ” แƒ—แƒ•แƒ˜แƒ—แƒแƒœ แƒ“แƒแƒ•แƒแƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒ˜แƒ แƒ” แƒ‘แƒ”แƒ•แƒ แƒ˜ แƒ แƒแƒ› แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒ˜แƒ— (แƒ•แƒ”แƒ  แƒ›แƒแƒ’แƒชแƒ”แƒ›แƒ— แƒ’แƒแƒ แƒแƒœแƒขแƒ˜แƒแƒก, แƒ แƒแƒ› แƒ—แƒฅแƒ•แƒ”แƒœ แƒแƒ  แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒแƒ› แƒ’แƒ–แƒ˜แƒ— แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒ˜แƒก แƒแƒœ FPGA-แƒก โ€žแƒ“แƒแƒฌแƒ•แƒโ€œ). แƒ›แƒ” แƒ›แƒฎแƒแƒšแƒแƒ“ แƒแƒ›แƒแƒ–แƒ” แƒ’แƒแƒ•แƒแƒ›แƒแƒฎแƒ•แƒ˜แƒšแƒ”แƒ‘ แƒ—แƒฅแƒ•แƒ”แƒœแƒก แƒงแƒฃแƒ แƒแƒ“แƒฆแƒ”แƒ‘แƒแƒก: แƒ›แƒ” แƒ•แƒ”แƒ  แƒ•แƒแƒฎแƒ”แƒ แƒฎแƒ”แƒ‘แƒ“แƒ˜ แƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ”แƒ แƒก แƒ“แƒ˜แƒ“แƒ˜ แƒฎแƒœแƒ˜แƒก แƒ’แƒแƒœแƒ›แƒแƒ•แƒšแƒแƒ‘แƒแƒจแƒ˜ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒแƒจแƒ˜ แƒ“แƒ แƒ‘แƒแƒšแƒ แƒœแƒแƒ‘แƒ˜แƒฏแƒ˜ แƒ˜แƒงแƒ แƒ˜แƒ›แƒ˜แƒก แƒ’แƒแƒชแƒœแƒแƒ‘แƒ˜แƒ”แƒ แƒ”แƒ‘แƒ, แƒ แƒแƒ› แƒ›แƒ” แƒ›แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒแƒ“แƒ แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒ˜แƒก แƒงแƒ•แƒ”แƒšแƒ แƒ˜แƒœแƒขแƒ”แƒ แƒคแƒ”แƒ˜แƒกแƒ˜แƒก แƒกแƒ˜แƒ’แƒแƒœแƒ˜แƒก แƒจแƒ”แƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ แƒ’แƒ”แƒœแƒ”แƒ แƒ˜แƒ แƒ”แƒ‘แƒฃแƒš Verilog แƒ™แƒแƒ“แƒ—แƒแƒœ แƒจแƒ”แƒกแƒแƒ‘แƒแƒ›แƒ˜แƒกแƒแƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก. : แƒ‘แƒแƒšแƒแƒก แƒ“แƒ แƒ‘แƒแƒšแƒแƒก, แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒจแƒ”แƒ“แƒ˜ MemIfBundle แƒ›แƒ˜แƒ—แƒ˜แƒ—แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ val mem_ba = IO(Output(UInt(2.W))), แƒ“แƒ แƒแƒ แƒ˜แƒก 8 แƒ‘แƒแƒœแƒ™แƒ˜ (แƒแƒœแƒฃ แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒ˜ 3 แƒ‘แƒ˜แƒขแƒ˜แƒแƒœแƒ˜), แƒ›แƒแƒจแƒ˜แƒœ แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒ แƒแƒช แƒ’แƒ•แƒแƒฅแƒ•แƒก แƒแƒ แƒ˜แƒก แƒฐแƒแƒ”แƒ แƒจแƒ˜ แƒฉแƒแƒ›แƒแƒ™แƒ˜แƒ“แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒ˜แƒก แƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ”แƒ แƒ˜แƒ“แƒแƒœ แƒ’แƒแƒ›แƒแƒ›แƒแƒ•แƒแƒšแƒ˜ - แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ, แƒ›แƒแƒ’แƒ แƒแƒ› แƒแƒ แƒ แƒ™แƒ แƒ˜แƒขแƒ˜แƒ™แƒฃแƒšแƒ˜, แƒแƒ›แƒ˜แƒขแƒแƒ› แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒกแƒ˜แƒœแƒ—แƒ”แƒ–แƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ, แƒ›แƒแƒ’แƒ แƒแƒ› แƒแƒ  แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก.

แƒจแƒ”แƒกแƒแƒซแƒšแƒแƒ, แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒ˜แƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒก แƒซแƒ•แƒ”แƒš แƒ›แƒแƒ“แƒฃแƒšแƒ—แƒแƒœ, แƒ—แƒฃ แƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ”แƒ แƒ˜ แƒ’แƒแƒœแƒแƒฎแƒšแƒ“แƒ”แƒ‘แƒ, แƒ›แƒแƒ’แƒ แƒแƒ› แƒแƒฎแƒšแƒ แƒซแƒแƒšแƒ˜แƒแƒœ แƒ›แƒ”แƒ–แƒแƒ แƒ”แƒ‘แƒ แƒžแƒแƒขแƒ”แƒœแƒชแƒ˜แƒฃแƒ  แƒ›แƒชแƒฃแƒ แƒแƒ• แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ”แƒ‘แƒ—แƒแƒœ แƒ’แƒแƒ›แƒ™แƒšแƒแƒ•แƒ”แƒ‘แƒ: แƒกแƒแƒ™แƒ›แƒแƒ แƒ˜แƒกแƒแƒ“ แƒ›แƒแƒฅแƒ•แƒก แƒกแƒแƒ™แƒฃแƒ—แƒแƒ แƒ˜.

แƒแƒกแƒ” แƒ แƒแƒ›, แƒ’แƒแƒ“แƒแƒแƒ“แƒ’แƒ˜แƒšแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ timebase-frequency DTS-แƒจแƒ˜ แƒ™แƒแƒœแƒ™แƒ แƒ”แƒขแƒฃแƒšแƒ˜ แƒžแƒ แƒแƒชแƒ”แƒกแƒแƒ แƒ˜แƒก แƒ“แƒแƒœแƒ˜แƒ“แƒแƒœ แƒ™แƒ•แƒแƒœแƒซแƒ˜แƒก แƒ“แƒแƒœแƒ”แƒ›แƒ“แƒ” cpus (แƒ™แƒ”แƒ แƒœแƒ”แƒšแƒ˜แƒก แƒกแƒแƒ™แƒ›แƒแƒแƒ“ แƒ’แƒแƒกแƒแƒ’แƒ”แƒ‘แƒ˜ แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ˜แƒก แƒ›แƒ˜แƒฎแƒ”แƒ“แƒ•แƒ˜แƒ—), แƒ•แƒ˜แƒฆแƒ”แƒ‘แƒ—:

แƒ“แƒแƒ›แƒแƒšแƒฃแƒšแƒ˜ แƒขแƒ”แƒฅแƒกแƒขแƒ˜

[    0.000000] OF: fdt: Ignoring memory range 0x80000000 - 0x80200000
[    0.000000] Linux version 4.19.0-sifive-1+ (trosinenko@trosinenko-pc) (gcc version 8.3.0 (Buildroot 2019.02-07449-g4eddd28f99)) #1 SMP Tue Jul 9 22:42:36 MSK 2019
[    0.000000] bootconsole [early0] enabled
[    0.000000] Initial ramdisk at: 0x(____ptrval____) (16777216 bytes)
[    0.000000] Zone ranges:
[    0.000000]   DMA32    [mem 0x0000000080200000-0x00000000bfffffff]
[    0.000000]   Normal   [mem 0x00000000c0000000-0x00000bffffffffff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000080200000-0x00000000bfffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000080200000-0x00000000bfffffff]
[    0.000000] software IO TLB: mapped [mem 0xbb1fc000-0xbf1fc000] (64MB)
[    0.000000] elf_hwcap is 0x112d
[    0.000000] percpu: Embedded 17 pages/cpu @(____ptrval____) s29400 r8192 d32040 u69632
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 258055
[    0.000000] Kernel command line: debug console=ttySIF0,125200 root=/dev/mmcblk0p2 loglevel=7 rootwait
[    0.000000] Dentry cache hash table entries: 131072 (order: 8, 1048576 bytes)
[    0.000000] Inode-cache hash table entries: 65536 (order: 7, 524288 bytes)
[    0.000000] Sorting __ex_table...
[    0.000000] Memory: 937696K/1046528K available (6565K kernel code, 343K rwdata, 2564K rodata, 208K init, 832K bss, 108832K reserved, 0K cma-reserved)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[    0.000000] rcu: Hierarchical RCU implementation.
[    0.000000] rcu:     RCU event tracing is enabled.
[    0.000000] rcu:     RCU restricting CPUs from NR_CPUS=8 to nr_cpu_ids=1.
[    0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=1
[    0.000000] NR_IRQS: 0, nr_irqs: 0, preallocated irqs: 0
[    0.000000] plic: mapped 8 interrupts to 1 (out of 2) handlers.
[    0.000000] clocksource: riscv_clocksource: mask: 0xffffffffffffffff max_cycles: 0x1d854df40, max_idle_ns: 3526361616960 ns
[    0.000000] Console: colour dummy device 80x25
[    0.000000] Calibrating delay loop (skipped), value calculated using timer frequency.. 2.00 BogoMIPS (lpj=10000)
[    0.020000] pid_max: default: 32768 minimum: 301
[    0.030000] Mount-cache hash table entries: 2048 (order: 2, 16384 bytes)
[    0.040000] Mountpoint-cache hash table entries: 2048 (order: 2, 16384 bytes)
[    0.140000] rcu: Hierarchical SRCU implementation.
[    0.190000] smp: Bringing up secondary CPUs ...
[    0.190000] smp: Brought up 1 node, 1 CPU
[    0.220000] devtmpfs: initialized
[    0.300000] random: get_random_u32 called from bucket_table_alloc+0x76/0x17a with crng_init=0
[    0.330000] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.340000] futex hash table entries: 256 (order: 2, 16384 bytes)
[    0.380000] NET: Registered protocol family 16
[    1.850000] vgaarb: loaded
[    1.870000] SCSI subsystem initialized
[    1.900000] usbcore: registered new interface driver usbfs
[    1.910000] usbcore: registered new interface driver hub
[    1.920000] usbcore: registered new device driver usb
[    1.930000] pps_core: LinuxPPS API ver. 1 registered
[    1.940000] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <[email protected]>
[    1.950000] PTP clock support registered
[    1.970000] Advanced Linux Sound Architecture Driver Initialized.
[    2.010000] clocksource: Switched to clocksource riscv_clocksource
[    2.600000] NET: Registered protocol family 2
[    2.640000] tcp_listen_portaddr_hash hash table entries: 512 (order: 1, 8192 bytes)
[    2.650000] TCP established hash table entries: 8192 (order: 4, 65536 bytes)
[    2.670000] TCP bind hash table entries: 8192 (order: 5, 131072 bytes)
[    2.700000] TCP: Hash tables configured (established 8192 bind 8192)
[    2.720000] UDP hash table entries: 512 (order: 2, 16384 bytes)
[    2.730000] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes)
[    2.750000] NET: Registered protocol family 1
[    2.770000] Unpacking initramfs...
[   23.980000] Initramfs unpacking failed: junk in compressed archive
[   24.030000] workingset: timestamp_bits=62 max_order=18 bucket_order=0
[   25.020000] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 251)
[   25.030000] io scheduler noop registered
[   25.040000] io scheduler deadline registered
[   25.050000] io scheduler cfq registered (default)
[   25.060000] io scheduler mq-deadline registered
[   25.060000] io scheduler kyber registered
[   25.120000] sifive_gpio 64002000.gpio: SiFive GPIO chip registered 6 GPIOs
[   25.150000] shpchp: Standard Hot Plug PCI Controller Driver version: 0.4
[   28.870000] Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
[   28.940000] sifive-serial 64000000.serial: unable to find controller clock
[   28.950000] sifive-serial: probe of 64000000.serial failed with error -2
[   28.980000] [drm] radeon kernel modesetting enabled.
[   28.990000] [drm] amdgpu kernel modesetting enabled.
[   29.500000] loop: module loaded
[   29.610000] sifive_spi 64001000.spi: Unable to find bus clock
[   29.620000] sifive_spi: probe of 64001000.spi failed with error -2
[   29.640000] libphy: Fixed MDIO Bus: probed
[   29.680000] e1000e: Intel(R) PRO/1000 Network Driver - 3.2.6-k
[   29.690000] e1000e: Copyright(c) 1999 - 2015 Intel Corporation.
[   29.700000] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[   29.710000] ehci-pci: EHCI PCI platform driver
[   29.720000] ehci-platform: EHCI generic platform driver
[   29.750000] mousedev: PS/2 mouse device common for all mice
[   29.790000] usbcore: registered new interface driver usbhid
[   29.800000] usbhid: USB HID core driver
[   29.820000] usbcore: registered new interface driver snd-usb-audio
[   29.900000] NET: Registered protocol family 10
[   29.960000] Segment Routing with IPv6
[   29.960000] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
[   30.020000] NET: Registered protocol family 17
[   30.020000] Key type dns_resolver registered
[   30.070000] bootconsole [early0] uses init memory and must be disabled even before the real one is ready
[   30.080000] bootconsole [early0] disabled

แƒ แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒแƒช แƒฎแƒ˜แƒšแƒฃแƒšแƒ˜ แƒแƒ แƒแƒคแƒ”แƒ แƒ˜ แƒฎแƒ“แƒ”แƒ‘แƒ.

แƒแƒฎแƒšแƒ แƒ—แƒฅแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒกแƒชแƒแƒ“แƒแƒ— แƒ’แƒแƒฃแƒ›แƒ™แƒšแƒแƒ•แƒ“แƒ”แƒ— แƒกแƒแƒ› แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒแƒก:

[   23.980000] Initramfs unpacking failed: junk in compressed archive
...
[   28.940000] sifive-serial 64000000.serial: unable to find controller clock
...
[   29.610000] sifive_spi 64001000.spi: Unable to find bus clock

...แƒ“แƒ แƒแƒกแƒ”แƒ•แƒ” แƒแƒฉแƒ”แƒ แƒ”แƒ‘แƒก แƒ™แƒแƒœแƒกแƒแƒšแƒ–แƒ” แƒ’แƒแƒ›แƒแƒ›แƒแƒ•แƒแƒšแƒก.

แƒกแƒฃแƒšแƒแƒช แƒแƒ  แƒแƒ แƒ˜แƒก แƒ แƒ—แƒฃแƒšแƒ˜ แƒแƒ แƒ˜ แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ˜แƒก แƒ’แƒแƒ“แƒแƒšแƒแƒฎแƒ•แƒ แƒกแƒ˜แƒฎแƒจแƒ˜แƒ แƒ”แƒ”แƒ‘แƒ—แƒแƒœ แƒ“แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒ—: แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒ“แƒแƒแƒ›แƒแƒขแƒแƒ— แƒฅแƒฃแƒšแƒ”แƒ‘แƒ˜ clocks แƒกแƒแƒญแƒ˜แƒ แƒ แƒ›แƒแƒฌแƒงแƒแƒ‘แƒ˜แƒšแƒแƒ‘แƒ”แƒ‘แƒ˜แƒก แƒฅแƒ•แƒ”แƒฎแƒ”แƒ”แƒ‘แƒจแƒ˜, แƒ›แƒแƒฎแƒ”แƒ แƒฎแƒ”แƒ‘แƒฃแƒšแƒแƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ™แƒ•แƒแƒœแƒซแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ›แƒ™แƒแƒคแƒ˜แƒ แƒ”แƒขแƒ˜แƒ™แƒ”แƒขแƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ˜แƒก แƒ›แƒ˜แƒœแƒ˜แƒญแƒ”แƒ‘แƒ tlclk:

diff --git a/arch/riscv/dts/zeowaa-1gb.dts b/arch/riscv/dts/zeowaa-1gb.dts
index 4b2cebc..1347e76 100644
--- a/arch/riscv/dts/zeowaa-1gb.dts
+++ b/arch/riscv/dts/zeowaa-1gb.dts
@@ -96,6 +97,7 @@
L8: serial@64000000 {
compatible = "sifive,uart0";
interrupt-parent = <&L0>;
+                        clocks = <&tlclk>;
interrupts = <2>;
reg = <0x64000000 0x1000>;
reg-names = "control";
@@ -107,6 +109,7 @@
interrupt-parent = <&L0>;
interrupts = <1>;
reg = <0x64001000 0x1000>;
+                        clocks = <&tlclk>;
reg-names = "control";
L12: mmc@0 {
compatible = "mmc-spi-slot";
@@ -116,7 +119,7 @@
voltage-ranges = <3300 3300>;
};
};
-                L11: tlclk {
+                tlclk: tlclk {
#clock-cells = <0>;
clock-frequency = <25000000>;
clock-output-names = "tlclk";

แƒฎแƒแƒ–แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ— #define pr_debug printk แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒ“แƒแƒกแƒแƒฌแƒงแƒ˜แƒกแƒแƒ›แƒ“แƒ” init/initramfs.c, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒแƒฉแƒ•แƒ”แƒœแƒ”แƒ‘แƒก แƒจแƒ”แƒขแƒงแƒแƒ‘แƒ˜แƒœแƒ”แƒ‘แƒแƒก แƒœแƒแƒ’แƒ•แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘ initramfs-แƒ˜แƒก แƒœแƒแƒชแƒ•แƒšแƒแƒ“, แƒ›แƒ˜แƒ•แƒ˜แƒฆแƒ”แƒ‘แƒ— แƒแƒ“แƒœแƒแƒ• แƒฃแƒคแƒ แƒ แƒ“แƒ”แƒขแƒแƒšแƒฃแƒ  แƒจแƒ”แƒขแƒงแƒแƒ‘แƒ˜แƒœแƒ”แƒ‘แƒแƒก:

[    2.760000] Unpacking initramfs...
[    2.770000] Detected gzip compressed data
[   23.940000] Detected (null) compressed data
[   23.970000] Initramfs unpacking failed: junk in compressed archive

แƒแƒœแƒฃ, แƒแƒšแƒ‘แƒแƒ— แƒœแƒแƒ’แƒแƒ•แƒ˜ แƒแƒ  แƒแƒ แƒ˜แƒก แƒœแƒแƒชแƒ•แƒšแƒแƒ“ initramfs แƒ“แƒ ะฒะผะตัั‚ะต.

แƒ™แƒแƒ แƒ’แƒ˜, แƒ›แƒแƒœ แƒ˜แƒžแƒแƒ•แƒ แƒ แƒแƒฆแƒแƒช, แƒ˜แƒฅแƒœแƒ”แƒ‘ แƒ”แƒก แƒกแƒแƒ™แƒ›แƒแƒ แƒ˜แƒกแƒ˜แƒ. แƒกแƒแƒ“ แƒฌแƒแƒ•แƒ˜แƒ“แƒ แƒ™แƒแƒœแƒกแƒแƒšแƒ˜? แƒซแƒ˜แƒ”แƒ‘แƒ แƒ˜แƒซแƒšแƒ”แƒ•แƒ แƒ‘แƒ›แƒฃแƒšแƒก Github-แƒ–แƒ” แƒแƒ แƒกแƒ”แƒ‘แƒฃแƒš แƒกแƒแƒ™แƒ˜แƒ—แƒฎแƒ–แƒ”: Linux-แƒ›แƒ แƒ•แƒ”แƒ  แƒ›แƒแƒ˜แƒขแƒแƒœแƒ vc707 แƒ“แƒแƒคแƒแƒ–แƒ” โ€” แƒ’แƒแƒ›แƒแƒ“แƒ˜แƒก, แƒ แƒแƒ› แƒ›แƒแƒ แƒขแƒ UART, แƒ›แƒซแƒฆแƒแƒšแƒ˜แƒก แƒ—แƒฅแƒ›แƒ˜แƒ—, แƒแƒ แƒช แƒ™แƒ˜ แƒฆแƒ˜แƒ แƒก แƒšแƒแƒžแƒแƒ แƒแƒ™แƒ˜. แƒ›แƒแƒ’แƒ แƒแƒ› แƒ™แƒแƒ แƒ”แƒฅแƒขแƒ˜แƒ แƒ”แƒ‘แƒ 11 แƒฌแƒšแƒ˜แƒก 2018 แƒ˜แƒ•แƒšแƒ˜แƒกแƒ˜แƒ— - แƒ”แƒ แƒ—แƒ˜ แƒฌแƒšแƒ˜แƒก แƒฌแƒ˜แƒœ. แƒแƒฆแƒ›แƒแƒฉแƒœแƒ“แƒ, แƒ แƒแƒ› แƒ”แƒก แƒ“แƒแƒ•แƒแƒšแƒ”แƒ‘แƒ แƒแƒ แƒแƒกแƒแƒ“แƒ”แƒก แƒงแƒแƒคแƒ˜แƒšแƒ แƒ˜แƒ› แƒฎแƒ”แƒจแƒ˜, แƒกแƒแƒ˜แƒ“แƒแƒœแƒแƒช แƒ›แƒ” แƒ•แƒแƒจแƒ”แƒœแƒ”แƒ‘ แƒ‘แƒ˜แƒ แƒ—แƒ•แƒก. แƒแƒ› แƒžแƒแƒฉแƒ˜แƒก แƒฎแƒ”แƒšแƒ˜แƒ— แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—, แƒ›แƒ” แƒ›แƒ˜แƒ•แƒ˜แƒฆแƒ” แƒ›แƒแƒฅแƒ›แƒ”แƒ“แƒ˜ Linux! แƒแƒฆแƒ›แƒแƒฉแƒœแƒ“แƒ, แƒ แƒแƒ› initramfs-แƒ˜แƒก แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ แƒœแƒแƒ›แƒ“แƒ•แƒ˜แƒšแƒแƒ“ แƒแƒ  แƒ˜แƒงแƒ แƒ™แƒ แƒ˜แƒขแƒ˜แƒ™แƒฃแƒšแƒ˜.

แƒจแƒ”แƒกแƒ•แƒšแƒ แƒ แƒแƒ’แƒแƒ แƒช user=root, password=sifive, แƒฃแƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒแƒ“ แƒจแƒ”แƒ•แƒซแƒ”แƒšแƒ˜ (แƒ’แƒแƒ แƒ“แƒ แƒ˜แƒ›แƒ˜แƒก แƒ’แƒแƒ’แƒ”แƒ‘แƒ˜แƒก, แƒ แƒแƒ› GPIO แƒœแƒแƒ›แƒ”แƒ แƒก แƒแƒฅแƒ•แƒก แƒ‘แƒแƒ–แƒ, แƒกแƒแƒ˜แƒ“แƒแƒœแƒแƒช แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒ’แƒแƒ›แƒแƒ˜แƒ—แƒ•แƒšแƒ”แƒ‘แƒ แƒ“แƒ แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒฃแƒœแƒ“แƒ แƒฌแƒแƒ˜แƒ™แƒ˜แƒ—แƒฎแƒ แƒจแƒ”แƒกแƒแƒ‘แƒแƒ›แƒ˜แƒกแƒ˜ แƒคแƒกแƒ”แƒ•แƒ“แƒ แƒคแƒแƒ˜แƒšแƒ˜แƒ“แƒแƒœ) แƒ›แƒ”แƒจแƒ•แƒ”แƒแƒ‘แƒ˜แƒ— sysfs แƒแƒแƒœแƒ—แƒ”แƒ— LED แƒ“แƒแƒคแƒแƒ–แƒ”.

แƒฌแƒ˜แƒœแƒ แƒฏแƒ”แƒ แƒ˜แƒก แƒ›แƒกแƒ’แƒแƒ•แƒกแƒแƒ“, แƒ›แƒ” แƒ•แƒแƒ›แƒแƒ’แƒ แƒ”แƒ‘ Linux-แƒ˜แƒก แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒก แƒขแƒ”แƒฅแƒกแƒขแƒฃแƒ  แƒ•แƒ˜แƒ“แƒ”แƒแƒก. แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒ™แƒแƒœแƒกแƒแƒšแƒ˜ แƒ’แƒแƒ“แƒแƒ“แƒ˜แƒก แƒแƒ“แƒ แƒ”แƒฃแƒšแƒ˜ แƒžแƒ แƒ˜แƒœแƒขแƒ™แƒ˜แƒ“แƒแƒœ แƒกแƒขแƒแƒœแƒ“แƒแƒ แƒขแƒฃแƒšแƒ–แƒ”, แƒฉแƒœแƒ“แƒ”แƒ‘แƒ แƒ แƒแƒ˜แƒ›แƒ” แƒกแƒแƒฎแƒ˜แƒก แƒœแƒแƒ’แƒแƒ•แƒ˜, แƒ›แƒกแƒ’แƒแƒ•แƒกแƒ˜ แƒ’แƒแƒ›แƒแƒ›แƒแƒ•แƒแƒšแƒ˜, แƒ แƒแƒ“แƒ”แƒกแƒแƒช UART แƒกแƒ˜แƒฉแƒฅแƒแƒ แƒ” แƒแƒ แƒแƒกแƒฌแƒแƒ แƒแƒ“ แƒแƒ แƒ˜แƒก แƒ“แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜. แƒกแƒแƒ˜แƒœแƒขแƒ”แƒ แƒ”แƒกแƒแƒ, แƒ แƒแƒ› แƒ›แƒแƒ—แƒแƒ›แƒแƒจแƒ”แƒ› แƒฌแƒแƒ แƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ— แƒ’แƒแƒ“แƒแƒšแƒแƒฎแƒ แƒ”แƒก "แƒแƒ แƒ”แƒฃแƒšแƒแƒ‘แƒ".

แƒœแƒแƒฌแƒ˜แƒšแƒ˜ 4: แƒฏแƒ”แƒ  แƒ™แƒ˜แƒ“แƒ”แƒ• แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก Linux RocketChip RISC-V-แƒ–แƒ”

แƒฌแƒงแƒแƒ แƒ: www.habr.com