途中で、別の手段で目的を達成することができたため、結局、全部を把握する必要がなくなった。
せっかく調べたので、一応、残しておく。
アドレス | 関数名 | ソース | メモ |
0x00000000 | _start | arch/arm/cpu/armv8/start.S | |
0x00000028 | reset | arch/arm/cpu/armv8/start.S | |
0x00002180 | save_boot_params | arch/arm/cpu/armv8/smp_init.S | |
0x00000858 | __asm_flush_dcache_all | arch/arm/cpu/armv8/cache.S | |
0x00000800 | __asm_flush_dcache_level | arch/arm/cpu/armv8/cache.S | |
0x000008e8 | __asm_invalidate_icache_all | arch/arm/cpu/armv8/cache.S | |
0x000021f8 | __asm_invalidate_tlb_all | arch/arm/cpu/armv8/tlb.S | |
0x000020f8 | lowlevel_init | arch/arm/cpu/armv8/smp_init.S | |
0x00002000 | gic_init | arch/arm/cpu/armv8/gic.S | |
0x000031b4 | pxa_cpu_configure | arch/arm/cpu/armv8/pxa1928/cpu.c | |
0x00003718 | _main | arch/arm/lib/crt0_64.S | |
0x000038cc | board_init_f | arch/arm/lib/board.c | |
0x00042140 | memset | lib/string.c | |
0x0001b5a0 | getenv_ulong | common/cmd_nvedit.c | |
0x0001b4d4 | getenv | common/cmd_nvedit.c | |
0x0003ff8c | hsearch_r | lib/hashtable.c | |
0x0001b3e4 | getenv_f | common/cmd_nvedit.c | |
0x000431f4 | simple_strtoul | lib/vsprintf.c | |
0x000034d0 | arch_cpu_init | arch/arm/cpu/armv8/pxa1928/cpu.c | board_init_f の init_sequence で定義 |
0x00003250 | powerup_display_controller | arch/arm/cpu/armv8/pxa1928/cpu.c | |
0x0001cfe4 | printf | common/console.c | |
0x0004344c | vscnprintf | lib/vsprintf.c | |
0x0001cf8c | puts | common/console.c | |
0x0001cd50 | mmp_log_buf_write | common/console.c | |
0x00034f60 | serial_puts | drivers/serial/serial.c | |
0x00034bbc | get_current | drivers/serial/serial.c | |
0x000038b0 | mark_bootstage | board_init_f の init_sequence で定義 | |
0x0000a2d0 | board_early_init_f | board_init_f の init_sequence で定義 | |
0x000033c0 | timer_init | board_init_f の init_sequence で定義 | |
0x0001f5cc | env_init | board_init_f の init_sequence で定義 | |
0x00003874 | init_baudrate | arch/arm/lib/board.c | board_init_f の init_sequence で定義 |
0x00034dc4 | serial_init | drivers/serial/serial.c | board_init_f の init_sequence で定義 |
0x0001d2e8 | console_init_f | common/console.c | board_init_f の init_sequence で定義 |
0x0000384c | display_banner | arch/arm/lib/board.c | board_init_f の init_sequence で定義 |
0x000036b8 | print_rebootinfo | arch/arm/cpu/armv8/pxa1928/cpu.c | board_init_f の init_sequence で定義 |
0x0000361c | print_cpuinfo | arch/arm/cpu/armv8/pxa1928/cpu.c | board_init_f の init_sequence で定義 |
0x00003810 | init_func_i2c | arch/arm/lib/board.c | board_init_f の init_sequence で定義 |
0x0002ba3c | dram_init | drivers/ddr/mck/mck5.c | board_init_f の init_sequence で定義 |
下記は実際に発行されるコマンド達
No | Cmd | 備考 |
1 | bmp display_center 000000000938b980 1280 800 | |
2 | bmp display_center 000000000938b980 1280 800 | |
3 | setvolt vcc_main dvc0011 1300 | |
4 | setcpurate 1386 | |
5 | setddrrate hwdfc 312 | |
6 | setaxirate 156 | |
7 | cp_d2 | |
8 | mmc dev 0 0; mmc read 000000000affee00 28000 0x9 | |
9 | mmc read b000000 28004 291c | |
10 | mmc read 3000000 2a920 14b4 | |
11 | mmc read 9800000 2a81c 100 | |
12 | fdt addr 0x0000000009800000 | |
13 | fdt rsvmem delete 0x1 | |
14 | fdt rsvmem add 0x17000000 0xbc1000 | |
15 | fdt set /soc/axi/fbbase marvell,fb-mem <0x17000000> | |
16 | fdt set /profile marvell,profile-number <9> | |
17 | fdt set /iddq marvell,iddq-1p05 <89> | |
18 | fdt set /iddq marvell,iddq-1p30 <205> | |
19 | fdt set /pp_version version pxa1928 | |
20 | fdt set /chip_type type <2> | |
21 | fdt set /pxa1928_apmu_ver version bx | |
22 | fdt rm /soc/axi/wakeupgen@d4284000 | |
23 | fdt set /soc/apb@d4000000/uart@d4018000 break-abnormal <1> | |
24 | fdt addr 0x9800000; bootm 0xb000000 – 0x9800000 |
メモ)SELinuxを無効化する(init の selinux_initialize において、security_setenforce の引数を 1 ではなく 0 を渡す)
00401204 20 00 80 52 mov w0,#0x1 -> 00 00 80 52 mov w0,#0x0
メモ)u-boot で マイクロSDに入れた独自のramdisk(ram1.gz)で起動させる
mmc dev 0 0; mmc read 000000000affee00 28000 0x9; mmc read b000000 28004 291c; mmc read 9800000 2a81c 100; fatload mmc 1 0x3000000 ram1.gz; fdt addr 0x9800000; bootm 0xb000000 - 0x9800000
下記のカーネルの場合
# Linux version 3.10.33 (builduser@builduser-HP-ProDesk-600-G1-SFF) (gcc version 4.9.x-google 20140827 (prerelease) (GCC) ) #2 SMP PREEMPT Mon Jun 19 18:02:35 JST 2017
mmc dev 0 0; mmc read 000000000affee00 28000 0x9; mmc read 0xb000000 0x28004 0x2920; mmc read 0x9800000 0x2A820 0x100; fatload mmc 1 0x3000000 ram1.gz; fdt addr 0x9800000; bootm 0xb000000 – 0x9800000