Vengineerの妄想

人生を妄想しています。

Raspberry Pi 3のLinuxは32ビット


Raspberry Pi 3Linuxって、32ビットということを知ったので、
早速、ソースコードを見てみました。
公式ブログのRASPBERRY PI 3 ON SALE NOW AT $35の後半にも
引用
At launch, we are using the same 32-bit Raspbian userland that we use on other Raspberry Pi devices; over the next few months we will investigate whether there is value in moving to 64-bit mode.
とあります。


linux/arch/arm64/boot/dtsにはbroadcomがありません。
linux/arch/arm/boot/dtsにありました
bcm2710-rpi-3-b.dtsbcm2710.dtsi見たら、
	cpus: cpus {
		#address-cells = <1>;
		#size-cells = <0>;

		v7_cpu0: cpu@0 {
			device_type = "cpu";
			compatible = "arm,cortex-a7";
			reg = <0x000>;
			clock-frequency = <800000000>;
		};

		v7_cpu1: cpu@1 {
			device_type = "cpu";
			compatible = "arm,cortex-a7";
			reg = <0x001>;
			clock-frequency = <800000000>;
		};

		v7_cpu2: cpu@2 {
			device_type = "cpu";
			compatible = "arm,cortex-a7";
			reg = <0x002>;
			clock-frequency = <800000000>;
		};

		v7_cpu3: cpu@3 {
			device_type = "cpu";
			compatible = "arm,cortex-a7";
			reg = <0x003>;
			clock-frequency = <800000000>;
		};
	};

のように、CPUがCortex-A7になっています。

【追記あり】Raspberry Pi 3を見せていただきましたにも、
Linuxは32ビットと書いてあります。

Raspberry PiのブートシーケンスをGoogle君に聞いてみたら、
How does Raspberry Pi boot?
 1)、電源をオンした時は、ARMコアはオフで、GPUコアがオン。
 2)、GPUコアがSoC内部ROMのFSBLを実行し、SDカード内のSSBL(bootcode.bin)を
   L2キャッシュにロードし、実行。
 3)、bootcode.binがSDRAMをイネーブルにし、TSBL(loader.bin)をSDカードから
   SDRAMにロードし、実行。
 4)、loader.binがGPUファームウェア(start.elf)をロードし、
 5)、start.elfがconfig.txt, cmdline.txt, kernel.imgをロード。
 loader.binは必要ないかも。
にように、GPUコアがブートローダーを実行するんですね。

GPUブートローダーは、ここにありますが、バイナリです。

Raspberry Pi 3 Still Essentially a 32-Bit SBC For Nowによると、
64ビット版ではメモリが2GB必要。

P.S
RPi 3 SoC at nearly 100 °C, reporting 80 °Cによると、
SoCの温度は100℃と、熱いじゃん。大丈夫か。。。