今日のGR-PEACH
ずっと『うーんinitarm()以降のシリアルが出ないなードライバ実装どっかバグってんのかなー』と思ってたけど、結局bus_space_map()したときに取得したhandlepを保存しておくのを忘れてたせいだった。それを直したらなんかダバダバ流れてきてデバッガに落ちた模様。
U-Boot 2015.01-00076-gc83df16e6b-dirty (Jul 06 2017 - 01:45:26) I2C: ready DRAM: 10 MiB Using default environment In: serial Out: serial Err: serial SPI Flash Memory Map ------------------------------------ Start Size SPI u-boot: 0x00000000 0x080000 0 env: 0x00080000 0x040000 0 DT: 0x000C0000 0x040000 0 Kernel: 0x00100000 0x050000 0 Rootfs: 0x00600000 0x0A0000 0 Net: sh_eth => bootp 192.168.0.6:netbsd.bin sh_eth Waiting for PHY auto negotiation to complete.. done sh_eth: 100Base/Full BOOTP broadcast 1 BOOTP broadcast 2 DHCP client bound to address 192.168.0.4 (644 ms) Using sh_eth device TFTP from server 192.168.0.6; our IP address is 192.168.0.4 Filename 'netbsd.bin'. Load address: 0x20000000 Loading: ################################################################# ################################################################# ################################################################# #################################### 2.8 MiB/s done Bytes transferred = 3378964 (338f14 hex) => go 0x20000000 ## Starting application at 0x20000000 ... PC=0x20000024 SP=0x208afdb0 CPSR=0x600001d3 <cortex_init>@ABC12-</cortex_init> <mmu_init_table></mmu_init_table> <arm_cpuinit>FG01H1IJKLM</arm_cpuinit> jump to start() uboot arg = 0x1, 0x208b0e5c, 0x208b0e5c, 0x20000000 NetBSD/evbarm (EVBARM_BOARDTYPE) booting ... initarm: Configuring system, CLIDR=1110000003 CTR=0x83338003 arm32_bootmem_init: memstart=0x20000000, memsize=0x10000000, kernelstart=0x20000000 arm32_bootmem_init: kernelend=0x20356000 arm32_bootmem_init: adding 32341 free pages: [0x20356000..0x2fffffff] (VA 0x80356000) arm32_kernel_vm_init: 1 L2 pages are needed to map 0x38a000 kernel bytes arm32_kernel_vm_init: allocating page tables for kerneladd_pages: adding pv 0x8033964c (pa 0x20356000, va 0x80356000, 1 pages) at tail vmadd_pages: appending pv 0x8033a5d0 (0x20358000..0x2035bfff) to 0x20356000..0x20357fff add_pages: appending pv 0x80339824 (0x2035c000..0x2035dfff) to 0x20356000..0x2035bfff add_pages: appending pv 0x80339838 (0x2035e000..0x2035ffff) to 0x20356000..0x2035dfff add_pages: appending pv 0x8033984c (0x20360000..0x20361fff) to 0x20356000..0x2035ffff add_pages: appending pv 0x80339860 (0x20362000..0x20363fff) to 0x20356000..0x20361fff add_pages: appending pv 0x80339874 (0x20364000..0x20365fff) to 0x20356000..0x20363fff add_pages: appending pv 0x80339888 (0x20366000..0x20367fff) to 0x20356000..0x20365fff add_pages: appending pv 0x8033989c (0x20368000..0x20369fff) to 0x20356000..0x20367fff add_pages: appending pv 0x803398b0 (0x2036a000..0x2036bfff) to 0x20356000..0x20369fff arm32_kernel_vm_init: allocating stacks add_pages: appending pv 0x80339d44 (0x2036c000..0x2036dfff) to 0x20356000..0x2036bfff add_pages: appending pv 0x80339d30 (0x2036e000..0x2036ffff) to 0x20356000..0x2036dfff add_pages: appending pv 0x80339d1c (0x20370000..0x20371fff) to 0x20356000..0x2036ffff add_pages: appending pv 0x80339d08 (0x20372000..0x20373fff) to 0x20356000..0x20371fff add_pages: appending pv 0x80339cf4 (0x20374000..0x20375fff) to 0x20356000..0x20373fff add_pages: appending pv 0x80339d58 (0x20376000..0x20377fff) to 0x20356000..0x20375fff add_pages: appending pv 0x80339690 (0x20378000..0x2037bfff) to 0x20356000..0x20377fff Creating L1 page table at 0x20358000 arm32_kernel_vm_init: adding L2 pt (VA 0x80356000, PA 0x20356000) for VA 0x80000000 (kernel) arm32_kernel_vm_init: adding L2 pt (VA 0x8035c000, PA 0x2035c000) for VA 0xc0000000 (vm) arm32_kernel_vm_init: adding L2 pt (VA 0x8035e000, PA 0x2035e000) for VA 0xc0800000 (vm) arm32_kernel_vm_init: adding L2 pt (VA 0x80360000, PA 0x20360000) for VA 0xc1000000 (vm) arm32_kernel_vm_init: adding L2 pt (VA 0x80362000, PA 0x20362000) for VA 0xc1800000 (vm) arm32_kernel_vm_init: adding L2 pt (VA 0x80364000, PA 0x20364000) for VA 0xc2000000 (vm) arm32_kernel_vm_init: adding L2 pt (VA 0x80366000, PA 0x20366000) for VA 0xc2800000 (vm) arm32_kernel_vm_init: adding L2 pt (VA 0x80368000, PA 0x20368000) for VA 0xc3000000 (vm) arm32_kernel_vm_init: adding L2 pt (VA 0x8036a000, PA 0x2036a000) for VA 0xc3800000 (vm) Mapping kernel arm32_kernel_vm_init: adding chunk for kernel text 0x20000000..0x20267fff (VA 0x80000000) add_pages: adding pv 0x80339638 (pa 0x20000000, va 0x80000000, 308 pages) before pa 0x20356000 arm32_kernel_vm_init: adding chunk for kernel data/bss 0x20268000..0x20355fff (VA 0x80268000) add_pages: adding pv 0x80339624 (pa 0x20268000, va 0x80268000, 119 pages) before pa 0x20356000 Listing Chunks arm32_kernel_vm_init: pv 0x80339638: chunk VA 0x80000000..0x80267fff (PA 0x20000000, prot 7, cache 1) arm32_kernel_vm_init: pv 0x80339624: chunk VA 0x80268000..0x80355fff (PA 0x20268000, prot 3, cache 1) arm32_kernel_vm_init: pv 0x8033964c: chunk VA 0x80356000..0x8037bfff (PA 0x20356000, prot 3, cache 1) Mapping Chunks arm32_kernel_vm_init: mapping chunk VA 0x80000000..0x80267fff (PA 0x20000000, prot 7, cache 1) pmap_map_chunk: pa=0x20000000 va=0x80000000 size=0x268000 resid=0x268000 prot=0x7 cache=1 SSLLLLLLPPPP arm32_kernel_vm_init: mapping chunk VA 0x80268000..0x80355fff (PA 0x20268000, prot 3, cache 1) pmap_map_chunk: pa=0x20268000 va=0x80268000 size=0xee000 resid=0xee000 prot=0x3 cache=1 PPPPLLLLLLLLLLLLLLPPP arm32_kernel_vm_init: mapping last chunk VA 0x80356000..0x8037bfff (PA 0x20356000, prot 3, cache 1) pmap_map_chunk: pa=0x20356000 va=0x80356000 size=0x26000 resid=0x26000 prot=0x3 cache=1 PPPPPLPPPPPP devmap: 18000000 -> 1fffffff @ f7000000 pmap_map_chunk: pa=0x18000000 va=0xf7000000 size=0x8000000 resid=0x8000000 prot=0x3 cache=0 sSsSsSsSsSsSsSsS devmap: 3fe00000 -> 3fffffff @ ff000000 pmap_map_chunk: pa=0x3fe00000 va=0xff000000 size=0x200000 resid=0x200000 prot=0x3 cache=0 SS devmap: e8000000 -> e82fffff @ ff200000 pmap_map_chunk: pa=0xe8000000 va=0xff200000 size=0x300000 resid=0x300000 prot=0x3 cache=0 SSS devmap: fc000000 -> fc0fffff @ ff500000 pmap_map_chunk: pa=0xfc000000 va=0xff500000 size=0x100000 resid=0x100000 prot=0x3 cache=0 S devmap: fcf00000 -> fcffffff @ ff600000 pmap_map_chunk: pa=0xfcf00000 va=0xff600000 size=0x100000 resid=0x100000 prot=0x3 cache=0 S devmap: fff00000 -> ffffffff @ ff700000 pmap_map_chunk: pa=0xfff00000 va=0xff700000 size=0x100000 resid=0x100000 prot=0x3 cache=0 S devmap: f0000000 -> f00fffff @ ff800000 pmap_map_chunk: pa=0xf0000000 va=0xff800000 size=0x100000 resid=0x100000 prot=0x3 cache=0 S Physical Virtual Num Starting Ending Starting Ending Pages SDRAM: 0x20000000 0x2fffffff 0x80000000 0x8fffffff 32768 text section: 0x20000000 0x20267fff 0x80000000 0x80267fff 308 data section: 0x202c0000 0x20338f18 0x802c0000 0x80338f18 61 bss section: 0x20338f18 0x20354fe0 0x80338f18 0x80354fe0 15 L1 page directory: 0x20358000 0x2035bfff 0x80358000 0x8035bfff 2 ABT stack (CPU 0): 0x2036c000 0x2036dfff 0x8036c000 0x8036dfff 1 FIQ stack (CPU 0): 0x2036e000 0x2036ffff 0x8036e000 0x8036ffff 1 IRQ stack (CPU 0): 0x20370000 0x20371fff 0x80370000 0x80371fff 1 UND stack (CPU 0): 0x20372000 0x20373fff 0x80372000 0x80373fff 1 IDLE stack (CPU 0): 0x20374000 0x20375fff 0x80374000 0x80375fff 1 SVC stack: 0x20376000 0x20377fff 0x80376000 0x80377fff 1 Message Buffer: 0x20378000 0x2037bfff 0x80378000 0x8037bfff 2 Free Memory: 0x2037c000 0x2fffffff 32322 TTBR0=0x209fc05b TTBR1=0x209fc05b TTBCR=0x1 CONTEXTIDR=0 switching to new L1 page table @0x20358000... ttb (TTBCR=0x11 TTBR0=0x2035805b TTBR1=0x2035805b) OK nfreeblocks = 1, free_pages = 32322 (0x7e42) bootstrap done. vectors vbar=0x8000bf60 0x8000bf60 init subsystems: stacks vectors undefined page pmap_physload pmap kpm tlb0 locks l1pt cache(l1pt) specials pools [ Kernel symbol table missing! ] done. panic: pool_get: pcache: page empty Stopped in pid 0.1 (system) at 80005a80: bx r14 db>