«前の日記(2021年01月13日) 最新 次の日記(2021年01月15日)» 編集

2021年01月14日 よく訓練された犬は.. [長年日記]

_ よく訓練された犬は..

raspberry pi 4 load address 他

https://www.raspberrypi.org/documentation/configuration/config-txt/boot.md

にまとめて書いてある.
32bit/64bit の切り替えは,

arm_64bit
If set to non-zero, forces the kernel loading system to assume a 64-bit kernel, starts the processors up in 64-bit mode, and sets kernel8.img to be the kernel image loaded, unless there is an explicit kernel option defined in which case that is used instead. Defaults to 0 on all platforms. NOTE: 64-bit kernels must be uncompressed image files.

で load の address は

kernel_address
kernel_address is the memory address to which the kernel image should be loaded. 32-bit kernels are loaded to address 0x8000 by default, and 64-bit kernels to address 0x80000. If kernel_old is set, kernels are loaded to the address 0x0.

でよいっぽい. memory map と peripherals の address は

https://datasheets.raspberrypi.org/bcm2711/bcm2711-peripherals.pdf

の memory map から,

main peripherals 0x4_7C00_0000 - 0x4_8000_0000
arm local peripherals 0x4_C000_0000 - 0x5_0000_0000

とあるのでこれで起動して Lチアあるいは周辺デバイスへのアクセスまでは
いけそうな雰囲気.
今一つ binary のフォーマットとかがよくわからんところはあるのだが.
kernel8.img が DOS で, kernel7x.img が zImage でとあるが,
変な parse していないで 単にloadして PC 先頭にもってきてくれる
というのならいけるのではないか.