APC8750にNetBSD/evbarmを移植するための記録 8/9
BeagleBone Blackを買って遊んだり、JNUG総会&BoFを欠席して懇親会だけ参加してみたり、納涼もんご祭りに遊びに行ったり、OSC京都でLuna見たり、そんなこんなで3か月ほど間が空きました。
さて、initarmまで来たら、次はprintfを動かすのが大きなマイルストンです。
そのための第一歩として、コンソールの初期化ルーチンであるconsinitを実装しなければなりません。
この時点でなぜかシリアルインタフェースが16550互換だと信じ込んでおり、evbarm/armの下にある16550関連のソースを読み比べて、シンプルなhdlg_machdep.cのconsinitをまねてcomドライバを呼ぶ処理を書いてみました。
そして...
NetBSD/evbarm (APC) booting ...からはprintfで出力されております。
printfが動いた感動を味わう。
さて、initarmまで来たら、次はprintfを動かすのが大きなマイルストンです。
そのための第一歩として、コンソールの初期化ルーチンであるconsinitを実装しなければなりません。
この時点でなぜかシリアルインタフェースが16550互換だと信じ込んでおり、evbarm/armの下にある16550関連のソースを読み比べて、シンプルなhdlg_machdep.cのconsinitをまねてcomドライバを呼ぶ処理を書いてみました。
そして...
U-Boot 1.1.4 (Dec 5 2012 - 19:23:59) WonderMedia Technologies, Inc. U-Boot Version : 0.28.00.00 U-Boot code: 03F80000 -> 03FCEE38 BSS: -> 03FF0A88 boot from spi flash. SF0: ManufID = C2, DeviceID = 2013 (Missing or Unknown FLASH) Use Default - Total size = 8MB, Sector size = 64KB SF1: ManufID = FF, DeviceID = FFFF (Missing or Unknown FLASH) Use Default - Total size = 8MB, Sector size = 64KB flash: Bank1: FF800000 -- FFFFFFFF Bank2: FF000000 -- FF7FFFFF Flash: 16 MB sfboot: NAND init:env nand config fail, use default flash id list info pllb=0x2270001, spec_clk=0x140a0cff T1=2, clk1=18, div1=9, Thold=1, tREA=20+delay(9) T2=1, clk2=36, div2=18, Thold2=1, comp=1 Tim1=442368 , Tim2=589824 T2 is greater and not use T=2, clk=18, divisor=9, Thold=0x601 divisor is set 0x9, NFC_timing=0x2424 USE_HW_ECC ECC12bit 2048 MB In: serial Out: serial Err: serial Abort WMT Display Logo Function WMT # WMT # WMT # WMT # WMT # set serverip 192.168.0.10 WMT # tftpboot 1000000 netbsd.bin EEP-less strapping = TRUE TFTP from server 192.168.0.10; our IP address is 192.168.0.2 Filename 'netbsd.bin'. Load address: 0x1000000 Loading: ####################################T ############################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################ done Bytes transferred = 2489792 (25fdc0 hex) WMT # go 1000000 ## Starting application at 0x01000000 ... 01000328 NetBSD 00000000 00000000 01473863 00000412 00000000 00000412 00000014 00000412 c0000000 00000000 01473863 0000041e 00003000 0000041e 00000014 0000041e fe000000 d8000000 010fffff 00000412 00003f80 d8000412 00000010 00000412 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 NetB1S NetBSD/evbarm (APC) booting ... initarm: Configuring system ... physmemory: 0 pages at 0x00000000 -> 0xffffffff Allocating page tables Creating L1 page table at 0x01274000 Mapping kernel pmap_map_chunk: pa=0x0 va=0xc0000000 size=0x119b000 resid=0x119b000 prot=0x3 cache=1 SSSSSSSSSSSSSSSSSLLLLLLLLLPPPPPPPPPPP pmap_map_chunk: pa=0x119b000 va=0xc119b000 size=0xd9000 resid=0xd9000 prot=0x3 cache=1 PPPPPLLLLLLLLLLLLLPPPP Constructing L2 page tables pmap_map_chunk: pa=0x1282000 va=0xc1282000 size=0x1000 resid=0x1000 prot=0x3 cache=1 P pmap_map_chunk: pa=0x1283000 va=0xc1283000 size=0x1000 resid=0x1000 prot=0x3 cache=1 P pmap_map_chunk: pa=0x1284000 va=0xc1284000 size=0x1000 resid=0x1000 prot=0x3 cache=1 P pmap_map_chunk: pa=0x1285000 va=0xc1285000 size=0x1000 resid=0x1000 prot=0x3 cache=1 P pmap_map_chunk: pa=0x1286000 va=0xc1286000 size=0x2000 resid=0x2000 prot=0x3 cache=1 PP pmap_map_chunk: pa=0x1274000 va=0xc1274000 size=0x4000 resid=0x4000 prot=0x3 cache=2 PPPP pmap_map_chunk: pa=0x1278000 va=0xc1278000 size=0x1000 resid=0x1000 prot=0x3 cache=2 P pmap_map_chunk: pa=0x1279000 va=0xc1279000 size=0x1000 resid=0x1000 prot=0x3 cache=2 P pmap_map_chunk: pa=0x127a000 va=0xc127a000 size=0x1000 resid=0x1000 prot=0x3 cache=2 P pmap_map_chunk: pa=0x127b000 va=0xc127b000 size=0x1000 resid=0x1000 prot=0x3 cache=2 P pmap_map_chunk: pa=0x127c000 va=0xc127c000 size=0x1000 resid=0x1000 prot=0x3 cache=2 P pmap_map_chunk: pa=0x127d000 va=0xc127d000 size=0x1000 resid=0x1000 prot=0x3 cache=2 P pmap_map_chunk: pa=0x127e000 va=0xc127e000 size=0x1000 resid=0x1000 prot=0x3 cache=2 P pmap_map_chunk: pa=0x127f000 va=0xc127f000 size=0x1000 resid=0x1000 prot=0x3 cache=2 P pmap_map_chunk: pa=0x1280000 va=0xc1280000 size=0x1000 resid=0x1000 prot=0x3 cache=2 P devmap: d8000000 -> d8ffffff @ fe000000 pmap_map_chunk: pa=0xd8000000 va=0xfe000000 size=0x1000000 resid=0x1000000 prot=0x3 cache=0 SSSSSSSSSSSSSSSS Physical Virtual Num Starting Ending Starting Ending Pages SDRAM: 0x00000000 0xffffffff 0xc0000000 0xbfffffff 0 text section: 0x00000000 0x0119a473 0xc0000000 0xc119a473 4507 data section: 0x011a0000 0x0125fdc0 0xc11a0000 0xc125fdc0 192 bss section: 0x0125fdc0 0x01273864 0xc125fdc0 0xc1273864 21 L1 page directory: 0x01274000 0x01277fff 0xc1274000 0xc1277fff 4 Exception Vectors: 0x01281000 0x01281fff 0xffff0000 0xffff0fff 1 FIQ stack: 0x01282000 0x01282fff 0xc1282000 0xc1282fff 1 IRQ stack: 0x01283000 0x01283fff 0xc1283000 0xc1283fff 1 ABT stack: 0x01284000 0x01284fff 0xc1284000 0xc1284fff 1 UND stack: 0x01285000 0x01285fff 0xc1285000 0xc1285fff 1 SVC stack: 0x01286000 0x01287fff 0xc1286000 0xc1287fff 2 Message Buffer: 0x01288000 0x01288fff 1 Free Memory: 0x01289000 0xffffffff 0xc1289000 0xbfffffff 1043831 switching to new L1 page table @0x1274000...OK. freestart = 0x01289000, free_pages = 1043831 (0x000fed77) bootstrap done. init subsystems: stacks vectors undefined page panic: uvm_page_physload: start >= end Undefined instruction in kernel Stopped in pid 0.1 (system) at c100e5b8:うぉーっ、printfが動いた!
NetBSD/evbarm (APC) booting ...からはprintfで出力されております。
printfが動いた感動を味わう。
コメント(0件)
- TB-URL http://www.tokuda.net/diary/0822/tb/