Próbuję uzyskać własną kompilację U-Boot, aby uruchomić system Linux na płycie Jetson TK1. Podczas gdy piszemy o zweryfikowany rozruch, używam Flat Image Tree (ujednoliconego obrazu jądra, bloba drzewa urządzenia, ...) do opisania mojego systemu. U-Boot może załadować plik ITB i próbuje uruchomić jądro, ale system zawiesza się po tym komunikacie.Linux: argumenty startowe z U-Boot i Flat Image Tree (FIT)
Zakładam, że dzieje się tak dlatego, że żadne argumenty rozruchowe nie są przekazywane do jądra (oryginalny start dodaje mnóstwo argumentów), ale jestem trochę zaskoczony, jak przekazać argumenty do jądra. Próbowałem ustawić zmienną środowiskową bootargs, ale to nie zmieniło sytuacji.
Jak przekazać argumenty jądra do jądra podczas korzystania z pliku ITB?
argumenty wiersza poleceń (wzięte z polecenie append z extlinux.conf przykłady):
console=ttyS0,115200n8 console=tty1 no_console_suspend=1
[email protected] video=tegrafb [email protected] memtype=255 [email protected]
section=256M pmuboard=0x0177:0x0000:0x02:0x43:0x00 [email protected] [email protected]
otf_key=c75e5bb91eb3bd947560357b64422f85 usbcore.old_scheme_first=1 core_edp_mv=1150
core_edp_ma=4000 tegraid=40.1.1.0.0 debug_uartport=lsport,3 power_supply=Adapter
audio_codec=rt5640 modem_id=0 android.kerneltype=normal usb_port_owner_info=0
fbcon=map:1 commchip_id=0 usb_port_owner_info=0 lane_owner_info=6 emc_max_dvfs=0
[email protected] [email protected] board_info=0x0177:0x0000:0x02:0x43:0x00
root=/dev/mmcblk0p1 rw rootwait tegraboot=sdmmc gpt
Zawartość pliku ITS:
/dts-v1/;
/{
description = "Simple image with single Linux kernel and FDT blob";
#address-cells = <1>;
images {
[email protected] {
description = "Vanilla Linux kernel";
data = /incbin/("./zImage");
type = "kernel";
arch = "arm";
os = "linux";
compression = "none";
load = <0x81008000>;
entry = <0x81008000>;
[email protected] {
algo = "crc32";
};
[email protected] {
algo = "sha1";
};
};
[email protected] {
description = "Flattened Device Tree blob";
data = /incbin/("./tegra124-pm375.dtb");
type = "flat_dt";
arch = "arm";
compression = "none";
[email protected] {
algo = "crc32";
};
[email protected] {
algo = "sha1";
};
};
};
configurations {
default = "[email protected]";
[email protected] {
description = "Boot Linux kernel with FDT blob";
kernel = "[email protected]";
fdt = "[email protected]";
};
};
};
U-Boot wyjściowa:
Tegra124 (Jetson TK1) # fatload mmc 1 0x90000000 /kernel_fdt.itb
reading /kernel_fdt.itb
5946200 bytes read in 497 ms (11.4 MiB/s)
Tegra124 (Jetson TK1) # bootm 0x90000000
## Loading kernel from FIT Image at 90000000 ...
Using '[email protected]' configuration
Verifying Hash Integrity ... OK
Trying '[email protected]' kernel subimage
Description: Vanilla Linux kernel
Type: Kernel Image
Compression: uncompressed
Data Start: 0x900000ec
Data Size: 5910168 Bytes = 5.6 MiB
Architecture: ARM
OS: Linux
Load Address: 0x00000000
Entry Point: 0x00000000
Hash algo: crc32
Hash value: c5b4b377
Hash algo: sha1
Hash value: f001007efe83f563425bfe0659186a32395c946c
Verifying Hash Integrity ... crc32+ sha1+ OK
## Loading fdt from FIT Image at 90000000 ...
Using '[email protected]' configuration
Trying '[email protected]' fdt subimage
Description: Flattened Device Tree blob
Type: Flat Device Tree
Compression: uncompressed
Data Start: 0x905a30ac
Data Size: 34678 Bytes = 33.9 KiB
Architecture: ARM
Hash algo: crc32
Hash value: e466b23e
Hash algo: sha1
Hash value: ec909ae16e62233d0ed1e1f4c909085abc9b5879
Verifying Hash Integrity ... crc32+ sha1+ OK
Booting using the fdt blob at 0x905a30ac
Loading Kernel Image ... OK
Using Device Tree in place at 905a30ac, end 905ae821
Starting kernel ...
Czy możesz podać dane wyjściowe konsoli i bieżące bootowania, abyśmy mogli sprawdzić, gdzie zatrzymuje się rozruch? – Claudio